CSCI 445 Amin Atrash. Control Architectures. Introduction to Robotics L. Itti, M. J. Mataric

Similar documents
Robotic Behaviors. Potential Field Methods

Mobile robots control architectures

Robotics. CSPP Artificial Intelligence March 10, 2004

Software Design Fundamentals. CSCE Lecture 11-09/27/2016

Syllabus Instructors:

Complex behavior emergent from simpler ones

Introduction to Software Engineering

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

What are Embedded Systems? Lecture 1 Introduction to Embedded Systems & Software

Week 6: Data. Let's focus first on application domain data.

Software Architecture. Lecture 4

Sommerville Chapter 6 The High-Level Structure of a Software Intensive System. Architectural Design. Slides courtesy Prof.

The Bizarre Truth! Automating the Automation. Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER

Chapter 1: Introduction Operating Systems MSc. Ivan A. Escobar

cis1.0 computing: nature, power and limits robotics applications fall 2006 lecture # A.1 introduction

Future Directions in Simulation Modeling. C. Dennis Pegden

Chapter 1: An Introduction to Computer Science

Programming II. Modularity 2017/18

Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur

CSE 374 Programming Concepts & Tools. Hal Perkins Fall 2015 Lecture 15 Testing

Design Patterns Design patterns advantages:

Topics in Object-Oriented Design Patterns

ITM DEVELOPMENT (ITMD)

CS4514 Real-Time Systems and Modeling

CS370 Operating Systems

Introduction to Real-time Systems. Advanced Operating Systems (M) Lecture 2

6.852: Distributed Algorithms Fall, Class 21

6.001 Notes: Section 8.1

Lecture 5: The Halting Problem. Michael Beeson

Data Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques. Version 03.s 2-1

GLUE - A Component Connecting Schema-based Reactive to Higher-level Deliberative Layers for Autonomous Agents

LECTURE 3: SOFTWARE DESIGN. Software Engineering Mike Wooldridge

Introducing Computer Programming

ITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University

Recap A Search Optimality of A. Search: A. CPSC 322 Search 5. Textbook 3.6. Search: A CPSC 322 Search 5, Slide 1

Lecture 4: Design Concepts For Responsibility- Driven Design Kenneth M. Anderson January 20, 2005

Chapter 1. Preliminaries

Components & Characteristics of an Embedded System Embedded Operating System Application Areas of Embedded d Systems. Embedded System Components

Developing an Enterprise Extranet Service

Combining Algebraic Constraints with Graph-based Intelligent Testbench Automation by Mike Andrews, Verification Technologist, Mentor Graphics

Coding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends!

1001ICT Introduction To Programming Lecture Notes

Introduction to Computers and Programming Languages. CS 180 Sunil Prabhakar Department of Computer Science Purdue University

CSc 10200! Introduction to Computing. Lecture 1 Edgardo Molina Fall 2013 City College of New York

Been testing software for over 10 years Started out as a Manual Tester Moved to Automation testing Now leading teams, defining quality in

Chapter 1 Preliminaries

Organization of Programming Languages (CSE452) Why are there so many programming languages? What makes a language successful?

Introduction to Software Reuse

Software Architecture

Page 1. Outline. A Good Reference and a Caveat. Testing. ECE 254 / CPS 225 Fault Tolerant and Testable Computing Systems. Testing and Design for Test

Unifying Agent and Component Concepts - Jadex Active Components

Complexity. Object Orientated Analysis and Design. Benjamin Kenwright

CS370 Operating Systems

Graph and the World of Brains

Fall UI Design and Implementation 1

CAMERA User s Guide. They are most easily launched from the main menu application. To do this, all the class files must reside in the same directory.

Introduction to Autonomous Mobile Robots

Multiprocessor scheduling

Robotics Programming Laboratory

Ways of documenting Session 5: detailed requirements The Data Dictionary one any The Project A data dictionary Data Dictionary may be maintained

CSCI 136 Data Structures & Advanced Programming. Fall 2018 Instructors Bill Lenhart & Bill Jannen

Software Architecture--Continued. Another Software Architecture Example

Hardware Software Codesign of Embedded System

Big Picture: Overview of Issues and Challenges in Autonomous Robotics + Impact on Practical Implementation Details

ADMAS Security Gateway

6.001 Notes: Section 15.1

System types. Distributed systems

Lecture 34 SDLC Phases and UML Diagrams

