OpenRTM-aist 2.1系のインストール

Windowsへのインストール

インストール

windows10-logo.png

必要なソフトウエアのインストール

OpenRTM-aistを利用するには、Python、CMake、Doxygen、Visual Studio等のソフトウェアのインストールが必要です。

Visual Studio

C++版の開発だけでなく、Python版、Java版のRTCを作成した際に、インストーラをビルドするのにも必要です。 以下のCommunity版(無料)をインストールするか、別途Visual Studio 2019/2022/2026を入手してインストールしてください。

現在動作確認できているVisual Studioの最新バージョンは2026です。 
C++の開発環境を入れ忘れることがよくあります。以下の説明を一読することをお勧めします。

Python

PythonはPython言語版のRTCの開発だけでなく、OpenRTM-aistの様々なツールでも使用していますので必ずインストールする必要があります。 OpenRTM-aistがサポートしているPythonは 3.10, 3.11, 3.12, 3.13, 3.14 です。 最新版をインストールすることをお勧めします。

インストールする際以下の点に注意してください。

CMake

CMakeはWindowsやLinux等様々な環境でビルドに必要なファイル(Visual Studioのプロジェクトファイル、Linux上のMakefile等)を自動生成するために必要です。
できるだけ最新版をインストールしてください。

Doxygen & Graphviz

Doxygenは、ソースコード等のコメントからドキュメントを自動生成するツールです。
Graphvizは、Doxygenでドキュメントを生成する際に、クラス図等の図を生成するために必要とされるツールです。
OpenRTM-aistでは、RTCBuilderでRTCの設計時に様々な設計情報を記入することができ、それらはソースコードのコメントとして出力されます。 これをDoxygenで処理することで、RTCのキレイなドキュメントを生成することができます。
できるだけ最新版をインストールしてください。

インストールの途中で[Install Options]としてsystem PATHをどうするかを聞かれますが、Add Graphviz to the system PATH for all usersを選択することを推奨します。 上記WebページからWindows版のバイナリ実行形式ファイルをダウンロードして実行してインストールしてください。

インストール後、コマンドプロンプトで dot -v を実行してプラグイン情報が表示されることを確認して下さい。

 >dot -v

JDK8

Javaで開発される場合に必要となります。下記ページの解説をご覧ください。

OpenRTM-aistのインストール

上記のソフトウェアのインストールが完了したら、OpenRTM-aistのインストールを行います。

インストーラのダウンロード

OpenRTM-aistのWindows版のインストーラ(msi形式)をダウンロードします。

OpenRTM-aist-2.1.0-RELEASE_x86_64.msi MD5:e1804a5aaa4fab85a5cdc777bd9c48c1 719MB
Microsoft Edge をお使いでダウンロードできない場合は、下記ページの解説をご覧ください。

このインストーラには、以下の内容が含まれています。

  • C++ 用開発環境
    • OpenCV 4.13.0
    • C++用過去バージョンのDLL (古いRTC実行時に必要)
  • Python 用開発環境
  • Java 用開発環境
  • omniORB 4.3.4
  • OpenRTP (GUIツール、RTCBuilder,RTSystemEditor)
    • JRE8環境 (OpenRTPに必要)
  • VCVerChanger (GUIツール)
  • rtshell (CUIツール)

インストール

インストール過程の詳細は、下記ページをご覧ください。 正しくインストールされているかどうかの確認として、サンプルコンポーネントを実行してみてください。 インストーラが設定するシステム環境変数、インストールするファイル等の詳細は、下記ページをご覧ください。

システム環境変数確認

インストールされているVisual Studioのバージョンに合わせて、システム環境変数RTM_VC_VERSIONを設定しています。 インストール後にこの環境変数がvc16の値で展開されますが、Windowsの動作により展開されないケースが発生することを確認しています。 そのため、VCVerChangerでのシステム環境変数の確認をお勧めします。

検索窓に VCVerChanger と入力して起動してください。起動したら「確認」ボタンを押して表示されたパスを確認後、「終了」してください。

vcverchanger.png

Visual Studioのインストール

Visual Studio Community 2026のインストール

インストーラーの入手

以下のページからVisual Studio Community 2026のインストーラーを入手してください

[Community]とラベルされた下の[無料ダウンロード]ボタンをクリックするとインストーラーのダウンロードが始まります。
インストール手順はバージョン2022を例に説明します。

vs2022_install1.png

インストーラーの実行

ダウンロードが終了したら、ダウンロードしたファイルを開いて実行してください。指示にしたがってクリックしていくと以下の画面が表示されるので、[C++によるデスクトップ開発]にチェックを入れて[インストール]ボタンをクリックしてください。

vs2022_install2.png

インストールの確認

vs2022_install3.png

インストールが完了するとサインインを求める画面が表示されるため、Microsoftアカウントでサインインしてください。サインインしなくても30日間は使用できます。 Microsoftアカウントの手順は以下を参考にしてください。

新しいMicrosoftアカウントを作成する方法

C++コンパイラがインストールされているかの確認

C++によるデスクトップ開発機能がインストールされているかを必ず確認してください。

Visual C++のプロジェクトを作成できれば問題ありません。 まず、[新しいプロジェクトの作成]をクリックしてください。

vs2022_install4.png

この時、
[空のプロジェクト
Windows用にC++で最初から始めます。開始ファイルは提供しません]
などが選択肢にあればインストールに問題ありません。

new_project2022.png

インストールされていない場合は、
[探しているものが見つからない場合
さらにツールと機能をインストールする]
をクリックするとインストーラーが起動するので、[’’C++によるデスクトップ開発機能’’]をインストールしてください。

vs_install5.png



動作確認 (Windows編)

サンプルコンポーネントを実行する

インストールが正常に終了したら、付属のサンプルコンポーネントで動作を確認できます。 batファイルを用意していますので、それをダブルクリックすれば起動できます。

batファイルは、スタートメニューの [OpenRTM-aist 2.1.* x86_64] からスタートメニューフォルダーを開くとアクセスしやすいです。
「C++_Examples」「C++_OpenCV-Examples」「Python_Examples」「Java_Examples」の各フォルダ下にbatファイルがあります。 詳細は、10分で始めようページの解説をご覧ください。


サンプルコンポーネントのインストール先は以下です。

 C:\Program Files\OpenRTM-aist\2.1.x\Components\C++\Examples
 C:\Program Files\OpenRTM-aist\2.1.x\Components\Python
 C:\Program Files\OpenRTM-aist\2.1.x\Components\Java
 C:\Program Files\OpenRTM-aist\2.1.x\Components\C++\OpenCV

サンプルコンポーネント一覧

付属しているサンプルコンポーネントの簡単な説明と、使い方を解説しているページへのリンクを以下に示します。

C++版、Python版、Java版に付属

batファイル名 サンプルコンポーネントの簡単な説明 使い方解説ページ
ConsoleIn.bat
ConsoleOut.bat
ConsoleIn.bat : コンソールから入力された数値をOutPortから出力するConsoleInコンポーネント を起動します。
ConsoleOut.bat : InPortに入力された数値をコンソールに表示するConsoleOutコンポーネント を起動します。
SimpleIO
SeqIn.bat
SeqOut.bat
SeqIn.bat : ランダムな数値(Short、Long、Float、Doubleとそのシーケンス型)を出力するSeqInコンポーネントを起動します。
SeqOut.bat : InPortに入力される数値(Short、Long、Float、Doubleとそのシーケンス型)を表示するSeqOutを起動します。
SeqIO
MyServiceProvider.bat
MyServiceConsumer.bat
MyServiceProvider.bat : MyService型のサービスを提供するMyServiceProviderコンポーネント を起動します。
MyServiceConsumer.bat : MyService型のサービスを提供するMyServiceConsumerコンポーネント を起動します。
SimpleService
ConfigSample.bat Configuration機能の使用例のサンプルConfigSampleコンポーネント を起動します。RtcLinkからConfigurationを変更してConfigurationの挙動を理解するためのサンプルです。 ConfigSample
Composite.bat 複合コンポーネント作成サンプルPeriodicECSharedComponentコンポーネント を起動します。Sensor、Controller、Motorの3つサブ・コンポネントを複合しています。 ConsoleInなどのコンポーネント接続して使ってみると良いでしょう。 Composite

