1. 简介
PCL全称为Point Cloud Library,是一个用于三维点云处理的开源库。它包含了从传感器或三维数据文件中检索三维点云的各种处理。如果说OpenCV是2D信息获取与处理的结晶,那么PCL就在3D信息获取与处理上具有同等地位,且PCL是BSD授权方式,可以免费进行商业和学术应用,可在Windows、Linux、Mac OS X等操作系统中运行。
对于3D点云处理来说,PCL完全是一个模块化的现代C++模板库,它基于以下第三方库:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、QHull,实现点云相关的获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。
2. 算法模块简介 ——PCL的几种采样方法
降采样 Downsampling,一般下采样是通过构造一个三维体素栅格,然后在每个体素内用体素内的所有点的重心近似显示体素中的其他点,这样体素内所有点就用一个重心点来表示,进行下采样的来达到滤波的效果,这样就大大的减少了数据量,特别是在配准,曲面重建等工作之前作为预处理,可以很好的提高程序的运行速度;
均匀采样 :
增采样 :增采样是一种表面重建方法,当你有比你想象的要少的点云数据时,增采样可以帮你恢复原有的表面(S),通过内插你目前拥有的点云数据,这是一个复杂的猜想假设的过程。所以构建的结果不会百分之一百准确,但有时它是一种可选择的方案。
表面重建 :深度传感器的测量是不准确的,和由此产生的点云也是存在的测量误差,比如离群点,孔等表面,可以用一个算法重建表面,遍历所有的点云和插值数据,试图重建原来的表面。比如增采样,PCL使用MLS算法和类。执行这一步是很重要的,因为由此产生的点云的法线将更准确。
3.算法模块
3.1 VoxelGrid filtering
对点云进行降采样
输入:PointCloud2
输出:PointCloud2
< launch>
< node pkg = " nodelet" type = " nodelet" name = " pcl_manager" args = " manager" output