Lecture 18: Planning and plan execution, applications

Principles of Programming Languages. Lecture Outline

Recalling the definition of design as set of models let's consider the modeling of some real software.

what is an algorithm? analysis of algorithms classic algorithm example: search

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now?

is easing the creation of new ontologies by promoting the reuse of existing ones and automating, as much as possible, the entire ontology

Testing & Continuous Integration. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 20 03/19/2010

INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET) NEED FOR DESIGN PATTERNS AND FRAMEWORKS FOR QUALITY SOFTWARE DEVELOPMENT

PROCESS SCHEDULING II. CS124 Operating Systems Fall , Lecture 13

Overview. Introduction to Embedded Systems. What is an embedded system? What are some of their characteristics? What is the required skill set?

Question. Reliable Transport: The Prequel. Don t parse my words too carefully. Don t be intimidated. Decisions and Their Principles.

Chapter 7:: Data Types. Mid-Term Test. Mid-Term Test (cont.) Administrative Notes

Visual interfaces for a semantic content-based image retrieval system

Object Oriented Software Design

CSCI 4717 Computer Architecture

Algorithm Concepts. 1 Basic Algorithm Concepts. May 16, Computational Method

Distribution Middleware Technologies for Cyber Physical Systems Remote Engineering & Virtual Instrumentation

Assignment 1: Control and obstacle avoidance

In this chapter, you will learn about: The definition of computer science. Algorithms. Invitation to Computer Science, C++ Version, Third Edition

Structural Testing. (c) 2007 Mauro Pezzè & Michal Young Ch 12, slide 1

CSCI 136 Data Structures & Advanced Programming. Spring 2018 Instructors Bill Jannen & Jon Park

