Permalink
Fetching contributors…
Cannot retrieve contributors at this time
732 lines (496 sloc) 37.7 KB
layout lang ref read_time share author_profile permalink sidebar
archive
en
openmanipulator
true
true
false
/docs/en/platform/openmanipulator/
title nav
OpenManipulator
openmanipulator

Overview

ROS-enabled OpenManipulator is a full open robot platform consisting of OpenSoftware​, OpenHardware and OpenCR(Embedded board)​.

OpenSoftware

OpenManipulator are based on ROS ​and OpenSource. ROS official hardware platform ,TurtleBot series has been supporting ‘TurtleBot Arm’. The OpenManipulator has full hardware compatibility with TurtleBot3​, and allows users to control it more easily by linking with the MoveIT! package. Even if you do not have a real robot, you can control the robot in the Gazebo simulator​.

OpenHardware

The OpenManipulator is oriented towards Open Hardware​. Most of the components except for some frames are uploaded as STL files that can be 3d printing. This allows users to modify the length of the link and the design of the robot to suit the intended use. The open manipulator also uses the Dynamixel X ​series used in TurtleBot 3. Dynamixel has a modular form and adopts daisy chain method. This allows users to easily change and add joints for some torque and degree of freedom they need. Taking advantage of these advantages, we are planning a total of seven different types (For example, Chain, SCARA, Link, Planar, Delta, Stewart and Linear) of OpenManipulator.

OpenCR (Embedded board)

The OpenManipulator can also be controlled via OpenCR (Open-source Control module for ROS), the control board of TurtleBot3. OpenCR's computing power and real-time control are used to support forward, inverse kinematics, and profile control examples. In addition, OpenCR can interoperate with many functions provided by ROS through message communication with ROS, which will evolve into ROS 2.0 in the future.

Dynamixel Examples

OpenManipulator is composed by Dynamixel X series and 3D printing parts. Dynamixel has a modular form and adopts daisy chain method. This allows users to easily change and add joints for some torque and degree of freedom they need. Moreover, growing 3D printing technology makes anyone can make anything they want with low cost and rapid time. We suggest some examples of links and safety parts. Taking advantage of these advantages, we are planning a total of seven different types of OpenManipulator.

Introduction Video

<iframe src="https://player.vimeo.com/video/236147296" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>

ROSCon 2017 Vancouver Day 1: Introducing OpenManipulator; the full open robot platform from OSRF on Vimeo.

<iframe width="560" height="315" src="https://www.youtube.com/embed/B2pnXtooKOg" frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube.com/embed/Qhvk5cnX2hM" frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube.com/embed/P82pZsqpBg0" frameborder="0" allowfullscreen></iframe>

Specification

Hardware Specification

Items Unit RM-X52-TNM RM-X52-TNL
Actuator Dynamixel XM430-W350-T Dynamixel XL430-W250-T
Input Voltage V 12 12
DOF - 5 (4 DOF + 1 DOF Gripper) 5 (4 DOF + 1 DOF Gripper)
Payload g 500 50
Speed(Joint) RPM 46 61
Weight kg (lb) 0.70 (1.54) 0.51 (1.12)
Reach mm (in) 380 (14.9) 380 (14.9)
Gripper Stroke mm (in) 2075 (0.792.95) 2075 (0.792.95)
Communication - TTL (Level Multidrop BUS) TTL (Level Multidrop BUS)
Software - ROS, Dynamixel SDK, Arduino, Processing ROS, Dynamixel SDK, Arduino, Processing
Main Controller - PC, OpenCR PC, OpenCR

Dimension

Hardware Setup

Part Lists

