behaviour-based control in mobile robotics...behaviour-based control in mobile robotics paul...
TRANSCRIPT
Behaviour-Based Controlin Mobile Robotics
Behaviour-Based Controlin Mobile Robotics
Paul Fitzpatrick
Definition of RoboticsDefinition of Robotics
Robotics is:
“the Intelligent Connection of
Perception to Action”
Robotics is:
“the Intelligent Connection of
Perception to Action”
Reality Robot
Actuators
Sensors Perception
Action
Sensors
“Pipelined” approach
Classical Robotic ControlClassical Robotic Control
Perception
Modelling
Planning
Task Execution
Motor C
ontrol
Actuators
Practical Problems with Classical ControlPractical Problems with Classical Control
SlowSlowto respondto respond
Perceptio
n
Modelling
Planning
Task Execution
Motor ControlSensors
Actuators
Delayed reaction to stop robot
Planning
Task Execution
Research Problems with Classical ControlResearch Problems with Classical Control
Reality
L 20R 00F 00B 10
EXEC
Perception
Modelling
Motor C
ontrol
Temptation to focus on model rather than reality
Other influences
Classical Control: SummaryClassical Control: Summary
Assumes a complete internal world model can be built, then manipulated
u Slow. Modelling must occur before robot can react to changes in environment
u Emphasis on using model is misleading-u Makes complex tasks seem solvable by
directing attention away from perceptionu Makes potentially simple tasks complicated
u Requires crippling simplications
Alternatives to Classical ControlAlternatives to Classical Control
TraditionalAI
behaviour-based systems
Environmental complexity
Cog
nitiv
e co
mpl
exity
reactive systems
complex cognitionsimple environment simpler cognition
complex environment
Rather than functional decomposition, use “Behaviours”
u As much as possible, behaviours interact with each other through the environment, not the system
u The world is its own best model, so consult it directly whenever practical
u Use distributed representations tailored to the particular behaviours using them
Behaviour-Based ControlBehaviour-Based Control
Modules act in parallel, in layers of increasing priority
Behaviour-Based Control:Subsumption ArchitectureBehaviour-Based Control:Subsumption Architecture
Sensors
Work usefully
Use maps
Explore
Wander
Avoid obstacles
Actuators
All modules have access to
sensors
All modules have access to
actuators
Higher layers can view and modify the data flow in lower layers
Reacts immediately to stop robot
Fast!Fast!
Work usefully
Use maps
Explore
Wander
Avoidance
Advantages of SubsumptionAdvantages of Subsumption
Disadvantages of SubsumptionDisadvantages of Subsumption
u Rigid priority scheme and strict layering are limiting -u Priorities must be evaluated and
hardwired at design timeu Requires behaviours to fit into a simple
single-inheritance hierarchyu Behaviours cannot be combined, only
enhanced linearly
Alternatives?Alternatives?
TraditionalAI
behaviour-based systems
Environmental complexity
Cog
nitiv
e co
mpl
exity
reactive systems
Extend scope ofbehaviour-based systems by improvingbehaviour “glue”
“Lateral” Architecture“Lateral” Architecture
Work usefully
Use maps
Explore
Wander
Sensors
Avoid obstacles
Actuators
All modules All modules All modules have access to have access to have access to
sensorssensorssensors
All modules All modules All modules have access to have access to have access to
actuatorsactuatorsactuators
Features of LateralFeatures of Lateral
u Lateral has a dynamic priority system designed to make it easy to buildbehaviours using other behaviours
u A behaviour is given the priority its highest priority user at a given time thinks it should have (“sponsorship”)
u Behaviours expose a limited public interface to users, rather than allowing access to their internal data flows.
Example Behaviour: Edge FollowingExample Behaviour: Edge Following
Compensate
Stroll
WaddleFace
Start
Capture
Turn
iSide
LogicalSensors
oNudge
oMotor
EdgeMan
Prowling BehaviourProwling Behaviour
Start Grab
Circle
Circlesync
Exploreseek
Explorefly
LeapLeapsync
LeapReturn
iSelect
LogicalSensors
oEdge
oPatrol
oExplore
ProwlMan
Prowling uses edge following in its implementation
Prowling - Behaviours usedProwling - Behaviours used
ProwlMan
Priority Control
PatrolMan
Priority Control
ExploreMan
Priority Control
SeekMan
Priority Control
EdgeMan
Priority Control
AngleMan
Priority Control
NudgeMan
Priority Control
MotorMan
Priority Control
Prowling behaviour is built from a hierarchy of simpler behaviours.
Prowling - Edge FollowingProwling - Edge Following
ProwlMan
Priority Control
PatrolMan
Priority Control
ExploreMan
Priority Control
SeekMan
Priority Control
EdgeMan
Priority Control
AngleMan
Priority Control
NudgeMan
Priority Control
MotorMan
Priority Control
NudgeMan beatsSeekMan because, even though it is lower level, it has more sponsorship
ProwlMan active, and sponsoring edge following (EdgeMan)
Prowling - ExploringProwling - Exploring
ProwlMan
Priority Control
PatrolMan
Priority Control
ExploreMan
Priority Control
SeekMan
Priority Control
EdgeMan
Priority Control
AngleMan
Priority Control
NudgeMan
Priority Control
MotorMan
Priority Control
ProwlMan active, and sponsoring exploration (ExploreMan)
More BehavioursMore Behaviours
ProwlMan
Priority Control
PatrolMan
Priority Control
ExploreMan
Priority Control
SeekMan
Priority Control
EdgeMan
Priority Control
AngleMan
Priority Control
NudgeMan
Priority Control
MotorMan
Priority Control
RegionMan
Priority Control
ManualMan
Priority Control
New behaviours fit in transparently to the ones already present
CompetitionCompetition
ProwlMan
Priority Control
PatrolMan
Priority Control
ExploreMan
Priority Control
SeekMan
Priority Control
EdgeMan
Priority Control
AngleMan
Priority Control
NudgeMan
Priority Control
MotorMan
Priority Control
RegionMan
Priority Control
ManualMan
Priority Control
Competition betweenbehaviours is resolved by the “sponsor”
class ModuleA : public ZACProcess{private:
int localVariable;public:
ZACInput<int> boredom;ZACInput<Point> distance;ZACOutput<MotorCtrl> motor;ZACOutput<Message> msg;
int ZAC_Run ( int ZAC_state );...
};
...
class ModuleA : public ZACProcess{private:
int localVariable;public:
ZACInput<int> boredom;ZACInput<Point> distance;ZACOutput<MotorCtrl> motor;ZACOutput<Message> msg;
int ZAC_Run ( int ZAC_state );...
};
...
Lateral - ImplementationLateral - Implementation
Module A
Priority Control
PROCESS ModuleA{
int localVariable;INPUT(int, boredom);INPUT(Point, distance);OUTPUT(MotorCtrl, motor);OUTPUT(Message, msg);
@CONTROL// Priority control
@state1DoSomething();NEXT state2;
@state2DoSomethingElse();NEXT @;
};
PROCESS ModuleA{
int localVariable;INPUT(int, boredom);INPUT(Point, distance);OUTPUT(MotorCtrl, motor);OUTPUT(Message, msg);
@CONTROL// Priority control
@state1DoSomething();NEXT state2;
@state2DoSomethingElse();NEXT @;
};
Lateral C++
Simulator
Robot
RuntimeSupport
Extended syntax for expressing parallel processes (as state machines) and data flow between them
“ Khepera ”Hardware:Hardware:
r Khepera miniature robot
r Processor: 68332r Proximity sensorsr Light sensorsr Stepper motors
r Khepera miniature robot
r Processor: 68332r Proximity sensorsr Light sensorsr Stepper motors