embeddedなブログ

組み込みシステムに関することや趣味に関することをダラダラと書いていきます(^^)

Point Cloud LibraryをVisual Studio 2019で使う

2020-10-01 20:43:08 | Windows Embedded Standard

Point Cloud Libraryは点群データを扱うのにとても便利なライブラリです。Visual Studio 2019で使ってみましたので、その方法についてご紹介します。

まず最初にPoint Cloud Library(PCL)をインストールするために、Windows/Linux/MacOSの環境に様々なライブラリをインストールすることが出来るMicrosoftのパッケージマネージャVCPKGをセットアップします。

まずGit BashまたはPowerShellを起動して、VCPKGをインストールしたいフォルダに移動します。私の環境では、C:\srcに移動しました。移動したら、下記コマンドを実行して、vcpkgのクローンとビルドを実行します。

> git clone https://github.com/microsoft/vcpkg
> .\vcpkg\bootstrap-vcpkg.bat

ビルドが完了したら、次にPCLのインストールです。C:\srcフォルダのままで、PowerShellから下記コマンドを実行することでPCLをインストールが出来ます。

> .\vcpkg\vcpkg.exe install pcl:x64-windows

上記コマンドを実行した際に、「Please install the English language pack.」というメッセージが出た場合は、Visual Studio Installで英語の言語パックを追加インストールしてから、上記コマンドを再度実行してください。言語パックをインストールする画面は下記です。「英語」にチェックを入れて追加インストールしてください。

PCLに必要な全てのライブラリのダウンロードとインストールも実行されるので結構時間がかかりますので、我慢強く待ってください。無事に完了した画面が下記になります。

C:\src\vcpkg\installed\x64-windows に必要なincludeやlibなどがインストールされています。

サンプルに何かPCLを使ったVisual Studioプロジェクトを作成してビルドしてみます。ここでは、PCLのチュートリアルのひとつReading Point Cloud data from PCD filesをビルドして動作確認してみます。

C:\src\pcd_read フォルダにCMakeLists.txt と pcd_read.cpp の2つのファイルを作成します。

CMakeLists.txt は下記を記述します。

cmake_minimum_required(VERSION 2.8 FATAL_ERROR)

project(pcd_read)

find_package(PCL 1.2 REQUIRED)

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

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

pcd_read.cpp は下記を記述します。 

#include <iostream>
#include 
#include 

int
main (int argc, char** argv)
{
  pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);

  if (pcl::io::loadPCDFile<pcl::PointXYZ> ("test_pcd.pcd", *cloud) == -1) //* load the file
  {
    PCL_ERROR ("Couldn't read file test_pcd.pcd \n");
    return (-1);
  }
  std::cout << "Loaded "
            << cloud->width * cloud->height
            << " data points from test_pcd.pcd with the following fields: "
            << std::endl;
  for (const auto& point: *cloud)
    std::cout << "    " << point.x
              << " "    << point.y
              << " "    << point.z << std::endl;

  return (0);
}

上記ファイルの作成後、PowerShellでカレントディレクトリをC:\src\pcd_readに移動して、下記のCMakeコマンドを実行します。

> & 'C:\Program Files\CMake\bin\cmake.exe' -BC:\src\pcd_read\build -DCMAKE_TOOLCHAIN_FILE=C:\src\vcpkg\scripts\buildsystems\vcpkg.cmake

正常にCMakeが完了すればC:\src\pcd_read\buildフォルダに pcd_read.sln が生成されているので、ダブルクリックでVisual Studio 2019 を開きます。

ソリューションエクスプローラ上の pcd_read を右クリックして、 [スタートアッププロジェクトに設定]を実行します。もう一度pcd_read を右クリックして、 [プロパティ]を実行します。右側ウィンドウで[デバッグ]を選択して、左側ウィンドウで[作業ディレクトリ]に「C:\src\pcd_read」を設定します。

メニューから[ビルド]-[ソリューションのビルド]でビルドします。

動作確認に使うファイルbun0.pcdはここからダウンロードしてC:\src\pcd_readに置きます。

メニューから[デバッグ]-[デバッグの開始]で実行します。以下のように読み込んだbun0.pcdファイルの点群座標が表示されれば成功です。

 

 


最新の画像もっと見る