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

Set planner for cartesian path

asked 2023-01-27 12:24:25 -0500

anonymous user

Anonymous

Hey, I was wondering if setPlannerId http://docs.ros.org/en/jade/api/movei... affects computeCartesianPath, http://docs.ros.org/en/jade/api/movei... or does it only affect plan http://docs.ros.org/en/jade/api/movei...

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2023-01-29 08:23:39 -0500

Mike Scheutzow gravatar image

updated 2023-01-30 07:08:31 -0500

It affects only plan(). Somewhere in your moveit config is a file usually named ompl_planning.yaml. setPlannerId() is choosing one of the ompl planner configurations defined in that file.

edit flag offensive delete link more

Comments

computeCartesianPath(..) interpolates (linearly) between the provided (list of) poses. It doesn't use OMPL.

setPlannerId(..) configures/requests OMPL to use a specific OMPL planner.

@Mike Scheutzow: could you clarify what you mean by "it affects both"?

gvdhoorn gravatar image gvdhoorn  ( 2023-01-29 11:09:53 -0500 )edit

@gvdhoorn The API documentation for computeCartesianPath() says that it supports collision avoidance. I assumed that it invokes the ompl planner to handle that situation, but I have not looked at the source code to confirm that. Do you have better knowledge of what the actual implementation is?

Mike Scheutzow gravatar image Mike Scheutzow  ( 2023-01-29 14:10:00 -0500 )edit

computeCartesianPath(..) does not use OMPL for collision detection. It's part of robot_state these days, and has moved to CartesianInterpolator (here).

It uses setFromIK(..) to update an internal collision scene, and the loop basically exits as soon as that complains about a collision (here) -- or anything else for that matter.

I would also say/claim it doesn't plan as such. It's basically just a linear interpolation.

gvdhoorn gravatar image gvdhoorn  ( 2023-01-30 03:20:33 -0500 )edit

Thanks for the insight. I updated my answer.

Mike Scheutzow gravatar image Mike Scheutzow  ( 2023-01-30 07:09:46 -0500 )edit

Thanks, but arent there also multiple cartesian panners? https://picknik.ai/cartesian%20planne...

anonymous userAnonymous ( 2023-01-30 08:55:01 -0500 )edit

There are -- although again: I would not call them planners. But computeCartesianPath(..) is not one of those. You cannot 'select' it using setPlannerId(..). You can only call the function directly.

All the other entries in the table on the page you link are either IK plugins (which you can't "select" either), MoveIt request adapters (which are either part of the pipeline or not, so not directly configurable at runtime), full-blown "planners" (in quotes as it's MoveIt terminology) or unavailable to the general public (Bolt fi).

Only the planners could you use setPlannerId(..) for, but I'm not sure that works for the Pilz Planner (it's a sibling to OMPL, not a planner within OMPL). You'd have to look into the multi-planner support to make something work. That doesn't exist in Jade (which is the documentation you linked), but I'm assuming you're not actually ...(more)

gvdhoorn gravatar image gvdhoorn  ( 2023-01-31 04:33:37 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2023-01-27 12:24:25 -0500

Seen: 162 times

Last updated: Jan 30 '23