Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | Last revisionBoth sides next revision | ||
tutorials:intermediate:collisions_and_constraints [2015/06/05 13:20] – [Using kinematic constraints during planning] mpomarlan | tutorials:intermediate:collisions_and_constraints [2015/06/08 13:26] – Collision check resolution info for constrained planning requests. mpomarlan | ||
---|---|---|---|
Line 265: | Line 265: | ||
From the previous part of the tutorial, we should have a running REPL with the cram moveit tutorial loaded and initialized, | From the previous part of the tutorial, we should have a running REPL with the cram moveit tutorial loaded and initialized, | ||
- | Let's try a simple motion plan request, in which we ask the robot to move from one pose around the cube to another: | + | cram-moveit also allows you to define path constraints for **compute-cartesian-path**, |
+ | |||
+ | Let' | ||
<code lisp> | <code lisp> | ||
Line 291: | Line 293: | ||
:w 1.0) | :w 1.0) | ||
: | : | ||
- | : | + | : |
- | : | + | : |
- | : | + | : |
: | : | ||
(plan-link-movement " | (plan-link-movement " | ||
Line 301: | Line 303: | ||
(We leave some tolerance in the axis to help the sampler; a too strict constraint may be impossible to satisfy anyway.) | (We leave some tolerance in the axis to help the sampler; a too strict constraint may be impossible to satisfy anyway.) | ||
- | Now look in the RViz window. You should | + | Unfortunately, |
+ | |||
+ | There is a solution however-- look below. | ||
+ | |||
+ | ==== A note about MoveIt!' | ||
+ | |||
+ | MoveIt! does not do continuous collision checking, which means, instead, that it chooses some points along a robot trajectory segment and does collision checking on them. Usually this won't affect you, unless you work with very narrow objects and/or constraints. | ||
+ | |||
+ | Narrow objects are a problem because the poses MoveIt! chooses to check along a trajectory segment may just miss the object, even if, in fact, the trajectory passes through the object. Kinematic constraints seem to be a problem for a more complicated reason: | ||
+ | |||
+ | There is a tradeoff between increasing the resolution of the collision checks along a trajectory segment and planning time. Sadly, | ||
+ | |||
+ | For the example above to work, you will have to close move_group, go to pr2_moveit_config/ | ||
- | You can also define path constraints | + | From the REPL, rerun the lisp code we tried above, |
== Next == | == Next == |