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

PRM roadmap building not working through movegroup

asked 2018-08-16 07:50:15 -0500

wolledav gravatar image

Hello,

I am using OMPL with ROS Kinetic and trying to make PRM work.

I have the following in ompl_planning.yaml

  PRMkConfigDefault:
    type: geometric::PRM
    max_nearest_neighbors: 10
...
manipulator:
  planner_configs:
    - PRMkConfigDefault
... 
endeffector:
  planner_configs:
    - PRMkConfigDefault

I set up and use the planner like this:

 moveit::planning_interface::MoveGroupInterface::Plan my_plan;
 moveit::planning_interface::MoveGroupInterface group;

 group.setPlannerId("PRMkConfigDefault");
 group.setStartState(start_state);
 group.setPoseTarget(pose_target);
 group.plan(my_plan);

The planning works, but the planner seems to start building the roadmap all over again for each request, as I see from this MoveGroup output:

[ INFO] [1534421007.766392320, 27.556000000]: Planning request received for MoveGroup action. Forwarding to planning pipeline.
[ INFO] [1534421007.767078520, 27.556000000]: Planner configuration 'manipulator[PRMkConfigDefault]' will use planner 'geometric::PRM'. Additional configuration parameters will be set when the planner is constructed.
[ INFO] [1534421007.767221225, 27.556000000]: manipulator[PRMkConfigDefault]: problem definition is not set, deferring setup completion...
[ INFO] [1534421007.788053174, 27.574000000]: manipulator[PRMkConfigDefault]: Starting planning with 2 states already in datastructure
[ INFO] [1534421008.772725520, 28.196000000]: manipulator[PRMkConfigDefault]: Created 102 states
[ INFO] [1534421008.772951172, 28.196000000]: Solution found in 1.005560 seconds
[ INFO] [1534421008.773194629, 28.196000000]: SimpleSetup: Path simplification took 0.000100 seconds and changed from 2 to 2 states
[ INFO] [1534421008.800537690, 28.216000000]: Planning request received for MoveGroup action. Forwarding to planning pipeline.
[ INFO] [1534421008.801144538, 28.216000000]: Planner configuration 'manipulator[PRMkConfigDefault]' will use planner 'geometric::PRM'. Additional configuration parameters will be set when the planner is constructed.
[ INFO] [1534421008.801274953, 28.216000000]: manipulator[PRMkConfigDefault]: problem definition is not set, deferring setup completion...
[ INFO] [1534421008.822160900, 28.229000000]: manipulator[PRMkConfigDefault]: Starting planning with 2 states already in datastructure
[ INFO] [1534421009.803937922, 28.867000000]: manipulator[PRMkConfigDefault]: Created 129 states
[ INFO] [1534421009.804883451, 28.869000000]: Solution found in 1.002696 seconds
[ INFO] [1534421009.805021586, 28.869000000]: SimpleSetup: Path simplification took 0.000005 seconds and changed from 2 to 2 states

as there should clearly be more than "2 states already in datastructure" during the second run.

How to do it, so that the planner stores already sampled states?

Thank you!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
3

answered 2018-08-16 10:11:12 -0500

From what I can tell (specifically, at this line, the planner's previous data is cleared), there is no current way to do this. I believe this is intentional, as between planning runs, the MoveIt PlanningScene can change, meaning that existing edges and states in the PRM might be invalid. This would require re-checking the entire PRM at the beginning of the second run, which would be pretty expensive.

An option to maintain the planner's information from the previous run as long as the planning scene doesn't change significantly could be added however. Feel free to open an issue if you want this to get added.

edit flag offensive delete link more

Question Tools

2 followers

Stats

Asked: 2018-08-16 07:50:15 -0500

Seen: 648 times

Last updated: Aug 16 '18