泡泡点云时空,带你剖析PCL点云库
作者:徐二帅
来源:个人总结
审核:吕佳俊
欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权
大家好,欢迎来到泡泡点云时空的PCL点云库推广版块,今天继续给大家分享PCL点云库的使用。PCL点云库作为点云算法研究开源库,不断的集成最新的点云研究领域成果,优化代码结构,算法涉及点云去噪、点云滤波、点云分类和点云配准等方面,为点云研究人员提供了点云处理函数调用接口,极大简化点云算法的测试和应用,今天给大家带来PCL点云库中点云配准c++类总结,具体类的使用可参照PCL官网提供documentation网页,网址:http://docs.pointclouds.org/1.9.1/
基于对应3D匹配计算变换矩阵
点云配准中确定两点云中多个同名点对可实现点云的配准,具体的,三维点云构造点几何邻域特征或深度学习特征,进而进行特征匹配获得最优同名点对,最后计算对应点对间最优变换矩阵。
CorrespondenceEstimation类
用来确定两点云中的对应匹配关系。
CorrespondenceRejectorFeatures类
能够实现基于特征匹配的对应点对提取。
SampleConsensusPrerejective类
实现了基于RANSAC方法的对应点对外点去除,用于姿态评估和点云配准中的几何一致性限制,从而保证后续算法的准确和高效。
TransformationEstimation3Point类
实现使用三个匹配点计算两点云变换矩阵。
TransformationFromCorrespondences类
实现三个及以上匹配点间变换矩阵的计算。
TransformationEstimationDQ类和TransformationEstimationDualQuaternion类
实现基于对偶四元数的点云姿态估计。
TransformationEstimationLM类
实现基于对应匹配点对,用Levenberg-Marquardt优化的变换矩阵估计。
TransformationEstimationPointToPlane类
实现基于Levenberg-Marquardt优化的匹配点对间最小点到平面距离的最优变换矩阵计算。
TransformationEstimationPointToPlaneWeighted类
在TransformationEstimationPointToPlane类的基础上加入了对应匹配点的权重,以适应更为复杂场景点云配准任务。
TransformationEstimationPointToPlaneLLS 类
基于线性最小二乘的点到平面距离累计最小化约束,对应点到平面的距离计算加入法向量约束,具体内容参照论文:Linear Least-Squares Optimization for Point-to-Plane ICP surface registration 2014
TransformationEstimationPointToPlaneLLSWeighted类
在TransformationEstimationPointToPlaneLLS 类基础上加入了对应点匹配权重,从而更合理的计算匹配点间变换矩阵。
TransformationEstimationSVD类
使用SVD分解策略完成匹配点对的变换矩阵计算。
TransformationValidationEuclidean类
实现了给定对应匹配的变换,并计算可靠性得分。
图1 对应点匹配计算转换矩阵
基于迭代最近点的配准方法
IterativeClosestPoint类
实现迭代最近点算法(ICP)。
IterativeClosestPointNonLinear类
ICP算法的变体,后端使用Levenberg-Marquardt作为优化。
GeneralizedIterativeClosestPoint类
ICP算法的变体,实现了一般化的ICP算法,具体参考Generalized-ICP论文。
GeneralizedIterativeClosestPoint6D类
集成了L*a*b*颜色空间到Generalized-ICP算法中。
IterativeClosestPointWithNormals 类
ICP算法的变体,以点到平面的最小距离作为迭代优化对象,实现点云配准。
基于RANSAC框架的点云粗配准
FPCSInitialAlignment 类
实现《4-points congruent sets for robust pairwise surface registration》中的4PCS算法;
KFPCSInitialAlignment类
实现《Markerless point cloud registration with keypoint-based 4-points congruent sets》中的k4PCS算法。
图2 4PCS粗配准方法
基于概率模型的点云配准方法
NormalDistributionsTransform(NDT)类
统计分析点云中法向量分布,来实现点云的转化和配准。具体参考The Three-Dimensional Normal-Distributions Transform an Efficient Representation for Registration(2009)实例参考网址:http://www.pclcn.org/study/shownews.php?lang=cn&id=80
点云配准流程框架
MetaRegistration类
提供了一个迭代配准流程,使用该流程可以将新加入点云不断配准到基准点云中;
IncrementalRegistration类
提供了一种配准点云流的方法,其中每个云都将与前一个云对齐,其中对齐方法限定为ICP算法。
SLAM相关点云配准方法
GraphHandler类
提供了通用SLAM的实现流程;
LUM类
实现了Lu和Milios的GraphSLAM方法,GraphSLAM算法实现了将待配准点云以图的形式进行配准。具体论文参照:《Globally Consistent Range Scan Alignment for Environment Mapping》和《The Efficient Extension of Globally Consistent Scan Matching to 6 DoF》,
如果你对本文感兴趣,想要下载完整文章进行阅读,可以关注【泡泡机器人SLAM】公众号。
欢迎来到泡泡论坛,这里有大牛为你解答关于SLAM的任何疑惑。
有想问的问题,或者想刷帖回答问题,泡泡论坛欢迎你!
泡泡网站:www.paopaorobot.org
泡泡论坛:http://paopaorobot.org/forums/
泡泡机器人SLAM的原创内容均由泡泡机器人的成员花费大量心血制作而成,希望大家珍惜我们的劳动成果,转载请务必注明出自【泡泡机器人SLAM】微信公众号,否则侵权必究!同时,我们也欢迎各位转载到自己的朋友圈,让更多的人能进入到SLAM这个领域中,让我们共同为推进中国的SLAM事业而努力!
商业合作及转载请联系liufuqiang_robot@hotmail.com