0
$\begingroup$

Rosanswers logo

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!


Originally posted by wolledav on ROS Answers with karma: 3 on 2018-08-16

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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.


Originally posted by BryceWilley with karma: 711 on 2018-08-16

This answer was ACCEPTED on the original site

Post score: 3

$\endgroup$

Your Answer

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