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

Size: px
Start display at page:

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

Transcription

1 Introduction to Robotics CSCI 445 Amin Atrash Control Architectures

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

3 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

4 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?

5 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

6 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

7 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

8 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

9 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

10 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?

11 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

12 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.)

13 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...

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

15 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.

16 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?

17 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

18 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?

19 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...

20 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

21 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

22 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?

23 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.)

24 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?

25 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?

26 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?

27 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...

28 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

29 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

30 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

31 Textbook Readings M 11

Robotic Behaviors. Potential Field Methods

Robotic Behaviors. Potential Field Methods Robotic Behaviors Potential field techniques - trajectory generation - closed feedback-loop control Design of variety of behaviors - motivated by potential field based approach steering behaviors Closed

More information

Mobile robots control architectures

Mobile robots control architectures 1 Mobile robots control architectures Dimitri Popov Universität Hamburg Fakultät für Mathematik, Informatik und Naturwissenschaften Department Informatik Integriertes Seminar Intelligent Robotics 10 1.

More information

Robotics. CSPP Artificial Intelligence March 10, 2004

Robotics. CSPP Artificial Intelligence March 10, 2004 Robotics CSPP 56553 Artificial Intelligence March 10, 2004 Roadmap Robotics is AI-complete Integration of many AI techniques Classic AI Search in configuration space (Ultra) Modern AI Subsumption architecture

More information

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

Software Design Fundamentals. CSCE Lecture 11-09/27/2016 Software Design Fundamentals CSCE 740 - Lecture 11-09/27/2016 Today s Goals Define design Introduce the design process Overview of design criteria What results in a good design? Gregory Gay CSCE 740 -

More information

Syllabus Instructors:

Syllabus Instructors: Introduction to Real-Time Systems Embedded Real-Time Software Lecture 1 Syllabus Instructors: Dongsoo S. Kim Office : Room 83345 (031-299-4642) E-mail : dskim@iupui.edu Office Hours: by appointment 2 Syllabus

More information

Complex behavior emergent from simpler ones

Complex behavior emergent from simpler ones Reactive Paradigm: Basics Based on ethology Vertical decomposition, as opposed to horizontal decomposition of hierarchical model Primitive behaviors at bottom Higher behaviors at top Each layer has independent

More information

Introduction to Software Engineering

Introduction to Software Engineering Introduction to Software Engineering Gérald Monard Ecole GDR CORREL - April 16, 2013 www.monard.info Bibliography Software Engineering, 9th ed. (I. Sommerville, 2010, Pearson) Conduite de projets informatiques,

More information

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

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements. Contemporary Design We have been talking about design process Let s now take next steps into examining in some detail Increasing complexities of contemporary systems Demand the use of increasingly powerful

More information

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

What are Embedded Systems? Lecture 1 Introduction to Embedded Systems & Software What are Embedded Systems? 1 Lecture 1 Introduction to Embedded Systems & Software Roopa Rangaswami October 9, 2002 Embedded systems are computer systems that monitor, respond to, or control an external

More information

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

Week 6: Data. Let's focus first on application domain data. review of things we already (should) know criteria for external & internal representation basic elementary data types composite data types container data types derived subtypes abstract data types (ADT)

More information

Software Architecture. Lecture 4

Software Architecture. Lecture 4 Software Architecture Lecture 4 Last time We discussed tactics to achieve architecture qualities We briefly surveyed architectural styles 23-Jan-08 http://www.users.abo.fi/lpetre/sa08/ 2 Today We check

More information

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

Sommerville Chapter 6 The High-Level Structure of a Software Intensive System. Architectural Design. Slides courtesy Prof. Sommerville Chapter 6 The High-Level Structure of a Software Intensive System Architectural Design Slides courtesy Prof.Mats Heimdahl 1 Fall 2 2013 Architectural Parallels Architects are the technical

More information

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

The Bizarre Truth! Automating the Automation. Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER The Bizarre Truth! Complicated & Confusing taxonomy of Model Based Testing approach A CONFORMIQ WHITEPAPER By Kimmo Nupponen 1 TABLE OF CONTENTS 1. The context Introduction 2. The approach Know the difference

