control for mobile robots
TRANSCRIPT
![Page 1: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/1.jpg)
Control for Mobile Robots
Christopher Batten Maslab IAP Robotics Course
January 7, 2005
![Page 2: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/2.jpg)
Building a control system for a mobile robot can be very challenging
Mobile robots are very complex and involve many interacting components
Mechanical Electrical Software
Your control system must integrate these components so that your robot can achieve the desired goal
![Page 3: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/3.jpg)
Building a control system for a mobile robot can be very challenging
Just as you must carefully design your robot chassis you must carefully design
your robot control system
• 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?
![Page 4: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/4.jpg)
Basic primitive of a control system is a behavior
Behaviors should be well-defined, self-contained, and independently testable
Turn right 90° Go forward until reach obstacle
Capture a ball Explore playing field
![Page 5: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/5.jpg)
Key objective is to compose behaviors so as to achieve the desired goal
![Page 6: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/6.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
![Page 7: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/7.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
Mod
el
ActuatorsSensors
Pla
n
Act
Environment
![Page 8: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/8.jpg)
Exploring the playing field using model-plan-act approach
Red dot is the mobile robot while the blue line is the mousehole
![Page 9: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/9.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 10: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/10.jpg)
Exploring the playing field using model-plan-act approach
Robot moves to midpoint of unexplored boundary
![Page 11: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/11.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 12: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/12.jpg)
Exploring the playing field using model-plan-act approach
Robot continues to explore the playing field
![Page 13: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/13.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 14: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/14.jpg)
Finding a mouseholeusing model-plan-act approach
Given the global map, the goal is to find the mousehole
![Page 15: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/15.jpg)
Finding a mousehole using model-plan-act approach
Transform world into configuration space by convolving robot with all obstacles
![Page 16: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/16.jpg)
Finding a mousehole using model-plan-act approach
Decompose world into convex cells Trajectory within any cell is free of obstacles
![Page 17: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/17.jpg)
Finding a mousehole using model-plan-act approach
Connect cell edge midpoints and centroids to get graph of all possible paths
![Page 18: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/18.jpg)
Finding a mousehole using model-plan-act approach
Use an algorithm (such as the A* algorithm) to find shortest path to goal
![Page 19: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/19.jpg)
Finding a mousehole using model-plan-act approach
The choice of cell decomposition can greatly influence results
![Page 20: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/20.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 21: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/21.jpg)
Behavioral Approach
Sensors Actuators
As in simple biological systems, behaviors directly couple sensors and actuators
Higher level behaviors are layered on top of lower level behaviors
Environment
Behavior C
Behavior B
Behavior A
![Page 22: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/22.jpg)
To illustrate the behavioral approach we will consider a simple mobile robot
Ball Gate
Bump Switches
Infrared Rangefinders
Ball Detector Switch
Camera
![Page 23: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/23.jpg)
Layering simple behaviors can create much more complex emergent behavior
Motors
Cruise behavior simply moves robot forward
Cruise
![Page 24: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/24.jpg)
Layering simple behaviors can create much more complex emergent behavior
Infrared
S Motors
Left motor speed inversely proportional to left IR range Right motor speed inversely proportional to right IR range
If both IR < threshold stop and turn right 120 degrees
Subsumption
Cruise
Avoid
![Page 25: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/25.jpg)
Layering simple behaviors can create much more complex emergent behavior
Escape
Infrared
Bump
S
S
Motors
Escape behavior stops motors, backs up a few inches, and turns right 90 degrees
Cruise
Avoid
![Page 26: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/26.jpg)
Layering simple behaviors can create much more complex emergent behavior
Escape
ll
Infrared
Bump
Camera
S S
S
Cruise
Avoid
Track Ba
Motors
The track ball behavior adjusts the motor differential to steer the robot towards the ball
![Page 27: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/27.jpg)
Layering simple behaviors can create much more complex emergent behavior
Escape
ll
ll
Infrared
Bump
Camera
Ball
S S
S
Ball Gate
Cruise
Avoid
Track Ba
Hold BaSwitch
Motors
Hold ball behavior simply closes ball gate when ball switch is depressed
![Page 28: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/28.jpg)
Layering simple behaviors can create much more complex emergent behavior
Escape
ll
ll
Track Goal
Infrared
Bump
Camera
Ball
S S S
S
S
Ball Gate
Cruise
Avoid
Track Ba
Hold BaSwitch
Motors
The track goal behavior opens the ball gate and adjusts the motor differential to steer the robot
towards the goal
![Page 29: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/29.jpg)
Layering simple behaviors can create much more complex emergent behavior
Escape
ll
ll
Track Goal
Infrared
Bump
Camera
Ball
S S S
S
S
Ball Gate
Cruise
Avoid
Track Ba
Hold BaSwitch
Motors
All behaviors are always running in parallel and an arbiter is responsible for picking which behavior can
access the actuators
![Page 30: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/30.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 31: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/31.jpg)
Model-plan-act fuses sensor data, while behavioral fuses behaviors
Mod
el
Pla
n
Act
Environment
Model-Plan-Act(Fixed Plan of Behaviors)
Behavioral (Layered Behaviors)
Environment
Behavior C
Behavior B
Behavior A
![Page 32: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/32.jpg)
Model-plan-act fuses sensor data, while behavioral fuses behaviors
Environment
Mod
el
Pla
n
Act
Environment
Model-Plan-Act (Sensor Fusion) (Behavior Fusion)
Behavior C
Behavior B
Behavior A
Behavioral
![Page 33: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/33.jpg)
Finite State Machines offer another alternative for combining behaviors
Fwd behavior moves robot straight forward a given distance
Fwd (dist)
TurnR (deg)
TurnR behavior turns robot to the right a given number of degrees
![Page 34: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/34.jpg)
Finite State Machines offer another
TurnR (90°)
alternative for combining behaviors
Fwd (2ft)
Fwd (2ft)
can easily link them together to create Each state is just a behavior and we
an open loop control system
![Page 35: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/35.jpg)
Finite State Machines offer another
TurnR (90°)
alternative for combining behaviors
Fwd (2ft)
Fwd (2ft)
can easily link them together to create Each state is just a behavior and we
an open loop control system
![Page 36: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/36.jpg)
Finite State Machines offer another
TurnR (90°)
alternative for combining behaviors
Fwd (2ft)
Fwd (2ft)
can easily link them together to create Each state is just a behavior and we
an open loop control system
![Page 37: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/37.jpg)
Finite State Machines offer another
TurnR (90°)
alternative for combining behaviors
Fwd (2ft)
Fwd (2ft)
Each state is just a behavior and we can easily link them together to create
an open loop control system
![Page 38: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/38.jpg)
Finite State Machines offer another
TurnR (90°)
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 39: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/39.jpg)
Finite State Machines offer another
TurnR (45°)
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 40: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/40.jpg)
Finite State Machines offer another
TurnR (45°)
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 41: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/41.jpg)
Finite State Machines offer another
TurnR (45°)
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 42: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/42.jpg)
Finite State Machines offer another
TurnR (45°)
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 43: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/43.jpg)
Finite State Machines offer another
TurnR (45°)
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 44: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/44.jpg)
Implementing a FSM in Java
TurnR (45°)
Fwd (1ft)
No Obstacle
Obstacle Within 2ft
// State transitions switch ( state ) {
case States.Fwd_1 : if ( distanceToObstacle() < 2 )
state = TurnR_45; break;
case States.TurnR_45 : if ( distanceToObstacle() >= 2 )
state = Fwd_1; break;
}
// State outputs switch ( state ) {
case States.Fwd_1 : moveFoward(1); break;
case States.TurnR_45 : turnRight(45); break;
} Obstacle Within 2ft
![Page 45: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/45.jpg)
• as parameterized functions
• statement handles state transitions
• statement executes behaviors associated with each state
• variables
Implementing a FSM in Java
// State transitions switch ( state ) {
case States.Fwd_1 : if ( distanceToObstacle() < 2 )
state = TurnR_45; break;
case States.TurnR_45 : if ( distanceToObstacle() >= 2 )
state = Fwd_1; break;
}
// State outputs switch ( state ) {
case States.Fwd_1 : moveFoward(1); break;
case States.TurnR_45 : turnRight(45); break;
}
Implement behaviors
First switch
Second switch
Use enums for state
![Page 46: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/46.jpg)
Finite State Machines offer another
Turn To
Open
alternative for combining behaviors
Fwd Until Obs
Can also fold closed loop feedback into the behaviors themselves
![Page 47: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/47.jpg)
Simple finite state machine to locate red balls
Scan 360
Wander (20sec)
Fwd (1ft)
Align Ball
TurnR
Stop
No Balls
Found Ball
Lost Ball Ball
< 1ft
Ball > 1ft
![Page 48: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/48.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 49: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/49.jpg)
Obstacle < 2ft
To debug a FSM control system verify behaviors and state transitions
Scan 360
Wander (20sec)
Fwd (1ft)
Align Ball
TurnR
Stop
No Balls
Found Ball
Lost Ball Ball
< 1ft
Ball > 1ft
What if robot has trouble
correctly approaching
the ball?
![Page 50: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/50.jpg)
Obstacle < 2ft
To debug a FSM control system verify behaviors and state transitions
Scan 360
Wander (20sec)
Fwd (1ft)
Align Ball
TurnR
Stop
No Balls
Found Ball
Lost Ball Ball
< 1ft
Ball > 1ftIndependently
verify Align Ball and Fwd
behaviors
![Page 51: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/51.jpg)
Obstacle < 2ft
Improve FSM control system by replacing a state with a better implementation
Scan 360
Wander (20sec)
Fwd (1ft)
Align Ball
TurnR
Stop
No Balls
Found Ball
Lost Ball Ball
< 1ft
Ball > 1ft
Could replace random wander with one which is biased towards unexplored
regions
![Page 52: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/52.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?
– 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
ball = false turn both motors on while ( !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
![Page 53: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/53.jpg)
Multi-threaded
Obstacle Sensors Thread
Image Compute Thread
Controller FSM
finite state machine control systems
Camera Short IR + Bump
Drive Motors
![Page 54: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/54.jpg)
Multi-threaded
Obstacle Sensors Thread
Image Compute Thread
Controller FSM
finite state machine control systems
Camera Short IR + Bump
Drive Motors
![Page 55: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/55.jpg)
Multi-threaded
Sensor Stalk
Thread
Obstacle Sensors Thread
Image Compute Thread
Controller FSM
finite state machine control systems
Drive Motors
Camera Short IR + Bump
Stalk Servo
Stalk Sensors
![Page 56: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/56.jpg)
MappingThread
SensorStalk
Thread
Obstacle SensorsThread
ImageComputeThread
ControllerFSM
Multi-threaded finite state machine control systems
Drive Motors
CameraShort IR + Bump
Stalk Servo
StalkSensors
![Page 57: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/57.jpg)
FSMs in Maslab
for your Maslab robotic control system
Finite state machines can combine the model-plan-act and behavioral
approaches and are a good starting point
![Page 58: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/58.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
![Page 59: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/59.jpg)
Problem: How do we set a motor to a given velocity?
Open Loop Controller –
some kind of relationship between velocity and voltage
– drive surface could result in incorrect velocity
MotorVelocity To Volts
Desired Velocity
Actual Velocity
Use trial and error to create
Changing supply voltage or
![Page 60: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/60.jpg)
Problem: How do we set
Controller
a motor to a given velocity?
Closed Loop Controller –
voltage sent to the motor so that the actual velocity equals the desired velocity
– measure actual velocity
MotorDesired Velocity
Actual VelocityAdjusted
Voltage
Feedback is used to adjust the
Can use an optical encoder to
![Page 61: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/61.jpg)
Step response with no controller
Time (sec)
Vel
ocity
• •
several differential equations
• •
MotorVelocity To Volts
Desired Velocity
Actual Velocity
Naive velocity to volts Model motor with
Slow rise time Stead-state offset
![Page 62: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/62.jpg)
Step response with proportional controller
Time (sec)
Vel
ocity
( )actdesPdes VVKVX −⋅+=
• • • •
Controller MotorDesired Velocity (Vdes)
Actual Velocity
(Vact)Adjusted Voltage (X)
Big error big = big adj Faster rise time Overshoot Stead-state offset
![Page 63: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/63.jpg)
Step response with proportional-derivative controller
Time (sec)
Vel
ocity
dtKVX DPdes
)()( −+=
•
counteracts proportional term slowing adjustment
• •
Controller MotorDesired Velocity (Vdes)
Actual Velocity
(Vact)Adjusted Voltage (X)
t de t e K
When approaching desired velocity quickly, de/dt term
Faster rise time Reduces overshoot
![Page 64: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/64.jpg)
Step response with proportional-integral controller
Time (sec)
Vel
ocity
∫−+= dtKKVX IPdes )()(
• accumulated error
•
Controller MotorDesired Velocity (Vdes)
Actual Velocity
(Vact)Adjusted Voltage (X)
t e t e
Integral term eliminates
Increases overshoot
![Page 65: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/65.jpg)
Step response with PID controller
Time (sec)
Vel
ocity
dt
K
K
VX
D
I
Pdes
)(
)(
)(
−
+
+=
∫
Controller MotorDesired Velocity (Vdes)
Actual Velocity
(Vact)Adjusted Voltage (X)
t de
dt t e
t e K
![Page 66: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/66.jpg)
Choosing and tuning a controller
Controller MotorDesired Velocity (Vdes)
Actual Velocity
(Vact)Adjusted Voltage (X)
• 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
![Page 67: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/67.jpg)
Problem: How do we make our robots go in a nice straight line?
Trajectory Motor Velocities vs Time
Model differential drive with slight motor mismatch With an open loop controller, setting motors to same velocity
results in a less than straight trajectory
![Page 68: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/68.jpg)
Problem: How do we make our robots go in a nice straight line?
Trajectory Motor Velocities vs Time
With an independent PID controller for each motor, setting motors to same velocity results in a straight trajectory
but not necessarily straight ahead!
![Page 69: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/69.jpg)
Problem: How do we make our robots go in a nice straight line?
• Need to couple drive motors
– Use low-level PID controllers to set motor velocity and a high-level PID controller to couple the motors
– Use one high-level PID controller which uses odometry or even image processing to estimate error
![Page 70: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/70.jpg)
Problem: How do we make our robots go in a nice straight line?
Need to couple drive motors
– Use low-level PID controllers to set motor velocity and a high-level PID controller to couple the motors
error angle
– Use one high-level PID controller which uses odometry or even image processing to estimate error
![Page 71: Control for Mobile Robots](https://reader031.vdocuments.net/reader031/viewer/2022020203/586a0f101a28ab803b8b51a5/html5/thumbnails/71.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 weekend designing behaviors and deciding how you will integrate these behaviors to create your control system