Upload
marco-collautti
View
225
Download
0
Embed Size (px)
Citation preview
8/2/2019 Lavalle - Motion Planning
1/511
i ii
PLANNING ALGORITHMS
Steven M. LaValle
University of Illinois
Copyright Steven M. LaValle 2006
Available for downloading at http://planning.cs.uiuc.edu/
Published by Cambridge University Press
8/2/2019 Lavalle - Motion Planning
2/511
iii
For my wife, Tammy, and my sons, Alexander and Ethan
iv
8/2/2019 Lavalle - Motion Planning
3/511
8/2/2019 Lavalle - Motion Planning
4/511
CONTENTS vii
10.3 Infinite-Horizon Problems . . . . . . . . . . . . . . . . . . . . . . . 52210.4 Reinforcement Learning . . . . . . . . . . . . . . . . . . . . . . . . 527
10.5 Sequential Game Theory . . . . . . . . . . . . . . . . . . . . . . . . 53610.6 Continuous State Spaces . . . . . . . . . . . . . . . . . . . . . . . . 551
11 Sensors and Information Spaces 55911.1 Discrete State Spaces . . . . . . . . . . . . . . . . . . . . . . . . . . 56111.2 Derived Information Spaces . . . . . . . . . . . . . . . . . . . . . . 57111.3 Examples for Discrete State Spaces . . . . . . . . . . . . . . . . . . 58111.4 Continuous State Spaces . . . . . . . . . . . . . . . . . . . . . . . . 58911.5 Examples for Continuous State Spaces . . . . . . . . . . . . . . . . 598
11.6 Computing Probabilistic Information States . . . . . . . . . . . . . 6 1 411.7 Information Spaces in Game Theory . . . . . . . . . . . . . . . . . 619
12 Planning Under Sensing Uncertainty 63312.1 General Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63412.2 Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64012.3 Environment Uncertainty and Mapping . . . . . . . . . . . . . . . . 65512.4 Visibility-Based Pursuit-Evasion . . . . . . . . . . . . . . . . . . . . 68412.5 Manipulation Planning with Sensing Uncertainty . . . . . . . . . . 691
IV Planning Under Differential Constraints 711
13 Differential Models 71513.1 Velocity Constraints on the Configuration Space . . . . . . . . . . . 71613.2 Phase Space Representation of Dynamical Systems . . . . . . . . . 73513.3 Basic Newton-Euler Mechanics . . . . . . . . . . . . . . . . . . . . . 74513.4 Advanced Mechanics Concepts . . . . . . . . . . . . . . . . . . . . . 76213.5 Multiple Decision Makers . . . . . . . . . . . . . . . . . . . . . . . . 780
14 Sampling-Based Planning Under Differential Constraints 78714.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78814.2 Reachability and Completeness . . . . . . . . . . . . . . . . . . . . 79814.3 Sampling-Based Motion Planning Revisited . . . . . . . . . . . . . 8 1 014.4 Incremental Sampling and Searching Methods . . . . . . . . . . . . 8 2 014.5 Feedback Planning Under Differential Constraints . . . . . . . . . . 83714.6 Decoupled Planning Approaches . . . . . . . . . . . . . . . . . . . . 84114.7 Gradient-Based Trajectory Optimization . . . . . . . . . . . . . . . 855
15 System Theory and Analytical Techniques 86115.1 Basic System Properties . . . . . . . . . . . . . . . . . . . . . . . . 86215.2 Continuous-Time Dynamic Programming . . . . . . . . . . . . . . . 87015.3 Optimal Paths for Some Wheeled Vehicles . . . . . . . . . . . . . . 8 8 0
viii CONTENTS
15.4 Nonholonomic System Theory . . . . . . . . . . . . . . . . . . . . . 88815.5 Steering Methods for Nonholonomic Systems . . . . . . . . . . . . . 9 1 0
8/2/2019 Lavalle - Motion Planning
5/511
8/2/2019 Lavalle - Motion Planning
6/511
8/2/2019 Lavalle - Motion Planning
7/511
8/2/2019 Lavalle - Motion Planning
8/511
xv
Naval Research, and DARPA for research grants that helped to support some ofmy sabbatical and summer time during the writing of this book. The Department
of Computer Science at the University of Illinois was also very generous in itssupport of this huge effort.I am very fortunate to have artistically talented friends. I am deeply indebted
to James Kuffner for creating the image on the front cover and to Audrey deMalmazet de Saint Andeol for creating the art on the first page of each of the fourmain parts.
Finally, I thank my editor, Lauren Cowles, my copy editor, Elise Oranges, andthe rest of the people involved with Cambridge University Press for their effortsand advice in preparing the manuscript for publication.
Steve LaValleUrbana, Illinois, U.S.A.
xvi PREFACE
8/2/2019 Lavalle - Motion Planning
9/511
Part I
Introductory Material
1
8/2/2019 Lavalle - Motion Planning
10/511
8/2/2019 Lavalle - Motion Planning
11/511
8/2/2019 Lavalle - Motion Planning
12/511
1.2. MOTIVATIONAL EXAMPLES AND APPLICATIONS 7
Figure 1.3: An automotive assembly task that involves inserting or removing awindshield wiper motor from a car body cavity. This problem was solved for clientsusing the motion planning software of Kineo CAM (courtesy of Kineo CAM).
The wiper example is just one of many. The most widespread impact onindustry comes from motion planning software developed at Kineo CAM. It hasbeen integrated into Robcad (eM-Workplace) from Tecnomatix, which is a leading
tool for designing robotic workcells in numerous factories around the world. Theirsoftware has also been applied to assembly problems by Renault, Ford, Airbus,Optivus, and many other major corporations. Other companies and institutionsare also heavily involved in developing and delivering motion planning tools forindustry (many are secret projects, which unfortunately cannot be described here).One of the first instances of motion planning applied to real assembly problems isdocumented in [186].
Sealing cracks in automotive assembly Figure 1.4 shows a simulation of
robots performing sealing at the Volvo Cars assembly plant in Torslanda, Sweden.Sealing is the process of using robots to spray a sticky substance along the seamsof a car body to prevent dirt and water from entering and causing corrosion. Theentire robot workcell is designed using CAD tools, which automatically providethe necessary geometric models for motion planning software. The solution shownin Figure 1.4 is one of many problems solved for Volvo Cars and others usingmotion planning software developed by the Fraunhofer Chalmers Centre (FCC).Using motion planning software, engineers need only specify the high-level task ofperforming the sealing, and the robot motions are computed automatically. Thissaves enormous time and expense in the manufacturing process.
Moving furniture Returning to pure entertainment, the problem shown in Fig-ure 1.5 involves moving a grand piano across a room using three mobile robotswith manipulation arms mounted on them. The problem is humorously inspired
8 S. M. LaValle: Planning Algorithms
Figure 1.4: An application of motion planning to the sealing process in automotivemanufacturing. Planning software developed by the Fraunhofer Chalmers Centre(FCC) is used at the Volvo Cars plant in Sweden (courtesy of Volvo Cars andFCC).
8/2/2019 Lavalle - Motion Planning
13/511
1.2. MOTIVATIONAL EXAMPLES AND APPLICATIONS 9
Figure 1.5: Using mobile robots to move a piano [244].
by the phrase Piano Movers Problem. Collisions between robots and with otherpieces of furniture must be avoided. The problem is further complicated becausethe robots, piano, and floor form closed kinematic chains, which are covered in
Sections 4.4 and 7.4.
Navigating mobile robots A more common task for mobile robots is to requestthem to navigate in an indoor environment, as shown in Figure 1.6a. A robot mightbe asked to perform tasks such as building a map of the environment, determiningits precise location within a map, or arriving at a particular place. Acquiringand manipulating information from sensors is quite challenging and is covered inChapters 11 and 12. Most robots operate in spite of large uncertainties. At oneextreme, it may appear that having many sensors is beneficial because it could
allow precise estimation of the environment and the robot position and orientation.This is the premise of many existing systems, as shown for the robot system inFigure 1.7, which constructs a map of its environment. It may alternatively bepreferable to develop low-cost and reliable robots that achieve specific tasks withlittle or no sensing. These trade-offs are carefully considered in Chapters 11 and
10 S. M. LaValle: Planning Algorithms
5
4
1
3
2
(a) (b)
Figure 1.6: (a) Several mobile robots attempt to successfully navigate in an indoorenvironment while avoiding collisions with the walls and each other. (b) Imagineusing a lantern to search a cave for missing people.
(a) (b) (c)
(d) (e) (f)
Figure 1.7: A mobile robot can reliably construct a good map of its environ-ment (here, the Intel Research Lab) while simultaneously localizing itself. Thisis accomplished using laser scanning sensors and performing efficient Bayesiancomputations on the information space [351].
8/2/2019 Lavalle - Motion Planning
14/511
8/2/2019 Lavalle - Motion Planning
15/511
8/2/2019 Lavalle - Motion Planning
16/511
8/2/2019 Lavalle - Motion Planning
17/511
8/2/2019 Lavalle - Motion Planning
18/511
8/2/2019 Lavalle - Motion Planning
19/511
8/2/2019 Lavalle - Motion Planning
20/511
8/2/2019 Lavalle - Motion Planning
21/511
8/2/2019 Lavalle - Motion Planning
22/511
8/2/2019 Lavalle - Motion Planning
23/511
8/2/2019 Lavalle - Motion Planning
24/511
8/2/2019 Lavalle - Motion Planning
25/511
8/2/2019 Lavalle - Motion Planning
26/511
8/2/2019 Lavalle - Motion Planning
27/511
8/2/2019 Lavalle - Motion Planning
28/511
8/2/2019 Lavalle - Motion Planning
29/511
8/2/2019 Lavalle - Motion Planning
30/511
8/2/2019 Lavalle - Motion Planning
31/511
8/2/2019 Lavalle - Motion Planning
32/511
2.3. DISCRETE OPTIMAL PLANNING 47
1 112
4
1 1
ba c2 d e
Figure 2.8: A five-state example. Each vertex represents a state, and each edgerepresents an input that can be applied to the state transition equation to changethe state. The weights on the edges represent l(xk, uk) (xk is the originating vertexof the edge).
a b c d e
G5
0
G4 4 1 G3 6 2 2 G2 4 6 3 G1 6 4 5 4
Figure 2.9: The optimal cost-to-go functions computed by backward value itera-tion.
It seems convenient that the cost of the optimal plan can be computed so easily,but how is the actual plan extracted? One possibility is to store the action thatsatisfied the min in (2.11) from every state, and at every stage. Unfortunately,this requires O(K|X|) storage, but it can be reduced to O(|X|) using the tricks tocome in Section 2.3.2 for the more general case of variable-length plans.
Example 2.3 (A Five-State Optimal Planning Problem) Figure 2.8 showsa graph representation of a planning problem in which X = {a,c,b,d,e}. Supposethat K = 4, xI = a, and XG = {d}. There will hence be four value iterations,which construct G
4, G
3, G
2, and G
1, once the final-stage cost-to-go, G
5, is given.
The cost-to-go functions are shown in Figure 2.9. Figures 2.10 and 2.11 il-
ba c d e
ba c d e
2 2 1
1
1 1
14
Figure 2.10: The possibilities for advancing forward one stage. This is obtainedby making two copies of the states from Figure 2.8, one copy for the current stateand one for the potential next state.
48 S. M. LaValle: Planning Algorithms
2
1
a
b
c
d
e
2
4
1
1
1
1
2
1
a
b
c
d
e
2
4
1
1
1
1
2
1
a
b
c
d
e
2
4
1
1
1
1
2
1
a
b
c
d
e
2
4
1
1
1
1
d
b
c
e
a
Figure 2.11: By turning Figure 2.10 sideways and copying it K times, a graphcan be drawn that easily shows all of the ways to arrive at a final state from aninitial state by flowing from left to right. The computations automatically selectthe optimal route.
lustrate the computations. For computing G4, only b and c receive finite valuesbecause only they can reach d in one stage. For computing G3, only the valuesG4(b) = 4 and G
4(c) = 1 are important. Only paths that reach b or c can possibly
lead to d in stage k = 5. Note that the minimization in (2.11) always chooses the
action that produces the lowest total cost when arriving at a vertex in the nextstage.
2.3.1.2 Forward value iteration
The ideas from Section 2.3.1.1 may be recycled to yield a symmetrically equiva-lent method that computes optimal cost-to-come functions from the initial stage.Whereas backward value iterations were able to find optimal plans from all initial
states simultaneously, forward value iterations can be used to find optimal plansto all states in X. In the backward case, XG must be fixed, and in the forwardcase, xI must be fixed.
The issue of maintaining feasible solutions appears again. In the forward di-
8/2/2019 Lavalle - Motion Planning
33/511
8/2/2019 Lavalle - Motion Planning
34/511
8/2/2019 Lavalle - Motion Planning
35/511
8/2/2019 Lavalle - Motion Planning
36/511
8/2/2019 Lavalle - Motion Planning
37/511
8/2/2019 Lavalle - Motion Planning
38/511
8/2/2019 Lavalle - Motion Planning
39/511
8/2/2019 Lavalle - Motion Planning
40/511
8/2/2019 Lavalle - Motion Planning
41/511
8/2/2019 Lavalle - Motion Planning
42/511
8/2/2019 Lavalle - Motion Planning
43/511
8/2/2019 Lavalle - Motion Planning
44/511
8/2/2019 Lavalle - Motion Planning
45/511
2.5. LOGIC-BASED PLANNING METHODS 75 76 S. M. LaValle: Planning Algorithms
8/2/2019 Lavalle - Motion Planning
46/511
23. For a planning problem under Formulation 2.3, implement both Dijkstras algo-rithm and forward value iteration. Verify that these find the same plans. Commenton their differences in performance.
24. Consider grid-based problems for which there are mostly large, open rooms. At-tempt to develop a multi-resolution search algorithm that first attempts to takelarger steps, and only takes smaller steps as larger steps fail. Implement yourideas, conduct experiments on examples, and refine your approach accordingly.
8/2/2019 Lavalle - Motion Planning
47/511
Part II
Motion Planning
77
8/2/2019 Lavalle - Motion Planning
48/511
8/2/2019 Lavalle - Motion Planning
49/511
8/2/2019 Lavalle - Motion Planning
50/511
8/2/2019 Lavalle - Motion Planning
51/511
8/2/2019 Lavalle - Motion Planning
52/511
8/2/2019 Lavalle - Motion Planning
53/511
8/2/2019 Lavalle - Motion Planning
54/511
8/2/2019 Lavalle - Motion Planning
55/511
8/2/2019 Lavalle - Motion Planning
56/511
8/2/2019 Lavalle - Motion Planning
57/511
8/2/2019 Lavalle - Motion Planning
58/511
8/2/2019 Lavalle - Motion Planning
59/511
8/2/2019 Lavalle - Motion Planning
60/511
3.3. TRANSFORMING KINEMATIC CHAINS OF BODIES 105 106 S. M. LaValle: Planning Algorithms
zi+1zi
8/2/2019 Lavalle - Motion Planning
61/511
Revolute Prismatic Screw1 Degree of Freedom 1 Degree of Freedom 1 Degree of Freedom
Cylindrical Spherical Planar2 Degrees of Freedom 3 Degrees of Freedom 3 Degrees of Freedom
Figure 3.12: Types of 3D joints arising from the 2D surface contact between twobodies.
are referred to as Denavit-Hartenberg (DH) parameters [434]. The definition ofeach parameter is indicated in Figure 3.15. Figure 3.15a shows the definition ofdi. Note that the xi1- and xi-axes contact the zi-axis at two different places. Letdi denote signed distance between these points of contact. If the xi-axis is abovethe xi1-axis along the zi-axis, then di is positive; otherwise, di is negative. Theparameter i is the angle between the xi- and xi1-axes, which corresponds to therotation about the zi-axis that moves the xi1-axis to coincide with the xi-axis.The parameter ai is the distance between the zi- and zi
1-axes; recall these are
generally skew lines in R3. The parameter i1 is the angle between the zi- andzi1-axes.
Two screws The homogeneous transformation matrix Ti will be constructed bycombining two simpler transformations. The transformation
Ri =
cos i sin i 0 0sin i cos i 0 0
0 0 1 di
0 0 0 1
(3.54)
causes a rotation of i about the zi-axis, and a translation of di along the zi-axis. Notice that the rotation by i and translation by di commute because both
Ai+1
Ai1
Ai
Figure 3.13: The rotation axes for a generic link attached by revolute joints.
operations occur with respect to the same axis, zi. The combined operation of atranslation and rotation with respect to the same axis is referred to as a screw (asin the motion of a screw through a nut). The effect of Ri can thus be consideredas a screw about the zi-axis. The second transformation is
Qi1 =
1 0 0 ai10 cos i1 sin i1 00 sin i1 cos i1 0
0 0 0 1
, (3.55)
which can be considered as a screw about the xi1-axis. A rotation of i1 aboutthe xi1-axis and a translation of ai1 are performed.
The homogeneous transformation matrix The transformation Ti, for eachi such that 1 < i m, is
Ti = Qi1Ri = cos i sin i 0 ai1
sin i cos i1 cos i cos i1 sin i1 sin i1disin i sin i1 cos i sin i1 cos i1 cos i1di0 0 0 1
.(3.56)
This can be considered as the 3D counterpart to the 2D transformation matrix,(3.52). The following four operations are performed in succession:
1. Translate by di along the zi-axis.
2. Rotate counterclockwise by i about the zi-axis.
3. Translate by ai1 along the xi1-axis.
4. Rotate counterclockwise by i1 about the xi1-axis.
3.3. TRANSFORMING KINEMATIC CHAINS OF BODIES 107
ziz
108 S. M. LaValle: Planning Algorithms
zi
8/2/2019 Lavalle - Motion Planning
62/511
zi+1
xi
zi
xi1
zi1
Figure 3.14: The rotation axes of the generic links are skew lines in R3.
As in the 2D case, the first matrix, T1, is special. To represent any positionand orientation of A1, it could be defined as a general rigid-body homogeneoustransformation matrix, (3.50). If the first body is only capable of rotation via arevolute joint, then a simple convention is usually followed. Let the a0, 0 param-eters of T1 be assigned as a0 = 0 = 0 (there is no z0-axis). This implies that Q0from (3.55) is the identity matrix, which makes T1 = R1.
The transformation Ti for i > 1 gives the relationship between the body frameofAi and the body frame ofAi1. The position of a point (x,y,z) on Am is givenby
T1T2 Tm
xyz1
. (3.57)
For each revolute joint, i is treated as the only variable in Ti. Prismatic jointscan be modeled by allowing ai to vary. More complicated joints can be modeled asa sequence of degenerate joints. For example, a spherical joint can be consideredas a sequence of three zero-length revolute joints; the joints perform a roll, apitch, and a yaw. Another option for more complicated joints is to abandon theDH representation and directly develop the homogeneous transformation matrix.This might be needed to preserve topological properties that become important inChapter 4.
Example 3.4 (Puma 560) This example demonstrates the 3D chain kinematicson a classic robot manipulator, the PUMA 560, shown in Figure 3.16. The cur-rent parameterization here is based on [37, 555]. The procedure is to determine
xi
xi1
di
ixi
zi xi1(a) (b)
ai1
zi1 zi
xi1
i1
xi1
zi1zi
(c) (d)
Figure 3.15: Definitions of the four DH parameters: di, i, ai1, i1. The zi- andxi1-axes in (b) and (d), respectively, are pointing outward. Any parameter may
be positive, zero, or negative.
appropriate body frames to represent each of the links. The first three links allowthe hand (called an end-effector) to make large movements in W, and the lastthree enable the hand to achieve a desired orientation. There are six degrees offreedom, each of which arises from a revolute joint. The body frames are shown inFigure 3.16, and the corresponding DH parameters are given in Figure 3.17. Eachtransformation matrix Ti is a function of i; hence, it is written Ti(i). The otherparameters are fixed for this example. Only 1, 2, . . ., 6 are allowed to vary.
The parameters from Figure 3.17 may be substituted into the homogeneoustransformation matrices to obtain
T1(1) =
cos 1 sin 1 0 0sin 1 cos 1 0 0
0 0 1 00 0 0 1
, (3.58)
T2(2) =
cos 2 sin 2 0 00 0 1 d2 sin 2 cos 2 0 00 0 0 1
, (3.59)
3.3. TRANSFORMING KINEMATIC CHAINS OF BODIES 109
z ,y ,y65 4
z ,4 6
z
110 S. M. LaValle: Planning Algorithms
Matrix i1 ai1 i diT1(1) 0 0 1 0
8/2/2019 Lavalle - Motion Planning
63/511
x ,1 0
x
z ,1 0
z
x2
y2
x , ,x64 5
x
y y65 4
z3
x3y
3
d2
a2
d4
d3
a3
y ,y1 0
z2
y5
Figure 3.16: The Puma 560 is shown along with the DH parameters and bodyframes for each link in the chain. This figure is borrowed from [555] by courtesyof the authors.
T3(3) =
cos 3 sin 3 0 a2sin 3 cos 3 0 0
0 0 1 d30 0 0 1
, (3.60)
T4(4) =
cos 4 sin 4 0 a30 0 1 d4
sin 4 cos 4 0 00 0 0 1
, (3.61)
T5(5) =
cos 5 sin 5 0 00 0 1 0
sin 5 cos 5 0 00 0 0 1
, (3.62)
and
T6(6) =
cos 6 sin 6 0 00 0 1 0sin 6 cos 6 0 00 0 0 1
. (3.63)
T1(1) 0 0 1 0T2(2) /2 0 2 d2T3(3) 0 a2 3 d3T4(4) /2 a3 4 d4T5(5) /2 0 5 0T6(6) /2 0 6 0
Figure 3.17: The DH parameters are shown for substitution into each homogeneoustransformation matrix (3.56). Note that a3 and d3 are negative in this example(they are signed displacements, not distances).
Figure 3.18: A hydrocarbon (octane) molecule with 8 carbon atoms and 18 hy-drogen atoms (courtesy of the New York University MathMol Library).
A point (x,y,z) in the body frame of the last link A6 appears in Was
T1(1)T2(2)T3(3)T4(4)T5(5)T6(6)xy
z1
. (3.64)
Example 3.5 (Transforming Octane) Figure 3.18 shows a ball-and-stick modelof an octane molecule. Each ball is an atom, and each stick represents a bondbetween a pair of atoms. There is a linear chain of eight carbon atoms, and a
bond exists between each consecutive pair of carbons in the chain. There are alsonumerous hydrogen atoms, but we will ignore them. Each bond between a pairof carbons is capable of twisting, as shown in Figure 3.19. Studying the configu-rations (called conformations) of molecules is an important part of computational
8/2/2019 Lavalle - Motion Planning
64/511
8/2/2019 Lavalle - Motion Planning
65/511
3.4. TRANSFORMING KINEMATIC TREES 115
y7y
7
116 S. M. LaValle: Planning Algorithms
of the upper and lower chains. Let 7u and 7l denote these s. Can really bechosen two different ways? This would imply that the tree is instead as pictured
8/2/2019 Lavalle - Motion Planning
66/511
A7
x7
x7
Figure 3.23: The junction is assigned two different frames, depending on whichchain was followed. The solid axes were obtained from transforming A9, and thedashed axes were obtained from transforming A13.
3.3.1 may be directly applied to yield a sequence of transformations,
T1 T5T6T7T8T9xy
1
, (3.68)
for a point (x, y) A9. Likewise, to transform T13, the sequence
T1 T5T6T7T12T13
xy1
(3.69)
can be used by ignoring the chain formed by A8 and A9. So far everything seemsto work well, but take a close look at A7. As shown in Figure 3.23, its body framewas defined in two different ways, one for each chain. If both are forced to usethe same frame, then at least one must abandon the nice conventions of Section3.3.1 for choosing frames. This situation becomes worse for 3D trees becausethis would suggest abandoning the DH parameterization. The Khalil-Kleinfingerparameterization is an elegant extension of the DH parameterization and solvesthese frame assignment issues [524].
Constraining parameters Fortunately, it is fine to use different frames whenfollowing different chains; however, one extra piece of information is needed. Imag-ine transforming the whole tree. The variable 7 will appear twice, once from each
in Figure 3.24, in which there are two independently moving links, A7u and A7l.To fix this problem, a constraint must be imposed. Suppose that 7l is treated as
A6
A13
A8
A9
A12
A5
A7u
A7l
Figure 3.24: Choosing each 7 independently would result in a tree that ignoresthat fact that A7 is rigid.
an independent variable. The parameter 7u must then be chosen as 7l + , inwhich is as shown in Figure 3.23.
Example 3.6 (A 2D Tree of Bodies) Figure 3.25 shows a 2D example thatinvolves six links. To transform (x, y) A6, the only relevant links are A5, A2,and A1. The chain of transformations is
T1T2lT5T6
xy1
, (3.70)
in which
T1 =
cos 1 sin 1 xtsin 1 cos 1 yt
0 0 1
=
cos 1 sin 1 0sin 1 cos 1 0
0 0 1
, (3.71)
T2l =
cos 2l sin 2l a1sin 2l cos 2l 0
0 0 1
=
cos 2 sin 2 1sin 2 cos 2 0
0 0 1
, (3.72)
T5 =
cos 5 sin 5 a2sin 5 cos 5 00 0 1
=cos 5 sin 5 2sin 5 cos 5 0
0 0 1
, (3.73)
3.4. TRANSFORMING KINEMATIC TREES 117
(0,0) (1,0) (3,0) (4,0)A2
(0, 0) (1, 0) (3, 0) (4, 0)
118 S. M. LaValle: Planning Algorithms
A2A3
A4
8/2/2019 Lavalle - Motion Planning
67/511
(0,1)A1 A3
A6
A5
A4
(2,1)
Figure 3.25: A tree of bodies in which the joints are attached in different places.
and
T6 =
cos 6 sin 6 a5sin 6 cos 6 0
0 0 1
=
cos 6 sin 6 1sin 6 cos 6 0
0 0 1
. (3.74)
The matrix T2l in (3.72) denotes the fact that the lower chain was followed. Thetransformation for points in A4 is
T1T2uT4T5
xy
1
, (3.75)
in which T1 is the same as in (3.71), and
T3 =cos 3 sin 3 a2sin 3 cos 3 0
0 0 1
= cos 3 sin 3
2sin 3 cos 3 00 0 1
, (3.76)and
T4 =
cos 4 sin 4 a4sin 4 cos 4 0
0 0 1
=
cos 4 sin 4 0sin 4 cos 4 0
0 0 1
. (3.77)
The interesting case is
T2u =cos 2u sin 2u a1sin 2u cos 2u 0
0 0 1
= cos(2l + /4) sin(2l + /4) a1sin(2l + /4) cos(2l + /4) 00 0 1
,(3.78)
A2
A5
A7
A10
A9
A1
A8
A6
Figure 3.26: There are ten links and ten revolute joints arranged in a loop. Thisis an example of a closed kinematic chain.
in which the constraint 2u = 2l + /4 is imposed to enforce the fact that A2 is ajunction.
For a 3D tree of bodies the same general principles may be followed. In somecases, there will not be any complications that involve special considerations of
junctions and constraints. One example of this is the transformation of flexiblemolecules because all consecutive rotation axes intersect, and junctions occur di-rectly at these points of intersection. In general, however, the DH parametertechnique may be applied for each chain, and then the appropriate constraintshave to be determined and applied to represent the true degrees of freedom of thetree. The Khalil-Kleinfinger parameterization conveniently captures the resultingsolution [524].
What if there are loops? The most general case includes links that are con-
nected in loops, as shown in Figure 3.26. These are generally referred to as closedkinematic chains. This arises in many applications. For example, with humanoidrobotics or digital actors, a loop is formed when both feet touch the ground. Asanother example, suppose that two robot manipulators, such as the Puma 560from Example 3.4, cooperate together to carry an object. If each robot grasps thesame object with its hand, then a loop will be formed. A complicated exampleof this was shown in Figure 1.5, in which mobile robots moved a piano. Outsideof robotics, a large fraction of organic molecules have flexible loops. Exploringthe space of their conformations requires careful consideration of the difficultiesimposed by these loops.
The main difficulty of working with closed kinematic chains is that it is hardto determine which parameter values are within an acceptable range to ensureclosure. If these values are given, then the transformations are handled in the
8/2/2019 Lavalle - Motion Planning
68/511
8/2/2019 Lavalle - Motion Planning
69/511
8/2/2019 Lavalle - Motion Planning
70/511
3.5. NONRIGID TRANSFORMATIONS 125
Compare this approach to directly using a full rotation matrix, ( 3.42), to representthe joint in the homogeneous transformation matrix.
126 S. M. LaValle: Planning Algorithms
8/2/2019 Lavalle - Motion Planning
71/511
10. Figure 3.12 showed six different ways in which 2D surfaces can slide with respect
to each other to produce a joint.(a) Suppose that two bodies contact each other along a one-dimensional curve.
Characterize as many different kinds of joints as possible, and indicate thedegrees of freedom of each.
(b) Suppose that the two bodies contact each other at a point. Indicate the typesof rolling and sliding that are possible, and their corresponding degrees offreedom.
11. Suppose that two bodies form a screw joint in which the axis of the central axis of
the screw aligns with the x-axis of the first body. Determine an appropriate homo-geneous transformation matrix to use in place of the DH matrix. Define the matrixwith the screw radius, r, and displacement-per-revolution, d, as parameters.
12. Recall Example 3.6. How should the transformations be modified so that the linksare in the positions shown in Figure 3.25 at the zero configuration (i = 0 for everyrevolute joint whose angle can be independently chosen)?
13. Generalize the shearing transformation of (3.84) to enable shearing of 3D models.
Implementations
14. Develop and implement a kinematic model for 2D linkages. Enable the user todisplay the arrangement of links in the plane.
15. Implement the kinematics of molecules that do not have loops and show themgraphically as a ball and stick model. The user should be able to input theatomic radii, bond connections, bond lengths, and rotation ranges for each bond.
16. Design and implement a software system in which the user can interactively attach
various links to make linkages that resemble those possible from using Tinkertoys(or another popular construction set that allows pieces to move). There are severalrods of various lengths, which fit into holes in the center and around the edge ofseveral coin-shaped pieces. Assume that all joints are revolute. The user shouldbe allowed to change parameters and see the resulting positions of all of the links.
17. Construct a model of the human body as a tree of links in a 3D world. Forsimplicity, the geometric model may be limited to spheres and cylinders. Designand implement a system that displays the virtual human and allows the user toclick on joints of the body to enable them to rotate.
18. Develop a simulator with 3D graphics for the Puma 560 model shown in Figure3.4.
8/2/2019 Lavalle - Motion Planning
72/511
8/2/2019 Lavalle - Motion Planning
73/511
8/2/2019 Lavalle - Motion Planning
74/511
8/2/2019 Lavalle - Motion Planning
75/511
8/2/2019 Lavalle - Motion Planning
76/511
8/2/2019 Lavalle - Motion Planning
77/511
8/2/2019 Lavalle - Motion Planning
78/511
8/2/2019 Lavalle - Motion Planning
79/511
8/2/2019 Lavalle - Motion Planning
80/511
8/2/2019 Lavalle - Motion Planning
81/511
8/2/2019 Lavalle - Motion Planning
82/511
8/2/2019 Lavalle - Motion Planning
83/511
8/2/2019 Lavalle - Motion Planning
84/511
8/2/2019 Lavalle - Motion Planning
85/511
8/2/2019 Lavalle - Motion Planning
86/511
8/2/2019 Lavalle - Motion Planning
87/511
4.3. CONFIGURATION SPACE OBSTACLES 159
-4 -3 -2 -1
A
O
C
A
6543210
160 S. M. LaValle: Planning Algorithms
8/2/2019 Lavalle - Motion Planning
88/511
Cobs
Figure 4.12: A one-dimensional C-space obstacle.
OA
Figure 4.13: A triangular robot and a rectangular obstacle.
For a one-dimensional example, let f : R {0, 1} be a function such that f(x) = 1if and only ifx O. Similarly, let g : R {0, 1} be a function such that g(x) = 1if and only if x A. The convolution
h(x) =
f()g(x )d, (4.38)
yields a function h, for which h(x) > 0 if x int(Cobs), and h(x) = 0 otherwise.
A polygonal C-space obstacle A simple algorithm for computing Cobs existsin the case of a 2D world that contains a convex polygonal obstacle O and aconvex polygonal robot A [657]. This is often called the star algorithm. For thisproblem, Cobs is also a convex polygon. Recall that nonconvex obstacles and robotscan be modeled as the union of convex parts. The concepts discussed below canalso be applied in the nonconvex case by considering Cobs as the union of convexcomponents, each of which corresponds to a convex component ofA colliding witha convex component ofO.
The method is based on sorting normals to the edges of the polygons on thebasis of angles. The key observation is that every edge of Cobs is a translated edgefrom either A or O. In fact, every edge from O and A is used exactly once inthe construction of Cobs. The only problem is to determine the ordering of theseedges of Cobs. Let 1, 2, . . ., n denote the angles of the inward edge normalsin counterclockwise order around A. Let 1, 2, . . ., n denote the outward edgenormals to O. After sorting both sets of angles in circular order around S1, Cobscan be constructed incrementally by using the edges that correspond to the sortednormals, in the order in which they are encountered.
Example 4.14 (A Triangular Robot and Rectangular Obstacle) To gain anunderstanding of the method, consider the case of a triangular robot and a rect-angular obstacle, as shown in Figure 4.13. The black dot on A denotes the origin
Cobs O
(a) (b)
Figure 4.14: (a) Slide the robot around the obstacle while keeping them both incontact. (b) The edges traced out by the origin of A form Cobs.
1
2
1
3
4
32
4
13
2
1
2
3
(a) (b)
Figure 4.15: (a) Take the inward edge normals ofA and the outward edge normalsofO. (b) Sort the edge normals around S1. This gives the order of edges in Cobs.
8/2/2019 Lavalle - Motion Planning
89/511
8/2/2019 Lavalle - Motion Planning
90/511
8/2/2019 Lavalle - Motion Planning
91/511
8/2/2019 Lavalle - Motion Planning
92/511
8/2/2019 Lavalle - Motion Planning
93/511
8/2/2019 Lavalle - Motion Planning
94/511
8/2/2019 Lavalle - Motion Planning
95/511
8/2/2019 Lavalle - Motion Planning
96/511
8/2/2019 Lavalle - Motion Planning
97/511
8/2/2019 Lavalle - Motion Planning
98/511
8/2/2019 Lavalle - Motion Planning
99/511
8/2/2019 Lavalle - Motion Planning
100/511
8/2/2019 Lavalle - Motion Planning
101/511
8/2/2019 Lavalle - Motion Planning
102/511
8/2/2019 Lavalle - Motion Planning
103/511
8/2/2019 Lavalle - Motion Planning
104/511
8/2/2019 Lavalle - Motion Planning
105/511
8/2/2019 Lavalle - Motion Planning
106/511
8/2/2019 Lavalle - Motion Planning
107/511
8/2/2019 Lavalle - Motion Planning
108/511
5.2. SAMPLING THEORY 201 202 S. M. LaValle: Planning Algorithms
8/2/2019 Lavalle - Motion Planning
109/511
(a) 196 pseudorandom samples (b) 196 pseudorandom samples
Figure 5.3: Irregularity in a collection of (pseudo)random samples can be nicelyobserved with Voronoi diagrams.
of these regions give some indication of the required irregularity of random sam-pling. This irregularity may be undesirable for sampling-based motion planningand is somewhat repaired by the deterministic sampling methods of Sections 5.2.3and 5.2.4 (however, these methods also have drawbacks).
5.2.3 Low-Dispersion Sampling
This section describes an alternative to random sampling. Here, the goal is tooptimize a criterion called dispersion [738]. Intuitively, the idea is to place samplesin a way that makes the largest uncovered area be as small as possible. Thisgeneralizes of the idea ofgrid resolution. For a grid, the resolution may be selectedby defining the step size for each axis. As the step size is decreased, the resolutionincreases. If a grid-based motion planning algorithm can increase the resolutionarbitrarily, it becomes resolution complete. Using the concepts in this section,
it may instead reduce its dispersion arbitrarily to obtain a resolution completealgorithm. Thus, dispersion can be considered as a powerful generalization of thenotion of resolution.
Dispersion definition The dispersion6 of a finite set P of samples in a metricspace (X, ) is7
(P) = supxX
minpP
(x, p)
. (5.19)
6The definition is unfortunately backward from intuition. Lower dispersion means that the
points are nicely dispersed. Thus, more dispersion is bad, which is counterintuitive.7The sup represents the supremum, which is the least upper bound. IfX is closed, then thesup becomes a max. See Section 9.1.1 for more details.
(a) L2 dispersion (b) L dispersion
Figure 5.4: Reducing the dispersion means reducing the radius of the largest emptyball.
(a) 196-point Sukharev grid (b) 196 lattice points
Figure 5.5: The Sukharev grid and a nongrid lattice.
Figure 5.4 gives an interpretation of the definition for two different metrics.An alternative way to consider dispersion is as the radius of the largest emptyball (for the L metric, the balls are actually cubes). Note that at the boundaryof X (if it exists), the empty ball becomes truncated because it cannot exceedthe boundary. There is also a nice interpretation in terms of Voronoi diagrams.Figure 5.3 can be used to help explain L2 dispersion in R
2. The Voronoi verticesare the points at which three or more Voronoi regions meet. These are points inC for which the nearest sample is far. An open, empty disc can be placed at anyVoronoi vertex, with a radius equal to the distance to the three (or more) closest
samples. The radius of the largest disc among those placed at all Voronoi verticesis the dispersion. This interpretation also extends nicely to higher dimensions.
8/2/2019 Lavalle - Motion Planning
110/511
8/2/2019 Lavalle - Motion Planning
111/511
8/2/2019 Lavalle - Motion Planning
112/511
8/2/2019 Lavalle - Motion Planning
113/511
8/2/2019 Lavalle - Motion Planning
114/511
8/2/2019 Lavalle - Motion Planning
115/511
8/2/2019 Lavalle - Motion Planning
116/511
8/2/2019 Lavalle - Motion Planning
117/511
8/2/2019 Lavalle - Motion Planning
118/511
8/2/2019 Lavalle - Motion Planning
119/511
8/2/2019 Lavalle - Motion Planning
120/511
8/2/2019 Lavalle - Motion Planning
121/511
8/2/2019 Lavalle - Motion Planning
122/511
5.5. RAPIDLY EXPLORING DENSE TREES 229
SIMPLE RDT(q0)1 G.init(q0);2 for i = 1 to k do3 G.add vertex((i));4 qn
nearest(S(
G), (i));
5 G.add edge(qn, (i));
Figure 5.16: The basic algorithm for constructing RDTs (which includes RRTsas a special case) when there are no obstacles. It requires the availability of ad d it ti l t f (i) t th t i t
230 S. M. LaValle: Planning Algorithms
qn
(i)q0
8/2/2019 Lavalle - Motion Planning
123/511
dense sequence, , and iteratively connects from (i) to the nearest point amongall those reached by G.
q0
qn
(i)
q0
(a) (b)
Figure 5.17: (a) Suppose inductively that this tree has been constructed so farusing the algorithm in Figure 5.16. (b) A new edge is added that connects fromthe sample (i) to the nearest point in S, which is the vertex qn.
5.5.1 The Exploration Algorithm
Before explaining how to use these trees to solve a planning query, imagine thatthe goal is to get as close as possible to every configuration, starting from aninitial configuration. The method works for any dense sequence. Once again, let denote an infinite, dense sequence of samples in C. The ith sample is denoted by(i). This may possibly include a uniform, random sequence, which is only densewith probability one. Random sequences that induce a nonuniform bias are also
acceptable, as long as they are dense with probability one.An RDT is a topological graph, G(V, E). Let S Cfree indicate the set of allpoints reached by G. Since each e E is a path, this can be expressed as theswath, S, of the graph, which is defined as
S =eE
e([0, 1]). (5.40)
In (5.40), e([0, 1]) Cfree is the image of the path e.The exploration algorithm is first explained in Figure 5.16 without any obsta-
cles or boundary obstructions. It is assumed that C is a metric space. Initially,a vertex is made at q0. For k iterations, a tree is iteratively grown by connecting
Figure 5.18: If the nearest point in S lies in an edge, then the edge is split intotwo, and a new vertex is inserted into G.
45 iterations 2345 iterations
Figure 5.19: In the early iterations, the RRT quickly reaches the unexplored parts.However, the RRT is dense in the limit (with probability one), which means thatit gets arbitrarily close to any point in the space.
8/2/2019 Lavalle - Motion Planning
124/511
8/2/2019 Lavalle - Motion Planning
125/511
8/2/2019 Lavalle - Motion Planning
126/511
8/2/2019 Lavalle - Motion Planning
127/511
8/2/2019 Lavalle - Motion Planning
128/511
8/2/2019 Lavalle - Motion Planning
129/511
8/2/2019 Lavalle - Motion Planning
130/511
8/2/2019 Lavalle - Motion Planning
131/511
8/2/2019 Lavalle - Motion Planning
132/511
8/2/2019 Lavalle - Motion Planning
133/511
8/2/2019 Lavalle - Motion Planning
134/511
8/2/2019 Lavalle - Motion Planning
135/511
6.2. POLYGONAL OBSTACLE REGIONS 255
(a) (b)
256 S. M. LaValle: Planning Algorithms
8/2/2019 Lavalle - Motion Planning
136/511
Figure 6.3: The vertical cell decomposition method uses the cells to construct aroadmap, which is searched to yield a solution to a query.
General position issues What if two points along Cobs lie on a vertical linethat slices through Cfree? What happens when one of the edges ofCobs is vertical?These are special cases that have been ignored so far. Throughout much of com-binatorial motion planning it is common to ignore such special cases and assumeCobs is in general position. This usually means that if all of the data points areperturbed by a small amount in some random direction, the probability that thespecial case remains is zero. Since a vertical edge is no longer vertical after beingslightly perturbed, it is not in general position. The general position assumption is
usually made because it greatly simplifies the presentation of an algorithm (and, insome cases, its asymptotic running time is even lower). In practice, however, thisassumption can be very frustrating. Most of the implementation time is often de-voted to correctly handling such special cases. Performing random perturbationsmay avoid this problem, but it tends to unnecessarily complicate the solutions. Forthe vertical decomposition, the problems are not too difficult to handle withoutresorting to perturbations; however, in general, it is important to be aware of thisdifficulty, which is not as easy to fix in most other settings.
Defining the roadmap To handle motion planning queries, a roadmap is con-structed from the vertical cell decomposition. For each cell Ci, let qi denote adesignated sample point such that qi Ci. The sample points can be selected asthe cell centroids, but the particular choice is not too important. Let G(V, E) bea topological graph defined as follows. For every cell, Ci, define a vertex qi V.There is a vertex for every 1-cell and every 2-cell. For each 2-cell, define an edgefrom its sample point to the sample point of every 1-cell that lies along its bound-ary. Each edge is a line-segment path between the sample points of the cells. Theresulting graph is a roadmap, as depicted in Figure 6.4. The accessibility condi-
tion is satisfied because every sample point can be reached by a straight-line paththanks to the convexity of every cell. The connectivity condition is also satisfied
Figure 6.4: The roadmap derived from the vertical cell decomposition.
qI
qG
Figure 6.5: An example solution path.
8/2/2019 Lavalle - Motion Planning
137/511
6.2. POLYGONAL OBSTACLE REGIONS 259
b
i
m
nh
c
e
l
260 S. M. LaValle: Planning Algorithms
One closest
point
Two closestpoints
One closestpoint
Figure 6.8: The maximum clearance roadmap keeps as far away from the Cobs aspossible. This involves traveling along points that are equidistant from two ormore points on the boundary ofCobs.
8/2/2019 Lavalle - Motion Planning
138/511
1 2 3 4 5 6 7 8 9 10 11 12 130
a
d
f
gc
j
k
Figure 6.6: There are 14 events in this example.
Event Sorted Edges in L Event Sorted Edges in L0 {a, b} 7 {d,j,n,b}1 {d, b} 8 {d,j,n,m,l,b}2
{d,f,e,b
}9
{d,j,l,b
}3 {d,f,i,b} 10 {d,k,l,b}4 {d,f,g,h,i,b} 11 {d, b}5 {d,f,g,j,n,h,i,b} 12 {d, c}6 {d,f,g,j,n,b} 13 {}
Figure 6.7: The status of L is shown after each of 14 events occurs. Before thefirst event, L is empty.
Edge-Edge Vertex-Vertex Vertex-Edge
Figure 6.9: Voronoi roadmap pieces are generated in one of three possible cases.The third case leads to a quadratic curve.
6.2.3 Maximum-Clearance Roadmaps
A maximum-clearance roadmap tries to keep as far as possible from Cobs, as shownfor the corridor in Figure 6.8. The resulting solution paths are sometimes pre-ferred in mobile robotics applications because it is difficult to measure and controlthe precise position of a mobile robot. Traveling along the maximum-clearanceroadmap reduces the chances of collisions due to these uncertainties. Other namesfor this roadmap are generalized Voronoi diagram and retraction method [749]. Itis considered as a generalization of the Voronoi diagram (recall from Section 5.2.2)
from the case of points to the case of polygons. Each point along a roadmap edgeis equidistant from two points on the boundary of Cobs. Each roadmap vertexcorresponds to the intersection of two or more roadmap edges and is thereforeequidistant from three or more points along the boundary of Cobs.
The retraction term comes from topology and provides a nice intuition aboutthe method. A subspace S is a deformation retract of a topological space X if thefollowing continuous homotopy, h : X [0, 1] X, can be defined as follows [451]:
1. h(x, 0) = x for all x X.
2. h(x, 1) is a continuous function that maps every element of X to some ele-ment of S.
8/2/2019 Lavalle - Motion Planning
139/511
8/2/2019 Lavalle - Motion Planning
140/511
8/2/2019 Lavalle - Motion Planning
141/511
8/2/2019 Lavalle - Motion Planning
142/511
8/2/2019 Lavalle - Motion Planning
143/511
8/2/2019 Lavalle - Motion Planning
144/511
8/2/2019 Lavalle - Motion Planning
145/511
8/2/2019 Lavalle - Motion Planning
146/511
6.3. CELL DECOMPOSITIONS 277
e
L
v
L
(a) (b)
eL
v
v2
278 S. M. LaValle: Planning Algorithms
R1 R2 R3 R4
R6R7
R9
R10
R11
R12
R13
A
R8
e3
e2
x1
e4
e1
8/2/2019 Lavalle - Motion Planning
147/511
vL
v1
(c) (d)
Figure 6.24: Four of the five cases that produce critical curves in R2.
fourth-degree algebraic curve called the Conchoid of Nicomedes, which arises from
A being in simultaneous contact between v and e. Inside of the teardrop-shapedcurve, A can contact e but not v. Just outside of the curve, it can touch v. If thexy coordinate frame is placed so that v is at (0, 0), then the equation of the curveis
(x2 y2)(y + d)2 y2L2 = 0, (6.7)in which d is the distance from v to e.
Putting all of the curves together generates a cell decomposition of R2. Thereare noncritical regions, over which there is no change in (6.6); these form the 2-cells. The boundaries between adjacent 2-cells are sections of the critical curves
v
eA
L
Figure 6.25: The fifth case is the most complicated. It results in a fourth-degreealgebraic curve called the Conchoid of Nicomedes.
R5 x2
Figure 6.26: The critical curves form the boundaries of the noncritical regions inR2.
and form 1-cells. There are also 0-cells at places where critical curves intersect.Figure 6.26 shows an example adapted from [588]. Note that critical curves are notdrawn if their corresponding configurations are all in Cobs. The method still workscorrectly if they are included, but unnecessary cell boundaries are made. Just forfun, they could be used to form a nice cell decomposition of Cobs, in addition toCfree. Since Cobs is avoided, is seems best to avoid wasting time on decomposingit. These unnecessary cases can be detected by imagining that A is a laser withrange L. As the laser sweeps around, only features that are contacted by the laserare relevant. Any features that are hidden from view of the laser correspond tounnecessary boundaries.
After the cell decomposition has been constructed in R2, it needs to be liftedinto R2 [0, 2]/ . This generates a cylinder of 3-cells above each 2D noncriticalregion, R. The roadmap could easily be defined to have a vertex for every 3-celland 2-cell, which would be consistent with previous cell decompositions; however,vertices at 2-cells are not generated here to make the coming example easier tounderstand. Each 3-cell, {R, [fi, fi+1]}, corresponds to the vertex in a roadmap.The roadmap edges connect neighboring 3-cells that have a 2-cell as part of theircommon boundary. This means that in R2 they share a one-dimensional portionof a critical curve.
Constructing the roadmap The problem is to determine which 3-cells areactually adjacent. Figure 6.27 depicts the cases in which connections need to bemade. The xy plane is represented as one axis (imagine looking in a direction
parallel to it). Consider two neighboring 2-cells (noncritical regions), R and R, inthe plane. It is assumed that a 1-cell (critical curve) in R2 separates them. The
8/2/2019 Lavalle - Motion Planning
148/511
8/2/2019 Lavalle - Motion Planning
149/511
8/2/2019 Lavalle - Motion Planning
150/511
8/2/2019 Lavalle - Motion Planning
151/511
8/2/2019 Lavalle - Motion Planning
152/511
8/2/2019 Lavalle - Motion Planning
153/511
6.4. COMPUTATIONAL ALGEBRAIC GEOMETRY 291
fj
Ci1
fj+1
f
292 S. M. LaValle: Planning Algorithms
3
6
7
9
12
1 13
14
15
16
19
20
21
24
25
26
27
28
328
33
35
30
364
37
31
8/2/2019 Lavalle - Motion Planning
154/511
f1
Figure 6.34: A cylinder over every k-cell Ci1 is formed. A sequence of poly-nomials, f1, . . ., f, slices the cylinder into k-dimensional sections and (k + 1)-dimensional sectors.
Example 6.6 (Mutilating the Gingerbread Face) Figure 6.35 shows a cylin-drical algebraic decomposition of the gingerbread face. Observe that the resultingcomplex is very similar to that obtained in Figure 6.19.
Note that the cells do not necessarily project onto a rectangular set, as in thecase of a higher dimensional vertical decomposition. For example, a generic n-cellCn for a decomposition of R
n is described as the open set of (x1, . . . , xn) Rnsuch that
C0 < xn < C0 for some 0-cells C0, C0 R, which are roots of some f, f F1. (xn1, xn) lies between C1 and C1 for some 1-cells C1, C1, which are zeros of
some f, f F2....
(xni+1, . . . , xn) lies between Ci1 and Ci1 for some i-cells Ci1, Ci1, whichare zeros of some f, f Fi.
...
5
6
10
11
17
18
22
23
2934
230
R
Figure 6.35: A cylindrical algebraic decomposition of the gingerbread face. Thereare 37 2-cells, 64 1-cells, and 28 0-cells. The straight 1-cells are intervals of thevertical lines, and the curved ones are portions of the zero set of a polynomial in
F. The decomposition of R is also shown.
(x1, . . . , xn) lies between Cn1 and Cn1 for some (n 1)-cells Cn1, Cn1,which are zeros of some f, f Fn.
The resulting decomposition is sign invariant, which allows the decision andquantifier-elimination problems to be solved in finite time. To solve a decisionproblem, the polynomials in Fn are evaluated at every sample point to deter-mine whether one of them satisfies the Tarski sentence. To solve the quantifier-
elimination problem, note that any semi-algebraic sets that can be constructedfrom Fn can be defined as a union of some cells in the decomposition. For thegiven Tarski sentence, Fn is formed from all polynomials that are mentioned inthe sentence, and the cell decomposition is performed. Once obtained, the signinformation is used to determine which cells need to be included in the union. Theresulting union of cells is designed to include only the points in Rn at which theTarski sentence is true.
Solving a motion planning problem Cylindrical algebraic decomposition isalso capable of solving any of the motion planning problems formulated in Chapter4. First assume that C = Rn. As for other decompositions, a roadmap is formed
8/2/2019 Lavalle - Motion Planning
155/511
8/2/2019 Lavalle - Motion Planning
156/511
8/2/2019 Lavalle - Motion Planning
157/511
8/2/2019 Lavalle - Motion Planning
158/511
8/2/2019 Lavalle - Motion Planning
159/511
8/2/2019 Lavalle - Motion Planning
160/511
8/2/2019 Lavalle - Motion Planning
161/511
8/2/2019 Lavalle - Motion Planning
162/511
6.5. COMPLEXITY OF MOTION PLANNING 309
12. Develop a shortest-path roadmap algorithm for a flat torus, defined by identifyingopposite edges of a square. Use Euclidean distance but respect the identificationswhen determining the shortest path. Assume the robot is a point and the obstaclesare polygonal.
Implementations
13. Implement the vertical cell decomposition planning algorithm of Section 6.2.2.
14. Implement the maximum-clearance roadmap planning algorithm of Section 6.2.3.
15. Implement a planning algorithm for a point robot that moves in W= R3 amongpolyhedral obstacles. Use vertical decomposition.
16. Implement an algorithm that performs a cylindrical decomposition of a polygonalobstacle region.
310 S. M. LaValle: Planning Algorithms
8/2/2019 Lavalle - Motion Planning
163/511
g
17. Implement an algorithm that computes the cell decomposition of Section 6.3.4 forthe line-segment robot.
18. Experiment with cylindrical algebraic decomposition. The project can be greatlyfacilitated by utilizing existing packages for performing basic operations in com-putational algebraic geometry.
19. Implement the algorithm proposed in Exercise 7.
8/2/2019 Lavalle - Motion Planning
164/511
8/2/2019 Lavalle - Motion Planning
165/511
8/2/2019 Lavalle - Motion Planning
166/511
8/2/2019 Lavalle - Motion Planning
167/511
8/2/2019 Lavalle - Motion Planning
168/511
8/2/2019 Lavalle - Motion Planning
169/511
8/2/2019 Lavalle - Motion Planning
170/511
8/2/2019 Lavalle - Motion Planning
171/511
8/2/2019 Lavalle - Motion Planning
172/511
8/2/2019 Lavalle - Motion Planning
173/511
8/2/2019 Lavalle - Motion Planning
174/511
8/2/2019 Lavalle - Motion Planning
175/511
8/2/2019 Lavalle - Motion Planning
176/511
8/2/2019 Lavalle - Motion Planning
177/511
8/2/2019 Lavalle - Motion Planning
178/511
8/2/2019 Lavalle - Motion Planning
179/511
8/2/2019 Lavalle - Motion Planning
180/511
8/2/2019 Lavalle - Motion Planning
181/511
8/2/2019 Lavalle - Motion Planning
182/511
8/2/2019 Lavalle - Motion Planning
183/511
8/2/2019 Lavalle - Motion Planning
184/511
8/2/2019 Lavalle - Motion Planning
185/511
7.6. COVERAGE PLANNING 355
Figure 7.35: An example of the ox plowing motions.
356 S. M. LaValle: Planning Algorithms
(a) (b)
8/2/2019 Lavalle - Motion Planning
186/511
(a) (b)
Figure 7.36: (a) Only the first case from Figure 6.2 is needed: extend upward
and downward. All other cases are neglected. (b) The resulting decomposition isshown, which has fewer cells than that of the vertical decomposition in Figure 6.3.
would cause unnecessary repositioning of the robot. A similar method, whichfurthermore optimizes the number of robot turns, is presented in [468].
Spanning tree covering An interesting approximate method was developedby Gabriely and Rimon; it places a tiling of squares inside of Cfree and computesthe spanning tree of the resulting connectivity graph [372, 373]. Suppose again
that Cfree is polygonal. Consider the example shown in Figure 7.37a. The firststep is to tile the interior of Cfree with squares, as shown in Figure 7.37b. Eachsquare should be of width , for some constant > 0. Next, construct a roadmapG by placing a vertex in the center of each square and by defining an edge thatconnects the centers of each pair of adjacent cubes. The next step is to computea spanning tree ofG. This is a connected subgraph that has no cycles and touchesevery vertex ofG; it can be computed in O(n) time, ifG has n edges [683]. Thereare many possible spanning trees, and a criterion can be defined and optimized toinduce preferences. One possible spanning tree is shown Figure 7.37c.
Once the spanning tree is made, the robot path is obtained by starting at a
(c) (d)
Figure 7.37: (a) An example used for spanning tree covering. (b) The first step isto tile the interior with squares. (c) The spanning tree of a roadmap formed fromgrid adjacencies. (d) The resulting coverage path.
Figure 7.38: A circular path is made by doubling the resolution and following theperimeter of the spanning tree.
8/2/2019 Lavalle - Motion Planning
187/511
8/2/2019 Lavalle - Motion Planning
188/511
8/2/2019 Lavalle - Motion Planning
189/511
8/2/2019 Lavalle - Motion Planning
190/511
8/2/2019 Lavalle - Motion Planning
191/511
8/2/2019 Lavalle - Motion Planning
192/511
8/2/2019 Lavalle - Motion Planning
193/511
8/2/2019 Lavalle - Motion Planning
194/511
8/2/2019 Lavalle - Motion Planning
195/511
8/2/2019 Lavalle - Motion Planning
196/511
8/2/2019 Lavalle - Motion Planning
197/511
8/2/2019 Lavalle - Motion Planning
198/511
8/2/2019 Lavalle - Motion Planning
199/511
8/2/2019 Lavalle - Motion Planning
200/511
8.3. VECTOR FIELDS AND INTEGRAL CURVES 385
2
1
0
1
2
x_2
2 1 0 1 2
x_1
x2
x1
2
1
0
1
2
x_2
2 1 0 1 2
x_1
x2
x1(a) (b)
Figure 8.5: (a) A constant vector field, f(x, y) = [1 1]. (b) A vector field,f(x, y) = [x y] in which all vectors point to the origin.
386 S. M. LaValle: Planning Algorithms
2
1
0
1
2
x_2
2 1 0 1 2
x_1
x2
x1
Figure 8.6: A swirling vector field, f(x, y) = [(y x) (x y)].
Vector fields as velocity fields We now give a particular interpretation tovector fields A vector field expressed using (8 10) can be used to define a set of
8/2/2019 Lavalle - Motion Planning
201/511
Example 8.7 (Inward Flow) Figure 8.5b depicts a vector field that assigns[x y] to every (x, y) R2. This causes all vectors to point to the ori-gin.
Example 8.8 (Swirl) The vector field in Figure 8.6 assigns [(y x) (x y)]to every (x, y) R2.
Due to obstacles that arise in planning problems, it will be convenient to some-times restrict the domain of a vector field to an open subset of Rn. Thus, for anyopen subset O Rn, a vector field f : O Rn can be defined.
Smoothness A function fi from a subset ofRn
into R is called a smooth functionif derivatives of any order can be taken with respect to any variables, at any pointin the domain offi. A vector field is said to be smoothif every one of its n definingfunctions, f1, . . ., fn, is smooth. An alternative name for a smooth function is aC function. The superscript represents the order of differentiation that can betaken. For a Ck function, its derivatives can be taken at least up to order k.A C0 function is an alternative name for a continuous function. The notion of ahomeomorphism can be extended to a diffeomorphism, which is a homeomorphismthat is a smooth function. Two topological spaces are called diffeomorphic if thereexists a diffeomorphism between them.
vector fields. A vector field expressed using (8.10) can be used to define a set offirst-order differential equations as
dx1dt
= f1(x1, . . . , xn)
dx2
dt
= f2(x1, . . . , xn)
...
dxndt
= fn(x1, . . . , xn).
(8.11)
Each equation represents the derivative of one coordinate with respect to time.For any point x Rn, a velocity vector is defined as
dx
dt=
dx1dt
dx2dt
dxndt . (8.12)
This enables f to be interpreted as a velocity field.It is customary to use the short notation x = dx/dt. Each velocity component
can be shortened to xi = dxi/dt. Using f to denote the vector of functions f1, . . .,fn, (8.11) can be shorted to
x = f(x). (8.13)
The use of f here is an intentional coincidence with the use of f for the statetransition equation. In Part IV, we will allow vector fields to be parameterized byactions. This leads to a continuous-time state transition equation that looks like
8/2/2019 Lavalle - Motion Planning
202/511
8/2/2019 Lavalle - Motion Planning
203/511
8/2/2019 Lavalle - Motion Planning
204/511
8/2/2019 Lavalle - Motion Planning
205/511
8/2/2019 Lavalle - Motion Planning
206/511
8/2/2019 Lavalle - Motion Planning
207/511
8/2/2019 Lavalle - Motion Planning
208/511
8/2/2019 Lavalle - Motion Planning
209/511
8/2/2019 Lavalle - Motion Planning
210/511
8/2/2019 Lavalle - Motion Planning
211/511
8/2/2019 Lavalle - Motion Planning
212/511
8/2/2019 Lavalle - Motion Planning
213/511
8/2/2019 Lavalle - Motion Planning
214/511
8/2/2019 Lavalle - Motion Planning
215/511
8/2/2019 Lavalle - Motion Planning
216/511
8/2/2019 Lavalle - Motion Planning
217/511
8/2/2019 Lavalle - Motion Planning
218/511
8/2/2019 Lavalle - Motion Planning
219/511
8/2/2019 Lavalle - Motion Planning
220/511
8/2/2019 Lavalle - Motion Planning
221/511
8/2/2019 Lavalle - Motion Planning
222/511
8/2/2019 Lavalle - Motion Planning
223/511
8/2/2019 Lavalle - Motion Planning
224/511
Part III
Decision-Theoretic Planning
8/2/2019 Lavalle - Motion Planning
225/511
433
8/2/2019 Lavalle - Motion Planning
226/511
8/2/2019 Lavalle - Motion Planning
227/511
8/2/2019 Lavalle - Motion Planning
228/511
8/2/2019 Lavalle - Motion Planning
229/511
8/2/2019 Lavalle - Motion Planning
230/511
8/2/2019 Lavalle - Motion Planning
231/511
8/2/2019 Lavalle - Motion Planning
232/511
8/2/2019 Lavalle - Motion Planning
233/511
8/2/2019 Lavalle - Motion Planning
234/511
8/2/2019 Lavalle - Motion Planning
235/511
8/2/2019 Lavalle - Motion Planning
236/511
8/2/2019 Lavalle - Motion Planning
237/511
8/2/2019 Lavalle - Motion Planning
238/511
8/2/2019 Lavalle - Motion Planning
239/511
8/2/2019 Lavalle - Motion Planning
240/511
8/2/2019 Lavalle - Motion Planning
241/511
8/2/2019 Lavalle - Motion Planning
242/511
8/2/2019 Lavalle - Motion Planning
243/511
8/2/2019 Lavalle - Motion Planning
244/511
8/2/2019 Lavalle - Motion Planning
245/511
8/2/2019 Lavalle - Motion Planning
246/511
8/2/2019 Lavalle - Motion Planning
247/511
8/2/2019 Lavalle - Motion Planning
248/511
8/2/2019 Lavalle - Motion Planning
249/511
8/2/2019 Lavalle - Motion Planning
250/511
8/2/2019 Lavalle - Motion Planning
251/511
8/2/2019 Lavalle - Motion Planning
252/511
8/2/2019 Lavalle - Motion Planning
253/511
8/2/2019 Lavalle - Motion Planning
254/511
8/2/2019 Lavalle - Motion Planning
255/511
8/2/2019 Lavalle - Motion Planning
256/511
8/2/2019 Lavalle - Motion Planning
257/511
8/2/2019 Lavalle - Motion Planning
258/511
8/2/2019 Lavalle - Motion Planning
259/511
8/2/2019 Lavalle - Motion Planning
260/511
8/2/2019 Lavalle - Motion Planning
261/511
8/2/2019 Lavalle - Motion Planning
262/511
8/2/2019 Lavalle - Motion Planning
263/511
8/2/2019 Lavalle - Motion Planning
264/511
8/2/2019 Lavalle - Motion Planning
265/511
8/2/2019 Lavalle - Motion Planning
266/511
8/2/2019 Lavalle - Motion Planning
267/511
8/2/2019 Lavalle - Motion Planning
268/511
8/2/2019 Lavalle - Motion Planning
269/511
8/2/2019 Lavalle - Motion Planning
270/511
8/2/2019 Lavalle - Motion Planning
271/511
8/2/2019 Lavalle - Motion Planning
272/511
8/2/2019 Lavalle - Motion Planning
273/511
8/2/2019 Lavalle - Motion Planning
274/511
8/2/2019 Lavalle - Motion Planning
275/511
8/2/2019 Lavalle - Motion Planning
276/511
8/2/2019 Lavalle - Motion Planning
277/511
8/2/2019 Lavalle - Motion Planning
278/511
8/2/2019 Lavalle - Motion Planning
279/511
8/2/2019 Lavalle - Motion Planning
280/511
8/2/2019 Lavalle - Motion Planning
281/511
8/2/2019 Lavalle - Motion Planning
282/511
8/2/2019 Lavalle - Motion Planning
283/511
8/2/2019 Lavalle - Motion Planning
284/511
10.6. CONTINUOUS STATE SPACES 553
XG
xI
XG
(a) Motion planning game against nature (a) Optimal navigation function
XG XG
554 S. M. LaValle: Planning Algorithms
XG XG
Cost-to-go, open mode Cost-to-go, closed mode
8/2/2019 Lavalle - Motion Planning
285/511
(c) Vector field (d) Simulated executions
Figure 10.20: (a) A 2D planning problem is shown in which nature is probabilistic(uniform density over an interval of angles) and can interfere with the direction
of motion. Contact with obstacles is actually allowed in this problem. (b) Levelsets of the computed, optimal cost-to-go (navigation) function. (c) The vectorfield derived from the navigation function. (d) Several dozen execution trials aresuperimposed [605].
XG XG
Vector field, open mode Vector field, closed mode
Figure 10.21: Level sets of the optimal navigation function and resulting vectorfield are shown for a stochastic, hybrid motion planning problem. There are twomodes, which correspond to whether a door is closed. The goal is to reach therectangle at the bottom left [613]
8/2/2019 Lavalle - Motion Planning
286/511
8/2/2019 Lavalle - Motion Planning
287/511
8/2/2019 Lavalle - Motion Planning
288/511
8/2/2019 Lavalle - Motion Planning
289/511
8/2/2019 Lavalle - Motion Planning
290/511
8/2/2019 Lavalle - Motion Planning
291/511
8/2/2019 Lavalle - Motion Planning
292/511
8/2/2019 Lavalle - Motion Planning
293/511
8/2/2019 Lavalle - Motion Planning
294/511
8/2/2019 Lavalle - Motion Planning
295/511
8/2/2019 Lavalle - Motion Planning
296/511
8/2/2019 Lavalle - Motion Planning
297/511
8/2/2019 Lavalle - Motion Planning
298/511
8/2/2019 Lavalle - Motion Planning
299/511
8/2/2019 Lavalle - Motion Planning
300/511
8/2/2019 Lavalle - Motion Planning
301/511
8/2/2019 Lavalle - Motion Planning
302/511
8/2/2019 Lavalle - Motion Planning
303/511
8/2/2019 Lavalle - Motion Planning
304/511
8/2/2019 Lavalle - Motion Planning
305/511
8/2/2019 Lavalle - Motion Planning
306/511
8/2/2019 Lavalle - Motion Planning
307/511
8/2/2019 Lavalle - Motion Planning
308/511
8/2/2019 Lavalle - Motion Planning
309/511
8/2/2019 Lavalle - Motion Planning
310/511
8/2/2019 Lavalle - Motion Planning
311/511
8/2/2019 Lavalle - Motion Planning
312/511
8/2/2019 Lavalle - Motion Planning
313/511
8/2/2019 Lavalle - Motion Planning
314/511
8/2/2019 Lavalle - Motion Planning
315/511
8/2/2019 Lavalle - Motion Planning
316/511
8/2/2019 Lavalle - Motion Planning
317/511
8/2/2019 Lavalle - Motion Planning
318/511
8/2/2019 Lavalle - Motion Planning
319/511
8/2/2019 Lavalle - Motion Planning
320/511
8/2/2019 Lavalle - Motion Planning
321/511
8/2/2019 Lavalle - Motion Planning
322/511
8/2/2019 Lavalle - Motion Planning
323/511
11.7. INFORMATION SPACES IN GAME THEORY 631
19. Implement the Kalman filter for the case of a robot moving in the plane. Showthe confidence ellipsoids obtained during execution. Be careful of numerical issues(see [564]).
20. Implement probabilistic I-state computations for a point robot moving in a 2Dpolygonal environment. Compare the efficiency and accuracy of grid-based ap-proximations to particle filtering.
21. Design and implement an algorithm that uses nondeterministic I-states to play agood game of Battleship, as explained in Example 11.27.
632 S. M. LaValle: Planning Algorithms
8/2/2019 Lavalle - Motion Planning
324/511
8/2/2019 Lavalle - Motion Planning
325/511
8/2/2019 Lavalle - Motion Planning
326/511
8/2/2019 Lavalle - Motion Planning
327/511
8/2/2019 Lavalle - Motion Planning
328/511
8/2/2019 Lavalle - Motion Planning
329/511
8/2/2019 Lavalle - Motion Planning
330/511
8/2/2019 Lavalle - Motion Planning
331/511
8/2/2019 Lavalle - Motion Planning
332/511
8/2/2019 Lavalle - Motion Planning
333/511
8/2/2019 Lavalle - Motion Planning
334/511
8/2/2019 Lavalle - Motion Planning
335/511
8/2/2019 Lavalle - Motion Planning
336/511
8/2/2019 Lavalle - Motion Planning
337/511
8/2/2019 Lavalle - Motion Planning
338/511
8/2/2019 Lavalle - Motion Planning
339/511
8/2/2019 Lavalle - Motion Planning
340/511
8/2/2019 Lavalle - Motion Planning
341/511
8/2/2019 Lavalle - Motion Planning
342/511
8/2/2019 Lavalle - Motion Planning
343/511
8/2/2019 Lavalle - Motion Planning
344/511
8/2/2019 Lavalle - Motion Planning
345/511
12.3. ENVIRONMENT UNCERTAINTY AND MAPPING 675
Disappear
Appear
(a) (b)
Figure 12.28: (a) The robot crosses a ray that extends from an inflectional tangent.(b) A gap appears or disappears from the gap sensor, depending on the direction.
is now visible.
2. Appear: A gap appears because the robot crosses an inflection ray in theopposite direction. This means that a new shadow component exists, whichrepresents a freshly hidden portion of the environment.
3. Split: A gap splits into two gaps because the robot crosses a bitangent ray,as shown in Figure 12.29 (this was also shown in Figure 12.5). This meansthat one shadow component splits into two shadow components.
4. Merge: Two gaps merge into one because the robot crosses a bitangent rayin the oppose direction. In this case, two shadow components merge intoone.
This is a complete list of possible events, under a general positionassumption that
precludes environments that cause degeneracies, such as three gaps that mergeinto one or the appearance of a gap precisely where two other gaps split.As each of these gap events occurs, it needs to be reflected in the tree. If a gap
disappears, as shown in Figure 12.30, then the corresponding edge and vertex aresimply removed. If a merge event occurs, then an intermediate vertex is insertedas shown in Figure 12.31. This indicates that if that gap is chased, it will splitinto the two original gaps. If a split occurs, as shown in Figure 12.32, then theintermediate vertex is removed. The appearance of a gap is an important case,which generates a primitive vertexin the tree, as shown in Figure 12.33. Note thata primitive vertex can never split because chasing it will result in its disappearance.
A simple example will now be considered.
676 S. M. LaValle: Planning Algorithms
Merge
Split
(a) (b)
Figure 12.29: (a) The robot crosses a ray that extends from a bitangent. (b) Gapssplit or merge, depending on the direction.
a b
c
a b
a b
c
a b
a
b
c
a
b
8/2/2019 Lavalle - Motion Planning
346/511
Example 12.6 (Gap Navigation Tree) Suppose that the robot does not knowthe environment in Figure 12.34. It moves from cells 1 to 7 in order and then re-turns to cell 1. The following sequence of trees occurs: T1, . . ., T7, T
6, . . ., T
1, as
shown in Figure 12.35. The root vertex is shown as a solid black disc. Vertices
Figure 12.30: If a gap disappears, it is simply removed from the GNT.
8/2/2019 Lavalle - Motion Planning
347/511
8/2/2019 Lavalle - Motion Planning
348/511
8/2/2019 Lavalle - Motion Planning
349/511
8/2/2019 Lavalle - Motion Planning
350/511
8/2/2019 Lavalle - Motion Planning
351/511
8/2/2019 Lavalle - Motion Planning
352/511
8/2/2019 Lavalle - Motion Planning
353/511
8/2/2019 Lavalle - Motion Planning
354/511
8/2/2019 Lavalle - Motion Planning
355/511
8/2/2019 Lavalle - Motion Planning
356/511
8/2/2019 Lavalle - Motion Planning
357/511
8/2/2019 Lavalle - Motion Planning
358/511
8/2/2019 Lavalle - Motion Planning
359/511
8/2/2019 Lavalle - Motion Planning
360/511
8/2/2019 Lavalle - Motion Planning
361/511
8/2/2019 Lavalle - Motion Planning
362/511
12.5. MANIPULATION PLANNING WITH SENSING UNCERTAINTY 709
(a) Define a nondeterministic I-space based on labeling gaps that captures theappropriate information. The I-space should be defined with respect to onerobot (each will have its own).
(b) Design an algorithm that keeps track of the nondeterministic I-state as therobot moves through the environments and observes others.
21. Recall the sequence of connected corridors shown in Figure 12.40. Try to adaptthe polygons so that the same number of pursuers is needed, but there are fewerpolygon edges. Try to use as few edges as possible.
Implementations
22. Solve the probabilistic passive localization problem of Section 12.2.3 for 2D grids.Implement your solution and demonstrate it on several interesting examples.
23. Implement the exact value-iteration method described in Section 12.1.3 to computeoptimal cost-to-go functions. Test the implementation on several small examples.How large can you make K, , and ?
24. Develop and implement a graph search algorithm that searches onIndet to performrobot localization on a 2D grid. Test the algorithm on several interesting examples.
Try developing search heuristics that improve the performance.
25. Implement the Bug1, Bug2, and VisBug (with unlimited radius) algorithms. De-sign a good set of examples for illustrating their relative strengths and weaknesses.
26. Implement software that computes probabilistic I-states for localization as therobot moves in a grid.
27. Implement the method of Section 12.3.4 for simply connected environments anddemonstrate it in simulation for polygonal environments.
28. Implement the pursuit-evasion algorithm for a single pursuer in a simple polygon.
29. Implement the part-squeezing algorithm presented in Section 12.5.2.
710 S. M. LaValle: Planning Algorithms
8/2/2019 Lavalle - Motion Planning
363/511
Part IV
Planning Under Differential
Constraints
8/2/2019 Lavalle - Motion Planning
364/511
711
8/2/2019 Lavalle - Motion Planning
365/511
8/2/2019 Lavalle - Motion Planning
366/511
8/2/2019 Lavalle - Motion Planning
367/511
8/2/2019 Lavalle - Motion Planning
368/511
8/2/2019 Lavalle - Motion Planning
369/511
8/2/2019 Lavalle - Motion Planning
370/511
8/2/2019 Lavalle - Motion Planning
371/511
13.1. VELOCITY CONSTRAINTS ON THE CONFIGURATION SPACE 727
r
L
x
y
(a) (b)
Figure 13.2: (a) The Pioneer 3-DX8 (courtesy of ActivMedia Robotics: MobileR-obots.com), and many other mobile robots use a differential drive. In addition tothe two drive wheels, a caster wheel (as on the bottom of an office chair) is placedin the rear center to prevent the robot from toppling over. (b) The parameters ofa generic differential-drive robot.
(a) (b)
Figure 13.3: (a) Pure translation occurs when both wheels move at the same angu-lar velocity; (b) pure rotation occurs when the wheels move at opposite velocities.
728 S. M. LaValle: Planning Algorithms
Figure 13.4: The shortest path traversed by the center of the axle is simply the
line segment that connects the initial and goal positions in the plane. Rotationsappear to be cost-free.
The translation speed depends on the average of the angular wheel velocities. Tosee this, consider the case in which one wheel is fixed and the other rotates. Thisinitially causes the robot to translate at 1/2 of the speed in comparison to bothwheels rotating. The rotational speed is proportional to the change in angularwheel speeds. The robots rotation rate grows linearly with the wheel radius butreduces linearly with respect to the distance between the wheels.
It is sometimes preferable to transform the action space. Let u = (ur + ul)/2and u = ur ul. In this case, u can be interpreted as an action variable thatmeans translate, and u means rotate. Using these actions, the configurationtransition equation becomes
x = ru cos
y = ru sin
=r
Lu.
(13.17)
In this form, the configuration transition equation resembles (13.15) for the simplecar (try setting u = tan u and us = ru). A differential drive can easily simulatethe motions of the simple car. For the differential drive, the rotation rate can beset independently of the translational velocity. The simple car, however, has thespeed us appearing in the expression. Therefore, the rotation rate depends onthe translational velocity.
Recall the question asked about shortest paths for the Reeds-Shepp and Dubinscars. The same question for the differential drive turns out to be uninterestingbecause the differential drive can cause the center of its axle to follow any con-
tinuous path inR2
. As depicted in Figure 13.4, it can move between any twoconfigurations by: 1) first rotating itself to point the wheels to the goal position,which causes no translation; 2) translating itself to the goal position; and 3) rotat-ing itself to the desired orientation, which again causes no translation. The totaldistance traveled by the center of the axle is always the Euclidean distance in R2
8/2/2019 Lavalle - Motion Planning
372/511
distance traveled by the center of the axle is always the Euclidean distance in Rbetween the two desired positions.
8/2/2019 Lavalle - Motion Planning
373/511
8/2/2019 Lavalle - Motion Planning
374/511
8/2/2019 Lavalle - Motion Planning
375/511
8/2/2019 Lavalle - Motion Planning
376/511
8/2/2019 Lavalle - Motion Planning
377/511
8/2/2019 Lavalle - Motion Planning
378/511
8/2/2019 Lavalle - Motion Planning
379/511
8/2/2019 Lavalle - Motion Planning
380/511
8/2/2019 Lavalle - Motion Planning
381/511
8/2/2019 Lavalle - Motion Planning
382/511
13.3. BASIC NEWTON-EULER MECHANICS 749
mg
fu
flfr
Figure 13.8: There are three thrusters on the lunar lander, and it is under theinfluence of lunar gravity. It is treated as a particle; therefore, no rotations arepossible. Four orthogonal forces may act on the lander: Three arise from thrustersthat can be switched on or off, and the remaining arises from the acceleration ofgravity.
The upward thruster, mounted to the bottom of the lander, provides a force ofmagnitude fu when activated. Let g denote the scalar acceleration constant forgravity (this is approximately 1.622 m/s2 for the moon).
From (13.55) and Newtons second law, F = mq. In the horizontal direction,this becomes
mq1 = ulfl urfr, (13.56)and in the vertical direction,
mq2 = uufu mg. (13.57)
Opposing forces are subtracted because only the magnitudes are given by fl, fr,fu, and g. If they were instead expressed as vectors in R
2, then they would beadded.
The lunar lander model can be transformed into a four-dimensional phase spacein which x = (q1, q2, q1, q2). By replacing q1 and q2 with x3 and x4, respectively,(13.56) and (13.57) can be written as
x3 =1m
(ulfl urfr) (13.58)
and
x4 =uufu
m g. (13.59)
750 S. M. L