3d激光雷达开发(pcl安装和使用)

Posted 费晓行

tags:

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

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

        之前讨论过,目前3d激光雷达这块,算法部分用的最多的就是pcl库。网上很多教程都是讲pcl在linux平台上面使用的,其实在windows上面也是非常方便的。所以,今天就看一下,在windows平台,特别是win10平台上面,pcl应该如何使用。

1、前置条件

         pcl被使用,一般需要这三个条件,分别是vs2017、cmake和pcl库。vs2017是编译工具,这部分也可以选择最新的vs2019,只是需要最新的cmake和pcl和它匹配。cmake书要是生成sln工程使用。pcl库就是使用到的算法库。

2、AllInOne下载

        下载地址在这,https://github.com/PointCloudLibrary/pcl/releases?page=2

        打开后,截图应该是这样的,

        这里面有6个文件,最后两个是源代码的压缩包,可以不管。前面4个分别是32位安装包、64位安装包、32位pdb调试文件压缩包、64位pdb调试文件压缩包。如果只是使用,那么直接选择32位安装包就可以了。这里注意下,如果自己的电脑安装了vs2019,那么需要安装更高阶版本的pcl库,也就是比1.9.1更高的版本。

3、安装pcl

        一般安装好之后,在C:\\Program Files (x86)\\OpenNI2、C:\\Program Files (x86)\\PCL 1.9.1两个目录地址下面就会看到对应的安装内容。

4、pcl教程

        pcl最好的教程,其实来自于这个网站https://pcl.readthedocs.io/projects/tutorials/en/master/index.html

        很多朋友可能英文不太好,也没关系,网上有一本书《点云库pcl从入门到精通》,大部分内容都是这个网站翻译过去的,基本上也能看明白。

5、第一次编写pcl代码 

        可以直接从pcl网站上找一篇文章,参考下,比如如何写pcd数据,也就是点云数据如何保存。

        原来的内容地址在这,https://pcl.readthedocs.io/projects/tutorials/en/master/writing_pcd.html#writing-pcd

        为了方便,这里就直接把代码拷贝过来了,文件命名为pcd_write.cpp,

 #include <iostream>
 #include <pcl/io/pcd_io.h>
 #include <pcl/point_types.h>
 
 int
   main ()
 
   pcl::PointCloud<pcl::PointXYZ> cloud;
 
  // Fill in the cloud data
  cloud.width    = 5;
  cloud.height   = 1;
  cloud.is_dense = false;
  cloud.resize (cloud.width * cloud.height);

  for (auto& point: cloud)
  
    point.x = 1024 * rand () / (RAND_MAX + 1.0f);
    point.y = 1024 * rand () / (RAND_MAX + 1.0f);
    point.z = 1024 * rand () / (RAND_MAX + 1.0f);
  

  pcl::io::savePCDFileASCII ("test_pcd.pcd", cloud);
  std::cerr << "Saved " << cloud.size () << " data points to test_pcd.pcd." << std::endl;

  for (const auto& point: cloud)
    std::cerr << "    " << point.x << " " << point.y << " " << point.z << std::endl;

  return (0);

        忘记说了,pcl的代码编写一般都是以cpp为主。cpp基础不太好的同学,可能需要重新把编程语言教程拿出来翻一翻了。

6、准备cmake

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

           文件命名为CMakeLists.txt,和pcd_write.cpp放在一起,就像这样,

         注意,这里的CMakeLists.txt就是帮助创建sln工程的,不需要单独用visual studio工具创建工程了,文件也只能命名成这个。

7、创建工程,准备编译

        打开一个终端,输入下面的命令,就可以创建sln工程了,

        输入结束后,没有问题的话,就可以看到这些文件,

 

        打开sln工程,编译即可,

8、 执行pcd_write.exe

        执行过程中,可能会出现找不到dll的情况,这个时候从安装目录里面把对应的dll拷贝过来即可,比如这样,

        没有问题后,双击pcd_write.exe文件,就会生成一个test_pcd.pcd文件,内容如下,

         至此,说明,整个pcl已经用起来了,后续就可以继续学习其他功能了。

以上是关于3d激光雷达开发(pcl安装和使用)的主要内容,如果未能解决你的问题,请参考以下文章

3d激光雷达开发(从halcon看点云pcl库)

3d激光雷达开发(项目练习)

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

3d激光雷达开发(PassThrough滤波器)

16线激光雷达配置教程

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