SlideShare a Scribd company logo
1 of 25
© Ian Davis 1
Mobile robot requirements
• Requirements
– (1) Must behave in a deliberate manner
– (2) Must react appropriately to it’s environment
– (3) Must anticipate uncertain information
– (4) Must be both robust and fault tolerant
– (5) Architecture must be incrementally flexible
© Ian Davis 2
Mobile robot functions
• Typical software functions
– Acquiring and interpreting input from sensors
– Controlling the motion of all moving parts
– Planning future activities
– Responding to current difficulties
© Ian Davis 3
Mobile robot complications
• Possible complications
– Obstacles may block chosen path
– Sensor input may be imperfect or fail
– Robot may run out of power
– Movement may diverge from plans
– Robot encounters hazardous materials (water)
– Unpredictable events demand panic response
© Ian Davis 4
Mobile robot architectures
• Closed loop control architecture
• Layered architecture
• Implicit invocation
• Blackboard architecture
• Incremental architecture
© Ian Davis 5
Closed loop architecture
• Simple interconnection between sensors and
actuators.
• Appropriate for rigid requirements. Eg.
follow black line.
• Doesn’t scale well. Inflexible, hard to
change or refine.
• Conflicts between multiple feedback loops.
(eg. getting dark, near water, low battery).
© Ian Davis 6
Closed loop evaluation
• (1) Behaves in very deliberate manner.
• (2) Difficult to respond to the unexpected.
• (3) Hard to structure logic into cooperating
components, or layer overall software.
• (4) Simplicity improves robustness.
• (5) Loose coordination between hardware
components simplifies replacement and/or
duplication of sub units.
© Ian Davis 7
Closed loop overall
• Appropriate for simple robotic systems that
must respond to only a small number of
external events, and whose tasks do not
require complex decomposition.
• Appropriate for simple components of a
larger systems (eg. Directional steering)
• Might be improved by a learning module
responsible for adjusting the closed loop
parameters based on experience.
© Ian Davis 8
Layered architecture
• User input and supervisory functions
• Global planning
• Control logic
• Navigation
• Real-world modelling via data structures
• Collective sensor integration
• Individual sensor interpretation
• Robots hardware control
© Ian Davis 9
Layered architecture observations
• Seems like we are getting serious about
building a sophisticated robot.
• Much more detailed appreciation of the
software problem, if not its solution.
• We are creating a lot of work for ourselves.
© Ian Davis 10
Layered architecture pros
• Comfortable organization of development
responsibilities.
• Layers can be tested in isolation.
• Layers of sophistication cleanly convert low
level sensory uncertainty into appropriate
high level decision making.
• Real world data model improves flexibility
by separating role of data capture from data
interpretation.
© Ian Davis 11
Layered evaluation cons
• No clear division between data hierarchy
(real-world modelling) and control
hierarchy (real-world behaviour).
• Poor tolerance for failure. Hard to continue
if layers of software fail or register faults.
• Changes to low levels of software likely to
impact on all layers of software
© Ian Davis 12
Layered architecture overall
• High level view of robotic control system
provides a good point of departure.
• Layered evaluation useful in identifying
layers of interface which may simplify
design and testing of robot.
• Layered approach ties our hands very early
on in the design process.
• Architecture may not map cleanly to the
low level implementation.
© Ian Davis 13
Implicit invocation
• Task control architecture.
• Hierarchy of tasks called task trees.
• Task trees are directed at one or more tasks
registered to handle them.
• Task trees may be revised following
exceptions etc.
© Ian Davis 14
Implicit invocation evaluation
• Clear separation of action and reaction.
• Explicit support for concurrent agents.
• Uncertainty may be addressed by
distributed software, diverse software
solutions etc.
• Exception handling, wiretapping, and
monitoring features improve fault tolerance.
• Good support for incremental development.
© Ian Davis 15
Implicit invocation overall
• TCA offers a comprehensive set of features
for coordinating tasks of robot based on
both expected and unexpected events.
• Appropriate for complex robotic projects.
• Focuses on independent separate tasks.
• Provides better support for autonomous
behaviour of parts than layered architecture.
© Ian Davis 16
Blackboard architecture
• Central repository of data reflecting real-
world view/knowledge base seen by robot.
• Operated on by:
– Captain
– Navigator
– Lookout
– Pilot
– The perception subsystem
© Ian Davis 17
Blackboard evaluation
• Data is passive - participants are active.
• Stronger division into roles encourages
greater cohesion than implicit invocation.
• Task control architecture can be usefully
layered as a subsystem of blackboard.
• May suffer same implementation problems
as layered approach. Suggested roles are
somewhat arbitrary human concepts.
© Ian Davis 18
Iterative improvement approach
• Build the robot in iterative stages.
• Carefully progress the software from being
overly simple and restrictive, towards
showing intelligent behaviour.
• Design the software based not on perceived
needs but on observed behaviour.
• Limited knowledge about expected final
behavior of robot.
© Ian Davis 19
Iterative improvement pros
• Gets something up and working fast,
improving moral.
• Allows low level software to be tried and
tested before most development begins.
• Allows more feedback earlier, resulting in
more flexible responses to problems.
• Invites change and innovation throughout
project life cycle.
© Ian Davis 20
Iterative improvement cons
• Hard/impossible to co-ordinate team.
• Hard to manage constant software changes.
• Software quality very vulnerable to change.
• Resulting deliverable very unclear.
• Huge problems with software maintenance.
© Ian Davis 21
Iterative improvement overall
• Reasonable strategy for a small project, or
large project involving very few people.
• Useful approach when prototyping.
• Appropriate for small sections of code,
having well defined behaviour.
• A large unmanaged project is unlikely to be
a successful project. Iterative improvement
invites disaster.
© Ian Davis 22
Architectural checklist
• Is the overall organization clear, include a good overview
and justification?
• Are the major goals clearly stated?
• Are modules well defined, including their functionality and
interfaces to other modules?
• Are all the requirements covered sensibly, using an
appropriate number of modules?
• Will the architecture accommodate likely changes?
• Are necessary buy.v.build decisions included?
• Does the architecture describe how reuse code will be
retrofitted?
© Ian Davis 23
Architectural checklist
• All all major data structures described and justified?
• Are data structures hidden behind access interfaces?
• Is database organization and content specified?
• Are key algorithms described and justified?
• Are major objects described and justified?
• Is strategy for handling user input described?
• Is strategy for handling I/O described and justified?
• Are key aspects of user interface defined?
• Is the user interface modularized easing later change?
© Ian Davis 24
Architectural checklist
• Are memory requirements estimated, and strategy for
memory management described?
• Does the architecture impose space and speed budgets?
• Is the strategy for handling strings described?
• Is a coherent error handling strategy provided?
• Are error messages managed cleanly?
• Is a level of robustness specified?
• Are parts of the architecture over or under architected?
• Is the architecture independent of machine and language?
• Are the motivations for all major decisions provided?
© Ian Davis 25
Architectural checklist
• IS THE GROUP OF PROGRAMMERS WHO WILL
IMPLEMENT THE SYSTEM, COMFORTABLE WITH
THE ARCHITECTURE?
• (From Code Complete - McConnell)

