control for mobile robots christopher batten maslab iap robotics course january 11, 2006
Post on 20-Dec-2015
214 views
TRANSCRIPT
![Page 1: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/1.jpg)
Control for Mobile Robots
Christopher Batten
Maslab IAP Robotics CourseJanuary 11, 2006
![Page 2: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/2.jpg)
Building a control system for a mobile robot can be very challenging
Mechanical Electrical Software
Mobile robots are very complex and involve many interacting components
Your control system must integrate these components so that your robot can achieve the desired goal
![Page 3: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/3.jpg)
Building a control system for a mobile robot can be very challenging
• How will you debug and test your robot?
• What are the performance requirements?
• Can you easily improve aspects of your robot?
• Can you easily integrate new functionality?
Just as you must carefully design your robot chassis you must carefully design
your robot control system
![Page 4: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/4.jpg)
An example of how not to design your robot control system
void moveForward( int time ) {
while ( t < time ) {
// Drive forward a bit -------------------------------------- --------------------------------------
}}
![Page 5: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/5.jpg)
An example of how not to design your robot control system
void moveForward( int time ) {
while ( t < time ) {
// Drive forward a bit -------------------------------------- --------------------------------------
// Check ir sensor and stop if necessary -------------------------------------- --------------------------------------
}}
![Page 6: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/6.jpg)
An example of how not to design your robot control system
void moveForward( int time ) {
while ( t < time ) {
// Drive forward a bit -------------------------------------- --------------------------------------
// Check ir sensor and stop if necessary -------------------------------------- --------------------------------------
// Rotate if there is an obstacle -------------------------------------- --------------------------------------
}}
![Page 7: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/7.jpg)
An example of how not to design your robot control system
void moveForward( int time ) {
while ( t < time ) {
// Drive forward a bit -------------------------------------- --------------------------------------
// Check ir sensor and stop if necessary -------------------------------------- --------------------------------------
// Rotate if there is an obstacle -------------------------------------- -------------------------------------- // Need to find some balls -------------------------------------- --------------------------------------
// Somehow pick up a ball -------------------------------------- --------------------------------------
// What if there is more than one ball? -------------------------------------- --------------------------------------
}}
![Page 8: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/8.jpg)
An example of how not to design your robot control system
void moveForward( int time ) {
while ( t < time ) {
// Drive forward a bit -------------------------------------- --------------------------------------
// Check ir sensor and stop if necessary -------------------------------------- --------------------------------------
// Rotate if there is an obstacle -------------------------------------- -------------------------------------- // Need to find some balls -------------------------------------- --------------------------------------
// Somehow pick up a ball -------------------------------------- --------------------------------------
// What if there is more than one ball? -------------------------------------- --------------------------------------
. . .
. . .
// Need to find some goals -------------------------------------- --------------------------------------
// What if there are no goals visible? -------------------------------------- --------------------------------------
// Drop off some balls -------------------------------------- -------------------------------------- // Find more balls I guess -------------------------------------- --------------------------------------
// Make sure to ignore balls in goal -------------------------------------- --------------------------------------
// Try to go somewhere new -------------------------------------- --------------------------------------
}}
![Page 9: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/9.jpg)
An example of how not to design your robot control system
void moveForward( int time ) {
while ( t < time ) {
// Drive forward a bit -------------------------------------- --------------------------------------
// Check ir sensor and stop if necessary -------------------------------------- --------------------------------------
// Rotate if there is an obstacle -------------------------------------- -------------------------------------- // Need to find some balls -------------------------------------- --------------------------------------
// Somehow pick up a ball -------------------------------------- --------------------------------------
// What if there is more than one ball? -------------------------------------- --------------------------------------
// Need to find some goals -------------------------------------- --------------------------------------
// What if there are no goals visible? -------------------------------------- --------------------------------------
// Drop off some balls -------------------------------------- -------------------------------------- // Find more balls I guess -------------------------------------- --------------------------------------
// Make sure to ignore balls in goal -------------------------------------- --------------------------------------
. . .
// Need to find some goals -------------------------------------- --------------------------------------
// What if there are no goals visible? -------------------------------------- --------------------------------------
// Drop off some balls -------------------------------------- -------------------------------------- // Find more balls I guess -------------------------------------- --------------------------------------
// Make sure to ignore balls in goal -------------------------------------- --------------------------------------
// Try to go somewhere new -------------------------------------- --------------------------------------
// Find more balls I guess -------------------------------------- --------------------------------------
// Make sure to ignore balls in goal -------------------------------------- --------------------------------------
// Try to go somewhere new -------------------------------------- --------------------------------------
}}
void moveForward( int time ) while ( t < time ) {
![Page 10: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/10.jpg)
Basic primitive of a control system is a behavior
Turn right 90 Go forward until reach obstacle
Capture a ball Explore playing field
Behaviors should be well-defined, self-contained, and independently testable
![Page 11: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/11.jpg)
Key objective is to compose behaviors so as to achieve the desired goal
![Page 12: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/12.jpg)
Outline
• High-level control system paradigms– Model-Plan-Act Approach– Behavioral Approach– Finite State Machine Approach
• Low-level control loops– PID controllers for motor velocity– PID controllers for robot drive system
• Examples from past years
![Page 13: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/13.jpg)
Model-Plan-Act Approach
1. Use sensor data to create model of the world
2. Use model to form a sequence of behaviors which will achieve the desired goal
3. Execute the plan (compose behaviors)
Mo
de
l
ActuatorsSensors
Pla
n
Act
Environment
![Page 14: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/14.jpg)
Exploring the playing field using model-plan-act approach
Red dot is the mobile robot while the blue line is the mousehole
![Page 15: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/15.jpg)
Exploring the playing field using model-plan-act approach
Robot uses sensors to create local map of the world and identify unexplored areas
![Page 16: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/16.jpg)
Exploring the playing field using model-plan-act approach
Robot moves to midpoint of unexplored boundary
![Page 17: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/17.jpg)
Exploring the playing field using model-plan-act approach
Robot performs a second sensor scan and must align the new data with the global map
![Page 18: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/18.jpg)
Exploring the playing field using model-plan-act approach
Robot continues to explore the playing field
![Page 19: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/19.jpg)
Exploring the playing field using model-plan-act approach
Robot must recognize when it starts to see areas which it has already explored
![Page 20: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/20.jpg)
Finding a mouseholeusing model-plan-act approach
Given the global map, the goal is to find the mousehole
![Page 21: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/21.jpg)
Finding a mousehole using model-plan-act approach
Transform world into configuration space by convolving robot with all obstacles
![Page 22: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/22.jpg)
Finding a mousehole using model-plan-act approach
Decompose world into convex cellsTrajectory within any cell is free of obstacles
![Page 23: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/23.jpg)
Finding a mousehole using model-plan-act approach
Connect cell edge midpoints and centroids to get graph of all possible paths
![Page 24: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/24.jpg)
Finding a mousehole using model-plan-act approach
Use an algorithm (such as the A* algorithm) to find shortest path to goal
![Page 25: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/25.jpg)
Finding a mousehole using model-plan-act approach
The choice of cell decomposition can greatly influence results
![Page 26: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/26.jpg)
Advantages and disadvantages of the model-plan-act approach
• Advantages– Global knowledge in the model enables optimization– Can make provable guarantees about the plan
• Disadvantages– Must implement all functional units before any testing– Computationally intensive– Requires very good sensor data for accurate models– Models are inherently an approximation– Works poorly in dynamic environments
![Page 27: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/27.jpg)
Emergent Approach
Living creatures like honey bees are able to explore their surroundings
and locate a target (honey)
Is this bee using the model-plan-act
approach?
Used with permission, © William Connolleyhttp://wnconnolley.ork.uk
![Page 28: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/28.jpg)
Emergent Approach
Living creatures like honey bees are able to explore their surroundings
and locate a target (honey)
Probably not! Most likely bees layer simple
reactive behaviors to create a complex
emergent behavior
Used with permission, © William Connolleyhttp://wnconnolley.ork.uk
![Page 29: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/29.jpg)
Emergent Approach
Should we design our robots so they act less like robots and more like honey bees?
![Page 30: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/30.jpg)
Emergent Approach
ActuatorsSensors
Behavior C
Behavior B
Behavior A
Environment
As in biological systems, the emergent approach uses simple behaviors to directly couple sensors and actuators
Higher level behaviors are layered on top of lower level behaviors
![Page 31: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/31.jpg)
To illustrate the emergent approach we will consider a simple mobile robot
Bump Switches
Infrared Rangefinders
Ball Detector Switch
Camera
Ball Gate
![Page 32: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/32.jpg)
Layering simple behaviors can create much more complex emergent behavior
Cruise Motors
Cruise behavior simply moves robot forward
![Page 33: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/33.jpg)
Layering simple behaviors can create much more complex emergent behavior
Cruise
AvoidInfrared
S Motors
Left motor speed inversely proportional to left IR rangeRight motor speed inversely proportional to right IR range
If both IR < threshold stop and turn right 120 degrees
Subsumption
![Page 34: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/34.jpg)
Layering simple behaviors can create much more complex emergent behavior
Cruise
Avoid
Escape
Infrared
Bump
S
S
Motors
Escape behavior stops motors, backs up a few inches, and turns right 90 degrees
![Page 35: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/35.jpg)
Layering simple behaviors can create much more complex emergent behavior
Cruise
Avoid
Escape
Track Ball
Infrared
Bump
Camera
S S
S
Motors
The track ball behavior adjusts the motor differential to steer the robot towards the ball
![Page 36: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/36.jpg)
Layering simple behaviors can create much more complex emergent behavior
Cruise
Avoid
Escape
Track Ball
Hold Ball
Infrared
Bump
Camera
Ball Switch
S S
S
Motors
Ball Gate
Hold ball behavior simply closes ball gate when ball switch is depressed
![Page 37: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/37.jpg)
Layering simple behaviors can create much more complex emergent behavior
Cruise
Avoid
Escape
Track Ball
Hold Ball
Track Goal
Infrared
Bump
Camera
Ball Switch
S S S
S
S
Motors
Ball Gate
The track goal behavior opens the ball gate and adjusts the motor differential to steer the robot
towards the goal
![Page 38: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/38.jpg)
Layering simple behaviors can create much more complex emergent behavior
Cruise
Avoid
Escape
Track Ball
Hold Ball
Track Goal
Infrared
Bump
Camera
Ball Switch
S S S
S
S
Motors
Ball Gate
All behaviors are always running in parallel and an arbiter is responsible for picking which behavior can
access the actuators
![Page 39: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/39.jpg)
Advantages and disadvantages of the behavioral approach
• Advantages– Incremental development is very natural– Modularity makes experimentation easier– Cleanly handles dynamic environments
• Disadvantages– Difficult to judge what robot will actually do– No performance or completeness guarantees– Debugging can be very difficult
![Page 40: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/40.jpg)
Model-plan-act fuses sensor data, while emergent fuses behaviors
Mo
de
l
Pla
n
Act
Environment
Behavior C
Behavior B
Behavior A
Model-Plan-Act Emergent
Environment
Fixed plan of behaviors Layered behaviors
Lots of preliminary planning No preliminary planning
Lots of internal state Very little internal state
![Page 41: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/41.jpg)
Finite State Machines offer another alternative for combining behaviors
Fwd(dist)
TurnR(deg)
Fwd behavior moves robot straight forward a given distance
TurnR behavior turns robot to the right a given number of degrees
FSMs have some preliminary planning and some state. Some transitions between behaviors are decided statically while others are decided dynamically.
![Page 42: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/42.jpg)
TurnR(90)
Finite State Machines offer another alternative for combining behaviors
Fwd(2ft)
Fwd(2ft)
Each state is just a specific behavior instance - link them together to create
an open loop control system
![Page 43: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/43.jpg)
TurnR(90)
Finite State Machines offer another alternative for combining behaviors
Fwd(2ft)
Fwd(2ft)
Each state is just a specific behavior instance - link them together to create
an open loop control system
![Page 44: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/44.jpg)
TurnR(90)
Finite State Machines offer another alternative for combining behaviors
Fwd(2ft)
Fwd(2ft)
Each state is just a specific behavior instance - link them together to create
an open loop control system
![Page 45: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/45.jpg)
TurnR(90)
Finite State Machines offer another alternative for combining behaviors
Fwd(2ft)
Fwd(2ft)
Each state is just a specific behavior instance - link them together to create
an open loop control system
![Page 46: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/46.jpg)
TurnR(90)
Finite State Machines offer another alternative for combining behaviors
Fwd(2ft)
Fwd(2ft)
Since the Maslab playing field is unknown, open loop control systems
have no hope of success!
![Page 47: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/47.jpg)
TurnR(45)
Finite State Machines offer another alternative for combining behaviors
Fwd(1ft)
Closed loop finite state machines use sensor data as feedback to make
state transitions
No Obstacle
Obstacle Within 2ft
No Obstacle
Obstacle Within 2ft
![Page 48: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/48.jpg)
TurnR(45)
Finite State Machines offer another alternative for combining behaviors
Fwd(1ft)
No Obstacle
Obstacle Within 2ft
No Obstacle
Obstacle Within 2ft
Closed loop finite state machines use sensor data as feedback to make
state transitions
![Page 49: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/49.jpg)
TurnR(45)
Finite State Machines offer another alternative for combining behaviors
Fwd(1ft)
No Obstacle
Obstacle Within 2ft
No Obstacle
Obstacle Within 2ft
Closed loop finite state machines use sensor data as feedback to make
state transitions
![Page 50: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/50.jpg)
TurnR(45)
Finite State Machines offer another alternative for combining behaviors
Fwd(1ft)
No Obstacle
Obstacle Within 2ft
No Obstacle
Obstacle Within 2ft
Closed loop finite state machines use sensor data as feedback to make
state transitions
![Page 51: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/51.jpg)
TurnR(45)
Finite State Machines offer another alternative for combining behaviors
Fwd(1ft)
No Obstacle
Obstacle Within 2ft
No Obstacle
Obstacle Within 2ft
Closed loop finite state machines use sensor data as feedback to make
state transitions
![Page 52: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/52.jpg)
Implementing a Finite State Machine in Java
switch ( state ) {
case States.Fwd_1 : moveFoward(1); if ( distanceToObstacle() < 2 ) state = TurnR_45; break;
case States.TurnR_45 : turnRight(45); if ( distanceToObstacle() >= 2 ) state = Fwd_1; break;
}
TurnR(45)
Fwd(1ft)
No Obstacle
Obstacle Within 2ft
Obstacle Within 2ft
![Page 53: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/53.jpg)
• Implement behaviors as parameterized functions
• Each case statement includes behavior instance and state transition
• Use enums for state variables
Implementing a FSM in Java
switch ( state ) {
case States.Fwd_1 : moveFoward(1); if ( distanceToObstacle() < 2 ) state = TurnR_45; break;
case States.TurnR_45 : turnRight(45); if ( distanceToObstacle() >= 2 ) state = Fwd_1; break;
}
![Page 54: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/54.jpg)
TurnTo
Open
Finite State Machines offer another alternative for combining behaviors
FwdUntilObs
Can also fold closed loop feedback into the behaviors themselves
![Page 55: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/55.jpg)
Simple finite state machine to locate red balls
Scan360
Wander(20sec)
Fwd(1ft)
AlignBall
TurnR
Stop
No Balls
FoundBall
Lost Ball Ball
< 1ft
Ball > 1ft
![Page 56: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/56.jpg)
Simple finite state machine to locate red balls
Scan360
Wander(20sec)
Fwd(1ft)
AlignBall
TurnR
Stop
No Balls
FoundBall
Lost Ball Ball
< 1ft
Ball > 1ft
Obstacle < 2ft
![Page 57: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/57.jpg)
To debug a FSM control system verify behaviors and state transitions
Scan360
Wander(20sec)
Fwd(1ft)
AlignBall
TurnR
Stop
No Balls
FoundBall
Lost Ball Ball
< 1ft
Ball > 1ft
Obstacle < 2ft
What if robot has trouble
correctly approaching
the ball?
![Page 58: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/58.jpg)
To debug a FSM control system verify behaviors and state transitions
Scan360
Wander(20sec)
Fwd(1ft)
AlignBall
TurnR
Stop
No Balls
FoundBall
Lost Ball Ball
< 1ft
Ball > 1ft
Obstacle < 2ft
Independently verify Align
Ball and Fwd behaviors
![Page 59: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/59.jpg)
Improve FSM control system by replacing a state with a better implementation
Scan360
Wander(20sec)
Fwd(1ft)
AlignBall
TurnR
Stop
No Balls
FoundBall
Lost Ball Ball
< 1ft
Ball > 1ft
Obstacle < 2ft
Could replace random wander with one which is biased
towards unexplored regions
![Page 60: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/60.jpg)
Improve FSM control system by replacing a state with a better implementation
What about integrating camera code into wander behavior so robot is always looking for red balls?
ball = falseturn both motors onwhile ( !timeout and !ball ) capture and process image if ( red ball ) ball = true
read IR sensor if ( IR < thresh ) stop motors rotate 90 degrees turn both motors on endif
endwhile
– Image processing is time consuming so might not check for obstacles until too late
– Not checking camera when rotating
– Wander behavior begins to become monolithic
![Page 61: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/61.jpg)
Obstacle SensorsThread
ImageComputeThread
ControllerFSM
Multi-threaded finite state machine control systems
Drive Motors
CameraShort IR + Bump
![Page 62: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/62.jpg)
Obstacle SensorsThread
ImageComputeThread
ControllerFSM
Multi-threaded finite state machine control systems
Drive Motors
CameraShort IR + Bump
![Page 63: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/63.jpg)
SensorStalk
Thread
Obstacle SensorsThread
ImageComputeThread
ControllerFSM
Multi-threaded finite state machine control systems
Drive Motors
CameraShort IR + Bump
Stalk Servo
StalkSensors
![Page 64: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/64.jpg)
MappingThread
SensorStalk
Thread
Obstacle SensorsThread
ImageComputeThread
ControllerFSM
Multi-threaded finite state machine control systems
Drive Motors
CameraShort IR + Bump
Stalk Servo
StalkSensors
![Page 65: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/65.jpg)
FSMs in Maslab
Finite state machines can combine the model-plan-act and emergent approaches and are a
good starting point for your Maslab robotic control system
![Page 66: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/66.jpg)
Outline
• High-level control system paradigms– Model-Plan-Act Approach– Behavioral Approach– Finite State Machine Approach
• Low-level control loops– PID controller for motor velocity– PID controller for robot drive system
• Examples from past years
![Page 67: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/67.jpg)
Problem: How do we set a motor to a given velocity?
Open Loop Controller– Use trial and error to create
some kind of relationship between velocity and voltage
– Changing supply voltage or drive surface could result in incorrect velocity
MotorVelocityTo Volts
DesiredVelocity
ActualVelocity
![Page 68: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/68.jpg)
Controller
Problem: How do we set a motor to a given velocity?
Closed Loop Controller– Feedback is used to adjust the
voltage sent to the motor so that the actual velocity equals the desired velocity
– Can use an optical encoder to measure actual velocity
MotorDesiredVelocity
ActualVelocityAdjusted
Voltageerr
![Page 69: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/69.jpg)
Step response with no controller
Time (sec)
Ve
loci
ty
• Naive velocity to volts• Model motor with
several differential equations
• Slow rise time• Stead-state offset
MotorVelocityTo Volts
DesiredVelocity
ActualVelocity
![Page 70: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/70.jpg)
Step response with proportional controller
Time (sec)
Ve
loci
ty
actdesPdes VVKVX
• Big error big = big adj• Faster rise time• Overshoot• Stead-state offset
(there is still an error but it is not changing!)
Controller Motor
DesiredVelocity(Vdes)
ActualVelocity
(Vact)Adjusted Volts (X)
err
![Page 71: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/71.jpg)
Step response with proportional-derivative controller
Time (sec)
Ve
loci
ty
dt
tdeKteKVX DPdes
)()(
• When approaching desired velocity quickly, de/dt term counteracts proportional term slowing adjustment
• Faster rise time• Reduces overshoot
Controller Motor
DesiredVelocity(Vdes)
ActualVelocity
(Vact)Adjusted Volts (X)
err
![Page 72: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/72.jpg)
Step response with proportional-integral controller
Time (sec)
Ve
loci
ty
dtteKteKVX IPdes )()(
• Integral term eliminates accumulated error
• Increases overshoot
Controller Motor
DesiredVelocity(Vdes)
ActualVelocity
(Vact)Adjusted Volts (X)
err
![Page 73: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/73.jpg)
Step response with PID controller
Time (sec)
Ve
loci
tydt
tdeK
dtteK
teKVX
D
I
Pdes
)(
)(
)(
Controller Motor
DesiredVelocity(Vdes)
ActualVelocity
(Vact)Adjusted Volts (X)
err
![Page 74: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/74.jpg)
Choosing and tuning a controller
Rise Time Overshoot SS Error
Proportional Decrease Increase Decrease
Integral Decrease Increase Eliminate
Derivative ~ Decrease ~
© 1996 Regents of UMich -- http://www.engin.umich.edu/group.ctm
Controller Motor
DesiredVelocity(Vdes)
ActualVelocity
(Vact)Adjusted Volts (X)
err
![Page 75: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/75.jpg)
Choosing and tuning a controller
• Use the simplest controller which achieves the desired result
• Tuning PID constants is very tricky, especially for integral constants
• Consult the literature for more controller tips and techniques
Controller Motor
DesiredVelocity(Vdes)
ActualVelocity
(Vact)Adjusted Volts (X)
err
![Page 76: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/76.jpg)
Problem: How do we make our robots go in a nice straight line?
Model differential drive with slight motor mismatch
With an open loop controller, setting motors to same velocity results in a less than straight trajectory
Trajectory Motor Velocities vs Time
![Page 77: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/77.jpg)
Problem: How do we make our robots go in a nice straight line?
With an independent PID controller for each motor, setting motors to same velocity results in a straight trajectory
but not necessarily straight ahead!
Trajectory Motor Velocities vs Time
![Page 78: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/78.jpg)
We can synchronize the motors with a third PID controller
LeftController
LeftMotor
DesiredVelocity
ActualLeft
Velocityerr
RightController
RightMotor
err
CoupledController
ActualRight
Velocity
Inspired from “Mobile Robots”, Jones, Flynn, and Seiger, 1999
TurningBias
![Page 79: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/79.jpg)
We can synchronize the motors with a third PID controller
What should the coupled controller use as its error input?
Velocity Differential – Will simply help the robot
go straight but not necessarily straight ahead
Cumulative Centerline Offset – Calculate by integrating motor
velocities and assuming differential steering model for the robot
– Will help the robot go straight ahead
LeftController
LeftMotor
DesiredVelocity
ActualLeft
Velocityerr
RightController
RightMotor
err
CoupledController
ActualRight
Velocity
TurningBias
![Page 80: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/80.jpg)
The digital camera is a powerful sensor for estimating error in our control loops
– Track wall ticks to see how they move through the image
– Use analytical model of projection to determine an error between where they are and where they should be if robot is going straight
– Push error through PID controller
![Page 81: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/81.jpg)
The digital camera is a powerful sensor for estimating error in our control loops
– Track how far ball center is from center of image
– Use analytical model of projection to determine an orientation error
– Push error through PID controller
What if we just used a simple proportional controller? Could lead to steady-state error if
motors are not perfectly matched!
![Page 82: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/82.jpg)
Outline
• High-level control system paradigms– Model-Plan-Act Approach– Behavioral Approach– Finite State Machine Approach
• Low-level control loops– PID controller for motor velocity– PID controller for robot drive system
• Examples from past years
![Page 83: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/83.jpg)
Team 15 in 2005 used a map-plan-act approach (well at least in spirit)
Multiple runs arounda mini-playing field
Odometry data from exploration round of contest
![Page 84: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/84.jpg)
Team 10 in 2003 used odometry so Bob could retrace his steps and return home
![Page 85: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/85.jpg)
Team 4 in 2005 used an emergent approach with four layered behaviors
– Boredom: If image doesn’t change then move randomly
– ScoreGoals: If image contains a goal the drive straight for it
– ChaseBalls: If image contains a ball then drive towards ball
– Wander: Turn away from walls or move to large open areas
![Page 86: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/86.jpg)
Team 16 from 2004 used their gyro and a closed loop controller to turn exactly 180º
![Page 87: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/87.jpg)
Poorly tuned PID controllers can cause your robot to oscillate “randomly”
![Page 88: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/88.jpg)
Team 12 in 2004 learned the hard way how important testing is
![Page 89: Control for Mobile Robots Christopher Batten Maslab IAP Robotics Course January 11, 2006](https://reader030.vdocuments.site/reader030/viewer/2022032801/56649d535503460f94a2fed3/html5/thumbnails/89.jpg)
Take Away Points
• Integrating feedback into your control system “closes the loop” and is essential for creating robust robots
• Simple finite state machines make a solid starting point for your Maslab control systems
• Spend time this week designing behaviors and deciding how you will integrate these behaviors to create your control system