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

Windowsへのインストール

インストール

windows10-logo.png

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

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

Visual Studio

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

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

Python

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

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

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
 dot - graphviz version 7.1.0 (20230121.1956)
 libdir = "C:\Program Files\Graphviz\bin"
 Activated plugin library: gvplugin_dot_layout.dll
 Using layout: dot:dot_layout
 Activated plugin library: gvplugin_core.dll
 Using render: dot:core
 Using device: dot:dot:core
 The plugin configuration file:
        C:\Program Files\Graphviz\bin\config6
                was successfully loaded.
    render      :  cairo dot dot_json fig gdiplus json json0 map mp pic pov ps svg tk visio vml xdot xdot_json
    layout      :  circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
    textlayout  :  textlayout
    device      :  bmp canon cmap cmapx cmapx_np dot dot_json emf emfplus eps fig gif gv imap imap_np ismap jpe jpeg jpg json json0 metafile mp pdf pic plain plain-ext png pov ps ps2 svg tif tiff tk vdx vml xdot xdot1.2 xdot1.4 xdot_json
    loadimage   :  (lib) bmp eps gif jpe jpeg jpg png ps svg

JDK8

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

OpenRTM-aistのインストール

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

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

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

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

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

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

インストール

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

Visual Studioのバージョン指定

インストールされているVisual Studioのバージョンに合わせて、システム環境変数RTM_VC_VERSIONを設定しています。 インストール後に変更する場合は、GUIツールを使って設定できます。使い方は VCVerChanger のページをご覧ください。

Visual Studioのバージョン システム環境変数RTM_VC_VERSIONの指定値
2015、2017 vc14
2019、2022 vc16 初期設定

※インストール後、Visual Studioのバージョンを変更しない場合でも、一度 VCVerChanger でシステム環境変数の設定を確認してください。不要なパスが残っていた場合はこれを削除します。

動作確認

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

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

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


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

 C:\Program Files\OpenRTM-aist\2.0.x\Components\C++\Examples
 C:\Program Files\OpenRTM-aist\2.0.x\Components\Python
 C:\Program Files\OpenRTM-aist\2.0.x\Components\Java
 C:\Program Files\OpenRTM-aist\2.0.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.0系のWindowsへのインストール をご覧ください。

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

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

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

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

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

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

