Rosanswers logo

Hi there, I have develop a driver for the KUKA LWR 4+ by use of the FRI Library. The driver designed like the ros-i driver spec and so it works also with MoveIt!

If I plan a trajectory with MoveIt I will get a trajectory_msgs::JointTrajectory message with the waypoints. But how to interpolate correctly between the points?

I have a internal cycle time of 1ms and need to sample the trajectory down to this constant interval. Do I really need to build up splines based on the waypoints or can I tell MoveIt to sample the trajectory with 1ms?

Originally posted by CTieben on ROS Answers with karma: 3 on 2015-07-29

Post score: 0

Original comments

Comment by CTieben on 2015-08-14:
There is a ROS Industrial Trajectory Filter for exactly this problem. It a ROS Type Wrapper for the KDL Velocity Profile Spline to sample it down to n-parts or duration.


1 Answer 1


Rosanswers logo

Do I really need to build up splines based on the waypoints or can I tell MoveIt to sample the trajectory with 1ms?

If I recall correctly, MoveIt sort-of assumes a lower-level controller that accepts JointTrajectory messages exists, and that that lower-level controller will do all the 'heavy lifting' to execute the trajectory. In the case of the PR2 that is the whole real-time capable pr2_controllers infrastructure. That is not really usable with other robots though.

You might be able to re-use the controllers in the ros_control package. One of the supported interfaces is a JointTrajectoryAction server, which internally runs PID (or custom, more advanced) controllers to take joints through the trajectory points it receives. The ros_control nodes are capable of running in real-time as well. Be sure to watch the presentation Adolfo gave on ROSCon14, it provides a much more in-depth picture of what is going on then the documentation currently does.

Note that ros_control by default does not expose a ROS-Industrial compatible motion interface, but that can be solved by remapping a few topics.

Edit: you might also be interested in the ongoing work in the kuka_experimental repository of the ROS-Industrial Github organisation, and the ros-sig-kuka mailing list. The kuka_experimental repository has an open PR for a ros_control based driver using RSI. Perhaps you can use it as an example of how to implement a similar system for FRI.

Contacting either the ROS-Industrial mailing list and / or the ros-sig-kuka would be a good idea anyway: there are a number of projects currently underway (CentroEPiaggio/kuka-lwr being one of them), and it would be nice to avoid redoing existing work.

Originally posted by gvdhoorn with karma: 86574 on 2015-07-31

This answer was ACCEPTED on the original site

Post score: 1


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.