Uploaded by Alan Parson

Reactive and Potential Field Planners

advertisement
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
follow path
• 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:
1. Head toward the goal
2. If the goal is attained then
stop
3. If contact is made with an
obstacle then follow the
obstacle’s boundary (toward
the left) until heading
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.
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 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
follow the obstacle’s boundary
(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
• Gradient in higher dimensions
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
gradient field.
• 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
gradient).
• 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
• Use inverse quadratic
– 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
– Navigation function
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.
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.
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
Plotting Navigation Function
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
More Advanced Navigation
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
Download