CMakeオプションで以下を指定して実行します。
  • -DORB_ROOT : ダウンロード・展開したomniORBのパス
  • -G : Visual Studio のバージョン(「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-vc14-py310 -G "Visual Studio 17 2022" -DCMAKE_INSTALL_PREFIX=C:/workspace/openrtminstall ..

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

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

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

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

スクリプトでの一括処理

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

 cd OpenRTM-aist
 cxx_src_build.bat > 1.log

スクリプト実行時、「Visual Studioのバージョン」「Pythonのバージョン」「インストール先」の3項目だけ環境に合わせて指定してください。

 set CMAKE_GENERATOR="Visual Studio 16 2019"
 set PY_VERSION=39 ・・・ 37, 38, 39, 310 のいずれかを指定
 set INSTALL_PREFIX=C:\localRTM-test

cxx_src_build.bat

 @echo off
 @rem
 @rem ---------- 環境に合わせる  ここから -------
 set CMAKE_GENERATOR="Visual Studio 16 2019"
 set PY_VERSION=39
 set INSTALL_PREFIX=C:\localRTM-test
 @rem ---------- 環境に合わせる  ここまで -------
 set OMNI_VERSION=4.2.5
 set VC_VERSION=vc14
 if exist %INSTALL_PREFIX% rmdir /s/q %INSTALL_PREFIX%
 @rem
 @rem パス中の "\" を "/" に変換する
 set current_dir=%~dp0
 set RTM_ROOT=%current_dir:\=/%
 set INSTALL_PREFIX=%INSTALL_PREFIX:\=/%
 @rem
 @rem omniORB download
 set base_omni_url="https://openrtm.org/pub/omniORB/win32/omniORB-%OMNI_VERSION%/"
 set OMNIORB_DIR=omniORB-%OMNI_VERSION%-x64-%VC_VERSION%-py%PY_VERSION%
 set OMNIORB_ZIP=%OMNIORB_DIR%.zip
 set OMNIORB_URL=%base_omni_url%/%OMNIORB_ZIP%
 if not exist %OMNIORB_ZIP% (
   powershell wget -O %OMNIORB_ZIP% %OMNIORB_URL%
 )
 if exist %OMNIORB_DIR% rmdir /s/q %OMNIORB_DIR%
 powershell Expand-Archive .\%OMNIORB_ZIP% -DestinationPath .\ 
 set OMNIORB_ROOT=%RTM_ROOT%/%OMNIORB_DIR%
 @rem
 @rem set cmake parameter
 set CMAKE_OPT=-DORB_ROOT=%OMNIORB_ROOT% ^
   -DCMAKE_INSTALL_PREFIX=%INSTALL_PREFIX% ^
   -G %CMAKE_GENERATOR% ^
   -A x64 ..
 call :CMAKE_Release
 exit /b
 @rem
 :CMAKE_Release
 if exist build-release rmdir /s/q build-release
 mkdir build-release
 cd build-release
 cmake %CMAKE_OPT% 
 cmake --build . --verbose --config Release
 cmake --install .
 cd ..
 exit /b

参考:msi生成用ビルドスクリプト

msiに組み込むmsm(vc2019, 2022向け) 作成用ビルドスクリプトです。以下を利用しています。
  • Boostライブラリ 1.78.0
  • OpenSSL 3.0.1
  • Fluent Bit v1.8.9 をソースからビルド

OpenRTM-aistは Release/Debug 両ビルドをしています。omniORBのバイナリはvc14でビルドしたバイナリを使用して問題ないが、vc16用バイナリを用意して使用しています。

 @echo off
 @rem
 set CMAKE_GENERATOR="Visual Studio 16 2019"
 set VC_VERSION=vc16
 set SSL_VC_VERSION=vc14
 set PY_VERSION=39
 set INSTALL_PREFIX=C:\localRTM
 set OMNI_VERSION=4.2.5
 set SSL_VERSION=3.0.1
 set BOOST_PATH=C:\local\boost_1_78_0
 set FLB_ROOT=C:\localFLB
 @rem
 if exist %INSTALL_PREFIX% rmdir /s/q %INSTALL_PREFIX%
 @rem ------------
 @rem パス中の "\" を "/" に変換する
 set current_dir=%~dp0
 set RTM_ROOT=%current_dir:\=/%
 set BOOST_PATH=%BOOST_PATH:\=/%
 set INSTALL_PREFIX=%INSTALL_PREFIX:\=/%
 set FLB_ROOT=%FLB_ROOT:\=/%
 @rem ------------
 @rem omniORB download
 set base_omni_url="https://openrtm.org/pub/omniORB/win32/omniORB-%OMNI_VERSION%/"
 set OMNIORB_DIR=omniORB-%OMNI_VERSION%-x64-%VC_VERSION%-py%PY_VERSION%
 set OMNIORB_ZIP=%OMNIORB_DIR%.zip
 set OMNIORB_URL=%base_omni_url%/%OMNIORB_ZIP%
 if not exist %OMNIORB_ZIP% (
   powershell wget -O %OMNIORB_ZIP% %OMNIORB_URL%
 )
 if exist %OMNIORB_DIR% rmdir /s/q %OMNIORB_DIR%
 powershell Expand-Archive .\%OMNIORB_ZIP% -DestinationPath .\
 set OMNIORB_ROOT=%RTM_ROOT%/%OMNIORB_DIR%
 @rem ------------
 @rem OpenSSL download
 set base_ssl_url="https://openrtm.org/pub/OpenSSL/%SSL_VERSION%"
 set OPENSSL_ZIP=openssl-%SSL_VERSION%-win64-%SSL_VC_VERSION%.zip
 set OPENSSL_URL=%base_ssl_url%/%OPENSSL_ZIP%
 if not exist %OPENSSL_ZIP% (
   powershell wget -O %OPENSSL_ZIP% %OPENSSL_URL%
 )
 if exist OpenSSL rmdir /s/q OpenSSL
 powershell Expand-Archive .\%OPENSSL_ZIP% -DestinationPath .\
 set SSL_ROOT=%RTM_ROOT%OpenSSL/build
 @rem ------------
 @rem set cmake parameter
 set CMAKE_OPT=-DRTM_VC_VER=%VC_VERSION% ^
   -DORB_ROOT=%OMNIORB_ROOT% ^
   -DCORBA=omniORB ^
   -DSSL_ENABLE=ON ^
   -DOPENSSL_ROOT=%SSL_ROOT% ^
   -DCMAKE_INSTALL_PREFIX=%INSTALL_PREFIX% ^
   -DWINDOWS_MSM_BUILD=ON ^
   -DBOOST_ROOT=%BOOST_PATH% ^
   -DFLUENTBIT_ENABLE=ON ^
   -DFLUENTBIT_ROOT=%FLB_ROOT% ^
   -G %CMAKE_GENERATOR% ^
   -A x64 ..
 call :CMAKE_Debug
 call :CMAKE_Release
 exit /b
 @rem ------------
 :CMAKE_Release
 if exist build-release rmdir /s/q build-release
 mkdir build-release
 cd build-release
 cmake %CMAKE_OPT% 
 cmake --build . --verbose --config Release
 cmake --install .
 cd ..
 exit /b
 @rem ------------
 :CMAKE_Debug
 if exist build-debug rmdir /s/q build-debug
 mkdir build-debug
 cd build-debug
 cmake %CMAKE_OPT%
 cmake --build . --verbose --config Debug
 cmake --install . --config Debug
 cd ..
 exit /b

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


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

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

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

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

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

 <install_dir>
   + OpenRTM-aist
      + 1.x.x  :旧バージョンのランタイム
      + 2.0.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.2.5
         + OpenCV 4.4
         + 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.0 は現在、Ubuntu 18.04, 20.04 (各amd64, arm64)に対応しています。 Ubuntu/Debian GNU Linuxへのサポートバージョンや対応の有無は、予告なしに変更されることがありますので、あらかじめご了承ください。

2.0系での変更点

C++と OpenRTP は 1.2系と2.0系の共存が可能となりました。 この対応で、インストールに関しては下記が変更となっています。

  • 2.0系のdebパッケージ名を変更しました
  • Python と Java は1.2系と2.0系の共存はできません
    • 一括インストールスクリプトを使用すれば、インストール済みの異なるバージョンを自動でアンインストールします
  • 1.2系と2.0系の一括インストールスクリプトを分けました
    • 1.2系のインストール : pkg_install_ubuntu.sh
    • 2.0系のインストール : openrtm2_install_ubuntu.sh

また、インストールスクリプト(1.2系、2.0系どちらも)は、ダウンロードからインストールまでの一括処理に対応しました。

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

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:amd64                          2.0.0-0                  amd64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-dev:amd64                    2.0.0-0                  amd64        OpenRTM-aist headers for development
 ii  openrtm2-doc                               2.0.0-0                  all               Documentation for openrtm2
 ii  openrtm2-example:amd64             2.0.0-0                  amd64        OpenRTM-aist examples
 ii  openrtm2-idl:amd64                      2.0.0-0                  amd64        OpenRTM-aist idls for development
 ii  openrtm2-java:amd64                   2.0.0-0                  amd64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-java-doc                        2.0.0-0                  all               Documentation for openrtm2-java
 ii  openrtm2-java-example:amd64      2.0.0-0                  amd64        OpenRTM-aist-Java examples
 ii  openrtm2-python3                         2.0.0-0                  amd64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-python3-doc                   2.0.0-0                  all               Documentation for openrtm2-python3
 ii  openrtm2-python3-example            2.0.0-0                  amd64        OpenRTM-aist-Python examples
 ii  openrtp2:amd64                            2.0.0-0                  amd64        OpenRTP, Open RT Platform distributed by AIST

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

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

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

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

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

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

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

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

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

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

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

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

1.2系インストール環境への2.0系インストール

1.2系のインストールスクリプトも、URL指定で実行可能となっています。スクリプトをオプション無しで全パッケージインストールします。

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

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

 $ dpkg -l | grep openrt
 ii  openrtm-aist:amd64                         1.2.2-0
 ii  openrtm-aist-dev:amd64                   1.2.2-0
 ii  openrtm-aist-doc                              1.2.2-0
 ii  openrtm-aist-example:amd64            1.2.2-0
 ii  openrtm-aist-idl:amd64                     1.2.2-0
 ii  openrtm-aist-java:amd64                  1.2.2-0
 ii  openrtm-aist-java-doc                       1.2.2-0
 ii  openrtm-aist-java-example:amd64     1.2.2-0
 ii  openrtm-aist-python3                        1.2.2-0
 ii  openrtm-aist-python3-doc                  1.2.2-0
 ii  openrtm-aist-python3-example           1.2.2-0
 ii  openrtp:amd64                                  1.2.2-4

続けて2.0系をインストールすると、c++とopenrtpは1.2系、2.0系が共存しますが、javaとpythonは2.0系のみがインストールされている状態になります。

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

スクリプト実行中、1.2系のjavaとpythonパッケージのアンインストールについて、「Do you want to continue? [Y/n] 」と聞かれますので、Enterキーを押してください。
インストールされたパッケージを確認します。

 $ dpkg -l | grep openrt
 ii  openrtm-aist:amd64                         1.2.2-0
 ii  openrtm-aist-dev:amd64                   1.2.2-0
 ii  openrtm-aist-doc                              1.2.2-0
 ii  openrtm-aist-example:amd64            1.2.2-0
 ii  openrtm-aist-idl:amd64                     1.2.2-0
 ii  openrtm2:amd64                              2.0.0-0
 ii  openrtm2-dev:amd64                        2.0.0-0
 ii  openrtm2-doc                                   2.0.0-0
 ii  openrtm2-example:amd64                 2.0.0-0
 ii  openrtm2-idl:amd64                          2.0.0-0
 ii  openrtm2-java:amd64                        2.0.0-0
 ii  openrtm2-java-doc                             2.0.0-0
 ii  openrtm2-java-example:amd64           2.0.0-0
 ii  openrtm2-python3                              2.0.0-0
 ii  openrtm2-python3-doc                       2.0.0-0
 ii  openrtm2-python3-example                2.0.0-0
 ii  openrtp:amd64                                  1.2.2-4
 ii  openrtp2:amd64                                2.0.0-0

これに伴い、rtshellもインストールし直されます。

 $ pip3 list | grep aist
 OpenRTM-aist-Python    2.0.0
 rtctree-aist           4.2.3
 rtshell-aist           4.2.9
 rtsprofile-aist        4.1.5

2.0系インストール環境への1.2系インストール

c++とopenrtpは1.2系、2.0系が共存しますが、javaとpythonは1.2系のみがインストールされている状態になります。

 $ dpkg -l | grep openrt
 ii  openrtm-aist:amd64                        1.2.2-0
 ii  openrtm-aist-dev:amd64                 1.2.2-0
 ii  openrtm-aist-doc                             1.2.2-0
 ii  openrtm-aist-example:amd64           1.2.2-0
 ii  openrtm-aist-idl:amd64                    1.2.2-0
 ii  openrtm-aist-java:amd64                 1.2.2-0
 ii  openrtm-aist-java-doc                      1.2.2-0
 ii  openrtm-aist-java-example:amd64    1.2.2-0
 ii  openrtm-aist-python3                       1.2.2-0
 ii  openrtm-aist-python3-doc                 1.2.2-0
 ii  openrtm-aist-python3-example          1.2.2-0
 ii  openrtm2:amd64                             2.0.0-0
 ii  openrtm2-dev:amd64                       2.0.0-0
 ii  openrtm2-doc                                  2.0.0-0
 ii  openrtm2-example:amd64                2.0.0-0
 ii  openrtm2-idl:amd64                         2.0.0-0
 ii  openrtp:amd64                                1.2.2-4
 ii  openrtp2:amd64                             2.0.0-0

rtshellも OpenRTM-aist-Python1.2.2 に対してインストールし直されます。

 $ pip3 list | grep aist
 OpenRTM-aist-Python    1.2.2
 rtctree-aist           4.2.3
 rtshell-aist           4.2.9
 rtsprofile-aist        4.1.5

動作確認

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

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

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

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

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

 $ openrtp2

OpenRTM-aist 1.2系では openrtp コマンドで起動します。コマンド名は異なりますが、起動手順、使い方は 1.2系と変更ありませんので、詳細は以下のページをご覧ください。

※OpenRTPは1.2系と2.0系の共存が可能です。このため、openrtp と openrtp2 の両方を実行することは可能です。

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

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.0.0_amd64.deb が生成されますのでインストールします。

 sudo dpkg -i imageprocessing_2.0.0_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)がインストールされていますので、実行してみてください。