More Related Content

Similar to 2-cases.ppt

Nine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take youNine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take youMarkus Eisele
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.PLovababu
 
Chap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.pptChap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.pptkhalidnawaz39
 
Chap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptxChap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptxssuser0ed5b4
 
Onion Architecture / Clean Architecture
Onion Architecture / Clean ArchitectureOnion Architecture / Clean Architecture
Onion Architecture / Clean ArchitectureAttila Bertók
 
Dev ops for software architects
Dev ops for software architectsDev ops for software architects
Dev ops for software architectsLen Bass
 
A Note on Distributed Computing - Papers We Love Hyderabad
A Note on Distributed Computing - Papers We Love HyderabadA Note on Distributed Computing - Papers We Love Hyderabad
A Note on Distributed Computing - Papers We Love HyderabadHrishikesh Barua
 
Architecting modern Android apps
Architecting modern Android appsArchitecting modern Android apps
Architecting modern Android appsGrigori Hlopkov
 
Agile non-functional testing for a digital bank
Agile non-functional testing for a digital bankAgile non-functional testing for a digital bank
Agile non-functional testing for a digital bankDavid Morris
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices M A Hossain Tonu
 
Component based development | what, why and how
Component based development | what, why and howComponent based development | what, why and how
Component based development | what, why and howRakesh Kumar Jha
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGPreeti Mishra
 