Part Name RM-X52-TNM RM-X52-TNL
Chassis Parts LONG LINK FRAME 1 1
. SHORT LINK FRAME 1 1
. RAIL BRACKET(LEFT) 1 1
. RAIL BRACKET(RIGHT) 1 1
. PALM GRIPPER 2 2
. LINK ROD 2 2
. FLANGE BUSH 4 4
. CRANK ARM 1 1
. RAIL BLOCK 2 2
. FR12_S101_K 1 1
. FR12_S102_K 2 2
. FR12_H101_K 2 2
. FR12_H104_K 1 1
Actuators Dynamixel XM430-W350-T 5 0
. Dynamixel XL430-W250-T 0 5
Cables CABLE_3P_100MM 1 1
. CABLE_3P_180MM 3 3
. CABLE_3P_240MM 1 1
Tools SCREW_DRIER_DEFAULT 1 1
. Wrench_Hex_1_5X90 1 1
. Wrench_Hex_2_0X100 1 1
. Wrench_Hex_2_5X110 1 1
Miscellaneous DC12_A01_SPACER_RING 24 24
. WB_M2_5X12_NYLOK 8 8
. NUT_M2_5(0.45P) 16 16
. NUT_M3 4 4
. WB_M2X03 42 42
. WB_M2X04 4 4
. WB_M2_5X06 8 8
. WB_M2_5X08 16 16
. FHS_M2_5X14 12 12
. WB_M3X10 4 4
. WB_M2_5X04 8 8
. HN12_I101 3 3
. IGUS_JFM_1113_05 3 3
. DC12_CAP_IDLE 3 3
. GRIPPER_PAD 2 2
  • Optional parts
Part Name RM-X52-TNM RM-X52-TNL
Powers SMPS 12V5A 1 1
. A/C Cord 1 1
Boards OpenCR 1 1
. U2D2 1 1

3D Printed Parts

We offer 3D printed parts to safety. User can modify cad files and 3D Printed it to assemble OpenManipulator.

Assembly Manual

OpenManipulator is delivered as unassembled parts in the boxes. Follow the instructions to assemble it.

Below video might be help you.

<iframe width="560" height="315" src="https://www.youtube.com/embed/eJTIeDepmNo" frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen></iframe>

Software Setup

ROS and Gazebo

Install dependent packages for the OpenManipulator.

$ sudo apt-get install ros-kinetic-ros-controllers ros-kinetic-gazebo* ros-kinetic-moveit* ros-kinetic-dynamixel-sdk ros-kinetic-dynamixel-workbench-toolbox ros-kinetic-industrial-core
$ cd ~/catkin_ws/src/
$ 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
$ cd ~/catkin_ws && catkin_make

If catkin_make command is completed without any errors, preparation for OpenManipulator is done.

Load an OpenManipulator on RViz.

$ roslaunch open_manipulator_description open_manipulator_rviz.launch

Bringup

To load an OpenManipulator with DYNAMIXEL X-series(XM or XL), you can set parameters for what you've configured for your own Dynamixel

<launch>
  <arg name="use_robot_name"         default="open_manipulator"/>
  <arg name="device_name"            default="/dev/ttyUSB0"/>
  <arg name="baud_rate"              default="1000000"/>
  <arg name="protocol_version"       default="2.0"/>

  <arg name="joint_controller"       default="position_mode"/>

  <arg name="joint1_id"              default="11"/>
  <arg name="joint2_id"              default="12"/>
  <arg name="joint3_id"              default="13"/>
  <arg name="joint4_id"              default="14"/>

  <arg name="gripper_controller"     default="current_mode"/>

  <arg name="gripper_id"             default="15"/>

  <node pkg="open_manipulator_dynamixel_ctrl" type="dynamixel_controller" name="dynamixel_controller" required="true" output="screen">
    <param name="robot_name"           value="$(arg use_robot_name)"/>
    <param name="device_name"          value="$(arg device_name)"/>
    <param name="baud_rate"            value="$(arg baud_rate)"/>
    <param name="protocol_version"     value="$(arg protocol_version)"/>

    <param name="joint_controller"     value="$(arg joint_controller)"/>

    <param name="joint1_id"            value="$(arg joint1_id)"/>
    <param name="joint2_id"            value="$(arg joint2_id)"/>
    <param name="joint3_id"            value="$(arg joint3_id)"/>
    <param name="joint4_id"            value="$(arg joint4_id)"/>

    <param name="gripper_controller"   value="$(arg gripper_controller)"/>

    <param name="gripper_id"           value="$(arg gripper_id)"/>
  </node>
