Goal-Driven Adaptable Software Architecture for UAVs

Similar documents
Software Modeling and Verification

Ontologies for Enterprise Integration

Model Checking: An Introduction

Formal Verification and Linear-time Model Checking

CS 565 Business Process & Workflow Management Systems

Semantic Variability Modeling for Multi-staged Service Composition

Enabling Self Organising Logistics on the Web of Things

Software Defined Security Mechanisms for Critical Infrastructure Management

Exploring the Synergistic Relationships Between BPC, BW and HANA

Software Verification for Space Applications Part 2. Autonomous Systems. G. Brat USRA/RIACS

Algorithmic Software Verification

Specification and Analysis of Contracts Lecture 1 Introduction

A Relationship-Based Approach to Model Integration

Software Architecture

Product Synthesis. CATIA - Product Engineering Optimizer 2 (PEO) CATIA V5R18

Table of Contents. Preface. Chapter 1 Introduction 1.1 Background. 1.2 Problem description. 1.3 The role of standardization. 1.4 Scope and objectives

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Supply Chain Design and the effects on shipping

The Model Checker SPIN

ISEB MANAGER S CERTIFICATE IN ITIL INFRASTRUCTURE MANAGEMENT. Guidelines for candidates who are taking the ICT Infrastructure Examination

ITIL. Lifecycle. ITIL Intermediate: Continual Service Improvement. Service Strategy. Service Design. Service Transition

ESS EA TF Item 2 Enterprise Architecture for the ESS

Semantic Description of Distributed Business Processes

MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS

The SPES Methodology Modeling- and Analysis Techniques

Software Architecture Action Guide. Why do we care about Software Architecture?

The Role of the Software Architect

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Organizational Requirements Engineering

Cooperative UAVs for Remote Data Collection and Relay

logic language, static/dynamic models SAT solvers Verified Software Systems 1 How can we model check of a program or system?

Software Architecture

Load Building and Route Scheduling

A Modeling Language for Activity-Oriented Composition of Service-Oriented Software Systems

How To Test Automatically

Requirements Engineering: A Roadmap

Measuring and Understanding IPTV Networks

Digital Design Verification

Principles of Software Engineering: Course Outline. Ethan Jackson And Wolfram Schulte, Research in Software Engineering (RiSE) Microsoft Research

A Database Re-engineering Workbench

Railway Timetabling Optimizer

Frameworx 13.5 Implementation Conformance Certification Report

secure intelligence collection and assessment system Your business technologists. Powering progress

Oracle Real Time Decisions

Data Management Roadmap

A Review of Agent-Oriented Development Methodologies and Programming Languages/Frameworks

Testing LTL Formula Translation into Büchi Automata

Introducing Formal Methods. Software Engineering and Formal Methods

Software Verification and Testing. Lecture Notes: Temporal Logics

Monitoring Infrastructure (MIS) Software Architecture Document. Version 1.1

Modeling Mental States in Requirements Engineering An Agent-Oriented Framework Based on i* and CASL

(Refer Slide Time: 01:52)

Supply chain intelligence: benefits, techniques and future trends

Designing Real-Time and Embedded Systems with the COMET/UML method

A Framework for Adaptive Process Modeling and Execution (FAME)

D83167 Oracle Data Integrator 12c: Integration and Administration

FIPA agent based network distributed control system

Data Quality in Information Integration and Business Intelligence

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch

ORACLE RAPID PLANNING

BUSINESS RULES CONCEPTS... 2 BUSINESS RULE ENGINE ARCHITECTURE By using the RETE Algorithm Benefits of RETE Algorithm...

Short Guides to IDA Quality Assurance Guidelines. Development and Validation Phase. Issue 2.0

SAP Supply Chain Solutions. Which SAP Warehouse Management Application is Right for You?

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

How to Decide which Method to Use

Secure Semantic Web Service Using SAML

Automatic vs. Manual Code Analysis

Goal-Oriented Requirements Engineering: An Overview of the Current Research. by Alexei Lapouchnian

CREATING AN INTERNAL CLOUD: EPAM DEVELOPS A CUSTOM SOLUTION. Time-consuming infrastructure configuration and maintenance

Applying 4+1 View Architecture with UML 2. White Paper

Business Process Configuration with NFRs and Context-Awareness

Information Broker Agents in Intelligent Websites

Transcription:

SEAS DTC Annual Technical Conference 2008 Goal-Driven Adaptable Software Architecture for UAVs William Heaven, Daniel Sykes, Jeff Magee, Jeff Kramer SER001 Imperial College London

The Challenge Autonomous systems are deployed in environments in which contact with operators is infrequent or undesirable To be reliable, autonomous systems should be able to adapt to new circumstances on their own

The Challenge The system should determine (without intervention) How to achieve / maintain its goal and with what capabilities The software components required to control these capabilities C1 C2 C3 C4

The Challenge Automatically configure and execute these software components in a way that satisfies the goal Finally: Maintain goal satisfaction in a changing environment by updating software configurations generating alternative plans using alternative capabilities when necessary

Summary of work so far Goal Management Plan failure Change Management Constraints + LTL formulae Plan generation Configuration failure Component Control Configuration generation

Goal Management: Advances Shortcomings of old planner NuSMV-based plan generator unsuited to concurrent and distributed planning Hard to generate domain model from high-level specs Hard to manipulate and analyse output No simple means to separate system behaviour from environment behaviour

Goal Management: New LTSA Planner Extension of Labelled Transition System Analyser NuSMV-based algorithms adapted: LTS instead of FSM Both domain input and plan output modelled as LTS Advantages: Concurrent and distributed domains and planning Compositional planning for multi-agent systems Existing work on automatic generation of domain models from high-level user scenarios Compositional model and minimisation feature allow clear separation of system and environment behaviours in plans

