RT Component Framework
(G)It is a framework for creating RT Components.
(G)When modularizing the elements making up the robot system, it is possible to modularize with various granularity. For example, units such as single-function devices such as motors and sensors, complex systems such as mobile robots and arms, and algorithms that perform various processes are considered, and the system is built up by hierarchical integration of them. In RT middleware, the essential software part of these RT function elements is called core logic. The RT Component Framework is a mechanism for covering the interface common to Core Logic as a common interface so that these modules can be handled uniformly.
(G)Consider the example of componentizing the stereo vision algorithm as shown above, the program itself that implements the algorithm itself corresponds to the core logic. We can prepare a stereo vision component by preparing an RT component framework with appropriate ports and implementing the stereo vision algorithm in this framework. In this way, a module that enables component developers to implement core logic and incorporate them into the system based on the component framework is called an RT component. The RT component framework hides common interfaces and their behaviors from component developers and integrators who build systems by combining components. This allows component developers to concentrate on the implementation of the main logic and allows the integrator to concentrate on the design of the entire system without worrying about implementation details.
RT Component architecture
(G)In the RT system, it is necessary to cooperate with various levels of processing such as high level recognition, judgment, behavior control, etc. from low level sensor processing and actuator control. Low-level control programs require languages that satisfy speed and real-time requirements, while high-level programs require abstract and descriptive languages. In addition, the number of cases where the current RT system is made up of multiple CPUs is increasing, and it is necessary to have parallel control and cooperation function via the network.
(G)In order to modularize these functional elements, the RT component provides a framework of distributed component type that can be modularized with various granularity and operate on various languages and OS.
(G)The figure shows the basic architecture of RTC. The main functions of RTC are as follows.
Get meta information
(G)RTC has an interface (introspection function) for obtaining meta information (RTC profile). An RTC profile is a set of information that describes the characteristics of a component, such as the name of the component or the profile of the port it owns. This function is necessary for dynamic system configuration at run time.
(G)> Introspection: A mechanism to acquire meta information of objects and components translated as introspection in Japanese.The definitions are not fixed, but functions similar to reflection in Java OMG RTC specification uses this function Is defined as introspection.
(G)The part that performs the main function of the component. Common state transitions such as Inactive (OFF state), Active (ON state), Error (Error state) are decided for unified management of RTC. An RTC developer creates an RTC by implementing the function which it wants to realize mainly in the function (callback function) assigned to each state and event.
(G)Activity functions are executed by a thread called Execution Context (EC). EC can attach and detach dynamically to RTC, attach one EC to multiple RTC, execute it synchronously in series, replace it with EC which can be executed in real time, real time RTC execution It is also possible to convert it.
(G)A data directional port for transmitting and receiving continuous data. There are two types of input port (InPort) and output port (OutPort). Even if the same data types are used, even if the language and OS are different, you can connect and communicate via the network.
(G)A port that can have a user-defined provider (Provided interface) that provides and exploits command level detailed functions and a port that can have a consumer (Required interface) Provided Interface, an interface that requests and uses external functions is called Required Interface. Like the data port, even if the language and OS are different, you can connect and call the function if the interface type is the same.
(G)A function to change user-defined parameters externally at runtime. It has multiple parameter sets and you can swap them all at once. By making the parameters changeable in advance, RTC can be reused in various systems.
(G)Generally, in the low-level part of the RT system, the servo controller etc. are mainly composed of data-oriented and tightly coupled subsystems, and in the high level part which decides judgment and behavior, the coarse-grained service-oriented subsystem is mainly . Since RTC realizes such modularization with various granularity with a common framework, coupling between hierarchies, which becomes a problem in the hierarchical framework, is not a problem.
(G)Transparency linkage between different languages and RTC on the OS is realized by using CORBA (Common Object Request Broker Architectur) which is the standard specification of distributed object middleware.