分離されたOpenRTMプラグインの取得方法とビルド方法について説明します。
まず、以下の作業は、OpenRTMプラグイン分離後のChoreonoidが対象となります。それは現在のところremove-openrtm-pluginブランチに格納されていますが、間もなくmasterにマージする予定です。OpenRTMプラグイン分離前のChoreonoid本体に対して分離されたOpenRTMプラグインを使用することはできませんので、ご注意ください。
分離されたOpenRTMプラグインは、以下のリポジトリに格納されています。
なお、これは正確にはプラグインだけではなく関連するライブラリなども含んでおりまして、正式には “Choreonoid-OpenRTM” モジュールと呼ぶことにします。
ビルド方法については、以下の2通りの方法があります。
-
Choreonoid本体ソースのextディレクトリ以下に配置して、Choreonoid本体とまとめてビルドする
-
Choreonoid本体が既にインストールされている環境で、Choreonoid本体とは独立してビルドする
まず1の方法について説明します。
Choreonoid本体のソースコード内に “ext” というディレクトリがありますので、そこに Choreonoid-OpenRTMモジュールのリポジトリをcloneしてください。
cd Choreonoidのソースディレクトリ/ext
git clone https://github.com/OpenRTM/choreonoid-openrtm.git
この状態にしてしまうと、OpenRTM分離前のものと、やることはほとんど変わりません。マニュアルの以下のページの手順に沿ってビルド・インストールを行うことが可能です。
一点注意があるとすれば、この方法でOpenRTMモジュールをビルドして、さらにそれに依存するプラグインやRTCなどもext以下でビルドしたい場合です。その場合、ビルドの順番について依存している方が後になるようにする必要があります。
ext以下に複数のモジュールがある場合のビルド順は、各モジュールのディレクトリ名で決まります。順序はディレクトリ名の辞書順で行われるようになっています。名前の辞書順序が想定するビルド順序と異なる場合は、各モジュールのディレクトリ名を変更する必要があります。その場合、ディレクトリ名に数値のプレフィックスをつけるのが分かりやすいかと思います。
なお、OpenRTMモジュールに依存している方のモジュールがOpenRTMモジュールのCMakeLists.txtにおいて定義されている変数を使用したいこともあるかもしれませんが、これはそのままでは使用できません。もしどうしても使用する必要がある変数などがある場合は、対策を考えますので、お知らせいただければと思います。
次に2の方法について説明します。
この場合、まずはChoreonoid本体のビルド・インストールを行ってください。その際、OpenRTMモジュールをビルド・実行するのに必要なモジュールとして、以下のCORBAに関するCMakeオプションもONにしてビルドしてください。
- ENABLE_CORBA
- BUILD_CORBA_PLUGIN
Choreonoidはビルドだけを行ってビルドディレクトリで使用することも可能ですが、この方法においてはインストールまで行うことが必要になります。Linuxの場合、 “make install” まで行うということです。
なお、make install を行う場合、デフォルトのインストール先は /usr/local になりますが、これは慣習上そうなっているだけで、これをそのまま用いるのはおすすめできません。/usr/local以下にいろいろなソフトウェアがインストールされると、管理が難しくなるからです。そこで通常はCMakeの設定で BUILD_INSTALL_PREFIX を設定して、どこか管理しやすいディレクトリにインストールします。
その場合、そのディレクトリに各種のパスが通っていることが必要となりますが、今回のOpenRTMモジュールのような外部ビルドモジュールをビルドする場合は、CMakeのパスが通っている必要があります。これは環境変数 CMAKE_PREFIX_PATHで設定できます。
例えば /home/hoge/usr 以下にインストールしている場合、
export CMAKE_PREFIX_PATH=/home/hoge/usr
とすれば、このディレクトリ内にインストールされたCMakeの設定ファイルが使用できるようになります。他にもこのパスを設定しているシステムがあるかもしれないので、
export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:/home/hoge/usr
といった記述にしたほうがよいかもしれません。
これを通常は .bashrcなどに記述して、何度も入力しなくてよいようにします。
なお、デフォルトの /usr/local にインストールする場合は、このパスはデフォルトで通っているようですので、設定する必要はありません。
また、Windowsでは、CMakeでConfigureをしてからCMakeの
Choreonoid_DIRという変数を設定するという方法でもOKです。その場合、Choreonoid_DIRにChoreonoidインストール先の share/choreonoid/cmake ディレクトリを指定します。(これはChoreonoidをc:\choreonoidといったディレクトリにインストールしている場合は自動で検出します。)
上記の準備ができているとして、まず適当なディレクトリにChoreonoid-OpenRTMモジュールをcloneします。(「適当なディレクトリ」はChoreonoid本体のソースとは別のディレクトリとしてください。)
git clone https://github.com/OpenRTM/choreonoid-openrtm.git
そして、このディレクトリ内でbuildディレクトリを作成し、cmakeし、ビルドします。
cd クローンしたディレクトリ
mkdir build
cd build
cmake ..
make
といった作業になります。
ここで、以下のCMakeオプション(変数)にご注意ください。
- Choreonoid_DIR
- Choreonoid本体のインストール先です。CMAKE_PREFIX_PATHにインストール先が設定されていれば、自動で検出されます
- CMAKE_INSTALL_PREFIX
- ここでビルドするOpenRTMモジュールのインストール先です。これはChoreonoid本体のインストール先に合わせる必要があります。CMakeのバージョン3.7以降(Ubuntu 18.04以降)ではこの変数が自動で設定されますが、それ以前のCMake(Ubuntu 16.04)の場合は、手動で入力する必要があります。
ビルドとインストールに成功すると、ビルドされたOpenRTM関連ライブラリやプラグインが、Choreonoid本体の所定のディレクトリ内に格納され、OpenRTM連携機能が使えるようになります。