0
$\begingroup$

Rosanswers logo

I would like to create a robot program that reads in a set of arm waypoints from a file and then executes a trajectory through those waypoints. It seems like this should already exist?

Assuming it doesn't I plan to use a planner to plan the segments individually and then apply a filter to the whole path. This will require multiple service calls and could take a while. Is there a better approach?

Also, is there an xml/yaml format and parser somewhere that I could use for this. Seems straightforward enough, but I would like to reuse code/formats if they already exist.


Originally posted by sedwards on ROS Answers with karma: 1601 on 2013-03-12

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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.


Originally posted by Adolfo Rodriguez T with karma: 3907 on 2013-03-12

This answer was ACCEPTED on the original site

Post score: 1

$\endgroup$

Your Answer

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