Middleware for Robotic Applications (MIRA) is a cross-platform, open-source
software framework
In computer programming, a software framework is a software abstraction that provides generic functionality which developers can extend with custom code to create applications. It establishes a standard foundation for building and deploying soft ...
written in C++ that provides a
middleware
Middleware is a type of computer software program that provides services to software applications beyond those available from the operating system. It can be described as "software glue".
Middleware makes it easier for software developers to imple ...
, several base functionalities and numerous tools for developing and testing distributed software modules. It also focuses on easy creation of complex, dynamic applications, while reusing these modules as plugins. The main purpose of MIRA is the development of
robot
A robot is a machine—especially one Computer program, programmable by a computer—capable of carrying out a complex series of actions Automation, automatically. A robot can be guided by an external control device, or the robot control, co ...
ic applications, but as it is designed to allow type safe data exchange between software modules using intra- and interprocess communication it is not limited to these kinds of applications.
MIRA is developed in a cooperation of the
MetraLabs GmbH and the
Ilmenau University of Technologybr>
Neuroinformatics and Cognitive Robotics Lab Therefore, MIRA was designed to fulfill the requirements of both commercial and educational purposes.
Features
General:
* adds
introspection
Introspection is the examination of one's own conscious thoughts and feelings. In psychology, the process of introspection relies on the observation of one's mental state, while in a spiritual context it may refer to the examination of one's s ...
/
reflection Reflection or reflexion may refer to:
Science and technology
* Reflection (physics), a common wave phenomenon
** Specular reflection, mirror-like reflection of waves from a surface
*** Mirror image, a reflection in a mirror or in water
** Diffuse r ...
and
serialization
In computing, serialization (or serialisation, also referred to as pickling in Python (programming language), Python) is the process of translating a data structure or object (computer science), object state into a format that can be stored (e. ...
to
C++ with the usage of
C++ language-constructs only (a meta-language or
metacompiler
In computer science, a compiler-compiler or compiler generator is a programming tool that creates a parser, interpreter, or compiler from some form of formal description of a programming language and machine.
The most common type of compiler- ...
s are not necessary)
* efficient data exchange between software modules
* the used communication technique based on "channels" always allows non-blocking access to the transferred data
* for the user the communication is fully transparent no matter if the software modules are located within the same process, different processes or on different machines, the underlying transport layer will choose the fasted method for data transportation automatically
[
* beside data exchange via "channels", MIRA supports Remote Procedure Calls (RPC) and Remote Method Invokation.
* MIRA is fully decentralized, hence there is no central server or central communication hub, making its communication more robust and allows its usage in multi-robot applications
]
Robotic Application specific:
* easy configuration of software modules via configuration files
* parameters of algorithms can be modified live at runtime to speed up the debugging and development process
* huge amounts of robot sensor data can be recorded in Tapes for later playback, here different codecs can be used to compress the data
Platforms
MIRA supports and was successfully tested on the following platforms:
* Linux – Ubuntu
Ubuntu ( ) is a Linux distribution based on Debian and composed primarily of free and open-source software. Developed by the British company Canonical (company), Canonical and a community of contributors under a Meritocracy, meritocratic gover ...
and derivates, OpenSuse
openSUSE () is a free and open-source software, free and open-source Linux distribution developed by the openSUSE project. It is offered in two main variations: ''Tumbleweed'', an upstream rolling release distribution, and ''Leap'', a stable r ...
, CentOS
CentOS (, from Community Enterprise Operating System; also known as CentOS Linux) is a discontinued Linux distribution that provided a free and open-source community-supported computing platform, functionally compatible with its upstream (softw ...
, Red Hat
Red Hat, Inc. (formerly Red Hat Software, Inc.) is an American software company that provides open source software products to enterprises and is a subsidiary of IBM. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North ...
and Fedora
A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
* Windows – Microsoft Windows XP
Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct successor to Windows 2000 for high-end and business users a ...
, Windows Vista
Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, released five years earlier, which was then the longest time span between successive releases of Microsoft W ...
, Windows 7
Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was Software release life cycle#Release to manufacturing (RTM), released to manufacturing on July 22, 2009, and became generally available on October 22, ...
(32bit and 64bit)
Applications using MIRA
MIRA is used within the following applications:
* Konrad and Suse - Guide Robots, that guide visitors within the Zuse-Building of the Ilmenau University of Technology
* Monitoring the air quality within clean rooms at Infineon Technologies
Infineon Semiconductor solutions is the largest microcontroller manufacturer in the world, as well as Germany's largest semiconductor manufacturer. It is also the leading automotive semiconductor manufacturer globally. Infineon had roughly 58,0 ...
using several SCITOS G5 robots
and projects:
* CompanionAble - Integrated Cognitive Assistive & Domotic Companion Robotic System for Ability & Security
* Robot-Era - Implementation and integration of advanced robotic systems and intelligent environments in real scenarios for the ageing population
Usability
Reflection/Serialization
class Data
;
* arbitrary complex data types can be serialized by adding a simple reflect method to the class as shown above
* after these minor changes, the objects of the class can be transported via inter-process communication, can be used as parameters in configuration files for software modules, can be recorded in "Tape" files, etc.
Remote Procedure Calls
class MyClass
;
* arbitrary methods can be turned into RPC methods by adding one line of code within the reflect() method. There is no need to write wrappers around the methods or to use meta description languages.
See also
* Open-source robotics
Open-source robotics is a branch of robotics where robots are developed with open-source hardware and free and open-source software, publicly sharing blueprints, schematics, and source code. It is thus closely related to the open design movement, ...
References
{{reflist
External links
MIRA Website
MIRA Questions & Answers
Robotics software
Robotics suites
2012 software
2012 in robotics