ROS (Robot Operating System) is an open source software platform that provides various libraries and development environments for robot software development.
This chapter describes how to implement the ROS software (MoveIt!, RViz, Gazebo) with Indy7.
The figure above shows the overall system configuration.
The ethernet connection is required between the ubuntu PC and the IndyCB.
Because as shown in Figure,
Indy Framework and ROS are communication with through IndyDCP.
The ros packages produced by Neuromeka (hereafter Indy packages) include the models, configs, and driver
for using Indy robots in ROS platform.
The ROS packages under development have been tested with the ROS Kinetic Kame (hereafter ROS Kinetic) version suitable for Ubuntu 16.04.
For more information about the ROS version, see the ROS wiki.
Installation ROS and Indy packages
The files required to install the Indy package can be downloaded from the Neuromeka official github repository.
This installation guide is based on Ubuntu 16.04 (ROS Kinetic).
If you are using a different version of Ubuntu and ROS, it is required to replace
kinetic with the appropriate ros version.
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 && sudo apt-get update
sudo apt-get install ros-kinetic-desktop-full
sudo rosdep init && rosdep update
- Install Moveit and dependencies
sudo apt-get install ros-kinetic-moveit \
- Install Gazebo Simulator and dependencies
sudo apt-get install ros-kinetic-gazebo-ros-pkgs \
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc && source ~/.bashrc
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/ && catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc && source ~/.bashrc
- Download and compile Indy packages
cd ~/catkin_ws/src && git clone https://github.com/neuromeka-robotics/indy-ros
cd ~/catkin_ws && catkin_make && source devel/setup.bash
Indy Package List
indy_driver is responsible for the communication between the ROS environment and the Indy Framework on the system.
It consists of state_publisher and motion_downloader.
The state_publisher node publishes robot’s joint positions from Indy Framework under the /joint_states topic. So that other ROS nodes like Rviz can get joint positions via its subscription.
The motion_downloader node accepts a list of targeted traversals from the Moveit via /joint_path_command topic and pass them to Indy Framework for execution.
These are packages of configuration file and launch file for using ROS third party program.
Subsequent documents will explain their detailed usage.