Anda di halaman 1dari 55

# Control of Mobile Robots

## Dr. Magnus Egerstedt

Professor School of Electrical and Computer Engineering

## Module 6 The Navigation Problem

How make mobile robots move in effective, safe, predictable, and collaborative ways using modern control theory?

## Lecture 6.1 Behaviors Revisited

Lets return to the navigation problem using behaviors Use control theory to describe what is going on

6.1.1

## Start Simple: The Model

For the purpose of planning, assume that

x = u, x 2 0 0 1 0 x = x+ u 0 0 0 1 = B AB = I 0 , rank() = 2
CC!
6.1.2

## The Dynamic Duo

The two bread-and-butter behaviors are go-to-goal and avoidobstacle Go-to-goal: Drives the robot towards the goal Avoid-obstacle: Dont slam into things Control design task: pick a desired motion vector and set that equal to the input u

u x

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

6.1.3

Go-To-Goal

xg e = xg x

u = Ke e =0x = Ke

Asymptotically stable?

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

6.1.4

A Concern
A linear controller means the robot goes faster the further away the goal is. Solution, in practice, make the gain K a function of e

xg e = xg x

e = K ( e ) e

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

6.1.5

A Concern
A linear controller means the robot goes faster the further away the goal is. Solution, in practice, make the gain K a function of e

u K= e

e = K ( e ) e 2 v 0 1 e e e

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

6.1.5

Avoid-Obstacle
To get the direction, just flip the sign in the go-to-goal behavior

xo

e = xo x x u = Ke e = Ke
Unstable!

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

6.1.6

More Concerns
The robot drives off to infinity? It is overly cautious? We care less the closer we get? Solutions Make K dependent on e! Switch between behaviors! Use the induced mode!

xo x

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

6.1.7

More Concerns
The robot drives off to infinity? It is overly cautious? We care less the closer we get? Solutions Make K dependent on e! Switch between behaviors! Use the induced mode!

u 1 K= e c e2 +

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

6.1.7

Behavior/Mode Transitions?
Whats missing? Couple actual robot dynamics to the behaviors (next module) Figure out the mode transitions (next lecture) But first, lets try it for real!

6.1.8

## Lecture 6.2 Hard Switches vs Blending

Given two different behaviors, how should they be combined?

## Two options: Hard Switches Blended Behaviors

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

6.2.1

## Pros and Cons

Philosophical Question: Can robots chew gum and walk at the same time?

6.2.2

## Pros and Cons

Philosophical Question: Can robots chew gum and walk at the same time?

6.2.3

## Pros and Cons

Philosophical Question: Can robots chew gum and walk at the same time?

6.2.3

## Pros and Cons

Philosophical Question: Can robots chew gum and walk at the same time?

6.2.4

A Switch HA

x =u

## uAO = KAO (x xo ) do Dsaf e x = uGT G do > Dsaf e +

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

x = uAO

6.2.4

Blending
Blending function

6.2.5

Example
1 = 1 e d o do

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

6.2.6

Punchlines
Two choices both of them come with pros and cons Would like to have our cake and eat it (smooth ride + performance guarantees) Enter: the induced mode

6.2.7

## Lecture 6.3 Convex and Non-Convex Worlds

Lets see when our two basic behaviors work and when we need more behaviors! We will start simple and add complexity Point-worlds Circular obstacles Convex worlds Non-convex obstacles Labyrinths COMPLEXITY

6.3.1

Point-Worlds

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

6.3.2

Point-Worlds

Here the two behaviors are sufficient unless we are superunlucky. (Maybe some mild Zeno) Solution: Add a little bit of noise in practice this is never really needed since the world is noisy
Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

6.3.2

Circular Obstacles

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

6.3.3

Convex Obstacles

convex

non-convex

A set is convex if every line in-between two points in the set lies in the set

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

6.3.4

Convex Obstacles

Even though the obstacles are quite nice-looking, we can get stuck for real with only these two behaviors We need some way to keep going along the boundary of the obstacle!
Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

6.3.5

Non-Convex Obstacles

Even worse!

6.3.6

Labyrinths

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

6.3.7

Next Lecture
We really need at least one more behavior to be able to deal with non-circular worlds!

6.3.8

## Lecture 6.4 Wall Following

We need some way of negotiating complex environments A really useful behavior is one that makes the robot follow the boundary of an obstacle/wall This will also allow us to introduce the induced mode in a systematic way

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

6.4.1

The follow-wall behavior should maintain a constant distance to the obstacle/wall it is if following

uAO

xo uF W 0 1 = uAO = R( /2)uAO 1 0
6.4.2

uF W

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

Clockwise or Counter-Clockwise?
We can clearly move in two different directions along a wall!

ucc FW

uAO

xo

uc FW

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

