You are on page 1of 54

Control of

Mobile Robots
Dr. Magnus Egerstedt
Professor
School of Electrical and
Computer Engineering

Module 7
Putting It All Together

How make mobile robots move in effective, safe,


predictable, and collaborative ways using modern
control theory?

School of Electrical and Computer Engineering

Lecture 7.1 Approximations and Abstractions


We need to understand when and how our models are relevant!
u=0

uGT G

kx xo k = and
huGT G , ucc
FW i > 0
d := kx

kx

kx

xg k < d and

d := kx

ucc
FW
kx

xo k <

and

xg k

huGT G , ucF W i > 0

huAO , uGT G i > 0

xg k

kx

xo k =

xg k

ucF W
d := kx

xg k

d := kx

xg k

kx xo k = and kx xo k = and
huGT G , ucF W i > 0
huGT G , ucc
FW i > 0

kx

xo k <

uAO

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.1.1

Lecture 7.1 Approximations and Abstractions


We need to understand when and how our models are relevant!

Slow and steady wins the race

Dont rush it when doing the quizzes

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.1.1

Main Assumptions Made So Far


Dynamics:

x = u, x 2 <2

Not even close to


being reasonable!

Sensors:
(d2 ,

2)

(d1 ,

1)

More or less ok
Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.1.2

Whats The Problem?


x = u, x 2 <2
Recall the unicycle model (e.g., for describing differential
drive mobile robots)

(x, y)

8
< x = v cos
y = v sin
:
=

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.1.3

Next Few Lectures


How do we make a unicycle robot act like x = u ?

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.1.4

Lecture 7.2 A Layered Architecture


We have a problem: Even with a simple robot model, the
navigation architecture becomes rather involved
u=0

uGT G

kx xo k = and
huGT G , ucc
FW i > 0
d := kx

kx

kx

xg k < d and

d := kx

ucc
FW
kx

xo k <

and

xg k

huGT G , ucF W i > 0

huAO , uGT G i > 0

xg k

kx

xo k =

xg k

ucF W
d := kx

xg k

d := kx

xg k

kx xo k = and kx xo k = and
huGT G , ucF W i > 0
huGT G , ucc
FW i > 0

kx

xo k <

uAO

Would like to be able to reuse this while allowing for more


realistic robot models

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.2.1

All Good Things Come in Threes


Standard navigation systems are typically decoupled along
three different levels of abstraction:
Strategic Level: Where to go (high-level, long-term)?
Operational Level: Where to go (low-level, short-term)?
Tactical Level: How to go there?

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.2.2

All Good Things Come in Threes


Or slightly less militaristic:
High-Level Planning: Where should the (intermediary)
goal points be? Not in this course!
Low-Level Planning: Which direction to move inbetween goal points? Use the navigation architecture!
Execution: How make the robot move in those
directions? Control design with reference signal!

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.2.3

High-Level Planning
There are many AI methods (e.g., Dijkstra, Dynamic
Programming, A*, D*, RRT) for doing this!

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.2.3

Low-Level Planning
We already know how to do this! Assume that

x = u, x 2 <2

and get to work!


The output is a desired direction (and magnitude) of
travel

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.2.4

Execution-Level
This is where we make the unicycle (or any other mobile
robot) act like a simpler system over which we are
performing the low-level planning

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.2.4

The Architecture
Intermediary
Waypoints
Reference
trajectory

PLAN

u=0

uGT G

kx xo k = and
huGT G , ucc
FW i > 0
d := kx

kx

kx

xg k < d and

d := kx

ucc
FW
kx

xo k <

and

xg k

ucF W
d := kx

xg k

d := kx

xg k

kx xo k = and kx xo k = and
huGT G , ucF W i > 0
huGT G , ucc
FW i > 0

kx

x = f (x, u), u = g(x, r)

xg k

huGT G , ucF W i > 0

huAO , uGT G i > 0

xg k

kx

xo k =

TRACK

Actual
trajectory

Next time: Lets do this for the


differential-drive mobile robot

xo k <

uAO

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.2.5

Lecture 7.3 Differential-Drive Trackers


Intermediary
Waypoints

PLAN

Reference
trajectory

TRACK

Actual
trajectory

How should we design the tracker when the robot is a


differential-drive mobile robot?

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.3.1

Recap: The Model


v`

vr
R
(x, y)

L
8
R
x

=
>
2 (vr + v ) cos
>
>
>
<
y = R2 (vr + v ) sin
>
>
>
>
:
=R
v)
L (vr

2v + L
vr =
2R
2v
L
v` =
2R

8
< x = v cos
y = v sin
:
=

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.3.2

Recap: Dealing With Angles


How drive the robot in a specific direction?

8
< x = v cos
y = v sin
:
=
e=

(x, y)

, = PID(e)
Z t
P ID(e) = KP e(t) + KI
e( )d + KD e(t)

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.3.3

Adding In The Speed Component

Let the output from the planner be u =

8
< x = v cos
y = v sin
:
=
x 2 + y 2 =

u?
d

= atan

(x, y)

v 2 cos2

+ v 2 sin2

u1
u2
u2
u1

(x = u)

=v

