The ros_control
configuration of ur_modern_driver
typically loads the joint_trajectory_controller (here for the UR3).
That controller exposes a FollowJointTrajectory
action server, just as the non-ros_control
version of ur_modern_driver
does.
Provided your trajectories are well-formed, you shouldn't need to change anything in your code -- apart from perhaps the name of the action topic (but that you should be able to just remap
).
Edit:
My actual question should be: Do we need a different trajectory that specifies the velocity instead of the position of every way point? Or does the driver already work out the velocity from the position specified?
the "velocity based" joint_trajectory_controller
uses a velocity controlled hw interface and uses that to run a position control on top of that. So it's positions in -> velocities out. It can not be used as a pure velocity controller (ie: velocity in -> velocity out).
Anyway, I tried using the vel_based action server but then the ur3 stopped by the controller because of safety! I am not sure why yet.
I don't know either, that would require more debugging.
Just to make sure: you have a regular UR3 (no e-series) and are using teh kinetic-devel
version of ur_modern_driver
?