ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

Dynamixel_control: ros2_control implementation for ROBOTIS Dynamixel robots

Today I would like to introduce the dynamixel_control package.

It’s a ros2_control implementation for any kind of ROBOTIS Dynamixel robots. It contains two packages:

  • dynamixel_hardware: the SystemInterface implementation for the multiple ROBOTIS Dynamixel servos.
  • open_manipulator_x_robot: the reference implementation of the ros2_control robot using ROBOTIS OpenManipulator-X.

The dynamixel_hardware package is hopefully compatible any configuration of ROBOTIS Dynamixel servos thanks to the ros2_control's flexible architecture.

Demo with real ROBOTIS OpenManipulator-X

  • Terminal 1

Launch the ros2_control manager for the OpenManipulator-X.

$ ros2 launch open_manipulator_x_robot open_manipulator_x_robot.launch.py
  • Terminal 2

Start the joint_trajectory_controller and send a /joint_trajectory_controller/follow_joint_trajectory goal to move the OpenManipulator-X.

$ ros2 control switch_controllers --start-controllers joint_trajectory_controller
$ ros2 action send_goal /joint_trajectory_controller/follow_joint_trajectory control_msgs/action/FollowJointTrajectory -f "{
  trajectory: {
    joint_names: [joint1, joint2, joint3, joint4, gripper],
    points: [
      { positions: [0.1, 0.1, 0.1, 0.1, 0], time_from_start: { sec: 2 } },
      { positions: [-0.1, -0.1, -0.1, -0.1, 0], time_from_start: { sec: 4 } },
      { positions: [0, 0, 0, 0, 0], time_from_start: { sec: 6 } }
    ]
  }
}"

If you would like to use the velocity control instead, switch to the velocity_controller and publish a /velocity_controller/commands message to move the OpenManipulator-X.

$ ros2 control switch_controllers --start-controllers velocity_controller
$ ros2 topic pub /velocity_controller/commands std_msgs/msg/Float64MultiArray "data: [0.1, 0.1, 0.1, 0.1, 0]"

TODO

  • Apply effort control
  • Use transmission_interface
  • Use joint_limits_interface
9 Likes