This is an old revision of the document!

Main page: robotnik rb-1

This document will cover how to install, launch and test the rb1 simulation. It is based on ROS and uses rviz and gazebo.



If it hasn't been done already, the first step is to install ROS. The installation process and required ROS version varies depending on the OS. The simulation has been tested on ROS melodic and kinetic.

ROS Melodic (Ubuntu 18.04):
ROS Kinetic (Ubuntu 16.04):

If this your first time using ROS, it is recommended to follow the tutorials at:

The next step is to create a catkin workspace to put all the simulation packages. Details are provided here:

RB1 packages

Once ROS has been installed and a catkin workspace has been prepared, the simulation packages can be installed.

A script has been prepared for the complete installation of all the required packages on ROS kinetic and melodic.

The content of the script is as followed:

cd /path/to/catkin_workspace/
git clone 
git clone
git clone -b kinetic-devel

Installs the packages required for the simulation. At the moment only the kinetic-devel branch of kinova-ros works with the simulation. If another version is installed, the arm will be stuck into the rb1 and enable to move.

git clone -b ${ROS_DISTRO}-devel
git clone -b ${ROS_DISTRO}-devel
git clone -b ${ROS_DISTRO}-devel
git clone -b ${ROS_DISTRO}-devel
git clone
git clone
git clone

Install dependencies. ${ROS_DISTRO} is an environment variable corresponding to the ROS distribution installed.

$ sudo apt-get install ros-${ROS_DISTRO}-ros-control ros-${ROS_DISTRO}-joint-state-controller ros-${ROS_DISTRO}-effort-controllers ros-${ROS_DISTRO}-position-controllers ros-${ROS_DISTRO}-velocity-controllers ros-${ROS_DISTRO}-ros-controllers ros-${ROS_DISTRO}-gazebo-ros ros-${ROS_DISTRO}-gazebo-ros-control
#rosdep update
$ rosdep install --from-paths src --ignore-src -r -y

Install or update additional dependencies and packages used for simulations (gazebo…)


Several .launchfiles were prepared to correct a few bugs with the simulation and launch the simulations.

Two main launchfiles called rb1_melodic_complete.launch and rb1_kinetic_complete.launch were prepared. They can be used to start a simulation with: odometry and navigation using rviz; the robot in a 3D environment using gazebo; arm movement using moveit. Please note that this may take a lot of resources, especially on a laptop.

cd /path/to/catkin_workspace/
source devel/setup.bash
roslaunch rb1_fix rb1_${ROS_DISTRO}_complete.launch

Optional arguments:


Once simulation was launched, three windows should open.


The first window contains a 2D representation of the robot in its environment and feedback from the robot sensors.

By clicking on “2D Nav Goal”, it is possible to set a destination to the robot.

Other information can be retrieved such as the images taken from the RGBD camera. To do so, click on the left side of rviz and select “Front RGBD camera”


Gazebo contains a 3D reprentation of the robot in its environment. If commands are sent to the robot, those changes will be reflected in the gazebo simulation.

However, Rviz and gazebo may not be perfectly synchronized. Unlike Rviz, Gazebo simulates the physics of the robot. As such, navigation with Gazebo may be significantly slower depending on the position of the arm.

Moreover, the robot may fall down during the simulation. In order to fix it, the solution is to go to Edit > Reset Model poses.


Moveit is a platform which enables motion planning and the manipulation of objects.

At launch, the robot will be loaded as well as a cursor. This cursors is used to select a destination for the arm.

Once a destination has been set, the movement can be planned and executed using the menu on the bottom right. To do so, select “Start State” and “Goal State” as current, press “Plan”, followed by “Execute”.

If the arm and/or the robot appear in red, it means the arm is in collision with the base. When this happens, moving the arm becomes impossible. To solve this issue, a possible approach is to go to gazebo and Edit > Reset Model poses to reset the position of the arm. A similar issue may appear if a joint is in an impossible position (I.e: joint's angle above its limit)

If the arm is in a difficult position, a possible workaround is to select “Start state” as current, “Goal state” as random valid and allows Cartesian path.

Known issues

  • hardware/rb1_simulation.1608213490.txt.gz
  • Last modified: 2020/12/17 13:58
  • by