Robotics StackExchange | Archived questions

Difference between search and sampling based motion planning

Hello,

I do not quite get the difference between search and sampling based motion plannings (implemented in the SBPL and OMPL, respectively).

Both use precomputed primitives of the robot to generate a solution. I read the search-based motion planners create a graph from this set of motion primitives and then explores this graph to find an optimum solution, while sample-based motion planners do not create any graph, which leads to faster computations, but less likely to be optimal solutions. How are the motion plans generated by OMPL, then?

I intend to create a car planner to follow a road while avoiding obstacles and keeping inside the lane. The problem here is that I need the planner to operate in real time (check the current planner feasibility or generate a new one at 10Hz, at least). To that end, It would be best to use the OMPL approach and leave SBPL for parking maneuvers, which may require a more exhaustive search, and time is not a problem there.

So, the strategy I want to implement is to use a precomputed set of motion primitives whose radius will be limited by the car's velocity at eath step and check if the chosen plan if the returned plan is feasible by checking an occupancy grid (whose associated cells' coordinated will also be precomputed for each motion primitive to speed up the checking).

Any suggested alternatives are welcome.

Asked by OMC on 2017-07-08 11:46:27 UTC

Comments

Answers

Hi There are years ago you asked the question. Currently Autoware Auto is working within Autonomous Valet Parking. You can check here:

https://autowarefoundation.gitlab.io/autoware.auto/AutowareAuto/avpdemo.html https://gitlab.com/autowarefoundation/autoware-foundation/-/wikis/ASWG-AVP-planning-minutes-20191210#autoware-avp-architecture

There is also an specific class about motion planners for ROS2 pretty interesting and that goes deep: https://www.youtube.com/results?search_query=autoware+auto+lecture+12

Besides that the main difference of sample-based and graph search planners are described here: http://sbpl.net/node/50#:~:text=Because%20a%20graph%20is%20inherently,algorithms%20require%20this%20discrete%20representation.&text=This%20is%20in%20contrast%20to,methods%20do%20discretize%20the%20space).

To quickly implement these 2 kind of plannings (SBPL and OMPL) I would suggest you use A Primer. It is very intuitive 2D software that you can see the planner behaviour, as well as read how these planners are generated step-by-step as you asked. You can get the answer of your teoritically question reading this document and afterwards visualize the behaviour installing A Primer:

https://ompl.kavrakilab.org/OMPL_Primer.pdf

About how to implement I suggest watching these AutowareAuto classes and read their planners documentation: https://gitlab.com/autowarefoundation/autoware.ai/core_planning

There is also a good phd work with obstacle avoidance: https://saemobilus.sae.org/content/12-02-04-0021/

Well I am also currently doing a master thesis on this topic and I am in implementation phase also. If you have a material and simulation about your work and could share I will be grateful (even if be on ROS1) :). Bye

Asked by Vini71 on 2021-02-22 10:59:45 UTC

Comments