PCL简介
Point Cloud Library (PCL) 是一个独立的大型的处理二维/三维图像和点云数据的开源工程,由Willow Garage公司开发,起初只是以PR2机器人在3D数据感知算法处理上速度更快为目标,后来才渐渐发展为一个独立的函数库。PCL包含了许多先进算法,比如滤波,特征估计,表面重建,模型拟合和分割等等。
因为PCL是开源的,所以无论是商用还是研究都是免费的;
赞助商有Open Perception, Willow Garage, NVIDIA, Google, Toyota, Trimble, Urban Robotics, Honda Research Institute, Sandia, Dinast, Optronic, Ocular Robotics, Velodyne, Fotonic, and MKE.
PCL历史
构成现在PCL算法基础的第一个算法,是由Dr. Radu Bogdan Rusu在德国慕尼黑工业大学读博士期间开发的,后来在2009年底由Willow Garage公司进一步开发完成。 Dr. Rusu的工作的目的是要为三维点云数据处理的研究及应用,建立出一个共同的基础架构。自从2010年3月开始,具有模块化库的想法开始初具雏形,并已经写了大量的工具,并作为机器人操作系统(ROS)框架的一部分,来帮助PR2机器人在复杂的3D环境中处理和导航。就这样,研究工作继续进行,但直到2010年11月才作出决定,开始建立一个称为PCL的新的独立项目,作为一个整体这将有利于提高3D领域的研究。
在2011年3月底,PCL迈出了第一步,作为一个独立项目推出了自己网页域名,并迅速得到如NVIDIA, Google, Toyota, and Trimble等公司的资金支持,之后仅仅三个月后,即在2011年6月,就得到了全世界超过120个开发者和贡献者的支持,在六大洲,拥有多达30个不同的大学,研究机构,商业公司对这个项目做着贡献。
今天,PCL继续发展,并且凝聚了全世界许多不同的研究人员和工程师在在同一框架下研究3D感知。
PCL版本
截至到目前,PCL的最新版本为PCL 1.6.0。
pcl–v1.6.0 (released on 2012.07.17)
pcl–v1.5.1 (released on 2012.02.22)
pcl–v1.4.0 (released on 2011.12.31)
pcl–v1.3.1 (released on 2011.11.30)
pcl–v1.3.0 (released on 2011.10.31)
pcl–v1.2.0 (released on 2011.09.30)
pcl–v1.1.1 (released on 2011.08.31)
pcl–v1.1.0 (released on 2011.07.18)
pcl–v1.0.1 (released on 2011.06.29)
pcl–v1.0.0 (released on 2011.05.11)
pcl–trunk (latest unstable devel – updated daily)
模块
PCL的各模块
pcl_filters 去除噪点
pcl_features 三维特征提取
pcl_registration 将点云融合到一个全局模型中
pcl_kdtree 基于FLANN的kdtree实现最近邻搜索
pcl_octree 基于八叉树实现最近邻搜索
pcl_segmentation 分割点云
pcl_sample_consensus 对点云进行拟合(线、面、园、球、柱面、平行线),拟合算法包括:
- SAC_RANSAC – RANdom SAmple Consensus
- SAC_LMEDS – Least Median of Squares
- SAC_MSAC – M-Estimator SAmple Consensus
- SAC_RRANSAC – Randomized RANSAC
- SAC_RMSAC – Randomized MSAC
- SAC_MLESAC – Maximum LikeLihood Estimation SAmple Consensus
- SAC_PROSAC – PROgressive SAmple Consensus
pcl_surface 从三维扫描重建表面,可以是mesh/convex hull/concave hull
pcl_range_image 深度图,由kinect获取后可转换为点云
pcl_io 输入输出,PCD (Point Cloud Data) 文件的读写,OpenNI的接口(没有实现微软SDK的接口)
pcl_visualization 类似于OpenCV中highgui的作用,基于VTK实现三维可视化(VTK是一个极其庞大的库)
PCL安装
Windows下VS2010可以直接下载傻瓜安装包
其他的IDE比较麻烦,需要下源代码,以及依赖库
必需的库有:
boost
Eigen
FLANN
可选项有:
VTK,用于pcl_visualization
QHull,用于pcl_surface
OpenNI,用于pcl_io
CUDA
Ubuntu下ROS安装
$sudo apt-get install ros-fuerte-pcl
注:我现在下载的是PCL1.6.0 Cmake2.8.10版本
这只是我对PCL类库的最初的了解,又买了本朱德海编写的《点云库PCL学习教程》,无奈发现国内类似的书籍太少了;
这就开始了我学习PCL的历程。
推荐;2个官方网站http://pointclouds.org/国外官网
http://www.pclcn.org/国内论坛