More information

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

Chapter 1: Introduction Operating Systems MSc. Ivan A. Escobar Chapter 1: Introduction Operating Systems MSc. Ivan A. Escobar What is an Operating System? A program that acts as an intermediary between a user of a computer and the computer hardware. Operating system

More information

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

cis1.0 computing: nature, power and limits robotics applications fall 2006 lecture # A.1 introduction cis1.0 computing: nature, power and limits robotics applications fall 2006 lecture # A.1 introduction topics: (0) introduction to the course (1) what is a computer? (2) what is a robot? (3) what is a network?

More information

Future Directions in Simulation Modeling. C. Dennis Pegden

Future Directions in Simulation Modeling. C. Dennis Pegden Future Directions in Simulation Modeling C. Dennis Pegden Outline A half century of progress. Where do we need to go from here? How do we get there? Simulation: A Compelling Technology See the future Visualize

More information

Chapter 1: An Introduction to Computer Science

Chapter 1: An Introduction to Computer Science Chapter 1: An Introduction to Computer Science Invitation to Computer Science, Java Version, Third Edition Objectives In chapter 1, you will learn about One definition of computer science Algorithms Organization

More information

Programming II. Modularity 2017/18

Programming II. Modularity 2017/18 Programming II Modularity 2017/18 Module? Lecture Outline Evolution and history of programming languages Modularity Example History of Programming Programming Paradigms How and why languages develop? How

More information

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

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

More information

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

CSE 374 Programming Concepts & Tools. Hal Perkins Fall 2015 Lecture 15 Testing CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 15 Testing Where we are Some very basic software engineering topics in the midst of tools Today: testing (how, why, some terms) Later:

More information

Design Patterns Design patterns advantages:

Design Patterns Design patterns advantages: Design Patterns Designing object-oriented software is hard, and designing reusable object oriented software is even harder. You must find pertinent objects factor them into classes at the right granularity

More information

Topics in Object-Oriented Design Patterns

Topics in Object-Oriented Design Patterns Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;

More information

ITM DEVELOPMENT (ITMD)

ITM DEVELOPMENT (ITMD) ITM Development (ITMD) 1 ITM DEVELOPMENT (ITMD) ITMD 361 Fundamentals of Web Development This course will cover the creation of Web pages and sites using HTML, CSS, Javascript, jquery, and graphical applications

More information

CS4514 Real-Time Systems and Modeling

CS4514 Real-Time Systems and Modeling CS4514 Real-Time Systems and Modeling Fall 2015 José M. Garrido Department of Computer Science College of Computing and Software Engineering Kennesaw State University Real-Time Systems RTS are computer

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2016 Lecture 2 Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 2 System I/O System I/O (Chap 13) Central

More information

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

Introduction to Real-time Systems. Advanced Operating Systems (M) Lecture 2 Introduction to Real-time Systems Advanced Operating Systems (M) Lecture 2 Introduction to Real-time Systems Real-time systems deliver services while meeting some timing constraints Not necessarily fast,

More information

6.852: Distributed Algorithms Fall, Class 21

