# Reactive and Potential Field Planners

```Reactive and Potential Field
Planners
David Johnson
Previously
• Use geometric reasoning to build path in
environment
– Visibility graphs
– Cell decompositions
• Use robot controls to generate forces to
• Such complete knowledge of environment
is rare
• May need to react to sensor data
A Simple Approach for Unknown
Environments
• Bug algorithms
– Highlights the sort of approach needed for
simple robots with simple sensors
• From the text – but find the errata chapter
online
Bug Algorithms
Assumptions:
 The robot is modeled as a point
 The obstacles are bounded and are
finite
 The robot senses perfectly its
position and can measure traveled
distance
 The robot can perfectly detect
contacts and their orientations
 The robot can compute the direction
to the goal and the distance between
two points, and has small amount of
memory
Finish
Start
Bug-0 Algorithm
Finish
Start
Bug-0
Repeat:
2. If the goal is attained then
stop
3. If contact is made with an
obstacle’s boundary (toward
toward the goal is possible
again.
Is Bug-0 Guaranteed to Work?
No!
Finish
Finish
Start
Start
Bug-1 Algorithm
Bug-1:
L2
Repeat:
Finish
L1
Start
1.
2.
If the goal is attained then stop
3.
If contact is made with an
obstacle then circumnavigate
the obstacle (by wall-following),
remember the closest point Li
point by the shortest wallfollowing path
Bug-2 Algorithm
Bug-2:
Repeat:
leave point
Finish
hit point
goal-line
Start
1.
Head toward the goal along the
goal-line
2.
If the goal is attained then stop
3.
If a hit point is reached then
(toward the left) until the goalline is crossed at a leave point
closer to the goal than the
previous hit point
Path Followed by Bug-2?
Finish
Start
Which one --- Bug-1 or Bug-2 --- does better?
Bug-2 does better than Bug-1
Bug-1 does better than Bug-2
Finish
Finish
Start
Start
Bug1 vs. Bug2
Bug1
Bug2
• Exhaustive search
• Optimal leave point
• Performs better with
complex obstacles
• Opportunistic (greedy)
search
• Performs better with
simple obstacles
Kinds of sensors for Bug
• Tactile sensing
– Infinite number?
• Goal beacon
– Measure distance through
• Signal strength
• Time-of-flight
• Phase
• Wheel encoders
• Orientation
Potential Field Planners
• Can use range information better
– Also tangent bug planner in text
• Can also be used in known environment
– Fast
– Reactive to local data
• Rather than
– generate forces from path – old approach
– generate path from forces!
Basic Idea
• Model physics of robot
• Attract to goal
• Repulse from obstacles
Basic Idea
• Originally was described in terms of
potentials
– Potential energy is energy at a position (or
configuration)
q
– integral of force U (q )   q F (q )dq  U (q0 )

0
– Force is derivative of potential energy
dU
  F (q)
dq
U
U
grad (U (q))  U (q)  (
, ,
)
q1
qn
Potential Field Path Planning
• Potential function guides
the robot as if it were a
particle moving in a
• Analogy: robot is positively
charged particle, moving
towards negative charge
goal
• Obstacles have “repulsive”
positive charge
• Potential functions can be viewed as a
landscape
• Robot moves from high-value to low-value
Using a “downhill” path (i.e negative of the
• This is known as gradient descent –follow
a functional surface until you reach its
minimum
– Really, an extremum
What kind of potentials/forces to
use?
• Want to
– minimize travel time
– have stability at goal
– not crash
Attract to goal
• Force is linear with distance
– Like the spring force
Attractive Potential Field
Repulse from Obstacles
– 1/dist^2
– What is that force law like?
Repulsive Potential Field
Vector Sum of Two Fields
Resulting Robot Trajectory
Main Problem
Some solutions to local minima
• Build graph from local minima
– Search graph
• Random pertubation to escape
– Make sure you don’t push into obstacle
• Change parameters to get unstuck
– Might not work
• Build potential field with only one minimum
Rotational and Random
Fields
functions
around obstacles
– Breaks symmetry
– Avoids some local minima
– Guides robot around groups
of obstacles
• A random field gets the
robot unstuck.
– Avoids some local minima.
• A potential field leading to a given goal,
with no local minima to get stuck in.
• For any point p, N(p) is the minimum
cost of any path to the goal.
• Use a wavefront algorithm, propagating
from the goal to the current location.
– An active point updates costs of its 8
neighbors.
– A point becomes active if its cost
decreases.
– Continue to the robot’s current position.
Sphere Worlds
• World in which Navigation Problem is solved
– compact, connected subset of En
– boundary formed by disjoint union of finite number of
spheres
– valid sphere world provided obstacle closures are
contained within the workspace
MATLAB Simulation
20
Kappa = 3
15
10
Target
5
0
-5
Potential Field Level Curves
-10
Obstacle
-15
-20
-20
-15
-10
-5
0
5
10
15
20
Kappa = 3
Target
Obstacle
Increase Kappa
Kappa = 4
20
15
10
5
1
0
0.8
20
-5
0.6
-10
0.4
10
0
0.2
-15
-10
0
-20
-20
-15
-10
-5
0
5
10
15
20
-20
-15
-10
-5
0
5
10
-20
15
20
Sphere World: 5 Obstacles
Kappa = 5.6
20
15
10
5
0
-5
-10
-15
-20
-25
No local minima
-20
-15
-10
-5
0
5
10
15
20
25
Functions
• Treat C-space as fluid
flow simulation
• Start is fluid source
• Goal is fluid sink
• Run FEA
Finding a Path
• Start at source
• Trace path along
vector field
• Can have non-point
source and sinks
• New sources are fast
to compute
```