Title: Motion Planning for a Point Robot
1Motion Planning for a Point Robot
2Problem
free space
obstacle
free path
obstacle
obstacle
3Bug Algorithms
- Assumptions
- The robot is modeled as a point
- The obstacles have bounded perimeters and are in
finite number - 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
4Bug-0 Algorithm
- Bug-0
- Repeat
- Head toward the goal
- If the goal is attained then stop
- If contact is made with an obstacle then follow
the obstacles boundary (toward the left) until
heading toward the goal is possible again.
5Is Bug-0 Guaranteed to Work?
No!
6Bug-1 Algorithm
- Bug-1
- Repeat
- Head toward the goal
- If the goal is attained then stop
- 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
L2
Finish
L1
Start
7Distance Traveled T by Bug-1?
- Lower bound?
- T ? D (where D is the straight-line distance
from Start to Finish) - Upper bound?
- T ? D 1.5?SPi
- (where SPi is the sum of the perimeters of all
the obstacles)
8Distance Traveled T by Bug-1?
- Lower bound?
- T ? D (where D is the straight-line distance
from Start to Finish) - Upper bound?
- T ? D 1.5?SPi
- (where SPi is the sum of the perimeters of all
the obstacles)
9Distance Traveled T by Bug-1?
- Lower bound?
- T ? D (where D is the straight-line distance
from Start to Finish) - Upper bound?
- T ? D 1.5?SPi
- (where SPi is the sum of the perimeters of all
the obstacles)
10Bug-2 Algorithm
- Bug-2
- Repeat
- Head toward the goal along the goal-line
- If the goal is attained then stop
- If a hit point is reached then follow the
obstacles boundary (toward the left) until the
goal-line is crossed at a leave point closer to
the goal than the previous hit point
Finish
leave point
hit point
goal-line
Start
11Path Followed by Bug-2?
12Distance Traveled T by Bug-2?
- Lower bound?
- T ? D (where D is the straight-line distance
from Start to Finish) - Upper bound?
- T ? D SniPi
- (where Pi is the perimeter of obstacle i, ni is
the number of hit points in obstacle i, and the
sum S is taken over all the obstacles)
13Distance Traveled T by Bug-2?
- Lower bound?
- T ? D (where D is the straight-line distance
from Start to Finish) - Upper bound?
- T ? D SniPi
- (where Pi is the perimeter of obstacle i, ni is
the number of hit points in obstacle i, and the
sum S is taken over all the obstacles)
14Which one --- Bug-1 or Bug-2 --- does better?
Finish
Start
15Planning requires models
- The Bug algorithms are reactive motion
strategies they are not motion planners - To plan its actions, a robot needs a (possibly
imperfect) predictive model of its actions, so
that it can choose among several possible courses
of action
16Point Robot on a Grid
- Assumptions
- The robot perfectly controls its actions
- It has an accurate geometric model of the
environment (i.e., the obstacles)
17Now, the robot can search its model for a
collision-free path to the goal
18Search Algorithm
- SEARCH(Start, Finish)
- INSERT(Start,FRINGE)
- Repeat
- If FRINGE is empty then return failure
- q ? REMOVE(FRINGE)
- For every new position q in SUCCESSORS(q)
- Install q as a child of q in the search tree
- If q Finish then return a path from Start to
Finish - INSERT(q,FRINGE)
Start
FRINGE
19Blind Search Strategies
- Breadth-firstNew positions are inserted at the
end of FRINGE - Depth-firstNew positions are inserted at the
beginning of FRINGE
201000?1000 grid ? 1,000,000 configurations In 3-D
? 109 configurations In 6-D ? 1018
configurations!!! ? Need for sparser
discretization or smart search
techniques
21Visibility Graph
SHAKEY (SRI, 1969)
22Smart Search
- SEARCH(Startt,Finish)
- INSERT(qstart,FRINGE)
- Repeat
- If FRINGE is empty then return failure
- q ? REMOVE(FRINGE)
- For every new configuration q in SUCCESSORS(q)
- Install q as a child of q in the search tree
- If q Finish then return a path from Start to
Finish - INSERT(q,FRINGE)
? Smart ordering of the configurations in
FRINGE (best-first search)
23Attractive/Repulsive Potential Fields
Equipotential contours
24Attractive/Repulsive Potential Fields
Best-first search with potential fields Sort
positions in FRINGE in increasing order of
potential
Bug motion strategy with potential fields
Equipotential contours
25Local-Minimum Problem
26Path Shortening
- Two approaches
- Sort positions in FRINGE using an evaluation
function of the form g(q) aU(q) - Iteratively shorten a path after one has been
produced.
27Application to Animating a Digital Actor on Flat
Terrain
The actor The environment
28PrincipleBound the actor by a cylinder and
project all objects the ground
29(No Transcript)
30Shrink the disc representing the actor to a point
and grow the obstacles accordingly
31(No Transcript)
32Motion Capture
33(No Transcript)
34(No Transcript)
35Integration of Motion Planning and Motion Capture
High-Level Navigation Goals
Fast 2D Path Planner
Path
Path-Following Controller
Body Posture
Graphic Display
Base Point PD Controller
Motion Capture Data
36(No Transcript)
37Simulated Vision
Actors view
38Perception-Based Planning
39Perception-Based Planning
40(No Transcript)
41video
42video
43(No Transcript)