LoginSignup
25
6

More than 5 years have passed since last update.

Velodyne LiDAR の3次元データをPCDファイルに出力

Last updated at Posted at 2017-12-18

はじめに

レーザー測距センサー Velodyne LiDAR VLP-16 を使ってみる機会に恵まれたので、3次元点群処理ライブラリ PCL (Point Cloud Library) で、測距データをリアルタイムに可視化しながら、PCD (Point Cloud Data)ファイルに出力してみました。

Point Cloud Library with Velodyne LiDAR

まずは Velodyne LiDAR VLP-16 PCL で検索してみると、そのものずばりの記事「Point Cloud Library with Velodyne LiDAR」が見つかりました。
PCL 1.8.0 に Velodyne LiDAR からデータを入力するための Grabber が追加されているとのことで、
サンプルプログラムまで公開してくださっています。ありがたいです。
早速、CMakeLists.txt と main.cpp をフォルダ D:/velodyne/ を作って保存しておきます。

PCL 1.8.0 のインストール

手元の環境は PCL 1.6.0、Visual Studio 2013 なので、こちらの「Point Cloud Library 1.8.0 has been released」から PCL 1.8.0 All-in-one Installer MSVC2013 x64 をダウンロード、インストール。

環境変数 PCL_ROOT を変更します。
PCL_ROOT=C:\Program Files\PCL 1.8.0

CMake

CMake を起動して [ Configure ] からの [ Generate ]。
cmake.png

これで Visual Studio のソリューションファイルを生成してくれます。
[ Open Project ]で Visual Studio が起動して、ビルド、実行、無事サンプルプログラムが動きました。

定期的にPCDファイル出力

PCL では C++ライブラリ boost が多用されているので
boost::timer を利用して定期的にPCDファイルを出力してみます。

#include <boost/timer.hpp>

main.cpp#L98-L110 の while ループの前でタイマー起動。

 boost::timer t;

ループの中でタイマーを定期的にリスタートして、pcl::io::savePCDFile で velodyne.pcd ファイルに出力します。

  if (t.elapsed() >= 5.0) { // 秒
      t.restart();

      pcl::io::savePCDFile("velodyne.pcd", *cloud);
  }

おわりに

PCL付属の pcl_viewer で velodyne.pcd を開いてみると
pcd.png
上の方、部屋のドアが開いていて廊下の壁が見えているのが、なんとなく分かると思います。

25
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
6