Skip to content

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.

  • Setup ROS sources.list
1
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
  • Setup key
1
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 && sudo apt-get update
  • Install ROS Kinetic
1
sudo apt-get install ros-kinetic-desktop-full
  • Initialize rosdep
1
sudo rosdep init && rosdep update
  • Install Moveit and dependencies
1
2
sudo apt-get install ros-kinetic-moveit \
                       ros-kinetic-industrial-core
  • Install Gazebo Simulator and dependencies
1
2
3
4
5
6
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
  • Setup enviroment
1
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc && source ~/.bashrc
  • Create a ROS workspace
1
mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/ && catkin_make
1
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc && source ~/.bashrc
  • Download and compile Indy packages
1
cd ~/catkin_ws/src && git clone https://github.com/neuromeka-robotics/indy-ros
1
cd ~/catkin_ws && catkin_make && source devel/setup.bash

Indy Package List

1
2
3
4
5
6
7
├── 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.