1.2系と2.0系が共存している環境でのCMake時の注意点

C++のサンプルコンポーネントは、概ねCMakeでビルドできるように再生成しました。
ここでは ConsoleIn を例にとって説明します。

1.2系と2.0系の共存環境では、OpenRTMConfig.cmake が下記の2か所にインストールされています。このため、先に見つけたOpenRTMConfig.cmakeが使用されます。

 /usr/lib/x86_64-linux-gnu/openrtm-2.0/cmake/OpenRTMConfig.cmake
 /usr/lib/x86_64-linux-gnu/openrtm-1.2/cmake/OpenRTMConfig.cmake

この環境で、ConsoleIn のcmakeを実行してみます。

 git clone https://github.com/OpenRTM/OpenRTM-aist
 cd OpenRTM-aist/examples/ConsoleIn/
 mkdir build
 cd build
 cmake ..
      :
 -- OpenRTMConfig.cmake 2.0.0 found.

2.0系の OpenRTMConfig.cmake では、バージョン番号を出力するようにしました。 1.2系ではバージョン番号は出力されません。
1.2系でビルドしたい場合は、cmakeのオプションで、OpenRTM_DIRを次のように指定します。

 cmake -DOpenRTM_DIR=/usr/lib/x86_64-linux-gnu/openrtm-1.2/cmake ..
    :
 -- OpenRTMConfig.cmake found.

