Open Motion Planning Library (OMPL) をC++で使用するためのチュートリアル。 ビルドシステムにはCMakeを使用する。
執筆時点(2022/06/08)でのインストール方法を示す(実行環境は以下)。 原則、OMPL公式サイトのインストールガイドに沿ってインストールすれば問題ない。
Environment
- OS: Ubuntu 18.04
- ROS Melodic
- OMPL: 1.4 (ROS Melodic uses this version)
- CMake: 2.8.0
ROSをインストールしている場合は、ROSバージョンのOMPLを使用する。 ROS Melodicを使用する場合はOMPL 1.4がインストールされる。最新のバージョンとは異なるため、Demoプログラムが公式のままでは動かない場合がある点に注意
sudo apt-get update
sudo apt install ros-$ROS_DISTRO-omplaptリポジトリからOMPLのライブラリをインストールする。
sudo apt install libompl-dev ompl-demosここでは例として、rigid_body_planningというデモプログラムをビルドする手順を示す。他のデモについても同様の手順でビルドすることができる。
まずはソースコードまで移動し、buildディレクトリを作成する。
その後、事前に用意してあるCMakeLists.txtを使ってビルドを行う。
cd demos/rigid_body_planning
mkdir build
cd build
cmake ../
makeビルドが成功した場合は、buildディレクトリ内にMainという実行ファイルが生成されるはずである。
ここで、CMakeLists.txtの中身は以下のようになっている。
cmake_minimum_required(VERSION 2.8)
project(rigid_body_planning)
find_package(ompl REQUIRED)
include_directories(
/usr/include/eigen3
${OMPL_INCLUDE_DIRS}
)
add_executable (Main main.cpp)
target_link_libraries (Main ${OMPL_LIBRARIES})OMPLを使用する際にはまず、find_package(ompl REQUIRED)を記述する。これにより、以下のようなマクロを一括で取得することができる。
OMPL_FOUNDライブラリの検索状態。(TRUE)OMPL_INCLUDE_DIRSインクルードファイルが含まれるディレクトリのパス。(e.g. C:\Program Files\LIBRARY\inc)OMPL_LIBRARIESライブラリファイルのパス。(e.g. C:\Program Files\LIBRARY\lib\LIBRARY.lib)OMPL_DEFINITIONSプリプロセッサの定義。(e.g. LIBRARY_DEFINE)OMPL_VERSIONOMPLのバージョン
また、include_directoriesでプロジェクトにOMPLライブラリを追加し、target_link_librariesでOMPLライブラリを依存ファイルとして設定している。
ここで、include_directories中に/usr/include/eigen3も入れている点に注意!!この記述がないとビルドエラーになる。 なぜEigen3ライブラリのパスが通っていないのかは謎...
CMakeLists.txtの書き方についてもう少し詳しく知りたい方は、[Wiki: CMakeLists Tutorial](../wikis/CMakeLists Tutorial)を参照のこと。
buildディレクトリ内に生成された実行ファイルを起動する。
./Main- The Open Motion Planning Library OMPLの公式サイト

