Sie sind auf Seite 1von 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?

## 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

## 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

7.1.1

## Lecture 7.1 Approximations and Abstractions

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

7.1.1

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
:
=

7.1.3

## Next Few Lectures

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

7.1.4

## Lecture 7.2 A Layered Architecture

We have a problem: Even with a simple robot model, the
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

## 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

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?

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

xg k

xg k

kx

xo k =

TRACK

Actual
trajectory

## Next time: Lets do this for the

differential-drive mobile robot

xo k <

uAO

7.2.5

Intermediary
Waypoints

PLAN

Reference
trajectory

TRACK

Actual
trajectory

## How should we design the tracker when the robot is a

differential-drive mobile robot?

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
:
=

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)

7.3.3

## 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

7.3.4

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

## 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

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!

7.4.1

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

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

u1
u2

7.4.4

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

## 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

7.4.5

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

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

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]

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

7.5.8

## When is POSE Not Reasonable?

Humanoids
Snakes
Mobile manipulators

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
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( )
=
`

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

sin()

7.6.6

Summing It Up
(u1 , u2 )

PLAN

TRANSFORM

(v, )
(v, )
=C

sin()

TRACK

7.6.7

## Lecture 7.7 To Probe Further

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

7.7.1

## Nonlinear and Optimal Control

x = f (x, u)
min
u

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

(x(T ))

7.7.2

Machine Learning
V (x0 ) =

1
X

c(xk , (xk ))

k=0

u

7.7.3

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!

7.7.6

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

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

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

xg k

xg k

kx

xo k =

TRACK

Actual
trajectory

xo k <

## Three abstraction layers

Differential-drive robots

uAO

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

7.8.6