Presentation is loading. Please wait.

Presentation is loading. Please wait.

IMA 2.5: Software Architecture and Development Environment Roberto Olivares M.S. Electrical Engineering Vanderbilt University, Spring 2003.

Similar presentations


Presentation on theme: "IMA 2.5: Software Architecture and Development Environment Roberto Olivares M.S. Electrical Engineering Vanderbilt University, Spring 2003."— Presentation transcript:

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)

30

31

32

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?


Download ppt "IMA 2.5: Software Architecture and Development Environment Roberto Olivares M.S. Electrical Engineering Vanderbilt University, Spring 2003."

Similar presentations


Ads by Google