ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
What follows is based on the arm_navigation stack. A similar alternative might exist for MoveIt, but I'm not familiar with it.
Converting a set of position waypoints to a spline trajectory can be done with the spline_smoother package. This won't plan collision free trajectories in between, though.
For generating collision-free paths between waypoints, your suggestion makes sense: call the motion planner n times, and then concatenate the results in a single trajectory which you would then filter. This would allow nonzero velocities at the waypoints, which seems a desirable feature. This scenario is a generalization of the existing move_arm action, where instead of a single goal-directed motion you also have intermediate waypoints.
Concerning the trajectory format, I am not aware of anything other than the existing [robot|joint]_trajectory messages. They seem sufficient for the described use case. For the waypoint-only description, specify only the fields you know in advance.
On a related note, an also interesting use case would be to execute an existing fully specified trajectory, but prepend to it a collision-free approach trajectory starting at the current state. A nonzero velocity transition between approach and specified trajectory would be desired.