2022年版では、OpenRTM-aist 2.0とChoreonoid用OpenRTMプラグインのソースファイルをビルドしていました。
https://rtc-fukushima.jp/technical/5464/
しかし、2025年1月時点では、OpenRTM-aist 2.0パッケージをaptインストールできるようになっています。
今回、Choreonoid用OpenRTMプラグインが更新され、以前とは異なる点がいくつか出てきました。実際にビルドしてインストールする際に発生したエラーやつまずいた点を紹介します。

使用した環境

・ Ubuntu 22.04
・ Choreonoid 2.2
・ OpenRTM-aist 2.0.2

Choreonoid インストール

UbuntuにChoreonoidをインストールします。インストールする方法は以下をご参照ください。
・ソースコードからのビルドとインストール (Ubuntu Linux編)
https://choreonoid.org/ja/manuals/latest/install/build-ubuntu.html
上記サイトの「依存パッケージのインストール」まで実行してください。「CMake によるビルド設定」以降はOpenRTMプラグインと一緒に行います。

OpenRTMのインストール

以下のコマンドを実行し、UbuntuにOpenRTM-aistの最新版をインストールします。

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

 
インストール内容の詳しい情報を知りたい方は以下のページをご参照ください。
・現在の最新RELEASEバージョン: 2.0.2-RELEASE
https://openrtm.org/openrtm/ja/node/7154/

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

次にOpenRTMプラグインのダウンロードとビルドを行います。
以下サイトのOpenRTMプラグインをダウンロードしビルドすることにより、使用できるようになります。
・Choreonoid-OpenRTM
https://github.com/OpenRTM/choreonoid-openrtm
 
OpenRTMプラグインをextディレクトリにダウンロードします。
以下のコマンドを実行し、OpenRTMプラグインをダウンロードします。

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

OpenRTMのインストール

以下のファイルを修正します。
・CMakeLists.txtの修正
“~/choreonoid/ext/choreonoid-openrtm/src/OpenRTMPlugin/CMakeLists.txt”を修正してください。
【修正内容】

CnoidBodyPlugin CnoidCorbaPlugin CnoidBodyIoRTC ${OPENRTM_LIBRARIES})
PUBLIC CnoidBodyPlugin CnoidCorbaPlugin CnoidBodyIoRTC ${OPENRTM_LIBRARIES})

修正しない場合、CMake時に以下のエラーが発生します。
【エラー内容】

CMake Error at ext/choreonoid-openrtm/src/OpenRTMPlugin/CMakeLists.txt:111 (target_link_libraries):
  The keyword signature for target_link_libraries has already been used with
  the target "CnoidOpenRTMPlugin".  All uses of target_link_libraries with a
  target must be either all-keyword or all-plain.

  The uses of the keyword signature are here:

   * cmake/ChoreonoidBasicBuildFunctions.cmake:124 (target_link_libraries)

次に、“~/choreonoid/ext/choreonoid-openrtm/src/CMakeLists.txt”を修正してください。
【修正内容】

set(OPENRTM_CAMERA_LIBRARY rtmCamera)
set(OPENRTM_CAMERA_LIBRARY rtmCamera2)

 
修正しない場合、Make時に以下のエラーが発生します。
【エラー内容】

/usr/bin/ld: -lrtmCamera が見つかりません

 
・RTSPropertiesView.cppの修正
“~/choreonoid/ext/choreonoid-openrtm/src/OpenRTMPlugin/RTSPropertiesView.cpp”を修正してください。
【修正内容】

#include <cnoid/src/Body/ControllerIO.h>
#include <cnoid/ControllerIO>

 
修正しない場合、Make時に以下のエラーが発生します。
【エラー内容】

/home/test/choreonoid/ext/choreonoid-openrtm/src/OpenRTMPlugin/RTSPropertiesView.cpp:26:10: fatal error: cnoid/src/Body/ControllerIO.h: そのようなファイルやディレクトリはありません
   26 | #include <cnoid/src/Body/ControllerIO.h>

OpenRTMプラグインのビルド

Choreonoidをインストール時に参照したページの「CMake によるビルド設定」を行います。
CMakeをするときChoreonoidに必要なライブラリのチェックが行われます。このとき、OpenRTMプラグインも一緒にビルドするように設定をするとChoreonoidと一緒にビルドされます。
一緒にビルドするためには、以下のCMakeオプションを ON にする必要があります。
 
・ENABLE_CORBA
  CORBA機能 ON/OFF - CORBA通信を有効にするためのオプション
・BUILD_CORBA_PLUGIN
  CORBA通信を使用するためのプラグイン。RTコンポーネントと通信するために使用
・BUILD_OPENRTM_PLUGIN
  OpenRTM-aistと連携するためのプラグイン
 
オプションをONにするには[ccmake]を使用するか、-Dオプションを使用します。
[ccmake]ではENABLE_CORBAをONにすることが出来なかったので、-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

動作確認

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

rtm2-naming
choreonoid /usr/local/share/choreonoid-2.2/project/OpenRTM-Tank.cnoid

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

 
上記画面が開けましたら、シミュレーションを実行しモデルを動かしてください。ロボットの操作は仮想ジョイスティックに表示されているキーをキーボードで押すことで動かすことができます。事前にPS4コントローラをPCにUSB接続していれば、PS4コントローラで動かすこともできます。
問題なく動かすことが出来たら、確認完了です。
 
シミュレーションを実行してもモデルが動かない場合、「RTCダイアグラム」タブのコンポーネントを確認してください。色が、青又は緑になっておらず白い場合はネームサーバがうまく起動していない可能性があります。
その場合は、Choreonoidを一旦終了しネームサーバの起動からやり直してください。
 
いかがでしたか。
OpenRTMプラグインビルド時のCMakeとMakeのところでつまずいて時間がかかりました。
皆様の参考になればと技術情報を掲載しました。
今後も様々な技術情報を掲載していきたいと思います。