今回は、前回掲載した『Choreonoid tips ④【開発版OpenRTM-aistのビルド方法】』の続きで、OpenRTM-aist 2.0を使用し、ChoreonoidでOpenRTMプラグインを使用する方法を紹介します。
前回と同様に、実際にインストールをした時に発生したエラーやつまずいた点について掲載します。

Choreonoid tips ④【開発版OpenRTM-aistのビルド方法】

Choreonoid インストール

UbuntuにChoreonoidをインストールします。インストール方法は、以下のページを参照してください。
・ソースコードからのビルドとインストール (Ubuntu Linux編)
https://choreonoid.org/ja/manuals/latest/install/build-ubuntu.html
このページの「依存パッケージのインストール」まで実行してください。「CMake によるビルド設定」以降は「OpenRTMプラグインのダウンロードとビルド」で行います。
ここでの注意点として、インストールするChoreonoidのバージョンは2022/1/14以降のバージョンにしてください。それ以前のバージョンでは、OpenRTMプラグインとの連携がうまくいかない可能性があります。

OpenRTMプラグインのダウンロードとビルド

次に、OpenRTMプラグインのダウンロードとビルドを行います。
以下のページにあるOpenRTMプラグインをダウンロードしてビルドすることにより、使用できるようになります。
・Choreonoid-OpenRTM
https://github.com/OpenRTM/choreonoid-openrtm

OpenRTMプラグインのダウンロード先としてChoreonoidディレクトリのextディレクトリとホームディレクトリがありますが、今回はextディレクトリにダウンロードします。
以下のコマンドでダウンロードします。

cd ~/choreonoid/ext/
git clone https://github.com/OpenRTM/choreonoid-openrtm.git

ダウンロードしたら、ビルドします。
Choreonoidをインストール時に参照したページの「CMake によるビルド設定」を行います。
CMakeをするときChoreonoidに必要なライブラリのチェックが行われます。このとき、OpenRTMプラグインをビルド対象に設定することでChoreonoidと一緒にビルドされます。

ビルド対象とするには、以下のCMakeオプションを ON にする必要があります。
・ENABLE_CORBA
CORBA機能の有効化。CORBA通信を有効にするためのオプション。
・BUILD_CORBA_PLUGIN
CORBA通信を使用するためのプラグイン。RTコンポーネントと通信するために使用。
・BUILD_OPENRTM_PLUGIN
OpenRTM-aistと連携するためのプラグイン。

オプションをONにする方法としては、[ccmake]コマンドで設定する方法と[cmake]コマンドの実行引数に[-Dオプション]を付けて設定する方法があります。
[ccmake]コマンドでは、ENABLE_CORBAをONにできなかったので、[cmake]コマンドの実行引数に[-Dオプション]を付けて設定します。
以下のコマンドでCMakeとビルドをします。

cd ~/choreonoid/
mkdir build
cd build
cmake .. -DENABLE_CORBA=ON -DBUILD_CORBA_PLUGIN=ON -DBUILD_OPENRTM_PLUGIN=ON
make -j4
sudo make install

Choreonoidで設定しているC++のバージョンが17より前のバージョンの場合、OpenRTMとC++のバージョンが異なることでエラーが発生する場合があります。
その場合は、以下のコマンドを実行してC++のバージョンとOpenRTMの設定を確認してください。

cd ~/choreonoid/build
ccmake ..

[ccmake]コマンドを実行すると、以下の画面が表示されます。

オプションの設定が、以下のようになっていることを確認してください。

オプション 設定
CMAKE_CXX_STANDARD 17
OpenRTM_DIR /usr/local/lib/openrtm-2.0/cmake

OpenRTM-aist 2.0のビルドの際に、OpenRTM-aist 1.2系がインストール済みの場合、[sudo make install]が実行されていないため[OpenRTM_DIR]に別のパスが設定されていることがあります。

動作確認

OpenRTMプラグインのダウンロードとビルドができたら動作確認をします。
例として、OpenRTMのサンプルプロジェクト[OpenRTM-Tank.cnoid]を開き確認します。
以下のコマンドを実行します。

rtm-naming
choreonoid /usr/local/share/choreonoid-1.8/project/OpenRTM-Tank.cnoid

[rtm-naming]は、OpenRTMのネームサーバを起動するコマンドです。
[choreonoid]コマンドを実行すると、Choreonoidが起動してプロジェクトファイルが開かれます。

プロジェクトが開けたら、シミュレーションを実行して「仮想ジョイスティック」でモデルを動かしてください。
問題なく動かすことができたら、確認完了です。

シミュレーションを実行してもモデルが動かない場合、RTCダイアグラムのタブのコンポーネントを確認してください。色が、青又は緑になっておらず白い場合はネームサーバがうまく起動していない可能性があります。
その場合は、Choreonoidを一旦終了してネームサーバの起動からやり直してください。

いかがだったでしょうか。
「OpenRTMプラグインのダウンロードとビルド」の[ccmake]によるオプション設定や動作確認時のネームサーバがうまく動作していない現象は、解決方法を知らないと解決まで時間がかかると思ったので技術情報として掲載しました。
少しでも皆様のお役に立てれば幸いです。
今後も様々な技術情報を掲載していきたいと思います。