6.852: Distributed Algorithms Fall, Class 21 6.852: Distributed Algorithms Fall, 2009 Class 21 Today s plan Wait-free synchronization. The wait-free consensus hierarchy Universality of consensus Reading: [Herlihy, Wait-free synchronization] (Another

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

Lecture 5: The Halting Problem. Michael Beeson

Lecture 5: The Halting Problem. Michael Beeson Lecture 5: The Halting Problem Michael Beeson Historical situation in 1930 The diagonal method appears to offer a way to extend just about any definition of computable. It appeared in the 1920s that it

More information

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

Data Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques. Version 03.s 2-1 Design Principles Data Structures and Algorithms Design Goals Implementation Goals Design Principles Design Techniques 2-1 Data Structures Data Structure - A systematic way of organizing and accessing

More information

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

GLUE - A Component Connecting Schema-based Reactive to Higher-level Deliberative Layers for Autonomous Agents GLUE - A Component Connecting Schema-based Reactive to Higher-level Deliberative Layers for Autonomous Agents James Kramer Matthias Scheutz University of Notre Dame Notre Dame, IN 46556 e-mail: jkramer3,mscheutz@nd.edu

More information

LECTURE 3: SOFTWARE DESIGN. Software Engineering Mike Wooldridge

LECTURE 3: SOFTWARE DESIGN. Software Engineering Mike Wooldridge LECTURE 3: SOFTWARE DESIGN Mike Wooldridge 1 Design Computer systems are not monolithic: they are usually composed of multiple, interacting modules. Modularity has long been seen as a key to cheap, high

More information

Introducing Computer Programming

Introducing Computer Programming ok4 01 f2 5/24/17 9:59 AM Page 3 Chapter 1 Introducing Computer Programming Intended Learning Outcomes After completing this chapter, you should be able to: Explain the difference between computers and

More information

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

ITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University ITC213: STRUCTURED PROGRAMMING Bhaskar Shrestha National College of Computer Studies Tribhuvan University Lecture 03: Program Development Life Cycle Readings: Not Covered in Textbook Program Development

More information

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

Recap A Search Optimality of A. Search: A. CPSC 322 Search 5. Textbook 3.6. Search: A CPSC 322 Search 5, Slide 1 Search: A CPSC 322 Search 5 Textbook 3.6 Search: A CPSC 322 Search 5, Slide 1 Lecture Overview 1 Recap 2 A Search 3 Optimality of A Search: A CPSC 322 Search 5, Slide 2 Search with Costs Sometimes there

More information

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

Lecture 4: Design Concepts For Responsibility- Driven Design Kenneth M. Anderson January 20, 2005 Lecture 4: Design Concepts For Responsibility- Driven Design Kenneth M. Anderson 1 of 25 Introduction Chapter 1 of Object Design covers topics that aid understanding of Responsibility-Driven Design Object

More information

Chapter 1. Preliminaries

Chapter 1. Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

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

Components & Characteristics of an Embedded System Embedded Operating System Application Areas of Embedded d Systems. Embedded System Components Components & Characteristics of an Embedded System Embedded Operating System Application Areas of Embedded d Systems Automotive Industrial Automation Building Automation etc. 1 2 Embedded System Components

More information

Developing an Enterprise Extranet Service

Developing an Enterprise Extranet Service Developing an Enterprise Extranet Service White Paper www.aventail.com Tel 206.215.1111 Fax 206.215.1120 808 Howell Street Second Floor Seattle, WA 98101 Executive Summary A variety of market research

More information

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

Combining Algebraic Constraints with Graph-based Intelligent Testbench Automation by Mike Andrews, Verification Technologist, Mentor Graphics Combining Algebraic Constraints with Graph-based Intelligent Testbench Automation by Mike Andrews, Verification Technologist, Mentor Graphics 22 Abstract: The Questa infact intelligent testbench automation

More information

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

Coding and Unit Testing! The Coding Phase! Coding vs. Code! Coding! Overall Coding Language Trends! Requirements Spec. Design Coding and Unit Testing Characteristics of System to be built must match required characteristics (high level) Architecture consistent views Software Engineering Computer Science

More information

1001ICT Introduction To Programming Lecture Notes

1001ICT Introduction To Programming Lecture Notes 1001ICT Introduction To Programming Lecture Notes School of Information and Communication Technology Griffith University Semester 2, 2015 1 2 Elements of Java Java is a popular, modern, third generation

More information

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

Introduction to Computers and Programming Languages. CS 180 Sunil Prabhakar Department of Computer Science Purdue University Introduction to Computers and Programming Languages CS 180 Sunil Prabhakar Department of Computer Science Purdue University 1 Objectives This week we will study: The notion of hardware and software Programming

More information

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

CSc 10200! Introduction to Computing. Lecture 1 Edgardo Molina Fall 2013 City College of New York CSc 10200! Introduction to Computing Lecture 1 Edgardo Molina Fall 2013 City College of New York 1 Introduction to Computing Lectures: Tuesday and Thursday s (2-2:50 pm) Location: NAC 1/202 Recitation:

More information

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

Been testing software for over 10 years Started out as a Manual Tester Moved to Automation testing Now leading teams, defining quality in Been testing software for over 10 years Started out as a Manual Tester Moved to Automation testing Now leading teams, defining quality in organizations. Started as a reflection of how much software testing

More information

Chapter 1 Preliminaries

Chapter 1 Preliminaries Chapter 1 Preliminaries Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language

More information

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

Organization of Programming Languages (CSE452) Why are there so many programming languages? What makes a language successful? Organization of Programming Languages (CSE452) Instructor: Dr. B. Cheng Fall 2004 1 Why are there so many programming languages? Evolution -- we've learned better ways of doing things over time Socio-economic

More information

Introduction to Software Reuse

Introduction to Software Reuse DCC / ICEx / UFMG Introduction to Software Reuse Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Software Reuse The use of existing software or software knowledge to build new software In the last

More information

Software Architecture

Software Architecture Software Architecture Architectural Design and Patterns. Standard Architectures. Dr. Philipp Leitner @xleitix University of Zurich, Switzerland software evolution & architecture lab Architecting, the planning

More information

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

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 Page Outline ECE 254 / CPS 225 Fault Tolerant and Testable Computing Systems Testing and Design for Test Copyright 24 Daniel J. Sorin Duke University Introduction and Terminology Test Generation for Single

More information

Unifying Agent and Component Concepts - Jadex Active Components

Unifying Agent and Component Concepts - Jadex Active Components Unifying Agent and Component Concepts - Jadex Active Components Alexander Pokahr, Lars Braubach, Kai Jander Distributed Systems and Information Systems Group (VSIS) Department of Informatics, University

More information

Complexity. Object Orientated Analysis and Design. Benjamin Kenwright

Complexity. Object Orientated Analysis and Design. Benjamin Kenwright Complexity Object Orientated Analysis and Design Benjamin Kenwright Outline Review Object Orientated Programming Concepts (e.g., encapsulation, data abstraction,..) What do we mean by Complexity? How do

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Spring 2018 Lecture 2 Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 2 What is an Operating System? What is

More information

Graph and the World of Brains

Graph and the World of Brains Graph and the World of Brains Edwin Lunando/13509024 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia edwinlunando@gmail.com

More information

Fall UI Design and Implementation 1

Fall UI Design and Implementation 1 Fall 2005 6.831 UI Design and Implementation 1 1 Suggested by Daniel Swanton Fall 2005 6.831 UI Design and Implementation 2 2 Suggested by Robert Kwok Fall 2005 6.831 UI Design and Implementation 3 3 Input

More information

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.

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. CAMERA User s Guide 1 Quick Start CAMERA is a collection of concise, intuitive and visually inspiring workbenches for cache mapping schemes and virtual memory. The CAMERA workbenches are standalone applications

More information

Introduction to Autonomous Mobile Robots

Introduction to Autonomous Mobile Robots Introduction to Autonomous Mobile Robots second edition Roland Siegwart, Illah R. Nourbakhsh, and Davide Scaramuzza The MIT Press Cambridge, Massachusetts London, England Contents Acknowledgments xiii

More information

Multiprocessor scheduling

Multiprocessor scheduling Chapter 10 Multiprocessor scheduling When a computer system contains multiple processors, a few new issues arise. Multiprocessor systems can be categorized into the following: Loosely coupled or distributed.

More information

Robotics Programming Laboratory

Robotics Programming Laboratory Chair of Software Engineering Robotics Programming Laboratory Bertrand Meyer Jiwon Shin Lecture 9: Software Architecture in Robotics Control and navigation architecture Serial architecture action Module

More information

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

Ways of documenting Session 5: detailed requirements The Data Dictionary one any The Project A data dictionary Data Dictionary may be maintained Session 5: The Data Dictionary relationship to systems analysis methodologies relationship to project management data definition vs. data representation taxonomy of data types COMP 477 /377, Spring, 2017

More information

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

CSCI 136 Data Structures & Advanced Programming. Fall 2018 Instructors Bill Lenhart & Bill Jannen CSCI 136 Data Structures & Advanced Programming Fall 2018 Instructors Bill Lenhart & Bill Jannen Administrative Details Class roster: Who s here? And who s trying to get in? Handout: Class syllabus Lecture

More information

Software Architecture--Continued. Another Software Architecture Example

Software Architecture--Continued. Another Software Architecture Example Software Architecture--Continued References for Software Architecture examples: Software Architecture, Perspectives on an Emerging Discipline, by Mary Shaw and David Garlin, Prentice Hall, 1996. B. Hayes-Roth,

More information

Hardware Software Codesign of Embedded System

Hardware Software Codesign of Embedded System Hardware Software Codesign of Embedded System CPSC489-501 Rabi Mahapatra Mahapatra - Texas A&M - Fall 00 1 Today s topics Course Organization Introduction to HS-CODES Codesign Motivation Some Issues on

More information

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

Big Picture: Overview of Issues and Challenges in Autonomous Robotics + Impact on Practical Implementation Details Big Picture: Overview of Issues and Challenges in Autonomous Robotics + Impact on Practical Implementation Details August 27, 2002 Class Meeting 2 Announcements/Questions Course mailing list set up: cs594-sir@cs.utk.edu

More information

ADMAS Security Gateway

ADMAS Security Gateway ADMAS Security Gateway White paper submitted in response to 2006 Annual ITEA Technology Review June 30, 2006 Submitted by: Aberdeen Test Center and ProObject, Inc. 7467 Ridge Road, Suite 330 Hanover, MD

More information

6.001 Notes: Section 15.1

6.001 Notes: Section 15.1 6.001 Notes: Section 15.1 Slide 15.1.1 Our goal over the next few lectures is to build an interpreter, which in a very basic sense is the ultimate in programming, since doing so will allow us to define

More information

System types. Distributed systems

System types. Distributed systems System types 1 Personal systems that are designed to run on a personal computer or workstation Distributed systems where the system software runs on a loosely integrated group of cooperating processors

More information

Lecture 34 SDLC Phases and UML Diagrams

Lecture 34 SDLC Phases and UML Diagrams That Object-Oriented Analysis and Design Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology-Kharagpur Lecture 34 SDLC Phases and UML Diagrams Welcome

More information

Lecture 18: Planning and plan execution, applications

Lecture 18: Planning and plan execution, applications Lecture 18: Planning and plan execution, applications Planning, plan execution, replanning Planner as a part of an autonomous robot: robot architectures The subsumption architecture The 3-tier architecture:

More information

Principles of Programming Languages. Lecture Outline

Principles of Programming Languages. Lecture Outline Principles of Programming Languages CS 492 Lecture 1 Based on Notes by William Albritton 1 Lecture Outline Reasons for studying concepts of programming languages Programming domains Language evaluation

More information

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

Recalling the definition of design as set of models let's consider the modeling of some real software. Software Design and Architectures SE-2 / SE426 / CS446 / ECE426 Lecture 3 : Modeling Software Software uniquely combines abstract, purely mathematical stuff with physical representation. There are numerous

More information

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

what is an algorithm? analysis of algorithms classic algorithm example: search event-driven programming algorithms event-driven programming conditional execution robots and agents resources: cc3.12/cis1.0 computing: nature, power and limits robotics applications fall 2007 lecture

More information

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

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now? Outline EECS 5 - Components and Design Techniques for Digital Systems Lec Putting it all together -5-4 David Culler Electrical Engineering and Computer Sciences University of California Berkeley Top-to-bottom

More information

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

is easing the creation of new ontologies by promoting the reuse of existing ones and automating, as much as possible, the entire ontology Preface The idea of improving software quality through reuse is not new. After all, if software works and is needed, just reuse it. What is new and evolving is the idea of relative validation through testing

More information

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

Testing & Continuous Integration. Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 20 03/19/2010 esting & Continuous Integration Kenneth M. Anderson University of Colorado, Boulder CSCI 5828 Lecture 20 03/1/20 University of Colorado, 20 1 Goals 2 Review material from Chapter of Pilone & Miles esting

More information

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

INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET) NEED FOR DESIGN PATTERNS AND FRAMEWORKS FOR QUALITY SOFTWARE DEVELOPMENT INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET) International Journal of Computer Engineering and Technology (IJCET), ISSN 0976 6367(Print), ISSN 0976 6367(Print) ISSN 0976 6375(Online)

