/ros2_dynamixel_bridge

This package provides an interface between ROS2 and Robotis Dynamixel servos.

Primary LanguageC++MIT LicenseMIT

💾 ros2_dynamixel_bridge

Build Status Spell Check status

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.