I have an arm that uses dynamixel servo motors. I use the [dynamixel motor stack](https://github.com/arebgun/dynamixel_motor "dynamixel motor stack") along with Moveit! to operate it. The dynamixel stack is structured very similarly to ros_control, however, it is not directly compatible with it. It comes with it's own joint_trajectory_action_controller that interfaces with Moveit!. It looks like the author rewrote the joint_trajectory_action_controller so that he could broadcast positions/velocities of mutliple joints on the bus simultaneously and improve performance.
I have another motor that I want to put into the same kinematic chain as the arm (prismatic slider for the arm). I wrote the interface to it, and it is a standard ros_control hardware_interface. So I am faced with the problem of how to handle the trajectory action interface from Moveit!
Should I??
1. Include each dynamixel joint in my hardware_interface, sacrificing the performance improvements made by @arebgun. Then I would use the standard joint_trajectory_action_controller.
2. Somehow nest action servers so that the top one takes the request from !Moveit and separates it into dynamixel and "other" and then passes it own.
3. Or is there some simple answer I am missing?
I am mostly asking from a typical architecture of ros_control point of view, as I assume I am not the first person to have this problem.
↧