Goal Management: New LTSA Planner

Goal Management: Domain Model Top layer manages a world model or domain Domain specified by temporal logic constraints over an alphabet of actions using fluent predicates defined in terms of these actions Alphabet set Actions = {start_goto, start_unloading, unloaded,.. } Fluents fluent LOADED = <loaded, unloaded> fluent AT_UNLOADER = <arrive_unloader, depart_unloader> LTL Constraints constraint C = [](!X start_unloading W LOADED && AT_UNLOADER)

Goal Management: Domain Model Top layer manages a world model or domain Domain specified by temporal logic constraints over an alphabet of actions using fluent predicates defined in terms of these actions Alphabet set Actions = {start_goto, start_unloading, unloaded,.. } Fluents fluent LOADED = <loaded, unloaded> fluent AT_UNLOADER = <arrive_unloader, depart_unloader> LTL Constraints constraint C = [](!X start_unloading W LOADED && AT_UNLOADER)

Goal Management: Domain Model Top layer manages a world model or domain Domain specified by temporal logic constraints over an alphabet of actions using fluent predicates defined in terms of these actions Alphabet set Actions = {start_goto, start_unloading, unloaded,.. } Fluents fluent LOADED = <loaded, unloaded> fluent AT_UNLOADER = <arrive_unloader, depart_unloader> LTL Constraints constraint C = [](!X start_unloading W LOADED && AT_UNLOADER)

Goal Management: Dynamic Plan Generation Domain LTS Pruned Domain LTS = Plan Plan generation

Goal Management: Dynamic Plan Generation fluent LOADED = <loaded, unloaded> fluent AT_UNLOADER = <arrive_unloader, depart_unloader>... constraint C = [](!X start_unloading W LOADED && AT_UNLOADER)... assert Goal =![]!LOADED!LOADED -> DONE LOADED && AT_UNLOADER -> start_unloading LOADED &&!AT_UNLOADER -> start_goto_unloader...

Goal Management: Dynamic Plan Generation fluent LOADED = <loaded, unloaded> fluent AT_UNLOADER = <arrive_unloader, depart_unloader>... constraint C = [](!X start_unloading W LOADED && AT_UNLOADER)... assert Goal =![]!LOADED!LOADED -> DONE LOADED && AT_UNLOADER -> start_unloading LOADED &&!AT_UNLOADER -> start_goto_unloader...

Goal Management: Dynamic Plan Generation fluent LOADED = <loaded, unloaded> fluent AT_UNLOADER = <arrive_unloader, depart_unloader>... constraint C = [](!X start_unloading W LOADED && AT_UNLOADER)... assert Goal =![]!LOADED If plan fails, replanning requested!loaded -> DONE LOADED && AT_UNLOADER -> start_unloading LOADED &&!AT_UNLOADER -> start_goto_unloader...

Change Management Middle layer selects and instantiates the software components and configurations required to implement a generated reactive plan Components implement plan actions Explicit provided ( ) / required ( ) interfaces used to derive complete configuration MotionController VectorGoTo MoveTo Implements start_goto_x actions

Change Management: Component Selection Interfaces give a dependency graph between components Configuration constructed by following dependency chains C1 C1 C5 C2 C7 C5 C2 C7 C6 C6 C3 C4 C3 C4 Selected configuration checked against structural constraints

Change Management: Selecting Alternatives B C B A Alternatives for each requirement fewer components A faster C more reliable

Change Management: Selecting Alternatives B C B A Alternatives for each requirement fewer components A faster C more reliable ADAPTATION

Component Control JamVM Backbone RMI Components JamVM Backbone Planner Interpreter Components

Demonstration High-level goal: Clear all yellow balls from given area Can be encoded as Continue loading and unloading balls indefinitely []((LOADED -> <>!LOADED) && (!LOADED -> <>LOADED)) []((LOADED -> <>!LOADED))... Assuming LOADED, next objective becomes!loaded Recall: fluent LOADED = <loaded, unloaded> constraint C = [](!X start_unloading W LOADED && AT_UNLOADER)

Demonstration High-level goal: Clear all yellow balls from given area Can be encoded as Continue loading and unloading balls indefinitely []((LOADED -> <>!LOADED) && (!LOADED -> <>LOADED)) []((LOADED -> <>!LOADED))... Assuming LOADED, next objective becomes!loaded Recall: fluent LOADED = <loaded, unloaded> constraint C = [](!X start_unloading W LOADED && AT_UNLOADER)

Demonstration High-level goal: Clear all yellow balls from given area Can be encoded as Continue loading and unloading balls indefinitely []((LOADED -> <>!LOADED) && (!LOADED -> <>LOADED)) []((LOADED -> <>!LOADED))... Assuming LOADED, next objective becomes!loaded Recall: fluent LOADED = <loaded, unloaded> constraint C = [](!X start_unloading W LOADED && AT_UNLOADER)

Demonstration

Summary As the bedrock of a reliable autonomous system, our architecture supports Automated generation of reactive plans, providing robustness in non-deterministic domains Automated selection of alternative software configurations at runtime to cope with system failures, changes in the world, and changes to operator goals Automated replanning when the current reactive plan and available software configurations are insufficient for achieving a goal

Future Work Key areas still to work on include Automated updating of the domain following an unexpected change in the world Taking architectural and non-functional requirements into account when selecting software configurations Guaranteeing smooth and safe transitions between configurations, preserving state and avoiding inconsistency Co-operation vs. decomposition for multi-agent, concurrent, distributed systems Simulations in more diverse environments Optimising adaptation using learning