robotis_manipulator_integration:setting_up_catkin

Robotis Manipulator-P Integration with RH8D units

To control the Robotis Manipulator Arm with an RH8D unit, some ROS packages need to be specially modified to for the Robot hand.
These are available from our GIT.

Therefore, clone all the necessary repositories as shown below.

WARNING: Failing to use a modified Repository from our GIT will result in the hand not operating properly and/or the controller not launching at all.

$ cd ~/catkin_ws/src/
$ git clone https://github.com/seedrobotics/DynamixelSDK.git
$ git clone https://github.com/seedrobotics/dynamixel-workbench.git
$ git clone https://github.com/ROBOTIS-GIT/dynamixel-workbench-msgs.git
$ git clone https://github.com/seedrobotics/open_manipulator_p.git
$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_msgs.git
$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_p_simulations.git
$ git clone https://github.com/ROBOTIS-GIT/robotis_manipulator.git
$ cd ~/catkin_ws && catkin_make

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_p_controller create_udev_rules

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

Before launching the controller, please check the launch file in src/ipen_manipulator/open_manipulator_p_controller/launch.

Pay special attention to the control_period parameter.

For use with RH8D units, this value must be set to a minimum of 0.020 (which means 50Hz).
As an example, a value of 0.025 corresponds to 40Hz and a value of 0.040 corresponds to 25Hz.

A Robotis Arm, connected to an RH8D unit running firmware version 49 or higher and with internal comm set up at 1Mbps should use a period of 0.20.
Older versions OR if you experience issues, raise the value by 0.005 at a time until you get the expected results.
Also make sure to check the USB latency setting above, which directly impacts the ability to run at lower control periods/faster frame rates.

Check the remaining settings to make sure they all match your environment.

The next step, before launch is checking the configured IDs.

By default the controller should launch correctly, with only the Robotis Arm joints.

To add the RH8D joints you need to edit the file

src\open_manipulator_p\open_manipulator_p_libs\src\open_manipulator_p.cpp

and add the appropriate joints.

Bear in mind that an RH8D, by default, has Joint IDs from 40~48 for a Left hand and 30~38 for a Right hand. IDs 30 and 40 are the main board so the control table doesn't exactly match the one on the actuators.
The IDs for the actuators x1 to x8. Take into consideration that 31/41 (wrist rotation) may be mechanically bypassed disabled if you're using an ISO or similar mounting adapter and thus moving it may yield no result (Check with support@seedrobotics.com if you have questions about this.)

After setting those parameters, launch OpenMANIPULATOR-P controller to start [ROS] Operation.

First, open a terminal then run roscore along with following command.

$ roscore

Next, open a new Terminal and launch the controller package along with following command.

$ roslaunch open_manipulator_p_controller open_manipulator_p_controller.launch

To test the set up, launch the OpenManipulator GUI program:

$ roslaunch open_manipulator_p_control_gui open_manipulator_p_control_gui.launch

Copyright © 2015-2023 Seed Robotics Ltd

  • robotis_manipulator_integration/setting_up_catkin.txt
  • Last modified: 2021/07/01 15:28
  • by SeedR KB Admin