ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Interfacing between ros control and dynamixel controllers

asked 2015-01-06 12:37:21 -0500

Sphenop gravatar image

I am trying to use the steered wheel base controller plugin with ros control and dynamixel controllers to control a robot having four steered wheels(servos used are dynamixel MX 28). I am able to load the plugin given in the following link: http://wiki.ros.org/steered_wheel_bas... . Now that I have to read and write the states and commands of dynamixel servos, I believe that I have to follow the tutorial in this link: https://github.com/ros-controls/ros_c...

At this stage I am wondering if I can set the values in the topics published by dynamixel controllers to the variables given in the above tutorial directly, or should I be using the dynamixel API's to sets these values. I found the former method to be doubtful as the following link: http://wiki.ros.org/ros_control/Ideas says that "One major feature that is missing in ros_control is a proper realtime-friendly dataflow interface".

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
1

answered 2015-01-23 07:40:14 -0500

updated 2015-02-13 02:22:54 -0500

As Adolfo already explained, you can make a ros_control wrapper that talks to the dynamixel drivers via topics (at which point real-time guarantees do not hold anymore). We recently did this with a 3D printed dynamixel arm and it works surprisingly well. Code is available online: https://github.com/tu-darmstadt-ros-p...

  • hector_small_arm_driver contains the launch files for the dynamixel driver (and some obsolete code for joint state publishing that you can ignore I think)
  • hector_small_arm_ros_control contains the ros_control hardware interface. This fakes the read() and write() method functionality by communicating with the dynamixel driver topics

The packages are not polished and prepared for public consumption, but they should give you some ideas of how you can approach the problem regardless. Note we for instance also have a fake 6th joint on the arm to be able to use standard KDL IK.

edit flag offensive delete link more
1

answered 2015-01-23 03:10:37 -0500

Adolfo Rodriguez T gravatar image

If you use topics to send commands to actuators, you will not have real-time behavior, but then again your application might not have real-time constraints. ros_control can be deployed in real-time systems, but the implementation of your robot hardware abstraction and the controllers you use must be real-time friendly. You must also use an operating system that can deliver real-time guarantees.

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2015-01-06 12:37:21 -0500

Seen: 1,575 times

Last updated: Feb 13 '15