Troubleshooting: A High-Value Asset For The Service-Provider Discipline
Troubleshooting: A High-Value Asset For The Service-Provider DisciplineTroubleshooting: A High-Value Asset For The Service-Provider Discipline
Troubleshooting: A High-Value Asset For The Service-Provider DisciplineSagi Brody
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0Vinod Wilson
 
Migrating From Java EE To Cloud-Native Reactive Systems
Migrating From Java EE To Cloud-Native Reactive SystemsMigrating From Java EE To Cloud-Native Reactive Systems
Migrating From Java EE To Cloud-Native Reactive SystemsLightbend
 
Migrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMigrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMarkus Eisele
 
Dan Cornell - The Real Cost of Software Remediation
Dan Cornell  - The Real Cost of Software RemediationDan Cornell  - The Real Cost of Software Remediation
Dan Cornell - The Real Cost of Software RemediationSource Conference
 
Real Cost of Software Remediation
Real Cost of Software RemediationReal Cost of Software Remediation
Real Cost of Software RemediationDenim Group
 
Different approaches to software design
Different approaches to software designDifferent approaches to software design
Different approaches to software designSandeep Kumar Nayak
 
Digital Transformation with Kubernetes, Containers, and Microservices
Digital Transformation with Kubernetes, Containers, and MicroservicesDigital Transformation with Kubernetes, Containers, and Microservices
Digital Transformation with Kubernetes, Containers, and MicroservicesLightbend
 

Similar to 2-cases.ppt (20)

Nine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take youNine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take you
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
 
Chap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.pptChap 6 - Software Architecture Part 1.ppt
Chap 6 - Software Architecture Part 1.ppt
 
Chap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptxChap 6 - Software Architecture Part 1.pptx
Chap 6 - Software Architecture Part 1.pptx
 
Onion Architecture / Clean Architecture
Onion Architecture / Clean ArchitectureOnion Architecture / Clean Architecture
Onion Architecture / Clean Architecture
 
Dev ops for software architects
Dev ops for software architectsDev ops for software architects
Dev ops for software architects
 
A Note on Distributed Computing - Papers We Love Hyderabad
A Note on Distributed Computing - Papers We Love HyderabadA Note on Distributed Computing - Papers We Love Hyderabad
A Note on Distributed Computing - Papers We Love Hyderabad
 
Architecting modern Android apps
Architecting modern Android appsArchitecting modern Android apps
Architecting modern Android apps
 
Agile non-functional testing for a digital bank
Agile non-functional testing for a digital bankAgile non-functional testing for a digital bank
Agile non-functional testing for a digital bank
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
 
Component based development | what, why and how
Component based development | what, why and howComponent based development | what, why and how
Component based development | what, why and how
 
INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
 
Troubleshooting: A High-Value Asset For The Service-Provider Discipline
Troubleshooting: A High-Value Asset For The Service-Provider DisciplineTroubleshooting: A High-Value Asset For The Service-Provider Discipline
Troubleshooting: A High-Value Asset For The Service-Provider Discipline
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
 
Migrating From Java EE To Cloud-Native Reactive Systems
Migrating From Java EE To Cloud-Native Reactive SystemsMigrating From Java EE To Cloud-Native Reactive Systems
Migrating From Java EE To Cloud-Native Reactive Systems
 
Migrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMigrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systems
 
Dan Cornell - The Real Cost of Software Remediation
Dan Cornell  - The Real Cost of Software RemediationDan Cornell  - The Real Cost of Software Remediation
Dan Cornell - The Real Cost of Software Remediation
 
