基于全局特征描述子的激光SLAM回环检测方法
Loop Closure Detection Method of Laser SLAM Based on Global Feature Descriptor
Received: 2021-06-11
作者简介 About authors
韩超(1997-),男,浙江省宁波市人,硕士生,主要从事井下无人机定位技术研究.
针对井下环境中设备巡检时定位误差随时间不断累积的问题,提出一种适用于激光同步定位和建图技术的基于点云全局特征描述子的回环检测方法.该方法利用曲率计算点云中特征点的特征向量,通过特征向量与中心点坐标系的角度分布和尺度分布关系构建点云全局特征描述子;使用部分特征点进行位姿变换的计算,提高计算效率.通过仿真实验和开源数据集实验对所提算法进行验证.实验结果表明,所提算法在定位精度和实时性上提升明显,可以有效解决定位算法在长时间运行过程中的累积误差和全局一致性差的问题.
关键词:
To solve the problem that localization error of the underground inspection system continues to accumulate over time, a loop closure detection algorithm based on point cloud global feature descriptor is proposed, which is suitable for laser simultaneous localization and mapping (SLAM). The feature vector of each point in point cloud is calculated by curvature, then the global feature descriptor of point cloud is constructed based on the angle distribution and scale distribution relationship between the feature vector and center point coordinate system. In addition, the pose transformation of two similar frames is calculated by feature point registration to improve computing efficiency. The proposed algorithm is verified by simulation experiments and open-source data experiments. The experimental results show that the proposed algorithm has a significant improvement in localization accuracy and real-time performance, which can effectively solve the problems of increased cumulative error and poor global consistency of the localization algorithm during long-term inspections.
Keywords:
本文引用格式
韩超, 陈敏, 黄宇昊, 赵明辉, 杜乾坤, 梁庆华.
HAN Chao, CHEN Min, HUANG Yuhao, ZHAO Minghui, DU Qiankun, LIANG Qinhua.
目前,SLAM算法通过估计的相邻帧之间的位姿变换不断叠加进行位姿信息计算,随着巡检时间的增加,每次位姿估计中的偏差不断累积形成较大的累积误差,制约了算法的定位精度.
本文提出一种适用于激光SLAM的点云全局特征描述子回环检测方案,不依赖于位姿信息,利用矿井通道的几何结构特征进行匹配,通过计算与误差较小的历史场景之间的位姿变换,消除累积误差,并完成了完整SLAM算法框架的搭建,实时性好.该框架里程计部分基于激光里程计和建图(LOAM)[13]算法计算不带回环的位姿信息,回环检测部分基于曲率划分的特征点与点云质心之间的角度关系和尺度关系进行相似度检测,使用平面点和边角点配准方法优化计算速度,并由因子图优化方法保证全局一致性.最终, 通过仿真和开源数据集实验验证了所提算法的有效性,本文研究可为激光SLAM的全局特征提取及回环算法提供理论基础.
1 基于全局特征描述子的回环检测
设计的定位系统整体分为2个模块:里程计模块和回环检测模块.
里程计模块参考LOAM算法[13]实现, 输出里程计位姿信息,并根据点云三维曲率完成了特征点云的筛选,将边角特征点云Pedg和平面特征点云Ppla传递给回环检测模块.
回环检测模块中进行回环识别和位姿的更新.为实现对井下通道的几何描述,在激光雷达相对坐标系下,进行特征向量提取和中心点计算,基于点云的角度分布和尺度分布关系,构建点云的全局特征描述子;以多维描述子之间的相关性作为点云相似度的评价指标;使用特征点配准方法以改进全局配准计算耗时过大的问题;利用检测到的相似场景建立回环约束,通过因子图优化消除累积误差并保证轨迹和地图的全局一致性.回环检测模块是本文研究的重点,算法流程框图如图1所示.其中:nedg和npla分别为边角特征点云和平面特征点云对应的特征向量;Hk为关键帧k的全局描述子向量;pedg,k和ppla,k分别为关键帧k的边角特征和平面特征.
图1
图1
基于全局特征描述子的回环检测算法流程
Fig.1
Flow chart of loop closure detection algorithm flow based on global feature descriptor
1.1 特征向量提取
使用全局点云中具有代表性信息的边角特征和平面特征进行数据处理,对里程计模块中提取的边角特征点云Pedg={pedg,1, pedg,2, …, pedg,k, …}和平面特征点云Ppla={ppla,1, ppla,2 , …, ppla,k, …}分别提取特征向量.取pedg,k或ppla,k中的任意一点pi,使用k-维(KD)树搜索其所在点云中邻近的k个点,计算该部分点云的协方差矩阵,具体步骤如下.
步骤1 计算邻近k点的质心:
步骤2 计算协方差矩阵C,即质心oc到邻近点云中所有点pi的向量与其转置的内积:
步骤3 对协方差矩阵进行奇异值分解(SVD),求特征值:
式中:
步骤4 由
其中,边角特征提取线向量为特征向量nedg,邻近点投影至该方向上的向量方差最最小,为最大特征值λ3对应的特征向量n3;平面特征提取法向量为特征向量npla,邻近点投影至该方向上的向量方差最最大,为最小特征值λ1对应的特征向量
1.2 特征描述和相似度计算
设计全局特征描述子的计算方法.通过计算全局点云P中所有点的三维坐标平均值得到当前帧的点云质心oc,以点云Pedg和Ppla中所有点对应的特征向量的均值作为质心oc处对应的特征向量nc,进而计算点云的全局特征描述子,边角点云Pedg和平面点云Ppla分开计算.
遍历点云P中的所有点,确定以质心oc为原点o的参考坐标系uvw:
式中:pt为点云Pedg或Ppla中任意选取的一点;nc为点云质心处的归一化特征向量;‖pt-oc‖2为点pt到质心oc之间的欧氏距离.以pt, oc确定的坐标系如图2所示,其中:nt为点pt处归一化之后的特征向量.
图2
以上述计算得到的uvw坐标系为基准,计算点云特征向量相对于基准坐标系3个坐标轴的角度分布,则有:
式中: d为点
利用上述公式进行计算后,α,ϕ,θ,d为非线性相关的,可以替代两点的(x,y,z,n_x,n_y,n_z)
遍历点云Pedg和Ppla中所有点,与质心点oc构成点对,计算对应的
计算全局点云P中距离质心点oc最远的位置,将最大距离均分为多个区间,统计各个点相对于质心距离在区间中的分布,以此构成特征描述子的尺度分量.
最终设计的点云全局描述特征描述子为230维向量,其中前105维为边角特征点云Pedg计算得到的角度分量αe, ϕe, θe,中间105维数据为平面特征点云Ppla计算得到的角度分量αp, ϕp, θp,均以35维的向量表示,最后20维数据为当前帧点云P全部点的尺度分量βd.
图3
使用点云全局特征描述子的皮尔逊相关系数[15]作为衡量点云相似度的标准,其计算公式如下:
式中:H1=[h11h12 … h1i …],H2=[h21h22 … h2i …]为归一化后的点云全局特征描述子;
1.3 位姿变换
对筛选后相似度大于阈值的当前帧点云Pcur和历史相似帧点云Psim进行相对位姿变换的计算.相对位姿的计算使用点云的边角特征和平面特征配准方法,即使用三维点的曲率计算公式[13]计算点云不同位置处的光滑度,以光滑度为依据提取点云的边角特征和平面特征,只对边角特征和平面特征进行点云配准,提高了计算速度.
为减少点云的误匹配概率,使用曲率估计方法对点云配准效果进行验证.当前帧边角点和平面点分别在相似帧边角特征和平面特征中搜索匹配点,对相似帧的特征进行主成分分析,计算其特征值
对于配准后的相似帧点云,构建需要求解的目标函数,使用Levenberg-Marquardt法迭代求解使目标函数最小的位姿变换,其目标函数如下:
式中:上标L和W分别为局部和世界坐标系;上划线-为测量值,~为估计值;
边角特征和平面特征的配准如图4所示,其中:黑色点云为当前帧;绿色点云为历史相似帧;黑色加粗点为当前帧边角特征点坐标
图4
1.4 因子图优化
通过位姿变换方法可以获得当前关键帧与历史相似帧之间的相对位姿变换,以此建立新的回环约束,构建因子图如图5所示.其中:g为测量函数;R为测量噪声协方差矩阵;因子图由一系列不同时刻位姿测量值sa (a=0,1,2,…)和地图路标点ma (a=0,1,2,…)的观测量构成.每条实线为1次前后帧之间的位姿累积测量事件,每条虚线为1次检测到的回环约束测量事件,将因子图表达转换为线性化的约束的线性矩阵Ω的形式,每一个新的测量值都会致使信息矩阵发生更新.
图5
对于1次测量事件,
因子图优化的过程为求解目标函数得到概率最大的地图和位姿信息路径,其目标函数为测量约束的集合,目标函数公式如下:
因子图优化的方法将图映射为信息矩阵的表达方式进行求解,利用图的稀疏性特点,在求解过程中保持较低的计算量和错误的数据关联,优于一般的滤波方法[17].
2 实验结果与讨论
2.1 准确率和召回率实验
准确率和召回率是衡量回环检测模块中相似度检测算法性能的重要指标,在回环检测算法设计中需首先保证较高的准确率,其次在满足高准确率的同时尽可能提高相似度检测模块的召回率.
准确率和召回率的计算方法如下:
式中:η为准确率;ε为召回率;TP为正确识别出同一场景的数量;FP为将不同场景错误识别为同一场景的数量;FN为同一场景被错误识别为不同场景的数量.
图6
由图6可知,在保证准确率为100%的条件下,召回率最高可以达到50.76%,超过一半的相似场景会被召回,此时阈值ω 为0.95,随着阈值ω进一步降低,召回率增大,准确率降低,回环检测可能出现错误匹配,得到错误的位姿信息,对定位和建图产生严重的影响、因此应保证高准确率,在后续算法实验中均将阈值ω设置为0.95,此时准确率为100%.
2.2 定位精度实验
本文进行了多组仿真和开源数据集下的定位精度实验.实验平台CPU为AMD 3600,内存16 GB,算法采用C++语言编写,均在Ubuntu 18.0的机器人操作系统(ROS)进行测试.仿真实验中,使用文献[19]提供的开源数据进行测试,该数据来自于美国国防部高级研究计划局(DARPA)在匹斯堡举行的“DARPA地下煤矿挑战赛”.使用该数据集进行了4组实验,其中Sim_mine_1和Sim_mine_2为仿真实验,将井下三维模型导入Gazebo仿真系统,添加传感器进行数据采集,模拟巡检工作.搭建的仿真实验环境如图7所示,仿真实验中以无人机作为载体,上方搭载Velodyne-16激光雷达进行数据采集.
图7
图8
算法定位精度实验中,进行初始坐标系对齐,以均方根误差,全局最大误差值以及终点处的绝对误差作为评价定位精度的指标,实验结果如表1所示, 其中:序号1,2,3,4分别为实验Sim_mine_1、实验Sim_mine_2、实验M100_Underground和实验M100_Tunnel.
表1 定位精度实验结果
Tab.1
序号 | 实验算法 | 最大 误差/m | 终点 误差/m | 均方根 误差/m | 巡检 距离/m |
---|---|---|---|---|---|
1 | LOAM | 3.48863 | 3.45962 | 1.52933 | 618.007 |
LOAM+ICP | 2.50563 | 0.14402 | 1.03654 | 618.007 | |
本文算法 | 1.46447 | 0.06376 | 0.58827 | 618.007 | |
2 | LOAM | 1.69615 | 1.53225 | 0.83298 | 638.446 |
LOAM+ICP | 0.54603 | 0.02760 | 0.32963 | 638.446 | |
本文算法 | 0.40609 | 0.02806 | 0.17783 | 638.446 | |
3 | LOAM | 1.16494 | 1.15254 | 0.71497 | 264.852 |
LOAM+ICP | 0.82921 | 0.08813 | 0.43781 | 264.852 | |
本文算法 | 0.47062 | 0.09923 | 0.21525 | 264.852 | |
4 | LOAM | 1.92765 | 0.16456 | 1.06969 | 197.782 |
LOAM+ICP | 0.45537 | 0.04628 | 0.22482 | 197.782 | |
本文算法 | 0.39201 | 0.05806 | 0.15977 | 197.782 |
4次实验中,与没有回环检测模块的LOAM算法相比,LOAM+ICP算法和本文算法在最大误差,终点绝对误差以及均方根绝对误差3个指标上均得到明显提高.没有回环检测模块的定位算法随运行时间增长,累积误差逐步增大,体现为LOAM算法的终点绝对误差明显大于其他两种算法,这是造成LOAM算法全局轨迹的均方根误差较大的主要原因.
使用定位评价和可视化工具(EVO)集绘制 Sim_mine_1实验中的定位轨迹,初始坐标轴x,y,z对齐后的轨迹曲线如图9所示,其中:t为时间.3种算法在z坐标下的差值明显,LOAM算法没有回环检测模块,累积误差未得到校正,最终偏移误差绝对值最大;LOAM+ICP和本文算法在加入回环检测后,在巡检轨迹中间段产生一定偏移,但通过回环检测校正了累积误差,全局轨迹的均方根误差较小.
图9
与LOAM+ICP算法相比,本文算法的定位精度更高,均方根误差较小,但两者终点绝对误差较为接近.其原因在于LOAM+ICP算法计算速度慢,影响了里程计算法的精度,中期误差大,但当检测到回环时仍能计算出准确的位姿,消除累积误差.实验中LOAM+ICP算法和本文算法回环检测部分各模块的计算耗时如表2所示.
表2 算法各模块运行时间
Tab.2
算法 | 相似度检测 时间/ms | 位姿计算 时间/ms | 回环时间/ms |
---|---|---|---|
LOAM+ICP | 12.6676 | 122.3668 | 147.0491 |
本文算法 | 16.2595 | 67.4053 | 88.7274 |
上述实验数据均为实验过程中记录的单次完整执行对应模块需要的平均耗时.实验结果显示,相似度检测模块中,LOAM+ICP基于位置进行判断,而本文算法需要计算点云描述子,算法步骤较多,在该模块中耗时增加 3.5919 ms;而在位姿计算模块,LOAM+ICP通过ICP方法计算相似帧之间的位姿变换,对点云中的所有点进行配准、目标函数的构建和迭代求解,而本文算法基于曲率计算方法,仅对边角和平面特征进行处理和计算,优化了计算效率,平均耗时由 122.3668 ms降至 67.4053 ms,降低了44.92%;回环时间反映了完整执行一次回环检测模块需要的平均时间,得益于位姿计算时间的明显下降,回环检测模块的整体耗时由 147.0491 ms降低为 88.7274 ms.
在LOAM+ICP算法中由于回环检测模块平均耗时超过100 ms,低于点云数据采集频率10 Hz.且基于全局描述子的回环检测方法解决了 LOAM+ICP算法召回率随累积误差增大不断减小的问题,在长时间运行中更加具有优势.
因子图优化模块对于保证轨迹的全局一致性和平滑性有重要作用.Sim_mine_1实验使用本文算法进行因子图优化前后的轨迹如图10所示.其中:绿色轨迹为因子图优化前轨迹;红色轨迹为因子图优化后轨迹.由局部放大图可以看出,优化后点云地图无重影,全局一致性良好,因子图优化前轨迹的均方根误差为 0.888733 m,大于优化后的 0.588270 m.
图10
图10
因子图优化前后轨迹
Fig.10
Localization trajectory before and after graph optimization
3 结语
针对井下巡检时定位误差随时间不断累积的问题,提出一种适用于激光SLAM的基于点云全局特征描述子的回环检测方法.该方法具有以下优势:① 充分利用了井下巷道的结构特征,相似度检测不受位姿信息约束,通过曲率分别提取通道四周墙壁边角处和平面处的特征向量,利用特征向量和点云中心点之间的角度关系和点云通道和中心点之间的距离关系构建了全局特征描述子;② 提高了计算速度,基于边角点和平面点配准策略,进行高效率的位姿变换算法研究;③全局一致性优,采用因子图优化获得了使全局误差最小的位姿,校正了累积误差.
实验结果表明,本文算法定位精度相较于不加回环检测的LOAM算法和使用距离信息进行回环检测的LOAM+ICP算法得到较大提升,在长时间长距离的实验中提升效果显著.实验结果对于井下执行长时间的巡检任务具有指导意义,未来工作中考虑进一步研究,将算法应用于井下巡检无人机平台上,探究在实际应用场景中的可行性.
参考文献
基于分布式无味边缘粒子滤波的同步定位与地图构建
[J]. ,
Distributed unscented marginalized particle filter for simultaneous localization and mapping
[J]. ,
A comparison of sensors for underground void mapping by unmanned aerial vehicles
[C],
基于直线特征的机器人自主定位方法
[J]. ,
Autonomous localisation method based on linear feature for robots
[J]. ,
Robust GICP-based 3D LiDAR SLAM for underground mining environment
[J]. ,DOI:10.3390/s19132915 URL [本文引用: 1]
Efficient laser-based 3D SLAM for coal mine rescue robots
[J]. ,DOI:10.1109/ACCESS.2018.2889304 [本文引用: 1]
An accurate description of laneway space with self-localization is a key issue when coal mine rescue robots (CMRRs) perform post-disaster exploration and rescue missions. The 3D simultaneous localization and mapping (SLAM) is an effective but time-critical and highly challenging task in complex laneway scenarios, especially after disasters. In this paper, we propose a novel real-time 3D SLAM based on normally distributed transform (NDT) that employs pose graph optimization and loop closure to further improve mapping consistency. We innovatively extract floors and walls in the laneway as plane nodes to construct landmark constraints, in addition to applying pose nodes from the lidar odometry via NDT. A lightweight and effective loop detection method is conducted using odometry with an appearance-based approach to building a globally consistent map. The proposed method was evaluated on a public dataset, and field tests in an underground coal mine were performed. Results indicate that our algorithm can achieve lower computational complexity and drift, which can provide pose estimation and environment description for CMRRs to realize remote control assistance and automatic navigation in coal mine rescue missions.
ORB-SLAM2: An open-source SLAM system for monocular, stereo, and RGB-D cameras
[J]. ,DOI:10.1109/TRO.2017.2705103 URL [本文引用: 1]
VINS-mono: A robust and versatile monocular visual-inertial state estimator
[J]. ,DOI:10.1109/TRO.2018.2853729 URL [本文引用: 1]
Bags of binary words for fast place recognition in image sequences
[J]. ,DOI:10.1109/TRO.2012.2197158 URL [本文引用: 1]
LeGO-LOAM: Lightweight and ground-optimized lidar odometry and mapping on variable terrain
[C], Spain:IEEE,
LIO-SAM: Tightly-coupled lidar inertial odometry via smoothing and mapping
[C],
基于激光点云NDT特征的两步回环检测
[J]. ,
Two-step loop closure detection based on laser point cloud NDT features
[J]. ,
LOAM: Lidar odometry and mapping in real-time
[EB/OL]. (
Normal estimation for pointcloud using GPU based sparse tensor voting
[C],
Francis galton’s account of the invention of correlation
[J]. ,
融合图像质量评价指标的相关性分析及性能评估
[J]. ,
Validation and correlation analysis of metrics for evaluating performance of image fusion
[J]. ,
Performance comparison of GNSS/INS integrations based on EKF and factor graph optimization
[C],
OneShot global localization: Instant LiDAR-visual pose estimation
[C],
Explore locally, plan globally: A path planning framework for autonomous robotic exploration in subterranean environments
[C],
/
〈 | 〉 |