Download as pdf or txt
Download as pdf or txt
You are on page 1of 164

Sensor-based motion control for mobile robots

Maher Khatib
Laboratoire d'Automatique et d'Analyse des Systemes
LAAS-CNRS
7, Avenue du Colonel Roche
31077 Toulouse Cedex 4 - France
Contents
Introduction 1

I Collision-free movement 4
1 Collision-free movement 5
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Reactive movement methods . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Potential eld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.2 Heuristic approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Task potentials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Potential methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.1 Potential wells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.2 Repulsive force in uence . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.3 Nonholonomic point robot . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 Mobile robot command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6 The \Rotational-Potential" . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.7 Collision-free navigation system . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.7.1 System de nition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.7.2 Obstacles representation . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.7.3 Potential functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.7.4 Calculation of forces . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.7.5 Forces in movement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.7.6 Local minima detection . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.8 Experimentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2 Collision-free path tracking 29
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2 The problem's formalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2.1 Action insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

i
Contents ii

2.2.2 Action de nition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32


2.2.3 Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3 Environment model integration . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.3.1 From the model to virtual measures . . . . . . . . . . . . . . . . . . . 37
2.3.2 Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3.3 System parameters adaptation . . . . . . . . . . . . . . . . . . . . . . 41
2.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

II Sensor-based motion 46
3 Sensor-based actions 47
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2 The \Task Potential" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3 From Task Potential to sensor-based action . . . . . . . . . . . . . . . . . . . . 50
3.3.1 Movement to contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.2 Parallelize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.3.3 Wall follow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4 Application to planning with uncertainty 71
4.0.1 De nition of the system SB CM . . . . . . . . . . . . . . . . . . . . . . . 72
4.0.2 SB CM system integration . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

III Dynamic path modi cation 84


5 The elastic band 85
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.2 The elastic band . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.3 The MDT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6 Nonholonomic bubble band 99
6.1 Bubble Band Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.2 Metric Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.3 Nonholonomic Bubble Band . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.3.1 De nitions and Properties . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.3.2 Forces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.4 Creation and Modi cation of a Bubble Band . . . . . . . . . . . . . . . . . . 110
6.4.1 Bubble Band Modi cation . . . . . . . . . . . . . . . . . . . . . . . . . 110

ii
6.4.2 Stability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
6.5 Bubble band behavior examples . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7 Bubble band execution 116
7.1 Approximation by Bezier Polynomials . . . . . . . . . . . . . . . . . . . . . . 116
7.2 Parameterization of Bezier Polynomials . . . . . . . . . . . . . . . . . . . . . 123
7.3 A proposed Execution Controller . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

Conclusion 133

Annexes 135
A Hilare2 architecture 136
A.1 Control architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
A.2 Module notion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
A.2.1 Generic module structure . . . . . . . . . . . . . . . . . . . . . . . . . 137
A.2.2 Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
A.2.3 Module generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
A.2.4 Module example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
A.3 Functional architecture of Hilare2 . . . . . . . . . . . . . . . . . . . . . . . . . 140
B Perception 142
B.1 Ultrasonic sonars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
B.2 Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
B.3 Laser range nder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
C Stability 148
C.1 Control point stability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
C.2 Stability under a constant force . . . . . . . . . . . . . . . . . . . . . . . . . . 149
C.3 Forces to displacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

References 152
List of Figures
1.1 Potential distribution example for an obstacle and a goal. . . . . . . . . . . . . . . . 6
1.2 Comparison between la classical potential method and the generalized potential method 7
1.3 Potential well. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4 Passage near an obstacle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 Control point. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.6 Rotational potential formulation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.7 Repulsive potential function distribution . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.8 The norm of F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.9 Rotational-Potential extension e ect. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.10 Rotational-Potential extension e ect. . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.11 Avoidance system de nition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.12 Obstacles representation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.13 Rt Cam Attractive potential and force. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.14 Di erent potential functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.15 Obstacle avoidance: e ect of the dynamic adaptation of the clearing distance. . . . . 26
1.16 Obstacle avoidance: passage between two obstacles. . . . . . . . . . . . . . . . . . . . 26
1.17 Obstacle avoidance: rotational potential e ect. . . . . . . . . . . . . . . . . . . . . . . 27
1.18 Obstacle avoidance: local minimum due to the re ection of several ultrasonic echos. . 28
2.1 Architecture of Rt Pt Camsystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2 Trajectory memorizing idea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3 The di erent states of the Rt Pt Camsystem. . . . . . . . . . . . . . . . . . . . . . . . . 34
2.4 The passage between the di erent states of the system Rt Pt Cam. . . . . . . . . . . . . 36
2.5 Virtual perception. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.6 Virtual measure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.7 Example: virtual ultrasonic measures issued from bitmap calculus. . . . . . . . . . . . 39
2.8 Simulation: Virtual ultrasonic measures with(out) a detection cone. . . . . . . . . . . 40
2.9 Matching two segments.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.10 Evolution of the term oc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.11 Obstacles avoidance during path tracking. . . . . . . . . . . . . . . . . . . . . . . . . 42
2.12 The e ect of the dynamic modi cation of the clearing distance during path tracking. . 43
2.13 Path tracking: Leaving the Salle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.14 Path tracking: Entering the Salle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

iv
List of Figures v

2.15 Path tracking: projection on the trajectory. . . . . . . . . . . . . . . . . . . . . . . . . 45


3.1 Advance to Contact action. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.2 The Task Potential of the Advance to Contact action. . . . . . . . . . . . . . . . . . . 53
3.3  parameter e ect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.4 -I- Action Advance to Contact execution trace, -II- speed corresponding to the execution. 55
3.5 Action Advance to Contact utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.6 Parallelize action. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.7 Ambiguity between two object for parallelize action. . . . . . . . . . . . . . . . . . . . 57
3.8 The evaluation of control function f (t) in function of . . . . . . . . . . . . . . . . . 58
3.9 -I- Parallelize execution trace, -II- the pro le of the di erent command parameters. . 59
3.10 Wall Follow action. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.11 The potential distribution for the command Follow Wall. . . . . . . . . . . . . . . . . 61
3.12 Problem of the angle of approach of the wall. . . . . . . . . . . . . . . . . . . . . . . 65
3.13 -I- Execution trace of the action Wall Follow, -II- corresponding parameters pro le. . 67
3.14 -I- Execution trace of the action Wall Follow, -II- corresponding parameters pro le. . 68
3.15 Collision avoidance during Wall Follow. . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.16 Local minimum during Wall Follow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.17 Action Follow Corridor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.1 PWU: planning strategies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.2 De nition of the system SB CM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.3 Free-space displacement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.4 Sensor-based actions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.5 Vertex types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.6 The distribution of follow and wall switch potentials. . . . . . . . . . . . . . . . . . . 77
4.7 Experiment LMS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.8 Experiment HVL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.9 HVTL: Execution trace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.1 The internal force of contraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.2 The di erent states of the elastic band. . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.3 The robot con gurations on the elastic band. . . . . . . . . . . . . . . . . . . . . . . . 91
5.4 The MDT between particles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.5 The distribution of the potential Pmdt(q). . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.6 The MDT force issued from the potential in function of . . . . . . . . . . . . . . . . 93
5.7 Integration of the MDT torque in the elastic band. . . . . . . . . . . . . . . . . . . . . 95
5.8 Experimentation of the elastic band. . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.9 Laser points, segmentation, ultrasonic echoes and execution trace. . . . . . . . . . . . 98
6.1 A bubble for planar rotating robots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.2 Bubbles for a plotter arm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.3 Domains of accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

v
List of Figures vi

6.4 Distance to segment in the di erent domains. . . . . . . . . . . . . . . . . . . . . . . 103


6.5 Di erent forms of the bubble and paths in the di erent domains. . . . . . . . . . . . 103
6.6 Path between to consecutive centers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.7 Continuity and discontinuity of th direction of the repulsive force. . . . . . . . . . . . 109
6.8 Creation of a bubble before disconnection. . . . . . . . . . . . . . . . . . . . . . . . . 110
6.9 Detection of a loop between bubbles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.10 Creation of the rst bubble band. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.11 Bubble band creation and the rst feasible trajectory. . . . . . . . . . . . . . . . . . . 113
6.12 Internal forces application and optimization of the band. . . . . . . . . . . . . . . . . 114
6.13 Application of internal and external forces and clearance from obstacles. . . . . . . . 114
6.14 Deformation of the band due to an unknown obstacle. . . . . . . . . . . . . . . . . . . 115
6.15 Bubble band trajectory trace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.1 Four control points Bezier approximation of an arc of length 3 . . . . . . . . . . . . . 119
7.2 Six control points Bezier approximation of an arc of length 3 . . . . . . . . . . . . . . 120
7.3 Six control points Bezier approximation of an arc of length 3 . . . . . . . . . . . . . . 121
7.4 Curvature of the four and six control points Bezier approximation of an arc. . . . . . 122
7.5 Path approximation by Bezier curves. . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.6 Di erent ' functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.7 Velocity and acceleration pro les for polynomially parameterized 2- and 4-Bezier ap-
proximation of a path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7.8 Velocity and acceleration pro les for 3-spline parameterized 2- and 4-Bezier approxi-
mation of a path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
7.9 Velocity and acceleration pro les for polynomially parameterized 2- and 6-Bezier ap-
proximation of a path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
7.10 Velocity and acceleration pro les for 3-spline parameterized 2- and 6-Bezier approxi-
mation of a path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.11 Fix piece of length r0 in rst bubble. . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.12 Velocity and acceleration pro les for a split 3-spline parameterized 2- and 6-Bezier
approximation of a path. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
7.13 The proposed architecture of Kinan system . . . . . . . . . . . . . . . . . . . . . . . . 130
7.14 Two, four and six control points Bezier curves sequence execution with corresponding
speed pro les. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
A.1 Module structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
A.2 Client/server relation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
A.3 The module Avoid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
A.4 Control and data ux during the execution of a trajectory while avoiding obstacles. . 139
A.5 Most of the modules constituting the functional architecture of the robot Hilare2. . . . 140
B.1 Hilare2 ultrasonic sonars............ . . . . . . . . . . . . . . . . . . . . . . . 142
B.2 Directivity diagram of an ultrasonic sonar. . . . . . . . . . . . . . . . . . . . . . . . . 143
B.3 Segmentation of ultrasonic measures. . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
B.4 Rebound e ect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

vi
B.5 Laser range nder of Hilare2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Introduction
Mobile robot autonomous navigation
Navigation is the most fundamental task of an autonomous mobile robot without which noth-
ing else may be accomplished. Navigation designs a set of operating systems permitting the
robot to reach a distant goal - which may be expressed in a diverse ways - and this indepen-
dently of the various situations which it may encounter. Even though these considerations
may seem trivial at rst hand, let us consider their implications.
Generally, a goal is not directly accessible or even identi able and navigation must be an
incremental process consisting of determining and joining appropriate intermediate goals in
order to converge towards its destination. This navigation in composed of several phases: In
function of its xed objective and the present diculties, the system must determine what
information it needs for the accomplishment of the task as well as the means of gathering
it (Active perception). An analysis of this perceptual data is then used to build a usable
environment model (Modeling). To be able to move, the robot and if possible the destination
should be localized in the environment model (Localization). It uses the some local (itera-
tive) or global approach to decide of the itinerary to take, the trajectory to follow and the
conditions to impose of the right accomplishment of the task in function of the environment
diculties (Motion planning). Only then can the robot accomplish its mission by executing
the commands corresponding to the planned motion. These commands are usually accom-
panied by sensor feedback on certain environment characteristics which may be provoked
by the sudden apparition of an obstacle and may require some modi cation of the nominal
plan of movement (Execution). Nevertheless, this modi cation must not violate the plan:
The execution must be permanently controlled and may induce a new iteration of the whole
process before even arriving at the rst intermediate goal. In order to avoid the costly reex-
aminations, the plan must present some execution exibility and the execution must try to
adapt itself dynamically to local changes.
The articulation and the organization of these di erent phases was the object of numerous
studies. In this memory, we will be mostly interested in two of these phases and to the strong
interactions binding them: Motion planning and execution. The union of both procedures is
used to propose an answer to the general problem of collision-free motion generation.
This problem is (too) much studied in two separate directions motion planning and reac-
tive movement.
In a motion planning approach, the movement is totally planned and thus \ xed" before
execution. The planning is based upon a model of the environment and of the robot. Its
most renowned advantage is its powerful ability of nding solutions in extremely complex
environments In fact, displacement in geometrically constrained or topologically complex

1
Introduction 2

environments may necessitate ne local planning while keeping in view the global context.
Nevertheless, this means predictions based on models which are only approximations and
on the behavior of the robot which could but be full of uncertainty and imprecision. Such
prediction leads inevitably to execution failure especially in the constrained environments
which justify a priori this approach: A planning independent of execution could never be
robust.
Inversely, reactive approaches, produce sure movement based on sensor data acquired
during execution. Thus, the system produces simple models enabling dynamic correction
and guaranteeing collision-free movement. Nevertheless, this limited environment perception
and local strategy does not guarantee the global accomplishment of the task even when a
path exists.
That is why solutions integrating both approaches has become a priority. This does
not mean a simple chaining of planning and execution which could only lead to repetitive
execution failure and thus to numerous iteration planning/execution. It also means a complete
reanalysis of the situation implying perception, modeling and localization to reset the context
and avoid the same error of execution (looping).
These several remarks give birth to a new problem of collision-free motion generation.
The role and properties of both planning and execution must be rede ned and communication
and shared information must be reexamined. This is context of the present work.

Memory organization
After an analysis of actions necessary for the execution and a formalization of actions based
on the notion of potential eld, we present three major approaches which satisfy planning and
reactive control. These procedures constitute a part of a generic autonomous mobile robot
control architecture and are illustrated by experiments. The memory is structures in three
parts:
The rst part presents the basic displacement actions of which a mobile robot must
dispose and propose a rst method to integrate planning and execution.
The rst chapter is reserved to displacement or re ex actions: Purely reactive actions of
local collision avoidance. These actions are constructed on the classical potential method. The
advantages and inconveniences of this method which covers the rest of the work will then be
discussed. This analysis will bring about a new formalism of potential functions which will
be developed in the context of non-holonomic mobile robots. The eciency of this method
will be illustrated by some experiments which will recall the necessity of a planning phase.
Based upon these \primitive" functions, we show in the second chapter the possibility of
developing a relatively simple planning/execution procedure which enables sure and coherent
movement. This general system whose structure will be introduced, permits a \better"
controlled tracking of planned trajectories while avoiding local obstacles. This system enables
the transmission of environment model information to the execution in order to ameliorate the
robot behavior. In spite of a great execution exibility, the results point out the limitations
of purely geometric planning.
The second part propose a new architecture between planning and execution con-
tributing to a robust system. This system considers both model and execution uncertainty.
Planning with uncertainty does not look for the determination of a geometric trajectory but
for the de nition of successive environment relative actions. This supposes more elaborate

2
Introduction 3

actions which explicitly consider the environment constraints and which could be expressed
in a higher level of abstraction.
The speci cation and the functionality of these actions will be developed in the third chap-
ter. These actions called sensor-based actions are equally based upon the potential method
but use a richer and more powerful formalism called task potential. Three fundamental actions
corresponding to di erent instantiations of this task potential will be presented.
The fourth chapter is dedicated to an integrated system which include these actions and
an uncertainty planner. A big variety complex task navigation experiments show the system
eciency.
The third and last part propose method which is di erent from the other two. For
though it is also based upon the potential method, it integrates more narrowly planning and
reactivity. This is the elastic band method. Planning may be reduced to a classical path
research. This path is only considered to be a topological guide during execution. Based
upon an environment model transmitted by the planner and on perception data acquired
during execution the elastic band changes the path dynamically in reaction of obstacles while
respecting the topological properties of the original path: The robot does not get lost.
The fth chapter present this technic and extends it to non-holonomic robots by taking
into account kinematic constraints. Nevertheless, the trajectory being rede ned dynamically,
a curvature control problem occurs: The trajectory is only feasible by a robot of null steering
radius. Anyway, the curvature discontinuities mean unsatisfactory trajectory. The last two
chapters will tackle this problem.
Thus, in the sixth chapter, this method is enriched by another notion: That of a bubble.
A bubble corresponds to the accessibility domain around the current con guration of a robot
taking into account the presence of obstacles and the kinematic constraints of the robot. It
is de ned with the help of a distance function issued from a metric space compatible with
the kinematic constraints of the robot. This is a very general notion. We have instantiated it
with the Reeds & Shepp metric which corresponds to non-holonomic vehicles with minimum
steering radius (e.g. a car). This bound the curvature but does not solve its discontinuity.
The produced trajectory must then be smoothed.
The last chapter propose nally a complete integration of this approach. The trajectories
are smoothed using Bezier curves. The whole is integrated in an execution system called
kinan which takes into account the time constraints from planning to control. Experimental
results will be presented and commented.

3
Part I

Collision-free movement

4
Chapter 1
Collision-free movement

1.1 Introduction
Mobile robot movement between con gurations may be classi ed into one of three principal
classes:
Plani ed movement: Robot displacement is xed at planning level. This displacement
can be described in di erent ways: A list of references1 , a trajectory, a sequence of
(geometric) primitives, : : : The robot executes this movement with no environment
perceptual feedback.
Reactive movement: Using its perceptual system to gather information on the environ-
ment, the robot moves around while avoiding collision.
Reactive plani ed movement: The robot adapts the planning level displacement refer-
ence to the environment state, updated by perceptual feedback. The robot executes
the plani ed movement.
In this chapter several approaches to reactive movement are developed and their advantages
and inconveniences are discussed. Then, we concentrate on the classical potential method
thus presenting the ameliorations we e ectuated on it through the rotational potential. Last
of all, we present the integration of this extended method in a collision-free reactive navigation
system.

1.2 Reactive movement methods


Reactive (collision-free) movement was extensively studied. Analyzing most of the proposed
methods, two main axes were outlined: Potential eld concept and heuristic free-path research
algorithms.
1 A reference is frequently represented by the position and velocity of some reference point on the robot.

5
1.2. REACTIVE MOVEMENT METHODS 6

1.2.1 Potential eld


The three principal approaches to potential eld concept are: The classical method [O. Khatib 80,
O. Khatib 86], the generalized method [Krogh 84] and the vector eld histogramme method
[Borenstein 91].
The classical method is based mostly upon the creation of an arti cial potential eld in
which the target is an attractive pole and the obstacles are repulsive surfaces. The robot
follows the gradient of this potential towards its minimum ( gure 1.1). The derived force
induces a collinear and proportional acceleration, thus enabling easy dynamic and kinematic
control, which makes this method attractive in mobile robot movement control.
The major advantages of this method are:
 Simple algorithm, the method being analytic.
 Physical robot model dependent reactivity, the control being a function of the inertia
matrix.
 Adaptability to all extroceptive sensors.
 Resultant force continuity.
 Easy treatment of xed and mobile obstacles.
Its major disadvantage is the possible existence of local minima for certain composition
of target and obstacles.

Obstacle

Goal

Figure 1.1: Potential distribution example for an obstacle and a goal.


Departing from the classical potential, [Krogh 84] presents a generalized potential method
whose potential function depends on the robot position as well as its velocity relative to the
obstacle. The generalized method is thus sensitive to the notion of collision moment instead
of the notion of distance. This potential function is de ned to be inversely proportional to the
avoidance period which represents the time di erence between minimal deceleration on the
remaining distance to the obstacle following the current direction and maximal deceleration.
Tilove develops a comparison between the classical potential method and the generalized
method by giving the following example [Tilove 89]:
In the case of the classical potential eld, the force depends on the distance to the obstacle

6
1.2. REACTIVE MOVEMENT METHODS 7

Goal Goal

Generalized potential Classical potential

Figure 1.2: Comparison between la classical potential method and the generalized potential
method

