Download presentation
Presentation is loading. Please wait.
Published byAlex Black Modified over 11 years ago
1
IMA 2.5: Software Architecture and Development Environment Roberto Olivares M.S. Electrical Engineering Vanderbilt University, Spring 2003
2
Overview Terminology Terminology Problem Area Problem Area IMA 2.5 Objectives IMA 2.5 Objectives IMA 2.5 Layout IMA 2.5 Layout IMA 2.5 Features IMA 2.5 Features Conclusions Conclusions
3
Software Architecture The software architecture of an intelligent machine is a plan for building the software system that resides between sensors and actuators and utilizes the underlying computing mechanism to complete its tasks. The software architecture of an intelligent machine is a plan for building the software system that resides between sensors and actuators and utilizes the underlying computing mechanism to complete its tasks.
4
Intelligent Machine Architecture IMA is a robot software development environment IMA is a robot software development environment Developers write components Developers write components Components are configured into agents Components are configured into agents Agents work together to control the robot Agents work together to control the robot
5
Integration & Scaling Integration = adding functionality to a system Integration = adding functionality to a system Scaling = performing necessary integration to extend solution to a larger problem Scaling = performing necessary integration to extend solution to a larger problem Scalability = How easy scaling a system is Scalability = How easy scaling a system is
6
Overview Terminology Terminology Problem Area Problem Area IMA 2.5 Objectives IMA 2.5 Objectives IMA 2.5 Layout IMA 2.5 Layout IMA 2.5 Features IMA 2.5 Features Conclusions Conclusions
7
Why do we need IMA? Interesting Question: Interesting Question: How can we generate intelligent robot behavior across multiple domains? How can we generate intelligent robot behavior across multiple domains? Resulting Assumption: Resulting Assumption: Underlying software will be large, complex, and require a large degree of experimentation. Underlying software will be large, complex, and require a large degree of experimentation. Resulting Problem: Resulting Problem: How do we manage the development, integration, and execution of this software? How do we manage the development, integration, and execution of this software?
8
Problem Domain How do we manage the development, integration, and execution of robot software? How do we manage the development, integration, and execution of robot software? Sub-problems Sub-problems Domain Related Domain Related Algorithm Related Algorithm Related Engineering Related Engineering Related
9
Domain Issues Problem Problem Ill-defined (no specifications or design) Ill-defined (no specifications or design) Biology hasnt helped at the behavioral level Biology hasnt helped at the behavioral level Search Space Search Space Large Large Sparse Sparse Search approach Search approach Evaluating a solution is costly Evaluating a solution is costly No heuristic or gradient to follow No heuristic or gradient to follow
10
Algorithm Issues Integrative Approach Integrative Approach Destructive Interference Destructive Interference Functionalities contradict or dont integrate Functionalities contradict or dont integrate Diminishing returns Diminishing returns Information content in biological systems is unaccounted for Information content in biological systems is unaccounted for
11
Engineering Issues Collapse Collapse Point where integration & maintenance become prohibitive Point where integration & maintenance become prohibitive Development Development Inherent complexity (paradigm, techniques, technologies) Inherent complexity (paradigm, techniques, technologies) Increasing difficulty (comprehension, integration, regression faults) Increasing difficulty (comprehension, integration, regression faults) Academic Environment Academic Environment No software process (life-cycle model, specifications, design) No software process (life-cycle model, specifications, design) High turnover High turnover Domain engineers Domain engineers Low emphasis on infrastructure & maintenance Low emphasis on infrastructure & maintenance No CASE tools No CASE tools
12
Problem Summary How do we manage the development, integration, and execution of robot software? How do we manage the development, integration, and execution of robot software? Sub-problems Sub-problems Domain Related Domain Related Algorithm Related Algorithm Related Engineering Related Engineering Related This is a hard problem This is a hard problem
13
Overview Terminology Terminology Problem Area Problem Area IMA 2.5 Objectives IMA 2.5 Objectives IMA 2.5 Layout IMA 2.5 Layout IMA 2.5 Features IMA 2.5 Features Conclusions Conclusions
14
Focus Of IMA Which of these issues are addressable? Which of these issues are addressable? Domain Issues: Few Domain Issues: Few Algorithm Issues: Few Algorithm Issues: Few Engineering Issues: Some Engineering Issues: Some IMA focuses on the engineering issues, not on the domain or algorithm issues. IMA focuses on the engineering issues, not on the domain or algorithm issues.
15
Previous Objectives IMA 1.0 IMA 1.0 Support the development of integrated control software Support the development of integrated control software Integrate software architecture with various design approaches to guide development Integrate software architecture with various design approaches to guide development Promote binary and source reuse Promote binary and source reuse Provide fault-tolerant distributed computing Provide fault-tolerant distributed computing IMA 2.0 IMA 2.0 Speed learning Speed learning Speed development Speed development Facilitate integration Facilitate integration Provide better development tools Provide better development tools
16
1998 – iRobot releases Mobility architecture based on IMA 1.0 (Philosophy: Same as IMA. Mobility is targeted at mobile robots in academic research. The software runs only on C++ / Linux.) 2002 – IBM releases the Agent Building & Learning Environment (ABLE). (Targeted at systems requiring autonomic computing abilities. AI algorithms similar to IMA, but without algorithmic communication. Only Java is supported.) Parallel Work
17
IMA 2.5 Objectives Stabilize platform Stabilize platform Increase guidance & prevent bad habits Increase guidance & prevent bad habits Increase system reliability Increase system reliability Increase system scalability Increase system scalability Provide better development tools Provide better development tools Aid knowledge transfer Aid knowledge transfer
18
Overview Terminology Terminology Problem Area Problem Area IMA 2.5 Objectives IMA 2.5 Objectives IMA 2.5 Layout IMA 2.5 Layout IMA 2.5 Features IMA 2.5 Features Conclusions Conclusions
19
IMA 2.5 System Layout Programming Paradigm Programming Paradigm Guidelines for writing IMA software Guidelines for writing IMA software Software Platform Software Platform Software that runs our software Software that runs our software Software that manages our software Software that manages our software Software that helps write our software Software that helps write our software
20
IMA 2.5 Programming Paradigm Agent Model Agent Model Agent Taxonomy Agent Taxonomy Atomic, Compound Atomic, Compound Hardware/Resource, Skill/Behavior Hardware/Resource, Skill/Behavior Environment, Sequencer, Multi-Type Environment, Sequencer, Multi-Type Component Taxonomy Component Taxonomy Agent, Engine, Mechanism, Representation Agent, Engine, Mechanism, Representation Link, Relationship, Policy Link, Relationship, Policy Interfaces Interfaces
21
IMA 2.5 Software Platform Runtime Environment Runtime Environment Distributing Layer Distributing Layer Locator Service Locator Service Event Service Event Service Information Service Information Service Control Layer Control Layer Components Components Agents Agents Application Layer Application Layer Development Tools Development Tools End-User Interfaces End-User Interfaces Development Tools Development Tools Distributed Agent Designer (DAD) Distributed Agent Designer (DAD) Manager Book (MB) Manager Book (MB) Command Console (CC) Command Console (CC) Base Classes & Templates Base Classes & Templates
22
IMA 2.5 Runtime Environment Samurai A1 A2 Musashi IMA 2.5 Services C1 C2 C3 C4 A3 IMA 2.5 Services C5 C6 A4 C7 C8 DCOM Data Marshalling via 10/100mbps Ethernet Locator Requests & Event Notifications Bind-time Direct Connection Runtime Component Location Ninja
23
Overview Terminology Terminology Problem Addressed Problem Addressed IMA 2.5 Layout IMA 2.5 Layout IMA 2.5 Issues IMA 2.5 Issues IMA 2.5 Features IMA 2.5 Features Conclusions Conclusions
24
IMA 2.5 Objectives Stabilize platform Stabilize platform Increase guidance Increase guidance Increase system reliability Increase system reliability Increase system scalability Increase system scalability Provide better development tools Provide better development tools Aid knowledge transfer Aid knowledge transfer
25
Platform Stabilization Bug fixes Bug fixes Key issues with 2.0 fixed Key issues with 2.0 fixed Bindings Bindings Binary reuse Binary reuse Properties & methods Properties & methods Manager separation Manager separation End-user support End-user support Development tools easier to modify Development tools easier to modify Manuals Manuals Templates Templates Base Classes Base Classes
26
System Reliability Reliability = Fault Tolerance Reliability = Fault Tolerance Simplified Interfaces Simplified Interfaces Locator Service, Event Service, Information Service Locator Service, Event Service, Information Service AgentBuilder DAD, MB, CC AgentBuilder DAD, MB, CC Base classes for agents, components, and bindings Base classes for agents, components, and bindings Default Agents (Out-of-process) Default Agents (Out-of-process) Components (State Machine) Components (State Machine) Bindings overhaul Bindings overhaul
27
Increase Guidance Templates Templates Manuals Manuals Base classes Base classes Second-level events Second-level events Bindings object for locating components Bindings object for locating components Bindings editor for configuration Bindings editor for configuration Guidelines Guidelines Naming conventions Naming conventions Component & manager separation Component & manager separation Directories Directories
28
System Scalability Scalability = Increased agent & component capacity Scalability = Increased agent & component capacity Locator Service, Event Service, Information Service Locator Service, Event Service, Information Service Data structures, search methods Data structures, search methods Manager overhaul Manager overhaul Bindings overhaul (complexity) Bindings overhaul (complexity) Late-binding property/method support Late-binding property/method support
29
Development Tools Distributed Agent Designer (DAD) Distributed Agent Designer (DAD) ManagerBook (MB) ManagerBook (MB) Command Console (CC) Command Console (CC)
33
Knowledge Transfer Hidden knowledge Hidden knowledge Component Information Component Information Binding Details Binding Details Information Service Information Service DAD & Bindings DAD & Bindings Component icons Component icons Centralized directories Centralized directories Components Components Managers Managers Data Data Applications Applications Documentation database Documentation database
34
Overview Terminology Terminology Problem Addressed Problem Addressed IMA 2.5 Layout IMA 2.5 Layout IMA 2.5 Issues IMA 2.5 Issues IMA 2.5 Features IMA 2.5 Features Conclusions Conclusions
35
IMA 2.5 Objectives Stabilize platform Stabilize platform Increase guidance & prevent bad habits Increase guidance & prevent bad habits Increase system reliability Increase system reliability Increase system scalability Increase system scalability Provide better development tools Provide better development tools Aid knowledge transfer Aid knowledge transfer
36
Conclusions Mobiles should be moved to IMA 2.5 if possible Mobiles should be moved to IMA 2.5 if possible IMA provides some benefits for small projects IMA provides some benefits for small projects A properly developed IMA combined with software engineering practices would offset the collapse point of large projects A properly developed IMA combined with software engineering practices would offset the collapse point of large projects IBMs ABLE platform may be an alternative to IMA IBMs ABLE platform may be an alternative to IMA IMA should eventually move to.NET IMA should eventually move to.NET
37
Common Questions Why not just use OOP and DCOM? Why not just use OOP and DCOM? Are the advantages to IMA2 worth the move? Are the advantages to IMA2 worth the move? Why not go back to Linux? Why not go back to Linux? Is IMA worth it? Is IMA worth it? What is the future of IMA? What is the future of IMA?
38
Questions?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.