More information

PROCESS SCHEDULING II. CS124 Operating Systems Fall , Lecture 13

PROCESS SCHEDULING II. CS124 Operating Systems Fall , Lecture 13 PROCESS SCHEDULING II CS124 Operating Systems Fall 2017-2018, Lecture 13 2 Real-Time Systems Increasingly common to have systems with real-time scheduling requirements Real-time systems are driven by specific

More information

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

Overview. Introduction to Embedded Systems. What is an embedded system? What are some of their characteristics? What is the required skill set? Embedded Basics Overview Introduction to Embedded Systems What is an embedded system? What are some of their characteristics? What is the required skill set? Software Development Process Waterfall vs Agile

More information

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

Question. Reliable Transport: The Prequel. Don t parse my words too carefully. Don t be intimidated. Decisions and Their Principles. Question How many people have not yet participated? Reliable Transport: The Prequel EE122 Fall 2012 Scott Shenker http://inst.eecs.berkeley.edu/~ee122/ Materials with thanks to Jennifer Rexford, Ion Stoica,

More information

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

Chapter 7:: Data Types. Mid-Term Test. Mid-Term Test (cont.) Administrative Notes Chapter 7:: Data Types Programming Language Pragmatics Michael L. Scott Administrative Notes Mid-Term Test Thursday, July 27 2006 at 11:30am No lecture before or after the mid-term test You are responsible

