choreonoid openrtmプラグインの利用方法
#contents Choreonoidはオープンソースのロボット用シミュレーションソフトウェアです。 拡張性が高く、物理エンジン、通信機能、スクリプティング機能、制御アルゴリズム等をC++プラグインとして追加できます。
Choreonoid用OpenRTMプラグインはChoreonoid上でRTCを起動し、シミュレータ上のオブジェクトのトルクや速度、ビジョンセンサやレーザーレンジセンサ等の入出力をポートの入出力と関連付けたRTCを作成できます。 これにより外部のRTCとChoreonoidの入出力が連携し、RTCの再利用によるシミュレータ実行の効率化、シミュレータ環境から実機環境へシームレスに移行できます。
このページではOpenRTMプラグインのインストール手順について説明します。
ビルド手順
OpenRTMプラグインは現在OpenRTM-aist 1.2.2以前のバージョンのサポートを終了しています。 OpenRTM-aist 2.0.0以上のバージョンのインストールが必要です。
Windows
OpenRTM-aistのビルドとインストール
OpenRTM-aist+omniORBを以下の手順でビルド、インストールしてください。 ※インストーラーでOpenRTM-aistをインストールしている場合は不要。
ただし、CMake実行時にOpenRTM-aistのインストールフォルダは指定してそこにインストールするようにしてください。
set OPENRTM_INSTALL_DIR=C:/work/openrtm_install
set OMNIORB_SOURCE_DIR=C:/workspace/omniORB-4.2.5-x64-vc14-py310
cmake .. -DORB_ROOT=%OMNIORB_SOURCE_DIR% -DCMAKE_INSTALL_PREFIX=%OPENRTM_INSTALL_DIR%
cmake --build . --config Release
cmake --build . --config Release --target install
またOpenSSLのヘッダーファイル、ライブラリを適当な場所に展開してください。
- https://openrtm.org/pub/OpenSSL/1.1.0/
Choreonoidのビルドとインストール
Choreonoidを以下の手順でビルド、インストールしてください。
CMake、Boost、Qtのバージョンには注意してください。
- CMakeのバージョンが古い場合、Boostをライブラリを検出できない場合があります。できるだけ最新版をインストールしてください。
- Boostはデフォルトの設定でC:\local\boost_177_0**のようなフォルダにインストールされますが、CMakeは**C:\local\boost{バージョン番号}からBoostを探すため、古いバージョンがすでに*C:\local*以下にインストールされている場合にそちらを検出する事があるので注意してください。
OpenRTMプラグインの使用のためにはCORBAプラグインのビルドに、ヘッダーファイルなどの各種ファイルをインストールが必要です。 また、OpenRTM Pythonプラグインの使用のためにはPythonプラグインのビルドが必要です。
| 設定項目 | 内容 | 設定例 |
|---|---|---|
| ENABLE_CORBA | CORBA通信機能の有効化、無効化 | ON |
| BUILD_CORBA_PLUGIN | CORBAプラグインのビルドの有無 | ON |
| CHOREONOID_OMNIORB_DIR | omniORBのインストールフォルダのパス | **'C:/work/openrtm_install/2.0.0/omniORB/4.2.5_vc16**' |
| INSTALL_SDK | ヘッダーファイルなどの各種ファイルをインストールするか | ON |
| ENABLE_PYTHON | Pythonスクリプティング機能、およびPythonプラグインのビルドの有無 | ON |
| CMAKE_INSTALL_PREFIX | Choreonoidのインストールフォルダ | **'C:/work/choreonoid_install**' |
CHOREONOID_OMNIORB_DIRについては環境変数OMNI_ROOTを設定していると自動でomniORBを検出しますが、Choreonoidが生成するCMakeコンフィグファイルの問題でOpenRTMプラグインのビルドでエラーが発生することがあるので必ず手動でパスを設定してください。 またPythonプラグインのビルドのため、Pythonをインストールしてください。
コマンドでは以下のように入力できます。
set CHOREONOID_INSTALL_DIR=C:/work/choreonoid_install
Invoke-WebRequest -Uri https://github.com/choreonoid/choreonoid/archive/refs/tags/v1.7.0.zip -OutFile choreonoid-1.7.0.zip
Expand-Archive -Path choreonoid-1.7.0.zip -DestinationPath .
Rename-Item choreonoid-1.7.0 choreonoid
cd choreonoid
mkdir build
cd build
cmake .. -DENABLE_CORBA=ON -DBUILD_CORBA_PLUGIN=ON -DINSTALL_SDK=ON -DCHOREONOID_OMNIORB_DIR=%OPENRTM_INSTALL_DIR%/2.0.0/omniORB/4.2.5_vc16 -DENABLE_PYTHON=ON -DCMAKE_INSTALL_PREFIX=%CHOREONOID_INSTALL_DIR%
cmake --build . --config Release
cmake --build . --config Release --target install
※choreonoidのリポジトリのmasterブランチのソースコードに不具合があり、WindowsでのCorbaPluginのビルドでエラーが発生します。masterブランチのソースコードを使う場合、src/CorbaPlugin/CorbaPlugin.cppの以下の部分を修正してください。
nameServerProcess.start(QString("\"") + command.c_str() + "\""); //修正前
nameServerProcess.start(QString("\"") + command.c_str() + "\"", QStringList()); //修正後
※OpenRTM-aistをインストーラーでインストールした場合はCHOREONOID_OMNIORB_DIRオプションの設定は不要です。
OpenRTMプラグインのビルドとインストール
OpenRTMプラグインのソースコードは以下から入手できます。
Choreonoidと同様、CMake実行後にVisual Studioでビルドします。
CMakeでは以下の項目を設定します。
| 設定項目 | 内容 | 設定例 |
|---|---|---|
| Choreonoid_DIR | ChoreonoidのCMakeコンフィグファイルがインストールされたフォルダ | **'C:/work/choreonoid_install/share/choreonoid/cmake**' |
| OpenRTM_DIR | OpenRTM-aistのCMakeコンフィグファイルがインストールされたフォルダ | **'C:/work/openrtm_install/2.0.0/cmake**' |
以下のコマンドを実行することでビルド、インストールができます。 生成したOpenRTMプラグインはChoreonoidのインストールフォルダにコピーされます。
git clone https://github.com/OpenRTM/choreonoid-openrtm
cd choreonoid-openrtm
mkdir build
cd build
cmake .. -DChoreonoid_DIR=%CHOREONOID_INSTALL_DIR%/share/choreonoid/cmake -DOpenRTM_DIR=%OPENRTM_INSTALL_DIR%/2.0.0/cmake
cmake --build . --config Release
cmake --build . --config Release --target install
※OpenRTM-aistをインストーラーでインストールした場合はOpenRTM_DIRオプションの設定は不要です。
OpenRTM Pythonプラグインのビルドとインストール
OpenRTMプラグインのソースコードは以下から入手できます。
CMakeの設定項目はOpenRTMプラグインと同じです。
以下のコマンドを実行することでビルド、インストールができます。
git clone https://github.com/Nobu19800/OpenRTMPythonPlugin
cd OpenRTMPythonPlugin
mkdir build
cd build
cmake .. -DChoreonoid_DIR=%CHOREONOID_INSTALL_DIR%/share/choreonoid/cmake -DOpenRTM_DIR=%OPENRTM_INSTALL_DIR%/2.0.0/cmake
cmake --build . --config Release
cmake --build . --config Release --target install
※OpenRTM-aistをインストーラーでインストールした場合はOpenRTM_DIRオプションの設定は不要です。
必要なファイル一式をまとめる
Choreonoidをビルド、インストールすると、基本的には必要なファイルはインストール先にコピーされます。 ただし、Pythonプラグインをビルドする場合は、対応するバージョンのPythonがインストールされている必要があります。
このため、対応するバージョンのPythonがインストールされていない場合は、以下のページのように組み込み用Pythonを同梱する必要があります。
まずは、対応するバージョンのpython-3.x.y-embed-amd64をダウンロードしてください。
- https://www.python.org/ftp/python/
次に必要なライブラリをインストールします。 Choreonoidはnumpyが必要なためインストールします。
python -m pip install numpy
また、Choreonoid Pythonプラグインのサンプルプログラムを実行するためにPySDL2が必要なためインストールします。
python -m pip install pysdl2 pysdl2-dll
omniORB、OpenRTM-aistをインストールする必要があるため、以下のファイル、フォルダをpython-3.x.y-embed-amd64/Lib/site-packages以下のコピーしてください。
- CosNaming
- omniidl
- omniidl_be
- omniORB
- OpenRTM_aist
- OpenRTM-aist.pth
- CORBA.py
- CosNaming_idl.py
- CosNaming__POA
- PortableServer.py
- PortableServer__POA.py
- _omnicodesets.pyd
- _omniConnMgmt.pyd
- _omnihttpCrypto.pyd
- _omnihttpTP.pyd
- _omnipy.pyd
- _omnisslTP.pyd
Ubuntu
OpenRTM-aistのビルドとインストール
OpenRTM-aist+omniORBを以下の手順でビルド、インストールしてください。
export OPENRTM_INSTALL_PATH=~/work/openrtm_install
git clone https://github.com/OpenRTM/OpenRTM-aist
cd OpenRTM-aist/
mkdir build
cd build/
git clone
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$OPENRTM_INSTALL_PATH
cmake --build . --config Release
sudo cmake --build . --config Release --target install
Choreonoidのビルドとインストール
Choreonoidを以下の手順でビルド、インストールしてください。
CMake、Boost、Qtのバージョンには注意してください。
- CMakeのバージョンが古い場合、Boostをライブラリを検出できない場合があります。できるだけ最新版をインストールしてください。
- Boostはデフォルトの設定でC:\local\boost_177_0**のようなフォルダにインストールされますが、CMakeは**C:\local\boost{バージョン番号}からBoostを探すため、古いバージョンがすでに*C:\local*以下にインストールされている場合にそちらを検出する事があるので注意してください。
OpenRTMプラグインの使用のためにはCORBAプラグインのビルドに、ヘッダーファイルなどの各種ファイルをインストールが必要です。 また、OpenRTM Pythonプラグインの使用のためにはPythonプラグインのビルドが必要です。
| 設定項目 | 内容 | 設定例 |
|---|---|---|
| ENABLE_CORBA | CORBA通信機能の有効化、無効化 | ON |
| BUILD_CORBA_PLUGIN | CORBAプラグインのビルドの有無 | ON |
| INSTALL_SDK | ヘッダーファイルなどの各種ファイルをインストールするか | ON |
| ENABLE_PYTHON | Pythonスクリプティング機能、およびPythonプラグインのビルドの有無 | ON |
| CMAKE_INSTALL_PREFIX | Choreonoidのインストールフォルダ | '/work/choreonoid_install' |
export CHOREONOID_INSTALL_DIR=~/work/choreonoid_install
git clone https://github.com/choreonoid/choreonoid
cd choreonoid
mkdir build
cd build
cmake .. -DENABLE_CORBA=ON -DBUILD_CORBA_PLUGIN=ON -DINSTALL_SDK=ON -DENABLE_PYTHON=ON -DCMAKE_INSTALL_PREFIX=$CHOREONOID_INSTALL_DIR
cmake --build . --config Release
cmake --build . --config Release --target install
OpenRTMプラグインのビルドとインストール
OpenRTMプラグインのソースコードは以下から入手できます。
CMakeでは以下の項目を設定します。
| 設定項目 | 内容 | 設定例 |
|---|---|---|
| Choreonoid_DIR | ChoreonoidのCMakeコンフィグファイルがインストールされたフォルダ | `/work/choreonoid_install/share/choreonoid/cmake` |
| OpenRTM_DIR | OpenRTM-aistのCMakeコンフィグファイルがインストールされたフォルダ | `/work/openrtm_install/lib/openrtm-2.0/cmake` |
以下のコマンドを実行することでビルド、インストールができます。 生成したOpenRTMプラグインはChoreonoidのインストールフォルダにコピーされます。
git clone https://github.com/OpenRTM/choreonoid-openrtm
cd choreonoid-openrtm
mkdir build
cd build
cmake .. -DChoreonoid_DIR=$CHOREONOID_INSTALL_DIR/share/choreonoid/cmake -DOpenRTM_DIR=$OPENRTM_INSTALL_PATH/lib/openrtm-2.0/cmake
cmake --build . --config Release
cmake --build . --config Release --target install
OpenRTM Pythonプラグインのビルドとインストール
OpenRTMプラグインのソースコードは以下から入手できます。
CMakeの設定項目はOpenRTMプラグインと同じです。
以下のコマンドを実行することでビルド、インストールができます。
git clone https://github.com/Nobu19800/OpenRTMPythonPlugin
cd OpenRTMPythonPlugin
mkdir build
cd build
cmake .. -DChoreonoid_DIR=$CHOREONOID_INSTALL_DIR/share/choreonoid/cmake -DOpenRTM_DIR=$OPENRTM_INSTALL_PATH/lib/openrtm-2.0/cmake
cmake --build . --config Release
cmake --build . --config Release --target install
使用方法
使用方法については以下のページを参考にしてください。
