Introduction
Overview
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 \
ros-kinetic-industrial-core
|
- Install Gazebo Simulator and dependencies
| sudo apt-get install ros-kinetic-gazebo-ros-pkgs \
ros-kinetic-gazebo-ros-control \
ros-kinetic-joint-state-controller \
ros-kinetic-effort-controllers \
ros-kinetic-position-controllers \
ros-kinetic-joint-trajectory-controller
|
| 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-ros
├── indy_driver
├── indy7_description
├── indy7_moveit_config
├── indy7_control
├── indy7_gazebo
└── ...
|
Indy Driver
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.
Other Packages
These are packages of configuration file and launch file for using ROS third party program.
Subsequent documents will explain their detailed usage.