This document covers how to control the RB1 from a remote computer.

It will cover the content of rb-1-quickstart.doc.pdf and rb-1-software.doc.pdf and go into additional details.

ROS

ROS

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

ROS Melodic (Ubuntu 18.04): http://wiki.ros.org/melodic/Installation ROS Kinetic (Ubuntu 16.04): http://wiki.ros.org/kinetic/Installation

If this is your first time using ROS, it is recommended to follow the tutorials at: http://wiki.ros.org/ROS/Tutorials

The next step is to create a catkin workspace to put all the simulation packages. Details are provided here: http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment

Starting the robot and initializing the CPU requires pressing buttons at the back of the robot in a certain order.

The green switch corresponds to the ON/OFF button and is responsible for providing energy to the rest of the system. The yellow button resets the motors. The blue button turns the CPU on/off.

The buttons have to be pressed in the order indicated in the image to initialize the robot correctly.

Once the robot has been initialized, its Wifi will be turned on. The name of the robot's Wifi follow the pattern “RB1-SerialNumber”.

Before anything else, it is necessary to register the robot's IP in the computer's /etc/hosts. This step is required to be able to connect to the robot:

  user@remote:~$ sudo nano /etc/hosts
  # add the following line
  192.168.0.200   rb1

Next, the computer's IP has to be added to the robot's own /etc/hosts. This step is necessary to control several ROS topics from a remote computer.

First, connect to the robot's wifi and check your IP address.

  user@remote:~$ ifconfig

Once you have obtained your IP adress (192.168.x.x), connect to the robot and add the name of your computer (equivalent of remote in the example above) to the /etc/hosts file.

  user@remote:~$ ssh rb1@rb1
  rb1@rb1:~$ sudo nano /etc/hosts
  # add the following line
  192.168.x.x  name_of_computer

Note: As a security measure, super user privileges were removed from the rb1 user. To access an account with the required permissions and edit the file, contact Panagiotis.

ROS packages are available to control the RB1 robot with ROS. They can be used to move the robot's arm around. They require using MoveIt and rviz.

From the rb1 directly

In order to control the robot directly using rviz, it is necessary to connect a screen and keyboard to the robot. A ssh connection to the robot isn't enough as the rviz interface won't be displayed.

Once the screen is connected, a Ubuntu 14 interface will be displayed.

In order to start manipulating the robot's arm, open a terminal:

  rb1@rb1:~$ cd catkin_ws/
  rb1@rb1:~$ source devel/setup.bash
  rb1@rb1:~$ roslaunch rb1_jaco_3fg_moveit_config demo_rtc.launch

This will open rviz and moveit. In Motion Planning > Planning Request > Planning Group, select 'rb1_arm'. By default, it is on 'gripper' and they cannot be controlled via the moveit interface.

The arm can now be moved as wanted.

From a remote computer

The rb1 can also be controlled remotely from a computer. First, connect to the robot's Wifi, open a terminal and type:

  user@remote:~$ export ROS_MASTER_URI=http://rb1:11311

Typing this command is necessary to communicate with the ROS topics on the robot. It has be typed every time a new terminal is opened. If frequent use is necessary, consider adding this line to ~/.bashrc. However, don't forget to remove it when you are no longer using the RB1 as this will prevent ROS from starting locally.

To check whether it worked, type in the same terminal:

 user@remote:~$ rostopic list

If everything is working correctly, this will display the different topics from the rb1 robot.

The packages necessary to control the rb1 can be copied from the robot.

 user@remote:~$ mkdir -p ~/catkin_rb1_ws/src
 user@remote:~$ scp -r rb1@rb1:~/catkin_ws/src/* ~/catkin_rb1_ws/src/
 user@remote:~$ cd ~/catkin_rb1_ws
 user@remote:~/catkin_rb1_ws$ catkin_make   

Some robot-specific packages may fail compiling (missing dynamixel.h / libpcan.h). If those are the only errors, you may continue.

Rviz and move it can now be started to control the robot:

 user@remote:~/catkin_rb1_ws$ source devel/setup.bash
 user@remote:~/catkin_rb1_ws$ roslaunch rb1_jaco_3fg_moveit_config demo_rtc.launch

The kinova's arm can be controlled individually. The required packages can be downloaded as followed:

  user@remote:~$ mkdir -p ~/catkin_kinova/src
  user@remote:~$ cd catkin_kinova/src
  user@remote:~/catkin_kinova/src$ git clone https://github.com/Kinovarobotics/kinova-ros
  user@remote:~/catkin_kinova/src$ catkin_make

Next, it is first necessary to connect the computer to the arm via USB. This requires an USB-A to USB-B cable.

In the computer network settings, select wired settings, and create a new configuration. The connection has to be Link-Local Only.

ROS can now be started:

  user@remote:~$ cd ~/catkin_kinova
  user@remote:~/catkin_kinova$ source devel/setup.bash
  user@remote:~/catkin_kinova$ roslaunch kinova_bringup kinova_robot.launch kinova_robotType:=j2n6s300 

This will start rviz and moveit and allow control of the arm.

More further information and additional launchfiles: MoveIt

The torso isn't working.

Work in progress.

Remote controller: “Unable to connect to move_group action server 'move_group' within allotted time (30s)” and “Action client not connected: rt_traj_exe/follow_joint_trajectory”

First, check whether the rt_traj_exe/follow_joiny_tractory is visible on the computer.

 user@remote:~$ rostopic list

If they are not visible, type 'export ROS_MASTER_URI=http://rb1:11311' and retry.

If they are visible but the simulation still doesn't work, it means that the rb1's etc/hosts file is missing the computer's IP and name or that the information are incorrect.

  • hardware/rb1_quickstart.txt
  • Last modified: 2021/02/12 14:25
  • by cedric.lb