Motion Planning Algorithms

Motion Planning Algorithms :
BUG-family
1
To plan a path

find a continuous trajectory leading from initial
position of the automaton (a mobile robot) to
its target position or conclude in finite time that
the target can’t be reached.
Assumptions:
Automaton – a point
 Environment – 2D plane filled with unknown /
known obstacles of arbitrary shape and size.

2
How do I get from point A to
point B?

Approaches
– Map-based
• Requires significant a priori knowledge
• Generally pretty easy – after all, you have a map
– Sensing-based
• No a priori knowledge required, entirely sensor based

Provable (exact, algorithmic) and heuristic
approach.
3
Path planning with complete
information (Map-based approach)
Piano movers problem – have perfect
information about the obstacles.
 Given a solid object of known size and shape in
2D or 3D space, its initial and target position
and orientation.
 Given a set of obstacles whose shapes,
positions, and orientations in space are fully
described.

4
The task is to find a continuous path for the
object from the initial position to the target
position while avoiding collisions with
obstacles along the way.
 Because full information is assumed, the
whole operation of path planning is a one-time
off-line operation.
 Main difficulty – obtaining a computationally
efficient scheme.
 Advantage – any optimization criteria
(shortest/safest/minimum-time/… path) can be
5
easily introduced.

Path planning with incomplete
information (Sensing-based approach)



An element of uncertainty about the environment (local
character information provided by sensors) is presented and
the operation of path planning is a continuous on-line
process.
Path planning is limited to the automaton’s immediate
surroundings for which information on the scene is
available. Within this limited area the problem is treated as
one with complete information.
Two critical aspects of navigating in the unknown terrain:
– The computation is based on local information (online algorithms)
– Sensing is an integral part of the navigation (sensor operations
6
schedule is required)
Bug Methodology

V. Lumelsky and A. Stepanov, “Path-Planning Strategies for
a Point Mobile Automaton Moving Amidst Unknown
Obstacles of Arbitrary Shape”, Algorithmica (1987) 2: 403430.

Combine local with global information
Guaranteed to converge if a solution exists

Drive to
goal
Encounter
obstacle
“Leaving condition”
Follow an
obstacle
7
Model

Environment:
Plane with a set of obstacles and points S and T.
Obstacle – simply closed curve of finite length s.t. a
straight line crosses it only in finitely many
points.Obstacles do not touch each other. Scene
contains locally finite number of obstacles.
8
Automaton


MA is a point.
Information provided by sensors is
– (1) current coordinates of MA
– (2) the fact of contacting the obstacle.



T-coordinates are given; MA can always calculate its
direction toward and its distance from T.
Memory for storing data/intermediate results is limited.
Motion capabilities:
– move toward T on a straight line,
– move along obstacle boundary,
– stop.
9
Definitions
A local direction is a once and for all decided
direction for passing around an obstacle: left or
right.
 MA defines a hit point H on the obstacle when,
while moving along a straight line toward T, MA
contacts the obstacle at point H.
 MA defines a leaving point L on the obstacle when
it leaves the obstacle at the point L in order to
continue its straight line walk toward T.
 No point can be defined both H and L.
10

Bug1 : Memory Requirements
R1 – coordinates of the current closest to T
point Qm on the obstacle boundary
 R2 – integrates the length of the obstacle
boundary starting at Hi
 R3 - integrates the length of the obstacle
boundary starting at Qm

11
Bug1
12
1.
From the point Li-1, move toward T
along a straight line until one of the
following occurs:
(a) Target T is reached. Stop.
Bug1
(b) An obstacle is encountered and a hit point Hi is defined. Go to
step 2.
2. Using the local direction, follow the obstacle boundary. If
T is reached, stop. After having traversed the whole
boundary and having returned to Hi, define a new leave
point Li = Qm. Go to step 3.
3. Using the contents of registers R2 and R3, determine the
shorter way along the boundary to Li and use it to get to
Li. Apply the test for target reachability. If T is not
reachable – stop. Otherwise, Set i=i+1 and go to step131.
Test for reachability:
If MA, after having arrived at Li in step 3 of
the algorithm, discovers that the straight
line (Li,T) crosses some obstacle at point
Li, this can only mean that the crossed
obstacle is i and that the T is not reachable –
either S or T is trapped inside i-th obstacle.
14
15
Worst-case path length
P = D+1.5∑pi
,
where ∑pi – perimeters of the obstacles
intersecting the disc of radius D centered at T;
D – Euclidean distance between S and T
16
Bug2
17
From the point Li-1, move toward T
along a straight line (S,T) until
one of the following occurs:
(a) Target T is reached. Stop.
(b) An obstacle is encountered and a hit point Hi is defined. Go to
step 2.
2. Using the local direction, follow the obstacle boundary until one of
the following occurs:
(a) Target T is reached, stop.
(b) The line (S,T) is met at a point Q such that the distance
d(Q,T) < d(Hi ,T), and the line (Q,T) does not cross the current
obstacle at the point Q. Define the leaving point Li = Q. Set
j=j+1. Go to step 1.
(c) MA returns to Hi completing a closed curve (the obstacle
boundary) without having defined the next hit point, Hi+1. T is
trapped and cannot be reached. Stop.
18
1.
Bug2
Test for reachability:

