ソースコードからのビルドとインストール(Ubuntu Linux編)

Linuxには、様々なディストリビューションがありますが、現在のところ コレオノイドが公式にサポートするディストリビューションは Ubuntu Linux になります。現在のところ、バージョン 10.04 〜 11.10 でのビルドと動作を確認しています。基本的には今後も新しいバージョンが出る度に対応させつつ、古いバージョンについては少なくともその時点でのデスクトップ版LTSまではサポートする予定です。

以下では、Ubuntu Linux におけるコレオノイドのソースコードからのビルド方法について説明します。 ポイントを押さえれば、他のディストリビューションでもビルドできるのではないかと思われますので、必要であればトライしてみてください。

準備

ソースコードの取得・展開

コレオノイドのソースアーカイブをダウンロードページからダウンロードし、適当なディレクトリに展開して下さい。 コマンドラインからでしたら、

$ unzip choreonoid-x.x.x.zip

などとすることで展開できます。

ここでは展開するディレクトリを ~/src/choreonoid であるとし、

$ cd ~/src/choreonoid

によってカレントディレクトリをソースディレクトリに設定しているものとします。

ビルドツール、依存ライブラリのインストール

コレオノイドをビルドするには、下記のツール・ライブラリが必要になります。

  • C/C++標準開発ツール一式:

    GCC 、Make等の標準的な開発ツール一式が必要です。Ubuntu であれば ‘build-essential’ というパッケージで一式インストールされます。他のディストリビューションでも同様のパッケージがあると思われます。

  • CMake : Makefileの生成に使用します。
  • Doxygen : ソースコードのコメントからリファレンスマニュアルを生成するツールです。
  • Graphviz : Doxygenと組み合わせて利用するとリファレンスマニュアルにクラス関係図なども出力できます。
  • Boost C++ Libraries : C++の便利なライブラリ集です。
  • Qt : GUIツールキットを含むフレームワークライブラリです。
  • OpenSceneGraph : OpenGLベースの3次元シーングラフライブラリです。
  • libjpeg : JPEG形式の画像ファイルを読み込むためのライブラリです。
  • libpng : PNG形式の画像ファイルを読み込むためのライブラリです。
  • gettext : 表示を多国語対応とするためのツール・ライブラリです。

以下のライブラリも必要となりますが、コレオノイドソースアーカイブに梱包しているものも利用可能です。

  • Eigen : 行列・ベクトル演算のための高速・高機能なテンプレートライブラリです。

ノート

現在のところboost::multi_arrayと組み合わせて利用したときのコンパイルエラーの回避のため、一部修正を施したEigenライブラリをコレオノイドソースアーカイブ内に同梱してあります。外部のEigenライブラリを用いる際には、同じ修正を適用する必要があります。なお、boost::multi_array は Visual C++ 2010 のデバッグモードで利用できないという問題もあるため、今後利用廃止とする予定です。

  • LibYAML : YAML形式テキストのパーサです。

Ubuntuにおいては、 misc/script 以下にある install-requisities-ubuntu.sh というスクリプトを用いることにより、以上のツール・ライブラリを簡単にインストールすることができます。

$ misc/script/install-requisities-ubuntu.sh

を実行すると、sudoのパスワードが求められるので入力してください。すると、パッケージシステム経由で、全ての必要なパッケージが自動でインストールされます。

CMake によるビルド設定

まず、cmake コマンドを使って コレオノイドをビルドするために必要な Makefile を生成します。ソースディレクトリ上で

$ cmake .

を実行すると、必要なライブラリをチェックし Makefile を生成します。(cmake コマンドのあとのピリオドに注意してください。)

対象バージョンのUbuntuにおいて上述の説明通りに作業を進めていれば問題なくMakefileが生成されるはずですが、必要なライブラリが所定の場所にインストールされていなかったりすると、cmake 実行の際にエラーが出ることがあります。その場合には、適切にインストールを行うか、CMakeによるビルド設定を修正することが必要になります。ビルド設定は cmake コマンドを用いてコマンドラインから行うことも可能ですが、ccmake コマンドを

$ ccmake .

と実行することにより、各種設定をメニュー形式で行うことも可能です。

コンパイルするプラグインやサンプルを切り替えたい場合なども、これらのコマンドを用いて対応する設定を行ってください。

詳しくは CMake のマニュアルを参照してください。

ノート

スタートアップガイドの説明の対象となっている「GRobotプラグイン」はデフォルトではビルドしないようになっています。スタートアップガイドを試す際には、ccmake で BUILD_GROBOT_PLUGIN を ON にしてビルドを行ってください。

コレオノイドのビルド

CMakeによりMakefile の生成が成功すれば、makeコマンドでコレオノイドをビルドします。 ~/src/choreonoid のディレクトリで

$ make

を実行します。

マルチコアCPUであれば、-j オプションにより並列ビルドを行うことでビルド時間を短縮できます。例えば、

$ make -j4

とすると、最大で4つのビルドプロセスが同時に実行されることになります。通常論理コア数に1〜2を足した程度のプロセス数を指定することで、CPU能力を最大限に活かした並列ビルドができるのではないかと思われます。

なお、CMakeが生成した Makefile による make では、実行コマンドの詳細は表示されず、ビルド過程がすっきりとまとまった表示で出力されます。これはビルドの進行を確認する際には大変見やすくてよいのですが、GCCに与えている細かなコンパイルオプションなどは確認できません。その必要があるときには、

$ make VERBOSE=1

というように VERBOSE変数をオンにして make を行うことで、全てのコマンド実行文の詳細を出力させることも可能です。

コレオノイドのビルドに成功すれば、binというディレクトリの下に choreonoid という実行ファイルが生成されます。

$ bin/choreonoid

を実行して、正常にコレオノイドが起動することを確かめて下さい。

このようにLinuxにおいては、ビルドを行うソースディレクトリ内に出力された実行ファイルを直接実行することも可能となっています。これで利用してもよいのですが、一方で、

$ make install

を実行することで所定のディレクトリにインストールすることも可能です。 デフォルトでは /usr/local 以下にインストールされますが(この場合 sudo make install としてください)、CMake の CMAKE_INSTALL_PREFIX の設定でインストール先のディレクトリを変更することも可能です。

Balancerプラグインについて

二足歩行ロボットを対象に動力学バランスを自動補正し、実機においても転倒しない動作の作成を支援する機能は、”Balancerプラグイン”が提供する機能となっています。現在のところ、このプラグインについてはソースを公開しておらず、一部のプラットフォーム向けにビルドされたバイナリのみをソースパッケージに含めて配布しています。

現在のところコレオノイド本体がサポートしているUbuntu Linuxの各バージョンの、32ビット環境においてこのバイナリが動作します。この環境においてBalancerプラグインを利用する際には、ソースのproprietary/BalancerPlugin以下の”libCnoidBalancerPlugin.so”を、コレオノイドのプラグインディレクトリ(ビルド対象ソースディレクトリもしくはインストール先の lib/choreonoid-x.x/ 以下)にコピーしてお使いください。

また、Balancerプラグインのライセンスはコレオノイド本体のライセンス(LGPL)ではありませんので、ご注意ください。使用条件は proprietary/BalancerPlugin/LICENSE でご確認ください。この条件を超える範囲の利用やソースコードに取得に関しては、産総研までお問い合わせください。