26
Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Embed Size (px)

Citation preview

Page 1: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Behaviour-Based Controlin Mobile Robotics

Behaviour-Based Controlin Mobile Robotics

Paul Fitzpatrick

Page 2: Behaviour-Based Control in 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

Page 3: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Sensors

“Pipelined” approach

Classical Robotic ControlClassical Robotic Control

Perce

ptio

n

Mod

ellin

g

Pla

nn

ing

Task E

xecu

tion

Moto

r Con

trol

Actuators

Page 4: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Practical Problems with Classical ControlPractical Problems with Classical Control

SlowSlowto respondto respond

Perceptio

n

Modelling

Pla

nnin

g

Task Execution

Motor ControlSensorsActuators

Delayed reaction to stop robot

Page 5: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Pla

nnin

g

Task E

xecu

tion

Research Problems with Classical ControlResearch Problems with Classical Control

Reality

L 20R 00F 00B 10EXEC

Perce

ptio

n

Modellin

g

Moto

r Contro

l

Temptation to focus on model rather than reality

Other influence

s

Page 6: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Classical Control: SummaryClassical Control: Summary

Assumes a complete internal world model can be built, then manipulated

Slow. Modelling must occur before robot can react to changes in environment

Emphasis on using model is misleading- Makes complex tasks seem solvable by

directing attention away from perception Makes potentially simple tasks complicated

Requires crippling simplications

Page 7: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Alternatives to Classical ControlAlternatives to Classical Control

TraditionalAI

behaviour-based systems

Environmental complexity

Cog

nit

ive c

om

ple

xit

y

reactive systems

complex cognitionsimple environment simpler cognition

complex environment

Page 8: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Rather than functional decomposition, use “Behaviours”

As much as possible, behaviours interact with each other through the environment, not the system

The world is its own best model, so consult it directly whenever practical

Use distributed representations tailored to the particular behaviours using them

Behaviour-Based ControlBehaviour-Based Control

Page 9: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Modules act in parallel, in layers of increasing priority

Behaviour-Based Control:Subsumption Architecture

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

Page 10: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Reacts immediately to stop robot

Fast!Fast!

Work usefully

Use maps

Explore

Wander

Avoidance

Advantages of SubsumptionAdvantages of Subsumption

Page 11: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Disadvantages of SubsumptionDisadvantages of Subsumption

Rigid priority scheme and strict layering are limiting - Priorities must be evaluated and

hardwired at design time Requires behaviours to fit into a

simple single-inheritance hierarchy Behaviours cannot be combined, only

enhanced linearly

Page 12: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Alternatives?Alternatives?

TraditionalAI

behaviour-based systems

Environmental complexity

Cog

nit

ive c

om

ple

xit

y

reactive systems

Extend scope of behaviour-based systems by improving behaviour “glue”

Page 13: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

“Lateral” Architecture“Lateral” Architecture

Work usefully

Use maps

Explore

Wander

Sensors

Avoid obstacles

Actuators

All modules All modules have access have access to sensorsto sensors

All modules All modules have access have access to actuatorsto actuators

Page 14: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Features of LateralFeatures of Lateral

Lateral has a dynamic priority system designed to make it easy to build behaviours using other behaviours

A behaviour is given the priority its highest priority user at a given time thinks it should have (“sponsorship”)

Behaviours expose a limited public interface to users, rather than allowing access to their internal data flows.

Page 15: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Example Behaviour: Edge FollowingExample Behaviour: Edge Following

Compensate

Stroll

WaddleFace

Start

Capture

Turn

iSide

LogicalSensors

oNudge

oMotor

EdgeMan

Page 16: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Prowling BehaviourProwling Behaviour

Start Grab

Circle

Circlesync

Exploreseek

Explorefly

LeapLeapsync

LeapReturn

iSelect

LogicalSensors

oEdge

oPatrol

oExplore

ProwlMan

Prowling uses edge following in its implementation

Page 17: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

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.

Page 18: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

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 beats SeekMan because, even though it is lower level, it has more sponsorship

ProwlMan active, and sponsoring edge following (EdgeMan)

Page 19: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

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)

Page 20: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

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

Page 21: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

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 between behaviours is resolved by the “sponsor”

Page 22: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

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 @;

};

LateralC++

Simulator

Robot

RuntimeSupport

Extended syntax for expressing parallel processes (as state machines) and data flow between them

Page 23: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

“ Khepera ”Hardware:Hardware:

Khepera miniature robot

Processor: 68332 Proximity sensors Light sensors Stepper motors

Khepera miniature robot

Processor: 68332 Proximity sensors Light sensors Stepper motors

Page 24: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Khepera Simulator

Robot path tracer

Robot Control Panel

Page 25: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick
Page 26: Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

A

B

C

A, B or Cdepending on

priority

Compete/Subsume

Priority Implementation: ConnectionsPriority Implementation: Connections

Copy

A A

A

Compete/SubsumeA

B

C

A, B or Cdepending on

priority

A

B A or Bdepending on

priority

Compete/Subsume