Skip to main content
Home >> Community >> Training >> IROS2010 (18-10-2010)

IROS2010 (18-10-2010)

IROS2010 Half-day Tutorial Monday, 18th October

{IMPORTANT: Please see the section below about equipment that participants are required to supply.

Introduction to OpenRTM-aist-1.0.0

This half-day tutorial will consisit of a series of talks covering several topics concerning RT-middleware, OpenRTM-aist and development of robot software useng these technologies. RT-Middleware is a framework design for distributed intelliget systems. The core concept of RT-Middleware is the RT-Component, a software component that conforms to a known interface style for interaction with the framework. OMG has issued the "Robot Technology Component Specification" in April 2008, and it is available in public on the OMG website.


Motivation and Objectives

With the rapid progress in computer and communication technology, the robot systems are fast becoming larger and more complicated. Therefore, ther is a real need for the software technologies for efficient developments. Now verious software technologies are proposed and implemented respectively. Unfortunately, most of these pioneering initiatives are developed independently of the others, driven by specific applications and objectives. In order to settle this state of chaos, we would like to contribute to the promotion of standardization in the field of robotics based on mutal understanding between the relevant parties.

The objective of the tutorial is to provide you (robotics researchers and robotics professionals) with information about OMG Robotic Technology Component specification, OpenRTM-aist robot software development, and to hold discussions about the Robot Technology (RT) Middleware software framework for robotics and the similar and preceding activities around the world. OpenRTM-aist is available at

Many RT-Middleware tutorials have been given in Japan, but it is rare for a tutorial to be held for the English-speaking international community.

List of Topics

The tutorial will consist of a series of talks covering several topics concerning RT-Middleware, OpenRTM-aist and development of robot software using these technologies.

RT-Middleware is a framework design for distributed intelligent systems. Its main feature is software components distributed over a network. Diverse components, including components by different software vendors implemented in different programming languages, can interact and be easily combined to produce a larger, more complex robotic system. Because of their known interfaces, components can be reused with little to no difficulty. RT-Middleware is not limited solely to use in pure robotic systems, but is useful in any intelligent system. There are implementations of RT-Middleware in C++ (using CORBA), Python (using CORBA), Java and C\#. With the exception of the C\# implementation, they are all cross-platform.

Intended Audience

The tutorial is aimed at those involved in programming robotics, particularly robotics researchers, who are interested in learning about a relatively new software framework. It is also aimed at researchers into robot software frameworks, who can, by learning about RT-Middleware and OpenRTM-aist in more detail, learn from its concepts and apply them to their own frameworks, as well as give advice on how RT-Middleware can be improved. Programming experience will be beneficial. No previous experience with using middleware systems (such as CORBA or ICE) or other robot software frameworks is necessary.

Necessary equipment

All participants should provide their own laptop running a recent version of Windows (such as Windows XP with service packs installed) or Linux. You must have administrator privileges on your laptop. For Windows, Microsoft Visual C++ will be required; a free version can be obtained from Microsoft's website. For Linux, you will need a recent version of the GCC compiler.

Agenda (Tentative)

10:00-10:30 Part 1: OpenRTM-aist-1.0
Speaker: Noriaki Ando (AIST)
Outline: An outline of RT Middleware; OMG standardisation and the RT Component standard; OpenRTM-aist-1.0; The cooperative platform of NEDO's Future Robot Technology Development project, "OpenRT Platform." The slides from the presentation are available for download here.
10:30-11:00 Part 2: Using RTCBuilder and RTSystemEditor
Speaker: Noriaki Ando (AIST)
Outline: Creating RT Components using RTCBuilder and integrating them into a complete system using RTSystemEditor. Using rtcshell and rtsshell to manage on-robot resources.
11:15-12:00 Part 3: Component development practice 1
Speaker: Geoffrey Biggs (AIST)
Outline: How to install and test OpenRTM. In preparation for the afternoon's development practice, install OpenRTM and perform simple tests using the sample components.
13:00-17:00 Part 4: Component development practice 2
Speaker: Geoffrey Biggs (AIST)
Outline: Practice creating RT Components for OpenRTM-aist using RTCBuilder. Then, integrate the components into an RT system using RTSystemEditor.

Overview of standardisation activity in the Object Management Group

The Object Management Group (OMG) has formed a Robotics Domain Taskforce which is focusing on standardising various robot technologies. The core concept of RT-Middleware is the RT-Component, a software component that conforms to a known interface style for interaction with the framework. This ``Robot Component Specification,'' described next, has been adopted as an international standard by the Object Management Group (OMG). It is expected that standards will be forthcoming for component types; there is already ongoing work at the OMG working towards several standardised component interfaces for such component types as localization services.

Robotic Technology Component specification

The core concepts of RT-Middleware will be discussed and the Robot Technology Component specification will be described. Each component contains a state machine with states such as ``Inactive, ``Active, and ``Error.'' This state machine is known, allowing for all components to be controlled, at a high level, in the same way. Components also feature input and output data ports, and may provide other service ports across the network transport used by the RT-Middleware implementation in use. The choice of what data and service ports a component provides is up to the component designer. As such, RT-Middleware allows for considerable freedom as a framework while still providing a consistent method of controlling these components.


OpenRTM-aist is an implementation of RT-Middleware and the OMG's Robot Component Specification standard, created by the National Institute of Advanced Industrial Science and Technology (AIST) in Japan. It uses CORBA as its network transport, giving it considerable power and flexibility in what can be transported over a component's data ports and what service ports a component can provide. OpenRTM-aist is available in both C++ and Python implementations.

This talk will focus on OpenRTM-aist, describing this implementation of RT-Middleware in detail.

RT-Component development with OpenRTM-aist

The steps involved in writing a component will be covered in detail by this talk, using several examples and building on the information about the OpenRTM-aist implementation discussed previously. Participants will learn how to write an RT-Component, including how to use the tools for automatically generating component templates.

System integration and customization with GUI tools

OpenRTM-aist provides graphical tools to assist developers in creating RT-Components and connecting RT-Components together into larger systems. They are RtcTemplate and RtcLink. This talk will discuss the operation of these tools and their use in constructing a complete robot system.

RTCBuilder assists developers in creating new RT-Components by providing a graphical interface for defining input ports, output ports and service ports.

RTSystemEditor is a graphical tool for connecting RT-Components together and changing their configuration options. Developers can drag and drop running components into the system designer and drag connections between different ports. Connection properties can be easily changed. The whole system or individual components can be started, stopped, reset, activated, and so on with ease. Once a system has been designed using RTSystemEditor, it can be saved into an XML-based format and run at any time outside of RTSystemEditor.

System launching and maintenance with shell tools

OpenRTM-aist provides shell-based tools that can be used in a headless environment - in other words, on your robot, while it's running. They are ideally suited for being used in start-up scripts to ensure that all you need do to start your robot is press the power button. They also provide valuable tools for inspecting and maintaining a running robot system.

Discussion and related activities

Time will be made available for discussion with participants.


Intelligent Systems Research Institute (ISRI),

The National Institute of Advanced Industrial Science and Technology (AIST),

1-1-1 Umezono #32827, Tsukuba, Ibaraki 305-8568, Japan