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

How to add more planners to ompl_ros_interface?

asked 2012-05-23 02:15:39 -0500

tor gravatar image

updated 2012-05-23 19:56:45 -0500

Hi All,

I am using fuerte arm_navigation pkg and its wizard to build my own robot_arm_navigation pkg. In ompl_planning.yaml, there are already 2 planners, i.e. SBL and LBKPIECE.

How to add more sampling-based planners* into ompl_planning.yaml?

*) Expansive Space Trees (EST), Rapidly-exploring Random Trees (RRT), Probabilistic RoadMaps (PRM), ...

I guess that it is by adding several lines in planner_configs section, if that is true, then what should I write there e.g. for EST, RRT, PRM, ...?

\update

I have tried to "slightly" modify the ompl_planning.yaml to add RRTConnect planner, but no luck. During launching robot_arm_navigation, I got:

TypeError: cannot marshal None unless allow_none is enabled

I did add 3 things into ompl_planning.yaml

planner_configs:
RRTConnectkConfig1:
type: kinematic::RRTConnect

and

right_arm:
  planner_configs:
    - RRTConnectkConfig1

and

right_arm_cartesian:
  planner_configs:
    - RRTConnectkConfig1

and, surely, changed the default_planner_config param.

Did I miss something obvious? Where else should I adjust?

Thank you.

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
1

answered 2012-05-23 18:04:05 -0500

isucan gravatar image

Hey,

You need to create a new planning configuration that has the new planner name.

Open pr2_arm_navigation_planning/config/ompl_planning.yaml and update to something like this:

right_arm:
  planner_type: JointPlanner
  planner_configs:
    - SBLkConfig1 
    - RRTConnectkConfig1
    - LBKPIECEkConfig1

Make sure you follow the syntax correctly. The error you have seems to be a parsing one.

Then, you need to define what RRTConnectkConfig1 means. At the bottom of the file, where you have the planner_configs, update to something like this:

planner_configs:
  SBLkConfig1:
    type: kinematic::SBL

  RRTConnectkConfig1:
    type: kinematic::RRTConnect

  LBKPIECEkConfig1:
    type: kinematic::LBKPIECE

For the list of possible planner types to use see ompl_ros_planning_group.cpp in ompl_interface_ros. I'm sorry for the poor documentation. This will be easier in MoveIt!

edit flag offensive delete link more

Comments

We are on Electric and would like to use PRM but it seems not to be supported yet. We get "Unknown planner type" and PRM is not into initializePlanner. Is there a reason for this ? Do you think copy/past and adaptation of RRT initialization would work ?

GuiHome gravatar image GuiHome  ( 2012-07-23 23:04:25 -0500 )edit

You need to add a new configuration item like I described above. Add a planner config named for example myPRMConfig under right_arm and then under planner_configs, add myPRMConfig: type: kinematic::PRM

isucan gravatar image isucan  ( 2012-07-24 08:22:03 -0500 )edit

Hmm, but where is the PRM planner initialisation located inside the ompl_ros_interface code? As GuiHome pointed out, there is no initializePRMPlanner() in the ompl_ros_planning_group.h/cpp. Is it hiding somewhere else?

bit-pirate gravatar image bit-pirate  ( 2012-07-24 14:36:24 -0500 )edit
0

answered 2012-05-23 07:12:40 -0500

Dave Coleman gravatar image

I'm not 100% sure but have you tried the other planner's acronyms from this page?

http://ompl.kavrakilab.org/availablePlanners.html

edit flag offensive delete link more

Comments

Hi, Dave, thanks.

tor gravatar image tor  ( 2012-05-23 15:06:11 -0500 )edit

Question Tools

Stats

Asked: 2012-05-23 02:15:39 -0500

Seen: 887 times

Last updated: May 23 '12