If, on the p-th local cycle, p=0,1…, after
having defined a point Hi, MA returns to
this point before it defines at least the first
two out of the possible set of point
Li,Hi+1,…,Hk, it means that MA been
trapped and the T is not reachable.
19
 MA can
meet the same obstacle more
then once and has no way of
distinguishing between different
obstacles
20
21
Worst-case path length
MA passes any point of the i-th obstacle boundary at
most ni/2 times. The length of a path never exceeds
the limit
P = D + ½∑ ni pi ,
where pi - perimeters of the obstacles intersecting
the straight line segment (Start, Target)
22
The Lower Bound for the PathPlanning Problem

For any path-planning algorithm satisfying the
assumptions of Bug model, any (however large)
P>0 and any (however small) D>0 , there exists a
scene for which the algorithm will generate a path
length P and
P ⋝ D + ∑pi,
where D is the distance between S and T
pi - perimeters of the obstacles intersecting the disk
of radius D centered at T
23
Sankaranarayanan`s Algorithms


A.Sankaranarayanan and M.Vidyasagar. “A
new path planning algorithm for a point object
moving amidst unknown obstacles in a plane.“,
1990
A.Sankaranarayanan and M.Vidyasagar. “Path
planning for moving a point object amidst
unknown obstacles in a plane: The universal
bound on the worst case path lengths, and a
classification of algorithms.“, 1990
24
1.The robot moves toward T along a straight line (S,T)
[M-line] until one of the following occurs:
(a) Target T is reached. Stop.
(b) An obstacle is encountered and a hit point Hi is defined. Go to 2.
2. Using the local direction, follow the obstacle boundary until one of the
following occurs:
(a) Target T is reached, stop.
(b) The line (S,T) is met for the first time at a point Q such that the
distance d(Q,T) < d(Hi ,T), and the line (Q,T) does not cross the
current obstacle at the point Q. Define the leaving point Li = Q. Set
j=j+1. Go to 1.
(c) Some previously defined hit or leave point is met. Switch local
direction to the opposite. Retrace the path back to Hi and move
along the section of the obstacle boundary on the other side of Hi.
Go to 2.
(d) MA returns to Hi completing a closed curve (the obstacle
boundary) without having defined the next hit point, Hi+1. T is25
trapped and cannot be reached. Stop.
Alg1
Alg1
26
1.The robot moves toward T along a straight line (Li,T)
until one of the following occurs:
(a) Target T is reached. Stop.
(b) An obstacle is encountered and a hit point Hi is defined. Go to 2.
2. Using the local direction, follow the obstacle boundary until one of the
following occurs:
(a) Target T is reached, stop.
(b) If at the current point Q , visited for the first time, MA can move
along a line segment (Q,T) that does not cross the current obstacle at
the point Q and Q is closest to T among all x ever visited by MA
prior to visiting Q, define the leaving point Li = Q. Set j=j+1. Go to
1.
(c) Some previously defined hit or leave point is met. Switch local
direction to the opposite. Retrace the path back to Hi and move along
the section of the obstacle boundary on the other side of Hi. Go to 2.
(d) MA returns to Hi completing a closed curve (the obstacle boundary)
without having defined the next hit point, Hi+1. T is trapped and
27
cannot be reached. Stop.
Alg2
Alg2
28
Worst-case path length
The length of a path never exceeds the limit
P = D + 2∑pi ,
where pi - perimeters of the obstacles intersecting
the straight line segment (Start, Target)
29
Concluding remarks
Bug1 is the best that can be offered today. It doesn’t
require knowledge of the robot’s current
coordinates; it is sufficient if the robot can measure
its distance from and its direction toward T.
 Bug1 is a “conservative” algorithm; man or may not
fit our notion of “being reasonable”
 Bug2 is more “aggressive” and more efficient in
many cases. Its behavior is more “human” and thus
it pays a high price on the rare occasions of “bad”
scenes.

30