which varies in a continuous way. This force generates a continuous trajectory ( gure 1.2. In
the case of the realized potential method, when the robot approaches the obstacle, avoidance
time decreases and thus the repulsive force increases to push the robot away. When this
last turns, the velocity is oriented in the direction opposite to the obstacle diminishing thus
the repulsive potential and orienting the potential gradient towards the goal. The robot re-
approaches the obstacle and the repulsive force increases again, : : : This generates oscillations
which can be neutralized only by using a dynamic command exploiting the robot inertia
instead of a kinematic command.
This method ameliorates the robot behavior in certain con gurations enabling it to
manver near the obstacle slowly (to eliminate the oscillations dynamic control is unavoid-
able2 ). Nevertheless, this method su ers from the same classical problem of potential wells.
[Borenstein 91] uses an intermediate solution between planning and an avoidance system,
and proposes a method consisting of a local heuristic choice based on a bidimesional grid
modeling the environment. This representation is derived from the certitude grid concept
developed by [Moravec 85] where each case contains a probability value of the presence of
an obstacle updated by perception measures. A polar histogramme is constructed around
the robot (which is always at the center of the grid) representing the polar densities of the
obstacles. The sector associated to the least density closest to the goal direction is chosen.
The grid is thus able to give a movement direction. Even though this technic is adapted to
all sensors, it presents some disadvantages:
 Model limitations may lead to oscillations, thus loss of interest in large environments.
 Cycle time is rather elevated.
 Robot control algorithm still to be de ned.
De Luca et Oriolo propose [De Luca 94] an incremental planner based on the notion of
vortex eld to generate collision-free movement for a circular nonholonomic robot. A vortex
eld is generated using the rotational of a potential led instead of the negative gradient, thus
necessitating the de nition of a sense of rotation around the obstacles. The planner generates
initially a holonomic displacement which is transformed into a velocity command executable
by the robot. When the robot is engaged into a passage between two obstacles initially away
from each other in order to permit the movement, a risk of collision remains present if the
distance between the two obstacles becomes smaller than the width of the robot. This is due
to the fact that a vortex eld does not guarantee non-collision. Such a situation generates in
the classical method a local minimum (which is always preferable to collision). Consequently,
an obligatory minimum distance (superior to the width of the robot) is necessary to engage a
displacement between obstacles. Another inconvenience is the fact that the rotation direction
2 This is not always easily accomplished for mobile robots

7
1.3. TASK POTENTIALS 8

may be incoherent with respect to the distance to the goal.

1.2.2 Heuristic approaches


We can also note in [Khoumsi 88, Yagi 91, Bennamoun 91] several heuristic algorithms based
on the generation of displacement primitives. In [Khoumsi 88], the robot executes a succession
of arcs of circle centered on points on the obstacle measured by the sensors3, which is an
important diculty, at control level, due to curvature discontinuity.
Being essentially dedicated to the interior, the approach put in place by [Yagi 91] needs
a highly structured environment. The authors place themselves in a context of a dynamic
scene where the robot and the obstacles have constant linear speeds. Their idea consists
of detecting the vertical boundaries of obstacles and their horizontal displacement. The
convergence (respectively divergence) of these boundaries gives an idea about the position
and movement of obstacles. Avoidance in this case is empiric. It consists of decelerating the
robot or changing the direction of its movement. A reduction of a half of the robot speed was
proposed to avoid mobile obstacles but the algorithm of change of direction was not tackled.
Also the problems related to the robot command were not aborted.
Using other types of proximity sensors such as infrared sensors, an avoidance algorithm
is proposed in [Bennamoun 91]. It uses two sensors, one with long and the other short range.
also supposes a point robot and a superior bound to the size of obstacles. The generation of
movement is done in a discontinuous way. This algorithm being boolean is very sensitive to
perception errors.

Discussion
We consider that the advantage of reactive movement is the security of execution. Neverthe-
less, the control of a programmable mobile robot capable of deliberate actions must to be
wholly reactive. That is why the reactive level should respect the constraints imposed on it by
superior levels. Its decision capacity, thus, must not exceed local reaction. Of the examined
approaches, the potential eld method presents the clearest theoretical and methodological
frame and the most rigorous. The principle of this method may be considered as a \natural
re ex" to collision. It implies a direct application of the control without demanding heuristics
or suppositions on the environment structure. This method is thus chosen to be the basis on
which to tackle the problem of collision-free mobile robot navigation [M. Khatib 95].

1.3 Task potentials


A certain number of parameters intervene in the de nition of the potential function and in
the deduction of the moving force which highlights the following question:
How to de ne a potential function to accomplish a certain task?
A task is hereby de ned as a set of actions for the robot to accomplish in order to control
his displacement: obstacle avoidance, movement servoied on an object, wall follow, : : :
The answer to this question is at the foundation of our approach. It greatly depends on
the following important elements:
 The robot geometry and its kinematic constraints.
3 Ultrasonic sonars

8
1.4. POTENTIAL METHODS 9

 The perception means aboard the robot.


 The action to realize and the involved parameters.
A potential function must be constructed in agreement with these elements. Thus a force
resultant constructed for a holonomic robot may not be applicable to a nonholonomic one.
As well, a potential function devised for a point robot could be incompatible with a polygonal
one.
One of the most important parameters in the execution of a collision-free navigation
task is the obstacle clearing distance which depends mostly on the kinematic constraints of
the robot. According to the required task, this clearing distance being constant may over
constrain the execution and provoke a failure. A notable amelioration could be achieved in
taking in consideration the nature of the task.
These arguments show that the de nition of the potential function depends on
parameters representing the application global context.

1.4 Potential methods


In order to introduce the interest of this work, the classical potential eld proposed by
[O. Khatib 86] method is hereby presented. We start by formalizing the one obstacle problem
and then tackle general case.
Consider the obstacle O, represented by an analytic function in the plan (O; x; y ), or as
shown later by enveloping segments. If Xg represents the goal position and X the robot
position (X is called the robot state vector), The arti cial potential function applied to the
robot is of the form:

U (X) = Ug (X) + UO (X) (1.1)


where U (X) is the resultant potential, Ug (X) the attractive potential produced by the goal
at X, UO (X) the repulsive potential induced by the obstacle in X. The resultant force F is
then:

F = F g + FO (1.2)
where:

Fg = ? grad[Ug (X)] (1.3)


FO = ? grad[UO (X)]
Fg is an attractive force which guides the control point to the goal and FO is a force
inducing an arti cial repulsion from the surface of the obstacle (FIRAS: from the French),
being produced by UO (X).
The attractive potential is simply de ned by:

Ug (X) = 21 kg (X ? Xg)T (X ? Xg ) (1.4)

9
1.4. POTENTIAL METHODS 10

which is a positive quadratic function whose rst derivative is continuous and whose only
minimum is null on X = Xg . kg is the gain factor. Consequently the potential UO (X) will be
de ned in a way to keep the arti cial potential U (X) positive, continuous, derivable, whose
only minimum is zero on X = Xg 4. Similarly the function UO (X) must itself be continuous,
non negative, derivable. Also its value must tend to in nity when approaching the surface of
the obstacle.
Its in uence should also be restricted to a neighborhood of the obstacle (up to a distance
d0 from the obstacle which should always be smaller than the least distance between the
obstacle and the goal), in order to prevent the modi cation of the global minimum of the
attractive potential function. This function will thus be de ned on two distance intervals
while insuring a second derivability. Our choice is:
( 1  ( 1 ? 1 )2
UO (X) = 2 d d0 if d < d0, (1.5)
0 else-wise.
where d0 , the in uence distance, depends on the maximum velocity and deceleration capacity
of the robot. d is the distance between the robot and the obstacle O and  the gain of the
function.
Having xed the expressions Ug (X) and UO (X), the induced forces could now be calcu-
lated by applying the gradient on the equation 1.4 on the page before:

Fg (X) = ?kg (X ? Xg) (1.6)


The vector X enables the calculation of the force Fg using the equation 1.6. In order
to insure asymptotic stability, we add a dissipative force proportional to the velocity X_ (see
annex C). We have thus:

Fg = ?kg (X ? Xg) ? kv X_ (1.7)


kv being the gain of this force. As well, using the equation the equation 1.5 we have:
 ( 1 ? 1 1 @d if d < d0,
FO (X) = 0 d d0 ) d2 @ X (1.8)
else-wise.
The term @@dX , in the equation 1.8, represents the unity vector of the partial derivative
vector of the distance d between the robot and the obstacle which determines the direction
in which the force is applied.
In practice, the distance d is measured by the perception means 5, thus it is sucient to
calculate using 1.8 the forces associated to di erent distances by the sensors and the resultant
force applied on the robot becomes:

X n
FO = FOi (1.9)
i=1
4 We put aside for the moment the local minima!
5 Here these are ultrasonic measures or laser 2D sections

10
1.4. POTENTIAL METHODS 11

where n is the number of obstacles. The resultant force applied on the control point is:

F = Fg + FO (1.10)


The resultant force F will be the entry point of the force to control translating algorithm.
Several control types are thus possible according to the type of the robot, its kinematic
constraints and the choice of the control.

1.4.1 Potential wells


In the rst section of this chapter, we showed how the basic principle of this method consists
on minimizing a potential eld applied on the robot. In some environments local minima can
be produced where attractive and repulsive potentials inhibit each other. Were the robot to
pass in such a well, called potential well, it may stop before reaching its goal.
The fact that the robot stops in a potential well may seem to indicate that the resultant
force is null. This may not be true. Frequently it oscillates around zero. Thus the robot
oscillates also around the minimum ( g 1.3).
© Oper

Obstacle

Goal

Figure 1.3: Potential well.


This is why it rather dicult to detect local minima. criteria can still be found to detect
these oscillatory behaviors, e.g. the sum of the resultants over some iterations rests in the
neighborhood of zero. This problem will be developed in paragraph (x1.7.6).

1.4.2 Repulsive force in uence


It is important to note that this potential function possesses a constant gain and a xed
clearing distance regardless of the position of the robot. Consequently, the robot is in uenced
by the repulsive force of an obstacle even though its trajectory holds no risk of collision. For
example when the robot passes at a distance lesser than d0 from an obstacle which otherwise
have no e ect on its passage. Suppose now that the trajectory is a straight line bringing the
robot from the con guration p to the con guration q passing near an obstacle O ( gure 1.4 on
the next page). If the clearing distance d0 de ne a region R1 around the obstacle intersecting
the trajectory, the robot, obeying to the repulsive force, will realize a correction by going
to the point p0 , thus minimizing the this force. This is due to the fact that the repulsive

11
1.5. MOBILE ROBOT COMMAND 12

P’
P q
N

R2
O d0

R1

Figure 1.4: Passage near an obstacle.

potential parameters are constants. On the other hand, if R1 could be modi ed in order
not to exceed the line N (becoming thus R2), the in uence zone of this obstacle (which does
not really bother the trajectory) is now separated from the trajectory and the robot is not
in uenced. How our extension deal with this problem will be discussed in section 1.6.

1.4.3 Nonholonomic point robot


Noter that this frame is developed for a geometric point in a normed space of dimension n,
and this method is only applied to an object in its con guration space only. Nevertheless,
a real-time construction of this space is not realistic. Even more, the movement generated
by the application of the force may not be kinematically possible for certain types of robots
notably the nonholonomic robots (which is the case of our application).
We have thus decided to generalize this method to adapt it to a mobile nonholonomic
polygonal robot. Let us rst recall the expression of the nonholonomic and its in uence on
robot control.

1.5 Mobile robot command


The control of a mobile object begins with the determination of the control point pc on this
object. Generally, the simplest choice for a holonomic object is its center of mass. The
control parameters are thus de ned by: the position of this point, the corresponding inertia
matrix and a global reference. Thus the control of such an object under the in uence of
external forces is perfectly de ned. For a mobile nonholonomic object (i.e. an object with
non integrable kinematic constraints such as a wheel) and under the condition of non-sliding
motion6, the control is not necessarily possible for all positions of control.
Particularly in the case of a mobile robot whose con guration is de ned by a vector
X = [x y ]T , [Samson 91] shows that there is no smooth feedback control stabilizing the
whole vector X around a given con guration. On the other hand, [Samson 90a] demonstrates
6 The velocity of the contact point of the wheel is zero

12
1.5. MOBILE ROBOT COMMAND 13

that two of the three parameters, the position [x; y ]T , can be directly controlled. There exists
feedback control with exponential convergence towards these parameters. Even more, if the
position of a point which is not on the motor wheels axe is controlled these laws guarantee
the convergence of the orientation  towards a constant which is tangent to the trajectory
during the execution.
yr
d xr

Rr
i Pc
yg j 
E Or
r

Rg
Og xg
Figure 1.5: Control point.
Consider the origin point Or of the local cart of the robot ( g. 1.5), E being the distance
between the two wheels, r the wheels radius, Pc a point on the x-axis xr a distance d o the
origin Or . We can write the equation system for this robot in the xed frame Rg as follows:

x_ g = 2r (q_r + q_l ) cos 


y_g = 2r (q_r + q_l ) sin 
_ = Er (q_r ? q_l)
where qr et ql are the angular positions of the wheels. Let v and ! be the instantaneous
linear and angular speeds of the robot. The vector (v; ! )T is related to the wheels angular
speed command vector (q_r ; q_l)T by:
v  q_   r r 
=? r ; ?= 2r 2r
! q_l E ?E
The matrix ? being regular (det ? 6= 0), we can base our reasoning on the auxiliary command
vector U = (v; ! )T .
We can express, now, the kinematic system in the local frame of the robot Rr by the
more general problem of regulating to zero of the point Pc . We have, thus, ?P?? !
c g = x~{ + y~|
O
and the classical kinematic relation:

V Og =Rr = ??!
?! ! Rr =Rg ^ ?
V Or =Rg ? ?! O?? !
r Og (1.11)

13
1.5. MOBILE ROBOT COMMAND 14

with: 8 ???! ??! ???!


>< Or Og = Or Pc + Pc Og = (d + x)~{ + y~|
?!
! Rr =Rg = !:~k
>: ?!
V Or =Rg = v:~{
where ?!V Og =Rr is the velocity of the point Og in the frame Rr (which is expressed by X_ ),
! Rr =Rg is the angular velocity of the mobile frame Rr in the frame Rg and ?!
?! V Or =Rg is the
translation velocity of the origin Or in th frame Rg .
Substituting this in the equation 1.11, we get:
0 x_ 1 0 ?1 y 1  
X_ = B(X)U; @ y_ A = @ 0 ?(x + d) A !v : (1.12)
_ 0 1
Suppose that the initial con guration is in the neighborhood of the point Xf = 0 and
that we look for the command U(X) which brings the robot to this point Xf . A classical
result of automatics: A system controllability such as (1.12) guarantees the existence of a
local stability by feedback. With this condition satis ed, a control of the form U = K X will
stabilize this system (at least locally). In our case the equation 1.12 becomes:
0 x_ 1 0 ?1 0 1  
X_ = B(0)U; @ y_ A = @ 0 ?d A !v (1.13)
_ 0 1
The matrix B (0) is not square and the system is not controllable. Nevertheless, if we try
to reduce the system to realize a control in position X = [x y ]T for the point p the system
becomes:
X_ = B(0)U
x  ?1 y

X = y ; B(X) = 0 ?(x + d) (1.14)

Note that when d ! 0 the system is no more controllable, for the carte can no longer
move in the direction of wheels axis (a non-exponential convergence can be proved on a set
of invariance I ).
This behavior is similar in the point of view of classical mechanics: An external force
applied on a point on the wheels axis has a singular component, that which is parallel to the
axis.
Note: [Samson 93] propose an other approach for the stabilization of the control of a mobile
nonholonomic robot. This approach concerns the instationary state feedback control where
the feedback depends upon the time as well as the state of the system.
B Based upon this result, we de ne in our case a control point on the robot and we apply
the resultant of the di erent forces on this point. We will show in annex C the stability of
our system in the absence of obstacles by a Lyapunov candidate function.
We conserve in our formalism the same attractive potential and we propose in the next
paragraph a formalization of the repulsive potential which introduces parameters which en-
ables the taking into account of the form of the robot.
14
1.6. THE \ROTATIONAL-POTENTIAL" 15

1.6 The \Rotational-Potential"


Here we will place ourselves in a context where the obstacles are immobile. Our motivation
is to ameliorate the behavior and the movement of the robot by a dynamic adaptation of the
parameters of avoidance.
In the classical method, the repulsive force acts only in side a zone de ned by the clearing
distance. In practice, the choice of this distance is delicate. A small value induces a vigorous
variation of the repulsive force and imposes constraints on the speed of the robot. A great
value may over constrain the movement in places where the robot may pass.
In order to determinate this distance more uently, we propose the following idea. We
x a minimal clearing distance with a repulsive potential function which insures non-collision
in the region de ned by it. We still de ne another potential for a distance greater than
the minimum distance that tries to guide the robot and correct its movement if necessary.
The global repulsive potential will thus be a linear combination of these two potentials. The
coecients of this combination will depend on the state of the robot relative to the obstacle
in order to estimate in a better way the need to correct its movement.
We present in this chapter the solution we have developed and the appropriate potential
functions. But rst some notions, de ned hereby, are needed.
y


Rr i x
Vs
d d0 
So
Ro

O
Figure 1.6: Rotational potential formulation.
Consider the frame Rr centered on the robot such as the x-axis which corresponds to the
robot direction is perpendicular to the wheels axis ( gure 1.6). Note ~{ the unitary vector in
this direction. Let So be a segment delimiting the obstacle represented in the frame Rr and
let Vs be its direction vector. The angle is de ned to be:
 s  ~{) 
= Arcsin K(V jVsj (1.15)

where K : R3 ! R is the projection of a point (x; y; z )T on its third component z . has


thus its values in the interval ] ? 2 ; 2 [. It is null when the robot is parallel to the segment.
The parameter in this function modi es the obstacle force intensity in function of the
orientation of the robot. Thus it presents the \danger" the obstaclees position resents relative
15
1.6. THE \ROTATIONAL-POTENTIAL" 16

to the robot. It may happen that when a robot enters the obstacle in uence area without
any modi cation on its movement. A small modi cation of the orientation (and eventually
of the distance) may sometimes be sucient to annulate the obstacle e ect.
If d represents the smallest distance to the segment So and if d0 is the associated clearing
distance we de ne the function p1 as:
 2 
p1 (X) = 21 k1 1d ? d1 ;
0
and the function p2 as:

p2 (X) = 12 k2 (d0 ? d)2 :


The repulsive potential function proposed is:
 2p (X) + p (X)
if d < d0 ,
U (X) =0
2
else-wise.
1 (1.16)
with k2  k1. Indeed, the function p1 represents the dominant part near the surface of the
obstacle and tends to in nity when d ! 0, while p2 is dominant for d around d0.
The two functions being increasing when d ! 0, the minimal distance dnc is the distance
from which the function p1(X) becomes superior to the function p2(X). for =  2 , thus
p1(X) = ( 2 )2p2(X), this value is:
p
dnc = 2kk2dk1 (1.17)
2 0
The function U is a positive de ned function whose minimum is on the line d = d0. The
gure 1.7 on the following page7 shows this potential in function of and d.
In order to make explicit the expression of the force, we associate a frame Ro with the
nearest point on the obstacle ( g 1.6 on the page before). In this frame:
fx 2 <; y = d;  = ? g
the expression of the force now being:

0 0 1
F (X) = B C
 
@ k1 y1 ? d1c
y2 + k22 (d0 ? y ) A ; if d < d0, 0 else. (1.18)
?k2(d0 ? y)2
The Fy term represents the force generating the displacement of the mobile frame Rr in
the y-direction of the frame Ro . This component depends on the distance to the obstacle (y
in this frame), but also on the term 2 , for the linear part of this component which represents
the robot orientation with respect to the obstacle. This last term changes only the intensity
7 The function is traced for d negative as well as positive.

16
1.6. THE \ROTATIONAL-POTENTIAL" 17

U (X)

d
d0


Figure 1.7: Repulsive potential function distribution

of the force and not its direction being a mere scalar. It is null when the robot is parallel to
the obstacle.
The component F represents the couple around the rotation center of the robot. The
sign of the correction generated by the couple depends on the orientation  whereas the
intensity depends equally on the distance to the obstacle.
The norm of the force F is shown in the gure 1.8 on the following page. It is to be noted
that this norm is null on the line y = d0 , in nitismal on the line  = 0 in the neighborhood
of d0 and in nite on the obstacle surface. This insures the non-collision even for  null.
Having de ned the repulsive potential function for one obstacle, we are going to gener-
alize it for m obstacles. Consider m segments representing m obstacles, calculate the forces
associated to each segment (F i(X); 8i 2 f1; : : : ; mg). The total repulsive forces is:

X
m
F  = F i (1.19)
i=1
Adding the attractive force, the resultant is:

Fc = Fg  + F  (1.20)
Analysis: The advantage of this formalism to the classical ons is the dynamic regulation
of the clearing distance d0 in function of the geometric state (Robot $ Obstacles). In the
classical method, the distance associated to a xed equipotential is the same for all obstacles.

17
1.6. THE \ROTATIONAL-POTENTIAL" 18

θ y
d0

Figure 1.8: The norm of F .

In the rotational method this distance varies with the orientation of the robot. Nevertheless,
p1 guarantees always the non-collision near the obstacles surface. This regulation presents a
net amelioration to the movement in situations where the classical method fails.
© Oper © Oper

B
A B
A

Obstacle Obstacle

Figure 1.9: Rotational-Potential extension e ect.


Presented in the gure ( 1.9) an example illustrating the amelioration due to this regula-
tion.
The gure ( 1.10 on the following page) presents an example of blocked passage in the
case of classical potential. This is due to the fact that the in uence zones are overlapping.
In the rotational potential case these zones are modi ed dynamically with the evolution of
the orientation.
On one hand, this approach make it possible to limit the in uence of obstacles who does
not bother the passage how much are they close to it, on the other, it increases the possibility
of nding a solution by adapting dynamically the parameters of the potential function.
Moretheless, this approach is applicable in the 3 dimensional space replacing segments
by planes and the angle by the angle between the projection of the robot velocity on the
perpendicular plane and the intersection line between the two planes.
18
1.7. COLLISION-FREE NAVIGATION SYSTEM 19

© Oper © Oper

A A

Obstacle Obstacle

B B

Obstacle Obstacle

Figure 1.10: Rotational-Potential extension e ect.

1.7 Collision-free navigation system


After having a formally de ned the potential functions, the di erent algorithms used in a
real-time collision-free navigation system for a nonholonomic mobile robot are developed.

1.7.1 System de nition


In the global frame Rg , we suppose the following entries de ned:
 A nonholonomic robot model with null steering radius such that:
{ rr ; rl are respectively the right and left wheel radiuses;
{ E the axle value;
{ amax; max; vmax; !max the linear and angular acceleration and speed;
{ Rr local frame on robot mobile in Rg.
 A state vector X of the robot always available in the global frame.
 A set M of distance measures permanently up to date of the form of distances and
orientations, di and i , relative to the robot body and positions, pi in its local frame
(see section B).
 A vector G pointing at the goal.
These data de ne the entry of the navigation system.
The result is a vector U representing the robot control and containing a linear and an
angular speeds, respectively v and ! , which determine the local frame movement in the global
setting Rg .
The gure 1.11 on the next page shows the entries and result of the navigation system
called Rt Cam .
In the following paragraphs, the system internal functionality is presented.

1.7.2 Obstacles representation


In the paragraph 1.6, the rotational potential was developed using segments to delimit ob-
stacles. In this paragraph the problem of constructing these segments is studied.
Let M be the set of returned measures by the perception system. Firstly this set is
decomposed into mi ; 8i 2 [1; : : : ; n], subsets of points. This decomposition is based on the
continuity of the polar angle  as well as the distance from the robot d.
Next the points in each set mi are approximated by a segment using the least square

19
1.7. COLLISION-FREE NAVIGATION SYSTEM 20

Rg
Rr , E, rr , rl

pi

M
R tCam
X

U G

Figure 1.11: Avoidance system de nition.

criterium:
1X
m
d2j  
m j=1
where  is the representative limit of a point variance8 and dj the orthogonal distance between
the point mj and the segment under construction. The segmentation algorithm is presented
in the annex B.
© Oper

Rg

Rr Pi

Si

Figure 1.12: Obstacles representation.


The result of this operation is a set of segments S delimiting the obstacles. These segments
are represented in the local frame of the robot by a line, two extremities and a distance from
the robot body.
The gure 1.12 shows a set of segments generated from a set of measures derived from an
azimuthal section of a laser range nder9
8 This limit depends greatly on the sensor.
9 The segments seen by the robot are enlarged for visibility.

20
1.7. COLLISION-FREE NAVIGATION SYSTEM 21

Let Mp be the set of points not used in the segmentation, we consider each point as
a punctual obstacle with no orientation. The potential function associated to this set is
presented in section 1.7.3.
The importance of these measures is related to the sensor used. In the ultrasonic sonar
for instance the treatment of these points is important because of the relatively small number
of measures and of the loss of measures due to re ection specularity, thus leading to the loss
of a segment.

1.7.3 Potential functions


Attractive potential
The attractive potential such as it is proposed in [O. Khatib 80] produce a force whose inten-
sity is proportional to the distance robot $ goal. Since the repulsive potential depends only
on the distance robot $ obstacles, it is dicult to x the gain of the repulsive potential.
To make the value of the attractive force as much close to a constant as possible away
from the goal we need a function with a unique minimum at the goal and a linear asymptotic
behavior away from it. This function should be positive and its gradient must always point
towards the goal. For this, we propose this simple function, which is a surface of revolution
generated from a hyperbole in the following way: if
z2 ? 2 = 1
a2 b2
p
is a hyperbole, the change of variables,  = x2 + y 2 , gives:
z2 = 1 + x2 + y 2 ) z = a pb2 + (x2 + y 2 )
a2 b2 b
which will help us de ne the potential function:
q q
Ug = Kg d2g + R2; dg = (x ? xg )2 + (y ? y g )2
where xg and yg denote the goal position, Kg is a positive gain constant and R is a function
of the limit distance dm .
The force deduced from this potential is thus:

pxd?2 +xRg 2
!
Fg = ?Kg d:
= ?Kg p 2 d 2 @@X (1.21)
pyd?2 +ygR2 d +R
R does not depend on dg , thus, pdd2gg+R2 tend towards 1 when dg tends towards in nity.
This term being increasing in [0; 1[, for dg > dm :

j = p 2dm 2 < q dg < 1


dm + R d2g + R2
where kg j is the norm of the force at the distance dm (when j tends towards 1 the surface
tends towards a cone).
21
1.7. COLLISION-FREE NAVIGATION SYSTEM 22

Potential

Potential
y

Force Force

0
0 x

Figure 1.13: Rt Cam Attractive potential and force.

The distance dm being set, R is calculated to be:


s
R = dm 12 ? 1:
j

This force is constant for distances greater than the limit distance and tends to zero as
the robot approaches the goal. The control of this (constant) force will be developed in the
annex C.
The gure 1.13 shows the distribution of the attractive potential and its associated force
in a given direction.

Repulsive potentials
The Rotational-Potential approach requires an attractive potential as in the classical method,
though it requires two repulsive potentials. In the equation 1.16 on page 16, the function
p1(x) dominates in the neighborhood of the surface of the obstacle in order to avoid collision,
while the function p2 (x) dominates near the clearing distance d0 and being dependent on 2
is orientation dependent. Its role is to correct the movement.
These two potential functions must:
 be positive, continuous and derivable on the interval d 2 [0; d0];
 have one and only one minimum when d = d0;
 be null for d > d0;
 tens to in nity when d ! 0.
The predominance between the functions is controlled by the gain factors. Still the form
of the functions (quadratic, logarithmic, parabolic, : : : ) is also signi cant.
Figure 1.14 on the next page shows an example of the variation of three functions. Note
particularly the dominance intervals of the di erent functions.

22
1.7. COLLISION-FREE NAVIGATION SYSTEM 23

2
(d - d0)
2
(log d - log d0)
2
(1/d - 1/d0)

0 d0
d
Figure 1.14: Di erent potential functions.

In the system Rt Cam w2e have chosen the expression given in paragraph 1.6 to represent
the repulsive potential associated to segments. Thus:
 2p (X) + p (X) if d < d0,
U (X) = 0
2 1
else-wise.
where
2  
p1 (X) = 21 k1 1d ? d1 ;
0
1
p2(X) = 2 k2 (d ? d0)2 :
The parameter is not de ned in the case of point obstacles. Thus we de ne the function
U p (X) by:
 p (X) + p (X) if d < d0,
U p(X) = 0
1 2
else-wise.

1.7.4 Calculation of forces


Once known the robot and goal positions in the global reference Rg , the attractive force
equation 1.6 is determined. Here X represents the robot current position and Xg the goal.
Note that the goal position may vary with time, as will be shown in chapter 2.
Let S represents the set of segment obstacles and let i be the parameters corresponding
to the segments si in the following way:
 s  ~{) 
i = Arcsin K(V i
jVsi j
where Vsi is the segment directing vector of si and ~i id the unitary vector perpendicular to
~ ). K plays the same role as in equation 1.15 on page 15.
the robot wheels axis (in this case Ox
The repulsive force associated to each segment si is de ned by the equation 1.18 on
page 16 where  is replaced by ? i and y by the shortest distance corresponding to the
23
1.7. COLLISION-FREE NAVIGATION SYSTEM 24

current segment. The resultant repulsive force is represented thus by the equation 1.19 on
page 17.
The force generated by the set of obstacle points is represented by the equation 1.8 on
page 10.

1.7.5 Forces in movement


As previously shown, the forces are derived in a local frame centered on a point called the
control point Pc . Points on the wheels axis of a robot can not be controllable as discussed
in the paragraph 1.5 for only longitudinal forces can thus be expressed and consequently no
rotation permitted.
The control point Pc is thus de ne a distance (OP  c = l) from the origin on the x-axis.
This point is the origin of a frame noted Rc in which force expressions are expressed. We will
stabilizes this point at the goal position.
Let q = (qx ; qy )T be the vector determining the position of the command point Pc ,
X = (x; y)T be the vector determining the position of the center of the robot,  be its
orientation and R = (cos ; sin )T be the vector representing the direction of the robot. The
kinematic equations of the system are:

X_ = vR
_ = !
where v; ! are the linear and angular speeds respectively. The movement equations of the
control point are:

q = X + dc R
q_ = X_ ? dc!R
where R = (sin ; ? cos )T .
Consider now the resultant force F = (Fx ; Fy )T which expresses the sum of the attractive
and the repulsive forces. We propose the following command law for the linear and the angular
speeds:

v = v FT R
! = ?! FT R
where v ; ! are positive gains. We will develop the stability proof of this law in annex C.
The maximum linear and angular speeds and accelerations being given at the entry of the
system, we realize the saturation of the command by:

dv = min(jv_ j; amax) sign(dv)


d! = min(j!_ j; max) sign(d!)
v = min(jv(t ? dt) + dvj; vmax) sign(v)
! = min(j!(t ? dt) + d!j; !max) sign(!):

24
1.8. EXPERIMENTATIONS 25

1.7.6 Local minima detection


As seen in the paragraph 1.4.1 on page 11, a local minimum can be produced in certain
con gurations of obstacles were the detection of a null force is not immediate. To detect such
a blockage, observations are made of the change in the robot con guration over n cycles. If
the robot remains all this time in a circle of radius rp and its orientation in a cone of angle
p ,
a potential well detection is signaled. The two parameters rp and
p depend on the maximal
speeds and accelerations in the following way:

rp = vmax :dt + 12 amax :dt2 + r (1.22)



p = !max :dt + 21 max :dt2 + !
where r ; ! are positive error constants.
This signal may then be treated as an error signal that interrupts execution an return
execution to upper levels.
This method being based on calculations in the global frame, this detection may fail
because of calculation errors on the robots position. A relative approach based on the integral
of the linear speed on an interval of time T , thus errors related to position calculus are
eliminated.
The elementary curvilinear displacement of the robot during the time interval T is:

ZT
S = v:dt (1.23)
0
The potential well signal is produced if this displacement is inferior to the minimum
displacement Smin .

1.8 Experimentations
We have integrated the system Rt Cam in the functional architecture of the robot Hilare2 in the
form of a module (Avoid). This module is treated as an example in the annex A. We present
here some experiments that illustrate the e ects of the rotational potential.
Figure ( 1.15 on the next page) shows, as a rst experiment, a simple obstacle avoidance.
One should note the modi cation of the clearing distance during the avoidance phase. This is
due to the correction of the orientation of the robot as soon as it detected the obstacle. The
non-collision is assumed by the potential p1(X) which is dominant in the region at a distance
inferior to dnc (equation 1.17 on page 16) from the obstacle. The advantage of this method
is the realization of a minimal change of orientation to avoid the obstacle. This is not an
absolute solution but is ameliorates the behavior of the robot in a multitude of situations.
In gure ( 1.16 on the next page) we can see the same e ect. Here the modi cation of the
clearing distance of the rst obstacle facilitates the avoidance of the second obstacle.
On gure ( 1.17 on page 27), we present an experience realized with the classical potential
( = 1 always) as well as with the rotational potential. We use in both cases the same clearing
distance d0. The robot being initially at a distance inferior to d0, in the case of the classical
method the robot realizes an unnecessary movement away from the obstacle whereas in the
rotational method the obstacle has almost no e ect on the behavior of the robot.
25
1.8. EXPERIMENTATIONS 26

© Oper

RIA(0,0)

Figure 1.15: Obstacle avoidance: e ect of the dynamic adaptation of the clearing distance.
© Oper

RIA(0,0)

Figure 1.16: Obstacle avoidance: passage between two obstacles.

Figure 1.18 on page 28 shows a failure of obstacle avoidance. A local minimum is encoun-
tered during clearance. The gure shows clearly the reason the this block which is due to a
cloud of ultrasonic echoes forming a virtual wall in front of the robot. This is a problem of

26
1.8. EXPERIMENTATIONS 27

© Oper

RIA(0,0)

Classical potential
© Oper

RIA(0,0)

Rotational potential

Figure 1.17: Obstacle avoidance: rotational potential e ect.

multiple re ections of the echoes. We present in annex B the acquisition module of ultrasonic
measures (US) and its two acquisition modes.

27
1.9. CONCLUSION 28

© Oper

RIA(0,0)

Goal

Figure 1.18: Obstacle avoidance: local minimum due to the re ection of several ultrasonic
echos.

1.9 Conclusion
The potential method and its extension o er us a formal basis to realize a reactive system for
collision-free movement. Several experiments enabled us to demonstrate the eciency and
the capacity of this method as well as its de ciency and its limits. In fact, potential eld
control increased considerably the capacity of low level execution. Even more, the rotational
potential method, by taking into account the particularity of the robot and its state, made its
behavior more coherent in face of situation which should have blocked the classical method.
Also, the dynamic adaptation of the clearing distance and the conditions it imposes on the
potential gains, simpli es the determination of these gains. In the same way, the attractive
potential function which was proposed enabled, on the one hand, a better equilibrium of
gains and, on the other hand, its renders the behavior of the robot independent whether it
is near the goal or away from it.
From command point of view, the potential method brings an important advantage. The
resultant force contains all the necessary information to de ne a realistic and satisfactory
command algorithm.
The problem of local minima represents the major handicap of this method. We think
that the only way to tackle this at execution level is by the detection of this event. We
consider that the treatment of this blocking which is a rare event is of the resort of planning
or higher level decision.
The extension we have proposed to the potential method presents an ecient obstacle
avoidance system which will be extensively used in the following chapters.

28
Chapter 2
Collision-free path tracking

2.1 Introduction
In paragraph (x 1.7 on page 19), we have presented the direct application of the potential
method and proposed an extension to collision-free reactive navigation (system Rt Cam ). This
application supposes a xed position in the plane. Hence, the robot tries to reach it without
keeping a trace of the path it is following. In fact the robots movement is purely dynamic and
depends wholly on the instant state while deciding of the next elementary movement. Such a
system is only a primary solution to the navigation problem, powerless before complex tasks
in over-constrained environments. Moretheless, it is subject to potential wells. All this tends
to enhance the advantage of planning.
To construct a plan, a capacity to predict the future state of the robot and the environment
is needed. This capacity relies heavily on the knowledge of the environment model. The
plani ed trajectory depends, thus, on the quality of such a knowledge. While executing, the
open-loop displacement of the robot on the trajectory bears constantly the risk of collision.
This is due to the robot movement uncertainty as well as to errors related to the original
model, not to mention that, in an evolutive environment, unexpected obstacles may a ect
the execution and lead to a failure.
Even more, planning usually produces trajectories using a constant minimal clearing
distance global to all parts of the trajectories. If the choice of this distance is based on exe-
cution parameters, such as maximum velocity and acceleration, its value may over-constrain
planning for some trivial situations. Otherwise, if this distance is relatively small, a minor
deviation risks collision.
In this context, an open-loop execution of a trajectory does not seem a robust solution.
This leads us to put forward a collision-free path tracking system, controlling, securing
and adapting the execution and making it more robust.

State of art
Several works treated the \strict" path tracking problem. Generally, solutions consisted to
join a sequence of positions fPig without stopping the robot (taking the robot kinematics into

29
2.2. THE PROBLEM'S FORMALIZATION 30

account). Thus the problem is reduced to the production of a trajectory (consigns) realizable
by a non-holonomic mobile robot. For example, Kanayama and Hartman [Kanayama 89], join
the con gurations two at a time by cubic spirals whose radii are superior to those obtained
by clothodes.
Delingette and co. [Delingette 91] generalized this method by using \intrinsic splines"
whose curvature is a polynomial function of the curvilinear abscissa to limit the curvature
and introduce control points. We can mention also the works of Segovia and co. [Segovia 91]
that use Bezier curves, of [Nelson 89] that de ne curves whose radius is a polynomial function
of the polar angle, and of [Chochon 83] that uses a succession of segments and of clothodes.
In [Fleury 95], S. Fleury treats the problem by considering cusp points on the trajectory.
The tracking is realized by de ning trajectories composed of segments, arcs, clothodes and
anticlothodes. The anticlothodes are circle inductions whose radius vary proportionally to
the trajectory tangent angle (x 2.2.1).
Nevertheless, few works study the problem of collision-free path tracking. In [Green 94],
the authors develop an algorithm for a planar robot by de ning a feedback command law.
This command integrate obstacle avoidance during tracking by minimizing an error function
de ned between the obstacles and xed points on the robot. This algorithm seems interesting
even though the fact that the regulation is purely on the position (x; y; ) may lead to a drift
on the original trajectory even away from obstacles. We can also mention other works such
as [Khoumsi 88] which uses successive circle arcs.
In chapter 5 we present a new concept to tackle the problem of reactive execution of
trajectories. Here, we will introduce a formalism and develop a set of functionalities integrated
in our collision-free path tracking system.

2.2 The problem's formalization


2.2.1 Action insertion
Since the planning issued trajectory type varies with the planner, we propose the following
architecture in order to build the general system collision-free path tracking that is called
(Rt PtCam ):
Let P be a trajectory generated by a certain level of planning. P is transmitted to an
intermediate level having the the necessary information concerning the type of the trajectory,
called pilot ( gure 2.1 on the following page).
Pilot is the module that generates the trajectory in the functional architecture of the
robot Hilare2 (annex A). It uses four types of primitive trajectories: segments, arcs, clothodes
and anticlothodes. The principal role of this level is the parameterization of the trajectory.
This operation needs other entry parameters such as maximum velocity and acceleration.
As a result this level produces a sequence of consigns f (t) indexed by time and containing
information about position, velocity and acceleration necessary to execute the trajectory.
The generated sequence if the entry of our system. Rt Pt Cam .
This architecture guarantees the independence of the method from the planner's type, for
the pilot level takes in charge the uni cation of the entry of the system. One should note that
consequently, the sequence f (t) generated by the pilot replaces the xed G goal in Rt Cam
case.
The following example presents some of the functionalities introduced in the system.

30
2.2. THE PROBLEM'S FORMALIZATION 31

Planification

Trajectory

Vmax
dt Pilot
Amax

Consign Perception

dt Trajectory follow Measures

Consign

Data
Command Functionality

Figure 2.1: Architecture of Rt Pt Cam system.

Ci

Obstacle
. ...
..
.
f(t)
Cj

Figure 2.2: Trajectory memorizing idea.

31
2.2. THE PROBLEM'S FORMALIZATION 32

The robot moves on a trajectory by following the consigns f (t) generate by the pilot
( gure 2.2 on the page before) when it meets with an obstacle (which was either unseen or
not correctly modeled) at time t0 . The consigns Ci generated from this moment onwards
enter in the obstacle in uence zone. A repulsive force is then induced which obliges the robot
to modify its movement to avoid the obstacle. But the goal moves always in the obstacle. The
robot will thus oscillate while trying to reach the goal and consider itself in a dead-lock. The
main reason of this behavior is the abstraction of the trajectory's geometry. Nevertheless,
the reason of this abstraction is to make this problem simple and real-time applicable.
Here, we propose an intermediate solution based on the partial memorization of the
trajectory before and throughout the execution in a way to keep a further piece of the
trajectory at hand. Such a knowledge of the near future makes it possible to develop a
dynamic goal research system. In our example ( gure 2.2), the knowledge of a forward piece,
enables a better choice of an intermediate goal (such as consigns Cj ), thus avoiding the
obstacle in a better way.

2.2.2 Action de nition


Let us rst de ne the action: collision-free path tracking. Let S (t); t 2 [0; T ] be a
parameterized curve in the con guration space A = R2  S 1 for which:
qs = S (0)
qg = S (T )
where qs ; qg are the initial and nal con gurations respectively. Let O be the set of obstacles
in A. Let d : A  A ! R+ be a distance de ned on this space (e.g. Euclidean distance
between the positions + the absolute di erence between the angles) and de ne

d(z; A) = Min fd(z; x)g 8A  A 8z 2 A


x2A
to be the distance between a con guration and a set of con gurations in A. This distance
will be used to measure the o set of the current position of the robot to the piece of the
trajectory in consideration.
Let S  be a subset de ned by S  = fS [t1; t2]g and designing a curve verifying:

8x 2 A9!y 2 S jd(x; y) = d(x; S )


S  de ne the piece of the trajectory issued from the memorization. It is called a sliding
trajectory (x 2.2.3).
Supposing qs the initial con guration of the robot, we generate an action \Path Tracking"
described by the curve S(t); t 2 [0; T], verifying
If the initial con guration of the robot is qs , a Path Tracking action is generated which is
described by the curve S(t); t 2 [0; T] verifying:
1jfS[0; T]g \ O = ;. This condition expresses the collision-free displacement generation
along the curve S(t).
2jMaxfd(x; S )g   ; 8x 2 fS [0; T]g. This condition imposes a maximum drift m > 0 of
m
the original trajectory S (t).
32
2.2. THE PROBLEM'S FORMALIZATION 33

3jR0T d(S(t); S )dt  ; 8 2 R+: This condition generates a displacement on S(t) while
minimizing the drift from the original curve S (t). In case of a deviation due to the
presence of an obstacle, the robot should rejoin the original trajectory as soon as possible
after accomplishing the avoidance in order to minimize . In fact this value is a surface
area corresponding di erence between the two curves. A null value expresses thus the
over-lapping of both of them.

2.2.3 Algorithms
In this paragraph, we present the group of algorithms that we have proposed in order to build
the system.

Dynamic trajectory memorization


Consider lm , the length of the memorized curve, as an entry to the system. The memorization
operation de nes a partial curve on the initial trajectory that we call the sliding trajectory.
This curve can be described by the following condition:
Z T2
f(t) = f (t); 8t 2 [T1; T2] such that, v(t)dt = lm (2.1)
T1
where f (t) is the sequence of consigns de ned in 2.2.1 on page 30 and v (t) represents the
robot speed at time t. In fact, each con guration of f (t) have the following information:
0 x(t) 1
 q(t) = @ y(t) A is the robots position.
 v((tt)) 
 V (t) = w(t) is the vector of linear and angular speeds.
Note that the condition 2.1 may not be satis ed when the remaining length is inferior to
lm, in which case, the memorization is stopped.
If we suppose a known frequency for the generation of consigns by the pilot, the execution
will be behind the generation of consigns. This is due to the dependency of the memorization
on this frequency.
Otherwise, if L represents the current length of the sliding trajectory, L may have a value
superior to the given value lm at the entry of the system (depending on the state of the
system as in the next paragraph). This may happen when avoiding obstacles.

Attraction point
Having de ned the sliding trajectory, f(t), we present the attraction point research algorithm.
Let q = f(s)8s 2 [0; T 0] be a con guration on the curve f(s), with
s = t ? T1 ) f(0) = f (t ? T1)
where T1 id the moment corresponding to the rst con guration of the sliding trajectory on
the global trajectory.
We distinguish three possible states of the Rt Pt Cam system:
33
2.2. THE PROBLEM'S FORMALIZATION 34

Nominal state: The robot is on the global trajectory. Let p(t) be the position of the robot
and Fr (t) the repulsive force associated to the obstacles at time t. The system then
satis es the following conditions:
p(t) = f(0) (2.2)
Fr (t) = 0
The rst equality expresses that, in nominal execution mode, the memorized piece
\slides" ahead of the robot, and thus the robot position occupies the rst con guration
on f(t). The repulsive force is also null. The attraction point is then:
q = f(ds) (2.3)
This equation governs the perfect execution of the trajectory. ds is the time increment
relative to the sliding trajectory that corresponds to the instant t + dt on the global
trajectory f (t).

− q −
p(t) = f(0) − − f(s)
q = f(ds) f(s)
ll
li q

p(t) p(t)
p(t)
Nominal Avoidance Smoothing

Figure 2.3: The di erent states of the Rt Pt Cam system.


Avoidance state: The robot begins to deviate o the global trajectory:
p(t) 6= f(s) 8s 2 [0; T 0] (2.4)
jFr(t)j > 0
This means that the robot enter in the obstacles in uence zone, that the repulsive force
increases and, thus, that the robot leave its nominal trajectory.
In the avoidance state the attraction point is determined by:

 f(s + s); j s 2 [s; T 0 ? s]; if,(f(s) ? p(t)):p_(t) = 0;


q= 0 f(T ) else-wise. (2.5)
and:
Z s+s
li = f_(t)dt
s
where p_(t) represents the instantaneous velocity of the robot and T 0 the instance cor-
responding to the last con guration on the sliding trajectory.
The signi cance of this equation is that if the con guration f(s) satis es the projection
condition in the robots local map, we take an li length advance on the trajectory
( gure 2.3, \avoidance"). The value of li is determined by the the time interval s. This
34
2.2. THE PROBLEM'S FORMALIZATION 35

parameter is called the anticipation distance which reserves a distance on the trajectory
to make the successful avoidance of the obstacle surer. This is done by attracting the
robot by a point representing a more suitable topological evolution of the trajectory.
q takes the last con guration on the sliding trajectory when the projection condition is
not satis ed.
Smoothing state: This state is always preceded by an avoidance state during which the
repulsion force is neutralized and the robot tries to rejoin the trajectory. The system
satis es, thus, the conditions:
p(t) 6= f(s) 8s 2 [0; T 0] (2.6)
Fr (t) = 0
In order to nd an attraction point q the rst con guration q = f(s) corresponding to
the robots position projection along the velocity vector ( gure 2.3 on the page before,
\smoothing"), which is di erent from the previous state. Still we use a notion similar
to the anticipation distance which is used to realize a special smoothing enabling the
robot to come tangentially on the trajectory.
The attraction point q is determined by:
(
q= f(s + s~); j s~ 2 [s; T 0 ? s]; is (p(t) ? f(s)):f_(s) = 0; (2.7)
f(T 0) else-wise.
and: Z s+~s
ll = f_(t)dt
s
where ll is the value of the smoothing distance de ned by the parameter s~.
The state change condition when reaching the trajectory is:
d(p(t); f (t)) < T ; T ! 0
where T is an in nitismal positive constant.
One should note that the sliding trajectory memorization in the last two states (avoidance
and smoothing) continues from the instance T1 where the robot leaves the trajectory. Other-
wise, the length of the sliding trajectory may increase in this case and the con gurations on
the beginning of the trajectory are not freed.

System states
The formalism presented in the previous paragraph characterizes the passage conditions be-
tween the di erent states of the system Rt Pt Cam . gure 2.4 on the following page shows the
changes of state in function of the variation of the repulsive force Fr and the position of the
robot relative to the trajectory.

35
2.3. ENVIRONMENT MODEL INTEGRATION 36

Normal Fr = 0
N(p(t) − f(t)) < ε T
State

|Fr| > 0 Smoothing


|Fr | > 0
state

Avoidance
Fr = 0
State

Figure 2.4: The passage between the di erent states of the system Rt Pt Cam .

2.3 Environment model integration


In paragraph (x2.1), we have presented the problem of trajectories passing at a minimal
distance from obstacles. (Here we suppose a purely geometrical planner for other planner
types such as those based upon sensor referenced commands do not present the same prob-
lem.) In fact, certain tasks require maneuvering near obstacles while realizing rather dicult
movements (parking, port passage, : : : ), which obliges the planner to use a small avoidance
parameter.
Suppose now, that this clearing distance is associated to that relative to the path tracking
reactive system. During the trajectory execution, the coordination of the choice of this
distance between the planner and the reactive system does not bother the execution in what
concerns the obstacles already known to the planner. Still, this choice will constrain the
execution in presence of unexpected obstacles. On the other hand, if we choose a more
important clearing distance, the reactive system will nd it dicult, even impossible, to
follow the trajectory close to obstacles, including those who are already known. Or else, if
we relate the execution velocity to the clearing distance, a small velocity will be imposed to
all the trajectory.
How then should the clearing distance be determined?
The proposed solution in based upon the dynamic modi cation of the clearing distance in
function of the type of the sensed obstacle. Known obstacles should thus be distinguished
from unexpected ones. To do this the environment model used in the planning should be
always available.
In all cases, to interpret the environment model is not an easy task in real-time context.
The obstacle $ model matching complexity depends directly on the environment and the
time needed to realize this operation is not compatible with real-time constraints.
Matching methods (even time bounded ones) being dependent upon the environment
representation type used by the planner, they make our system loose its genericity. In this
context and in order to unify the perceptual entries of the reactive system, we propose to

36
2.3. ENVIRONMENT MODEL INTEGRATION 37

create a treatment parallel to (real) perception which is called virtual perception.

Environment Model
Sensor
Model Position

Virtual
Perception

Virtual measures

Figure 2.5: Virtual perception.


Virtual perception maintains a dynamic representation of the environment model and
produces virtual perception data of the same type as the real perception system (x2.3.2). In
other words, this level take the environment model, the sensor models used by the reactive
system and the current position of the robot. It exports virtual measures ( gure 2.5). This
virtual perception enables the production at the entry of the reactive system, virtual measures
synchronized with real measures. These two sources of measures will be matched easily
because they correspond to the same instantaneous robot and the matching time will be time
bounded since the number of virtual measures generated will be of the same order of the real
measures. The model constructed by this matching between virtual and real perception is
thus simpler and more complete.
This functionality in then naturally included real-time context. This brings about the
problem of complexity of in function of the model representation. Here, and in order to
bound the virtual measures treatment time, we propose the following algorithm of dynamic
representation of the environment by virtual perceptual data.

2.3.1 From the model to virtual measures


As we have shown before, the virtual measures calculus complexity depend on the type of the
model representation. As an example we will rst consider a polygonal model represented by
a set of segments.
Let S be a set of segments which represent the environment model in the frame Oxy and
let q be the sensor con guration vector. In the case of a model such as the laser range nder,
the measure corresponds to the intersection of the half line dl whose direction is u (which

37
2.3. ENVIRONMENT MODEL INTEGRATION 38

S
vs i dc

p dl
d2 c
p
l
Dc
D
l
d1
σ
u

q v

Figure 2.6: Virtual measure.

represents the shooting distance), with the segment Si ( gure 2.6). To calculate this measure
this intersection should be veri ed The distance Dl to the intersection point p1 and the the
intersection conditions are given by:
D = K(u ^ vs ) 6= 0 ;
= K(uD^v) 2 ]0; 1[ ;
Dl = K(vDs ^v)  0 :
where K : R3 ! R is a function returning the z component of the vectorial product and
2]0; 1[ expresses the intersection condition.
In the case of the ultrasonic sonar, the detection cone opening 2 ( gure 2.6) de nes an
angular sector limits by two half lines d1; d2. This complicates the intersection test, because
the exact calculus necessitates multiple intersection tests in order to deduce the intersection
result. Nevertheless, the sampling of the angular sector by several half lines may simplify
the problem and give a suciently representative solution for this application. Suppose
that the sampling gives three half lines d1; dl; d2 (the two extremities and the center). The
intersection test is satis ed if one of the half lines intercept the segment and the distance
is thus the shortest distance of interception. Note, that in case of gure 2.6, the returned
distance is Dl where as the real shortest distance returned by the sensor will do Dc . In fact,
we do not want to model by this system the used sensors. We want to generate even exact
measures corresponding to the model each cycle of time. These measures are used by the
reactive system to realize matching tests.
We could remark that the algorithms complexity id m  n where m is the number of dis-
tance calculations for a segment and n i the number of segments in the model. Consequently,
for a number m constant, the treatment time becomes a function of the complexity of the
model (which varies in function of the application) and thus the time bound is not known in
advance. In this context and in order to limit this time the following idea is proposed:
Before execution, the model is projected in a global map represented by a bitmap, the
position of the robot is updated in this map and the virtual measures are dynamically
calculated in this map.

38
2.3. ENVIRONMENT MODEL INTEGRATION 39

© Oper

Environment model

Projection in the bitmap

Figure 2.7: Example: virtual ultrasonic measures issued from bitmap calculus.

39
2.3. ENVIRONMENT MODEL INTEGRATION 40

For a certain choice of the acquisition and sampling parameters, the number of measures,
m, to calculate is constant. Since the calculation of a distance measure in a bitmap is
bounded, the global time does not depend on m and it is thus bounded.
The interest of this representation is in the generation of the number of necessary measures
in each cycle. The quality of these measures depend on the sampling of the bitmap. (This
should be taken into account in parameters matching in what follows.)
Figure 2.7 on the page before shows the robot position in the polygonal environment with
measures issued from bitmap calculus.
Note: The integration of this virtual perception enables the de nition of virtual obstacles
which will be taken into account during execution. This is a typical tool for de ning virtual
corridors around the trajectory in order to control some how the behavior of the reactive
system. On the other hand, this perception can be used eciently to produce a simulation
tool whose sensor model can be ameliorated using noise as well as specularity test.
© Oper © Oper

Figure 2.8: Simulation: Virtual ultrasonic measures with(out) a detection cone.


We show in gure 2.8 the measures generated by virtual perception for the simulation.
note the e ect of the detection cone opening on the measures.

2.3.2 Matching

sv

d1 ε d
s 2
(Ι) s
, sv εθ
(ΙΙ) d1
s εd d
2

Figure 2.9: Matching two segments..


We have seen in paragraph 1.7.2 the representation of obstacles by real measures. This
method is applied in the same way as virtual measures, thus generating a set of segments Sv
and a set of point obstacles Mpv . We are interested in real-time matching in local coordinates

40
2.3. ENVIRONMENT MODEL INTEGRATION 41

for a robot without any notion of memory. This operation is very sensible to the precision of
the position of the robot in the global frame.
Once the real and virtual segment sets obtained, matching is done in the following way:
Let s; sv be vectors representing a real and a virtual segment respectively ( gure 2.9 on
the page before, I) and satisfy the condition s  sv  0. The two robots are said to be matched
if
j K(s2^d1) j + j K(sv2^d2) j  s (jsv j + jsj);
jd1j + jd2j  jsv j + jsj + 2d;
jcos?1( jssvvjjssj )j   :
where s ; d;  are positive constants having the same signi cance as in paragraph 2.3.1). The
rst condition bounds the surface between the two vectors, this limit depends on the lengths
of the two segments and the sapling step of the bitmap. The second condition bounds the
maximum distance between the two segments ( gure 2.9 on the preceding page, II). The third
condition is a collinearity condition, the maximum angle between the segments is determined
by the constant  .
As for the point obstacles, a distance test is enough to match them. They have the
convenient property of being ordered the same way in both sets.

2.3.3 System parameters adaptation


Since known obstacles could now be distinguished from unknown ones, adapted clearing
distances may be associated to obstacles in function of their type. If dp is the distance used
by the planner, the distance associated to known obstacles is:

doc = dp + oc
where oc is a positive error constant, while the distance associated to unknown obstacles is
determined in function of the maximal velocity and acceleration on the trajectory. Let Ts be
the time necessary to decelerate from maximal speed to zero, this distance is:

doi = 21 amax Ts2 + oi; avec: Ts = Max( avmax ; ! max ):


max max
where oi is an error positive constant. To calculate Ts the angular acceleration capacity of
the robot should also be taken into account.
Note: In the path tracking application, we propose to make oc depend upon the curvilinear
coordinate s, while keeping in the same time a minimal and maximal bound to it. Figure 2.10
on the next page shows an evolution of this term.
Figures 2.11 and 2.12 show two executions of the trajectory while avoiding obstacles. The
trajectory is composed of segments and arcs parameterized by the pilot module and executed
by the system Rt PtCam . Note on the gure 2.12 the dynamic modi cation of the clearing
distance in the nal phase of execution.
The experiments presented in gures 2.13 and 2.14 show the minimal adjustment necessary
for the execution of the trajectory. Note the drift of the model in the y-axis direction in the
corridor which produced a matching failure. Nevertheless, the robot succeeded in rejoining

41
2.3. ENVIRONMENT MODEL INTEGRATION 42

εoc

max

min

Figure 2.10: Evolution of the term oc .

© Oper

Goal

Figure 2.11: Obstacles avoidance during path tracking.

42
2.3. ENVIRONMENT MODEL INTEGRATION 43

© Oper

Goal

Figure 2.12: The e ect of the dynamic modi cation of the clearing distance during path
tracking.
© Oper

Figure 2.13: Path tracking: Leaving the Salle.

43
2.4. DISCUSSION 44

© Oper

Hi, this is me.

Figure 2.14: Path tracking: Entering the Salle.

the trajectory. This is due to the rotational potential that aligned the robot to the wall
neutralizing thus the repulsive potential.
In order to show the e ect of the projection on the trajectory, we have assigned an
important value to the parameter m (x 2.2.2 on page 32) which permits a big drift from the
original trajectory. We have also modi ed the position on the robot (on the x-axis of the
global frame of the Salle). Thus, the planned trajectory passes through an obstacle. Figure
2.15 shows the consequent behavior of the track algorithm. The system Rt PtCam maintains
the avoidance state while projecting itself on the trajectory. This is possible because of the
sliding trajectory issued from the memory. Finally the attraction point is attached to the goal
position and a local minimum is encountered thus leading the execution to a failure.

2.4 Discussion
The conception of the system Rt Pt Cam as proposed here ameliorates the behavior of the
reactive system during execution. standardizing the entry of the system enables the treatment
of all sorts of trajectories without demanding the knowledge of the several primitives used
by the planner. Also, the memorization of the trajectory and the notion of sliding trajectory
ameliorates notably the avoidance behavior in case the Rt Cam system fails.
The integration of virtual perception enabled the dynamic adaptation of the clearing dis-
tance and thus a better behavior in constrained zones. Finally, this virtual perception is a
powerful simulation utility that we have ameliorated further by using sensor models including

44
2.4. DISCUSSION 45

© Oper

Figure 2.15: Path tracking: projection on the trajectory.

specularity, detection cone, noise, : : :


The integration of the system in the functional architecture of our \dear" robot Hilare2
demonstrates the necessity and the eciency of the di erent control parameters that char-
acterize the execution (maximum drift, di erent states of the system, obligatory passage by
cusp points, : : : ) especially in the context of the multi-robot coordination projects (European
project MARTHA1 , internal project STRADA) [Alami 95].

1 A European project ESPRIT III; MARTHA: Mobile Autonomous Robots for Transportation and Handling
Applications.

45
Part II

Sensor-based motion

46
Chapter 3
Sensor-based actions

3.1 Introduction
The execution plan generated by a planning level varies according to the type and strategy
of the planner. An execution plan based on the generation of movement in free-space may
be:
 A sequence of (reachable) con gurations.
 A trajectory composed of a sequence of geometric primitives. (broken lines, segments,
arcs, clothoids, anticlothoids, : : : )
 A parametric analytic function. (Bezier, spline, : : : )
We have seen in the preceding chapter that trajectory execution is not secure without the
passage by a reactive control system insuring non-collision in real-time. In fact the interest
of such a system resides on the security of execution and the coherence of the execution with
the generated plan is not guaranteed. Not taking into account the uncertainties related to
the environment real model and the robots movement may lead to an execution failure.
In such a context, the combination of free-space movement and sensor-based movement in
the planning strategy is unavoidable. This condition is in fact sine qua non for the security of
the execution as well as for the generated plan to be properly executed when taking account
of uncertainties.
Several approaches were proposed in literature to treat the di erent aspects of the prob-
lem of sensor-based actions and displacements. These approaches are di erentiated by the
perception type, on one hand, and by the actions complexity, on the other.
Using the notion of task function proposed in [Samson 90b] in the working context de-
scribed in [Espiau 92] concerning active vision, [Rives 93, Pissard-Gibollet 93, Pissard-Gibollet 95]
proposed system of sensor-based movement by visual feedback of a mobile platform. Several
sensor referenced tasks such as wall following, door facing, : : : , were treated. An interesting
aspect of this system is the addition of liberty degrees related to perception, which enables the
creation of a convenient cooperation between the mobile platform and the sensor feedback.
The task is then programmed as a set of task functions (sensor-based actions) sequenced and
controlled by the system orccad [Coste-Maniere 92].

47
3.1. INTRODUCTION 48

In fact, the core of these works concerns the execution of a task modeled by regulating to
zero some task function which expresses the drift between the nal and the current perception
states. The nal state is thus predetermined in the camera frame before execution, which
signi es a transformation of a 3D space to a 2D image for an initial prede ned con guration
for the couple robot-camera. The non existence of parallel treatment of task functions, makes
it impossible to handle \relatively complex" tasks involving actions that could not be realized
in a simple sequence. Thus, to follow a wall while avoiding obstacles (if possible) must be
expressed in a single task function or a single automate combining both actions. In fact,
a sequential transition between the two separated task functions (wall follow and obstacle
avoidance) does not guarantee the accomplishment of the global task.
Using the same formalism of the task function, [J. Koseck 96] proposes a mobile robot
displacement system with visual feedback. The environment is a graph whose knots represent
the di erent con gurations corresponding to the robot landmark relative locations . In this
graph, the arcs represent the command strategy moving the robot from one location to the
other. The navigation is then a sequence of positioning tasks. Even though it is well known
in literature [Bouilly 95a], this navigation approach presents an interesting idea concerning
environment representation. Its most important inconvenience is the preliminary construction
of links between the robot positions associated with landmarks and the nal perception state.
And also in a restrictive navigation capacity due to obligatory passages by xed position
con gurations.
In a speci c domain related to sensor-based road follow applications, Dickmanns proposed
in [Dickmanns 89, Dickmanns 95] a visual feedback root follow system. The basic idea is a
local analysis of the environment ahead of the vehicle used to plan the next trajectory. The
environment model is thus constructed locally. Several procedures to recognize objects and
humans are also developed. Nevertheless, this method does not treat a genuine feedback
sensor motion since there is no relation between the censorial feedback and the trajectory
command.
In the Wall Follow action context, [van Turennout 92] proposed a feedback control algo-
rithm using ultrasonic sensors1. This algorithm is based upon wall distance measure cor-
rection as well as on the estimated orientation between successive measures. Orientation
calculation is simple and sensible to error because it is based upon elementary displacements
of the robot between measures and upon the measures themselves. The least error on mea-
surements may lead to big variations of the orientation. Even more, this algorithm does not
treat the problems related to the presence of obstacles.
In the same domain, Ando [Ando 95], proposes a wall follow algorithm while taking into
account the ultrasonic measures specularity. This algorithm does not represent a real sensor
feedback control, for the movement is realized by a sequence of locomotion primitives such
as segments, rotations, arcs, : : : . These primitives are updated every 3cm. Consequently,
the passage between two primitives such as (segment $ arc) without a smoothing algorithm
generates a command discontinuity (except if one passed by a stop). The algorithm should
also be rede ned for di erent placements of sensors.
Through a new formalization of Task Potential, we present in this chapter the applicability
of the potential method in the context of sensor-based command. On this formalization, we
develop several feedback actions used in robotics. Then we present the eciency and the
utility of these actions in the context of planning with uncertainty.
1 The author announces that the use of several sensors is more ecient though he does not treat this case.

48
3.2. THE \TASK POTENTIAL" 49

3.2 The \Task Potential"


We have presented in chapter 1 the principle of potential feedback. In order to introduce its
applicability on sensor-based motion, let us analyze the following example:
To bring the robot to a given con guration, we apply an attractive potential which de-
pends on the distance function to this con guration and which have a single minimum. The
force, gradient of the potential, will make the robot move towards the goal. Note that the
only useful state feedback is the distance to the goal. Using an odometric feedback and ele-
mentary displacement integration, the robots position is regularly updated and the distance
to the goal is easily found. In fact, this distance measure may be realized by another means
such as perception (identi able and localizable goals). This does not change the behavior of
the system from command point of view.2 . In this context, the same displacement may be
generated by a command using the exteroceptive feedback in place of the proprioceptive one.
Generally a command is called sensor-based if it is based on exteroceptive feedback.

Task Potential Formulation


Generally, a potential function is de ned on the operational space as function of the current
position of the robot. In the context of sensor-based command, since the environment is
not (totally) known, it is not possible to de ne the potential function on the whole space
(or subspace). Still, if the perceptual data may determine the position of the robot at every
moment in some global frame, we can de ne a global potential which evolve in time in order to
realize the required action. Consequently, the realization of the task is insured if the evolving
potential minimum converges towards a unique global minimum. The attractive potential
linked to a mobile goal is a typical example of such a potential.
On the other hand, if the perceptual data does not permit the expression of the robot
position in a global referential, the potential must depend directly on perceptual data and
the generation of the displacement must be done incrementally in function of the evolution
of the environment. This is the case of the repulsive potential associated with the distance
to the obstacle. We will develop the notion of evolutionary potential by an example on a
feedback action.
Evolutionary potential notion: Imagine that the action to realize is a movement to contact (see
details in paragraph x 3.3.1 on page 51). In practice, and because of the maximal range of
the sensors, the distance to contact is not always determined. Nevertheless, in such a case we
have the information that the contact is at a distance greater that a maximal distance related
to the sensor. This maximal distance generated an attraction force producing an elementary
displacement. As long as the object is not detected, the norm of this force remains constant
and consequently, it is not a conservative force. We shall represent in paragraph (xC.2) how
to control such a force. Any way, this shows an evolutionary potential function. The e ect
would be the same if the object representing the contact was itself moving.
The evolution of the potential function, being dependent on the environment, it must be
controlled by control functions xing the global behavior of the robot according to the task
it should realize.
In this general context of execution control of potential feedback motion, we propose the
following formalism of Task Potential:
2 We suppose the same quality of measure in both cases.

49
3.3. FROM TASK POTENTIAL TO SENSOR-BASED ACTION 50

Let Fi (t); t 2 [0; T ]; i 2 [0; : : : ; n] be scalar functions of time, positive and monotonous.
Let q 2 <n be the robot con guration vector. Let Pi (q) be positive di erential convex
potentials. The potential P (q; t) issued from a linear application of the form:
X
P (q; t) = Fi(t)Pi(q); 8t 2 [0; T ] (3.1)
i
is a convex potential whose unique solution, qm , veri es:
@ P jq ;t=T = 0
@q m
Proposition: The realization of the task control may be expressed by the decent of the gradient
of a potential function P (q; t); t 2 [0; T ], composed linearly of several convex potential
functions whose coecients are scalar functions of time, positive and monotonous.
Proof: According to convex analysis, a linear composition of convex functions is a convex
functions [Gamkerlidze 80]. Thus P has for each t 2 [0; T ] a unique minimum. The task to
realize corresponds to the global minimum at t = T .
If the linear application id a pure convex composition, we write:
X
Fi(t) = 1; 8t 2 [0; T ]
Fi(t) 2 [0; 1]; 8t 2 [0; T ]
In fact, the convexity condition insures the uniqueness of the solution for all t and the
monotony of the functions Fi (t) guarantees the asymptotic convergence of this solution as t
tends towards T .
Corollary: This linear composition may be stationary or evolutionary in time; the coecients
may be constant.
Example: Let P be given by:
P = f (t)(q ? q1)2 + (1 ? f (t))(q ? q2)2
where q1 ; q2 are two xed con gurations. Let f (t) be an increasing function such that f (0) =
0; f (T ) = 1. The minimum of P at time t = 0 is the con guration q = q2 whereas the
minimum as (t ! T ) id the con guration q = q1 , consequently the asymptotic stability of
the system is insured by the function (q ? q1 )2.
We develop, in the following paragraphs several applications based on the Task Potential
in order to show the interest of this formalism.

3.3 From Task Potential to sensor-based action


We will de ne in this section a set of sensor-based actions and develop them in the context
of Task Potential. Di erent task potentials are constructed from a certain number of basic
simple and generic potential functions. Nevertheless, other user-de ne potential functions
may be used satisfying the task requirements and standard potential properties.
In chapter 4, we present many experiments in the context of planning with uncertainty.
Here

50
3.3. FROM TASK POTENTIAL TO SENSOR-BASED ACTION 51

3.3.1 Movement to contact


In this section the robot is required to advance or retreat until is encounters an obstacle in a
prede ned compact zone and at a given distance. If no obstacle is detected in this zone the
robot should stop.

Action's de nition:
Let Rg (Oxy ) be a global frame in the operational space related to the con guration space
A  <3, X = (xy)T be the robot con guration vector and O the set of stationary objects
in A. Suppose that v1 ; v2 are two vectors determining an angular sector
relative to the
robot centered on its x-axis ( gure 3.1). Let d : A  O
! <+ be a function returning the
shortest distance between the robot and the set O
 O, the restriction of O to the sector
.
If the robot is at the origin of the frame Rg (X = 0), and if its velocity is null, we generate
an action Advance to Contact described by the curve S (t); t 2 [0; T ] such that:

{O}

V2
dc

X S(t)
Y
Ω V1
Rg

Figure 3.1: Advance to Contact action.

S (0) = S_ (0) = 0 1j
fS [0; T ]g\ O = ; 2j
d(S (T ); O
) = dc 3j
d(S (t); O
) 6= dc 8t 2 [0; T [ 4j
y_ (t) = _(t) = 0 5j
where dc is a positive constant representing the distance to contact.
The rst condition determines the initial state of the robot. The non-collision on the
whole of the trajectory is insured by the condition 2j. At time t = T , the condition 3jmeans
that the shortest distance between the robot and the set of obstacles O
is the distance to
contact dc . (This distance is xed by the user.) The uniqueness of the con guration S (T )
which ends the curve (displacement) is expressed in the condition 4j. The movement is
characterized by the condition 5jthat expressed an displacement in a strait line.

51
3.3. FROM TASK POTENTIAL TO SENSOR-BASED ACTION 52

Task Potential:
We de ne, now, the Task Potential which will realize the action. Let d be the vector corre-
sponding to the closest point in
and ~i be the unitary vector on the x-axis. We de ne the
distance dx as being the norm of the projection of the vector d on the x-axis. Then:

dx = dT  ~i
and thus the distance to contact on this axis becomes:

dcx = jddxj dc

The Task Potential necessary for the realization of this task must be convex, non negative,
in nite on the objects and nil for dx = dcx . its derivative should be negative on the interval
]0; dcx[ (obstacles repulsion), positive on the interval dx > dcx (goal attraction) and constant
for dx  dm (saturation of the attractive force). Here dm is the maximum measurable
distance.. We give the expression of the di erent functions which build this potential:

P1 (dx) = 2 ( d1 ? d1 )2
x cx
k c
P (d ) = (d ? d )2
2 x 2 x cx
P3 (dx) = kc m(d ? dcx ) ? k2c m 2

where, kc are positive gains, with m = dm ? dcx . The Task Potential id then:
8 P + P 8d 2 [0; d ];
< 1 2 x cx
P (dx) = : P2 8dx 2]dcx; dm]; (3.2)
P3 8dx > dm:
P is a convex function (since its epigraph is convex [Gamkerlidze 80]) which is non negative
derivable. Its unique minimum dcx = dx is null ( gure 3.2 on the next page). The force issued
from it is: 8  1 1 
>< d2 ( dx ? dcx ) + kc(dcx ? dx)  ~i 8dx 2 [0; dcx];
Fc = > kc(dcx ? dx)  ~i 8dx 2]dcx; dm];
: kc(dcx ? dm)  ~i 8dx > dm:
The force vector being thus on the x-axis, it will lead the robot to minimize the o set
dx ? dcx by simulating a pure linear accumulation. In order to realize the asymptotic stability,
we add on the command level a dissipative force proportional to the velocity v . We have thus:
Fc = (Fc ? kv v)~i
where kv is a positive gain constant. Fc is the command force.

52
3.3. FROM TASK POTENTIAL TO SENSOR-BASED ACTION 53

P(d)

-F(d)

0 d0 dm
d

Figure 3.2: The Task Potential of the Advance to Contact action.

Execution control:
rst, we introduce the following parameters:
Lm 2 <+ : the maximum constant displacement on the curve S (t) while the robot must
nd the contact (dcx = dx ).
lm (t): a time function representing the o set between the real robot displacement at
time t and the maximal length Lm allowed to look for contact. this function is given
by:  L ? R t jS_ (t)jdt; if L ? R t jS_ (t)jdt > 0;
lm (t) = 0 m 0 m
elsewise.
0

lm (t) is a non negative continuous function.


In order to realize a maximal displacement Lm while searching for contact, we control the
force by applying a linear application on the potential P who is a multiplication by:
fLm (t) = klm (1 ? e?lm(t))
which is a positive monotonous function. klm is a positive (frequently unitary) gain
constant and  is a time constant which determines the state switch slope of the function.
The force expression is rewritten as follows:
Fc = (fLm (t)Fc ? kv v)~i; 8t 2 [0; T ]
When fLm (t) ! 0 the force Fc  becomes a dissipative force and the linear velocity of the
robot tends asymptoticly to zero.

Analysis:
In fact, the use of the control function is the continuous neutralization of the force when the
robot realizes a long displacement (superior to Lm ) without succeeding in the research of
53
3.3. FROM TASK POTENTIAL TO SENSOR-BASED ACTION 54

f =1
lm
λ = 10
λ =1

L =l ∆lm
m

Figure 3.3:  parameter e ect.

the contact (the potential minimum). the parameter  is determined in function of the cycle
time and of a dissipative factor kv . This determines in its tour the pro le of the robot stop
in case of a failure. In practice, its value must me relatively high in order to keep a unitary
value of the function for a displacement length l near Lm . Figure ( 3.3) shows the the e ect
of .
In the same way, we can de ne a control function to terminate the execution if the robot
realizes a displacement l > Lblind during which the perception did not detect any object.
The length Lblind is xed in function of the maximum length Lm and in function of the used
sensor.
We have made the hypothesis that objects are stationary in this action de nition. This is
only necessary to guarantee the non-collision since there is no complete treatment of all the
objects in the set O
which is the set of objects not contained in the sector
. Nevertheless,
in practice, we de ne a purely repulsive potential (equation 1.16 on page 16) associated to
the set of measures in O
. Consequently condition 5jis no longer satis ed.

Experimentation:
We show in gure 3.4-I- the track of the execution of the action Advance to Contact. The
measures are issued from ultrasonic sensors (see annex B). Note the linear speed pro le during
execution in gure 3.4-II-, the acceleration phase is purely linear due to the force saturation
(constant force ) constant acceleration ) linear slope). In the deceleration phase, the
linearity is lost. This is due to the variation of the force according to sensor feedback. The
acceleration is thus no longer constant . We have associated in this experiment a big value
to Lm , thus the force annulation depends wholly on dx ? dcx .

Utility:
Typically, in planning with uncertainty, the planner searches to generate displacement to
minimize the robots uncertainty. gure 3.5 on the following page shows the e ect that
Advance to Contact may have on the evolution of the uncertainty. If Ua is the uncertainty
matrix on the position of the robot, the planner veri es the non-collision given the uncertainty
and generates this action. In the nal state, the obstacle being localized by the segment S
and the distance d, the uncertainty along the x-axis as well as the orientation can be reduced
(the matrix Ua ). Note that the uncertainty on the y-axis increases.

54
3.3. FROM TASK POTENTIAL TO SENSOR-BASED ACTION 55

-I-

Speed
Velocity (m/secs)

Time (secs)

-II-
Figure 3.4: -I- Action Advance to Contact execution trace, -II- speed corresponding to the
execution.

Ua U*a d

y S

o x

Figure 3.5: Action Advance to Contact utility

55
3.3. FROM TASK POTENTIAL TO SENSOR-BASED ACTION 56

\
Note: The de nition of the zone
using the two vectors v1; v2, determines the robot move-
ment direction. The angular opening of the sector is v1 ; v2 2 [0;  ].

3.3.2 Parallelize
The aim of this elementary sensor-based action is to position the robot parallel to a wall by
pure rotation maneuvering.

Action's de nition:
Here we use the same de nition as in paragraph (x3.3.1) and suppose the angular sector

centered on the y-axis. Also the parameter is de ned as in paragraph (1.6). Supposing that
the position of the robot is at the origin of the frame Rg (X = 0), we generate a Parallelize
action described by the curve S (t); t 2 [0; T ] de ned by:

Γα

X V2
Y α

Rg Ω

V1

Figure 3.6: Parallelize action.

S (0) = 0 1j
fS [0; T ]g \ O = ; 2j
(T ) = 0 3j
x_ (t) = y_ (t) = 0 4j
The rst two conditions have the same signi cance as in the previous paragraph. The
condition 3jexpresses the nal state of the robot relative to the object (which has some
notion of orientation). The generation of a pure rotation is assumed by condition 4j.

Task Potential:
We give the expression of the Task Potential that realizes this action:
P = 21 k 2
56
3.3. FROM TASK POTENTIAL TO SENSOR-BASED ACTION 57

where k is a positive constant. P is a derivable non-negative function whose unique minimum


is = 0. The moment issued from this potential is thus:
? = ?k
The couple ? makes the robot minimize the angle by producing a pure angular accel-
eration. The stability around zero is guaranteed by:
? = ?k ? k! !
where k! is a positive gain and ! is the angular velocity of the robot. ? is the command
couple.

Execution control:

O1
Y θ min X

O2

Figure 3.7: Ambiguity between two object for parallelize action.


As in Avoid Contact, we could introduce a linear application with a control function that
neutralizes the couple for angles greater than some m . Also a new parameter min must
be added to remove the ambiguity that may arises in what concerns the object of reference.
gure 3.7 presents an ambiguous situation. This parameter determines a minimum rotation
angle to guarantee before getting parallel. This is done by de ning the following attractive
potential:
P = K2 (min ? )2
where k is a positive gain. The issued couple is:
? = K (min ? )
We, equally, de ne the following control function:
f (t) = e?j(t)j (3.3)
57
3.3. FROM TASK POTENTIAL TO SENSOR-BASED ACTION 58

where the angle (t) is given by:


  ? R t !(t)dt if  ? R t !(t)dt 6= 0;
(t) = min 0 0
min 0
elsewise.
(t) represents the remaining rotation before beginning the parallelizing.

fθ (t) = 1

λ =1
λ = 10

∆θ = θmin ∆θ (t)

Figure 3.8: The evaluation of control function f (t) in function of .


The parameter  in this function has the same role as in the previous paragraph ( g-
ure 3.8). We will now e ectuate a convex composition of potentials using the function f (t).
The expression of the couple is
? = ? f (t) + (1 ? f (t))? ? k! !
The function f (t) neutralize the couple associated to during minimum rotation phase
towards min .

Analysis:
The parameter min is given by an upper level (the planner). An erroneous value of this
parameter together with a high value of  may generate an oscillation at the end of this
phase. min must have a value at which the couple ? has always the same sign as ? .
The convex composition enables the realization of the functionalities of this action in a
continuous way and makes possible, in the same way as in the case of Advance to Contact, to
start the execution before the localization of the object.

Experimentation:
gure 3.9-I- show the execution trace of the action Parallelize. di erent parameters are unused
by the command. These are presented in gure 3.9-II-3 where:
 W Is the angular velocity !(t) during execution.
 Alpha id the parameter and DTheta is the angle (t).
 Torque Alpha represents the part ?k f (t) of the command ? and Torque Theta rep-
resents ? .
3 In the gure the values of these parameters before execution are meaningless

58
3.3. FROM TASK POTENTIAL TO SENSOR-BASED ACTION 59

-I-

w
1.4 Alpha
Torque_Alpha
Command Parameters

1.2 DTheta
Torque_Theta
1

0.8

0.6

0.4

0.2

3 4 5 6 7 8 9

Time (secs)

-II-
Figure 3.9: -I- Parallelize execution trace, -II- the pro le of the di erent command parameters.

59
3.3. FROM TASK POTENTIAL TO SENSOR-BASED ACTION 60

Utility:
As for Advance to Contact, relative to uncertainty planning, this command enable the po-
sitioning of the robot in a precise position relative to an object (e.g. wall) before chaining
successive follow commands.

3.3.3 Wall follow


The aim of this action is to advance parallel to a wall maintaining a xed distance from it
while avoiding obstacles.

Action de nition:
We use the set O, the parameter , and the robot con guration X given in the paragraphs
(x3.3.1 and 3.3.2).
Let Rw (Oxy ) be a frame associated with a segment S fO; xpg such as shown in gure 3.10.
Let d be the distance from the center of the robot to the segment, y = d. If dw is the required
follow distance and if represents the segment orientation an the robot frame, a Wall Follow
action represented by the curve S (t) = [x(t)y (t)(t)]T ; t 2 [0; T ] such that:
S (tm )
PX
Fx
Pc
y  S (t) xP
= ? x
Py
Fy
y=d S
dw
Rw
O
Figure 3.10: Wall Follow action.

S (0) = X0 1j
fS [0; T ]g\ O = ; 2j
9tm 8t > tm ; y(t) = dw (t) = 0 3j
x_ (t) > 0; 8t < 0
T 4j
xp
1
S (T ) = XT = @ dw A ; S_ (T ) = 0 5j
0
is generated.
The rst condition represents the initial state of the robot in the frame Rw . The non-
collision is guaranteed by the second condition all along the curve S (t). The condition 3j
characterize the robot con guration relative to the wall to follow after an interval of time

60
3.3. FROM TASK POTENTIAL TO SENSOR-BASED ACTION 61

xed by tm ( gure 3.10 on the preceding page). The movement direction and the requirement
of a longitudinal velocity component are expressed by the condition 4j. The nal state of the
action is precised by the last condition.

Task Potential:
The basic idea behind this action is to apply an attractive force in the direction of the x-axis,
function of the distance xp ? x(t), where xp is the abscissa of the edge of the segment S . This
force Fx is issued from a potential de ned on the x-axis with a minimum at x(t) = xp . The
traversal correction (on the y-axis) of the follow distance dw is realized by another potential
de ned on this axis function of the distance y (t) ? dw . Also the orientation of the robot is
controlled by a rotational potential P , function of the parameter which represents the
wall orientation. The couple  will also contribute to optimize the distance to the wall. The
interest of this last potential shall be discussed in paragraph Sensor problems.
we present (in a semantic way) on gure 3.10 on the page before the two potentials Px
and Py with their minima. Note that the potential Py tends to in nity on the walls surface
in order to guarantee the non-collision.
Note: We will analyze this actions stability, since its realization is based on the composi-
tion of potentials de ned on di erent degrees of freedom of a nonholonomic robot.
Here are the di erent potentials that realize this task:
Px = k2x (x ? xp)2
8  
< ky (y ? d )2 +  1 ? 1 2 ;
w if y < dw
Py = : 2
ky (y ? d )2 ;
2 y dw (3.4)
2 w else-wise.
P = 2k 2


Figure 3.11: The potential distribution for the command Follow Wall.

61
3.3. FROM TASK POTENTIAL TO SENSOR-BASED ACTION 62

where kx; ky ; k ;  are positive gain constants. The Task Potential is thus:
P = P x + Py + P
the expression is the calculated:
0 ?kx(x ?xp) 
1
F =B @ ?ky (y ? dw ) +  y1 ? d1w y12 C
A
?k
If an important distance x (which is expected in this action) is supposed, we present
in gure 3.11 on the preceding page the distribution of this potential in function of the
variation of y and . Note that the only minimum is at the con guration x; y = dw ;  = 0.
This potential tends towards in nity on the surface of the wall. Note also that the part of
the y-component that guarantees the non-collision is null when y > dw .
The asymptotic stability of this force is insured by the addition of a dissipation and thus
the force becomes:
F  = F ? K X_
where K  is a diagonal matrix of the form:
0k 0 0 1
x_
K = @ 0 ky_ 0 A
0 0 k_
where kx_ ; ky_ ; k_ are positive dumping gain constants. In fact these constants depend upon
the proportional gain constants of the di erent components of the force F . We shall show
this dependency in the study of the stability of the system.

Stability:
In order to simplify the presentation of this study, we will suppose that the action to realize
id the following of a semi-line with constant velocity. This means a the stabilization of
the components y;  of the vector X. Then we will consider only the linear part of the y
component of the force for the quadratic part does not have an e ect on the correction of the
distance from the wall4 .
We will study the stability of the control point Pc of the robot ( gure 3.10 on page 60)
under the in uence of a force F, given by:
 c ? k x_ 
F = ?ky y ?x_ ky_ y_
We will show afterwards the convergence of the robot con guration X under the nonholonomic
constraints. We will consider dw = 0.
Let q = [qx qy ]T be the vector which determines the position of the command point Pc
which is at a distance dc 6= 0 from the center of the robot and which satis es the following
relations:
x = qx ? dc cos 
y = qy ? dc sin  (3.5)
4 The quadratic part insure the non-collision with the surface of the wall.

62
3.3. FROM TASK POTENTIAL TO SENSOR-BASED ACTION 63

The point q, being at a non null distance from the center of the robot, may be considered
as a holonomic point and thus be controllable by dynamic feedback [d'Andrea Novel 92,
d'Andrea-Novel 95]. When considering a unitary mass centered on this point, we can describe
its movement by:
q = F
The resolution of this di erential equation is direct and gives us the expressions q(t); q_ (t); q (t),
functions of the initial state and of time.
Once this equation is derived 3.5 on the preceding page, the expressions of the velocity
of the center of the robot are:
x_ = q_x + dc ! sin 
y_ = q_y ? dc! cos  (3.6)
and the nonholonomic system equations are:
x_ = v cos 
y_ = v sin  (3.7)
_ = !
where v; ! are the linear and angular velocities of the robot respectively. These can be
expressed using the velocity of the control point in the following way:
v = q_x cos  + q_y sin 
! = ?d1 (q_x sin  ? q_y cos ) (3.8)
what interests us is the convergence of  towards zero when qy converges to zero. This
implies the convergence of y towards zero according to the equation 3.5.
The initial orientation of the robot 0 being known, the evaluation of  can be expressed
by a limited development of order one of the expression of ! which gives:
(tn+1 ) = (tn ) + t_(tn) + o(t)
where o(t) ! 0 j t ! 0. This evolution can be expressed in the form of a sequence:
 =  ? t (q_ sin  ? q_ cos  )
n+1 n d x n y n

To study the convergence of this sequence, we consider the following function:


g() =  ? t (q_ sin  ? q_ cos )
d x y
which represents the evolution of the sequence
f () =  ? dt q_x sin 
The convergence of the function f () towards g () when t ! 1 is insured by the convergence
of the term q_y towards zero. Thus, if n+1 = f (n ) converges, this implies the convergence of
g(n ). f can be written:
f () = n+1 = n ?  sin n (3.9)
63
3.3. FROM TASK POTENTIAL TO SENSOR-BASED ACTION 64

with:
 ! cdkt j t ! 1
x_
If  veri es the condition (0 <   1), which is veri ed in the practice, then for all  in the
compact set A de ned by:
A = ] ? 2 ; 2 [
f () represents a lipschtzian (noted LipC )5 function for it veri es the following property:
jf (2) ? f (1)j  C j2 ? 1 j ; C 2 <+ (3.10)
According to the theorem of the xed value, the application f is contractant if and only
if it is LipC for at least one C 2]0; 1[, then f have one and only one xed point (i.e. x such
thatf (x) = x).
Proof: According to th nite increase theorem:
jf (2) ? f (1)j  j2 ? 1jMax
2A
jf 0()j
whence:
jf (2) ? f (1)j  j2 ? 1j(1 ?  Min
2A
j cos j)
the term  = Min
2A
j cos j is positive and superior to zero, then the previous equation becomes:
jf (2) ? f (1)j  (1 ? )j2 ? 1j
with C = 1 ?  2 ]0; 1[, which implies:
n !  j f () =  )  = 0 (3.11)
The property 3.11 that  converges towards  and that according to 3.9 on the page
before, this value must be zero.
Bounding of speed and acceleration: The control of the command point Pc must respect the
maximum velocity and acceleration constraints of the robot. According to equation 3.8 on
the preceding page, we can write these bounding relations by:
v = Mv (jq_ j)
! = d1 M! (jq_ j)
v_ = Mv_ (jqj + jq_ j)
!_ = 1d M!_ (jqj + q_ j)
This means that the bounding of the speeds is guaranteed by the bounded velocity of the
control point and same-wise for the acceleration.
5 A di erentiable lipschitzian function has bounded derivatives.

64
3.3. FROM TASK POTENTIAL TO SENSOR-BASED ACTION 65

Execution control:
The preceding formulation enabled us to prove the convergence of this action guided by the
Task Potential towards a robot state relative to the wall. Nevertheless it is oversimpli ed in
real execution context. In practice, the type of the sensor used may impose certain conditions
on the initial state of the robot. (This is the case of ultrasonic sensors.) Also, the wall to
follow may be composed of several segments. (Some may even be separated.) We will discuss
these points and develop solutions for them.

The sensor problem:

αm

Figure 3.12: Problem of the angle of approach of the wall.


Due to ultrasonic sensors specularity ( gure 3.12), a maximum angle in which to approach
the wall must be respected in the initial state of the robot. This angle must be maintained
under a maximum value m during the approach phase in order to guarantee its permanent
visibility. In fact, the rotation potential P given in the equation 3.4, contribute to the
control of this angle. The couple  issued from this potential is set to the inverse of that
generated by the y-component of the force ( gure 3.10 on page 60).

Problem of openings.
The consequence of this problem is directly on the attraction potential Px. An opening in
the wall corresponds to the end of a segment. The potential minimum of Px will be thus
placed on this vertex. The evident solution of this problem is to detect the collinearity of the
two segment around the opening (x 2.3.2 on page 40), and to approximate them by a single
one. This supposes the existence of a parameter that determines the maximum length of
an opening. Also is supposed the detection of the opening and both surrounding segments.
Some times (e.g. ultrasonic sensors) this is dicult to detect. In order to make the operation
more robust it is necessary to determine the di erent control parameters that enable the
speci cation of the form of action to realize. These parameters are naturally issues from a
level of planning that characterizes the behavior of the action and the conditions related to
execution. We present in chapter 4 a global de nition of di erent feedback actions in the
context of a system of navigation with uncertainty. We show equally several experiments in
cooperation with the planner PWU developed by [Bouilly 95a].

65
3.4. DISCUSSION 66

Collision avoiding:
One of the fundamental interests of the Task Potential formulation is the possibility of taking
obstacles into account permanently. The additivity of convex potentials enables us always
to associate a repulsive potential function of a minimum distance from the robot and to add
this potential to the Task Potential. The global convergence is no longer insured in the case
when local minima appear but the task becomes more feeble.
In order to introduce the collision avoidance in this action, we reconsider the de nition of
the angular sector
made for the action Parallelize. We de ne the distance de : AO
 ! <+
that returns the shortest distance between the robot and the objects
 . We associate to this
distance a repulsive potential that insures non-collision.

Experimentation:
Figure 3.13-I- show the execution trace of the action Wall Follow. The follow distance is
xed to half a meter. The linear and angular speed pro les as well as the distance to wall
are presented in gure 3.13-II-. We can note that the angle of approach is constant which is
due to the equilibrium between the couples  and y . In this example the gain constant k
is more important than ky . In gure 3.14-I-, -II-, we present the same example but for an
angle of approach which is more important. consequently the correction in distance is faster.
We can also note the important angular acceleration generated by the couple  near the
follow distance.
Figures 3.15, 3.16 show two examples of wall follow in presence of obstacles. Due to the
fact that the rst obstacle ( gure 3.15 on page 68) is found near the wall, it is practically
considered as a part of a segment of the wall. The second obstacle on the side opposite to
the wall obliges the robot to violate the follow distance in order to avoid collision. A local
minimum may occur with an obstacle whose position makes avoidance impossible.

Analysis:
In the practical context of the usability of this command, the recognition of the wall must
not be an ambiguous operation. As we have noted earlier, the sensor type and its degree
of perception impose an \correct" initial state of the robot relative to the wall. Also, the
constraints relative to sensors impose conditions on the form of the wall. fro example a
wall composed of segments with acute angles between them may be too constraining for this
action. We represent in chapter 4 how we resolve such problems.

3.4 Discussion
The formalism of the Task Potential enables the conception of relatively complex sensor-
based actions which increases considerably the capacity of the reactive level in the global
robot architecture and which makes execution more ecient. It guarantees the convergence
of realizable tasks by exploiting the properties of convex potentials. It is also capable of
permanently taking into account obstacles which makes execution more robust.
This formalism enabled us to realize several sensor-based actions other than those devel-
oped in this chapter:
Corridor Follow This action is an extension of the action Wall Follow. It consists to generate a

66
3.4. DISCUSSION 67

-I-
1.4
d
1.2
Velocities & Distance

W
1 V

0.8
0.6
0.4
0.2
0
-0.2

0 10 20 30 40

Time (secs)

-II-
Figure 3.13: -I- Execution trace of the action Wall Follow, -II- corresponding parameters
pro le.

67
3.4. DISCUSSION 68

-I-
1.4
d
1.2
Velocities & Distance

W
1 V

0.8
0.6
0.4
0.2
0
-0.2

0 10 20 30 40

Time (secs)

-II-
Figure 3.14: -I- Execution trace of the action Wall Follow, -II- corresponding parameters
pro le.

Figure 3.15: Collision avoidance during Wall Follow.

68
3.4. DISCUSSION 69

Figure 3.16: Local minimum during Wall Follow.

displacement along a corridor while minimizing its distance to the potential minimum.
Figure 3.17 shows the pro le of this action.
© Oper

Figure 3.17: Action Follow Corridor.


Maintain Position This action maintain the robot attracted to a certain position while avoid-
ing approaching obstacles6 . It is particularly convenient in multi-robot applications.
Lose obstacles This action consists to go away of all obstacles. This action is particularly
useful when the robot is in collision with obstacles in the model of the planner (sup-
posing a use of a grown robot model). In reality, the robot is near the obstacles but
not in collision.
In the di erent actions presented in this chapter, we have used simple generic potential
functions of di erent natures. We can de ne thus a certain number of basic potential functions
6 It is not an easy task to give a graphic presentation of this action!

69
3.4. DISCUSSION 70

which serve as primitives to be used in the de nition of a Task Potential. A system could
be imagined that builds potentials corresponding to a task by using the task de nition and
these primitives.
In the next chapter a sensor-based navigation system with uncertainty is presented. It
uses the di erent actions de ned in this chapter and proves their utility and eciency.

70
Chapter 4
Application to planning with uncertainty

In the context of planning, we presented in paragraph 3.1 the problem of cohesion between
execution and planning. The use of planning strategies based on uncertainty evaluation
represents an ecient solution that makes execution more solid. Several approaches were
developed in literature concerning the generation of execution plans taking into account
uncertainty[Alami 94, Bouilly 95a, Collin 95, De la Rosa 96]1.
In the context of this work, experiments were e ectuated of the navigation with uncer-
tainty system SB CM, from which a relation was established with the planner PWU in order to
validate the eciency of our di erent sensor-based actions.
Bouilly proposed [Bouilly 95a, Bouilly 95b] an approach based on the propagation of a
potential function in a bitmap taking into consideration the accumulation of uncertainty
related to the robot displacement. The method proposed a propagation strategy parallel to
the potential taking thus into account all the zone of possible relocalization and covering the
totality of free-space. A geometric analysis is then realized on the environment in order to
determine the possible displacements in the contact space. This analysis consider equally the
relocalization on the di erent vertexes belonging to this space. The planner (PWU) generated
thus a sequence of displacement primitives containing sensor-based actions, relocalizations
and free-space movement.

The planner PWU


Here, we present brie y the strategy types produced by the planner PWU in order to specify
the context of the following navigation system.
Figure 4.1 present a planning problem and three action sequences that demonstrate the
interest of the di erent planning strategies. The rst strategy shows that the goal is unattain-
able by free-space movements because of the evolution of uncertainty (sequence 1j). Never-
theless, the existence of an absolute localization zone (roof camera, : : : ) o er the planner the
possibility to generate sure displacement (without increasing the uncertainty) in this zone and
thus enables to join the goal by free-space movement (sequence 2j). Another strategy con-
1 We do not detail these di erent approaches since this work is more about sensor-based motion than
planning.

71
Chapter 4. Application to planning with uncertainty 72

3 3

Init
3

2 1
3
2 Goal
2

Absolut relocalization zone 1 Free space strategy


Position incertainty 2 Absolut relocalization strategy
Position incertainty 3 Sensor-based actions strategy
Motion Envelop Robot circular envelop

Figure 4.1: PWU: planning strategies.

sists of using movements in contact-space which implies sensor-based actions. The decrease
in uncertainty apported by these actions makes it possible to reach the goal safely.
The method being based upon the propagation of a numerical uncertainty potential in
a bitmap, the path produced is initially in the form of a sequence of con gurations. These
are labeled according to the nature of space to which they belong (free or contact space).
This information enables the deduction of a set of actions composing the plan (free-space
movement, sensor-based motion, relocalization, : : : ) and to provide the di erent parameters
necessary to their execution.

4.0.1 De nition of the system SB CM


The robot evolutes in an interior environment which is structured and known. Several ele-
ments such as localization zones, corridors, walls represent a source of potential relocalization
which the planner uses to make path nding strategy more robust.In the context of a mission
translated by a control level in several actions of the type Go to Goal ( gure 4.2 on the next
page), The planner generates a sequence of movement primitives (Execution plan) composed
of:
 Free-space displacement.
 sensor-based displacement.
The plan generated is read by a level of sequencing and action interpretation (sequencer)
by a request (C), coming from a control level. The sequencer begins the execution at the
reception of a request of type (S) and interprets the results of each action. The execution
state in the level (SBM) is signaled to the sequencer by nal answers containing the action's
result2 . Nevertheless, the controller may send to the sequencer other concatenation requests
to the plan (C) or abandon of execution by the request (A).
2 This mechanism in brie y presented ion annex A.

72
Chapter 4. Application to planning with uncertainty 73

Mission
Environment
Robot Answer
Controller

Answer S/C/A

Sequencer PWU

Answer Action Plan

SBM
Command Request
Answer
Motors Lecture

Figure 4.2: De nition of the system SB CM.

It is necessary now to de ne the di erent actions between Planning and Execution.

Actions de nition
y y

y
y
x x
∆Θ y ∆Θ
x
∆Θ ∆L r y
x

x
x

a b c
Figure 4.3: Free-space displacement.
Free-space displacement
SBC TRUN(): is a pure rotation command around the center of the robot which is
equally the middle point of the wheels axis ( gure 4.3-a).
SBC MOVE(; L): is a relative displacement command. The rotation is executed
before the displacement and the sign of the parameter L determines the direction of
the movement (4.3-b).
SBC ARC(; r; u): is a relative displacement command on an arc of circle of radius r,
 determines the angular variation and u the direction of the movement (4.3-c).
These di erent actions belong naturally to the basic functionality of our experimental
robot Hilare architecture (see annex A).
Sensor-based actions
SBC MOVE TO CONTACT( Lmax ; dc; d; u): brings the robot from free-space to contact space
(x 3.3.1 on page 51). Lmax is the maximum distance permitted for the robot to cover

73
Chapter 4. Application to planning with uncertainty 74

y
y
y
x
L_max θ
x side Θ max

dc x

a b
y y

x L1 L2 x

d_w

y
x
∆Θ

y
x

c
Figure 4.4: Sensor-based actions.

without nding contact, dc determines the contact distance with an error d , u is the
direction of the movement ( gure 4.4-a).
SBC PARALLELIZE (min ; s): in a command in contact space to be parallel to an object
(a wall) which represents contact (x 3.3.2 on page 56). min expresses a minimal
rotation before getting parallel and s determines on which direction the robot should
have the object (4.4-b).
SBC WALL FOLLOW (walls): is an action composed of a sequence of wall follow by a list
walls. The structure of each element of this list is de ned by:
SBC ONE WALL (s; dw ; L1; L2; vertex): s determines the side on which to nd the
wall and dw is the distance to respect. L1 is the distance to move before the
apparition of the rst vertex while L2 is the maximum distance to move before
nding a vertex gure 4.4-c). Vertexes are described by a structure vertex.
SBC VERTEX (type; ; action): type 2 [Convex; Concave; None] determines the
type of the vertex and  the angle between the surrounding two walls. action 2
[End Follow, Switch Wall, Switch Side] characterizes the behavior of the com-
mand associated to a vertex.
The parameters L1 ; L2 re ect in a direct way the evolution of the uncertainty related to
the displacement along the wall. L1 expressed the displacement during which, taking
into account the uncertainty, the robot can never detect the vertex. In the same way
L2 expresses the displacement at the end of which the robot has completely passed the
vertex.

74
Chapter 4. Application to planning with uncertainty 75

Related to the de nition of a vertex, the type None is used in case of an associated action
corresponding to a dynamic change of side which corresponds to the action Switch Sides.
On the other hand the action End Follow is always associated to the last wall on the
list.
An execution plan is thus a sequence of di erent actions The control parameters cor-
respond to error answers which come from execution level SBM and are interpreted in the
control level.
Particularly, in what concerns the action SBC WALL FOLLOW this de nition requires an
adaptation of the action Wall Follow with respect to the one presented in paragraph 3.3.3
on page 60. We will develop in the next paragraph this adaptation in the formalism of Task
Potential.

Wall Follow action adaptation


The most important problem to treat concerning this adaptation is the chaining of two walls.
The attraction potential (equation 3.4 on page 61) must not have its minimum on the vertex
and a switch potential must be realized to change walls.

Concave vertex Convex vertex

Figure 4.5: Vertex types.


The case of a concave vertex is the most simple. The two segments and the vertex are all
visible. In the convex case the vertex is less easily modeled, for the second segment is invisible
( gure 4.5). The structure (SBC VERTEX) issued from the planner enable the prevision of a
segment change as well as the matching of the planner's data with the real environment.
The solution of this problem depends deeply upon the sensor used. If the localization of the
vertex is relatively precise an evident solution will be the use of the distance from the robot
center to this vertex as the parameter to govern during angular variation. Thus
Psw = (dc!s ? R)2
with:
R = dw + E2
where dc!s is this distance and R represents the xed distance to maintain. The value of R
is but the sum of the follow distance and half the width of the robot.
The convex composition of the potentials is as usual done using a scalar transition func-
tion. If we call the potential associated with the wall follow Pwf , the transition between Pwf
and Psw must be realized at the instance when the the vertex abscissa becomes null in the
robot frame. The transition function related to this change depends on the projection of the
vertex position on the x-axis. This function is given by
 k e?xs(t); ifx (t) > 0;
fwf (t) = wf 1
s
elsewise;

75
Chapter 4. Application to planning with uncertainty 76

where xs (t) represents the abscissa of the vertex at time t, kwf is a positive gain and  is a
time constant that determines the transition slope. The convex composition is thus:
P = (1 ? fwf (t))Pwf + fwf (t)Psw
In the same way the transition between this phase and the next wall follow is e ectuated
by the function:
k
fsw (t) = sw (1 ? e?j?(t)j ) ofj ? (t)j > 0;
0 elsewise;
with: Zt
(t) = !(t)dt
0
fsw (t) is a positive monotonous and irreversible function of time, ksw is a positive gain and 
is the same as before. (t) represent the angular variation realized at time t. The instance
0 in this integral is the moment when xs (t) becomes zero.
In case the dynamic localization of the vertex is not realizable, its detection is an event
done only once. We de ne thus the potential:

Psw = (((xx??xx0))2++((yy??yy0))2?+R2)
2 2 22
0 0 r
whose minimum is on a circle with center (x0; y0) and radius R ( gure 4.6 on the next page3).
The circle center occupies the position of the vertex at the moment it was detected and the
radius R has the same value given previously. The denominator enables this potential to
increase explosively for value near the vertex and  is a positive constant that permits to
adjust the gain between the potentials Pwf and Psw . The transitions between the potential
functions is done the same way as before.
This method supposes, of course, a xed local frame at the moment of vertex detection
in which the robot position is updated during the transition phase. The vertex should be
localized at the moment when its abscissa is the closest to zero in this frame. Equally, an
error on this localization or on the parameter  can constrain the execution during this
phase. Still the non-collision potential together with wall follow potential can compensate
the localization error.
Attraction: In the beginning of this paragraph, we have pointed out the problem relative
to vertex attraction potential. In fact, the potential Px as de ned in paragraph 3.3.3 is
necessary for the termination of the action. (For the last wall in the sequence). Nevertheless,
the distance associated to this potential in the case of consecutive walls is the remaining
distance in order to cover a distance equal to the sum of the lengths of the walls.
Another solution is void-attraction. For this we use a de nition similar to that of the
distance d presented in paragraph 3.3.1.
Vertex detection: We will develop more thoroughly the di erent aspects related to perception
in annex B. In fact this aspect is narrowly related to the sensors of which we will consider
two cases: laser and ultrasonic.
3 The gure shows the potential on an interval d =  ! R, d being the distance to the wall.

76
Chapter 4. Application to planning with uncertainty 77

Wall changement

Wall follow

Figure 4.6: The distribution of follow and wall switch potentials.

4.0.2 SB CM system integration


In what follows we do not reclaim a contribution to a control architecture. A minimal system
which was necessary for the experimentation of the navigation system is simply presented.
We present in annex A more profoundly the concept of the architecture of generic control
[Giralt 93, Chatila 93, Alami 93a, Fleury 94] in which we integrate our di erent contributions.

Actions sequence control


As shown in gure 4.2, the controller receives a mission (e.g. Go the the co ee machine) in
a given environment. This mission is translated into a sequence of tasks of type Go to Goal.
To each task, several parameters are a ected:
Environment: The environment model is completely known and is transmitted to the planner
with its associated uncertainty. The need for a relation task $ environment is due to
the need of several environment models to realize a mission4 .
Uncertainty: This denotes uncertainty values related to start and goal positions of the robot.
That associated to the start position concerns only the rst task and is issued an
absolute localization realized by the robot before the mission, while that associated
to the goal position is imposed by the controller in function of the topology of the
environment. This value is taken to be the start position uncertainty for the following
task.
Divers parameters: These are several parameters which characterize the uncertainty evolu-
tion for the robot evolution in position and orientation as well as di erent execution
4 For example: For to go the the co ee machine an come back, 40 actions are realized and more than 70
meters are covered.

77
Chapter 4. Application to planning with uncertainty 78

constants such as clearance distance and minimum angular variation, : : :


When it receives an answer from the planner, the controller sends a request of type (S) to
the sequencer to start the execution. Nevertheless, the controller may continue the generation
of tasks for the rest of the mission by sending concatenation requests of type (C).
As for the sequencing of the plan, each action is interpreted by th sequencer and send to
the corresponding execution module in the level SBM (The module notion will be resented
in the annex A). The level SBM sends the nal reply to present the balance of the execution.
In case of error, this reply is passed to the controller and the sequencer is suspended.
This brief presentation permits us to present several experiments which demonstrate the
eciency of our di erent sensor-based actions and show the advantages of this navigation
method.

Experimentation
Mission: LMS5
Here we show the e ect of taking into account the uncertainty in the navigation strategy.
The mission consists in moving the robot from the point Init to the point Goal. The start
uncertainty being small the planner generate a sequence of displacements in free-space ( gure
4.7a).

1 Move1( = 1:05; L = :64)


SBC MOVE Move
2( = 0:51; L = :87)
2 SBC MOVE TO CONTACT(Lmax = :7; dc = :15; d = :17; Foreward)
3 SBC PARALLELIZE(min = 0:6; Right)
4 SBC WALL FOLLOW(Right; dw = :51; L1 = 2:86; L2 = :67; Convex; End Follow)
Move1( = 0:00; L = :43)
Move2( = 0:90; L = 1:72)
5 SBC MOVE Move
3( = 0:76; L = 1:13)
Move4( = 0:93; L = 0:65)
Table 4.1: LMS: Actions sequence.
Starting from the goal position with the goal uncertainty, the return to the point Init is not
possible by only moving in free-space, the uncertainty being greater. The planner strategy
is to use sensor-based actions for surer movement ( gure 4.7b). Note that the planner PWU
uses a circular model for the uncertainty as well as for the robot. Table 4.1 shows the sequence
of actions in the return plan.
We have repositioned the robot near the point Goal and have given it the same uncertainty
value it had at this point. Asking now the return to point Init with a smaller uncertainty, gure
4.7c show the planner strategy to arrive with the imposed uncertainty. Note the increase in
the number of sensor bases actions with respect to the displacement in free-space. Note on
the other hand the di erence between the drift of the model and the ultrasonic measures on
the rst wall in both cases: gures 4.7a and 4.7b).
Mission: HVL6
5 LMS: From French \Longuement, Mais S^urement".
6 HVL: Form French `Hilare Va Loin.

78
Chapter 4. Application to planning with uncertainty 79

This mission realizes a relatively long displacement. Figure 4.8a shows the rst part of
this mission.
The robot, before the panning phase, is localized by an extern instrument. (A camera
on the roof localized a speci c motif placed on the robot.) This task was to go from the
con guration A to the con guration B. Table 4.2 shows the actions sequence generated by
the planner.
1 SBC MOVE( = ?1:58; L = 1:74)
2 SBC TURN( = :87)
3 SBC MOVE TO CONTACT(Lmax = :75; dc = :07; d = :1; Foreward)
4 SBC TURN( = 0:34)
5 SBC ARC( = :35; r = 1:05; Foreward)
SBC WALL FOLLOW
6 Wall1(Right; dw = :34; L1 = 2:6; L2 = :87;  = ?1:51; Convex; Switch Wall)
Wall2(Right; dw = :34; L1 = 5:22; L2 = :38;  = ?1:57; Convex; Switch Wall)
Wall3(Right; dw = :34; L1 = :29; L2 = 0:;  = 0:; None; End Follow)
7 SBC ARC( = :34; r = 1:05; Foreward)
8 SBC TURN( = :43)
9 SBC MOVE TO CONTACT(Lmax = :27; dc = :07; d = :1; Foreward)
10 SBC TURN( = ?:43)
11 SBC ARC( = ?0:34; r = 1:05; Foreward)
12 SBC WALL FOLLOW
Wall1(Left; dw = :34; L1 = 14:11; L2 = 2:70;  = 1:57; Convex; End Follow)
13 SBC MOVE( = 0:; L = :43)
14 SBC ARC( = 0:34; r = 1:05; Foreward)
15 SBC MOVE MoveMove1 ( = ?0:02; L = :60)
2 ( = 0:46; L = :27)

Table 4.2: HVL: go action sequence.


Note the important ratio of the distance covered by the sensor-based action to the total
distance in gure 4.8 on page 82a. Also note the error e ectuated with respect to the model
(region \Note1" on the gure) and with respect to the position apparent in the drift of the
measures relative to the model.
The rst important action in this gure is the follow of three consecutive walls. The
detection of the vertex and the passage from one wall to the other are done dynamically.
This was possible because of the continuous composition of potentials. During the second
follow action the robot avoids an obstacle when it encounters the dicult passage of a door
(\Note2") not integrated in the model.
Table 4.3 contains the return plan and gure 4.8b show the track of the corresponding
execution. Note the de nition of the number of actions in this plan which is due to the
presence of three visible and localizable vertexes.
Mission: HVTL7
7 HVTL: From French \Hilare Va Tres Loin".

79
4.1. CONCLUSION 80

1 SBC TURN( = ?2:60)


2 SBC MOVE TO CONTACT(Lmax = :79; dc = :21; d = :1; Foreward)
3 SBC TURN( = ?0:75)
4 SBC ARC( = ?0:56; r = 1:05; Foreward)
SBC WALL FOLLOW
Left; dw = :34; L1 = 16:62; L2 = 1:57;  = 1:57; Convex; Switch Wall)
5 Wall1 ((Left
Wall
2 ; dw = :34; L1 = 4:83; L2 = :77;  = 1:51; Convex; Switch Wall)
Wall3 (Left; dw = :34; L1 = 1:35; L2 = 0:;  = 0:; None; End Follow)
6 SBC ARC( = ?0:56; r = 1:05; Foreward)
7 SBC MOVE( = ?0:22; L = 2:87)
Table 4.3: HVL: Return actions sequence.

This mission shows the link between the task and the model environment. The controller
uses two models to compose this mission. Figures 4.9 on page 83a, b show the execution of
this mission.

4.1 Conclusion
The di erent sensor-based actions developed in the Task Potential formalism created a rich and
solid basis to establish a robust navigation system. The planning, especially with uncertainty,
and the primitives set we have de ned, were an ecient unit on which relatively complex
displacement tasks were and can be built. We have pointed out by numerous experiments
the simplicity and thus the eciency of the realization of a displacement task in di erent
environments by the bias of our navigation system.
Moretheless, these di erent sensor-based actions were put in service in the context of
Project Inter-prc CHM, PRC-IA thus demonstrating, via an important number of experiments,
its eciency and exibility.
From the point of view of construction, we would like to emphasize the sensibility of this
approach to the several parameters attached to forces (e.g. proportional gains, dissipation,
: : : ). Nevertheless, The choice of these constants is not wholly empiric being for the most
part dependent upon each other. Also the domain of each variable on which depend the
forces is completely determined by the robot and sensor limits. Still we think it important
to try optimizing th parameters in function of these limits and of the nature of the task.

80
4.1. CONCLUSION 81

© Oper

RIA (0, 0)
Junior

Init
Hilare2−bis

Goal

© Oper
-a-
RIA (0, 0)
Junior

Init
Hilare2−bis

Goal

© Oper
-b-
RIA (0, 0)
Junior

Init
Hilare2−bis

Goal

-c-
Figure 4.7: Experiment LMS.

81
4.1. CONCLUSION 82

© Oper

RIA (0, 0)

Hilare2−bis

Note1

Note2

© Oper
-a-
RIA (0, 0)

Hilare2−bis

Note1

Note2

-b-
Figure 4.8: Experiment HVL.
82
4.1. CONCLUSION 83

© Oper

© Oper
a

b
Figure 4.9: HVTL: Execution trace.

83
Part III

Dynamic path modi cation

84
Chapter 5
The elastic band

5.1 Introduction
We will develop in this chapter a new way of combining planning and reactivity. As we have
seen in chapter 2, the execution of a planned trajectory should be realized in a reactive
system to avoid collision. This represents e ectively a common solution to the problem. In
our approach the robot was always obliged to minimize the drift from the original trajectory
even while avoiding obstacles.
Di erent approaches exist in the literature. Krogh and Thorpe [Krogh 86] proposed
to replace the planned trajectory by critical points. The arti cial potential eld method
[O. Khatib 86] is then applied to move the robot between these points. The drawback of this
method is that the robot does not move on the original trajectory, which makes robot control
between such points more dicult.
Choi introduced [Zhu 89] a channel concept to represent the environment. A channel
is de ned by a sequence of adjacent con gurations in free-space joining the initial and the
goal con gurations. A potential eld is de ned to guide the robot along the channel to the
goal position. Unfortunately, the out-line construction of channels prevents the taking into
account of subsequent changes in the environment. (e.g., if all the obstacles disappear the
robot will not go straightforwardly to the goal.) Also, the channel being constructed before
execution, the evolution of the environment may render its boundaries too constraining.
In fact, this last point is an important problem in the control architecture of a robot.
The liberty of the reactive system depends on that given by superior levels in the control
hierarchy. It is not always recommended for the robot to drift from its trajectory to go in a
direct line to the goal even though it may be possible and realizable. (This is true for example
in a multi-robot coordination). We will suppose in this chapter and the next the possession
of a total liberty of movement in the free-space. When the obstacles are immobile, the class
of homotopy of the trajectory is of course preserved.
In this context, Quinlan and Khatib [Quinlan 93, Quinlan 92] proposed a dynamic trajec-
tory modi cation concept called the elastic band, which consists in maintaining a permanent
exible path between the initial and goal con gurations. Here, a path is a sequence of con g-
urations in free-space. Internal forces are de ned on such sequences to optimize the path and

85
5.2. THE ELASTIC BAND 86

guarantee its connectivity. External forces, due to obstacles, are applied to keep a collision-
free path. Thus, global information about the elastic band evolution have an e ect on the
local behavior of the robot. Being de ned for holonomic robots, an implementation of the
original elastic band method proved to be inadapted to non-holonomic mobile robots. We
have thus tried to adapt it to such robots. In this chapter we present a modi ed method and
point out its advantages and drawbacks. Then we introduce the notion of a bubble. In the
next chapter, we present a new formalism of this concept in a Reeds & Shepp metric system
taking into account the kinematic constraints of the robot.

5.2 The elastic band


We will give in this paragraph a brief presentation of the formalism of the elastic band. The
complete details are developed in [Quinlan 95].
De nition: The elastic band is a exible entity that can be deformed by applying internal
and external forces on it. It is represented in the con guration space by sequence of connected
con gurations.

Physical model of the elastic band


Let q be a vector of dimension n representing the con guration of the robot in the con-
guration space C . Let p(s) : [0; 1] ! C be a continuous parameterized curve such that
p(0) = qs; p(1) = qg, where qs; qg are the initial and nal con gurations of the curve.
Suppose now that this curve represents a deformable solid where each value s 2 [0; 1]
corresponds to an in nitismal particle. The force applied at each moment on the particle s
is given by the function:
F(s) = Fint(s) + Fext(s)
where Fint ; Fext are the internal and external force functions respectively. These forces are
de ne by:

Fint(s) =  kp(s)0k (s)


Fext(s) = ?rPext(p)
where is a positive elasticity constant, (s) is the curvature of the curve at s and Pext a
potential function de ned on the space C . The internal and external forces are issued from
potentials which are functionals (i.e. functions of functions) of the elastic band p(s). These
potentials are given by:
Z1
Pint[p] =  kp0k ds (5.1)
Z1
0
Pext[p] = Pext ds (5.2)
0
Quinlan proposes to add a restriction force to prohibit a particle from moving the long
of the band. In fact, the displacement of particles in these directions in useless due to the
86
5.2. THE ELASTIC BAND 87

fact that this does not change the energy of the elastic band. This phenomenon occurs when
some zone have a greater energy than the surrounding ones. The restriction force is given by:

Fconst(s) = ? Fext0  2p p0
0
kp k
This force is necessary only to constrain the movement of particles along the elastic band
and have no e ect on the energy of the band. This is why they cannot be derived from
potentials.
Finally, the resultant force on each particle generates a displacement proportional to this
force. This is written as:
@ p / F:
@t
The movement of particles must always guarantee the connectivity of the band. For this,
a procedure of creation and elimination of particles in put in place.

Discrete elastic band model


The previous representation is a formalization of a theoretic model of the elastic band. In
reality, the elastic band is implemented in a discrete \bitmap". The internal and external
forces in the preceding model are issued from functionals but when implemented they become
functions and the forces are then deduced by the classical operator r. We will develop in
this paragraph such a discrete implementation.
Suppose that the elastic band is a nite sequence of m particles whose con guration
vectors are q1; : : : ; qm. The two types of forces are:
The internal force:

qi?1 qi

Fint

qi+1
Figure 5.1: The internal force of contraction.
This force generates a contraction between particles. The corresponding potential is
given for the continuous model by the equation 5.1 on the preceding page. This internal
potential becomes:
mX
?1
Pint(q1; : : : ; qm) =  kqi+1 ? qik
i=1

87
5.2. THE ELASTIC BAND 88

The contraction force exercised on the particle qi is then the negative gradient of this
potential on qi which gives:
 q ?q q ? ? q 
Fint(i) =  i+1 i i 1 i
kqi+1 ? qik + kqi?1 ? qik
where 1 < i < m, considering the con gurations q1 et qm xed.
This equation expresses the nature of the (uniform) stress along the band. Each particle
tries of attract its two direct neighbors
The external forces:
If  is the distance between two successive con gurations (which correspond the s)
the potential given by the equation 5.2 on page 86 becomes:
X
m
Pext(q1; : : : ; qm) = Pext(qi):
i=1
This potential depends linearly on  which could have a unitary value. The potential
Pext is chosen to satisfy the conditions of a repulsive potential (x 1.4 on page 9). It is
of the form:
 kp (d ? d )2
if d < d0 ;
Pext(q) =
0
2 0
else-wise.
where kp is a positive repulsion gain. The distance d depends on the con guration q
and expresses the shortest distance between it and the obstacles. The force associated
on this potential is then:
 ?k JT (d ? d ) @d
if d < d0 ;
Fext (q) = p x 0 @x
0 else-wise.
where x is the nearest point on the obstacles relative to the robot occupying the con-
guration q and Jx T is the Jacobian matrix associated to the point x. The force Fext
is thus proportional to the value (d ? d0) and is ported by the unitary vector @@dx 1 .
The forces exerted on the band being de ned, we characterize now the movement of each
particle exposed to these forces.

The elastic band deformation


The elastic band is deformed by moving its particles one at a time. Consider a particle at
the con guration q exposed to a force F. It is displaced in the direction of the force using a
gain factor  in the following way:

q0 = q + F (5.3)
This method of displacement is an explicit application of the method of Euler which does
not guarantee the stability of the band. Quinlan [Quinlan 95] proposes a method of repetitive
1 This vector is only unitary if the distance is Euclidean or normed.

88
5.3. THE MDT 89

minimization to choose one of the best con gurations of the neighborhood. The minimization
here concerns the external potential energy. Such a procedure is costly in time and may loop
inde nitely. We will present an implementation not sensible to this problem.
Moretheless, the movement of a particle should guarantee the connectivity of the band
as well as the non-collision of the new con guration. A rst implementation considered the
movement in a regular bitmap. This implied that the distance between two particles should be
strictly inferior to 2 . Consequently, if a particle e ectuates a displacement that separates
it from its neighbor a new particle is created in an intermediate con guration. Thus the
connectivity is respected. In the same way if the new con guration of a particle is the same
as one of its neighbors, the particle is eliminated.
In implementing the bitmap version of the elastic band we have supposed a circular robot.
gure 5.2 on the next page shows the e ects of the di erent force applications. The initial
trajectory is given by a planner (5.2-a). This trajectory is optimized and smoothed once the
internal and external forces are applied (5.2-b, -c). The band is deformed by the presence
of unexpected obstacles which could be eventually movable (5.2-d). Figures (5.2-e, -f) the
concatenation and the optimization of the new trajectory while the band is deformed to avoid
an obstacle.
It should be noted that the optimization and the deformation of the band does not change
the homotopy class of the initial trajectory. In fact the liberty of deformation of the elastic
band must be controlled. It depends greatly on the position of the detected obstacle and on
the current position of the robot on the band. In practice, the localization of an obstacle
in done in a position relatively near the robot, thus deforming the band. Nevertheless, the
violation of the clearing distance which is expressed by an increase in the internal energy of
the band expresses a failure. On the other hand if the perception enables the localization of
obstacles away from the robot, the consequent deformation propagates the long of the band
and modi es eventually the execution.
Discussion The previous formalism of the elastic band enables the optimization and the
execution of a holonomic trajectory in an ecient collision-free way. Figure 5.3 on page 91
shows the real form of the elastic band issued from this implementation. In fact we consider
only the position (x; y ) of a mobile robot. The band creates an optimized sequence of robot
positions which the execution may interpolate by some curve. One of the most important
advantages of the method is its reactivity to unexpected obstacles. Nevertheless, during exe-
cution or when concatenating a new trajectory, the deformation of the band must guarantee
that the positions generated may always be interpolated and executed. This is not the case
of the current formalism for the particles move in a holonomic way.
The problem related to the holonomic displacement of a particle has its origin in the
initial formulation of the method. An elastic object may be deformed, within its domain of
elasticity, in any shape or form. Particularly the curvature may not be continuous. To solve
this, we imagined a solid elastic band, in which the particles are subject in addition to the
contraction force to a resistance torque called MDT2 against bending just as that applied on
an iron bar. This model will be developed in the following paragraph.

89
5.3. THE MDT 90

-a- -b-

-c- -d-

-e- -f-
Figure 5.2: The di erent states of the elastic band. -a- The initial trajectory, -b- The appli-
cation of contraction forces, -c- The application of the repulsive forces, -d- The deformation
of the band in presence of an unexpected obstacle, -e- Concatenation of a new trajectory, -f-
Final state of the band.

90
5.3. THE MDT 91

© Oper

Figure 5.3: The robot con gurations on the elastic band.

ys
xs

Rs
C  Vi i
s qi

qi+1

Figure 5.4: The MDT between particles.

91
5.3. THE MDT 92

5.3 The MDT


Figure 5.4 on the page before show the action of MDT. Beginning with the initial position of
the robot, each particle exercise on its neighbor (qi) a torque (i ) around itself to bring it on
the arc of circle (C ). In fact, this torque is generated to minimize the angle  between the
vector Vi and the xs -axis. i must be null for ?    .
The application of MDT will push the band to maintain a minimum variation of curvature
along itself. In order to generate this torque, we de ne a potential function local to the particle
whose minimum is for jj  . Consider the variation of the angle  in the interval [?;  ]
and let q be the relative position of the particle exposed to the torque. This potential is:
Prdm(q)


? ?  

Figure 5.5: The distribution of the potential Pmdt (q).

k 2
Pmdt(q) = 0mdt (sign() ? ) ; ifelse-wise.
jj > ,

where  2 R+ represent the angle at which the potential becomes zero, kmdt is a positive
gain and sign : R ! f1; ?1g is a function returning the sign of . gure 5.5 shows the form of
this potential function. The parameter  is dynamically calculated in function of the o set
s between the two particles. For small values of s, the relation is given by:
 = R s
min
where Rmin is the steering radius expressing the maximum curvature along the band.
The application of the operator ?r on this potential gives us the torque to apply on the
con guration q which is:
 ?k
mdt sign()(sign() ? ) @ q ; if jj > ;
@
Fmdt = ?rPmdt(q) = 0 else-wise,
with
2 Material resistance torque

92
5.3. THE MDT 93


@ = 1 ? sin  :

@q s cos 

q
ys Vi Frdm
>0
 xs
 Frdm
<0
Rs q
Vi
jVij = s
Figure 5.6: The MDT force issued from the potential in function of .

@
@q represents the direction of the force vector Fmdt . Note that this force is perpendicular
to the vector Vi and that its direction depend on the term ?sign() ( gure 5.6). This force
corresponds to a torque that acts to bound the angular di erence . Similarly, we apply this
force starting from the end position in order to guarantee the goal orientation continuity.
All together, each particle is exposed to the following forces:
 A contraction force which tends to minimize the drift from a line segment joining the
two neighboring particles.
 A resistance force controlling the curvature at the present con guration.
 An external force due to obstacles guaranteeing non-collision.
Particles displacement
The di erent forces applied on the band are issued from potential functions. These forces
are thus conservative and have a periodic stability. To have an asymptotic stability we add
a dissipative term to the force. Thus each particle converges as well as the whole band. This
idea was previously proposed in [Quinlan 92], but in their context, the particle displacement
methods used is not stabilized by the addition of such a dissipative force. The reason for this
is the non taking into account of the speed of the particles.
In our case, we consider the displacement if a particle generated by the acceleration
resulting from the force resultant. Thus, we conserve the information on the current velocity
of a particle making the dissipative force e ect more real. The particle displacement becomes:

q0 = q + 21 Fdt2 + q_ dt (5.4)
where 2 R+ is a positive term expressing the mass and dt is the update period of the band
state. q_ is the current velocity of the particle and F is the bound total force applied on it.
This force is given by:
F(q) = Fint + Fmdt + Fext ? kv q_
where kv is the positive dissipative gain.
93
5.3. THE MDT 94

Discussion and results


We have realized a new implementation of this elastic band taking into account the real form
of the robot and using a polygonal representation of the environment. We would like to
attract your attention to the following points relative to this implementation.
Distance measures In the rst implementation, a distance map is propagated on the \bitmap"
in order to deduce to distance to known obstacles. The unexpected obstacles are dy-
namically detected and the associated distance is given by means of perception. At the
end of this section you may nd on the the experiments we have realized.
Using the virtual perception faculty developed in chapter 2, the obstacles distance
measures are now realized without the construction of the distance map. This enables
us to implementation the elastic band directly in the operational space and to take into
account the real form of the robot.
Elastic band deformation We have seen that the deformation of the elastic band must guar-
antee connectivity. Here connectivity is de ned by an over-lapping of circles covering
the robot on all the length of the band. These circles are of a xed radius.
Parameterization The parameterization of the band is based on the local curvature of the
con gurations. We have tested several parameterization algorithms and curvature cal-
culus (circles passing by three consecutive con gurations, spline approximation, Bezier
curves approximation). We will develop in paragraph 7.2 on page 123 the algorithm
adopted.
Figure (5.3) present the implementation of this new formalism of the elastic band.
Figure 5.3-a shows the rst construction of the (classical) band. The application of the
di erent forces including MDT transform this band into a non-holonomic trajectory exe-
cutable by the robot 5.3-b). Figure 5.3-c shows the band deformed because of an unexpected
obstacle. The position of the obstacle being away of the goal position, the band deformation
satis es the maximum curvature constraint. When this is not true, 5.3-d), the repulsive force
overrides the MDT and the maximum curvature is not satis ed. This problem is related to
the fact that the goal position is immobile which is recommended. Figure 5.3-e) shows a
possible solution by the generation of a cusp point and a second elastic band starting at this
point and reaching the goal.
We have tested several heuristic methods to resolve this problem (the generation of other
elastic bands sharing the same tangent at the junction points, the de nition of control points
and obliging the elastic band to path by them, : : : ). The application of these methods
shows that the elastic band formalism does not guarantee the curvature constraint when the
environment is rather encumbered.
Nevertheless, the robot Hilare2 which does not have a curvature constraint was used to
implement this method and test its validity.
On gures ( 5.3 on page 97) and ( 5.9 on page 98) the robot starts by modeling the
environment using a 2D laser section and approximating the data by segments ( gure 5.9
shows the laser points and the corresponding segments). These segments are projected on a
\bitmap" and are then grown. Figure 5.3-a shows the result of this step. Then a trajectory
is given to the elastic band joining the current position of the robot with the goal ( gure 5.3-
b). This trajectory is optimized and smoothed using the internal and external forces ( gure
5.3-c). Figure 5.3-d shows the state of the robot during nominal execution. The robot meets
94
5.3. THE MDT 95

© Oper © Oper

© Oper
-a- © Oper
-b-

-c-
© Oper
-d-

Solution

-e-
Figure 5.7: Integration of the MDT torque in the elastic band. -a- The holonomic elastic
band, -b- the application of the di erent forces and of the force MDT, -c- The elastic band
deformation under the e ect of an unexpected obstacle, -d- curvature violation when the robot
approaches the goal, -e- A possible solution.

95
5.3. THE MDT 96

an unknown obstacle after leaving the rst known obstacle. The ultrasonic measures are
dynamically injected in the \bitmap" producing thus a deformation of the band under the
e ect of the repulsive force ( gure 5.3-e).
Figure 5.9 on page 98 shows the di erent traces of the whole execution: laser points,
segments, robot position and ultrasonic echoes.

Elastic band implementation problems


during the experimentation period we have noticed, on the real robot, that the band formalism
lacks an important element related to execution control. We will show this with the help
of the following example: Suppose that the initial trajectory passes through an unknown
obstacle. During execution, when this obstacle is detected (which is a discontinuous event)
the con gurations that are in the obstacle are in collision. The band is deformed under
the e ect of the repulsive force exercised by this obstacle. Suppose now that this obstacle
has a position forbidding completely the passage. The band is blocked in this zone and the
con gurations who were in the obstacle rest in collision. This con rms that the band is not in
a valid state. It is then necessary to verify the validity of the next con gurations to execute
and to recognize such cases of failure. This problem may be treated di erently if produced
near the goal. In this case, it is possible to associate an important mass to the goal position
instead of considering it xed and then submit it to the various forces. Thus it will move
only when an obstacle enters in collision with the goal position3 .
During their works, S. Quinlan and O. Khatib [Quinlan 93, Quinlan 95] enriched their
method by the notion of bubbles and the use of a distance function. A bubble is the biggest
subspace in free-space reachable from a given con guration. The elastic band becomes a
sequence of connected bubbles which join the initial con guration with the nal con guration.
The basic tool in the de nition of a bubble is a distance function. Then, even though it is
de ned for a holonomic system (with an Euclidean distance), this notion remains suciently
general and altogether attractive, to be extended to non-holonomic systems at the only
expense of nding the adequate metric. This is the kernel of our motivation for the work
presented in next chapters.

3 We insist on the fact that this should be decided by the upper levels in the architecture.

96
5.3. THE MDT 97

-a- -b-

-c- -d-

-e-
Figure 5.8: Experimentation of the elastic band. -a- Bitmap construction, -b- Initial tra-
jectory, -c- Trajectory optimization and smoothing, -d- Initial elastic band, -d- Nominal
execution of the elastic band, -e- Elastic band deformation to avoid an unexpected obstacle
during execution.

97
5.3. THE MDT 98

Figure 5.9: Laser points, segmentation, ultrasonic echoes and execution trace.

98
Chapter 6
Nonholonomic bubble band

6.1 Bubble Band Concept


A bubble is de ned by its center and is the biggest free spheric (in its own metric space) subset
in the con guration space. A sequence of connected bubbles is sucient to restrict treatment
to free-space reachable by the robot. Otherwise, the use of bubbles guarantees collision-free
feasible paths.
Given n con gurations fpi gi=1:::n in free space such that the bubbles de ne around them
B(pi ) overlap:
B(pi ) \ B(pi+1 ) 6= ; i = 1 : : :n ? 1;
it is possible to construct a collision-free path joining the rst to the last (p1 and pn respec-
tively).
For example, for a holonomic point robot restricted to the plane, a bubble around a
con guration is the circle center at this con guration whose radius is the shortest distance
to obstacles.
Several examples are developed in [Quinlan 95] to illustrate the form of bubbles associated
to di erent distance functions, con guration spaces and robot forms. We develop here one of
these examples in order to clarify such an abstract notion.
Consider the case of a planar robot with rotation. It has three degrees of liberty. The
robot con guration is expressed by the vector (x; y; )T . Let d be the current shortest distance
to obstacles from the con guration q. If r is the radius of the circle containing the robot
( gure 6.1 on the following page). The general bubble construction scheme is the following.
From the expression of the movement of points on robot from one con guration to another,
a distance function is derived by taking the longest path traveled by any such point. The
bubble is then the set of con gurations whose distance is inferior to d.
Suppose the robot moves from the con guration q to the con guration p. It realizes a
translation followed by a rotation. During the translation, each point on the robot covers the
same distance which is the Euclidean distance between the points (qx ; qy ) and (px; py ), given
by:
99
6.1. BUBBLE BAND CONCEPT 100

q
dt(q; p) = (qx ? px)2 + (qy ? py )2:
During rotation, the distance covered by every point depends on its distance from the center
of the robot. Thus, the maximum distance is that of the most eccentric point, at a distance
r from the center. This covered distance is:
dr (q; p) = rjq ? p j:
The maximum distance covered by a point on the robot is the sum of these two distances.
The bubble B (q; d) is then de ne by:
B(q; d) = fp : dt + dr < dg:
A bubble

Obstacle

d 
y
Robot
r
x

Figure 6.1: A bubble for planar rotating robots.


The bubble in gure 6.1 is de ned to be the set of con gurations fpi g at a distance
inferior to d from the con guration q. If this bubble is in free space, all its con gurations are
accessible from q by collision-free shortest paths.
We now develop a second example which is a plotter arm with two degrees of freedom: the
polar coordinates  and  ( gure 6.2 on the following page).  is the length of the arm and 
is the rotation angle around the origin. Suppose the arm moves from the con guration q =
(q ; q)T to the con guration p = (p ; p)T by e ectuating a rotation and then a translation.
The distance covered by the extreme point which is the maximum distance is:
dr + dt = q jq ? pj + jq ? pj;
and the corresponding bubble is:
B(q; d) = fp : dt + dr < dg:
Figure 6.2 shows the bubble deduced for the plotter arm for three di erent distance values
di; i = 0; 1; 2. Note that the bubble form tends to a circle when the distance tends to in nity,
or when the initial value of  is zero.
In order to construct a bubble in the case of a car-like robot, we will introduce in the
next paragraph the metric space associated to this type of robots.
100
6.2. METRIC STRUCTURE 101

y
d0 < d 1 < d 2 d = d2
d = d1
d = d0
2
2 1 x
1

Bubbles

Figure 6.2: Bubbles for a plotter arm.

6.2 Metric Structure


Here, we present the metric space associated with car-like nonholonomic mobile robots having
a non-null turning radius R. A con guration of the robot is the triplet consisting of its position
and its orientation (x; y; )T de ned in the space R2 S 1. It has been proven that the shortest
path between two con gurations belongs to one of 46 simple sequences of at most ve pieces,
each piece being a straight line segment S or an arc of a circle C with at most two cusp points
j [Reeds 90] and a partition of the con guration space into domains each corresponding to
one path type have been achieved [Laumond 93]. Finally, the length of the shortest path was
proven to be a distance function
dcc : (R2  S 1)  (R2  S 1 ) ?! R+
providing, thus, the con guration space with a metric structure compatible with the robots
movement.
Afterwards, the problem of the distance between the robot and point and segment ob-
stacles was tackled and solved [Soueres 94]. The di erence between the distance between
two con gurations and the distance between a con guration and a point is that in the later
case the orientation of the end of the shortest path joining the con guration and the point is
irrelevant. This new distance
dcp : (R2  S 1)  (R2) ?! R+:
is not a real distance function on a space but a convenient operation relating two space. This
distance has three analytical de nitions in three regions of the space ( gure 6.3 on the next
page)
The x-axis and y-axis symmetry of these paths and domains makes it possible to study
only the rst quadrant. In this quadrant the paths, their end point coordinates and their
lengths are given the table 6.1, where l is a left turn, r is a right turn and s is a straight line
segment; The super- xes + and ? indicate forward and backward movements respectively
and the indexes are the parameters, angles for turns and distances for segments.

101
6.2. METRIC STRUCTURE 102

(1) C jC  S
2

(3) C jS
(2) C jC

Figure 6.3: Domains of accessibility

Path End point Length


 R cos u ? R(2 + d) sin u 
1j lu? l+ s+d Ru + R 2 + d
2 R sin u + R(2 + d) cos u ? R
 ?2R sin u + R sin(u + v) 
2j lu? lv+ Ru + Rv
2R cos u ? R cos(u + v ) ? R
 R sin v + Rd cos v 
3j lv+ s+d Ru + d
?R cos v + Rd sin v + R

Table 6.1: First quadrant con guration to point paths.

102
6.2. METRIC STRUCTURE 103

Consequently, the iso-distance balls were geometrically constructed [Vendittelli 96], and
a distance between a con guration and a line segment was then developed and expressed
analytically. This distance is noted
dcs : (R2  S 1)  (R2  R2) ?! R+ :
We have thus three distance functions. One, a true distance, is de ned on the con g-
uration space transforming it to a metric space; the second, a distance between points in
the real space and the con guration space; the last, a distance between segments in the real
space and points in the con guration space. The last two distances are used in calculations
between the robot and the obstacles.
y

S1

1j
S3
d
d
S2 3j

2j
v 2 v
u x

Figure 6.4: Distance to segment in the di erent domains.


Figure 6.4 shows the shortest paths from the origin of the con guration space to three
segments presenting thus the three kinds of con guration to point shortest paths.

© Oper © Oper © Oper

-a- -b- -c-


Figure 6.5: Di erent forms of the bubble and paths in the di erent domains.
Figures 6.5-a-b-c present the form of the bubbles and the paths corresponding to the
shortest distance in the three regions.
103
6.3. NONHOLONOMIC BUBBLE BAND 104

Discussion
Our objective is to reconstruct the elastic band by replacing the particles by bubbles compat-
ible with the movement of car-like robots. The use of these bubbles is the possible decrease
on the number of treated entities and the permanent and automatic existence of a feasible
path even if the band is deformed. In the next paragraphs we give the proof of this property
and develop the di erent parts of this new formalism.

6.3 Nonholonomic Bubble Band


We now reformulate the bubble band concept for a nonholonomic mobile robot whose corre-
sponding metric space will be noted
. We note
dcc :

?! R+;
the distance de ned on this metric space. We also note
dcp :
 R2 ?! R+ ;
the distance between con gurations in
and points in the plane. As usual, if A  R2 then
dcp (p; A) = min
x2A
d(p; x)
for all p in
.

6.3.1 De nitions and Properties


De nition 6.3.1 A bubble B (p; r) of center p and radius r is the set of con gurations at a
distance smaller than r from p
B(p; r) = fq 2
j dcc(p; q)  rg:
The greatest bubble around a con guration p, B (p) is de ned as follows:
B(p) = B(p; dcs(p; O))
where O is the set of segment obstacles.
Here we would like to draw your attention to an important point. The bubbles are de ned
in the con guration space R2  S 1 and are thus three dimensional even though the radius is
sometimes de ned using distances from two-dimensional objects such as points and segments.
Actually in the con guration space, a real space segment is represented as a face and a point
as a line.
A bubble may be of two types, movable or immovable. A movable bubble is a bubble
whose center can be modi ed according to the forces applied to it. An immovable bubble
keeps the same center throughout the execution (for example the start con guration or the
goal when it is xed).
A bubble is said to be smaller than another if they have the same center and if the rst
is wholly included in the second.
The biggest bubble around a con guration is de ned as B (p) = B (p; dcs (p; O)); where
O is the set of segment obstacles.
104
6.3. NONHOLONOMIC BUBBLE BAND 105

De nition 6.3.2 Two bubbles B (p; r) and B (q; s) are said to be connected if
B(p; r) \ B(q; s) 6= :
Proposition 6.3.1 Two bubbles B (p; r) and B (q; s) are connected if and only if
dcc (p; q)  r + s:
Proposition 6.3.2 Let B (p; r) and B (q; s) be two connected bubbles. The Reeds and Shepp
path, [p; q], connecting the two centers is wholly included in the union of the bubbles.

[p; q] x
B (q; s0 )
p

B (q; s)

B (p; r)

Figure 6.6: Path between to consecutive centers


Preuve If q is in the bubble B (p; r), then so is the path from p to q. Suppose then that q
is not in the bubble B (p; r).
Let s0 = dcc (p; q) ? r. B (q; s0) is the smallest bubble centered at q and connected to
B(p; r). In fact if there is a smaller bubble verifying this and if s00 is its radius then
dcc (p; q)  r + s00 < r + s0 = dcc (p; q)
which is impossible. On the other hand if B (q; s0) is not connected to B (p; r) then
dcc (p; q) > r + s0 = dcc (p; q)
which is as well impossible.
Let x be in the intersection of B (p; r) and B (q; s0). dcc (p; x) = r and dcc (q; x) = s0 ,
otherwise
dcc (p; q)  dcc (p; x) + dcc (q; x) < r + s0 = dcc(p; q)
which is also impossible. Thus
dcc (q; x) + dcc (p; x) = dcc (p; q):
And from the unicity of the shortest path we deduce that x is on [p; q].
Finally for every point y on [p; q], either
dcc (p; y)  dcc (p; x) = r
105
6.3. NONHOLONOMIC BUBBLE BAND 106

which implies that y is in B (p; r), or


dcc (q; y)  dcc (q; x) = s0
which implies that y is in B (q; s0). 

This proposition enables us to prove the existence of a feasible path from the initial
con guration to the nal con guration by nding a sequence of connected bubbles joining
both con gurations.

6.3.2 Forces
The forces applied to the bubbles are, as before, of two essential types. The external forces
due to the repulsion of the obstacles and the internal forces which work to keep the bubbles
connected, as long as possible, and optimize the form of the band.

Internal Forces
The internal forces are functions of the successive con gurations expressed using the metric
distance between con gurations. In this way the particularities of the con guration space
and thus of the robot constraints, being inherent to this metric are easily expressed.
How should the bubbles interact with each other? This is a crucial question because once
the inter-bubble interactions determined, they can be translated into potential elds, which in
their turn determine the internal forces of the bubble band. In this subsection B (pi?1 ; ri?1),
B(pi ; ri) and B(pi+1 ; ri+1) are three consecutive bubbles in a bubble band.
 Firstly, adjacent bubbles should remain connected. That is
d+cc (pi) = dcc (pi; pi+1)  ri + ri+1 ? c : (6.1)
for some small c 2 R+ .
 Secondly, adjacent bubbles should not overlap too much lest the band tends to be over
charged uselessly with bubbles, with consequent e ects on the eciency of the method.
Thus
d+cc (pi) = dcc (pi; pi+1 )  ri + ri+1 ? o ; (6.2)
for some small o 2 R+ greater than c .
 Finally the band should tend to contract. Away from the obstacles it should even be
a straight band. Thus a middle bubble should try to place itself on the path joining
its two neighbors. If [pi?1; pi+1 ]  R2  S 1 is the path between the centers pi?1 and
pi+1 then:
dcc (pi ; [pi?1; pi+1])  ;
for some small  2 R . More explicitly, If p [pi?1; pi+1 ] : [0; 1] ?! R2  S 1 is a
+
parameterization of [pi?1; pi+1 ], pi should be close to the point
p [pi?1 ; pi+1](~ri)
on the path, where r~i = ri?r1i+?r1i+1 is the radius-weighed barycenter of pi?1 and pi+1 .
Thus:
d cc (pi ) = dcc (pi ; p[pi?1 ; pi+1](~ri))  : (6.3)

106
6.3. NONHOLONOMIC BUBBLE BAND 107

Using the constraints 6.1 to 6.3 and noting d?cc (pi ) = d+cc (pi?1 ), the following potential
elds are deduced
  
Pf (pi) = K2f d+cc(pi) ? (ri + ri+1) + c d+cc(pi) ? (ri + ri+1) + o
  
Pb(pi) = K2b d?cc (pi) ? (ri?1 + ri) + c d?cc(pi) ? (ri?1 + ri) + o (6.4)
Kc  2
Pc(pi) = 2 dcc(pi) :
where, Kf , Kb and Kc are positive constants. Pf is called the forward connection potential,
with next bubble, Pb the backward connection potential and Pc the contraction potential.
Let Pi the total internal potential be:
Pi = P f + P b + P c :
Then, the internal force is
Fi(pi) = ?rPi(pi):
As an example, let us calculate the force due to the forward connection potential
 
?rPf (pi) = d+cc(pi) ? (ri + ri+1) + c +2 o @@p d+cc(pi)
i
The rst factor is the magnitude of the force. This magnitude becomes null when the
distance
d+cc (pi) = (ri + ri+1) ? c +2 o (6.5)
is in the middle of the region between disconnection and overlapping. The second factor is
the direction of the force. It will be discussed in the subsection 6.3.2.

External Forces
The bubble band should alway evolve in free-space. In presence of mobile or immobile obsta-
cles some interaction should take place to guarantee a collision-free band. These interactions
are performed by external repulsive forces, function of the distance to obstacles. These forces
can be simply issued from repulsive potential elds such as developed in chapter 1. The
repulsive potential is thus:
 1
Pr(pi) = P0;r (pi) + Pr (pi); ifotherwise,
dOcs (pi )  dc ,
2

where
Pr1(pi) = K2r (dOcs(pi) ? dc)2;
K
 1 1
2
1
Pr (pi) = 2 dO (p ) ? d
2
cs i c
with Kr  K1 . Here dOcs (pi ) = dcs (pi ; O), O being the set of obstacles. This choice was
motivated by two reasons. The rst part, Pr1, which dominates near the equilibrium point,
generates a linear force in that region which easily tuned. The second part, Pr2, however,
insures non collision near the obstacle border. In fact, it tends to 1 as the band approaches
this surface.
107
6.3. NONHOLONOMIC BUBBLE BAND 108

Direction of forces
The application of the ?r operator to derive the force expressions from the previously de ned
potentials, brings us to calculate @d@ pcs where p is the con guration that varies. In fact, this
last expression gives the direction of the force. Unlike the Euclidean distance, the car-like
compatible dcs , de ned previously, have no normalized di erentials. They contribute thus
to the magnitude of the force. As well, they do not vary smoothly with p, with consequent
e ects on stability.

Path @dcs @dcs @dcs


@x @y @
1j lu? l+ s+d sin u ? cos u R sin u ? R
2
2j lu? lv+ sin u ? cos u R sin u
sin v cos v sin v ? R
3j lv+ s+d ? cos v ? sin v R cos v ? R

Table 6.2: Derivatives of the distance from con guration to point.


Let us have a close look on the di erential of the distance from a point function. This
distance has three di erent analytical expressions on three di erent domains. We note that
the derivatives are continuous functions of x, y and  almost everywhere except on the are
of center (0; R)T and of radius R from (0; 0)T to (R; R)T separating the domains 2jand 3j
(see table 6.2).

108
6.3. NONHOLONOMIC BUBBLE BAND 109

© Oper © Oper

-a- -b-

© Oper © Oper

-c- -d-

© Oper

-e-
Figure 6.7: Continuity and discontinuity of th direction of the repulsive force.
Figures 6.7-a- and 6.7-b- show a discontinuity in the direction of the force between the
domains 2jand 3j. This is an inherent discontinuity to Reeds and Shepps paths. Figures 6.7-
c- and 6.7-d- show another type of discontinuity that arises. This one is due to the non-
convexity of the ball in the Euclidean plane. In the ve gures is only shown the x and y
components of the force.

109
6.4. CREATION AND MODIFICATION OF A BUBBLE BAND 110

6.4 Creation and Modi cation of a Bubble Band


As the band expands, bubbles are created to guarantee the connectivity. Bubbles are also
created when an obstacle approaches the band obliging the bubbles to shrink. Inversely,
when the band is contracted or when obstacles move away, bubbles may overlap too much,
that some of them should be eliminated. Here we will discuss the strategy of creating and
eliminating bubbles.

6.4.1 Bubble Band Modi cation

B (pi+1 ; ri+1) p
i+1
pi+1
B (pi+1 ; ri+1)

pi+ 1
2

pi

B (pi+ 21 ; ri+ 12 )
B (pi ; ri)

Figure 6.8: Creation of a bubble before disconnection.


Suppose that we have a connex bubble band. For each two adjacent bubbles, say B (pi ; ri)
and B (pi+1 ; ri+1), if the following inequality is satis ed
dcc (pi; pi+1 )  ri + ri+1 ? c ;
where c is a positive constant, then an intermediate bubble should be created between them.
In order to be around the intersection of its two neighbors, the center of this bubble should
be on the path, p [pi; pi+1 ] : [0; 1] ?! R2  S 1 , relating the two neighboring centers; on the
point  ri 
pi+ 12 = p[pi; pi+1] r + r :
i i+1
On the other hand, if three consecutive bubbles, noted B (pi?1 ; ri?1), B (pi ; ri) and
B(pi+1 ; ri+1) have the property
dcc (pi?1 ; pi+1)  ri?1 + ri+1 ? o ;
where o > 0, then they are considered to be redundant and the middle bubble B (pi ; ri) is
eliminated.

110
6.4. CREATION AND MODIFICATION OF A BUBBLE BAND 111

To prevent the creation-elimination loop from endlessly creating and eliminating the same
bubble, the following condition should be satis ed
o > c : (6.6)
This condition expresses a Hysteresis function that governs the creation-elimination pro-
cedure. Note that the elimination test may be applied to all the succeeding bubbles in order
to detect a loop ( gure 6.9) and remove it if desired1 .
© Oper

Possible path.

Figure 6.9: Detection of a loop between bubbles.

Bubble Band Creation

p5

p4

p3
p2
Obstacle
p1

Figure 6.10: Creation of the rst bubble band.


To construct the original band, we start with a path, which may be set by a motion planner
and which is not obliged to be feasible. This path is rstly sampled into a sequence of
con gurations if it is not already in such a form. Then the rst bubble is de ned to be the
1 We still consider that such a decision must be taken at higher levels.

111
6.5. BUBBLE BAND BEHAVIOR EXAMPLES 112

greatest bubble centered at the rst con guration in the sequence. The sequence is then
scanned to nd the last con guration which still belongs to the last constructed bubble. If
B(pi ; ri) is the lastly created bubble. The condition for pi+1 to be the center of the next
bubble is then:
dcc (pi; pi+1) < ri
This con guration is thus taken to be the center of the following bubble which also has
the maximum size:
ri+1 = dOcs(pi+1 )
where O is the set of obstacles.
The previous step is repeated till the goal, last con guration, is found to belong to a
bubble. A last xed bubble is created around the goal even though this last is found in the
previous bubble.
This method insures the connectivity of the bubble band, as well as its total presence in
free-space while making it redundant, obliging the center of each bubble, but the rst, to
belong to its previous neighbor. Nevertheless, this redundancy is not an inconvenience, for
after the rst application of elimination algorithm and of the contraction forces, the band
will become spacious.

6.4.2 Stability
The evolution of the bubbles in the band is governed by conservative forces issued from
convex potential elds. For contraction forces, the potential elds are functions of the metric
distance which is a true distance and conserves thus the convexity property. These potential
elds have thus a unique minimum. Using the same displacement method described by the
equation ( 5.4 on page 93), we add a dissipative force to that issued by the potentials and
obtain:
Fi (pi) = ?rPi(pi) ? kp_ i p_ i
where kp_ i is a positive constant gain.
For obstacles repulsion forces, the potential elds are functions of the point to con gura-
tion distance
p which is not a true distance. In fact, this distance presents a problem for lengths
inferior to 2R, as discussed in the sub-section 6.3.2. This is due to the discontinuity of the
di erential of this distance and to the fact that the shortest paths, whose length de nes the
distance, does not have the property: All sub-paths of shortestp paths are shortest paths. In
fact, in domains 1jand 2j, sub-paths of length inferior to 2R may not be shortest paths.
To guarantee
p the convergence of the bubble band we impose thus a minimum radius,
Rmin = 2R, on the bubbles.

6.5 Bubble band behavior examples


We suppose that a planner using the environment model to produce a not necessarily exe-
cutable path which is the bubble band entry.
The rst step (x 6.4.1 on the preceding page) consists of sample the path into a sequence
of bubbles connecting the two extremities of the path and forming the initial bubble band
( gure 6.11 on the next page). An executable trajectory is thus created. The application of
the internal forces (x 6.3.2 on page 106) optimize the form of the band ( gure 6.13). Note
112
6.5. BUBBLE BAND BEHAVIOR EXAMPLES 113

also that these forces modify the size of the bubbles under contraction e ects. The obstacles
repulsion is then applied (x 6.3.2 on page 107) provoking a clearance of bubbles and a greater
space in each ( gure 6.13 on the following page).
Nevertheless, the band reacts to unexpected obstacles ( gure 6.14 on page 115), by de-
forming the band. The trace of the robot along the trajectory is presented in gure ( 6.15
on page 115). Note that the entire trajectory in included in the union of the bubbles.
© Oper

Figure 6.11: Bubble band creation and the rst feasible trajectory.

113
6.5. BUBBLE BAND BEHAVIOR EXAMPLES 114

© Oper

Figure 6.12: Internal forces application and optimization of the band.

© Oper

Figure 6.13: Application of internal and external forces and clearance from obstacles.

114
6.5. BUBBLE BAND BEHAVIOR EXAMPLES 115

© Oper

Figure 6.14: Deformation of the band due to an unknown obstacle.

© Oper

Figure 6.15: Bubble band trajectory trace.

115
Chapter 7
Bubble band execution

In this chapter is developed the aspects related to the execution of the trajectory issued from
the bubble band.
We have seen in the last chapter that the path produced by the bubble band passes
by all the bubbles joining the initial to the goal con gurations by a sequence of arcs and
segments. The path to execute is thus the concatenation of the Reeds and Shepp paths
f [pi; pi+1]; i = 1 : : :n ? 1g between the centers of the n bubbles. Each of these paths is a
set of arcs and segments and its curvature is thus discontinuous forcing the robot to stop at
the end of each part.
Several methods are being used currently to smooth these paths such as the use of
clothodes proposed in [Fleury 95] to join segments to arcs. In our case the curve after
being smoothed must belong to the union of bubbles and thus to the free-space. Also, for
reasons related to execution control (synchronization problems between tasks with di erent
cycle periods detailed in paragraph 7.3 on page 127) the parameterization of the part to be
executed must be global and not incremental. These two reasons brought us to adopt Bezier
curves. The advantage of Bezier polynomials is that they can be wholly de ne in a convex
envelop as well as their derivatives. We can thus guarantee that the path executed lies in the
union of the bubbles, thus in free-space. As well, the velocity and acceleration on these curves
are bounded, for each belongs to a convex envelop of a nite number of constant vectors.
The only measure that cannot be bounded is the curvature. Here we choose a set of
control points to insure that the curvature lies in the neighborhood of R, the steering radius.

7.1 Approximation by Bezier Polynomials


De nition 7.1.1 A Bezier curve of order n + 1 and control points p = fp0; : : : ; png is de ned
by
X
n
BP [p; [t ; t ]](t) = B[t ; t ]ni(t)pi;
i f i f

i=0

116
7.1. APPROXIMATION BY BEZIER POLYNOMIALS 117

where t 2 [t ; t ] and
i f

 n
n?i
B[ti ; tf]ni(t) = i (t ? t) (t ? t ) ;
i for i = 0 : : :n.
f i

We use the following properties of Bezier curves


 A Bezier curve lies in the convex envelop of its control points
BP [p; [ti; tf]]  co(p): (7.1)
 The initial and nal points on the curve are
BP [p; [ti; tf]](ti) = p0 and BP [p; [ti; tf]](tf) = pn (7.2)
respectively.
 The successive derivatives of a Bezier curve are Bezier curves whose control points are
nite di erences of the original control points
@ k BP [p; [t ; t ]](t) = n! 1 BP [k p; [t ; t ]](t): (7.3)
@t k i f (n ? k)! (tf ? ti )k i f

where
k p = fk p0 ; : : : ; k pn?k g; (7.4)
the nite di erences k pi being de ned in the following way
0 pi = pi ;
k pi = k?1 pi+1 ? k?1 pi :
 A Bezier curve BP [p; [ti; tf]] can be split into two Bezier curves BP [p0; [ti; ts]] and
BP [p00; [ts; tf]] such that
BP [p0; [ti; ts]](t)= BP [p; [ti; tf]] 8t 2 [ti; ts]; (7.5)
BP [p00; [ts; tf]](t)= BP [p; [ti; tf]] 8t 2 [ts; tf]:
Here
p0 = f0ti;ts;tf p0; : : : ; nti;ts;tf p0g and p00 = fnti;ts;tf p0; : : : ; 0ti;ts;tf pn g:
(7.6)
where the convex combinations kti ;ts ;tf are de ned in the following way
0ti ;ts ;tf pi = pi ;
? ti k?1 p + tf ? ts k?1 p :
kti ;ts ;tf pi = tts ?
f it ti ;ts;tf i+1 t ? t ti ;ts ;tf i
f i
 Bezier curves are invariant by geometric transformations such as translation, rotation
and scaling. That is if T is such a transformation,
T BP [p; [ti; tf]] = BP [T p; [ti; tf]]: (7.7)

117
7.1. APPROXIMATION BY BEZIER POLYNOMIALS 118

For a fuller development of Bezier curves see [Fiorot 89].


According to the rst property (equation 7.1) choosing the control points in a bubble or,
a region if the space, guarantees that all the curve is in that bubble, or region. The initial
and nal positions, velocities and curvatures can easily be controlled through the control
points (equations 7.2 and 7.3). The third property (equation 7.3) combined with the rst
one (equation 7.1) insures that the derivatives @t@ kk BP [p; [ti; tf ]] are contained in the convex
envelops co( (n?n!k)! (tf?1ti )k k p) and thus that the velocity and the acceleration are bounded.
Finally, the last property (equation 7.5) enables us to divide a Bezier curve at any point and
obtain two curves of the same nature, thus we can reparameterize a part of the curve to stop
or change its nal velocity or simply drop it.
Reeds and Shepp paths are made up of line segments and arcs of circles. To join them
smoothly, we will approximate the arcs by Bezier curves whose curvature is null at the two
extremities. To satisfy this condition and x the starting and nish positions and velocities we
need at least four control points p = fp0 ; p1; p2; p3g [Segovia 91]. Equation 7.2 determines
the points p0 and p3 as the two extremities of the arc
pi = BP [p; [ti; tf]](ti) = p0
and
pf = BP [p; [ti; tf]](tf) = p3;
where pi and pf are the initial and nal points of the arc respectively. Thus
p0 = pi and p3 = pf: (7.8)
Equations 7.2 and 7.3 oblige the point p1 (respectively p2) to be on the array starting at p0
(respectively p3 ) and tangent to the arc
ti / BP 0[p; [ti; tf]](ti) / p1 ? p0
and
tf / BP 0[p; [ti; tf]](tf) / p3 ? p2
where ti and tf are the initial and nal tangent unitary vectors to the arc. Thus
p1 = pi + ti and p2 = pf ? tf (7.9)
for some positive constants  and . The initial and nal curvatures are then
0 00
i = jjBP [p; [ti; tf]](0 ti)  BP [p; [3ti; tf]](ti)jj
p jjBP [p ; [ti; tf]](ti)jj
0  p0
2
= 54 (7.10)
jjp0jj3
and
0 00
f = jjBP [p; [ti; tf]](0 tf)  BP [p; [3ti; tf]](tf)jj
p jjBP [p ; [ti; tf]](tf)jj
3 2p2
= 54 : (7.11)
jjp3jj3

118
7.1. APPROXIMATION BY BEZIER POLYNOMIALS 119

p3

p1 = p 2
Bezier

Convex Envelop
Arc

p0

Figure 7.1: Four control points Bezier approximation of an arc of length 3 .

After substitution of the values of pi , i = 0; : : : ; 3 these expressions become


 = jjti  (pf ? pi ? tf )jj and  = jjtf  (pi ? pf + ti )jj :
i  f  (7.12)

To clarify this, let us consider an arc of center (0; 0)T and radius 1 whose two extremities
are (1; 0)T , corresponding to the angle 0, and (cos ; sin )T , corresponding to the angle .
This is not a restriction because of the invariance of Bezier curves (equation 7.7 on page 117).
The two extremities are (equation 7.8 on the page before)
1  cos  
p0 = 0 and p3 = sin  ;
and the other two points are (equation 7.9 on the preceding page)
1  cos  +  sin  
p1 =  and p2 = sin  ?  cos  :
The parameters  and  determine the curvatures at the extremities. These curvatures are
(equation 7.12)
i = 32 1 ? cos 2?  sin  and f = ? 23 1 ? cos 2?  sin  :
When both curvatures are null
 =  = cossin + 1 :
In fact the two triplets fp0 ; p1; p2g and fp1; p2; p3g should each be collinear, and thus p1 = p2
( gure 7.1).
This approximation has two drawbacks. In order to smooth the edges of the arc, the
curvature at the middle tends to increase a lot. It is at least 2.5 times greater than the
curvature of the original arc ( gure 7.4 on page 122). Since the two middle points enter
in the calculation of curvature of both extremities it is not easy to determine their values
for arbitrary curvatures. The rst drawback is due to the lack of supplementary degrees
119
7.1. APPROXIMATION BY BEZIER POLYNOMIALS 120

p5
p4

p3

Arc
Convex Envelop
p2
Bezier

p1
p0

Figure 7.2: Six control points Bezier approximation of an arc of length 3 .

of freedom that can be manipulated to control the curvature and the second is due to the
fewness of the control points. These reasons bring us to approximate the arcs by Bezier
curves of greater order.
Here we propose an approximation with six control points Bezier curves. For reasons of
clarity, we shall base our discussion on the previously de ned arc. The two points at each
extremity are determined by the relations 7.8, 7.9, 7.10 and 7.11 (replacing the indexes 2 and
3 by 4 and 5). This gives us
   
p0 = 10 and p5 = cos sin  (7.13)
and
1  cos  +  sin  
p1 =  and p4 = sin  ?  cos  : (7.14)
The expressions for the curvatures at the two extremities being dependent on three di erent
control points each, we have
 1 ?  sin    cos  +  sin  +  sin( + ) 
p2 =  +  cos  and p3 = sin  ?  cos  ?  cos( + )
(7.15)
where the six parameters are related by the expressions of the curvatures
i = 54  sin
 2
 and  = 4  sin :
f 5 2 (7.16)

The geometric interpretation of these parameters is the following. On the one hand, 
is the distance between p0 and p1 ,  is the distance between p1 and p2 and  is the angle
between the lines p0 p1 and p1 p2. On the other,  is the distance between p5 and p4 ,  is the
distance between p4 and p3 and is the angle between the lines p4 p5 and p3 p4 ( gure 7.3
on the next page).
Once  and are determined by equations 7.16, we are left with four parameters, , ,
 and  , to control the curvature bounds.
120
7.1. APPROXIMATION BY BEZIER POLYNOMIALS 121

p5
p4

p3

p2

p5
 p4 p1
p0

p3

Figure 7.3: Six control points Bezier approximation of an arc of length 3 .

121
7.1. APPROXIMATION BY BEZIER POLYNOMIALS 122

 (t)  (t)

t  t 

Figure 7.4: Curvature of the four and six control points Bezier approximation of an arc.

The curvature bounding problem is thus reduced to


!
min max  (t)
>0;>0;>0;>0 t2[0;1];2[0; 2 ] 
;

where 0 00
 (t) = jjBP [p](t)0  BP 3[p](t)jj ;
jjBP [p](t)jj
and  is the arc angle.
This optimization problem has not been solved yet. For the mean time, we use values of
 and  that bounds the curvature to 45  where  is the curvature of the arc ( = R1 if R is
the steering radius).
Figures 7.4 shows the variation of the curvature for four control points and six control
points Bezier approximations of arcs with null initial and nish curvatures. These surfaces
are functions of t and the arc length . The horizontal plane in both gures represents the
constant curvature of the arc. A good approximation should exceed this value as little as
possible.
A segment being the convex envelop of its extremities is exactly parameterized by a Bezier
curve of order 2 whose two control points are the two extremities.
A complete Reeds and Shepp path approximated by Bezier curves is shown in gures 7.5.
In gure -a- arcs are approximated by four control points Bezier curves while in gure -b-
they are approximated by six control points Bezier curves. Segments are approximated by
two points Bezier curves in both gures.

122
7.2. PARAMETERIZATION OF BEZIER POLYNOMIALS 123

© Oper © Oper

Start Start
4−Bezier Arc Approximation
6−Bezier Arc Approximation
4−Bezier Arc Approximation 6−Bezier Arc Approximation

2−Bezier Segment Approximation 2−Bezier Segment Approximation

4−Bezier Arc Approximation 6−Bezier Arc Approximation


Goal Goal

-a- -b-
Figure 7.5: Path approximation by Bezier curves.

7.2 Parameterization of Bezier Polynomials


In the previous section we were concerned by the geometric approximation of arcs and seg-
ments. Once these curves (approximations) are found, they should be followed according to
extremity constraints such as initial and nal velocity. This could be done by reparameter-
izing the curves.
If
' : [si; sf] ?! [ti ; tf]
is an onto function strictly increasing on the open interval (ti ; tf). Then
[si ; sf] ?! R2  S 1 ;
s ?! BP [p; [ti; tf]]('(s));
is a new parameterization of BP [p; [ti; tf ]]. If we have a predetermined starting velocity vi ,
this parameterization should verify
BP 0[p; [ti; tf]]('(si)) @'
@t (si ) = vi:
Similarly, if the nishing velocity vf is known,
BP 0[p; [ti; tf]]('(sf)) @'
@t (sf) = vf:
The reparameterization can also be used to modify the maximum velocity. In fact, due
to the convex envelop property
BP 0[p; [t ; t ]](t)  5 max jjq jj ; 8t 2 [t ; t ]:
i f i=0:::4 i i f

Thus, to guarantee that the velocity does not exceed vm, ' should verify
@' vm
(s)  8s 2 [si; sf]:
@s 5 max jjqi jj ;i=0:::4
A similar reasoning can also be applied to bound the acceleration, the angular velocity and
the angular acceleration.
We have tried several functions ' including
123
7.2. PARAMETERIZATION OF BEZIER POLYNOMIALS 124

_ (t) _ (t)
_ (t)
(t) (t)
(t)

t t t
-a- -b- -c-
Figure 7.6: Di erent ' functions.

 a cubic polynomial ( gure 7.6-a-),


 a cubic spline composed of two parts ( gure 7.6-b-),
 a cubic spline composed of three parts ( gure 7.6-c-), the middle part being a straight
line segment.
In each case ' should verify the four following conditions
'(si) = ti ; '(sf) = tf; @'
@s (si ) = ' i and @' (s ) = ' :
@s f f (7.17)

In the cubic polynomial case, this determines the four polynomial coecients. The re-
maining unknown is the parameterization time s = sf ? si . This is determined by xing
the maximum of the rst derivative
max @'
@s (s) = 'm: (7.18)
s2[si ;sf ]
This condition tends to optimize the execution time.
In the two piece-cubic spline the condition 7.18 becomes
@' (s ) = ' and @ 2 ' (s ) = 0; (7.19)
@s s m @s2 s
where ss is the spline control time, i.e. the time when the two polynomial pieces join. We
have up to now six conditions, and since we have seven unknowns (the ve spline coecients,
s and ss ) we add the following condition
(ss ? si )('m ? 'f ) = (sf ? ss )('m ? 'i ); (7.20)
This guarantees that ss is in [si; sf ] and thus the monotonous character of '.
In the three-piece cubic spline the condition 7.19 is again changed. Now we have two
spline control times (ss1 and ss2 ) and we are interested in splines where the middle piece is
linear thus
@' (s ) = @' (s ) = ' and @ 2' (s ) = @ 2' (s ): (7.21)
@s s1 @s s2 m @s2 s1 @s2 s2
The condition 7.20 becomes
(ss1 ? si )('m ? 'f) = (sf ? ss2 )('m ? 'i) (7.22)
124
7.2. PARAMETERIZATION OF BEZIER POLYNOMIALS 125

and
ss2 ? ss1 = p(sf ? si ); (7.23)
where p is an arbitrary constant in [0; 1].
The constant p used in equation 7.23 xes the importance of time to be passed on the
linear (middle) piece. The bigger it is the lesser time is given to initial and nal accelerations.
In fact, when it is equal to 1, the rst derivative of ' is discontinuous at the extremities.
When it is equal to 0, we get the two-piece spline. This constant should be xed according
to the maximum acceleration of the robot.
The conditions 7.20 and 7.22 present a problem when 'i or 'f is equal to 'm because
then one of the control times is undetermined. Thus they are modi ed to
   
(ss ? si ) 'm ? b'i ? (1 ? b)'f = (sf ? ss ) 'm ? (1 ? b)'i ? b'f (7.24)
and
   
(ss1 ? si ) 'm ? b'i ? (1 ? b)'f = (sf ? ss2 ) 'm ? (1 ? b)'i ? b'f ;
(7.25)
where b is an arbitrary constant in [0; 1] which should be as small as possible.
© Kinan

Linear Vel

t
Angular Vel

t
Linear Acc

t
Angular Acc

Execution Time: 18.81

Figure 7.7: Velocity and acceleration pro les for polynomially parameterized 2- and 4-Bezier
approximation of a path.
Figures 7.7 to 7.10 on page 127 show the pro les of the linear and angular speeds and
accelerations for the di erent approximations and parameterizations discussed in this section.
These pro les correspond to the example shown in gures 7.5 on page 123. From them we
can remark several facts.

125
7.2. PARAMETERIZATION OF BEZIER POLYNOMIALS 126

© Kinan

Linear Vel

t
Angular Vel

t
Linear Acc

t
Angular Acc

Execution Time: 14.95

Figure 7.8: Velocity and acceleration pro les for 3-spline parameterized 2- and 4-Bezier ap-
proximation of a path.

© Kinan

Linear Vel

t
Angular Vel

t
Linear Acc

t
Angular Acc

Execution Time: 15.50

Figure 7.9: Velocity and acceleration pro les for polynomially parameterized 2- and 6-Bezier
approximation of a path.

126
7.3. A PROPOSED EXECUTION CONTROLLER 127

© Kinan

Linear Vel

t
Angular Vel

t
Linear Acc

t
Angular Acc

Execution Time: 12.14

Figure 7.10: Velocity and acceleration pro les for 3-spline parameterized 2- and 6-Bezier
approximation of a path.

 Arc four control points Bezier approximation leads to a more important excess in angu-
lar speed than six points Bezier approximation for the three types of parameterization.
In fact, this is inherent to its incapacity to control its maximum curvature.
 Three-piece spline parameterization leads to better execution times. This is due to its
capacity to reach higher speeds and maintain them longer. Its maximum is spread on
the middle segment instead of being bound to a single point.
 The nal speed of a Bezier curve is null in two cases: at a cusp point and at the end.
Otherwise it is determined by the parameterization in order to limit the linear and
angular accelerations.
 The maximum speed is dependent on the length of the Bezier curve. This is also due
to bounding the accelerations.
For a more complete analysis see [M. Khatib 96].

7.3 A proposed Execution Controller


Having discussed the generation and handling of the bubble band and the approximation of
its successive parts by parameterized Bezier curves, we will now present the link between
these two aspects. In fact, the bubble band is a dynamic system, evolving endlessly with
time (in function of the environment). To execute the corresponding mobile path, we have
to x a piece of it.

127
7.3. A PROPOSED EXECUTION CONTROLLER 128

B (p1 ; r1) p2

B (p1 ; r0) p1 p
1
B (p2 ; r2)

B (p1 ; r1)

Figure 7.11: Fix piece of length r0 in rst bubble.

To x a piece of length l in B (p1 ; r1) on the Reeds and Shepp path joining p1 with the
center p2 of the second bubble B (p2 ; r2), we set two bubbles each at an extremity of this
part. The rst bubble, B (p1 ; r0), will have a radius r0 = l + c , and the second bubble,
B(p1 ; r1), will have a radius r1 = R1 ? l insuring thus the connectivity and the existence in
free-space.
Our Bezier approximation method approximates an elementary piece (an arc or a segment)
at a time. It does not approximate a concatenation of several elementary pieces (such as an
arc followed by a segment or two successive arcs with opposite centers, : : : ) This is why when
a part of a path is xed its length l should be less than the length of the rst elementary
piece `p. Still this length should be enough for the robot to stop in case of emergency. Then
the initial velocity of this part vi (which is the nal velocity of the previous part) should be
bound in function of `p. Suppose that this is true. Then we should have
l = 23 avi  `p :
m
This is not all the truth, since a thought should be given to next piece. In fact, the robot
should always have the greatest speed that its capacity and the paths form allow. Then the
remaining length `p ? l on the elementary piece should be greater than the minimal length
in which the robot can stop completely if it started this piece with the maximum speed vm .
If this is not veri ed l is taken to be `p . More concisely

1. l = 32 avi  `p .
m

2. if `p ? l < 23 avm then l = `p .


m
From now on when a part is said to be xed, its length is determined using this method.
For a part to be parameterized, its nal speed should be determined. To do this, a forward
look should be e ectuated to test for a cusp point or the end of the path. In both cases the
nal speed is null. Otherwise it is the maximum speed that the parameterization algorithm

128
7.3. A PROPOSED EXECUTION CONTROLLER 129

can a ord according to the approximation of the current part and the length of the following
elementary piece of the path.
Here is the complete execution controller. The behavior of the Command will be discussed
afterwards.
Initialization Let the initial speed vi = 0, reset the initial time si and send track request to
Command.
Main Loop
1. Terminate if the Reeds and Shepp path on the poster of Bubble Band is empty.
2. Read the rst two elementary pieces [p1; p2] and [p2; p3] if they exist or the
only one [p1; p2] from the Bubble Band. Here an elementary piece is an arc or a
segment.
3. Fix a part [p1; p1] on [p1; p2].
4. The next is elementary piece is [p1; p2] if p1 6= p2 or [p2; p3] else-wise.
5. Request from Bezier the approximation and parameterization of [p1; p1] using
the next elementary piece to determine the nal speed.
6. Read the parameterized curve p [p1; p1] from Bezier. Note vf its nal speed and
sf its expected nal execution time.
7. If vf is null proceed to step 10.
8. Fix a second part [p1; p2] on the next elementary piece with initial speed vf .
9. Request from Bezier the approximation and the parameterization of [p1; p2] with
null nal speed.
10. Read the current execution time sc from Command.
11. If si ? sc >  proceed to step 1.
12. Request from Bubble Band to advance the initial point to p2 .
13. Write the parameterized curve(s) on the poster and set vi to vf and si to sf .
14. loop: proceed to step 1.
The Command is activated by the track request. It waits till one or two new parameterized
curves are written on the poster of the Execution Controller. The execution of the rst
parameterized curve is started if the last one ends with a null speed. While executing a
curve, the Command updates robot state and especially the current execution time in its
poster. If the rst curve is terminated and the poster of the Execution Controller is not
updated the second curve is executed if it exists and the track request is terminated.
Figure 7.12 on the next page shows the parameterizations of a sequence of split pieces
of a Reeds and Shepp curve. Two parameterizations are shown for each piece, one for the
nominal execution and the other with null nal speed.

Discussion
The gure 7.13 on the following page shows the control architecture of Kinan1 system imple-
mentation.
1 Kinematics Integrated in Non-holonomic Autonomous Navigation

129
7.3. A PROPOSED EXECUTION CONTROLLER 130

© Kinan

Linear Vel

t
Angular Vel

t
Linear Acc

t
Angular Acc

Execution Time: 12.15

Figure 7.12: Velocity and acceleration pro les for a split 3-spline parameterized 2- and 6-
Bezier approximation of a path.

Planner

Environment
Execute Path

Execution
Controller
Smooth Advance Concatenate

Bezier Approximation Bubble


Perception
& 1 or 2 Parameterized Band
Bezier Curve(s)
Parameterization

RS Path Measures

Parameterized Bezier Traking


Curve Request

Command Read
Robot State
Write
Command
Motor Data
Functionality

Figure 7.13: The proposed architecture of Kinan system

130
7.4. CONCLUSION 131

This Execution Controller is not wholly implemented yet.We still think that this archi-
tecture and execution controller algorithm present an ecient structure to combine low and
high level modules with di erent time requirements in a real-time environment.

© Oper

Linear & Angular Velocities


0.6

0.4

0.2

-0.2
>19.3, 0<
-0.4
15 20 25 30 35

vOdo
Time (secs) wOdo

\To" movement: Execution sequence trace Linear and angular speeds


of four control points Bezier. of the robot.

© Oper
Linear & Angular Velocities

0.2
>17, 0<

-0.2

-0.4

4 6 8 10 12 14 16 18 20 22

vOdo
Time (secs) wOdo

\Fro" movement: Execution sequence trace Linear and angular speeds


of six control points Bezier. of the robot.

Figure 7.14: Two, four and six control points Bezier curves sequence execution with corre-
sponding speed pro les.
The implementation of Bezier module on the robot Hilare2 shows that the use of Bezier
curves of order 4 produce smoother speed pro les ( gure 7.14)2 This is due to easiness with
which arc approximation extremity speeds are linked to those of adjoining segments. On the
other hand the speed decrease in the middle of the arc approximation. In the case of Bezier
approximations of order 6 the parameterization tries always to reach the maximum velocity
in the middle of the arc approximation. where the curvature is almost constant. Nevertheless,
the extremity speeds are smaller than before. Still a better approximation of the arc, in the
case of order 6 Bezier curves, leads to shorter execution time.

7.4 Conclusion
This part of the memory presents a new method to combine planning and reactive control
for a non-holonomic mobile robot with minimum steering radius. This method integrates the
2 Note that Hilare2 has no minimum steering radius.

131
7.4. CONCLUSION 132

majority of the functions considered important in a reactive system such as: obstacle avoid-
ance, trajectory execution and integration of environment model information. Moretheless,
this method have the advantage of a capacity of optimization and smoothing such that it
accepts infeasible initial trajectories.
The Reeds & Shepp metric and its shortest distance to obstacles enables the de nition of
bubbles for car-like robots. This incites the development of potential functions on this metric
and the study of the of their gradient behavior.
The bubble band developed here, provide a feasible dynamically modi able collision-free
trajectory. Though this trajectory is incompatible with robot kinematics other than geometric
constraints, a powerful parameterization algorithm is proposed to satisfy these constraints.
Two types of approximation and three types of parameterization are developed and tested
aboard the platform Hilare2.
Finally, an execution system (Kinan) is proposed for the implementation of the di erent
algorithms encountered in this part. An execution controller as well as the other activities of
the system are designed to combine low and high execution levels with di erent cycle periods.

132
General conclusion
The work presented in this memory contributes to mobile robots movement feedback control.
This contribution is a part of a decision control architecture of an autonomous mobile robot
Hilare. The presented studies treat di erent natures of interaction between planning and
execution of movement. The proposed solutions tackle the problem according to three axes:
Re ex execution of movement
On the basis of purely reactive local avoidance actions, we have developed using the
formalism of potential method, with the extensions developed in this work, a reactive
system dedicated to the collision-free execution of trajectories. This system integrates,
via virtual perception also introduced in this work, information locally describing the
environment model. It enables more adapted reactivity and satisfactory behavior.
This method demonstrated the eciency of reactive execution and its role in the se-
curity of execution. We cite here several experiments realized in the context of the
project MARTHA concerning multi-robot coordination showing thus the necessity of
such a reactivity and the increase of performance it provides in global coordination
process execution. Even though it contributed to compensate the model and motion
incertainity, frequent relocalizations are needed by the system which treats only ge-
ometric and absolutely referenced information (e.g. a trajectory, a goal position, an
environment model, : : : ). Thus the limitations of the system for complex and long
tasks.
Sensor-based execution of movement
The task potential formalism proposed next, provides the necessary theoretical context
for the study and development of several important sensor-based actions of which the
most signi cant were mentioned (and some developed) in this manuscript. Via these
elementary actions and an execution controller, a link between planning with incertain-
ity and movement was established and a robust displacement system by sensor-based
actions in presence of incertainity was de ned. This system was implemented on the
Hilare2 robot and a number of complex tasks demonstrated the cohesion of the method
and the security of navigation. The developed system is but a demonstration of the
approach consisting of integrating planning to execution. Taking into account incer-
tainity provides the navigation system with supplementary advantages. Nevertheless,
a more simple planning or a direct use of an operator (RALPH) remains possible since
the movement is based on sensor feedback.
Execution and optimization of movement by thought re ex actions
The elastic band technic present in the third part of this work presents a new method-
ology linking planning and execution. Thought reactivity combines the taking into
133
7.4. CONCLUSION 134

account of global information to modify locally a trajectory and the propagation of


such a modi cation to the totality of the trajectory. The supplementary advantage
of this method is its capacity of adjust the trajectory to the environment diminishing
thus the importance of planning to a simple topological guide. The experiments we
have e ectuated in this contexts proved both the great capacity of this approach and
its incompleteness with respect to non-holonomic mobile robots. The bubble notion
with the appropriate metric space (Reeds & Shepp) enabled the elaboration of a more
compatible context for such a robot. This method was modelized using potential elds
and a new aspect of the behavior of forces in this metric space was clari ed.
Nevertheless, direct execution of trajectory issued from this method was impossible
(kinematic constraints are simply violated) and we were brought to resolve this by
introducing a phase of smoothing by polynomial Bezier curves and another of reparam-
eterizing and by introducing a control system which takes into account the di erent
temporal needs of the di erent phases. This approach was purged by a great number of
experiments on simulators. This demonstrated the convenience of disposing of a trajec-
tory feasible by a car-like robot which is also dynamically modi able. The smoothing
and parameterization algorithms were validated by experiments di erent options were
provided in function of the constraints of the robot.
The proposed system, kinan, is adapted to the functional architecture on the robot Hilare
and enables the coexistence of activities with di erent period cycles. Even though this
last system is still in course of integration3 , the results obtained through experiments
on the di erent parts of the system con rm the necessity of success of the proposed
structure.
The presented approaches and their implementations as well as experiments in which they
were tested demonstrate the non-existence of a unique solution satisfying all the constraints of
the problem. Just as planning, execution depends narrowly on the context of the application,
the environment and its evolution and the robot and its kinematic constraints. In fact the
approaches developed here di er by the nature of the interaction between planning and
execution and more importantly by their domain of applicability. The advantages apported
by one approach in a given context may be considered to be inconveniences in another. For
example, the sensor-based displacement is not to be considered in vast and non-structured
environments. (Except perhaps servoing a target.) Likewise, the elastic band cannot be
wisely applicable in a charged road network.
This, brings us to the conclusion that the choice of the method to use, must depend on the
nature of the task desired and all the constraints relative to the application context. This is
the reason why the decision taking level in the control architecture of an autonomous mobile
robot should dispose of a set of execution technics and control compatible with its needs.

3 Note: This integration should be accomplished before the defense.

134
Annexes

135
Appendix A
Hilare2 architecture

We will introduce here the control architecture of the Hilare2 robot on which we have imple-
mented all the algorithms and methods developed in this work.

A.1 Control architecture


Concepts and tools were developed in the context of a generic control architecture for au-
tonomous mobile robots. Such an architecture must satisfy several properties and particu-
larly provide decision and reactivity capacity to robotic systems. In answer to these con-
straints, the LAAS has developed a generic architecture structured in two hierarchical levels
([Giralt 93, Chatila 93, Alami 93b]):
 Decision level is organized into sub-levels including task planning capacities and high
level execution control.
 Functional level integrates a set of operational functions: sensor and actionner control,
servoing, monitoring, and many calculations needed by the decision level; and provide
actions necessary to the upper level.
The functional level is a library of real-time services and constitutes and interface between
the decision level and the physical robot. (Between decision and action.) tasks are translated
via it to actions and through it the robot keeps a permanent interaction with the environment
(e.g. servoing and re exes).
The diculty to integrate the functions which compose the functional level is due to
the diversity of both the employed data and the temporal constraints as well as to the
algorithms complexity. These di erent aspects lead to the structuring of the level into modules
([Chatila 90, Fleury 94]).

A.2 Module notion


The functional level is thus a web of dynamically interconnected modules. A module is an
software entity integrating services (the di erent treatment functions).

136
A.2. MODULE NOTION 137

A.2.1 Generic module structure


In order to unify the behavior and the interaction modes between the di erent modules, a
generic module structure has been de ned [Fleury 96]. This generic module is composed into
two parts ( gure A.1):
 A control section composed of an asynchronous control task which:
{ receive and treat requests;
{ arbiter con icts;
{ express the global state of the module.
 An execution section composed of execution tasks which accomplish the requests: This
is where the di erent algorithms developed in this memory are integrated.

Control Control poster


This is an exported
data structure which

Control is written by the


owner of this poster
and which is readable
by all the others

Task components of the


structure... but with
difficulty for you !

Control Functional
SDI SDI
Asynchronous
events

Exection Execution poster


Execution
... Execution This is an exported
data structure which
This by
is written is an
theexported
ownerdata structure
of this posterwhich
is written by the

task task and which


by allowner
components
is readable

by all but
structure...
of this poster
the others
and which is readable
of the
the with
components
others
difficulty for you !of the
structure... but with
difficulty for you !

Treatment
functions

Figure A.1: Module structure.

A.2.2 Communication
We access the di erent services o ered by the modules via requests. These are asynchronous
events associated with necessary parameters which enable the starting, interruption and
alternating treatments. A service ends by the emission of a reply to the client. A reply is
itself and asynchronous event which mark the end of the treatment. This reply is associated
with a execution state and eventually a numerical result. This communication mechanism of
type client/server is represented in gure A.2 on the next page.
Note that through this mechanism a module may send an intermediate reply to a corre-
sponding request. Nevertheless, the end of the treatment and the resulting state are sent via
the nal reply. For example, the sensor-based actions controller developed and presented in
chapter 4 use this mechanism to manage and inspect the execution.
On the other hand, during execution, the treatments may need to access or produce data
(e.g. current position, ultrasonic measures, : : : ). This uses another communication protocol
which consists of exporting these data to a structured common memory zones called posters.
This is how the module Avoid access the current robot position by a simple memory read of
a poster updated by the locomotion module Loco.
137
A.2. MODULE NOTION 138

Module or
CLIENT Executive or
Operator

request reply
(parameters) (results, state)

service
SERVER
Module

Figure A.2: Client/server relation.

A.2.3 Module generator


The set of treatments to integrate in the functional level are encapsulated by a module generic
canvas.
At this stage, the transcription of the module formal description into procedures man-
aging internal and external events, communication and internal state switching must not be
debugged for the creation of a new module.
In this context, the formal description de ning completely the module behavior added
to the desire of a software and module behavior standards was what motivated the basic
de nition of a generic module skeleton [Perebaskine 92].
The next logical step was the de nition of a description language enabling the construction
of an automatic module generator GenoM [Fleury 96].

A.2.4 Module example


We develop in this section the module Avoid which is the implementation of the system
Rt Pt Cam in the functional architecture of Hilare2.
avoidGoto avoidSetDistance
avoidTrack avoidSetAvoidanceMode
avoidGard avoidSetMemLength
avoidTurn avoidOnOff
Robot position avoidGetout avoidStop

robotPositionPoster Reference
avoidRefPoster
Reference Avoid

trackedRefPoster Segments
Mesures Reelles avoidSegmentsPoster
et virtuelles
usEchosPoster locoTrack
usVirEchosPoster locoTrackStop

Requests form clients


Request to servers Poster
Read data (posters of servers)
Write data (reference, segments)

Figure A.3: The module Avoid.

138
A.2. MODULE NOTION 139

Module entry
The module Avoid is initialized as a client to the following modules:
{ Loco: The locomotion has the charge of servoing the robot, estimating its position
via odometry and manage other locomotion related services.
{ US: The module of ultrasonic measures acquisition manage a belt of 32 sonars
distributed on the periphery of the robot. This module programs the sensors
excitation rhythm and calculate many representations of the ultrasonic measures
which are updated in a poster called usEchos.
{ US VIR: The module of virtual ultrasonic measures produced from a world model
and the current position of the robot in the same formats as the module US. These
data are stocked in the poster usVirEchos. Several control requests are available
to set the calculus mode (polygonal, bitmap), the sensors model (detection cone,
range, : : : ) and other parameters (noise, specularity, : : : ).
The module Avoid calculates a reference which it exports to a poster avoidRef, tracked
by the module Loco through the request locoTrack.
Module services Avoid module has lter behavior. It modi es the input reference into another
reference of the same type but guaranteeing non-collision. If avoidance is deactivated
via the request avoidOnOff, the module output will be simply its input.
The entry reference may be a xed position transmitted by the request avoidGoto or
a evolutionary reference updated in the poster trackedRef speci ed by the request
avoidTrack. Both modes represent the systems Rt Cam and Rt Pt Cam developed in chap-
ters 1 and 2.
The module o er other elementary actions such as: sensor-based rotation (avoidTurn),
sensor-based guard function (avoidGard) and leave obstacles function avoidGetOut).
Also, several control requests are available to condition the behavior of the module. For
example, the request avoidSetMemLength xes the minimum length of the trajectory
to bu erize before execution in mode avoidTrack).

piloAvoidOn

Pilo Request
usEchos piloRef
Read poster
US avoidTrack
Write poster
Avoid Poster
avoidRef
US VIR locoTrack
usVirEchos Loco
locoPosition

Figure A.4: Control and data ux during the execution of a trajectory while avoiding obstacles.
gure A.4 shows the cooperation between the modules US, US VIR, Loco, Pilo and
Avoid when Pilo is required to execute a trajectory with obstacle avoidance. The module
139
A.3. FUNCTIONAL ARCHITECTURE OF HILARE2 140

Pilo produces references which are ltered by the module Avoid according to the proximity
data from the modules US et US VIR. They are then transmitted to the module Loco.

A.3 Functional architecture of Hilare2

Loca2d Locext

Dock MP
PWU

US_VIR US
Pilo SBC Band

Laser
Avoid

Loco

Figure A.5: Most of the modules constituting the functional architecture of the robot Hilare2.
We present on gure A.5 the majority of modules integrated in the functional architecture of
the robot Hilare2. The arrows show the reactions client/server between modules.
These modules are:
 Loco: Position estimation and robot servoing [Fleury 96].
 Pilo: Parameterization and execution of trajectories [Fleury 96].
 Loca2d: 2D Modeling and landmark localization [Bulata 96].
 Locext: Absolute localization by external cameras [Fleury 96]
 Laser: 3D range laser image acquisition [Camargo 92].
 US: Ultrasonic sensing [Camargo 91].
 US VIR: Virtual ultrasonic sensing (x 2.3.1 on page 37).
 Avoid: Real-time obstacle avoidance (chapters 1 and 2).
 SBC: Sensor-based command (chapter 3).
 Band: Elastic band (chapter 5).
 PWU: Planning with uncertainty controller (chapter 4).
 Dock: Robot docking and motion under extremal constraints.
 MP: Motion planner based on the method proposed in [Laumond 94] implemented by
T. Simeon, L. Aguirar and R. Alami at LAAS-CNRS.
This set of modules is embarked aboard the robot Hilare2 and run under the real-time

140
A.3. FUNCTIONAL ARCHITECTURE OF HILARE2 141

operating system VxWorks. The modules mark with a thick frame are those we developed
and implemented. Some are treated in this manuscript.

141
Appendix B
Perception

We present in this annex the proximity sensors with which the robot Hilare2 is equipped and
which were used all along the experimentation.

B.1 Ultrasonic sonars


Hilare2 is equippedwith a belt of 32 sonars distributed on its periphery. Figure B.1 shows the
disposition of these sonars.
27 28 29 30 31 32 1 2
26 3

25 4
24 5
23 6
22 7
21 8
20 9

19 10
18 17 16 15 14 13 12 11

motor wheels Sonars


Odometric wheels
Free wheels

Figure B.1: Hilare2 ultrasonic sonars.


Each sensor is composed of two piezo-electric elements of type MA40B61): One emits and
1 Murata LTD Sensor/Ultrasonic Sensors, 1990.

142
B.2. SEGMENTATION 143

the other receives ultrasonic waves. These sensors can be translated and rotated on the belt.
0
30 30
Attenuation (dB)
10
60 60
20

30
90 90

Figure B.2: Directivity diagram of an ultrasonic sonar.


Figure B.2 shows the directivity of this type of sensors. The point lled zones are de ned
by the original properties of the sensors. These zones are eliminated by a mechanical structure
associated with the receiver which makes it more directable (reception cone e ect) [Bauzil 91].

Sensing module
The module US in the functional architecture of Hilare2 governs the programming and acqui-
sition of the ultrasonic sonars. The acquisition is realized by a permanent activity updating
every 50ms the acquisition measures (under several forms) in the poster usEchos as well as
the position of the robot at the time of the acquisition. The acquisition parameters of each
sensor are dynamically programmed by control requests provided by the module (e.g. number
of impulses, inhibition window width, activation/deactivation, : : : ).
We distinguish two acquisition modes which can be activated on selected sensors:
 Select: Selective acquisition mode. One sensor is activated at a time. This mode
is interesting when associating a monitoring task for one sensor (e.g. wall extremity
detection) and be able by ne algorithms to detect multiple re ections This is possible
because the other sonars emit nothing but are synchronized (by a top timer) to be in
a state of reception.
 Simult: Simultaneous acquisition mode where all the sonars are excited at the same
time. This mode has the particularity of increasing the emission energy and is used to
detect objects otherwise dicult to detect in selective mode (e.g. chair legs, corners,
: : : ).
The module may also realize a sequencing of the two types of acquisition by scanning
successively all the sensors of a preselected set in selective mode.
In order to generalize the algorithms using ultrasonic sonars, the module provides the
sensor positions by control requests2 and all the current acquisition parameters.

B.2 Segmentation
Ultrasonic measures are approximated by segments using the least square method in th
following speci c algorithm.
2 These are the physical positions on the belt which necessitates an update exclusive to the module.

143
B.2. SEGMENTATION 144

© Oper

Plane

circular object

Figure B.3: Segmentation of ultrasonic measures.

Unlike laser point, ultrasonic points are dicult to approximate. This is due to their
fewness and their sensibility to continuity tests. We were thus brought to the use of the
following algorithm. Consider a nite number of segments corresponding to the di erent
sides of the robot (here 4 segments). A set of measures are selected with a gradient verifying
an upper limit. Some sensors up to a certain percentage can be without measures and a
minimum number of accepted measures is imposed. A segment approximating the resulting
measures in the least square sense is calculated ( gure B.3).
This algorithm produces approximative information on the orientation of an obstacle
other than plane obstacles.
Now, suppose that the detected object is a wall. We can correct the orientation error of
the segment due to rebound by the following algorithm.

Wall

l2
l1  
d
c1 c2

Figure B.4: Rebound e ect.


This phenomenon is produced when:

d  l1tg2
where d is the distance between the sensors c1 and c2 ( gure B.4). In stead of detecting t2 ,
we detect t02 :

144
B.3. LASER RANGE FINDER 145

 
t02 = 1v l1 1 + cos12 :

where v is the sound speed. This implies an erroneous angle 0 . But:


?
tg 0 = 2vd t02 ? t1 ;

thus:
 l1 
tg 0 = v 1 2l1
2d  v ( cos 2 + 1) ? v
tg 0 = 2l1d cos12 ? 1
Then:
 2dtg  0 ?1
cos 2 = 1 + l :
1
and the error on ]theta after development is given in function of time by:

tg2 = 1 ? t01
t2
After the correction of the orientation, a new segment is calculated whose orientation id
 and whose distance is calculated using the nearest measure. This insures a preservative
measure.

B.3 Laser range nder


3D laser range nder is embarked on a platform on the advanced part of the robot Hilare2.
The system contains:

Miroir
Site
AU . R
D
r
ST IEG
R EL
IA

Laser

Platine

Figure B.5: Laser range nder of Hilare2.

145
B.3. LASER RANGE FINDER 146

 azimuthal platform supporting the laser range nder;


 a servo-motor block on the laser to orient the mirror and span the site ( gure B.5 on
the page before).
Two modules (Azi and Site) govern the command of the two axes and present several
monitoring and servoing protocols. Nevertheless the handling of the 2D and 3D and other
acquisitions is assumed by the module Laser [Bauzil 91, Camargo 92].

Vertex detection
While discussing the action Wall Follow, we have presented in paragraph ( 3.3.3 on page 65)
the problem of dynamically localizing a vertex during the robot displacement along the wall.
Concerning this problem, we have implemented three methods to accomplish this detection.
Note that the sensor-based actions are encapsulated in the module SBC of the functional
architecture of Hilare2.
Sensing on the y The module Laser has a 2D section permanent acquisition mode whose
parameters are de ned in the client module. The module updates a speci c poster which
contains the measures and the position of the robot during that last acquisition3 .
Posters have the advantage of being dated which permits the realization of segmentation
only after each new acquisition. Since the robot position during acquisition is available, each
servoing period the extracted segment are recalculated in the local frame of the robot and a
new segmentation is only realized each acquisition period4 .
The segments extracted at each acquisition period are matched together to replace even-
tual collinear segments by only one (x 2.3.2 on page 40). A vertex is localized by either the
point of intersection of two segments with a sucient angular di erence or by the extremity
of one segment in which case the vertex in always convex5 . In this case the angular variation
of the vertex could not be matched (the second segment being invisible). We could, never-
theless, verify its type and its belonging to the assigned region de ned by the distance L2
(x 3.3.3 on page 65).
The robot attraction being a function of the abscissa of the vertex, an important number
of experiments con rmed that the use of this method either imposes a small execution speed
or a a greater acquisition sector and thus a slow acquisition.
A new acquisition was thus implemented6 to be treated in the next paragraph.
servoied acquisition This mode consists of controlling the axis of the laser range nder in a
given direction while sending laser shots. The azimuthal angle is updated in a poster de ned
by the client module. The shot measure an d the current azimuthal angle are written in a
poster belonging to the module Laser.
Here, the vertex detection idea is to use the segments orientation obtained by the ultra-
sonic sonars and determine in the case of a convex vertex, the distance and the extremity
by laser shots normal to the segments. In the case of a concave vertex, the distance to the
frontal segment give the distance to the vertex. Thus, the approximative position of the
vertex is determined by the segment(s) issued from ultrasonic measures and updated rapidly.
3 Here, we consider that all the measures are acquired at the same position though the displacement of the
robot during acquisition is taken into consideration.
4 Segmentation is rather fast for the acquisition sector is relatively small.
5 Figure 4.5 on page 75 show the labeling convention of vertexes.
6 The module Laser is realized by M. Herrb.

146
B.3. LASER RANGE FINDER 147

This position attracts the robot, while an exact detection of the vertex is con rmed by a dis-
continuity of the last shots in the convex case and by a more precise measure in the concave
case.
Note that the stop position of the robot relative to a concave vertex is de ned by the
distance to the frontal segment before the robot.
Selective ultrasonic measures In fact, the two precedent modes are e ectively used to detect
the vertex to terminate the action. Nevertheless, for intermediate vertexes, we have remarked
that detection by ultrasonic sonars is sucient to realize the wall switch because the action
does not end at the vertex and the robot can consequently correct the distance and orientation
to the following wall.
The realization of this detection is done by a monitoring program, in selective mode, on
the appropriate sensors. In this case module US alternate every period between between
the two modes of acquisition. Detection is activated by a nal request from the module US
signaling the activation of monitoring. This method necessitates too acute or open vertexes.
Thus a minimum angular variation is required between successive walls. Otherwise both wall
are considered one.
For example, in the case of SB CM system, the controller imposes on the planner parameters
including the minimum angular variation and the planner respects this while generating its
plan (x 4.0.2 on page 77).

147
Appendix C
Stability

C.1 Control point stability


We present the same de nitions as given in paragraph 1.7.4 on page 23 and we rewrite the
system equations and the command law that we have proposed:

X_ = vR
_ = ! (C.1)
The control point motion equations are:

q = X + dc R
q_ = X_ ? dc!R (C.2)

sin 

with R = ? cos  .
The command law is:
v = v FT R
! = ?! FT R (C.3)
with v ; ! 2 R+ . F is the resultant force to apply on the control point q. The repulsive
force being local, we prove the stability in absence of obstacles. Consequently, the force F
becomes:
F = ?kg (q ? qg )
where kg 2 R+ .
We prove the system stability C.1 for the control law C.3 using the next Lyapunov function:
L = 12 (q ? qg )T (q ? qg )
148
C.2. STABILITY UNDER A CONSTANT FORCE 149

The strict stability condition is thus:


L_ = q_ T (q ? qg) < 0
Which gives:

(X_ T ? dc ! R T ) (q ? qg ) < 0
(v RT ? dc ! R T ) (q ? qg ) < 0
Replacing v and ! by the control law C.3 and writing L_ in the form:
L_ = Z1 + Z2 < 0;
where

Z1 = v FT RRT (q ? qg )
Z2 = dc! FT R R T (q ? qg )
We develop then the terms Z1 and Z2 writing the force expression:

Z1 = ?v kg (q ? qg )T RRT (q ? qg );
Z2 = ?dc! kg(q ? qg )T R R T (q ? qg):
The sum of these expressions is then:

? 
Z1 + Z2 = ?(q ? qg)T v kgRRT + dc! kg R R T (q ? qg ):
This expression is of the form ?xT Mx where x 2 R2 and M is a 2  2 square matrix.
This matrix being de nite positive | its eigenvalues are v kg and dc ! kg | the sum Z1 + Z2
and thus the Lyapunov function are strictly negative. You may remark that this is only true
when dc is strictly positive. If it is null, only the weak Lyapunov property is veri ed and no
asymptotic convergence is guaranteed.

C.2 Stability under a constant force


A constant force applied on a particle generates a constant acceleration and thus a monotonous
and increasing speed. We will develop here a solution in order to limit this speed.
Let F be a constant force, x be the position of a particle having a mass m. Its motion
equation is:
F = mx
Integrating this equation gives the speed pro le:
149
C.3. FORCES TO DISPLACEMENT 150

F t+v
x_ = m 0
where v0 is the initial speed of the particle. Note that the term x_ increase linearly with time.
To bound this speed we add a dissipative term to the force proportional to the term x_ and
in the opposite direction. Solving this new di erential system gives:

F  ?F  ?kv
x_ = k + k + v0 e m t
vF v vk  ?kv
x = m ? 0m v e m t
where kv represents the dissipation gain. The bounds of the speed and the acceleration are
then:

lim x_ = kF
t!1 v
lim
t!1
x
 = 0
We can bound the speed and control the time constant kmv by the two parameters kv and m.

C.3 Forces to displacement


We present in this paragraph an algorithm to transform a force into displacement when the
robot in only controlled in position.
Suppose that the robot position at instant tn?1 is given by (xn?1 , yn?1 , n?1 ), with
Fx ; Fy ;  being the components of the resultant force. Fx is the longitudinal component, Fy
the traversal component and  the torque exerted on the middle of the motor wheels axis.
We can thus calculate the elementary displacement by:
L  K 0
 F  0
L= L = LLT 0 KT dc
x
? K 
Fy (C.4)
where (KL ; KT ; K ) are the gain factors and dc is the distance between the control point and
the center of the robot. The velocity is thus:
v   L 0

w = vmax
0 A L (C.5)
wmax
where ( L; A ) are the maximum linear and angular accelerations
If UP = [vp ; wp]T is the command vector at time tn?1 , we could limit the acceleration by:

v = vp + min(j dvdt j; L) Sign(dv) (C.6)


w = wp + min(j dw dt j; A) Sign(dw)
150
C.3. FORCES TO DISPLACEMENT 151

and the speed by:

v = min(v; vmax) (C.7)


w = min(w; wmax)
The command vector becomes:

v
U= w (C.8)
and the wheels speed di erence is:

v = E:w
2 (C.9)
where E is on the wheels axis. The velocity applied to the wheels is thus:

!  v+v
!

= r = R (C.10)
!l v?r v
Rl
where (Rr ; Rl) are the radii of the right and left wheels respectively. The wheels displacement
is thus:

Dd = !r dt (C.11)
Dg = !l dt
The curvilinear displacement and the orientation di erence become:

S = Dd +
2
Dg
(C.12)
 = Dd ?EDg
Finally, the new position of the robot is:

xn = xn?1 + S cos(n?1 + 2 )


yn = yn?1 + S sin(n?1 + 2 ) (C.13)
n = n?1 + 

151
References
[Alami 93a] R. Alami, R. Chatila & B. Espiau. Designing an intellingent control architec-
ture for autonomous robots. In International Conference on Advance Robotics.
ICAR'93, Tokyo (Japon), November 1993.
[Alami 93b] R. Alami, R. Chatila & B. Espiau. Designing an intellingent control architec-
ture for autonomous robots. In International Conference on Advanced Robotics.
ICAR'93, Tokyo (Japon), Novomber 1993.
[Alami 94] R. Alami & T. Simeon. Planning robust motion strategies for a mobile robot.
In IEEE International Conference on Robotics and Automation, San Diego Cal-
ifornia, (USA), pages 1312{1318, 1994.
[Alami 95] R. Alami, L. Aguilar, H. Bullata, S. Fleury, M. Herrb, F. Ingrand, M. Khatib
& F. Robert. A General Framework for Multi-Robot Cooperation and its Im-
plementation on a Set of Three Hilare Robots. In International Symposium on
Experimental Robotics, Stanford, California, (USA), June 1995.
[Ando 95] Y. Ando & S. Yuta. Following a Wall by an Autonomous Mobile Robot with a
Sonar-Ring. In IEEE, International Conference on Robotics and Automation,
Nagoya, Aichi (Japan), pages 2599{2606, 1995.
[Bauzil 91] G. Bauzil, R. Ferraz De Camargo, C. Lemaire & G. Vialaret. Robot Mobile Hi-
lare II: description du materiel. Technical report 91234, LAAS-CNRS, Toulouse,
1991.
[Bennamoun 91] M. Bennamoun, A. A. Masoud, A.Ramsay & M. M. Bayoumi. Avoidance
of Unknown Obstacles Using Proximity Fields. In IEEE International Workshop
On Intelligent Robots and Systems, Osaka, (Japan), 1991.
[Borenstein 91] J. Borenstein & Y. Koren. The VectorField Histogram - Fast Obstacles
Avoidance for Mobile Robots. In IEEE Transactions on Robotics and Automa-
tion, 1991.
[Bouilly 95a] B. Bouilly & T. Simeon. A sensor-based motion planner for mobile robot
navigation with uncertainty. In L. Dorst, M.V. Lambalgen & F. Voorbraak,
editeurs, Reasoning with uncertainty in robotics, pages 235{247. Springer, 1995.
[Bouilly 95b] B. Bouilly, T. Simeon & R. Alami. A numerical technique for planning motion
strategies of a mobile robot in presence of uncertainty. In IEEE, International
Conference on Robotics and Automation, Nagoya, Aichi (Japan), pages 1327{
1332, 1995.

152
References 153

[Bulata 96] H. Bulata & M. Devy. Modelisation Orientee Objet pour la Localisation d'un
Robot Mobile en Milieu Structure. In 10eme Congres Reconnaissance des Formes
et Intelligence Arti cielle (RFIA'96), Rennes (France), jan 1996.
[Camargo 91] R. Ferraz De Camargo. Architecture Materielle et Logicielle pour le Con-
tr^ole de l'Execution d'un Robot Mobile Autonome. PhD thesis, Universite Paul
Sabatier, (LAAS-CNRS), Toulouse (France), 1991.
[Camargo 92] R. Ferraz De Camargo, S.Fleury & M.Herrb. HILARE 2. Guide d'utilisation.
Technical report 92452, LAAS-CNRS, 1992.
[Chatila 90] Raja Chatila & Rogerio Ferraz De Camargo. Open Architecture Design and
Inter-task/Intermodule Communication for an Autonomous Mobile Robot. In
IEEE International Workshop on Intelligent Robots and Systems (IROS '90),
Tsuchiura (Japan), July 1990.
[Chatila 93] R. Chatila. Representation + Reason + Reaction ! Robot Intelligence. In 6th
International Symposium on Robotics Research. ISSR, Hidden Valley (Pennsyl-
vania, USA), October 1993.
[Chochon 83] H. Chochon & B. Leconte. Etude d'un module de locomotion pour un robot
mobile. Rapport de n d'etude ENSAE, Laboratoire d'Automatique et d'Analyse
des Systemes (C.N.R.S.), Toulouse (France), June 1983.
[Collin 95] I. Collin. Plani cation de t^aches-robots pour robots mobiles en environnement
structure. PhD thesis, Universite de Technologie de Compiegne, Compiegne
(France), 1995.
[Coste-Maniere 92] E. Coste-Maniere, B. Espiau & D. Simon. Reactive object in a task
level open controller. In IEEE International Conference on Robotics and Au-
tomation, Nice, (FRANCE), pages 2732{2737, May 1992.
[d'Andrea Novel 92] B. d'Andrea Novel, G. Bastin & G. Campion. Dynamic Feedback
Linearization on Nonholonomic Wheeled Mobile Robots. In IEEE International
Conference on Robotics and Automation, Nice, (FRANCE), pages 2527{2532,
May 1992.
[d'Andrea-Novel 95] B. d'Andrea-Novel, G. Campion & G. Bastin. Control of Nonholo-
nomic Wheeled Mobile Robots by State Feedback Linearization. The International
Journal of Robotics Research, 1995.
[De la Rosa 96] F. De la Rosa, C. Laugier & J. Najera. Robust path planning in the plane.
IEEE Transactions on Robotics and Automation, vol. 12, no. 2, pages 347{352,
1996.
[De Luca 94] A. De Luca & G. Oriolo. Local incremental planning for nonholonomic mobile
robots. In IEEE International Conference on Robotics and Automation, San
Diego California, (USA), pages 104{110, 1994.
[Delingette 91] H. Delingette, M. Herbert & K. Ikeuchi. Trajectory generation with curva-
ture constraint based on energy minimization. In IEEE International Workshop
On Intelligent Robots and Systems, Osaka, (Japan), 1991.

153
References 154

[Dickmanns 89] E.D. Dickmanns & T. Christians. Relative 3D-State Estimation for Au-
tonomous Visual Guidance of Road Vehicles. In Intelligent Autonomous Systems
(IAS'2), Amsterdam (Netherlands), pages 683{693, 1989.
[Dickmanns 95] E.D. Dickmanns. Performance Improvements for Autonomous Road Ve-
hicles. In Intelligent Autonomous Systems (IAS'4), Karlsruhe (Germany), pages
2{14, 1995.
[Espiau 92] B. Espiau, F. Chaumette & P. Rives. A new approach to visual servoing in
robotics. IEEE Transactions On Robotics and Automation, vol. 8, no. 3, pages
313{326, June 1992.
[Fiorot 89] J. Fiorot & P. Jeannin. Courbes et surfaces rationelles. Masson, Paris, 1989.
[Fleury 94] S. Fleury, M. Herrb & R. Chatila. Design of a Modular Architecture for Au-
tonomous Robot. In IEEE International Conference on Robotics and Automa-
tion, San Diego California, (USA), 1994.
[Fleury 95] S. Fleury, P. Soueres, J.-P. Laumond & R. Chatila. Primitives for Smoothing
Mobile Robot Trajectorie. IEEE Transactions on Robotics and Automation,
vol. 11, no. 3, pages p.441{448, June 1995.
[Fleury 96] S. Fleury. Architecture de contr^ole distribuee pour robots autonomes: principes,
conception et applications. PhD thesis, Universite Paul Sabatier, Fevrier 1996.
[Gamkerlidze 80] R. V. Gamkerlidze. Analysis ii - convex analysis and approximation
theory. Springer-Verlag, 1980.
[Giralt 93] G. Giralt, R. Chatila & R. Alami. Remote Intervention, Robot Autonomy,
And Teleprogramming: Generic Concepts And Real-World Application Cases.
In IEEE International Workshop on Intelligent Robots and Systems (IROS '93),
Yokohama, (Japan), pages 314{320, July 1993.
[Green 94] D.N. Green, J.Z. Sasiadek & G.S. Vukovich. Path Traking, Obstacle Avoidance
and Position Estimation by an Autonomous, Wheeled Planetary Rover. In IEEE
International Conference on Robotics and Automation, San Diego California,
(USA), pages p. 1300{1305, 1994.
[J. Koseck 96] J. Koseck. Visually guided navigation. In International Symposium on
INTELLIGENT ROBOTIC SYSTEMS-SIRS, pages 301{308, July 1996.
[Kanayama 89] Y. Kanayama & B. Hartman. Smooth local planning for autonomous ve-
hicles. In Proc. IEEE International Conference on Robotics and Automation,
Scottsdale, (USA)., 1989.
[Khoumsi 88] A. Khoumsi. Pilotage, asservissement sensoriel et localisation d'un robot
mobile autonome. PhD thesis, Universite Paul Sabatier, Toulouse, France, 1988.
[Krogh 84] B. H. Krogh. A Generalised Potential Field Approch to Obstacle Avoidance
Control. In Robotics Research: The Next Five Years and Beyond, SME Confer-
ence Proceedings, Bethlehem, PA, 1984.
[Krogh 86] B.H. Krogh & C.E. Thorpe. Integrated path planning and dynamic steering
control for autonomous vehicles. In Proc. IEEE International Conference on
Robotics and Automation, San Francisco (USA)., 1986.
154
References 155

[Laumond 93] J.-P. Laumond & P. Soueres. Metric induced by the shortest paths for a
car-like mobile robot. In IEEE International Workshop On Intelligent Robots
and Systems, Yokohoma, (Japan), 1993.
[Laumond 94] Jean-Paul Laumond, Paul E. Jacobs, Michel Tax & Richard M. Murray.
A Motion Planner for Nonholonomic Mobile Robots. IEEE Transactions On
Robotics and Automation, vol. 10, no. 5, pages 577{590, Oct. 1994.
[M. Khatib 95] M. Khatib & R. Chatila. An extended potentiel eld approach for mobile
robot sensor-based motions. Intelligent Autonomous Systems (IAS'4), Karlsruhe
(Germany), pages 490{496, 1995.
[M. Khatib 96] M. Khatib & H. Jaouni. Kinematics Integrated in Non-holonomic Au-
tonomous Navigation. Technical report 96346, LAAS-CNRS, September 1996.
[Moravec 85] H. P. Moravec & A. Elfes. High Resolution Maps from Wide Angle Sonar. In
IEEE International Conference on Robotics and Automation, San Louis, (USA),
1985.
[Nelson 89] W. Nelson. Continuous-Curvatures Paths for Autonomous Vehicules. In
Proc. IEEE International Conference on Robotics and Automation, Scottsdale,
(USA)., pages p. 1260{1264, 1989.
[O. Khatib 80] O. Khatib. Commande dynamique dans l'espace operationnel des robots
manipulateurs en presence d'obstacles. PhD thesis, Ecole Nationale Superieure
de l'Aeronautique et de l'Espace, Toulouse, France, 1980.
[O. Khatib 86] O. Khatib. Real-time obstacle avoidance for manipulators and mobile
robots. The International Journal of Robotics Research, vol. 5, no. 1, pages
90{98, 1986.
[Perebaskine 92] V. Perebaskine. Une architecture modulaire pour le contr^ole d'un
robot mobile autonome. PhD thesis, Universite Paul Sabatier, (LAAS-CNRS),
Toulouse (France), 1992.
[Pissard-Gibollet 93] R. Pissard-Gibollet. Conception et Commande par Asservissement
Visuel d'un Robot Mobile. PhD thesis, L'Ecole des Mines de Paris, Dec. 1993.
[Pissard-Gibollet 95] R. Pissard-Gibollet & P. Rives. Applying Visual Servoing Tech-
niques to Control a Mobile Hand-Eye System. In IEEE, International Conference
on Robotics and Automation, Nagoya, Aichi (Japan), May 1995.
[Quinlan 92] S. Quinlan & O. Khatib. Towards Real-Time Execution of Motion Tasks. In
R. Chatila & G. Hirzinger, editeurs, Experimental Robotics 2. Springer-Verlag,
1992.
[Quinlan 93] S. Quinlan & O. Khatib. Elastic bands: connecting path planning and control.
In IEEE International Conference on Robotics and Automation, Atlanta, (USA),
1993.
[Quinlan 95] S. Quinlan. Real-Time Collision-Free Path Modi cation. PhD thesis, Stan-
ford University, CS Departement, January 1995.
[Reeds 90] J.A. Reeds & L.A. Shepp. Optimal paths for a car that goes both forwards and
backwards. Paci c Journal Mathematics, vol. 145, no. 2, pages 367{393, 1990.

155
References 156

[Rives 93] P. Rives, R. Pissard-Gibollet & K. Kapellos. Development of a Reactive Mobile


Robot Using Real Time Vision. In International Symposium on Experimental
Robotics, Kyoto (Japan)., Oct. 1993.
[Samson 90a] C. Samson & K. Ait-Abderrahim. Mobile-Robot Control. Part 1 : Feed-
back Control of a Nonholonomic Wheeled Cart in Cartesian Space. Rapport de
recherche 1288, Institut National de Recherche en Informatique et en Automa-
tique (I.N.R.I.A.), Sophia Antipolis (France), October 1990.
[Samson 90b] C. Samson, B. Espiau & M. Le Borgne. Robot control: the task function
approach. Oxford University Press, 1990.
[Samson 91] C. Samson & K. Ait-Abderrahim. Feedback stabilization of a nonholonomic
wheeled mobile robot. In IEEE International Workshop On Intelligent Robots
and Systems, Osaka, (Japan), 1991.
[Samson 93] C. Samson. Time varying feedback stabilization of a car-like wheeled mobile
robot. The International Journal of Robotics Research, vol. 12, no. 1, pages
55{64, Feb. 1993.
[Segovia 91] A. Segovia, M. Rombaut, A. Preciado & D. Meizel. Comparative study of the
di erent methods of path generation for a mobile robot in a free environment. In
'91 International Conference on Advanced Robotics (ICAR),Pisa (Italy), pages
1667{1670, June 1991.
[Soueres 94] P. Soueres, J.-Y. Fourquet & J.-P. Laumond. Set of reachable positions for a
car. IEEE Transactions on Automatic Control, vol. 39, no. 8, August 1994.
[Tilove 89] R.B. Tilove. Local Obstacle Avoidance for Mobile Robots based on the method
of Arti cial Potentials. In Research Publication GMR - 6650, 1989.
[van Turennout 92] P. van Turennout, G. Honderd & L.J. van Schelven. Wall-following
Control of Mobile Robot. In IEEE International Conference on Robotics and
Automation, Nice, (FRANCE), pages 280{285, May 1992.
[Vendittelli 96] M. Vendittelli & J.-P. Laumond. Visible position for car-like robot amidst
obstacles. In Workshop on Algorithmic Foundations of Robotics, WAFR'96, July
1996.
[Yagi 91] Y. Yagi, S. Kawato & S. Tsuji. Collision Avoidance Using Omnidirectional
Image Sensor. In IEEE International Conference on Robotics and Automation,
Sacramento, (USA), 1991.
[Zhu 89] W. Choi D. J. Zhu & J. C. Latombe. Contingency-tolerant motion planning and
control. In Proceedings of IROS 89, Tsukuba, Japan, 1989.

156

You might also like