Motion planning methods based on potential fields: NF1 and HF

These exercises are devoted to study how the potential field methods without local minima, NF1 and HF, work. A simple 2D scenario with several box-like obstacles will be used.

If not already done, first install or build Kautham. Then run the kautham-gui application.

Harmonic Functions method (HF)

Open the demo demos/OMPL_geo_demos/boxes_world_R2/OMPL_HF_boxes_world_R2.xml to analyze how the planner based on Harmonic Function solves the problem. Focus will be put on the goal potential, the boundary conditions and on the iterations used for the relaxation of the potential field.

The algorithm implemented is sketched in the following figure:

../../_images/HF_algorithm.png

Solution

On the HFPlanner tab press on the the GetPath button to compute the harmonic function that may solve the problem. Since a path is searched without waiting for the complete convergence of the potential landscape different solutions may be encountered:

../../_images/HF_a.png ../../_images/HF_b.png

In order to visualize the generation of the potential landscape, change incremental to 1 and set the HF_relax_iter and main_iter parameters to 1. Then press the GetPath button several times to visualize the evolution of the harmonic function landscape.



The boundary conditions

There are two types of boundary conditions:

  • Dirichlet boundary conditions

  • Neumann boundary conditions

Change the parameters HF_relax_iter and main_iter to 10 and incremental to 0.

>>> EXERCISE 2:  Check the different solution found using both the Neumann and the Dirichlet boundary conditions, using the Goal Potential to -1000.
Use different environments by moving the obstacles.
>>> EXERCISE 3:  Repeat for several values of the Goal Potential (e.g. -10, -100, -1000, -10000).
>>> EXERCISE 4: Which is the effect of the goal potential and of the boundary conditions on the success of the planner? Which is the best option for environments with narrow passages?

The relaxation

>>> EXERCISE 5: Provided that main_iter is large enough to find a solution, which is the effect of using a small or a large value of the HF_relax_iter number of iterations?
>>> EXERCISE 6:  Can the clearance of the path be controlled? Can a solution path always be found? Discuss the completeness of the planner and the limitations of this planning approach.