HOME

TheInfoList



OR:

OpenRTM-aist is a
software platform A computing platform or digital platform is an environment in which a piece of software is executed. It may be the hardware or the operating system (OS), even a web browser and associated application programming interfaces, or other underlying s ...
developed on the basis of the
RT middleware RT-middleware (Robotics Technology Middleware) is a common computing platform technical standard for robots based on distributed Object (computer science), object technology. RT-middleware supports the construction of various networked robotic syst ...
standard. OpenRTM-aist is developed by
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 engineeri ...
which also contributes to definition of the RT-middleware standard.


Abstract

In
RT middleware RT-middleware (Robotics Technology Middleware) is a common computing platform technical standard for robots based on distributed Object (computer science), object technology. RT-middleware supports the construction of various networked robotic syst ...
, all robotic technological elements, such as
actuator An actuator is a component of a machine that is responsible for moving and controlling a mechanism or system, for example by opening a valve. In simple terms, it is a "mover". An actuator requires a control device (controlled by control signal) a ...
s and
sensor A sensor is a device that produces an output signal for the purpose of sensing a physical phenomenon. In the broadest definition, a sensor is a device, module, machine, or subsystem that detects events or changes in its environment and sends ...
s, are regarded as RT-components (RTC). Each RTC provides ports to communicate with other RTCs, and developers can implement their own robotics technology (RT) systems as RTCs. The RT-middleware can thus be considered as a distributed control architecture. RT-middleware is originally a
platform independent model A platform-independent model (PIM) in software engineering is a model of a software system or business system that is independent of the specific technological platform used to implement it. The term platform-independent model is most frequently ...
(PIM). Implementations of this model include
CORBA The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sys ...
,
Enterprise JavaBean Jakarta Enterprise Beans (EJB; formerly Enterprise JavaBeans) is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web co ...
(EJB), and
.NET Framework The .NET Framework (pronounced as "''dot net"'') is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until bein ...
. OpenRTM-aist is based on the CORBA technology and implements the extended RTC specification. Experiences with OpenRTM-aist will be fed back to the RT-middleware standardization process.


Characteristics

OpenRTM-aist implements some extended RTC features, and it also includes a Manager component to help manipulating RTCs. RTCs in OpenRTM-aist can be implemented using many programming languages, and RTCs programmed in different languages can communicate with each other. A lot of tools to ease RTC manipulations are also released by the
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 engineeri ...
and their co-workers (in a strict sense, OpenRTM-aist itself is a library and does not include these tools).


RT-component

The RT-component is a functional unit which conforms to the RT-component specification defined by OMG. In OpenRTM-aist, RTCs have data ports, service ports, and execution context which controls the RTC's state.


State Machine

In standards of RT-component, RTC must have 4 states such as CREATED, INACTIVE, ACTIVE, and ERROR. When the state changes, corresponding event-handlers are called by the execution context which manages the RTCs' state machine. For example, "on_activated" callback function is called when the RTC is activated (from INACTIVE to ACTIVE state). In on_activated callback, initialization codes are implemented. On the other hand, "on_deactivated" callback function is called when the RTC is deactivated (from ACTIVE to INACTIVE state). In this callback, finalization codes are implemented. "on_execute" is periodically called when the RTC is in ACTIVE state. Here, controlling or some device management (ex., polling) functions are called. These callbacks are called by the "execution context" object. If the special execution context is attached to the RTCs, calling method or policy is modified (see execution context section).


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. In OpenRTM-aist, primitive data types (like "TimedLong", "TimedDouble", and so on) are implemented. Moreover, from OpenRTM-aist version 1.0, extra data types which are expected to be used commonly in robotic systems were released as ExtendedDataType (like "TimedVelocity2D", "TimedPose2D", and so on) Developers can define their own data types by describing IDL file. Tools can parse the IDL file and automatically generate the skeleton and stub file of the original data types.


Service port

The service port allows communicating much more flexibly than the data ports. Developers should define service port interfaces by making their IDL files.


Execution contexts

Execution contexts handle the state-machine operations of RT-components. In OpenRTM-aist, several kinds of execution contexts are provided. For example: * the ''periodic'' execution context, one of the most commonly used, provides periodic calls of the "on_execute" event-handler (sensor acquisition or actuator control are usually implemented there); * the ''real-time'' execution context, which uses Linux's pre-emptive kernel function, supports real-time operation of the RTC; * the ''extra trigger'' execution context is an important characteristic of OpenRTM-aist. It provides the synchronization capability with dynamics simulators like OpenHRP-3.


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

OpenRTM-aist runs on
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
,
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
and
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
. Furthermore,
VxWorks VxWorks is a real-time operating system (or RTOS) developed as proprietary software by Wind River Systems, a wholly-owned subsidiary of Aptiv. First released in 1987, VxWorks is designed for use in embedded systems requiring real-time, determin ...
is supported experimentally.


Supported programming languages

Since OpenRTM-aist is based on the
CORBA The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sys ...
technology, it supports several programming languages, including:
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
,
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
,
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
, and Erlang (unofficial).


Tools


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


rtshell

rtshell is a command-line tool which provides following services: *Referring RTCs' states *Connecting RTCs' ports *Configuring RTCs *Activate/deactivate/reset RTCs *Restore the RT-system *Log output of DataPorts *Replay the log of the DataPorts


RTC debugger

RTC debugger is a debugging tool for RTCs. RTC debugger is an Eclipse plug-in.Sec Co., LTD., TC debugger http://www.sec.co.jp/robot/download_tool.html/ref>


License

OpenRTM-aist is licensed under the
GNU Lesser General Public License The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
(LGPL).


See also

*
Robot A robot is a machine—especially one programmable by a computer—capable of carrying out a complex series of actions automatically. A robot can be guided by an external control device, or the control may be embedded within. Robots may be c ...
*
Open-source robotics Open-source robotics (OSR) is where the physical artifacts of the subject are offered by the open design movement. This branch of robotics makes use of open-source hardware and free and open-source software providing blueprints, schematics, and s ...
*
Middleware Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue". Middleware makes it easier for software developers to implement co ...
*
New Energy and Industrial Technology Development Organization The , or 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 Administrative Institu ...
*
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 engineeri ...
*
Object Management Group The Object Management Group (OMG) is a computer industry standardization, standards consortium. OMG Task Forces develop enterprise integration standards for a range of technologies. Business activities The goal of the OMG was a common portabl ...
*
Japan Robot Association The (JARA) 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 and was the world's first robot association. The association was reorganize ...


References


External links

*{{Official website
RT middleware project (in Japanese)
Robotics suites