ソースからのビルド

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

Dockerでのビルド

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

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

 sudo apt install docker.io

  • 参考:docker.io パッケージの提供が無い場合のインストール
    • 手動で、DockerのGPGキーを取得して、リポジトリ情報を書き込んで、docker-ceをインストールする流れになります
    • QEMU上にubuntu-20.04-server-cloudimg-arm64.imgで aarch64 環境を構築した時は、以下の手順でインストールしました
       sudo apt install apt-transport-https ca-certificates curl software-properties-common
       curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
       sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" 
       sudo apt update
       sudo apt install docker-ce

C++ソースのビルド

OpenRTM-aist 2.0系のソースには、Ubuntu18.04、20.04、22.04用のDockerfileが含まれています。

 OpenRTM-aist/scripts/ubuntu_1804/Dockerfile
 OpenRTM-aist/scripts/ubuntu_2004/Dockerfile
 OpenRTM-aist/scripts/ubuntu_2204/Dockerfile

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

 git clone https://github.com/OpenRTM/OpenRTM-aist
 sudo docker build -t test -f OpenRTM-aist/scripts/ubuntu_2004/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行目は、Ubuntu18.04用、20.04用、22.04用でそれぞれの以下のようになっており、Dockerハブにアップロードされているこの名前のイメージを使用します。

 FROM openrtm/devel-rtm:ubuntu18.04
 FROM openrtm/devel-rtm:ubuntu20.04
 FROM openrtm/devel-rtm:ubuntu22.04

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

 OpenRTM-aist/scripts/ubuntu_1804/Dockerfile.devel-rtm
 OpenRTM-aist/scripts/ubuntu_2004/Dockerfile.devel-rtm
 OpenRTM-aist/scripts/ubuntu_2204/Dockerfile.devel-rtm

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

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

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

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

 git clone https://github.com/n-kawauchi/RTM-src-pkgs-docker-build
 cd RTM-src-pkgs-docker-build/ubuntu_2004/
 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イメージを使用しているので、ROS向けのパッケージ(openrtm2-ros*-tp)も生成されます。

 ls cxx-deb-pkgs/
 openrtm2-dev_2.0.0-0_amd64.deb         openrtm2-ros-tp_2.0.0-0_amd64.deb     openrtm2_2.0.0-0_amd64.buildinfo
 openrtm2-doc_2.0.0-0_all.deb                openrtm2-ros2-tp_2.0.0-0_amd64.deb   openrtm2_2.0.0-0_amd64.changes
 openrtm2-example_2.0.0-0_amd64.deb  openrtm2_2.0.0-0.dsc                            openrtm2_2.0.0-0_amd64.deb
 openrtm2-idl_2.0.0-0_amd64.deb           openrtm2_2.0.0-0.tar.gz

