Edit on GitHub



  • This instructions were tested on Ubuntu 16.04 and ROS Kinetic Kame.
  • If you want more specfic information about OpenManipulator, please refer to the OpenManipulator e-Manual.


  • We are happy to announce a new ROS book: “ROS Robot Programming, A Handbook is written by TurtleBot3 Developers”. This book has been published in Korean, English, Chinese and Japanese. It contains the following:
    • ROS Kinetic Kame: Basic concept, instructions and tools
    • How to use sensor and actuator packages on ROS
    • Embedded board for ROS: OpenCR
    • SLAM & Navigation with TurtleBot3
    • How to program a delivery robot using ROS Java
    • OpenManipulator simulation using MoveIt! and Gazebo
  • Please refer to this book for more information on ROS, SLAM, and Navigation that are not covered in this e-manual. You can download the pdf of this book.

TIP: The terminal application can be found with the Ubuntu search icon on the top left corner of the screen. The shortcut key for running the terminal is Ctrl-Alt-T.

TurtleBot3 with OpenManipulator

The OpenManipulator by ROBOTIS is one of the manipulators that support ROS, and has the advantage of being able to easily manufacture at a low cost by using Dynamixel actuators with 3D printed parts.

The OpenManipulator has the advantage of being compatible with TurtleBot3 Waffle and Waffle Pi. Through this compatibility can compensate for the lack of freedom and can have greater completeness as a service robot with the the SLAM and Navigation capabilities that the TurtleBot3 has. TurtleBot3 and OpenManipulator can be used as a mobile manipulator and can do things like the following videos.

Software Setup

NOTE: Before you make open_manipulator_with_tb3, please make sure turtlebot3 and open_manipulator packages have been installed previously.

Hardware Setup

OpenCR Setup


NOTE: Please double check the OpenCR usb port name in `turtlebot3_core.launch

  $ roslaunch open_manipulator_with_tb3_tools robot.launch


$ roslaunch open_manipulator_with_tb3_tools slam.launch use_gazebo:=false

$ roslaunch open_manipulator_with_tb3_tools navigation.launch use_gazebo:=false



Pick and Place

We provide the pick and place example for mobile manipulation. This example is used smach(task-level architecture) to send action to robot.

Bringup gazebo simulator

$ roslaunch open_manipulator_with_tb3_gazebo rooms.launch

Launch navigation, moveIt!

$ roslaunch open_manipulator_with_tb3_tools rooms.launch 

Launch task controller

$ roslaunch open_manipulator_with_tb3_tools task_controller.launch 

TIP: Smach provides state graph. Try to run smach viewer and how to robot can pick and place. rosrun smach_viewer smach_viewer.py