</launch>
$ roslaunch open_manipulator_dynamixel_ctrl dynamixel_controller.launch

Enter rostopic list to list up the activated topics.

/joint_states
/open_manipulator/goal_gripper_position
/open_manipulator/goal_joint_position
/rosout
/rosout_agg

OpenManipulator is controllered by ROS message. For example, use below command to publish joint position(in radian).

$ rostopic pub /open_manipulator/goal_joint_position sensor_msgs/JointState "header:
seq: 0
stamp: {secs: 0, nsecs: 0}
frame_id: ''
name: ['']
position: [0]
velocity: [0]
effort: [0]"

or using RQT

Manipulation

We provide manipulation layer to use MoveIt!. You can handle it using RViz or ROS messages.

$ roslaunch open_manipulator_moveit open_manipulator_demo.launch use_gazebo:=false

Below services are help you to manipulate OpenManipulator

/open_manipulator/get_joint_position
/open_manipulator/get_kinematics_pose
/open_manipulator/set_gripper_position
/open_manipulator/set_joint_position
/open_manipulator/set_kinematics_pose

In order to control the gripper, please use topic publish with below command in a new terminal window.
(parameters : grip_on, grip_off, neutral)

$ rostopic pub /open_manipulator/gripper std_msgs/String "data: 'grip_on'" --once

Mobile Manipulation

TIP: You can get a more information about it in Manipulation section of TurtleBot3 {: .notice--info}

Install dependent packages

$ cd ~/catkin_ws/src
$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_with_tb3.git
$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_with_tb3_msgs.git
$ git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
$ cd ~/catkin_ws && catkin_make

Load a TurtleBot3 Waffle or Waffle Pi with OpenManipulator on RViz.

TIP: TB3_MODEL = waffle, waffle_pi {: .notice--info}

$ export TURTLEBOT3_MODEL=${TB3_MODEL}
$ roslaunch open_manipulator_with_tb3_description open_manipulator_with_tb3_rviz.launch

Simulation

Gazebo

NOTE : This instruction was tested on Ubuntu 16.04 and ROS Kinetic Kame. {: .notice--info}

Spawn Model

Load an OpenManipulator on Gazebo simulator and click Play button

$ roslaunch open_manipulator_gazebo open_manipulator_gazebo.launch

Enter rostopic list to list up the activated topics.

/clock
/gazebo/link_states
/gazebo/model_states
/gazebo/set_link_state
/gazebo/set_model_state
/open_manipulator/grip_joint_position/command
/open_manipulator/grip_joint_position/pid/parameter_descriptions
/open_manipulator/grip_joint_position/pid/parameter_updates
/open_manipulator/grip_joint_position/state
/open_manipulator/grip_joint_sub_position/command
/open_manipulator/grip_joint_sub_position/pid/parameter_descriptions
/open_manipulator/grip_joint_sub_position/pid/parameter_updates
/open_manipulator/grip_joint_sub_position/state
/open_manipulator/joint1_position/command
/open_manipulator/joint1_position/pid/parameter_descriptions
/open_manipulator/joint1_position/pid/parameter_updates
/open_manipulator/joint1_position/state
/open_manipulator/joint2_position/command
/open_manipulator/joint2_position/pid/parameter_descriptions
/open_manipulator/joint2_position/pid/parameter_updates
/open_manipulator/joint2_position/state
/open_manipulator/joint3_position/command
/open_manipulator/joint3_position/pid/parameter_descriptions
/open_manipulator/joint3_position/pid/parameter_updates
/open_manipulator/joint3_position/state
/open_manipulator/joint4_position/command
/open_manipulator/joint4_position/pid/parameter_descriptions
/open_manipulator/joint4_position/pid/parameter_updates
/open_manipulator/joint4_position/state
/open_manipulator/joint_states
/rosout
/rosout_agg