Real Cost of Software Remediation
Real Cost of Software RemediationReal Cost of Software Remediation
Real Cost of Software Remediation
 
Different approaches to software design
Different approaches to software designDifferent approaches to software design
Different approaches to software design
 
Digital Transformation with Kubernetes, Containers, and Microservices
Digital Transformation with Kubernetes, Containers, and MicroservicesDigital Transformation with Kubernetes, Containers, and Microservices
Digital Transformation with Kubernetes, Containers, and Microservices
 

Recently uploaded

How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightSafe Software
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...ScyllaDB
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxFIDO Alliance
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!Memoori
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsLeah Henrickson
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdfMuhammad Subhan
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxFIDO Alliance
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentationyogeshlabana357357
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftshyamraj55
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch TuesdayIvanti
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxFIDO Alliance
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTopCSSGallery
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuidePixlogix Infotech
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...panagenda
 

Recently uploaded (20)

How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
“Iamnobody89757” Understanding the Mysterious of Digital Identity.pdf
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 

2-cases.ppt

  • 1. © Ian Davis 1 Mobile robot requirements • Requirements – (1) Must behave in a deliberate manner – (2) Must react appropriately to it’s environment – (3) Must anticipate uncertain information – (4) Must be both robust and fault tolerant – (5) Architecture must be incrementally flexible
  • 2. © Ian Davis 2 Mobile robot functions • Typical software functions – Acquiring and interpreting input from sensors – Controlling the motion of all moving parts – Planning future activities – Responding to current difficulties
  • 3. © Ian Davis 3 Mobile robot complications • Possible complications – Obstacles may block chosen path – Sensor input may be imperfect or fail – Robot may run out of power – Movement may diverge from plans – Robot encounters hazardous materials (water) – Unpredictable events demand panic response
  • 4. © Ian Davis 4 Mobile robot architectures • Closed loop control architecture • Layered architecture • Implicit invocation • Blackboard architecture • Incremental architecture
  • 5. © Ian Davis 5 Closed loop architecture • Simple interconnection between sensors and actuators. • Appropriate for rigid requirements. Eg. follow black line. • Doesn’t scale well. Inflexible, hard to change or refine. • Conflicts between multiple feedback loops. (eg. getting dark, near water, low battery).
  • 6. © Ian Davis 6 Closed loop evaluation • (1) Behaves in very deliberate manner. • (2) Difficult to respond to the unexpected. • (3) Hard to structure logic into cooperating components, or layer overall software. • (4) Simplicity improves robustness. • (5) Loose coordination between hardware components simplifies replacement and/or duplication of sub units.
  • 7. © Ian Davis 7 Closed loop overall • Appropriate for simple robotic systems that must respond to only a small number of external events, and whose tasks do not require complex decomposition. • Appropriate for simple components of a larger systems (eg. Directional steering) • Might be improved by a learning module responsible for adjusting the closed loop parameters based on experience.
  • 8. © Ian Davis 8 Layered architecture • User input and supervisory functions • Global planning • Control logic • Navigation • Real-world modelling via data structures • Collective sensor integration • Individual sensor interpretation • Robots hardware control
  • 9. © Ian Davis 9 Layered architecture observations • Seems like we are getting serious about building a sophisticated robot. • Much more detailed appreciation of the software problem, if not its solution. • We are creating a lot of work for ourselves.
  • 10. © Ian Davis 10 Layered architecture pros • Comfortable organization of development responsibilities. • Layers can be tested in isolation. • Layers of sophistication cleanly convert low level sensory uncertainty into appropriate high level decision making. • Real world data model improves flexibility by separating role of data capture from data interpretation.
  • 11. © Ian Davis 11 Layered evaluation cons • No clear division between data hierarchy (real-world modelling) and control hierarchy (real-world behaviour). • Poor tolerance for failure. Hard to continue if layers of software fail or register faults. • Changes to low levels of software likely to impact on all layers of software
  • 12. © Ian Davis 12 Layered architecture overall • High level view of robotic control system provides a good point of departure. • Layered evaluation useful in identifying layers of interface which may simplify design and testing of robot. • Layered approach ties our hands very early on in the design process. • Architecture may not map cleanly to the low level implementation.
  • 13. © Ian Davis 13 Implicit invocation • Task control architecture. • Hierarchy of tasks called task trees. • Task trees are directed at one or more tasks registered to handle them. • Task trees may be revised following exceptions etc.
  • 14. © Ian Davis 14 Implicit invocation evaluation • Clear separation of action and reaction. • Explicit support for concurrent agents. • Uncertainty may be addressed by distributed software, diverse software solutions etc. • Exception handling, wiretapping, and monitoring features improve fault tolerance. • Good support for incremental development.
  • 15. © Ian Davis 15 Implicit invocation overall • TCA offers a comprehensive set of features for coordinating tasks of robot based on both expected and unexpected events. • Appropriate for complex robotic projects. • Focuses on independent separate tasks. • Provides better support for autonomous behaviour of parts than layered architecture.
  • 16. © Ian Davis 16 Blackboard architecture • Central repository of data reflecting real- world view/knowledge base seen by robot. • Operated on by: – Captain – Navigator – Lookout – Pilot – The perception subsystem
  • 17. © Ian Davis 17 Blackboard evaluation • Data is passive - participants are active. • Stronger division into roles encourages greater cohesion than implicit invocation. • Task control architecture can be usefully layered as a subsystem of blackboard. • May suffer same implementation problems as layered approach. Suggested roles are somewhat arbitrary human concepts.
  • 18. © Ian Davis 18 Iterative improvement approach • Build the robot in iterative stages. • Carefully progress the software from being overly simple and restrictive, towards showing intelligent behaviour. • Design the software based not on perceived needs but on observed behaviour. • Limited knowledge about expected final behavior of robot.
  • 19. © Ian Davis 19 Iterative improvement pros • Gets something up and working fast, improving moral. • Allows low level software to be tried and tested before most development begins. • Allows more feedback earlier, resulting in more flexible responses to problems. • Invites change and innovation throughout project life cycle.
  • 20. © Ian Davis 20 Iterative improvement cons • Hard/impossible to co-ordinate team. • Hard to manage constant software changes. • Software quality very vulnerable to change. • Resulting deliverable very unclear. • Huge problems with software maintenance.
  • 21. © Ian Davis 21 Iterative improvement overall • Reasonable strategy for a small project, or large project involving very few people. • Useful approach when prototyping. • Appropriate for small sections of code, having well defined behaviour. • A large unmanaged project is unlikely to be a successful project. Iterative improvement invites disaster.
  • 22. © Ian Davis 22 Architectural checklist • Is the overall organization clear, include a good overview and justification? • Are the major goals clearly stated? • Are modules well defined, including their functionality and interfaces to other modules? • Are all the requirements covered sensibly, using an appropriate number of modules? • Will the architecture accommodate likely changes? • Are necessary buy.v.build decisions included? • Does the architecture describe how reuse code will be retrofitted?
  • 23. © Ian Davis 23 Architectural checklist • All all major data structures described and justified? • Are data structures hidden behind access interfaces? • Is database organization and content specified? • Are key algorithms described and justified? • Are major objects described and justified? • Is strategy for handling user input described? • Is strategy for handling I/O described and justified? • Are key aspects of user interface defined? • Is the user interface modularized easing later change?
  • 24. © Ian Davis 24 Architectural checklist • Are memory requirements estimated, and strategy for memory management described? • Does the architecture impose space and speed budgets? • Is the strategy for handling strings described? • Is a coherent error handling strategy provided? • Are error messages managed cleanly? • Is a level of robustness specified? • Are parts of the architecture over or under architected? • Is the architecture independent of machine and language? • Are the motivations for all major decisions provided?
  • 25. © Ian Davis 25 Architectural checklist • IS THE GROUP OF PROGRAMMERS WHO WILL IMPLEMENT THE SYSTEM, COMFORTABLE WITH THE ARCHITECTURE? • (From Code Complete - McConnell)