Python版のみに付属

batファイル名 サンプルコンポーネントの簡単な説明 使い方解説ページ
TkJoystickComp.bat Tcl/Tkを用いたGUIコンポーネントのサンプル。簡易ジョイスティックコンポーネント。 TkJoyStick
TkMobileRobotSimulator.bat モバイルロボットの簡易シミュレーター。ロボットの速度をInPortで受け、移動後の位置をOutPortから出力する。 TkMobileRobotSimulator
TkMotorComp.bat Tcl/Tkを用いたGUIコンポーネントのサンプル。InPortで受け取った値の速度で回転する様子をGUIで表示する。 TkMotorComp
SliderComp.bat Tcl/Tkを用いたGUIコンポーネントのサンプル。Sliderで指定した値をOutPortから出力する。 SliderComp
TkMotorPosComp.bat Tcl/TKを用いたGUIコンポーネントのサンプル。InPortで受け取った値を回転角として動く様子をGUIで表示する。 TkMotorPosComp
TkLRFViewer.bat Tcl/Tkを用いたGUIコンポーネントのサンプル。レーザーレンジセンサーなどから出力されるデータを表示する。 tkLRFViewer
AutoControl.bat モバイルロボット用のコンポーネントで速度を出力する。測位センサーのデータをInPortで受け、ロボットの速度を計算してOutPortから出力する。 Autocontrol

Python版、Java版に付属

batファイル名 サンプルコンポーネントの簡単な説明 使い方解説ページ
ExtConsoleIn.bat
ExtConsoleOut.bat
ExtConnector.bat
ExtConsoleIn.bat : 外部からのトリガで制御されるコンソール入力された数値をOutportから出力するコンポーネントを起動します。
ExtConsoleOut.bat : 外部からのトリガで制御されるInportに入力された数値をコンソールに出力するコンポーネントを起動します。
ExtConnector.bat : ExtTrigger/ConsoleInComp.class or .pyとExtTrigger/ConsoleOutComp.class or .pyへの外部トリガー送るプログラムを起動します。
ExtTrigger

Java版のみに付属

batファイル名 サンプルコンポーネントの簡単な説明 使い方解説ページ
GUIIn.bat スライダーの位置をOutportから出力するGUIのサンプルを起動します。ConsoleOutComp.classと接続することもできます。 GUIIn

OpenCV C++版