6.4.3

Clockwise or Counter-Clockwise?
We can clearly move in two different directions along a wall! Rotation Matrix: R( ) =

cos() sin()

sin() cos()

uc FW

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

6.4.3

Clockwise or Counter-Clockwise?
Which direction to choose?

There is no obvious answer to that! Maybe let the goal-to-goal direction determine?
Magnus Egerstedt, Control of Mobile Robots, Georgia Ins<tute of Technology

6.4.4

Clockwise or Counter-Clockwise?

v, w = v T w = v w cos((v, w))
c uGT G , uc > 0 u FW FW cc uGT G , ucc > 0 u FW FW
6.4.5

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

Issues
When release the follow-wall behavior? Is there a systematic way to scale the behavior?

R( /2)uAO

6.4.6

## Lecture 6.5 The Induced Mode

We have seen that we need wall-following to solve complex navigation problems Last lecture: R( /2)uAO This lecture: How can this be connected to the induced mode between go-to-goal and avoid-obstacle in a more systematic manner?

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

6.5.1

The Setup
xo x uAO f2 = CAO (x xo ) xg

6.5.2

## Connecting to the Induced Mode

1 g (x) = (x xo 2 2 ) = 0 2 f1 = CGT G (xg x) The Induced Mode:

f2 = CAO (x xo )

## g = ( x xo ) T x g L f2 g = f2 = (x xo )T CAO (x xo ) = CAO x xo 2 x g L f1 g = f1 = CGT G (x xo )T (xg x) x

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

6.5.3

## Connecting to the Induced Mode

Lf1 g = CGT G (x xo )T (xg x) Lf2 g = CAO x xo 2 1 x = Lf2 gf1 Lf1 gf2 L f2 g L f1 g
Quite a mess! The Induced Mode:

Recall:

ucc F W = R( /2)uAO
They are the same!!

uc F W = R( /2)uAO

6.5.4

## Not so easy! Next time.

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

6.5.5

## Lecture 6.6 A Complete Navigation System

When do we stop following walls? Not when we stop sliding!

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

6.6.1

When To Stop?
We should stop when enough progress has been made and we have a clear shot to the goal!

= time of last switch progress: x xg < x( ) xg clear shot: uAO , uGT G > 0

6.6.2

## Putting It All Together

x xo = and uGT G , ucc FW > 0
d := x xg

u=0
x x g

uGT G
x xg < d and

x xo = and

uGT G , uc FW > 0
d := x xg

## uAO , uGT G > 0

d := x xg d := x xg

ucc FW
x x o <

uc FW
x xo = and x xo = and c u , u GT G uGT G , ucc > 0 FW > 0 FW

x x o <

uAO

6.6.3

## Does This Work?

u=0
x xo = and uGT G , ucc FW > 0
d := x xg

uGT G
x xg < d and

x xo = and

x x g

uGT G , uc FW > 0
d := x xg

## uAO , uGT G > 0

d := x xg d := x xg

ucc FW
x x o <

uc FW
x xo = and x xo = and uGT G , uc uGT G , ucc FW > 0 FW > 0

x x o <

uAO

6.6.4

## Lecture 6.7 Practical Considerations

u=0
x xo = and uGT G , ucc FW > 0
d := x xg

uGT G
x xg < d and

x xo = and

x x g

uGT G , uc FW > 0
d := x xg

## uAO , uGT G > 0

d := x xg d := x xg

ucc FW
x x o <

uc FW
x xo = and x xo = and uGT G , uc uGT G , ucc FW > 0 FW > 0

x x o <

uAO

6.7.1

## Obstacles Arent Points

We have to allow for non-point obstacles! But most (all) sensors really return points

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

6.7.2

Some Options
1. Go with the closest obstacle point (not bad)

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

6.7.3

Some Options
1. Go with the closest obstacle point (not bad) 2. Weigh and add the obstacle vectors depending on distance (better)

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

6.7.3

Some Options
1. Go with the closest obstacle point (not bad) 2. Weigh and add the obstacle vectors depending on distance (better) 3. Weight and add depending on distance and direction of travel (best)

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

6.7.3

Some Options
1. Go with the closest obstacle point (not bad) 2. Weigh and add the obstacle vectors depending on distance (better) 3. Weight and add depending on distance and direction of travel (best) 4. Make a map and plan (most bestest not in this class)

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

6.7.3

Fat Guards
Since no sensor is perfect, always allow for fat guards in the navigation HA

g ( x) < 0 x = f1 g ( x) > 0 x = f2

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

6.7.4

Fat Guards
Since no sensor is perfect, always allow for fat guards in the navigation HA

g ( x) < 0 x = f1 g ( x) > 0 + x = f2

6.7.4

6.7.5

Enough Talk!

6.8.1