(G)RT Middleware (RT-Middleware: RTM) is a generic 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, Open - source and open architecture Robot Tchnology M iddleware implemented by AIST ( National Institute of Advanced Industrial Science and Technology).
(G)The RT function element constituting the RT system is a robot component that provides a certain function, for example, a unit of a device such as a servo motor, a sensor, a camera, or the like, or a combination of such a mobile cart, arm You can also capture it as an RT function element.
(G)Mata, hādouea ni musubitsuite iru mono dakedenaku, seigyo arugorizumu, gazō shori arugorizumu to itta, sofutōea nomi de kōsei sa reru mono mo RT kinō yōso to kangaeru koto ga dekimasu. Shitazu ni shimesu yō ni, mojūru-ka sa reta RT kinō yōso o kaisō-teki ni kumiawaseru koto de, robotto shisutemu kōchiku o yōi ni suru tame no purattofōmu ga RT midoruueadesu. In addition to what is tied to hardware, what can be thought of as an RT function element is one composed only of software such as a control algorithm and an image processing algorithm. RT Middleware is a platform for facilitating robot system construction by hierarchically combining modularized RT function elements as shown below.
RT Component (RTC)
(G)In RT middleware, the RT function element is made into a software module is called an RT component (RT-Component: RTC). The RT component has an interface called a port for exchanging data and communicating with other RT components.
(G)The relationship between RTC and RTM is shown in the figure. As mentioned above, RTC is a piece of software that modulates a function of a unit, its entity is a shared object (DLL) (dynamic link library) executed on RTM. The RTC developer embeds the code of the control algorithm it owns, the existing library code etc. (called the core logic) in the RTC template code automatically generated by the tool such as RTCBuilder, compiles (script language It is unnecessary in this case) to create an RTC.
Split and integrate modules
(G)The RT system connects ports of multiple components and is constructed as a collection of RT component functions of each. Consider a dialogue / recognition component as an example. The dialogue / recognition component is a component that has the function of recognizing and observing the user's voice and facial expression and having the function of interacting with the user by voice, gesture gesture, etc. It consists of the following subcomponents.
- Camera component
- Stereo vision component
- Face recognition component
- Microphone component
- Speech recognition component
- interactive component
- Head and arm components
- Speech synthesis component Example of dialogue and recognition system consisting of RTC
(G)As shown above, each of the divided components has an interface that communicates with other components called ports, and exchanges data and commands to realize one collective function as a whole. Modularization enables parallel development, reuse, exchange, update, separation, etc. on a module basis, thus reducing complexity, improving development efficiency, and improving system flexibility, expandability, and stability You can expect.
History of development
(G)RT Middleware was proposed by the New Energy and Industrial Technology Development Organization (NEDO) in the project of the 21st Century Robot Challenge Program (2002 - 2004), its concept was proposed, and the National Institute of Advanced Industrial Science and Technology Research, development and standardization were conducted by Matsushita Electric Works (now Panasonic Electric Works Co., Ltd.), Japan Robot Industry Association.
(G)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 was advanced in the International Standards Organization OMG (Object Manegement Group: http://www.omg.org), and became OMG official standard specification in April 2008. One of RT Middleware implementations conforming to this standard is OpenRTM - aist - 1.0 published in January 2010.
RTC OMG standard
(G)A major feature of OpenRTM-aist is that the component model and its interface are standardized by an international standardization organization called OMG.
(G)OMG is a software standardization organization founded in 1989. It is composed of distributed object middleware: CORBA (Common Object Request Broker Architecture), software modeling language: UML (Unified Modeling Language), various software standards It is known as an organization that has formulated and managed it.
(G)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 in April 2008.
(G)One of the merits of standardization is that many vendors and developers can freely implement middleware based on standards. Currently, there are seven types (including three languages of OpenRTM-aist) shown in the table as middleware conforming to or partly conforming to the OMG RTC specification.
|OpenRTM-aist||AIST||Three types of C ++, Python, Java|
|OpenRTM.NET||SEC||.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|
(G)Among these, only compatible objects via communication are OpenRTM-aist and OpenRTM.NET, but since the internal model is the same as other implementations, even when bridges etc. are created and linked, the whole There will be less inconsistency in consistency as. Also, since there are various implementations by multiple organizations, it is also possible to select the appropriate language and license according to the application, and the middleware itself is more durable.