(※)このスクリプトを 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コンテナからホスト側へコピーする処理までを一括で行うスクリプトを紹介します。

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

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

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

 ls python-deb-pkgs/
 openrtm2-python3-doc_2.0.0-0_all.deb 
 openrtm2-python3-example_2.0.0-0_amd64.deb  openrtm2-python3_2.0.0-0_amd64.changes
 openrtm2-python3_2.0.0-0.dsc                           openrtm2-python3_2.0.0-0_amd64.deb

 ls python-src-pkgs/
 OpenRTM-aist-Python-2.0.0.tar.gz  OpenRTM-aist-Python-2.0.0.zip  

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コンテナからホスト側へコピーする処理までを一括で行うスクリプトを紹介します。

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

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

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

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

 ls java-src-pkgs/
 OpenRTM-aist-Java-2.0.0-jar.zip  OpenRTM-aist-Java-2.0.0.zip
 OpenRTM-aist-Java-2.0.0.tar.gz  
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.0 debパッケージの詳しい内容

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

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

openrtm2

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

  • コマンド
     /usr/bin/rtcd2
     /usr/bin/rtcprof2
     /usr/bin/rtm2-config
     /usr/bin/rtm2-naming
  • 設定ファイルサンプル
     /usr/etc/logger/rtc.fluentbit_stream.conf
     /usr/etc/rtc.conf.sample2
     /usr/etc/rtc.names.ssl.conf
     /usr/etc/ssl/rtc.ssl.conf
     /usr/lib/x86_64-linux-gnu/pkgconfig/openrtm2.pc
  • ライブラリなど
     /usr/lib/x86_64-linux-gnu/libRTC2.a
     /usr/lib/x86_64-linux-gnu/libRTC2.so.2.0.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.0/ec/LogicalTimeTriggeredEC.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/local_service/FileNameservice.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/logger/FluentBit.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/sdo/ComponentObserverConsumer.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/sdo/ExtendedFsmServiceProvider.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/sdo/LoggerConsumer.so
     /usr/lib/x86_64-linux-gnu/openrtm-2.0/ssl/SSLTransport.so

