OpenRTM-aist
Encyclopedia
OpenRTM-aist is a software platform developed on the basis of the RT middleware
standard. OpenRTM-aist is developed by National Institute of Advanced Industrial Science and Technology
which also contributes to definition of the RT-middleware standard.
, all robotics technologies' elements, such as actuator
s and sensor
s, are regarded as RT-components (RTC). Each RTC has ports to communicate with other RTCs, and developers can develop their own robotics technology (RT) system by constructing the RTCs.
Therefore, the RT-middleware is a distributed controlling architecture.
RT-middleware is originally a platform independent model (PIM), so it does not depend on the implementations like CORBA
, Enterprise JavaBean
(EJB), and .NET Framework
. OpenRTM-aist is based on the CORBA technology and it is also implemented with the extended RTC specification. The experiences with OpenRTM-aist will be fed back to the RT-middleware standardization steps.
and their co-workers (in a strict sense, OpenRTM-aist itself is a library so it does not include the tools).
. In OpenRTM-aist, RTCs have data ports, service ports, and execution context which controls the RTC's state.
From OpenRTM-aist version 1.0, extra data types which are expected to be used commonly in robotic systems were released as ExtendedDataType
Developers can define their own data types by describing IDL
file.
files.
In OpenRTM-aist, several kinds of the execution contexts are supported. For example, the real-time execution context which uses Linux's preemptive kernel function, supports real-time operation of the RTC.
Configuration can be numeric and string.
, Mac OS X
, VxWorks
is supported experimentally.
OpenRTM-aist also supports rtshell which is a command-line tool like RT System Editor.
RT middleware
RT-middleware is a common platform standards for Robots based on the distributed object technology. RT-middleware supports the construction of various networked robotic systems by the integration of various network enabled robotic elements called RT-Components...
standard. OpenRTM-aist is developed by National Institute of Advanced Industrial Science and Technology
National Institute of Advanced Industrial Science and Technology
The , or AIST, is a Japanese research facility headquartered in Tokyo, and most of the workforce is located in Tsukuba Science City, Ibaraki, and in several cities throughout Japan. The institute is managed to integrate scientific and engineering knowledge to address socio-economic needs...
which also contributes to definition of the RT-middleware standard.
Abstract
In RT middlewareRT middleware
RT-middleware is a common platform standards for Robots based on the distributed object technology. RT-middleware supports the construction of various networked robotic systems by the integration of various network enabled robotic elements called RT-Components...
, all robotics technologies' elements, such as actuator
Actuator
An actuator is a type of motor for moving or controlling a mechanism or system. It is operated by a source of energy, usually in the form of an electric current, hydraulic fluid pressure or pneumatic pressure, and converts that energy into some kind of motion. An actuator is the mechanism by which...
s and sensor
Sensor
A sensor is a device that measures a physical quantity and converts it into a signal which can be read by an observer or by an instrument. For example, a mercury-in-glass thermometer converts the measured temperature into expansion and contraction of a liquid which can be read on a calibrated...
s, are regarded as RT-components (RTC). Each RTC has ports to communicate with other RTCs, and developers can develop their own robotics technology (RT) system by constructing the RTCs.
Therefore, the RT-middleware is a distributed controlling architecture.
RT-middleware is originally a platform independent model (PIM), so it does not depend on the implementations like CORBA
Çorba
Chorba , ciorbă , shurpa , shorpo , or sorpa is one of various kinds of soup or stew found in national cuisines across Middle East...
, Enterprise JavaBean
Enterprise JavaBean
Enterprise JavaBeans is a managed, server-side component architecture for modular construction of enterprise applications.The EJB specification is one of several Java APIs in the Java EE specification. EJB is a server-side model that encapsulates the business logic of an application...
(EJB), and .NET Framework
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
. OpenRTM-aist is based on the CORBA technology and it is also implemented with the extended RTC specification. The experiences with OpenRTM-aist will be fed back to the RT-middleware standardization steps.
Characteristics
OpenRTM-aist is implemented of some extended RTC features, and it also includes Manager that helps operations of RTCs. OpenRTM-aist enables developers to program the RTCs by using plural programming languages, and the RTCs which are programmed by different languages can communicate with each other. A lot of tools which also help the RTC operations are released by the National Institute of Advanced Industrial Science and TechnologyNational Institute of Advanced Industrial Science and Technology
The , or AIST, is a Japanese research facility headquartered in Tokyo, and most of the workforce is located in Tsukuba Science City, Ibaraki, and in several cities throughout Japan. The institute is managed to integrate scientific and engineering knowledge to address socio-economic needs...
and their co-workers (in a strict sense, OpenRTM-aist itself is a library so it does not include the tools).
RT-component
The RT-component is a functional unit which conforms to the RT-component specification defined by OMGOMG
OMG may refer to:*Oh My goodness, or Oh My Gosh, a common abbreviation used in SMS and Instant Messaging*omg!, a celebrity news and gossip Web site run by Yahoo.com...
. In OpenRTM-aist, RTCs have data ports, service ports, and execution context which controls the RTC's state.
Data port
A data port is an endpoint to communicate with other RTCs. The data ports have their types. Ports with the same type can be connected to each other.Data type | C++ mapping | Data type !! C++ mapping | ||
---|---|---|---|---|
TimedBoolean | bool | TimedBooleanSeq | bool (variable-length array) | |
TimedOctet | byte | TimedOctetSeq | byte (variable-length array) | |
TimedChar | char | TimedCharSeq | char (variable-length array) | |
TimedWChar | wchar | TimedWCharSeq | wchar (variable-length array) | |
TimedShort | short | TimedShortSeq | short (variable-length array) | |
TimedUShort | unsigned short | TimedUShort | unsigned short (variable-length array) | |
TimedLong | long | TimedLongSeq | long (variable-length array) | |
TimedULong | unsigned long | TimedULongSeq | unsigned long (variable-length array) | |
TimedString | string | TimedStringSeq | string (variable-length array) | |
TimedWString | wstring | TimedWStringSeq | wstring (variable-length array) | |
TimedFloat | float | TimedFloatSeq | float (variable-length array) | |
TimedDouble | double | TimedDoubleSeq | double (variable-length array) | |
From OpenRTM-aist version 1.0, extra data types which are expected to be used commonly in robotic systems were released as ExtendedDataType
Developers can define their own data types by describing IDL
IDL
- General :* International Date Line, the time zone date boundary* Intermediate density lipoprotein* John F. Kennedy International Airport, from when it was named "Idlewild Airport" * International Drivers License...
file.
Service port
The service port allows communicating much more flexibly than the data ports. Developers should define service port interfaces by making their IDLIDL
- General :* International Date Line, the time zone date boundary* Intermediate density lipoprotein* John F. Kennedy International Airport, from when it was named "Idlewild Airport" * International Drivers License...
files.
Execution context
In standards of RT-component, RTC must have 4 states such as CREATED, INACTIVE, ACTIVE, and ERROR. The execution context handles the state machine operations of RT-components.In OpenRTM-aist, several kinds of the execution contexts are supported. For example, the real-time execution context which uses Linux's preemptive kernel function, supports real-time operation of the RTC.
Configuration
Configuration is a function which dynamically changes the parameters of the RTCs during run-time.Configuration can be numeric and string.
Supported operating systems
Windows, LinuxLinux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
, VxWorks
VxWorks
VxWorks is a real-time operating system developed as proprietary software by Wind River Systems of Alameda, California, USA. First released in 1987, VxWorks is designed for use in embedded systems.- History :...
is supported experimentally.
Supported programming languages
Since OpenRTM-aist is developed on the basis of CORBA technology, it supports several programming languages as follows:- C++C++C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
- JavaJava (programming language)Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
- PythonPython (programming language)Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
RTC Builder
RTC Builder is a tool for skeleton-code generation. It is launched in the eclipse developmental environment. OpenRTM-aist also supports RTC-template which is a command-line type skeleton-code generation tool.RT System Editor
RT System Editor is a tool for handling RTCs. RT system editor provides following services:- Referring RTCs' states
- Connecting RTCs' ports
- Configuring RTCs
- Activate/deactivate/reset RTCs
- Save/restore the RT-system
OpenRTM-aist also supports rtshell which is a command-line tool like RT System Editor.
See also
- RobotRobotA robot is a mechanical or virtual intelligent agent that can perform tasks automatically or with guidance, typically by remote control. In practice a robot is usually an electro-mechanical machine that is guided by computer and electronic programming. Robots can be autonomous, semi-autonomous or...
- Open-source roboticsOpen-source roboticsAn open-source robot is a robot whose blueprints, schematics or source code are released under an open-source model.-Full robot projects:*, Open Hardware Medical-Research liquid handling robot*, Mobile Telepresence Research Project, Est...
- MiddlewareMiddlewareMiddleware is computer software that connects software components or people and their applications. The software consists of a set of services that allows multiple processes running on one or more machines to interact...
- New Energy and Industrial Technology Development OrganizationNew Energy and Industrial Technology Development OrganizationThe New Energy and Industrial Technology Development Organization , also known as NEDO, is Japan's largest public management organization promoting research and development as well as deployment of industrial, energy and environmental technologies. In 2003, NEDO was reorganized as an Independent...
- National Institute of Advanced Industrial Science and TechnologyNational Institute of Advanced Industrial Science and TechnologyThe , or AIST, is a Japanese research facility headquartered in Tokyo, and most of the workforce is located in Tsukuba Science City, Ibaraki, and in several cities throughout Japan. The institute is managed to integrate scientific and engineering knowledge to address socio-economic needs...
- Object Management GroupObject Management GroupObject Management Group is a consortium, originally aimed at setting standards for distributed object-oriented systems, and is now focused on modeling and model-based standards.- Overview :...
- Japan Robot AssociationJapan Robot AssociationThe Japan Robot Association is a trade association made up of companies in Japan that develop and manufacture robot technology. It was formed in 1971 as the Industrial Robot Conversazione. The association was reorganized and renamed as the Japan Industrial Robot Association in 1972, and was...