Module 2 Slides
Module 2 Slides
Mobile Robots
Dr. Magnus Egerstedt
Professor
School of Electrical and
Computer Engineering
Module 2
Mobile Robots
?
sensors
controller
robot model
2.1.1
2.1.2
Behaviors
2.1.3
Behaviors
2.1.4
2.2.1
Model 1.0
vr
(x, y)
L
x =
y =
R
2 (vr
+ v ) cos
R
2 (vr
+ v ) sin
R
L (vr
v )
2.2.2
(x, y)
Dynamics:
x = v cos
y = v sin
=
2.2.3
Model 2.0
x = v cos
y = v sin
=
x =
y =
R
2v
v = (vr + v )
= vr + v
2
R
R
L
= (vr v )
= vr v
L
R
R
2 (vr
+ v ) cos
R
2 (vr
+ v ) sin
R
L (vr
v )
2v + L
vr =
2R
2v L
v =
2R
2.2.4
2.3.1
Wheel Encoders
Wheel encoders give the distance moved by each wheel
Assume the wheels are following an arc (short time scale)
Dr
Dc
D + Dr
Dc =
2
D!
x = x + Dc cos()
y = y + Dc sin()
Dr D
=+
L
Magnus
Egerstedt,
Control
of
Mobile
Robots,
Georgia
Ins<tute
of
Technology
2.3.2
Wheel Encoders
But how do we know how far each wheel has moved?
Dr
Dc
D!
2.3.3
A Major Disclaimer
DRIFT!!!
2.3.4
2.3.5
2.4.1
Range-Sensor Skirts
We will mainly deal with range-sensors
2.4.2
(d2 , 2 )
(d1 , 1 )
2.4.3
(d2 , 2 )
(d1 , 1 )
x1 = x + d1 cos(1 + )
y1 = y + d1 sin(1 + )
2.4.3
Example: Rendezvous
2.4.4
Example: Rendezvous
2.4.4
2.5.1
x = v0 cos
y = v0 sin
=
=???
2.5.2
r = d , e = d , =
= KP e + KI
ed + KD e
2.5.3
d = 0, = 100 e = 100
Solution: Ensure that e [, ]
Standard trick is to use atan2!
e = atan2(sin(e), cos(e)) [, ]
2.5.4
Example: Navigation
Problem: Go to a goal location without bumping in to
obstacles:
?
At a minimum, we need two behaviors: Go-to-goal and Avoidobstacles!
2.5.5
x = v0 cos
y = v0 sin
=
(xg , yg )
d = arctan
(x, y)
e = d , = PID(e)
yg y
xg x
2.6.1
Attempt 1
= K(d )
ANGLES!!!
2.6.2
Attempt 2
= K(d )
2.6.3
Attempt 3
= Kbig (d )
JUST RIGHT!!!
2.6.4
2.6.5
2.7.1
(xo , yo )
(x, y)
There is no obvious
correct answer
2.8.1
Where to Go?
Choice depends on direction to goal.
Not pure but blended
2 = obst
2
3 = goal
Pure go-to-goal
4 = F (obst , goal )
1 = obst +
Blended
2.8.2
Arbitration Mechanisms
This example illustrate two fundamentally different
arbitration mechanisms
Winner takes all = Hard switches
Blending = Combined behaviors
Both approaches have merit in different situations
Performance?
Analysis?
We will see how to design systematic behaviors and
arbitration mechanisms
2.8.3
2.8.4