目次
はじめに
先日、
Point Cloud Libraryの基本的なモジュールの説明をしたので、
今回は、各種OSのインストール方法と、
最も単純なPCLコードを
動かす方法について説明します。
PCLのインストール方法
それぞれのOSに応じて、
下記の方法でインストールします。
Mac (Homebrewを使う場合)
基本的には下記の記事と同じように、
必要なライブラリをHomebrewでインストールし、
PCLはソースからコンパイルしました。
$ brew install cmake
$ brew install boost
$ brew install eigen
$ brew install flann
$ brew install vtk5 –with-qt
$ git clone https://github.com/PointCloudLibrary/pcl
$ cd pcl
$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
Ubuntu
ubuntuの場合は、
下記の公式ドキュメントのように、
apt-getで非常に簡単にインストールできます。
$ sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
$ sudo apt-get update
$ sudo apt-get install libpcl-all
ちなみにubuntu14,16では、
一番最初のppaの追加は不要だという話です。
PCLのサンプルコードを動かす方法
続いて、PCLを使った
非常に単純なサンプルコードを動かす方法について説明したいと思います。
ちなみに下記のコードはすべて下記の
GitHubリポジトリにも置いてあります。
1. PCLのサンプルコードを書く
まず初めにPCLを使ったサンプルコードを書きます。
今回は下記のような、
指定した個数、[-1,1]の範囲の三次元点群を作成し、
そのデータをPCLの特有のデータフォーマット、
PCDファイルに保存するサンプルコードを使用します。
下記のファイルをpcd_write.cppとしておきます。
#include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> int main (int argc, char** argv) { pcl::PointCloud<pcl::PointXYZ> cloud; // Fill in the cloud data cloud.width = 5; cloud.height = 1; cloud.is_dense = false; cloud.points.resize (cloud.width * cloud.height); for (size_t i = 0; i < cloud.points.size (); ++i) { cloud.points[i].x = 1024 * rand () / (RAND_MAX + 1.0f); cloud.points[i].y = 1024 * rand () / (RAND_MAX + 1.0f); cloud.points[i].z = 1024 * rand () / (RAND_MAX + 1.0f); } pcl::io::savePCDFileASCII ("test_pcd.pcd", cloud); std::cerr << "Saved " << cloud.points.size () << " data points to test_pcd.pcd." << std::endl; for (size_t i = 0; i < cloud.points.size (); ++i) std::cerr << " " << cloud.points[i].x << " " << cloud.points[i].y << " " << cloud.points[i].z << std::endl; return (0); }
2. CMakeLists.txtを書く
続いて、ファイルビルド用の
CMakeLists.txtを作成します。
下記のように、
非常にシンプルなCMakeLists.txtでOKです。
cmake_minimum_required(VERSION 2.6 FATAL_ERROR) project(HELLO_WORLD) find_package(PCL 1.3 REQUIRED COMPONENTS common io) include_directories(${PCL_INCLUDE_DIRS}) link_directories(${PCL_LIBRARY_DIRS}) add_definitions(${PCL_DEFINITIONS}) add_executable(pcd_write_test pcd_write.cpp) target_link_libraries(pcd_write_test ${PCL_COMMON_LIBRARIES} ${PCL_IO_LIBRARIES})
3. ソフトのビルドする
あとは、
下記のようにbuildディレクトリを作り、
cmakeでmakefileを作って、
makeできます。
$ cd build
$ cmake ..
$ make
あとは、実行ファイルを実行するだけです。
./pcd_write_test
参考資料
MyEnigma Supporters
もしこの記事が参考になり、
ブログをサポートしたいと思われた方は、
こちらからよろしくお願いします。