OpenRTM-aistを利用するには、Python、CMake、Doxygen、Visual Studio等のソフトウェアのインストールが必要です。
C++版の開発だけでなく、Python版、Java版のRTCを作成した際に、インストーラをビルドするのにも必要です。 以下のCommunity版(無料)をインストールするか、別途Visual Studio 2015/2017/2019/2022を入手してインストールしてください。
現在動作確認できているVisual Studioの最新バージョンは2022です。PythonはPython言語版のRTCの開発だけでなく、OpenRTM-aistの様々なツールでも使用していますので必ずインストールする必要があります。 OpenRTM-aistがサポートしているPythonは 3.7, 3.8, 3.9, 3.10, 3.11 です。 最新版をインストールすることをお勧めします。
インストールする際以下の点に注意してください。CMakeはWindowsやLinux等様々な環境でビルドに必要なファイル(Visual Studioのプロジェクトファイル、Linux上のMakefile等)を自動生成するために必要です。
できるだけ最新版をインストールしてください。
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
上記のソフトウェアのインストールが完了したら、OpenRTM-aistのインストールを行います。
OpenRTM-aistのWindows版のインストーラ(msi形式)をダウンロードします。
OpenRTM-aist-2.0.1-RELEASE_x86_64.msi | MD5:057354e97e6dd531801a9ae435ed2abe | 771MB |
このインストーラには、以下の内容が含まれています。
インストールされている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:\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
付属しているサンプルコンポーネントの簡単な説明と、使い方を解説しているページへのリンクを以下に示します。
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 |
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 |
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 |
batファイル名 | サンプルコンポーネントの簡単な説明 | 使い方解説ページ |
GUIIn.bat | スライダーの位置をOutportから出力するGUIのサンプルを起動します。ConsoleOutComp.classと接続することもできます。 | GUIIn |
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次元移動処理をします。 |
OpenRTM-aist本体に改修を加えてWindows上で利用したい場合は、OpenRTM-aistのソースコードを取得してビルドできます。 2.0系からはCMakeに対応しましたので、1.2系までの手順とは異なっています。
以下のソフトウエアが必要です。詳細は OpenRTM-aist 2.0系のWindowsへのインストール をご覧ください。
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
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
@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
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
インストーラーは以下の作業内容に従ってファイルのコピー、システム設定を行います。 インストール、アンインストールが正しく行われているかの確認する際の参考のために以下に記しておきます。
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\
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のバージョンを指定するツール
OpenRTM-aistは、UbuntuやDebian GNU Linuxにおいて利用可能なdebパッケージが提供されています。
2.0 は現在、Ubuntu 18.04, 20.04 (各amd64, arm64)に対応しています。 Ubuntu/Debian GNU Linuxへのサポートバージョンや対応の有無は、予告なしに変更されることがありますので、あらかじめご了承ください。
C++と OpenRTP は 1.2系と2.0系の共存が可能となりました。 この対応で、インストールに関しては下記が変更となっています。
また、インストールスクリプト(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パッケージの詳しい内容 」で確認できます。
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系のインストールスクリプトも、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
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を起動します。
$ openrtp2
※OpenRTPは1.2系と2.0系の共存が可能です。このため、openrtp と openrtp2 の両方を実行することは可能です。
付属のサンプルコンポーネントについては、以下のページでWindows版の一覧を記載しています。コンポーネントの動作についてはWindows版・Linux版に違いはございません。 Linux環境でのサンプルコンポーネントの実行手順について、もう少し詳しく知りたい場合は、以下の1.2系の解説ページをご覧ください。コンポーネントのパスを読み替えていただければ実行手順は2.0系も同じです。OpenCVのC++サンプルコンポーネントはインストール用debパッケージを提供しておりません。ソースからdebパッケージを生成するスクリプトを提供しておりますのでビルド・インストールしてください。
バージョン4.5.4のOpenCV本体と拡張モジュール群(opencv_contrib)を合わせてビルド・インストールする例です。
$ 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
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
ソースの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)がインストールされていますので、実行してみてください。
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のソースコードを取得してビルドできます。
Dockerfileを使い、OpenRTM-aistソースビルドに必要な最小限のライブラリだけをインストールした環境でビルドを行う手順を紹介します。
docker build コマンドで Dockerイメージを生成するのですが、毎回まっさらな環境でビルドできるのでお勧めです。
初めてDockerを使う場合は、以下のようにインストールしてください。Ubuntuのデスクトップ環境であれば docker.io パッケージが提供されていると思います。
sudo apt install docker.io
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
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)
ソースビルドで使用した 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
OpenRTM-aist/scripts/ubuntu_1804/Dockerfile.devel-rtm OpenRTM-aist/scripts/ubuntu_2004/Dockerfile.devel-rtm OpenRTM-aist/scripts/ubuntu_2204/Dockerfile.devel-rtm
ここで紹介するスクリプトは、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 <-- コメントアウト
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 - #-------- コメントアウト ここまで
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 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 - #-------- コメントアウト ここまで
各パッケージの内容は以下の通りです。
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には、開発に必要なコマンド群とヘッダが含まれています。
/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 にはスタンドアロン 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
/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
ROS通信機能ライブラリがインストールされます。
/usr/lib/x86_64-linux-gnu/openrtm-2.0/transport/ROSTransport.so
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 には、日本語と英語のクラスリファレンス、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
/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
/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
/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
/usr/bin/rtcd2_python3 /usr/bin/rtcprof2_python3
/usr/lib/python3/dist-packages/OpenRTM_aist/*
/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/*
/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/*
英語・日本語のクラスリファレンスをインストールします。
/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 以下略
/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
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 には、日本語と英語のクラスリファレンスが含まれています。
/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/*
openrtpでは大量のファイルがインストールされるため、ここではリストしません。必要に応じて
$ dpkg -L openrtp2
現在パッケージが用意されている Raspberry Pi OS のバージョンは
です。
OSイメージの書き込みは、公式サイトでダウンロードできるツール、Raspberry Pi Imager を使うのが便利です。
https://www.raspberrypi.com/software/
C++ は 1.2系と2.0系の共存が可能となりました。 ただし、1.2系は Buster(32bit) のみインストール可能です。
この対応で、インストールに関しては下記が変更となっています。
また、インストールスクリプト(1.2系、2.0系どちらも)は、ダウンロードからインストールまでの一括処理に対応しました。
$ 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
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
開発に必要なコマンド群とヘッダが含まれています。
/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
/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
openrtm-aist-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
/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
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
/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
/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
/usr/bin/rtcd2_python3 /usr/bin/rtcprof2_python3
/usr/lib/python3/dist-packages/OpenRTM_aist/*
/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/*
/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/*
英語・日本語のクラスリファレンスをインストールします。
/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 以下略
/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
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/*