Robotis Manipulator-P Integration with RH8D units
Setting-up catkin
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
Adjusting USB latency for performance
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
Preparing to launch
Launch File
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.
Setting IDs and Joint configuration
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.)
Launching
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
Controlling joints
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