:floppydisk: ros2dynamixel_bridge
June 9, 2023 ยท View on GitHub
:floppy_disk: ros2_dynamixel_bridge
This package provides the interface between ROS2 and Robotis Dynamixel servos.
How-to-build
cd $COLCON_WS/src
git clone --recursive https://github.com/107-systems/ros2_dynamixel_bridge
cd $COLCON_WS
source /opt/ros/humble/setup.bash
colcon build --packages-select ros2_dynamixel_bridge
How-to-run
cd $COLCON_WS
. install/setup.bash
ros2 launch ros2_dynamixel_bridge bridge-default.py
or
cd $COLCON_WS
ros2 launch ros2_dynamixel_bridge bridge-l3xz.py
Upon start-up the ROS2 node will scan the connected bus and automatically create topics for each discovered Robotis Dynamixel servo.
Interface Documentation
Subscribed Topics
| Default name | Type | Description |
|---|---|---|
/dynamixel/servo_1/angle/target | std_msgs/Float32 | Servo #1 target angle / rad |
/dynamixel/servo_1/angular_velocity/target | std_msgs/Float32 | Servo #1 target angular velocity / rad/sec |
/dynamixel/servo_1/mode/set | msg/Mode.msg | Servo #1 operation mode (Position Control / Angular Velocity Control) |
/dynamixel/servo_2/angle/target | std_msgs/Float32 | Servo #2 target angle / rad |
/dynamixel/servo_2/angular_velocity/target | std_msgs/Float32 | Servo #2 target angular velocity / rad/sec |
/dynamixel/servo_2/mode/set | msg/Mode.msg | Servo #2 operation mode (Position Control / Angular Velocity Control) |
| ... | ... | ... |
/dynamixel/servo_n/angle/target | std_msgs/Float32 | Servo #n target angle / rad |
/dynamixel/servo_n/angular_velocity/target | std_msgs/Float32 | Servo #n target angular velocity / rad/sec |
/dynamixel/servo_n/mode/set | msg/Mode.msg | Servo #n operation mode (Position Control / Angular Velocity Control) |
Published Topics
| Default name | Type | Description |
|---|---|---|
/l3xz/ros2_dynamixel_bridge/heartbeat | std_msgs/UInt64 | Heartbeat signal containing the node uptime in seconds. |
/dynamixel/servo_1/angle/actual | std_msgs/Float32 | Servo #1 current angle / rad |
/dynamixel/servo_2/angle/actual | std_msgs/Float32 | Servo #1 current angle / rad |
| ... | ... | ... |
/dynamixel/servo_n/angle/actual | std_msgs/Float32 | Servo #n current angle / rad |
Parameters
| Name | Default | Description |
|---|---|---|
serial_port | /dev/ttyUSB0 | Serial port of RS485 bus. |
serial_port_baudrate | 2 Mbps | Serial baud rate of RS485 bus. |
required_node_id_list | {1, 2, 3, 4, 5, 6, 7, 8} | A list of required Dynamixel servo IDs to be uncovered during startup. |
check_required_node_id_list | True | If this parameter is True then the discovered servo IDs are compared with the required_node_id_list during startup. |
