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

Revision history [back]

joint_trajectory_action_controller also should be launched with controller_spawner.py script. Although it is quite different from the rest of the joint controllers: it relies on separate position joint controllers to be running. I haven't yet written proper documentation for it, but there's a couple of examples for 2 different arms that will help you to get started:

Wubble robot's arm: launch file, joint controllers configuration and trajectory controller configuration

Pi robot's arm: launch file, joint controller configuration (also includes trajectory controller configuration at the very bottom)

Basically, when launching joint trajectory controller you need to specify all its dependencies (all joint controllers that it will use to carry out the desired trajectory).

Let me know if you have any problems running this.

You are correct, joint_trajectory_action_controller was redesigned in electric version of dynamixel_controllers package. In Diamondback version it was a standalone node that communicated with joint controllers through ROS topics. In Electric version it was rewritten to be more like a standard joint controller to gain direct access to serial port. New version is much smoother than the old one because commands (both velocity and position) for all controlled joints are packed into a single packet that gets sent over the serial bus (before we had to send a separate command for each velocity/position change for each joint).

With that said, the way you start joint_trajectory_action_controller is also should different in Electric, now you have to use controller_spawner.py script to start it up. When trajectory controller starts up it expects joint controllers for all joint it will control to be launched with controller_spawner.py script. Although it is quite different from the rest of the joint controllers: it relies on separate position joint controllers to be up and running. I haven't yet written proper documentation for it, but there's a couple of examples for 2 different arms that will help you to get started:

Wubble robot's arm: launch file, joint controllers configuration and trajectory controller configuration

Pi robot's arm: launch file, joint controller configuration (also includes trajectory controller configuration at the very bottom)

Basically, when launching joint trajectory controller you need to specify all its dependencies (all joint controllers that it will use to carry out the desired trajectory).

Let me know if you have any problems running this.