![Page 1: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/1.jpg)
Reactive and Potential Field Planners
David Johnson
![Page 2: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/2.jpg)
Previously
• Use geometric reasoning to build path in environment– Visibility graphs– Cell decompositions
• Use robot controls to generate forces to follow path
• Such complete knowledge of environment is rare
• May need to react to sensor data
![Page 3: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/3.jpg)
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
![Page 4: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/4.jpg)
Bug AlgorithmsAssumptions: 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
Start
Finish
![Page 5: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/5.jpg)
Bug-0 Algorithm
Bug-0Repeat:1. Head toward the goal 2. If the goal is attained then
stop3. If contact is made with an
obstacle then follow the obstacle’s boundary (toward the left) until heading toward the goal is possible again.
Start
Finish
![Page 6: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/6.jpg)
Is Bug-0 Guaranteed to Work?
Start
Finish
Start
FinishNo!
![Page 7: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/7.jpg)
Bug-1 Algorithm
Bug-1:
Repeat:
1. Head toward the goal
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 to the goal,
and return to this point by the shortest wall-following path
Start
Finish
L1
L2
![Page 8: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/8.jpg)
![Page 9: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/9.jpg)
Bug-2 AlgorithmBug-2:
Repeat:
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 follow the obstacle’s boundary (toward the left) until the goal-line is crossed at a leave point closer to the goal than the previous hit point
Start
Finish
goal-line
leave point
hit point
![Page 10: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/10.jpg)
Start
Finish
Path Followed by Bug-2?
![Page 11: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/11.jpg)
Start
Finish
Start
Finish
Bug-2 does better than Bug-1 Bug-1 does better than Bug-2
Which one --- Bug-1 or Bug-2 --- does better?
![Page 12: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/12.jpg)
Bug1 vs. Bug2
Bug1• Exhaustive search• Optimal leave point• Performs better with complex obstacles
Bug2• Opportunistic (greedy) search• Performs better with simple obstacles
![Page 13: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/13.jpg)
Kinds of sensors for Bug
• Tactile sensing– Infinite number?
• Goal beacon– Measure distance through
• Signal strength • Time-of-flight• Phase
• Wheel encoders• Orientation
![Page 14: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/14.jpg)
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!
![Page 15: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/15.jpg)
Basic Idea
• Model physics of robot• Attract to goal• Repulse from obstacles
![Page 16: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/16.jpg)
Basic Idea• Originally was described in terms of
potentials– Potential energy is energy at a position (or
configuration)– integral of force
– Force is derivative of potential energy
• Gradient in higher dimensions
q
qqUdqqFqU
0
)()()( 0
)(qFdq
dU
),,()())((1 nq
U
q
UqUqUgrad
![Page 17: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/17.jpg)
Potential Field Path Planning
• Potential function guides the robot as if it were a particle moving in a gradient field.
• Analogy: robot is positively charged particle, moving towards negative charge goal
• Obstacles have “repulsive” positive charge
![Page 18: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/18.jpg)
• 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
gradient).• This is known as gradient descent –follow
a functional surface until you reach its minimum– Really, an extremum
![Page 19: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/19.jpg)
![Page 20: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/20.jpg)
What kind of potentials/forces to use?
• Want to – minimize travel time– have stability at goal– not crash
![Page 21: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/21.jpg)
Attract to goal
• Force is linear with distance– Like the spring force
![Page 22: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/22.jpg)
Attractive Potential Field
![Page 23: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/23.jpg)
Repulse from Obstacles
• Use inverse quadratic– 1/dist^2– What is that force law like?
![Page 24: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/24.jpg)
Repulsive Potential Field
![Page 25: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/25.jpg)
Vector Sum of Two Fields
![Page 26: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/26.jpg)
Resulting Robot Trajectory
![Page 27: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/27.jpg)
Main Problem
![Page 28: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/28.jpg)
![Page 29: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/29.jpg)
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– Navigation function
![Page 30: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/30.jpg)
Rotational and Random Fields• Not gradients of potential
functions• Adding a rotational field
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.
![Page 31: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/31.jpg)
Navigation Function N(p)• 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.
![Page 32: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/32.jpg)
![Page 33: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/33.jpg)
![Page 34: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/34.jpg)
![Page 35: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/35.jpg)
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
![Page 36: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/36.jpg)
-20 -15 -10 -5 0 5 10 15 20-20
-15
-10
-5
0
5
10
15
20
MATLAB Simulation
Obstacle
Target
Potential Field Level Curves
Kappa = 3
![Page 37: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/37.jpg)
Plotting Navigation FunctionKappa = 3
Obstacle
Target
![Page 38: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/38.jpg)
Increase Kappa
-20 -15 -10 -5 0 5 10 15 20-20
-15
-10
-5
0
5
10
15
20
Kappa = 4
-20 -15 -10 -5 0 5 10 15 20-20
-10
0
10
20
0
0.2
0.4
0.6
0.8
1
![Page 39: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/39.jpg)
Sphere World: 5 Obstacles
-25 -20 -15 -10 -5 0 5 10 15 20 25-20
-15
-10
-5
0
5
10
15
20
Kappa = 5.6
No local minima
![Page 40: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/40.jpg)
More Advanced Navigation Functions
• Treat C-space as fluid flow simulation
• Start is fluid source• Goal is fluid sink• Run FEA
![Page 41: Reactive and Potential Field Planners David Johnson](https://reader036.vdocuments.us/reader036/viewer/2022062417/551a4017550346cb358b55cd/html5/thumbnails/41.jpg)
Finding a Path
• Start at source• Trace path along
vector field• Can have non-point
source and sinks• New sources are fast
to compute