3d激光雷达开发(pcd数据读取)

Posted 费晓行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3d激光雷达开发(pcd数据读取)相关的知识,希望对你有一定的参考价值。

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        之前谈到了,如果从lidar获取数据,那么需要保存成pcd的形式。这个在https://feixiaoxing.blog.csdn.net/article/details/123292126里面谈到过。那么如何从pcd加载数据,其实方法也是一样的。相关内容可以参考这个链接​​​​​​​

https://pcl.readthedocs.io/projects/tutorials/en/master/reading_pcd.html#reading-pcd

1、编写pcd_read.cpp文件

 #include <iostream>
 #include <pcl/io/pcd_io.h>
 #include <pcl/point_types.h>
 
 int
 main ()
 
   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);

2、编写CMakeLists.txt

 cmake_minimum_required(VERSION 3.5 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)

3、准备生成sln文件

mkdir build
cd build
cmake ..

        不出意外,应该可以正常编译通过

4、运行pcd_read.exe

        在运行前,有两个事情需要注意一下:第一,保证exe需要的dll都已经拷贝到当前目录下面;第二,保证test_pcd.pcd文件已经准备好。如果一切ok,就会得到下面这些输出,

以上是关于3d激光雷达开发(pcd数据读取)的主要内容,如果未能解决你的问题,请参考以下文章

3d激光雷达开发(平面映射)

3d激光雷达开发(lidar使用)

3d激光雷达开发(旋转和位移)

3d激光雷达开发(sift关键点)

3d激光雷达开发(kd树)

3d激光雷达开发(点云数据显示)