OpenManipulator in Gazebo is controllered by ROS message. For example, use below command to publish joint position(in radian).

$ rostopic pub /open_manipulator/joint2_position/command std_msgs/Float64 "data: -1.0" --once

MoveIt!

You can use MoveIt! to manipulate OpenManipulator. Please refer to Manipulation section

Launch MoveIt!

$ roslaunch open_manipulator_moveit open_manipulator_demo.launch use_gazebo:=true

Gripper Control (parameters : grip_on, grip_off, neutral)

$ rostopic pub /open_manipulator/gripper std_msgs/String "data: 'grip_on'" --once

Embedded Board Setup

OpenManipulator is compatible with OpenCR. We offer API to easily control manipulator. This API supports Dynamixel, Dynamixel X including protocol 1.0 and 2.0. Furthermore, this code can be used Friends of OpenManipulator. User can make thier code in Arduino IDE and simulate or control using Processing GUI.

Arduino IDE

Download Arduino IDE and load OpenCR board on it

Find example source codes.

Go to ExamplesOpenManipulatorexampleArduinoChainopen_manipulator_chain on Arduino IDE for OpenCR.

Processing

Download Processing and load OpenCR board on it

Open Processing and Go to ToolsAdd Tool... Search ControlP5 and install it.

Open processing source code file (OpenCR>arduino>opencr_arduino>opencr>libraries>OpenManipulator>example>Processing>Chain>Chain.pde) on Processing IDE, and Run it.

NOTE: Upload OpenCR example source code to OpenCR before run processing source code. {: .notice--info}

Friends

Friends List

OpenManipulator SCARA

Specification

Items Unit
Actuator Dynamixel XM430-W350-T
Input Voltage V 12
DOF - 4 (3 DOF + 1 End-Effector)
Speed(Joint) RPM 46
Reach mm (in) 276 (10.87)
Communication - TTL (Level Multidrop BUS)
Software - Dynamixel SDK, Arduino, Processing
Main Controller - PC, OpenCR

Dimension

Hardware Setup

Part Lists

| | Part Name | SCARA | Link |--------- |---------- |--------- | |Chassis Parts |BASE FRAME|1|Download Link| |. |PEN HOLDER|1|Download Link| |. |FRM BASE|1|Download Link| |. |TAP HOLDER|1|Download Link| |. |FR12_H101_K|4|Shop Link| |. |FR12_S102_K|3|Shop Link| |. |HN12_I101|4|Shop Link| |Actuators |Dynamixel XM430-W350-T|4|Shop Link| |Cables |CABLE_3P_130MM|3|Shop Link| |. |CABLE_3P_240MM|1|Shop Link| |Miscellaneous |WB_M2X03|24|Shop Link| |. |WB_M2_5X4|14|Shop Link| |. |WB_M2_5X06|8|Shop Link| |. |WB_M2_5X12|2|Shop Link| |. |FHS_M2_5X14|12|Shop Link| |. |NUT_M2_5(0.45P)|8|Shop Link|

3D Printed Parts

Software Setup

OpenCR

Go to ExamplesOpenManipulatorexampleArduinoSCARAopen_manipulator_SCARA on Arduino IDE for OpenCR.

Processing

Open processing source code file (OpenCR>arduino>opencr_arduino>opencr>libraries>OpenManipulator>example>Processing>SCARA>SCARA.pde) on Processing IDE, and Run it.

NOTE: Upload OpenCR example source code to OpenCR before run processing source code. {: .notice--info}

Video

<iframe width="560" height="315" src="https://www.youtube.com/embed/4PK3I1JfSzc" frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen></iframe>

OpenManipulator Link

Specification

Items Unit
Actuator Dynamixel XM430-W350-T
DOF - 3
Payload With Suction g (lb) 500 (1.10)
Speed(Joint) rad/sec 4.82
Weight kg(lb) 0.55 (1.21)
Reach mm (in) 350 (13.78)
Communication - TTL (Level Multidrop BUS)
Software - Dynamixel SDK, Arduino, Processing
Main Controller - PC, OpenCR

