Edit on GitHub

[ROS] Setup


  • The test is done on ROS Kinetic Kame installed in Ubuntu 16.04.
  • Make sure ROS dependencies are installed before performing these instructions. - Install ROS Packages

WARNING : If you would like to control OpenMANIPULATOR-X on OpenCR (Embedded board) instead of using ROS, please set it up as described in OpenCR Setup.

Install Ubuntu on PC

Download and install Ubuntu 16.04 on your PC. Tutoral guide will be helpful for you to install Ubuntu Desktop.

Install ROS on PC

The following script will allow you to simplify the ROS installation procedure. Run the following commands in a terminal window. The terminal application can be found with the Ubuntu search icon on the top left corner of the screen. The shortcut key to open a terminal is Ctrl+Alt+t. After installing ROS, please reboot PC.

$ sudo apt-get update && sudo apt-get upgrade
$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros_kinetic.sh && chmod 755 ./install_ros_kinetic.sh && bash ./install_ros_kinetic.sh

NOTE: In order to check which packages are installed, please check this link out. install_ros_kinetic.sh

If you prefer a manual installation, please follow the link below.

Install ROS Packages

Install dependent packages for OpenMANIPULATOR-X. Run the following commands in a terminal window.

$ sudo apt-get install ros-kinetic-ros-controllers ros-kinetic-gazebo* ros-kinetic-moveit* ros-kinetic-industrial-core
$ cd ~/catkin_ws/src/
$ git clone https://github.com/ROBOTIS-GIT/DynamixelSDK.git
$ git clone https://github.com/ROBOTIS-GIT/dynamixel-workbench.git
$ git clone https://github.com/ROBOTIS-GIT/dynamixel-workbench-msgs.git
$ git clone https://github.com/ROBOTIS-GIT/open_manipulator.git
$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_msgs.git
$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_simulations.git
$ git clone https://github.com/ROBOTIS-GIT/robotis_manipulator.git
$ cd ~/catkin_ws && catkin_make

Communication Converter



Connect micro USB (connected to PC), DYNAMIXEL’s(OpenMANIPULATOR-X), and 12V Power to U2D2 and U2D2 power hub board as shown below.

NOTE : Please refer to U2D2 e-Manual and U2D2 power hub board e-manual for detailed connection of U2D2 and U2D2 power hub board.

USB Latency Timer Setting

In Linux(Ubuntu platform) environment, USB latency time is set to 16ms by default. Follow the steps below to set the communication latency time to the lowest value (1ms) between DYNAMIXEL’s and PC connected via USB.

Open a terminal window and run the roscore.

$ roscore

With the roscore running, open a new terminal window and enter the following command to set usb latency time.

$ rosrun open_manipulator_controller create_udev_rules

TIP: This entered command set USB latency timer to 1 ms. If you would like to see the setting, run the following command in a terminal.
cat /sys/bus/usb-serial/devices/ttyUSB0/latency_timer


This section describes how to set up OpenCR as a communication board between ROS Packages of PC and DYNAMIXEL’s of OpenMANIPULATOR-X.
If you want to operate OpenMANIPULATOR-X on embedded system (OpenCR) without ROS, see OpenCR Setup.


Connect micro USB (connected to PC), DYNAMIXEL’s(OpenMANIPULATOR-X), and 12V Power to OpenCR as shown below.

NOTE : Please refer to the detailed description of OpenCR.

Upload Source code

Please refer to the following pages to install the Arduino IDE and enable the OpenCR board in the Arduino IDE environment.

After completing all the above settings, open the Arduino IDE and open usb to dxl example source code as shown below. Go to ExamplesOpenCR10.Etcusb_to_dxl on Arduino IDE for OpenCR.

Upload the usb to dxl example source to OpenCR.

When the upload is completed, the following comments are displayed in the log window.

If it is shown different comments than this, try uploading again. Refer to the OpenCR for details.

TIP: If an error of cmd_read_board_name fail: 0xF020 occurs constantly during upload, please refer to OpenCR e-manual to enter the firmware recovery mode and upload the source code again after entering mode.