More information

Visual interfaces for a semantic content-based image retrieval system

Visual interfaces for a semantic content-based image retrieval system Visual interfaces for a semantic content-based image retrieval system Hagit Hel-Or a and Dov Dori b a Dept of Computer Science, University of Haifa, Haifa, Israel b Faculty of Industrial Engineering, Technion,

More information

Object Oriented Software Design

Object Oriented Software Design Object Oriented Software Design Introduction to Object Oriented Programming Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa September 23, 2010 G. Lipari (Scuola Superiore

More information

CSCI 4717 Computer Architecture

CSCI 4717 Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Symmetric Multiprocessors & Clusters Reading: Stallings, Sections 18.1 through 18.4 Classifications of Parallel Processing M. Flynn classified types of parallel

More information

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

Algorithm Concepts. 1 Basic Algorithm Concepts. May 16, Computational Method Algorithm Concepts David R. Musser Brian Osman May 16, 2003 This document contains Section 1 of Algorithm Concepts, a collection of algorithm concept descriptions in both Web page and print form under

More information

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

Distribution Middleware Technologies for Cyber Physical Systems Remote Engineering & Virtual Instrumentation Distribution Middleware Technologies for Cyber Physical Systems Remote Engineering & Virtual Instrumentation 4-6 July 2012 REV 2012 Bilbao (Spain) Isidro Calvo Isidro.calvo@ehu.es Dept. of Automatic Control

More information

Assignment 1: Control and obstacle avoidance

Assignment 1: Control and obstacle avoidance Assignment 1: Control and obstacle avoidance ETH Zurich Individual Demonstration: Thursday, 08.10.2015 at 15:15 Individual Software Due: Thursday, 08.10.2015 at 23:00 Group Work Demonstration: Monday,

More information

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

In this chapter, you will learn about: The definition of computer science. Algorithms. Invitation to Computer Science, C++ Version, Third Edition Objectives Chapter 1: An Introduction to Com puter S cience Invitation to Computer Science, C++ Version, Third Edition In this chapter, you will learn about: The definition of computer science Algorithms

More information

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

Structural Testing. (c) 2007 Mauro Pezzè & Michal Young Ch 12, slide 1 Structural Testing (c) 2007 Mauro Pezzè & Michal Young Ch 12, slide 1 Learning objectives Understand rationale for structural testing How structural (code-based or glass-box) testing complements functional

More information

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

CSCI 136 Data Structures & Advanced Programming. Spring 2018 Instructors Bill Jannen & Jon Park CSCI 136 Data Structures & Advanced Programming Spring 2018 Instructors Bill Jannen & Jon Park Today s Outline Course Preview Course Bureaucracy Crash Course in Java Part 1 2 Why Take CS136? To learn about:

More information

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

(See related materials in textbook.) CSE 435: Software Engineering (slides adapted from Ghezzi et al & Stirewalt Verification (See related materials in textbook.) Outline What are the goals of verification? What are the main approaches to verification? What kind of assurance do we get through testing? How can testing

More information

A Modeling Framework for Control Fault Tolerant Reactive Systems

A Modeling Framework for Control Fault Tolerant Reactive Systems A Modeling Framework for Control Fault Tolerant Reactive Systems Doug Densmore and Shannon Zelinski Department of Electrical Engineering and Computer Sciences University of California, Berkeley December

More information

IT 540 Operating Systems ECE519 Advanced Operating Systems

IT 540 Operating Systems ECE519 Advanced Operating Systems IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (5 th Week) (Advanced) Operating Systems 5. Concurrency: Mutual Exclusion and Synchronization 5. Outline Principles

More information

Topological Navigation and Path Planning

Topological Navigation and Path Planning Topological Navigation and Path Planning Topological Navigation and Path Planning Based upon points of interest E.g., landmarks Navigation is relational between points of interest E.g., Go past the corner

More information

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

SCRAMNet GT. A New Technology for Shared-Memor y Communication in High-Throughput Networks. Technology White Paper Technology White Paper SCRAMNet GT A New Technology for Shared-Memor y Communication in High-Throughput Networks Introduction A number of today s most advanced networking applications require the fast

More information

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

User Task Flows. What are Task Flows? Why use task flows? bringing the user into the development process. Challenge: M ore often than not, the needs and expectations of the user are present only in the abstract when design and development of an application are being discussed. Use cases tend to reflect system interaction,

More information

Optimised Embedded Distributed Controller for Automated Lighting Systems

Optimised Embedded Distributed Controller for Automated Lighting Systems Optimised Embedded Distributed Controller for Automated Lighting Systems Alie El-Din Mady, Menouer Boubekeur and Gregory Provan Prof. Gregory Provan Cork Complex Systems Lab Computer Science Department,

More information

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

Agent Design Example Problems State Spaces. Searching: Intro. CPSC 322 Search 1. Textbook Searching: Intro CPSC 322 Search 1, Slide 1 Searching: Intro CPSC 322 Search 1 Textbook 3.0 3.3 Searching: Intro CPSC 322 Search 1, Slide 1 Lecture Overview 1 Agent Design 2 Example Problems 3 State Spaces Searching: Intro CPSC 322 Search 1, Slide

More information

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

CSE 332: Data Structures & Parallelism Lecture 10:Hashing. Ruth Anderson Autumn 2018 CSE 332: Data Structures & Parallelism Lecture 10:Hashing Ruth Anderson Autumn 2018 Today Dictionaries Hashing 10/19/2018 2 Motivating Hash Tables For dictionary with n key/value pairs insert find delete

More information

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

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction Lecture 13: Object orientation Object oriented programming Introduction, types of OO languages Key concepts: Encapsulation, Inheritance, Dynamic binding & polymorphism Other design issues Smalltalk OO

More information

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

A Graceful Degradation Framework for Distributed Embedded Systems William Nace Philip Koopman A Graceful Degradation Framework for Distributed Embedded Systems William Nace Philip Koopman Electrical & Computer ENGINEERING RoSES Project Robust Self-configuring Embedded Systems (RoSES) Robustness

More information