PointCloudConsortium > PCCブログ

PCL、3D関連の情報をブログ形式で発信します。

PCLでデプスセンサー(Xtion)から点群情報を取得し可視化

前回までにPCL・Visual C++のインストール、Visual C++ Expressの初期設定、PCLのインクルードを行ってきました。 今回はサンプルコード記述して実際に点群データを取得していきたいと思います。

Windows8.1でPCLを動かすまで(初心者編①)… インストール方法
Windows8.1でPCLを動かすまで(初心者編②)… VC++初期設定
Windows8.1でPCLを動かすまで(初心者編③)… PCLインクルード

■Visual C++ 2010 Expressを起動しコードを書いていきます

<1>Visual C++ 2010 Express起動前の確認
今回はASUS Xtion(デプスセンサー)を使って点群を取得していきます。 Xtionがつながれて付属のドライバがインストールさせれていることを確認します。

<2>Visual C++ Express起動
前記事のWindows8.1でPCLを動かすまで(初心者編①~③)で紹介いたしました設定を完了できた状態で作業を行います。
プロジェクトにコードを記述していきます。
記述するコードはPCLの公式ページよりコピーして持ってきます。
http://mobile.docs.pointclouds.org/documentation/tutorials/
http://mobile.docs.pointclouds.org/documentation/tutorials/openni_grabber.php#openni-grabber

<3>PCL公式ページからのサンプルコード

#include "stdafx.h"
#include <pcl/io/openni_grabber.h>
#include <pcl/visualization/cloud_viewer.h>

 class SimpleOpenNIViewer
 {
   public:
     SimpleOpenNIViewer () : viewer ("PCL OpenNI Viewer") {}

     void cloud_cb_ (const pcl::PointCloud<pcl::PointXYZ>::ConstPtr &cloud)
     {
       if (!viewer.wasStopped())
         viewer.showCloud (cloud);
     }

     void run ()
     {
       pcl::Grabber* interface = new pcl::OpenNIGrabber();

       boost::function<void (const pcl::PointCloud<pcl::PointXYZ>::ConstPtr&)> f =
         boost::bind (&SimpleOpenNIViewer::cloud_cb_, this, _1);

       interface->registerCallback (f);

       interface->start ();

       while (!viewer.wasStopped())
       {
         boost::this_thread::sleep (boost::posix_time::seconds (1));
       }

       interface->stop ();
     }

     pcl::visualization::CloudViewer viewer;
 };

 int main ()
 {
   SimpleOpenNIViewer v;
   v.run ();
   return 0;
 }
そのままコピーしてデバック開始をするとビルドエラーが出ますので上記のように
1行目に#include “stdafx.h”
を追記します。

以上記述してデバック開始すると以下のようにXtionからの点群データを取得することができます。

ただしそのままですと色情報がなく白い点群が表示されます。
色情報を取得するにはプログラムを多少変更する必要があります。

続きは表示させた点群に色情報をつけていく方法を紹介します。

マグネットインダストリー
西内伸太郎

2014年7月18日

本コンソーシアムに関するお問合せ、PCL・3D関連のご相談はお問合せフォームよりご連絡ください。

  • PointCloudLibrary
  • エス計画
  • マグネットインダストリー
  • DERiVE
Copyright (C) 2014 PointCloudConsortium All Rights Reserved.