What is RT-Middleware?
Both entire robots and various usable robotic functional elements are known as RT (Robot Technology/Robotic Technology). RT-Middleware is a platform to modularise and integrate a variety of robotic functional elements as software. The goal of the RT-Middleware is to provide open specifications and establish an open architecture platform that enables the interoperation of various implementations of RT modules. Thus, "RT-Middleware."
What is an RT-Component?
In RT-Middleware, an RT functional element is modularized as a software component called an RT-Component, and a robot is implemented by combining RT-Components on RT-Middleware. RT-Components have data ports and service ports to communicate with other components, and you can integrate various components easily by standardizing these interface specifications. All RT-Components have a common state machine inside, and you can manage a large number of components in higher-level application programs through integration. Moreover, since RT-Components have standard interfaces to alter internal parameters, you can reuse them without recompiling.
What is OpenRTM-aist?
OpenRTM-aist is one of the reference implementations of RT-Middleware that AIST has implemented and distributes. It consists of an RT-Component framework to create RT-Components, the RT-Middleware that manages the lifecycle of the RT-Components, tools to generate skeleton code for components and GUI tools to operate and connect RT-Components. Currently, AIST provides reference implementations for C++, Python and Java, and develops other versions implemented in other languages.
Which languages are supported?
OpenRTM-aist provides a framework to develop RT-Components in C++, Python and Java.
Which platforms are supported?Currently, OpenRTM-aist is supported on FreeBSD, Linux and Windows. The officially supported Linux distributions are:
- Vine Linux
- Fedora Core
- Ubuntu Linux
What is the license?
OpenRTM-aist is provided with a dual license model to allow use via the LGPL (GNU Lesser General Public License) or individual contract with AIST. An individual license is a license for modifying source codes of OpenRTM-aist and distributing them in a closed format for commercial purposes. Since the source code needs to be modified for use in embedded systems, this type of license is provided to promote the use in business.
How about the license of components I create?
Components can be created and distributed as dynamically linked libraries (called "shared objects" in Unix and "DLLs" (Dynamic Link Libraries) in Windows), and the components used by dynamically linking with core libraries of OpenRTM-aist do not have any limitations under the LGPL license. The component developers can license their components individually. For those of you who would like to support our goal in promoting the reuse of the components, please open the components you created on a source code level.