openrtm2-dev

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

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

openrtm2-example

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

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

openrtm2-ros-tp

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

 /usr/lib/x86_64-linux-gnu/openrtm-2.0/transport/ROSTransport.so

openrtm2-ros2-tp

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

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

openrtm2-doc

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

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

openrtm2-idl

  • idlファイルなど
     /etc/profile.d/openrtm2-idl.sh
     /usr/include/openrtm-2.0/rtm/idl/BasicDataType.idl
     /usr/include/openrtm-2.0/rtm/idl/CameraCommonInterface.idl
     中略
     /usr/include/openrtm-2.0/rtm/idl/SharedMemory.idl
     /usr/share/openrtm-2.0/idl/BasicDataType.idl
     /usr/share/openrtm-2.0/idl/CameraCommonInterface.idl
     中略
     /usr/share/openrtm-2.0/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.0/components/python3/__init__.py
 /usr/share/openrtm-2.0/components/python3/component.conf
 /usr/share/openrtm-2.0/components/python3/rtcd.conf
 /usr/share/openrtm-2.0/components/python3/AutoControl/*
 /usr/share/openrtm-2.0/components/python3/AutoTest/*
 /usr/share/openrtm-2.0/components/python3/CSPSample/*
 /usr/share/openrtm-2.0/components/python3/CSPSelectSample/*
 /usr/share/openrtm-2.0/components/python3/CSPStaticFsmSample/*
 /usr/share/openrtm-2.0/components/python3/Composite/*
 /usr/share/openrtm-2.0/components/python3/ConfigSample/*
 /usr/share/openrtm-2.0/components/python3/ExtTrigger/*
 /usr/share/openrtm-2.0/components/python3/MobileRobotCanvas/*
 /usr/share/openrtm-2.0/components/python3/SeqIO/*
 /usr/share/openrtm-2.0/components/python3/Serializer/*
 /usr/share/openrtm-2.0/components/python3/SimpleIO/*
 /usr/share/openrtm-2.0/components/python3/SimpleService/*
 /usr/share/openrtm-2.0/components/python3/Slider_and_Motor/*
 /usr/share/openrtm-2.0/components/python3/Throughput/*
 /usr/share/openrtm-2.0/components/python3/TkJoyStick/
 /usr/share/openrtm-2.0/components/python3/TkLRFViewer/*

openrtm2-python3-doc

英語・日本語のクラスリファレンスをインストールします。

  • クラスリファレンス
     /usr/share/openrtm-2.0/doc/python3/ClassReference-en/html/_async_8py.html
     /usr/share/openrtm-2.0/doc/python3/ClassReference-en/html/_buffer_base_8py.html
     中略
     /usr/share/openrtm-2.0/doc/python3/ClassReference-jp/html/_async_8py.html
     /usr/share/openrtm-2.0/doc/python3/ClassReference-jp/html/_buffer_base_8py.html
     /usr/share/openrtm-2.0/doc/python3/ClassReference-jp/html/_buffer_status_8py.html
     以下略

openrtm2-java

 /etc/profile.d/openrtm-java.sh
 /usr/bin/rtcd2_java
 /usr/bin/rtcprof2_java
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/License.txt
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/LogicalTimeTriggeredEC.jar
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/NameserviceFile.jar
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/OpenRTM-aist-2.0.0.jar
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/commons-cli-1.1.jar
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/jna-4.2.2.jar
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/jna-platform-4.2.2.jar
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/rtcd.jar
 /usr/lib/x86_64-linux-gnu/openrtm-2.0/jar/rtcprof.jar

openrtm2-java-example

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

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

openrtm2-java-doc

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

 /usr/share/openrtm-2.0/doc/java/JavaDoc/OpenRTM/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/OpenRTM/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/RTC/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/RTC/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/RTM/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/RTM/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/_SDOPackage/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/_SDOPackage/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/Constants.html
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/buffer/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/buffer/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/executionContext/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/executionContext/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/log/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/publisher/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/port/publisher/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/clock/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/RTC/util/clock/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/Version.html
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/class-use
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/jp/go/aist/rtm/*
 /usr/share/openrtm-2.0/doc/java/JavaDoc/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/OpenRTM/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/OpenRTM/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/RTC/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/RTC/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/RTM/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/RTM/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/_SDOPackage/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/_SDOPackage/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/index-files/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/Constants.html
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/buffer/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/buffer/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/executionContext/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/executionContext/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/log/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/log/class-use/Logbuf.html
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/publisher/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/port/publisher/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/clock/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/RTC/util/clock/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/jp/go/aist/rtm/class-use/*
 /usr/share/openrtm-2.0/doc/java/JavaDocEn/*

openrtp2

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

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

Raspberry Pi OSへのインストール

対応バージョン

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

  • Buster (32bit)
  • Bullseye (32bit / 64bit)

です。

SDカードの準備

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

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

2.0系での変更点

C++ は 1.2系と2.0系の共存が可能となりました。 ただし、1.2系は Buster(32bit) のみインストール可能です。
この対応で、インストールに関しては下記が変更となっています。

  • 2.0系のdebパッケージ名を変更しました
  • Python と Java は1.2系と2.0系の共存はできません
    • 一括インストールスクリプトを使用すれば、インストール済みの異なるバージョンを自動でアンインストールします
  • 1.2系と2.0系の一括インストールスクリプトを分けました
    • 1.2系のインストール : pkg_install_raspbian.sh
    • 2.0系のインストール : openrtm2_install_raspbian.sh

また、インストールスクリプト(1.2系、2.0系どちらも)は、ダウンロードからインストールまでの一括処理に対応しました。

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

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

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

この実行により以下のパッケージがインストールされます。(32bit版の場合)

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

 $ pip3 list | grep aist
 OpenRTM-aist-Python 2.0.1
 rtctree-aist        4.2.3
 rtshell-aist         4.2.9
 rtsprofile-aist     4.1.5

パッケージの詳細

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

openrtm2

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

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

openrtm2-dev

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

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

openrtm2-idl

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

openrtm2-example

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

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

openrtm2-doc

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

  • クラスリファレンス
     /usr/share/openrtm-2.0/doc/c++/ClassReference/html/BufferBase_8h.html
     /usr/share/openrtm-2.0/doc/c++/ClassReference/html/BufferBase_8h__dep__incl.map
     中略
     /usr/share/openrtm-2.0/doc/c++/ClassReference/html/structSDOPackage_1_1Organization__impl_1_1sdo__id.html
  • IDLリファレンス
     /usr/share/openrtm-2.0/doc/idl/IDLReference/html/BasicDataType_8idl.html
     /usr/share/openrtm-2.0/doc/idl/IDLReference/html/BasicDataType_8idl_dep_incl.map
     中略
     /usr/share/openrtm-2.0/doc/idl/IDLReference/html/unionSDOPackage_1_1Numeric.html
  • クラスリファレンス(英語)
     /usr/share/openrtm-2.0/doc/c++/ClassReference-en/html/BufferBase_8h.html
     /usr/share/openrtm-2.0/doc/c++/ClassReference-en/html/BufferBase_8h__dep__incl.map
     中略
     /usr/share/openrtm-2.0/doc/C++/ClassReference-en/html/version_8h_source.html
  • IDLリファレンス(英語)
     /usr/share/openrtm-2.0/doc/idl/IDLReference-en/html/BasicDataType_8idl.html
     /usr/share/openrtm-2.0/doc/idl/IDLReference-en/html/BasicDataType_8idl__dep__incl.map
     中略
     /usr/share/openrtm-2.0/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.0/components/python3/__init__.py
 /usr/share/openrtm-2.0/components/python3/component.conf
 /usr/share/openrtm-2.0/components/python3/rtcd.conf
 /usr/share/openrtm-2.0/components/python3/AutoControl/*
 /usr/share/openrtm-2.0/components/python3/AutoTest/*
 /usr/share/openrtm-2.0/components/python3/CSPSample/*
 /usr/share/openrtm-2.0/components/python3/CSPSelectSample/*
 /usr/share/openrtm-2.0/components/python3/CSPStaticFsmSample/*
 /usr/share/openrtm-2.0/components/python3/Composite/*
 /usr/share/openrtm-2.0/components/python3/ConfigSample/*
 /usr/share/openrtm-2.0/components/python3/ExtTrigger/*
 /usr/share/openrtm-2.0/components/python3/MobileRobotCanvas/*
 /usr/share/openrtm-2.0/components/python3/SeqIO/*
 /usr/share/openrtm-2.0/components/python3/Serializer/*
 /usr/share/openrtm-2.0/components/python3/SimpleIO/*
 /usr/share/openrtm-2.0/components/python3/SimpleService/*
 /usr/share/openrtm-2.0/components/python3/Slider_and_Motor/*
 /usr/share/openrtm-2.0/components/python3/Throughput/*
 /usr/share/openrtm-2.0/components/python3/TkJoyStick/
 /usr/share/openrtm-2.0/components/python3/TkLRFViewer/*

openrtm2-python3-doc

英語・日本語のクラスリファレンスをインストールします。

  • クラスリファレンス
     /usr/share/openrtm-2.0/doc/python3/ClassReference-en/html/_async_8py.html
     /usr/share/openrtm-2.0/doc/python3/ClassReference-en/html/_buffer_base_8py.html
     中略
     /usr/share/openrtm-2.0/doc/python3/ClassReference-jp/html/_async_8py.html
     /usr/share/openrtm-2.0/doc/python3/ClassReference-jp/html/_buffer_base_8py.html
     /usr/share/openrtm-2.0/doc/python3/ClassReference-jp/html/_buffer_status_8py.html
     以下略

openrtm2-java

 /etc/profile.d/openrtm-java.sh
 /usr/bin/rtcd2_java
 /usr/bin/rtcprof2_java
 /usr/lib/arm-linux-gnueabihf/openrtm-2.0/jar/License.txt
 /usr/lib/arm-linux-gnueabihf/openrtm-2.0/jar/LogicalTimeTriggeredEC.jar
 /usr/lib/arm-linux-gnueabihf/openrtm-2.0/jar/NameserviceFile.jar
 /usr/lib/arm-linux-gnueabihf/openrtm-2.0/jar/OpenRTM-aist-2.0.1.jar
 /usr/lib/arm-linux-gnueabihf/openrtm-2.0/jar/commons-cli-1.1.jar
 /usr/lib/arm-linux-gnueabihf/openrtm-2.0/jar/jna-4.2.2.jar
 /usr/lib/arm-linux-gnueabihf/openrtm-2.0/jar/jna-platform-4.2.2.jar
 /usr/lib/arm-linux-gnueabihf/openrtm-2.0/jar/rtcd.jar
 /usr/lib/arm-linux-gnueabihf/openrtm-2.0/jar/rtcprof.jar

openrtm2-java-example

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

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