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

Revision history [back]

click to hide/show revision 1
initial version

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.

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.