Dimension

Hardware Setup

Part Lists

Part Name SCARA Link
Chassis Parts BASE FRAME 1 Download Link
. BASE LINK 1 Download Link
. ROTATION BASE 1 Download Link
. HOLDER A 1 Download Link
. HOLDER B 1 Download Link
. LINK 50 1 Download Link
. LINK 200 A 1 Download Link
. LINK 50 FOR 250 1 Download Link
. LINK 200 FOR 250 1 Download Link
. LINK 200 B 4 Download Link
. TRIANGLE LINK 1 Download Link
. TOOL LINK 1 Download Link
Actuators Dynamixel XM430-W350-T 3 Shop Link
Cables CABLE_3P_180MM 1 Shop Link
. CABLE_3P_240MM 1 Shop Link
Miscellaneous FHS_M2x3mm 16 Shop Link
. FHS_M2x6mm 4 Shop Link
. FHS_M2.5x5mm 8 Shop Link
. FHS_M2.5x10mm 4 Shop Link
. FHS_M3x10mm 4 Shop Link
. NUT_M2 4 Shop Link
. NUT_M2.5 4 Shop Link
. PSCBRJ6-9 18 Shop Link
. MSRB6-1.0 40 Shop Link
. NSFMR6-38 1 Shop Link
. NSFMR6-42 1 Shop Link
. NSFMR6-24 6 Shop Link
. Ball Bearing(O.D 10mm / I.D 6mm) 20 Shop Link

3D Printed Parts

CAD Files (Onshape, Thingiverse)

Software Setup

OpenCR

Go to ExamplesOpenManipulatorexampleArduinoLinkopen_manipulator_link on Arduino IDE for OpenCR.

Processing

Open processing source code file (OpenCR>arduino>opencr_arduino>opencr>libraries>OpenManipulator>example>Processing>Link>Link.pde) on Processing IDE, and Run it.

NOTE: Upload OpenCR example source code to OpenCR before run processing source code. {: .notice--info}

Video

<iframe width="560" height="315" src="https://www.youtube.com/embed/WR9_1AheOok" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

OpenManipulator Planar

Specification

  • Comming Soon

Dimension

  • Comming Soon

Hardware Setup

Parts of OpenManipulator

  • Items that are painted in purple in above link are purchased on ROBOTIS SHOP
  • Items that are painted in green in above link are purchased on shopping mall
  • Items that are painted in yellow in above link are 3D printing parts

CAD Files (Onshape, Thingiverse)

Software Setup

  • Comming Soon

Video

  • Comming Soon

OpenManipulator Delta

Specification

  • Comming Soon

Dimension

  • Comming Soon

Hardware Setup

Parts of OpenManipulator

  • Items that are painted in purple in above link are purchased on ROBOTIS SHOP
  • Items that are painted in green in above link are purchased on shopping mall
  • Items that are painted in yellow in above link are 3D printing parts

CAD Files

Software Setup

  • Comming Soon

Video

  • Comming Soon

OpenManipulator Stewart

Specification

  • Comming Soon

Dimension

  • Comming Soon

Hardware Setup

Parts of OpenManipulator

  • Items that are painted in purple in above link are purchased on ROBOTIS SHOP
  • Items that are painted in green in above link are purchased on shopping mall
  • Items that are painted in yellow in above link are 3D printing parts

CAD Files

Software Setup

  • Comming Soon

Video

  • Comming Soon

OpenManipulator Linear

Specification

  • Comming Soon

Dimension

  • Comming Soon

Hardware Setup

Parts of OpenManipulator

  • Items that are painted in purple in above link are purchased on ROBOTIS SHOP
  • Items that are painted in green in above link are purchased on shopping mall
  • Items that are painted in yellow in above link are 3D printing parts

CAD Files

Software Setup

  • Comming Soon

Video

  • Comming Soon