2012年9月11日火曜日

OMPLのインストール

依存ソフトウェアのインストールが終わったら、ようやく本体のOMPLのインストールを行います。OMPLのサイトでは、OMPLとOMPL.appのソースが公開されており、一読すると、OMPL.appには、OMPL本体が含まれているように読めますが、実際には含まれていないので、OMPLと、OMPL.appのインストールをそれぞれ行います。
また、OMPL本体については、bitbucket.orgに開発版が公開されており、そちらをmercurialを用いるか、上記サイトで"get source"メニューからダウンロードすることで最新版を取得することができます。

OMPLのインストール


OMPLのビルドはCMakeを用いて行われます。ダウンロードしたファイルを展開し、そこにbuild/releasというディレクトリを作成し、

$ cmake-gui ../..

を実行します。"configure"をクリックし、"MSYS Makefile"を指定すると、configureが開始されます。


Boostの設定

開始すると、まず、Boostが見つからないと怒られるので、
"BOOST_INCLUDE_DIR"に、Boostのヘッダファイルがあるディレクトリを指定し、追加で
"BOOST_LIBRARYDIR"という項目を追加し、Boostのライブラリのあるディレクトリを指定します。
そうすると、Boostのファイルが読み込まれます。

GCCXMLの設定

さらにUngrouped Entriesで"GCCXML"が設定されていない場合は、gccxml.exeをフルパスで指定します(d:/local/gccxml/bin/gccxml.exeなど)。

インストール先の設定

そのほか、CMAKE->CMAKE_INSTALL_PREFIXでインストールディレクトリを指定します。

OPENDEの設定

Ungrouped EntriesでOPENDEの設定プログラムode-configが読み込まれていても、OPENDEのヘッダファイルやライブラリファイルの場所は指定されないので、

  • OPENDE->OPENDE_INCLUDE_DIR :OPENDEのヘッダファイルの場所
  • OPENDE->OPENDE_LIBRARY:OPENDEのライブラリファイルlibode.dll.a(フルパス)

を指定します。さらに、OPENDEが倍精度であることを明示するために、CMAKE->CMAKE_CXX_FLAGSとCMAKE_C_FLAGSに"-DdDOUBLE"という文字列を追加します。

以上で準備は終了で、"configure", "generate"を実行して、Makefileを生成します。


Make


build/release ディレクトリで、

$ make update_bindings # Pythonバインディングの生成。かなり時間がかかります。
$ make
$ make install

でインストールが完了します。

OMPL.appのインストール


OMPL.appのインストールも、基本的にはOMPLと同様です。追加でassimpとflann(近似最近傍探索ライブラリ)の項目がありますが、ASSIMP_DIRに、assimpのCMake用設定ファイルのあるディレクトリを指定して、ASSIMP_LIBRARY_DIRSを追加して、ASSIMPのライブラリのディレクトリを指定すればOKです。そして、FLANNについては、システムにインストールされていなければ自動でダウンロードとビルドをしてくれますので、放っておいてかまいません。また、衝突検出ライブラリFCLとPQPも自動でダウンロード、インストールを行ってくれます。実行は、インストールディレクトリや共有ライブラリのディレクトリにパスが通っていることを確認したうえで、

> ompl_app

で起動します。
起動後の画面は下図の通りです。



ロボットのワークスペースとロボットのモデルは、左上のFileメニューから選択します。サンプルがOMPL.appのresourceディレクトリに、*_env.dae, *_robot.daeという名前であります。また、サンプルの設定ファイルが同じディレクトリに*.cfgという名前でありますので、それらを読み込みます。初期状態や目標状態などのパラメータは、ウィンドウ右の"Problem"タブで設定することもできます。
経路計画のアルゴリズムは、ウィンドウ右の"Planner"タブでKPIECEやPRM, RRTなどを選択することができます。そして、左下のSolveボタンで求解が始まります。







1 件のコメント:

  1. Hi, I am one of the OMPL developers. I'd like to include your installation instructions (or at least, a translated version) with OMPL. Would that be okay with you? Of course, you'd be properly credited and acknowledged.

    返信削除