26
Behaviour-Based Control in Mobile Robotics Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick

Behaviour-Based Control in Mobile Robotics...Behaviour-Based Control in Mobile Robotics Paul Fitzpatrick Definition of RoboticsDefinition of Robotics Robotics is: “the Intelligent

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

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

Khepera Simulator

Robot path tracer

Robot Control Panel

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