batファイル名 サンプルコンポーネントの簡単な説明 使い方解説ページ
Affine.bat 入力画像のアフィン変換をします。
BackgroundSubtractionSimple.bat 入力画像においてKey入力があった時点の画像から変化分を出力します。
Binarization.bat 入力画像を二値化した白黒画像に変換します。
CameraViewer.bat InPort で受け取った画像を画面に表示します。 CameraViewer
Chromakey.bat 画像から特定の色を除去し物体を抽出します。 Chromakey
DialationErosion.bat ダイアレーション/エロージョン処理を行います。
Edge.bat X方向一次微分画像、Y方向一次微分画像、ラプラシアン画像(二次微分画像)を出力します
Findcontour.bat 輪郭抽出をして、輪郭を画像中に表示します。
Flip 画像の反転を行います。 Flip使用例
Histgram.bat 白黒化した画像の明度/コントラストの変更処理をしながら、ヒストグラムの変化を表示します。
Hough.bat ハフ変換による直線抽出
ImageCalibration.bat カメラキャリブレーションを行います。 TkCalibGUIから自動起動
ImageSubtraction.bat 入力画像から背景画像を取り出し、前景画像部を判定し、それを取り出すマスク画像を、背景画像を出力します。 ImageSubtraction
ObjectTracking.bat 画面上から選択したオブジェクトを追跡して、その位置を赤い楕円形で囲んで示します。 ObjectTracking
OpenCVCamera.bat USBカメラのキャプチャ画像を OutPort から出力します。 OpenCVCamera
Perspective.bat 画像のパースペクティブ変換(斜め下から見たように変換します。
RockPaperScissors.bat 画像でグーチョキパーを判定します。
Rotate.bat 画像を回転と縮小拡大処理をします。
Scale.bat 画像の縮小拡大処理をします。
Sepia.bat 画像のセピア化を行います。
SubtractCaptureImage.bat 入力画像から変化のない部分を背景と判断して、前景(移動物)を取り出すマスク画像を出力します。 SubtractCaptureImage
Template.bat テンプレートマッチング
TkCalibGUI.bat カメラキャリブレーションを行う ImageCalibrationコンポーネント用のGUIです。 TkCalibGUI
Translate.bat 画像の2次元移動処理をします。

ソースからのビルド(C++版)

OpenRTM-aist本体に改修を加えてWindows上で利用したい場合は、OpenRTM-aistのソースコードを取得してビルドできます。 2.0系からはCMakeに対応しましたので、1.2系までの手順とは異なっています。

必要なソフトウエア・ライブラリ

以下のソフトウエアが必要です。詳細は OpenRTM-aist 2.1系のWindowsへのインストール をご覧ください。

  • Visual Studio
  • Python
  • CMake
  • Doxygen & Graphviz(ドキュメントビルドも行いたい場合)
また、omniORBライブラリも必要です。
  • omniORB 4.3.4

openrtm.org が提供するビルド済みバイナリパッケージを下記リンク先に omniORB-4.3.4-x64-vc16-pyXX.zip という名称で用意してあります。 XXをインストールするpythonのバージョンに読み替えて適切なものをダウンロードし、適当な場所(以下の説明ではC:\workspace\omniORBとしています)に展開してください。

他のライブラリを使ってのビルドについては、 RTシステム開発 (応用編)・OpenRTM-aist(C++版)のCMakeによるビルド手順 をご覧ください。

ビルド・インストール時のコマンド手順

ソースコード を入手します。OpenRTM-aist2.1系の最新ソースならばmasterブランチを、2.1.0版のリリースソースでしたらv2.1.0のタグをチェックアウトしてください。

 git clone https://github.com/OpenRTM/OpenRTM-aist
 cd OpenRTM-aist
 git checkout -b v210-src refs/tags/v2.1.0

CMakeオプションで以下を指定して実行します。
  • -DORB_ROOT : ダウンロード・展開したomniORBのパス
  • -G : Visual Studio のバージョン(「Visual Studio 18 2026」「Visual Studio 17 2022」「Visual Studio 16 2019」など)
  • -DCMAKE_INSTALL_PREFIX : ソースからのインストール先パス

 mkdir build
 cd build
 cmake -DORB_ROOT=C:/workspace/omniORB-4.2.5-x64-vc16-py314 -G "Visual Studio 18 2026" -DCMAKE_INSTALL_PREFIX=C:/workspace/openrtminstall ..

次に以下のコマンドを実行します。 最後に以下のように表示したらビルドは成功です。

 cmake --build . --verbose --config Release 
 ビルドに成功しました。
     0 個の警告
     0 エラー

ビルドが成功したら、次のコマンドでインストールを完了させます。

 cmake --build . --config Release --target install

スクリプトでの一括処理

omniORBのダウンロードからソースビルド、インストールまでを一括処理するスクリプト(OpenRTM-build-Windows.bat)を紹介します。git cloneしたOpenRTM-aistディレクトリ下に置いて実行するものです。

 cd OpenRTM-aist
 copy scripts\OpenRTM-build-Windows.bat . 
 OpenRTM-build-Windows.bat > build.log

このOpenRTM-build-Windows.batは、Windowsインストーラmsiに組み込むためのビルド時に使用しているものです。 cmake時のオプションで必要なものに絞ってお使い下さい。

OpenRTM-aistインストーラ作業内容


インストーラーの作業内容

インストーラーは以下の作業内容に従ってファイルのコピー、システム設定を行います。 インストール、アンインストールが正しく行われているかの確認する際の参考のために以下に記しておきます。

  • インストールディレクトリ(C:\Program Files)下に各種ファイルをコピー
  • スタートメニュー以下にOpenRTM-aistフォルダーを作成し各種ショートカットを設定
  • 環境変数の設定(OpenRTM-aist 2.1.0版をデフォルト設定でインストールした場合)
     RTM_BASE=C:\Program Files\OpenRTM-aist\
     RTM_ROOT=C:\Program Files\OpenRTM-aist\2.1.0\
     RTM_VC_VERSION=vc16
     RTM_JAVA_ROOT=C:\Program Files\OpenRTM-aist\2.1.0\
     RTM_IDL_DIR=C:\Program Files\OpenRTM-aist\2.1.0\rtm\idl\
     OMNI_ROOT=C:\Program Files\OpenRTM-aist\2.1.0\omniORB\4.3.4_vc16\
     OpenCV_DIR=C:\Program Files\OpenRTM-aist\2.1.0\OpenCV4.13.0\
     OpenRTM_DIR=C:\Program Files\OpenRTM-aist\2.1.0\cmake\
  • PATHへの追加設定(OpenRTM-aist 2.1.0版をデフォルト設定でインストールした場合)
     C:\Program Files\OpenRTM-aist\2.1.0\bin\vc16\
     C:\Program Files\OpenRTM-aist\2.1.0\omniORB\4.3.4_vc16\bin\x86_win32\ 
     C:\Program Files\OpenRTM-aist\2.1.0\OpenCV4.13.0\x64\vc16\bin\

インストールされるファイル

ファイルは以下のような構造でインストールされます。

 <install_dir>
   + OpenRTM-aist
      + 1.x.x  :旧バージョンのランタイム
      + 2.0.x  :旧バージョンのランタイム
      + 2.1.x
         + bin: dll、lib各種コマンド
         + cmake: OpenRTMConfig.cmake
         + coil: coilヘッダファイル
         + Components
            + C++
               + Examples: C++サンプルコンポーネント
               + OpenCV: OpenCVのC++サンプルコンポーネント
            + Java: Java サンプルコンポーネント
            + Python: Python サンプルコンポーネント
         + ext: 拡張モジュール用ファイル
         + hrtm: HRTMのラッパーライブラリ
         + jar: jarファイル
         + jre: AdoptOpenJDK JRE
         + omniORB 4.3.4
         + OpenCV 4.13.0
         + rtm: OpenRTM-aistヘッダファイル
            + idl: OpenRTM-aistIDLファイル
         + util
            + OpenRTP: RTCBuilderとRTSystemEditorツール
            + RTSystemEditor: RTSystem Editorのみのファイル
            + VCVerChanger: 使用しているVisual Studioのバージョンを指定するツール

Linuxへのインストール

インストール

ubuntu_logo2.png

OpenRTM-aistは、UbuntuやDebian GNU Linuxにおいて利用可能なdebパッケージが提供されています。

2.1 は現在、Ubuntu 22.04, 24.04 (各amd64, arm64)に対応しています。 Ubuntu/Debian GNU Linuxへのサポートバージョンや対応の有無は、予告なしに変更されることがありますので、あらかじめご了承ください。

2.1系での変更点

新しく SSM通信機能 をインストールできるようになりました。
SSMライブラリを静的リンクしているので、別途SSMをインストール必要はありません。openrtm2-ssm-tpのdebパッケージで下記がインストールされます。

 usr/
 ├── bin
 │   ├── killssm
 │   ├── lsssm
 │   ├── psssm
 │   ├── ssm-advance-player
 │   ├── ssm-coordinator
 │   ├── ssm-date
 │   ├── ssm-graph
 │   ├── ssm-logger
 │   ├── ssm-monitor
 │   ├── ssm-player
 │   ├── ssm-proxy
 │   ├── ssm-transporter
 │   └── topssm
 ├── etc
 │   └── transport
 │       └── rtc.ssm.conf
 └── share
     └── openrtm-2.1
         └── transport
             └── SSMTransport.so

この機能は次の項で説明している「一括インストールスクリプト」をオプション無しで実行した場合はインストールされません。
オプションとして「-l c++ --ssm」と指定するとインストールできます。 --help で確認できます。

一括インストールスクリプト

2.0系のインストールは、下記をシェルプロンプトに貼り付けて実行してください。 C++版、 Python版、 Java版、 OpenRTP(amd64のみ)、 rtshell、JDK8 がインストールされます。 スクリプトはローカルに保存されません。
※スクリプトの実行で、Javaの複数バージョンがインストールされても、Java8 使用に切り替わっています

 $ bash <(curl -s https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/openrtm2_install_ubuntu.sh)

この実行により以下のパッケージがインストールされます。

 $ dpkg -l | grep openrt
 ii  openrtm2:arm64                         2.1.0-0             arm64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-dev:arm64                  2.1.0-0              arm64       OpenRTM-aist headers for development
 ii  openrtm2-doc                             2.1.0-0              all             Documentation for openrtm2
 ii  openrtm2-example:arm64            2.1.0-0             arm64       OpenRTM-aist examples
 ii  openrtm2-idl:arm64                     2.1.0-0             arm64       OpenRTM-aist idls for development
 ii  openrtm2-java:arm64                  2.1.0-0             arm64       OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-java-example:arm64     2.1.0-0            arm64        OpenRTM-aist-Java examples
 ii  openrtm2-naming:arm64              2.1.0-0            arm64        OpenRTM-aist name server launcher
 ii  openrtm2-python3                       2.1.0-0            arm64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-python3-example          2.1.0-0            arm64        OpenRTM-aist-Python examples

デフォルトのpipバージョン利用で、 rtshellのインストールに失敗します。
インストールスクリプトが表示している黄文字のメッセージに従い、 /etc/pip.conf へ(存在しなければ 新規作成して)下記を追記して下さい。

 $ vi /etc/pip.conf
 [global]
 break-system-packages = true

上記設定後に再度インストールスクリプトを実行するとrtshellをインストールできます。

 $ pip3 list | grep aist
 OpenRTM-aist-Python        2.1.0
 rtctree-aist                       4.2.5
 rtshell-aist                       4.2.10
 rtsprofile-aist                    4.1.6

オプションを指定することで、目的に合わせたパッケージをインストールすることが可能です。 help は下記で確認できます。

 $ bash <(curl -s https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/openrtm2_install_ubuntu.sh) --help

インストールされるパッケージの詳しい内容は「OpenRTM-aist-2.1 debパッケージの詳しい内容 」で確認できます。

ROS用パッケージのインストール

2.1系ではROS通信機能用パッケージをインストールできます。(ROS2用)
ここでは、ROS2 をインストールしている環境へのパッケージインストール方法を説明します。

help に記載しているように、ROSパッケージインストールオプションは以下で対応しています。
[-e ros2|all] [--ros2]

すでにインストールスクリプトをオプション無しで実行済みで、追加でROS2用パッケージを追加インストールする場合は、「-l c++ --ros2」で可能です。

 $ bash <(curl -s https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/openrtm2_install_ubuntu.sh) -l c++ --ros2

最初からROS2用パッケージも加えてすべてインストールしたい場合は、「 -l all --ros2」で可能です。

 $ bash <(curl -s https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/openrtm2_install_ubuntu.sh) -l all --ros2

インストールされたパッケージを確認します。

 $ dpkg -l | grep openrt
 ii  openrtm2:amd64                          2.1.0-0       amd64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-dev:amd64                    2.1.0-0       amd64        OpenRTM-aist headers for development
 ii  openrtm2-doc                               2.1.0-0       all               Documentation for openrtm2
 ii  openrtm2-example:amd64             2.1.0-0       amd64        OpenRTM-aist examples
 ii  openrtm2-idl:amd64                      2.1.0-0       amd64        OpenRTM-aist idls for development
 ii  openrtm2-java:amd64                   2.1.0-0       amd64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-java-example:amd64      2.1.0-0      amd64        OpenRTM-aist-Java examples
 ii  openrtm2-naming:arm64               2.1.0-0      arm64        OpenRTM-aist name server launcher
 ii  openrtm2-python3                         2.1.0-0      amd64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-python3-example            2.1.0-0      amd64        OpenRTM-aist-Python examples
 ii  openrtm2-ros2-tp:amd64               2.1.0-0      amd64        OpenRTM-aist extension ROS2 package
 ii  openrtp2:amd64                            2.1.0-0      amd64        OpenRTP, Open RT Platform distributed by AIST

動作確認(Linux編)

サンプルコンポーネントを実行する

インストールが正常に終了したら、付属のサンプルコンポーネントで動作を確認できます。 サンプルコンポーネントのインストール先は以下です。

 /usr/share/openrtm-2.1/components/c++/examples
 /usr/share/openrtm-2.1/components/python3/
 /usr/share/openrtm-2.1/components/java

RTCの操作、RTシステムの構築を行うためのツールOpenRTPを起動します。

  • OpenRTM-aist 2.x系は、openrtp2 コマンドで起動します

 $ openrtp2

付属のサンプルコンポーネントについては、以下のページでWindows版の一覧を記載しています。コンポーネントの動作についてはWindows版・Linux版に違いはございません。 Linux環境でのサンプルコンポーネントの実行手順について、もう少し詳しく知りたい場合は、以下の1.2系の解説ページをご覧ください。コンポーネントのパスを読み替えていただければ実行手順は2.x系も同じです。

OpenCVサンプルコンポーネントのインストール

OpenCVのC++サンプルコンポーネントはインストール用debパッケージを提供しておりません。ソースからdebパッケージを生成するスクリプトを提供しておりますのでビルド・インストールしてください。

OpenCV4.5.4のインストール例

バージョン4.5.4のOpenCV本体と拡張モジュール群(opencv_contrib)を合わせてビルド・インストールする例です。

  • まず、/etc/apt/sources.listの以下の deb-src 行をコメントインしておきます。

 $ sudo vi /etc/apt/sources.list
      :
 deb-src http://jp.archive.ubuntu.com/ubuntu/ *** universe
    or
 deb-src http://us.archive.ubuntu.com/ubuntu/ *** universe

  • 下記コマンドの実行でOpenCVのインストールが完了します。

 sudo apt build-dep opencv
 wget https://github.com/opencv/opencv/archive/refs/tags/4.5.4.tar.gz -O opencv-4.5.4.tar.gz
 tar xvzf opencv-4.5.4.tar.gz
 wget https://github.com/opencv/opencv_contrib/archive/refs/tags/4.5.4.tar.gz -O opencv_contrib-4.5.4.tar.gz
 tar xvzf opencv_contrib-4.5.4.tar.gz
 cd opencv-4.5.4
 mkdir build
 cd build
 cmake -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.5.4/modules -DBUILD_opencv_java=OFF ..
 make -j$(nproc)
 sudo make install
 sudo ldconfig

OpenCVサンプルコンポーネントのビルド手順

ソースのImageProcessingを取得してビルドし、debパッケージを生成します。

 git clone https://github.com/OpenRTM/ImageProcessing
 cd ImageProcessing/opencv
 mkdir build
 cd build
 cmake ..
 ./build_linux_package.sh

これで、imageprocessing_2.x.x_amd64.deb が生成されますのでインストールします。

 sudo dpkg -i imageprocessing_2.x.x_amd64.deb
 ls /usr/share/openrtm-2.0/components/c++/opencv-rtcs/
 Affine                       CameraViewer     Edge         Histogram         ImageSubtraction  Perspective        Scale                 Template
 BackGroundSubtractionSimple  Chromakey        Findcontour  Hough             ObjectTracking    RockPaperScissors  Sepia                 Translate
 Binarization                 DilationErosion  Flip         ImageCalibration  OpenCVCamera      Rotate             SubtractCaptureImage  rtc.conf

各サンプルディレクトリ下に実行ファイル(***Comp)がインストールされていますので、実行してみてください。

ソースからのビルド (Linux編)

OpenRTM-aist本体のソースを変更して利用したい場合には、OpenRTM-aistのソースコードを取得してビルドできます。

Dockerでのビルド

Dockerfileを使い、OpenRTM-aistソースビルドに必要な最小限のライブラリだけをインストールした環境でビルドを行う手順を紹介します。
docker build コマンドで Dockerイメージを生成するのですが、毎回まっさらな環境でビルドできるのでお勧めです。

初めてDockerを使う場合は、以下のようにインストールしてください。Ubuntuのデスクトップ環境であれば docker.io パッケージが提供されていると思います。

 sudo apt install docker.io

C++ソースのビルド

OpenRTM-aist 2.1系のソースには、Ubuntu22.04、24.04用のDockerfileが含まれています。

 OpenRTM-aist/scripts/ubuntu_2204/Dockerfile
 OpenRTM-aist/scripts/ubuntu_2404/Dockerfile

ビルド手順は以下となります。 Ubuntu24.04用のビルド例です。 
ここではGitHubから最新のOpenRTM-aistソースを取得していますが、修正を加えたソースのビルドでも同様の手順で行えます。

 git clone https://github.com/OpenRTM/OpenRTM-aist
 sudo docker build -t test -f OpenRTM-aist/scripts/ubuntu_2404/Dockerfile .

エラーなくビルドが終了したら、-tオプションで指定した test という名前のDockerイメージが生成されていることを確認できます。

 sudo docker images
 REPOSITORY       TAG           IMAGE ID          CREATED           SIZE
 test                    latest         0bc00f471b64   27 seconds ago   1.52GB

ソースを修正しながらビルドが通るまで繰り返すと、 <none> というイメージが多数生成されます。 docker rmi で IMAGE ID を指定して削除できますが、まとめて削除したい場合は下記コマンド実行が便利です。

 sudo docker rmi $(sudo docker images -f dangling=true -q)

Dockerイメージ「openrtm/devel-rtm」について

ソースビルドで使用した Dockerfile の1行目は、Ubuntu22.04用と24.04用でそれぞれの以下のようになっており、Dockerハブにアップロードされているこの名前のイメージを使用します。

 FROM openrtm/devel-rtm:ubuntu22.04
        or
 FROM openrtm/devel-rtm:ubuntu24.04

これらのイメージは、下記 Docierfile.devel-rtm から生成したものです。fluent-bitと、ROS2がインストールされています。
  • Ubuntu22.04用:humble
  • Ubuntu24.04用:jazzy

 OpenRTM-aist/scripts/ubuntu_2204/Dockerfile.devel-rtm
 OpenRTM-aist/scripts/ubuntu_2404/Dockerfile.devel-rtm

Dockerでdebパッケージ生成まで一括処理するスクリプト

ここで紹介するスクリプトは、OpenRTM-aistのリリース用debパッケージ作成時に利用しているものです。
OpenRTM-aistソースを変更してインストールしたい場合、debパッケージで手軽に試せます。

このスクリプトは、Dockerでソースビルドからdebパッケージ生成まで行い、成果物であるdebパッケージをDockerコンテナからホスト側へコピーする処理までを一括で行います。

Ubuntu24.04用のdebパッケージを作成する場合の手順は以下となります。

 git clone https://github.com/n-kawauchi/RTM-src-pkgs-docker-build
 cd RTM-src-pkgs-docker-build/ubuntu_2404/
 sh build-cxx.sh
 ls -l
 drwxr-xr-x  2 root    root    4096 Jun 30 15:53 cxx-deb-pkgs/

成果物のdebパッケージは cxx-deb-pkgs 下に出力されています。所有者がrootになっていますので、実行ユーザに変更しておいた方がアクセスしやすいです。
ROSがインストールされたDockerイメージを使用しているので、ROS2向けのパッケージ(openrtm2-ros2-tp)も生成されます。 2.1系から追加されたSSMパッケージ(openrtm2-ssm-tp)も生成されます。

 ls cxx-deb-pkgs/
 openrtm2_2.1.0-0_amd64.buildinfo  openrtm2-dev_2.1.0-0_amd64.deb      openrtm2-naming_2.1.0-0_amd64.deb
 openrtm2_2.1.0-0_amd64.changes    openrtm2-doc_2.1.0-0_all.deb        openrtm2-ros2-tp_2.1.0-0_amd64.deb
 openrtm2_2.1.0-0_amd64.deb        openrtm2-example_2.1.0-0_amd64.deb  openrtm2-ssm-tp_2.1.0-0_amd64.deb
 openrtm2_2.1.0-0.dsc              openrtm2-idl_2.1.0-0_amd64.deb      openrtm2-ssm-tp-dbgsym_2.1.0-0_amd64.ddeb

(※)このスクリプトを amd64 環境で実行すれば amd64 用debパッケージが生成され、aarch64 環境で実行すれば arm64 用debパッケージが生成されます。

OpenRTM-aistソースを変更してインストールしたい場合、build-cxx.sh スクリプトの以下の部分をコメントアウトし、build-cxx.sh と同じディレクトリにOpenRTM-aistソースを配置して実行してください。

 #----- OpenRTM-aist
 echo "${password}" | sudo -S rm -rf ${TARGET}-*
 #rm -rf OpenRTM-aist    <-- コメントアウト
 #git clone https://github.com/OpenRTM/OpenRTM-aist    <-- コメントアウト

Pythonソースのビルド

OpenRTM-aist-Python ソースには Dockerfile は含まれておりません。OpenRTM-aist-Pythonのリリース用debパッケージ作成時に下記Dockerfileを利用しています。

C++ソースビルドと同様に、Dockerでソースビルドからdebパッケージ生成まで行い、成果物であるdebパッケージをDockerコンテナからホスト側へコピーする処理までを一括で行うスクリプトを紹介します。

Ubuntu24.04用のdebパッケージを作成する場合の手順は以下となります。

 git clone https://github.com/n-kawauchi/RTM-src-pkgs-docker-build
 cd RTM-src-pkgs-docker-build/ubuntu_2404/
 sh build-python.sh

成果物のdebパッケージはpython-deb-pkgs下に出力されます。

 ls python-deb-pkgs/
 openrtm2-python3_2.1.0-0_amd64.changes  openrtm2-python3_2.1.0-0.dsc
 openrtm2-python3_2.1.0-0_amd64.deb      openrtm2-python3-example_2.1.0-0_amd64.deb

OpenRTM-aist-Pythonソースを変更してインストールしたい場合、build-python.sh スクリプトの以下の部分をコメントアウトし、build-python.sh、Dockerfile-python-debと同じディレクトリにOpenRTM-aist-Pythonソースを配置して実行してください。

 #----- OpenRTM-aist-Python
 echo "${password}" | sudo -S rm -rf ${TARGET}-*
 #-------- コメントアウト ここから
 #rm -rf OpenRTM-aist-Python
 #git clone https://github.com/OpenRTM/OpenRTM-aist-Python
 #cd OpenRTM-aist-Python
 #git checkout ${BRANCH}
 #cd -
 #-------- コメントアウト ここまで

Javaソースのビルド

OpenRTM-aist-Java ソースには Dockerfile は含まれておりません。OpenRTM-aist-Javaのリリース用debパッケージ作成時に下記Dockerfileを利用しています。

C++ソースビルドと同様に、Dockerでソースビルドからdebパッケージ生成まで行い、成果物であるdebパッケージをDockerコンテナからホスト側へコピーする処理までを一括で行うスクリプトを紹介します。

Ubuntu24.04用のdebパッケージを作成する場合の手順は以下となります。

 git clone https://github.com/n-kawauchi/RTM-src-pkgs-docker-build
 cd RTM-src-pkgs-docker-build/ubuntu_2404/
 sh build-java.sh

成果物のdebパッケージはjava-deb-pkgs下に、ソースパッケージはjava-src-pkgs下に出力されます。

 ls java-deb-pkgs/
 openrtm2-java_2.1.0-0_amd64.buildinfo  openrtm2-java_2.1.0-0_amd64.deb  openrtm2-java-doc_2.1.0-0_all.deb
 openrtm2-java_2.1.0-0_amd64.changes    openrtm2-java_2.1.0-0.dsc        openrtm2-java-example_2.1.0-0_amd64.deb

 ls java-src-pkgs/
 OpenRTM-aist-Java-2.1.0-jar.zip  OpenRTM-aist-Java-2.1.0.tar.gz  OpenRTM-aist-Java-2.1.0.zip

OpenRTM-aist-Javaソースを変更してインストールしたい場合、build-java.sh スクリプトの以下の部分をコメントアウトし、build-java.sh、Dockerfile-java-debと同じディレクトリにOpenRTM-aist-Javaソースを配置して実行してください。

 #----- OpenRTM-aist-Java
 echo "${password}" | sudo -S rm -rf ${TARGET}-*
 #-------- コメントアウト ここから
 #rm -rf OpenRTM-aist-Java
 #git clone https://github.com/OpenRTM/OpenRTM-aist-Java
 #cd OpenRTM-aist-Java
 #git checkout ${BRANCH}
 #cd -
 #-------- コメントアウト ここまで

OpenRTM-aist-2.1 debパッケージの詳しい内容

OpenRTM-2.1 debパッケージの詳しい内容

各パッケージの内容は以下の通りです。

openrtm2

openrtm2 にはランタイムライブラリとコマンド群が含まれています。

  • コマンド
     /usr/bin/openrtmNames
     /usr/bin/rtcd2
     /usr/bin/rtcprof2
     /usr/bin/rtm2-config
  • 設定ファイルサンプルなど
     /usr/etc/http/rtc.http.conf
     /usr/etc/http/rtc.https.conf
     /usr/etc/http/rtc.ws.conf
     /usr/etc/http/rtc.wss.conf
     /usr/etc/logger/rtc.fluentbit_stream.conf
     /usr/etc/rtc.names.http.conf
     /usr/etc/ssl/rtc.ssl.conf
     /usr/etc/transport/rtc.ros2.ssl.conf
  • ライブラリなど
     /usr/lib/x86_64-linux-gnu/libRTC2.a
     /usr/lib/x86_64-linux-gnu/libRTC2.so.2.1.0
     中略
     /usr/lib/x86_64-linux-gnu/librtmCamera2.so
     /usr/lib/x86_64-linux-gnu/librtmManipulator2.so
     中略
     /usr/lib/x86_64-linux-gnu/openrtm-2.1/ec/LogicalTimeTriggeredEC.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.1/local_service/FileNameservice.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.1/logger/FluentBit.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.1/sdo/ComponentObserverConsumer.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.1/sdo/ExtendedFsmServiceProvider.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.1/sdo/LoggerConsumer.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.1/ssl/SSLTransport.so

openrtm2-naming

ネームサーバを起動

 /usr/bin/rtm2-naming

openrtm2-dev

openrtm2-devには、開発に必要なコマンド群とヘッダが含まれています。

  • コマンド
     /usr/bin/rtm2-skelwrapper
  • ヘッダなど
     /usr/include/coil-2.1/coil/Affinity.h
     /usr/include/coil-2.1/coil/Async.h
     中略
     /usr/include/openrtm-2.1/rtm/BufferBase.h
     /usr/include/openrtm-2.1/rtm/BufferStatus.h
     中略
     /usr/include/openrtm-2.1/rtm/config_rtc.h
     /usr/include/openrtm-2.1/rtm/ext/FastRTPSMessageInfo.h
     /usr/include/openrtm-2.1/rtm/ext/ROSMessageInfo.h
     /usr/include/openrtm-2.1/rtm/idl/BasicDataType.hh 
     /usr/include/openrtm-2.1/rtm/idl/BasicDataTypeSkel.h
     中略
     /usr/include/openrtm-2.1/rtm/idl/SharedMemoryStub.h
     /usr/include/openrtm-2.1/rtm/version.h
  • ライブラリ・その他
     /usr/lib/x86_64-linux-gnu/cmake/openrtm-2.1/OpenRTMConfig.cmake
     /usr/lib/x86_64-linux-gnu/cmake/openrtm-2.1/OpenRTMConfigVersion.cmake
     /usr/share/openrtm-2.1/py_helper/skel_wrapper.py
     /usr/share/openrtm-2.1/py_helper/yat.py

openrtm2-example

openrtm2-example にはスタンドアロン RTC、ローダブル RTC それぞれのサンプルが含まれています。

  • サンプル(スタンドアロンRTC)
     /usr/share/openrtm-2.1/components/c++/examples/CompositeComp
     /usr/share/openrtm-2.1/components/c++/examples/ConfigSampleComp
     中略
     /usr/share/openrtm-2.1/components/c++/examples/rtc.conf
  • サンプル(ローダブルRTC)
     /usr/share/openrtm-2.1/components/c++/examples/rtc/ConfigSample.so
     /usr/share/openrtm-2.1/components/c++/examples/rtc/ConsoleIn.so
     中略
     /usr/share/openrtm-2.1/components/c++/examples/rtc/Throughput.so

openrtm2-ros2-tp

ROS2通信機能ライブラリがインストールされます。

 /usr/lib/x86_64-linux-gnu/openrtm-2.1/transport/FastRTPSTransport.so
 /usr/lib/x86_64-linux-gnu/openrtm-2.1/transport/ROS2Transport.so

openrtm2-ssm-tp

SSMとSSM通信機能ライブラリがインストールされます。

 /usr/bin/ssm-coordinator
 /usr/bin/ssm-date
 中略
 /usr/share/openrtm-2.1/transport/SSMTransport.so

openrtm2-doc

openrtm2-doc には、日本語と英語のクラスリファレンス、IDL インターフェース定義リファレンスが含まれています。

  • クラスリファレンス
     /usr/share/openrtm-2.1/doc/c++/ClassReference/html/BufferBase_8h.html
     /usr/share/openrtm-2.1/doc/c++/ClassReference/html/BufferBase_8h__dep__incl.map
     中略
     /usr/share/openrtm-2.1/doc/c++/ClassReference/html/structSDOPackage_1_1Organization__impl_1_1sdo__id.html
  • IDL リファレンス
     /usr/share/openrtm-2.1/doc/idl/IDLReference/html/BasicDataType_8idl.html
     /usr/share/openrtm-2.1/doc/idl/IDLReference/html/BasicDataType_8idl_dep_incl.map
     中略
     /usr/share/openrtm-2.1/doc/idl/IDLReference/html/unionSDOPackage_1_1Numeric.html
  • クラスリファレンス(英語)
     /usr/share/openrtm-2.1/doc/c++/ClassReference-en/html/BufferBase_8h.html
     /usr/share/openrtm-2.1/doc/c++/ClassReference-en/html/BufferBase_8h__dep__incl.map
     中略
     /usr/share/openrtm-2.1/doc/C++/ClassReference-en/html/version_8h_source.html
  • IDL リファレンス(英語)
     /usr/share/openrtm-2.1/doc/idl/IDLReference-en/html/BasicDataType_8idl.html
     /usr/share/openrtm-2.1/doc/idl/IDLReference-en/html/BasicDataType_8idl__dep__incl.map
     中略
     /usr/share/openrtm-2.1/doc/idl/IDLReference-en/html/unionSDOPackage_1_1Numeric.html

openrtm2-idl

  • idlファイルなど
     /etc/profile.d/openrtm2-idl.sh
     /usr/include/openrtm-2.1/rtm/idl/BasicDataType.idl
     /usr/include/openrtm-2.1/rtm/idl/CameraCommonInterface.idl
     中略
     /usr/include/openrtm-2.1/rtm/idl/SharedMemory.idl
     /usr/share/openrtm-2.1/idl/BasicDataType.idl
     /usr/share/openrtm-2.1/idl/CameraCommonInterface.idl
     中略
     /usr/share/openrtm-2.1/idl/SharedMemory.idl

openrtm2-python3

  • コマンド
     /usr/bin/rtcd2_python3
     /usr/bin/rtcprof2_python3
  • OpenRTM-aist 本体の Python モジュール
     /usr/lib/python3/dist-packages/OpenRTM_aist/* 
  • OpenRTM-aist用Python検索パスファイル
     /usr/lib/python3/dist-packages/OpenRTM-aist.pth 
  • ユーティリティ
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/__init__.py
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtc-template/*
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtcd/*
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtcprof/*
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtm-naming/*

openrtm2-python3-example

 /usr/share/openrtm-2.1/components/python3/__init__.py
 /usr/share/openrtm-2.1/components/python3/component.conf
 /usr/share/openrtm-2.1/components/python3/rtcd.conf
 /usr/share/openrtm-2.1/components/python3/AutoControl/*
 /usr/share/openrtm-2.1/components/python3/AutoTest/*
 /usr/share/openrtm-2.1/components/python3/CSPSample/*
 /usr/share/openrtm-2.1/components/python3/CSPSelectSample/*
 /usr/share/openrtm-2.1/components/python3/CSPStaticFsmSample/*
 /usr/share/openrtm-2.1/components/python3/Composite/*
 /usr/share/openrtm-2.1/components/python3/ConfigSample/*
 /usr/share/openrtm-2.1/components/python3/ExtTrigger/*
 /usr/share/openrtm-2.1/components/python3/MobileRobotCanvas/*
 /usr/share/openrtm-2.1/components/python3/SeqIO/*
 /usr/share/openrtm-2.1/components/python3/Serializer/*
 /usr/share/openrtm-2.1/components/python3/SimpleIO/*
 /usr/share/openrtm-2.1/components/python3/SimpleService/*
 /usr/share/openrtm-2.1/components/python3/Slider_and_Motor/*
 /usr/share/openrtm-2.1/components/python3/Throughput/*
 /usr/share/openrtm-2.1/components/python3/TkJoyStick/
 /usr/share/openrtm-2.1/components/python3/TkLRFViewer/*

openrtm2-java

 /etc/profile.d/openrtm-java.sh
 /usr/bin/rtcd2_java
 /usr/bin/rtcprof2_java
 /usr/share/openrtm-2.1/jar/License.txt
 /usr/share/openrtm-2.1/jar/LogicalTimeTriggeredEC.jar
 /usr/share/openrtm-2.1/jar/NameserviceFile.jar
 /usr/share/openrtm-2.1/jar/OpenRTM-aist-2.1.0.jar
 /usr/share/openrtm-2.1/jar/commons-cli-1.1.jar
 /usr/share/openrtm-2.1/jar/jna-4.2.2.jar
 /usr/share/openrtm-2.1/jar/jna-platform-4.2.2.jar
 /usr/share/openrtm-2.1/jar/rtcd.jar
 /usr/share/openrtm-2.1/jar/rtcprof.jar

openrtm2-java-example

Java版サンプルRTC、Classファイル、ソースファイル、起動スクリプト

 /usr/share/openrtm-2.1/components/java/* 
 /usr/share/openrtm-2.1/components/java/RTMExamples/AutoTest/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/Composite/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/ConfigSample/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/ExtTrigger/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/Fsm/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/GUIIn/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/MyService.idl
 /usr/share/openrtm-2.1/components/java/RTMExamples/SeqIO/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/SimpleIO/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/SimpleService/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/SinCosOut/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/StaticFsm/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/Throughput/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/TopicTest/*

openrtm2-java-doc

openrtm2-java-doc には、日本語と英語のクラスリファレンスが含まれています。

 /usr/share/openrtm-2.1/doc/java/JavaDoc/OpenRTM/class-use/*
 /usr/share/openrtm-2.1/doc/java/JavaDoc/RTC/class-use/*
 /usr/share/openrtm-2.1/doc/java/JavaDoc/RTM/class-use/*
 中略
 /usr/share/openrtm-2.1/doc/java/JavaDoc/jp/go/aist/rtm/Constants.html
 /usr/share/openrtm-2.1/doc/java/JavaDoc/jp/go/aist/rtm/RTC/buffer/class-use/*
 /usr/share/openrtm-2.1/doc/java/JavaDoc/jp/go/aist/rtm/RTC/executionContext/class-use/*
 中略
 /usr/share/openrtm-2.1/doc/java/JavaDocEn/OpenRTM/class-use/*
 /usr/share/openrtm-2.1/doc/java/JavaDocEn/RTC/class-use/*
 /usr/share/openrtm-2.1/doc/java/JavaDocEn/RTM/class-use/*

openrtp2

openrtpでは大量のファイルがインストールされるため、ここではリストしません。必要に応じて

 $ dpkg -L openrtp2
と入力して各自での確認をしてください。

Raspberry Pi OSへのインストール

対応バージョン

現在パッケージが用意されている Raspberry Pi OS のバージョンは

  • Bookworm (64bit)

です。

SDカードの準備

OSイメージの書き込みは、公式サイトでダウンロードできるツール、Raspberry Pi Imager を使うのが便利です。
https://www.raspberrypi.com/software/

下記を選択してダウンロード、書き込みが可能です。
  • ベースのDebian GNU/Linuxのバージョン (最新 / Legacy)
  • GUI の有無 (Desktop / Lite)
  • システムアーキテクチャー (32-bit / 64-bit)

2.1系での変更点

新しく SSM通信機能 をインストールできるようになりました。
SSMライブラリを静的リンクしているので、別途SSMをインストール必要はありません。openrtm2-ssm-tpのdebパッケージで下記がインストールされます。

 usr/
 ├── bin
 │   ├── killssm
 │   ├── lsssm
 │   ├── psssm
 │   ├── ssm-advance-player
 │   ├── ssm-coordinator
 │   ├── ssm-date
 │   ├── ssm-graph
 │   ├── ssm-logger
 │   ├── ssm-monitor
 │   ├── ssm-player
 │   ├── ssm-proxy
 │   ├── ssm-transporter
 │   └── topssm
 ├── etc
 │   └── transport
 │       └── rtc.ssm.conf
 └── share
     └── openrtm-2.1
         └── transport
             └── SSMTransport.so

この機能は次の項で説明している「一括インストールスクリプト」をオプション無しで実行した場合はインストールされません。
オプションとして「-l c++ --ssm」と指定するとインストールできます。 --help で確認できます。

一括インストールスクリプト

2.1系のインストールは、下記をシェルプロンプトに貼り付けて実行してください。 C++版、 Python版、 Java版、 rtshell、JDK8 がインストールされます。 スクリプトはローカルに保存されません。
※Javaの複数バージョンがインストールされても、Java8 使用に切り替わっています。

 $ bash <(curl -s https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/openrtm2_install_raspbian.sh)

この実行により以下のパッケージがインストールされます。

 $ dpkg -l | grep openrt
 ii  openrtm2:arm64                         2.1.0-0             arm64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-dev:arm64                  2.1.0-0              arm64       OpenRTM-aist headers for development
 ii  openrtm2-doc                             2.1.0-0              all             Documentation for openrtm2
 ii  openrtm2-example:arm64            2.1.0-0             arm64       OpenRTM-aist examples
 ii  openrtm2-idl:arm64                     2.1.0-0             arm64       OpenRTM-aist idls for development
 ii  openrtm2-java:arm64                  2.1.0-0             arm64       OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-java-example:arm64     2.1.0-0            arm64        OpenRTM-aist-Java examples
 ii  openrtm2-naming:arm64              2.1.0-0            arm64        OpenRTM-aist name server launcher
 ii  openrtm2-python3                       2.1.0-0            arm64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-python3-example          2.1.0-0            arm64        OpenRTM-aist-Python examples

デフォルトのpipバージョン利用で、 rtshellのインストールに失敗します。
インストールスクリプトが表示している黄文字のメッセージに従い、 /etc/pip.conf へ(存在しなければ 新規作成して)下記を追記して下さい。

 $ vi /etc/pip.conf
 [global]
 break-system-packages = true

上記設定後に再度インストールスクリプトを実行するとrtshellをインストールできます。

 $ pip3 list | grep aist
 OpenRTM-aist-Python        2.1.0
 rtctree-aist                       4.2.5
 rtshell-aist                       4.2.10
 rtsprofile-aist                    4.1.6

オプションを指定することで、目的に合わせたパッケージをインストールすることが可能です。 help は下記で確認できます。

 $ bash <(curl -s https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/openrtm2_install_raspbian.sh) --help

パッケージの詳細

各パッケージの内容は以下の通りです。

openrtm2

openrtm-aistにはランタイムライブラリとコマンド群が含まれています。

  • コマンド
     /usr/bin/openrtmNames
     /usr/bin/rtcd2
     /usr/bin/rtcprof2
     /usr/bin/rtm2-config
  • 設定ファイルサンプル
     /usr/etc/rtc.conf.sample2
     /usr/etc/rtc.names.ssl.conf
     /usr/etc/ssl/rtc.ssl.conf
     /usr/lib/aarch64-linux-gnu/pkgconfig/openrtm2.pc
  • ライブラリなど
     /usr/lib/aarch64-linux-gnu/libRTC2.a
     /usr/lib/aarch64-linux-gnu/libRTC2.so.2.1.0
     中略
     /usr/lib/aarch64-linux-gnu/librtmCamera2.so
     /usr/lib/aarch64-linux-gnu/librtmManipulator2.so
     中略
     /usr/lib/aarch64-linux-gnu/openrtm-2.1/ec/LogicalTimeTriggeredEC.so
     /usr/lib/aarch64-linux-gnu/openrtm-2.1/local_service/FileNameservice.so
     /usr/lib/aarch64-linux-gnu/openrtm-2.1/sdo/ComponentObserverConsumer.so
     /usr/lib/aarch64-linux-gnu/openrtm-2.1/sdo/ExtendedFsmServiceProvider.so
     /usr/lib/aarch64-linux-gnu/openrtm-2.1/sdo/LoggerConsumer.so
     /usr/lib/aarch64-linux-gnu/openrtm-2.1/ssl/SSLTransport.so
     中略
     /usr/lib/aarch64-linux-gnu/openrtm-2.1/sdo/LoggerConsumer.so

openrtm2-dev

開発に必要なコマンド群とヘッダが含まれています。

  • コマンド
     /usr/bin/rtm2-skelwrapper
  • ヘッダ
     /usr/include/coil-2.1/coil/Affinity.h
     /usr/include/coil-2.1/coil/Async.h
     中略
     /usr/include/openrtm-2.1/rtm/BufferBase.h
     /usr/include/openrtm-2.1/rtm/BufferStatus.h
     中略
     /usr/include/openrtm-2.1/rtm/config_rtc.h
     /usr/include/openrtm-2.1/rtm/idl/BasicDataType.hh 
     /usr/include/openrtm-2.1/rtm/idl/BasicDataTypeSkel.h
     中略
     /usr/include/openrtm-2.1/rtm/idl/SharedMemoryStub.h
     /usr/include/openrtm-2.1/rtm/version.h
  • ライブラリ・その他
     /usr/lib/aarch64-linux-gnu/cmake/openrtm-2.1/OpenRTMConfig.cmake
     /usr/lib/aarch64-linux-gnu/cmake/openrtm-2.1/OpenRTMConfigVersion.cmake
     /usr/share/openrtm-2.1/py_helper/skel_wrapper.py
     /usr/share/openrtm-2.1/py_helper/yat.py

openrtm2-idl

  • idlファイルなど
     /usr/include/openrtm-2.1/rtm/idl/BasicDataType.idl
     /usr/include/openrtm-2.1/rtm/idl/CameraCommonInterface.idl
     中略
     /usr/include/openrtm-2.1/rtm/idl/SharedMemory.idl
     /usr/share/openrtm-2.1/idl/BasicDataType.idl
     /usr/share/openrtm-2.1/idl/CameraCommonInterface.idl
     中略
     /usr/share/openrtm-2.1/idl/SharedMemory.idl

openrtm2-example

openrtm-aist-exampleにはスタンドアロンRTC、ローダブルRTCそれぞれのサンプルと、サンプルRTCのソースが含まれています。

  • サンプル(スタンドアロンRTC)
     /usr/share/openrtm-2.1/components/c++/examples/CompositeComp
     /usr/share/openrtm-2.1/components/c++/examples/ConfigSampleComp
     中略
     /usr/share/openrtm-2.1/components/c++/examples/rtc.conf
  • サンプル(ローダブルRTC)
     /usr/share/openrtm-2.1/components/c++/examples/rtc/ConfigSample.so
     /usr/share/openrtm-2.1/components/c++/examples/rtc/ConsoleIn.so
     中略
     /usr/share/openrtm-2.1/components/c++/examples/rtc/Throughput.so

openrtm2-doc

openrtm-aist-docには、日本語と英語のクラスリファレンス、IDLインターフェース定義リファレンスが含まれています。

  • クラスリファレンス
     /usr/share/openrtm-2.1/doc/c++/ClassReference/html/BufferBase_8h.html
     /usr/share/openrtm-2.1/doc/c++/ClassReference/html/BufferBase_8h__dep__incl.map
     中略
     /usr/share/openrtm-2.1/doc/c++/ClassReference/html/structSDOPackage_1_1Organization__impl_1_1sdo__id.html
  • IDLリファレンス
     /usr/share/openrtm-2.1/doc/idl/IDLReference/html/BasicDataType_8idl.html
     /usr/share/openrtm-2.1/doc/idl/IDLReference/html/BasicDataType_8idl_dep_incl.map
     中略
     /usr/share/openrtm-2.1/doc/idl/IDLReference/html/unionSDOPackage_1_1Numeric.html
  • クラスリファレンス(英語)
     /usr/share/openrtm-2.1/doc/c++/ClassReference-en/html/BufferBase_8h.html
     /usr/share/openrtm-2.1/doc/c++/ClassReference-en/html/BufferBase_8h__dep__incl.map
     中略
     /usr/share/openrtm-2.1/doc/C++/ClassReference-en/html/version_8h_source.html
  • IDLリファレンス(英語)
     /usr/share/openrtm-2.1/doc/idl/IDLReference-en/html/BasicDataType_8idl.html
     /usr/share/openrtm-2.1/doc/idl/IDLReference-en/html/BasicDataType_8idl__dep__incl.map
     中略
     /usr/share/openrtm-2.1/doc/idl/IDLReference-en/html/unionSDOPackage_1_1Numeric.html

openrtm2-python3

  • コマンド
     /usr/bin/rtcd2_python3
     /usr/bin/rtcprof2_python3
  • OpenRTM-aist 本体の Python モジュール
     /usr/lib/python3/dist-packages/OpenRTM_aist/* 
  • OpenRTM-aist用Python検索パスファイル
     /usr/lib/python3/dist-packages/OpenRTM-aist.pth 
  • ユーティリティ
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/__init__.py
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtc-template/*
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtcd/*
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtcprof/*
     /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtm-naming/*

openrtm2-python3-example

 /usr/share/openrtm-2.1/components/python3/__init__.py
 /usr/share/openrtm-2.1/components/python3/component.conf
 /usr/share/openrtm-2.1/components/python3/rtcd.conf
 /usr/share/openrtm-2.1/components/python3/AutoControl/*
 /usr/share/openrtm-2.1/components/python3/AutoTest/*
 /usr/share/openrtm-2.1/components/python3/CSPSample/*
 /usr/share/openrtm-2.1/components/python3/CSPSelectSample/*
 /usr/share/openrtm-2.1/components/python3/CSPStaticFsmSample/*
 /usr/share/openrtm-2.1/components/python3/Composite/*
 /usr/share/openrtm-2.1/components/python3/ConfigSample/*
 /usr/share/openrtm-2.1/components/python3/ExtTrigger/*
 /usr/share/openrtm-2.1/components/python3/MobileRobotCanvas/*
 /usr/share/openrtm-2.1/components/python3/SeqIO/*
 /usr/share/openrtm-2.1/components/python3/Serializer/*
 /usr/share/openrtm-2.1/components/python3/SimpleIO/*
 /usr/share/openrtm-2.1/components/python3/SimpleService/*
 /usr/share/openrtm-2.1/components/python3/Slider_and_Motor/*
 /usr/share/openrtm-2.1/components/python3/Throughput/*
 /usr/share/openrtm-2.1/components/python3/TkJoyStick/
 /usr/share/openrtm-2.1/components/python3/TkLRFViewer/*

openrtm2-java

 /usr/bin/rtcd2_java
 /usr/bin/rtcprof2_java
 /usr/share/openrtm-2.1/jar/License.txt
 /usr/share/openrtm-2.1/jar/LogicalTimeTriggeredEC.jar
 /usr/share/openrtm-2.1/jar/NameserviceFile.jar
 /usr/share/openrtm-2.1/jar/OpenRTM-aist-2.1.0.jar
 /usr/share/openrtm-2.1/jar/commons-cli-1.1.jar
 /usr/share/openrtm-2.1/jar/jna-4.2.2.jar
 /usr/share/openrtm-2.1/jar/jna-platform-4.2.2.jar
 /usr/share/openrtm-2.1/jar/rtcd.jar
 /usr/share/openrtm-2.1/jar/rtcprof.jar

openrtm2-java-example

 /usr/share/openrtm-2.1/components/java/* 
 /usr/share/openrtm-2.1/components/java/RTMExamples/AutoTest/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/Composite/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/ConfigSample/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/ExtTrigger/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/Fsm/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/GUIIn/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/MyService.idl
 /usr/share/openrtm-2.1/components/java/RTMExamples/SeqIO/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/SimpleIO/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/SimpleService/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/SinCosOut/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/StaticFsm/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/Throughput/*
 /usr/share/openrtm-2.1/components/java/RTMExamples/TopicTest/*