provided by LABORIUS

What is MARIE?

MARIE is a new design tool for mobile and autonomous robot application, designed to facilitate the integration of multiple heterogeneous software elements. It is a flexible tool based on a distributed model, thus allowing the realization of an application using one machine or various networked machines, architectures and platforms.

Motivations

The robotics field is evolving quickly. The diversity of technologies available and the software solutions developed in the various research centers throughout the world is in fact increasing the complexity of integration. All these researchers and developers, which worked to develop new solutions, see the reuse of their work by other difficult or impossible. Too much often this abandonment or negligence to use available components is due to the inherent complexity of integrate different incompatible softwares because conceived for various platforms, various operating systems or protocols and conventions of communication.

This diversity of applications and tools, which were developed to answer particular problems, should not be relegated only to specific demonstrations or implementations. Fast and simplified re-use of heteroclite components developed by others is essential for the evolution of this research area.

The impacts of such a tool on the re-use of the many technological and software solutions which are currently available or which will be it in the future are very important. The first would be to allow the researchers and their collaborators to elaborate on the particular aspect where they have a significant contribution to bring. Such a tool would avoid them to provide efforts for the reproduction and the adaptation of modules or applications already developed by others and which are not compatible or directly usable. The second impact would be to carry out configurations where particular components were never joined together for the same real time application. This opportunity potentially opens new avenues of research still not explored. A third impact would be to make it possible to the researchers to interact on a higher level with the mechanisms supporting the intelligence. The tool makes it possible to act on this level because it abstracts the low level implementation of the robot system.

Potential users

MARIE opens the door to those who wants to be able to use an effective integration tool abstracting the details of robot components and providing a platform for the mechanisms of high level intelligence for autonomous mobile robot applications.


Detailled Description

MARIE proposes a development environment, which copes directly with inter-application communications, creating transparency for communications between them and their localization. Each application interacts with MARIE communication system, instead of the typical application-to-application relation. It proposes a development environment, which helps and supports distributed system creation. We can see it as a toolbox appropriate for creation of robotics system, plus development guidelines and some APIs to support what is specific in applications.

MARIE uses the mediator design pattern for distributed system in order to cope with different applications not sharing the same communication protocol. This mediator design pattern creates a centralized control unit (the mediator) which interacts with each colleague (the applications) independently. It coordinates global interactions between colleagues in order to realize the desired system. The five principal consequences from this design are: limiting subclassing, decoupling colleagues, simplifying object protocols, abstracting how objects cooperate and centralizing control. Four functional components are to be used in order to create systems with such mediator design pattern, as shown in the next illustration :

Application Adapters are responsible for sending service requests and communications from the centralized control unit to the applications, and vice versa, using an application proxy. Each application to be integrated must have its own Application Adapter that encapsulates communication mechanism, the services it provides and the specific configurations it needs.

Communication Adapters are responsible for translating information between different communication protocols and mechanisms.

Communication Managers are responsible of creating and managing communication links between Application Adapters that need to be connected together.

Application Managers manage and control the entire system by coordinating system states, achieving coherence and stability, and configuring and controlling of all components available in the system.

Ports & Communication Strategies are responsible of interconnections between MARIE's components. Each components have one or more Ports that are used as tap points where communication links can be established. Each Port can have its own strategy, called Communication Strategy(CS), on how it handles incoming and outgoing data. Typically, CS implements or is based on a known protocol, such as TCP, UDP or IPC, but it can be any other strategies as well (shared memory, files, direct function calls, ...). Decoupling Communication Strategy from Port functionnalities opens the possibility to choose which protocol is used for each Port without having to modify code related to Ports/components functionnalities.


Programming Languages and Supported OS

MARIE's main programming language is C++. But, as presented before, MARIE's main goal is to be able to integrate any applications using any programming languages. So C++ is mandatory as long as you need to creates MARIE components (like Application Adapters, Communication Adapters, etc) or to add communication handlers in MARIE. Otherwise, MARIE can manage applications created with programming languages others than C++ by using OS calls for process and threads controls. Interaction with those applications is typically achieved via communication protocols (TCP, UDP, CORBA, ...), but it can use any other strategies as well (shared memory, files, direct function calls, etc).

With this approach, any OS can be used as long as it compiles MARIE librairies and it is compatible with ACE, which is the communication & process/threads management middleware MARIE is based on.



(c) Carle Côté 2003-2006
Website designed and realized by : Carle Côté
MARIE's logo designed by : André Côté