q
v = kuk ) v = u21 + u22

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.3.4

The Complete Differential-Drive Architecture


Intermediary
Waypoints

(u1 , u2 )

PLAN

TRACK

u=0

uGT G

kx xo k = and
huGT G , ucc
FW i > 0
d := kx

kx

kx

xg k < d and

xo k <

and

d := kx

ucc
FW
kx

xo k =

xg k

huGT G , ucF W i > 0

huAO , uGT G i > 0

xg k

kx

xg k

ucF W
d := kx

xg k

d := kx

xg k

kx xo k = and kx xo k = and
huGT G , ucF W i > 0
huGT G , ucc
FW i > 0

uAO

kx

xo k <

(vr , v )

= atan

u2
u1

! = PID( d
q
v = u21 + u22

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

2v + L
vr =
2R
2v
L
v` =
2R
)

7.3.5

Lecture 7.4 A Clever Trick


We can use a layered architecture for making differential drive
robots act like x = u
Key idea: Plan using the simple dynamics, then track using
some clever controller (PID?)
Today: We can be even more clever!

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.4.1

Transforming the Unicycle

New point

(x, y)

8
< x = v cos
y = v sin
:
=

What if we ignored the orientation and picked a different point


on the robot as the point we care about?

x
= x + cos
y = y + sin

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.4.2

New Dynamics
8
< x = v cos
y = v sin
:
=

x
= x sin
y = y + cos

= v cos

x
= x + cos
y = y + sin

sin

= v sin + cos

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.4.3

New Inputs
Lets assume that we can control the new point directly

x
= u1 , y = u2
x
= v cos
sin
y = v sin + cos

cos
sin
sin
cos
R( ) 1 0
0

= u1
= u2
v

u1
u2

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.4.4

New Inputs
Lets assume that we can control the new point directly

R( )

1 0
0

1
0

0
1
`

R(

x
= u1 , y = u2
u1
u2

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

u1
u2

7.4.4

Whats The Point?


Before:

(u1 , u2 )

PLAN

u=0

uGT G

kx xo k = and
huGT G , ucc
FW i > 0
d := kx

kx

kx

xg k < d and

xo k <

and

d := kx

ucc
FW
kx

xo k =

xg k

huGT G , ucF W i > 0

huAO , uGT G i > 0

xg k

kx

xg k

TRACK

e= d
v = kuk

(v, )

, = PID(e)

ucF W
d := kx

xg k

d := kx

xg k

kx xo k = and kx xo k = and
huGT G , ucF W i > 0
huGT G , ucc
FW i > 0

kx

xo k <

uAO

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.4.5

Whats The Point?


Now:

(u1 , u2 )

PLAN

u=0

uGT G

kx xo k = and
huGT G , ucc
FW i > 0
d := kx

kx

kx

xo k <

and

huGT G , ucF W i

xg k < d and

d := kx

ucc
FW
kx

xo k =

huAO , uGT G i > 0

xg k

kx

xg k

>0

xg k

TRANSFORM

1
0

0
1
`

R(

(v, )

u1
u2

ucF W
d := kx

xg k

d := kx

xg k

kx xo k = and kx xo k = and
huGT G , ucF W i > 0
huGT G , ucc
FW i > 0

kx

xo k <

uAO

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.4.5

Lecture 7.5 Other Robot Classes


Last time: It is indeed possible to make differential drive
mobile robots act like x = u
If we are willing to ignore orientation
And accept a small offset error
Today: Does this generalize to other types of robots? And,
what other types are there?

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.5.1

Other Models
There are lots and lots of different types of robotic systems
We cannot cover them all. Instead, we will focus on what they
have in common:
UNICYLE

x = v cos
y = v sin
=
States: position and orientation
Inputs: Angular and transl. velocities

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.5.2

Other Models
There are lots and lots of different types of robotic systems
We cannot cover them all. Instead, we will focus on what they
have in common:
CAR-LIKE ROBOT

x = v cos( + )
y = v sin( + )
= v sin()
= u
States: position, orientation, steering angle
Inputs: Transl. vel. and steering angular vel.

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.5.3

Other Models
There are lots and lots of different types of robotic systems
We cannot cover them all. Instead, we will focus on what they
have in common:
SEGWAY ROBOT
base: unicycle
pendulum:

3(mw + m
b )v

2 sin
d
mb

L(

R
cos

R)

mb d cos 2
+
)
I
2

+ b d si
m
2 sin +
n ( 2 + 2
d
)2 = m 1gd sin =
b
m
2
1 )m w + 2
+ b ( L + )
s
co
+ mb d sin

)
I
R
R
d
3
m
2
(
2
b
+

+ s2R
co
d
m
b
L
3
((

States: position, orientation, tilt angle, and velocities


Inputs: Wheel torques

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.5.4

Other Models
There are lots and lots of different types of robotic systems
We cannot cover them all. Instead, we will focus on what they
have in common:
FIXED-WING AIRCRAFT

x = v cos( )
y = v sin( )
=
z = u
States: position, orientation, altitude
Inputs: Transl., angular, vertical vel.

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.5.5

Other Models
There are lots and lots of different types of robotic systems
We cannot cover them all. Instead, we will focus on what they
have in common:
UNDERWATER GLIDER

x = v cos( )
y = v sin( )
=
z = u
States: position, orientation, altitude
Inputs: Transl., angular, vertical vel.

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.5.6

Punchline
Everything (almost) involves POSE = position and heading!
Everything (almost) with pose is almost a unicycle!
So we can (almost) use what we have already done and then
make the actual model class fit the unicycle Just add a layer
Next lecture: Do this for the car robot!

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.5.7

Adding Constraints
A lot of times we actually need constraints, which
unfortunately make it harder to control the robots (not in this
class)
REEDS-SHEPP

UNICYLE

x = v cos
y = v sin
=

DUBINS

x = v cos( )
y = v sin( )
=
v = 1, 2 [ 1, 1]

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

x = v cos( )
y = v sin( )
=
|v| = 1, [ 1, 1]

7.5.8

When is POSE Not Reasonable?


Humanoids
Snakes
Mobile manipulators

Next time: Cars (when it is ok)

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.5.9

Lecture 7.6 Car-Like Robots


Claims:
Pose (position and heading) is central
Other pose-based models can be made to look like a
unicycle
Today: Car-like robots

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.6.1

Car Kinematics
Whats different about the car is that it has four wheels.
Only the front wheels turn, which means that the steering
wheel angle (= front wheel angle) becomes important

x = v cos( + )
y = v sin( + )
= v sin()
=

` (x, y)

states:

(x, y)

inputs:
position
heading
steering angle

speed
angular steering velocity

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.6.2

Curvature Control
How do we make this act like a unicycle?
Assume a unicycle is driving along a
circular arc

=
v

x = v cos( + )
y = v sin( + )
= v sin()
=

x = x0 + cos( )
= x0 + sin()
x = cos()
= v cos( )
v
=

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.6.3

Curvature Control
Lets redo this for the car
+

x = x0 + sin( + )
cos( + )
x = ( + )
= v sin() = 0

= v cos( + )

`
=
sin( )
sin( )
=
`

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.6.4

Lining Up The Curvatures


UNICYCLE

=
v

CAR

sin( )
=
`

sin( ) =
v

= arcsin

But we can actually stay with sinus instead of dealing with arcsin!

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.6.5

An Almost P-Regulator
=
= C(d

=C

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

sin()

7.6.6

An Almost P-Regulator
=
= C(d

=C

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

sin()

7.6.6

Summing It Up
(u1 , u2 )

PLAN

TRANSFORM

(v, )
(v, )
=C

sin()

TRACK

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.6.7

Lecture 7.7 To Probe Further


Believe it or not there are lots of things not covered in this
course!

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.7.1

Nonlinear and Optimal Control


x = f (x, u)
min
u

L(x(t), u(t))dt +

(x(T ))

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.7.2

Machine Learning
V (x0 ) =

1
X

c(xk , (xk ))

k=0

V (x) = min{c(x, u) + V (f (x, u))}


u

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.7.3

Perception and Mapping

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.7.4

High-Level AI

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.7.5

To Probe Further
Not only are there things not covered in the class, there are lots
of things we dont know yet!

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.7.6

Lecture 7.8 In Conclusion


Thats it folks!

Ambition with the course:


Learn how to make mobile robots move in effective and
safe ways using modern control theory
Appreciate the value of systematic thinking/design
Bridge the theory-practice gap
Have fun and spark further investigations
Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.8.1

High-Level Punchline #1 The Model


Without a model, we cannot say much about how the system
will behave:
Need models to predict behavior forward in time
Need models to be able to derive control laws in a
systematic manner
The model should be rich enough to be relevant yet simple
enough to be useful
Bananas vs. Non-bananas

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.8.2

High-Level Punchline #2 Feedback


Given a model, feedback control should be used to make the
system behave the way we want it to (if possible)
u

u=
x

x = Ax + Bu
y = Cx

Kx

x
= A
x + Bu + L(y

Cx
)

Stability, Tracking, Robustness


State feedback and observers

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.8.3

High-Level Punchline #3 Architectures


Plan for simple systems, execute on the real system
Intermediary
Waypoints
Reference
trajectory

PLAN

u=0
uGT G

kx xo k = and
huGT G , ucc
FW i > 0
d := kx

kx

kx

xg k < d and

d := kx

ucc
FW
kx

xo k <

and

xg k

ucF W
d := kx

xg k

d := kx

xg k

kx xo k = and kx xo k = and
huGT G , ucF W i > 0
huGT G , ucc
FW i > 0

kx

x = f (x, u), u = g(x, r)

xg k

huGT G , ucF W i > 0

huAO , uGT G i > 0

xg k

kx

xo k =

TRACK

Actual
trajectory

xo k <

Three abstraction layers


Differential-drive robots

uAO

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.8.4

High-Level Punchline #4 Whatever


Dont take my word for it
Experiment and tweak
The field is certainly not done yet

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.8.5

THANKS!

Amy LaViers

Greg Droge
JP de la Croix
Zak Costello

Smriti Chopra

All of you!
Rowland Oflaherty

Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

7.8.6

You might also like