RT Middleware (RT-Middleware: RTM) is a name that refers to a software platform for constructing a robot system (RT system) by combining multiple software modules of robot functional elements (RT function elements). OpenRTM-aist is one of RT middleware implementations, It stands for Open - source and open architecture Robot Tchnology M iddleware implemented by AIST ( National Institute of Advanced Industrial Science and Technology).
The RT function elements in the RT system are robot components - each one provides a certain function. For example, a component handle a device such as a servo motor, a sensor, a camera or th the like. Also, a combination of such devices like a mobile car or a robot arm can be implemented as an RT function element.
In addition to what is tied to hardware, RT function element can be tied to software only function such as a control algorithm and an image processing algorithm. RT Middleware is a platform for supporting easy construction of robot systems by combining hierarchically modularized RT function elements as shown below.
RT Component (RTC)
In RT middleware, the RT function element is made into a software module is called as "RT component (RT-Component: RTC) RT component has an interface called "Port" for exchanging data and communicating with other RT components.
The relationship between RTC and RTM is shown in the above figure. As mentioned in the above, RTC is a piece of software that is modularize a set of functions into a unit, its entity is a shared object or DLL(Dynamic Link Library) executed on RTM. The RTC developer embeds the code of user own control algorithm, the existing library code, etc. (called as "Core logic") in the RTC base code automatically generated by the tool such as RTCBuilder, then it is compiled (in script language case, it is unnecessary) to create an RTC.
Split and integrate modules
The RT system connects the ports of multiple components and is constructed as a collection of the RT component functions. For example, let's consider an interactive recognition system. The interactive recognition system is a system that observes and recognized the user's voice and face expression and then communicates with the user by using voice and the gesture. It was consists of the following subcomponents.
- Camera component
- Stereo vision component
- Face recognition component
- Microphone component
- Speech recognition component
- interaction component
- Head/arm control components
- Speech synthesis component Example of dialogue and recognition system consisting of RTC
As shown in the above, each component has an interface that communicates with other components called "Port", and exchanges data and commands to realize one set of functions as a whole. This component method will bring unit-based development which can enable unit by unit parallel development, code reuse, exchange, update,separation,etc. As a result, we can expect the reduction of the complexity and improvements of the development efficiency, the flexibility, the expandability and the stability of the system.
History of development
RT Middleware concept was proposed in the 21st Century Robot Challenge Program (2002-2004 fiscal year) by the New Energy and Industrial Technology Development Organization (NEDO),And then the National Institute of Advanced Industrial Science and Technology Research, Matsushita Electric Works (now Panasonic Electric Works Co., Ltd.) and Japan Robot Industry Association did the study, the development, and the standardization.
As a result of the project, OpenRTM - aist - 0.2 which is a reference implementation of RT middleware and its interface specification was released. After that, standardization of the RTC interface specification work was made and then it became to the official standard specification of the International Standards Organization OMG (Object Management Group: http://www.omg.org) in April 2008. One of RT Middleware implementations conforming to this standard is OpenRTM - aist - 1.0 published in January 2010.
RTC OMG standard
A major feature of OpenRTM-aist is that the component model and its interface are standardized by an international standardization organization called OMG.
OMG is a software standardization organization founded in 1989. OMG made and manage the various software standard like distributed object middleware: CORBA (Common Object Request Broker Architecture) and software modeling language: UML (Unified Modeling Language).
RTC interface specifications are also standardized by AIST and US middleware vendor RTI (Real-Time Innovations) in OMG as well as CORBA, and RTC (Robotic Technology Component) Specification (http://www.omg.org/spec/RTC/ 1.0 /) was officially released on April 2008.
One of the merits of standardization is that many vendors and developers can freely implement middleware based on the standards. Currently, there are seven types (including three languages of OpenRTM-aist) middleware are exist and they conforming to or partially conforming to the OMG RTC specification.
|OpenRTM-aist||AIST||Three types of C ++, Python, Java|
|OpenRTM.NET||System Engineering Consultation Co.,Ltd.||.NET implementation, compatible with OpenRTM-aist|
|OPRoS Project||Korea ETRI||Implementation on original middleware|
|PALRO (Palo)||Fuji Software Co., Ltd.||Compact humanoid robot PARLO (Palo) control software is compatible at C ++ language level|
|GostaiRTC||GOSTAI / Thales||OMG RTC Complies with Local PSM|
Among these, only compatible objects via network communication are OpenRTM-aist and OpenRTM.NET, but since the internal model is the same as other implementations, if you are using a bridge or similar technique to link them, you can expect good consistency. Also, since there are various implementations by multiple organizations, you can select the appropriate computer language and the license depends on the usage. Also, it may make the durability of the middleware better.