The IMA 1.0 architecture was developed to support the development of integrated control software as described in the Concepts page of this site. IMA 1.0 was to be used along with a design approach to guide the development of the software. Inherent to the architecture were encapsulation, integration, and scalability to promote reuse and easier development.
IMA 2.0 built on its predecessor and sought to speed the learning curve for developers, and as a result increase the speed of development as well. It facilitated integration and provided better development tools.
IMA 2.5 went further and has as its objectives to stabilize the platform, increase system reliability, system scalability, provide better development tools, and aiding transfer knowledge. For an in-depth look at how those objectives were realized refer to R. Olivaresí thesis.
At this time, there is an ongoing project to port the most important components from the IMA 1.0 architecture to the IMA 2.5 architecture, around 100 of them. The functionality of these components affects the behavior of all our Agents: Head, Camera, Arm, Hand, and Memory Agents.
The process of porting software from one architecture to another is delicate. Significant bookkeeping and testing is required to ensure that the functionality of the component is preserved after the transfer has been completed. There were significant changes in the inner functionality that needs to be accounted for. In particular, the binding process amongst components was completely revamped, serializing is done differently, and debugging agents has changed since there are new development tools available. Some are shown below:
Figure 1. Distributed Agent Designer
Figure 2. Manager Book
Figure 3. Command Console