2015年5月9日土曜日

PCL(Point Cloud Library)のインストール(Ubuntu)

これまで、知ってはいたのですが使うか悩んでいたPCL(Point Cloud Library)をインストールすることにしました。まずは研究室で使っているUbuntu14.04にインストール。

まずは、sudoでライブラリを入れる。

sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl sudo apt-get update sudo apt-get install libpcl-all

では、使えるのか試してみる。
試してみるのが、ランダムで作ったポイントをpcd形式(Point cloud data format)で保存するだけのソース。
まずは、以下のソースをpcd_write.cppで保存。




 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#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);
}

次に、cmake ファイルを作る。
CMakeLists.txtという名前でファイルを作り、中身は以下のソース。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)

project(pcd_write)

find_package(PCL 1.2 REQUIRED)

include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

add_executable (pcd_write pcd_write.cpp)
target_link_libraries (pcd_write ${PCL_LIBRARIES})

cmakeの実行

cmake .

すると、makefileができあがるので、makeを実行

make

コンパイルが成功すれば、インストールもこれまでのソースも成功!!
では、実行してみよう。

./pcd_write

結果、以下のものがでたら完全に成功です。pcd形式で"test_pcd.pcd"というファイルに以下の内容のものが入っています。

Saved 5 data points to test_pcd.pcd.
    0.352222 -0.151883 -0.106395
    -0.397406 -0.473106 0.292602
    -0.731898 0.667105 0.441304
    -0.734766 0.854581 -0.0361733
    -0.4607 -0.277468 -0.916762



参考:
http://pointclouds.org/documentation/tutorials/writing_pcd.php#writing-pcd

0 件のコメント:

コメントを投稿