OpenRTM-aist

OpenRTM-aist
OpenRTM-aist
Logo-mark
Developer(s) National Institute of Advanced Industrial Science and Technology
Stable release 1.0 / February 12, 2010; 20 months ago (2010-02-12)
Written in C++, Java, Python
Platform Windows, Linux, Mac OS X
Type Library
License Eclipse Public License
Website openrtm.org

OpenRTM-aist is a software platform developed on the basis of the RT middleware standard.[1] OpenRTM-aist is developed by National Institute of Advanced Industrial Science and Technology which also contributes to definition of the RT-middleware standard.

Contents

Abstract

In RT middleware, all robotics technologies' elements, such as actuators and sensors, 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.[2]

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.

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 Technology 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 OMG. 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.

Available data types
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[3]

Developers can define their own data types by describing IDL file.

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 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.[4]

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, Linux, Mac OS X,[5] VxWorks is supported experimentally.[6]

Supported programming languages

Since OpenRTM-aist is developed on the basis of CORBA technology, it supports several programming languages as follows:

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

OpenRTM-aist also supports rtshell which is a command-line tool like RT System Editor.

License

Eclipse Public License

See also

References

  1. ^ OpenRTM-aist official website, http://www.openrtm.org
  2. ^ Robotics Technology Component Specification version 1.0, Object Management Group (OMG)
  3. ^ "OpenRTM-aist official site: Interface guidelines". http://www.openrtm.org/openrtm/en/content/interface-guidelines. Retrieved 23 April 2011. 
  4. ^ National Institute of Advanced Industrial Science and Technology, press release, Development of HRP-4, a Research and Development Platform for Working Humanoid Robots, http://www.aist.go.jp/aist_e/latest_research/2010/20101108/20101108.html
  5. ^ OpenRTM-aist official website --supported platforms,http://www.openrtm.org/openrtm/en/content/supported-platforms-0
  6. ^ Akihiro Ikezoe, Hiroyuki Nakamoto, Masayuki Nagase, "OpenRT Platform / RT-middleware for VxWorks", ROBOMEC2010 [in Japanese]

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Open-source robotics — Orb swarm is an example of an open source robot An open source robot is a robot whose blueprints, schematics or source code are released under an open source model. Contents …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”