(See related materials in textbook.) CSE 435: Software Engineering (slides adapted from Ghezzi et al & Stirewalt

A Modeling Framework for Control Fault Tolerant Reactive Systems

IT 540 Operating Systems ECE519 Advanced Operating Systems

Topological Navigation and Path Planning

SCRAMNet GT. A New Technology for Shared-Memor y Communication in High-Throughput Networks. Technology White Paper

User Task Flows. What are Task Flows? Why use task flows? bringing the user into the development process. Challenge:

Optimised Embedded Distributed Controller for Automated Lighting Systems

Agent Design Example Problems State Spaces. Searching: Intro. CPSC 322 Search 1. Textbook Searching: Intro CPSC 322 Search 1, Slide 1

CSE 332: Data Structures & Parallelism Lecture 10:Hashing. Ruth Anderson Autumn 2018

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction

A Graceful Degradation Framework for Distributed Embedded Systems William Nace Philip Koopman

Transcription:

Introduction to Robotics CSCI 445 Amin Atrash Control Architectures

The Story So Far Definitions and history Locomotion and manipulation Sensors and actuators Control => Essential building blocks

Today s Lecture Outline Scaling up control => architectures Architectures v. Languages Turing Universality of Languages Basic classes of architectures Criteria for selection of architecture Looking ahead Time scale

Scaling Up Control We have seen feedback control How do we put together multiple feedback controllers in a principled fashion? in what order? with what priority? How do we generate complex, coherent, robust, and adaptive behavior?

Control Architecture A control architecture provides a set of principles for organizing a control system. It provides: structure constraints to aid the designer in producing a well-behaved controller

Why architecture? The term is used in the same sense as in computer architecture, where it means the set of principles for designing computers out of a collection of well-understood building blocks. Similarly, in robot control architectures, we will use a set of building blocks to program a robot in a reliable fashion

Software Control When discussing architectures we are referring to the software control level of the robot, not the hardware Some elements of control can be embedded in hardware, but not all. In general in robotics, we associate control architectures with software for control

Programming Languages Any robot control architecture is implemented in some programming language. It is important to realize the distinction between the two! Programming languages are implementational tools Programming languages are not control architectures

Turing Universality Any programming language that contains: sequencing conditional branching iteration can compute the entire class of computable functions => This is called Turing Universality All programming languages in use are Turing Universal

Turing Equivalence All such Turing Universal languages are called Turing equivalent => Any programming language can be used to implement any architecture. In practice, some programming languages are more convenient than others for specific tasks. E.g., what do we use Lisp, Java, HTML, C, C++, Visual Basic, etc., primarily for?

Languages and Uses Programming languages are designed for specific uses. Thus, various languages have been used for robot control: standard (e.g., Lisp, C, C++) specialized (e.g., Behavior Language, Subsumption Language, etc.) Language choice is often more pragmatic than philosophical

Languages & Architectures Regardless of the language, a welldesigned controller fits into one of the four control architecture types. Why not always use C/Java/foo? A programming language can be designed so as to facilitate certain architectural practices (e.g., reactivity, tight feedback, symbolic representations, numerical computation, etc.)

Architecture Space We are going to cover the space of robot control architectures: the history, the stateof-the-art, the reasons for it. There are infinitely many possible robot programs, but there is a finite (and rather small) number of truly distinct robot architectures. We already mentioned them early on in the semester, and they are...

Robot Control Architectures Deliberative control Reactive control Hybrid control Behavior-based control Robotics literature abounds with proposed "novel" control architectures Are these novel?

No More Architectures? After several decades of research and testing, all architectures so far fall within one of the four general classes we enumerated earlier Don t be fooled by unprincipled use of architecture and language terminology. Many a robot designer has encoded a new programming language and confused it with a robot architecture.

Power and Expressiveness Another confusion exists regarding the issue of fundamental power and/or expressiveness of a robot control architecture Advocates make claims about one control architecture being able to compute fundamentally more than another Can that be true?

Back to Turing Equivalence If an architecture is implemented in a Turing Universal programming language, it is fully expressive Since any language can compute any computable function, the architecture on top of it cannot further limit it

What is Constrained? Control architectures do not constrain expressiveness Architectures do greatly affect and constrain the structure of the robot controller (e.g., behavior representation, granularity, time scale ) What about the resulting robot behavior?

Behavior => Architecture In some cases, it is impossible to tell, just by observing a robot's behavior, what control architecture it is using This is similar to not being able to tell in what language some program is implemented; the function remains the same For simple robots, this is often the case. However, when it comes to more complex robots and environments...

The Environment For robots that have to deal with complex environments and tasks, the control architecture becomes very important. Key environment features: presence of sensor/actuator noise static v. dynamic response time of sensors and effectors observability adaptation

The Task Another key determinant of the architecture is the nature of the task What does the robot need to do? Consider the example from sensing: object / person recognition finding / grabbing an object moving around etc. The task requirements can constrain the architecture choice

Sources of Distinction Behavior representation: how is action represented? Granularity of behavior: what time scale is used for action? Behavior interaction and coordination: how are actions/behaviors chosen? Basis for behavior specification: is a biological model used? Programming methods: is software reusable, supported, user-friendly?

Criteria for Selection Support for parallelism: the ability to execute concurrent processes / behaviors at the same time Hardware targetability: how well can it be mapped to robot sensors and effectors; how well the computation can be mapped onto real processing elements (microprocessors, PLAs, etc.)

Criteria for Selection Run-time flexibility: is run-time adjustment and reconfiguration (even learning) possible and facilitated? Modularity: how is encapsulation of control handled, how does it treat abstraction? Does it allow many levels, going from feedback loops to primitives to agents? Does it allow re-use of software?

Criteria for Selection Niche targetability: how well the architecture allows the robot to deal with its environment Robustness: how well does the architecture perform if individual components fail? How well does it enable and facilitate writing controllers capable of fault tolerance?

Criteria for Selection Ease of use: how easy to use and accessible is it? Are there programming tools and expertise? Performance: how well does the robot perform using the architecture? Does it act in real-time? Does it get the job done? Is it failure-prone?

Comparability These criteria allow us to compare and evaluate different architectures relative to specific robot designs, tasks, and environments Not all tasks, environments, and designs are comparable => There is no fixed hierarchy or look-up table of the right architecture for a given robot/task/environment...

Looking Ahead One way to classify the four types of architectures is by the amount of looking into the future they each do Deliberative: only look-ahead; plan, then execute Reactive: no look-ahead; only react Hybrid: look ahead with the brain but react quickly with the wheels Behavior-based: look ahead only while acting

Time-Scale Time-scale is an important way of distinguishing control architectures Reactive systems respond to the realtime requirements of the environment. They work on a short time-scale Deliberative systems look ahead (plan). They work on a long timescale

Combining Time-Scales Hybrid systems include and must combine the two (short and long) timescales. This requires a middle layer; => consequently they are often called three-layer architectures Behavior-based systems bring the different time-scales closer by distributing slower computation over concurrent behavior modules

Textbook Readings M 11