ArticleslgStudy

engineering

OpenRTM-aist

OpenRTM-aist is a engineering topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand OpenRTM-aist rather than just read about it. In short: 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.

OpenRTM-aist — main illustration
OpenRTM-aist — illustration

Key takeaways

  • OpenRTM-aist belongs to engineering; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect OpenRTM-aist to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of OpenRTM-aist from memory before moving on to harder problems.

Reference excerpt

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.

Abstract In RT middleware, all robotic technological elements, such as actuators and sensors, 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 (PIM). Implementations of this model include CORBA, Enterprise JavaBean (EJB), and .NET Framework. 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 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, Linux and macOS. Furthermore, VxWorks is supported experimentally.

Supported programming languages Since OpenRTM-aist is based on the CORBA technology, it supports several programming languages, including: C++, Java, Python, 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.

License OpenRTM-aist is licensed under the GNU Lesser General Public License (LGPL).

See also

Robot Open-source robotics List of robotics software Middleware New Energy and Industrial Technology Development Organization National Institute of Advanced Industrial Science and Technology Object Management Group Japan Robot Association

References

External links Official website RT middleware project (in Japanese)

Illustrations

OpenRTM-aist illustration
OpenRTM-aist: RTC Builder
RTC Builder
OpenRTM-aist: RT System Editor
RT System Editor

Worked examples

Example 1 — a first encounter with OpenRTM-aist

Start with the simplest possible case. Write down what OpenRTM-aist claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In engineering, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to OpenRTM-aist before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about OpenRTM-aist ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of OpenRTM-aist

In research
OpenRTM-aist appears in engineering research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses OpenRTM-aist in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
OpenRTM-aist is common in secondary-school and first-year university syllabi. It links to neighbouring topics Robotics suites, so understanding it makes those chapters shorter.
In everyday life
Look for OpenRTM-aist outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “OpenRTM-aist” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study OpenRTM-aist in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what OpenRTM-aist means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain OpenRTM-aist out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is OpenRTM-aist in simple terms?

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.

Why does OpenRTM-aist matter?

Because it connects several engineering ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study OpenRTM-aist?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on OpenRTM-aist.

Tags

  • Robotics suites

Keep exploring