这篇论文是2021年ICRA上一篇很新的激光SLAM与点云信息融合的论文,这篇论文有意思的点在于采用了一种很新奇的语义信息获取方法,并用这种方法延伸出一种基于物体的SLAM方法。
一般来说论文相关工作这部分没有太多好说的,但是这篇论文中作者提到了一句很有意思的话,作者认为目前关于语义信息与SLAM的整合的研究,语义信息的应用主要分为两个方向:一个方向是利用神经网络对点云进行分割,对每个点都打上一个语义标签;另一个方向则是所谓的基于物体的SLAM方法,这个方式利用语义去识别物体,利用物体的整体去进行后续的SLAM过程。
参考论文后续的内容,这里的两种方法,个人的理解是第一种方法指的是利用神经网络处理点云数据,得到每个点的语义标签之后,再以点为基本单位去处理后续的内容,本质上还是一个基于点的SLAM过程,而第二种方法使用的语义信息,更倾向于大范围的物体,直接将具有同一个语义标签的点组合为一个整体,将整体作为SLAM过程的基本单位。举个例子,对于点云中的一个瓶子,第一种方法会拿一大堆标记为瓶子的点作为后续的基本单位,而第二种方法直接将瓶子作为一个整体,后续的基本单位就是这个瓶子。
在这篇论文中,作者认为墙壁、柱状物这种所谓的稳定静态的物体,对于定位与建图的鲁棒性有着最大的贡献,而那些动态的物体,本身对建图的意义并不是太大,所以在基于物体的SLAM中,使用的就是这些稳定静态的物体。为了增加使用到的物体,论文将稳定静态的物体的范围扩大为墙壁、柱状物和停放在路边的车辆。
提取的过程也并不是直接使用神经网络,对于得到的点云信息,先利用车辆的里程计进行一遍畸变的校正,之后滤除地面,对于剩余的点云,聚类得到物体,之后将物体投影到二维平面上,用一个bounding box将整个物体包住,利用物体的大小、位置、运动状态来判断物体是否是需要的稳定物体。
从论文提供的效果图可以看到,车辆、路灯杆以及建筑物的边缘(墙壁)在转换为鸟瞰图之后有着比较明显的形状,利用这些信息将稳定静态物体筛选出来。
对于上面提取到的稳定静态物体,根据类型不同,保存不同的信息,柱状体抽象为一个圆,所以保存半径和圆心,线段保存两个端点,不动的车辆则保存为一个矩形,保留一点、朝向和车辆的宽高。
这些信息会在后面送入到后端优化的部分进行优化,得到更加准确的物体规模信息和位置信息。
对于一个SLAM过程,优化的目标残差是一个需要提前明确的问题,在基于物体的SLAM中,一样需要划分这样的残差,论文将残差划分为了三部分,对应上面提取到的三种类型的物体,利用里程计的输出和测量值确定一个差值:
其中π代表一个提取函数,提取自变量中需要的某几项内容,柱状物提取前两个内容,即圆心,静止车辆提取前三项内容,即一个点和车辆朝向,以此表示包裹车辆的矩形的朝向。对于墙壁,提取的内容会稍作处理:
提取的内容变为线段的高度和夹角。
定义好残差之后,论文公式化了基于物体的SLAM的优化目标,用U表示里程计的位姿,用Z表示物体地图,整个的SLAM过程就可以抽象为一个式子:
其中对后验概率的转换为:
由于遮挡效应的存在,离传感器越近的物体,上面的点的数量就更多,其可信度也就越高,针对这一点,论文引入了一个测量可信度:
其中di表示传感器到物体中心的距离,R表示传感器的感知范围。此外,论文还增加了一个测量一致性的参数:
其中si表示当前测量的尺度,μ和σ表示的则是测量值的平均值和标准差。
利用这两个量,可以确定一个权重w:
根据权重排序之后,一定比例的物体可以在物体地图中更新,但是这种更新并不应用于墙壁,因为测量的长度并不一定是实际的长度,这里本质上还是线段的提取不好确定长度。
基于物体的回环检测,主要是引入了一种很新奇的分布检测。对于一般的回环检测,使用的大多数是词袋模型,而换为基于物体的回环检测之后,这个过程也需要确定一个类似描述子的存在,这里称为帧的签名。对于回环帧中柱状物,提取出其中心点,记为P,采用下面的两种方法计算描述子:
其中d表示计算距离的函数,对这两个集合,降序排序之后作为帧的描述子(签名)。
候选回环帧的检测则更多依靠距离,对于两个待检测的帧,统计距离小于阈值的点的数量,对于两个集合D和T,计算数量为nD和nT,基于此计算并加权求和,得到相似度分数S:
相似度分数高于一定阈值则认为是候选回环帧,需要再经过一次检验。论文关于候选回环帧的检验没有提太多,因为使用的是另一篇论文中提出的方法,如果重复点的数量足够多而且没有大部分的重复,那么这样的匹配就可以认为是可靠的匹配。
在这篇论文中,作者利用物体的语义信息,提出了很有新意的“基于物体的SLAM”,论文认为现有的利用对点云语义信息的利用主要包括两种方法,一种是利用神经网络对点云中的点做语义标注,之后根据不同点的不同语义信息做后续的操作,而另一种则是将同语义点云整合为一整个物体进行后续的操作。作者认为在定位与制图的过程中,能够使得过程更加鲁棒的,是路灯(柱状物)、墙壁(建筑物)这种能够长期保持静态的物体,考虑到场景的通用性,还将停在路边的车也视为长期静态的物体。不同于利用神经网络给点云打标签的方法,提取这些物体的语义信息时,首先利用汽车里程计信息进行畸变的校正,校正后的点云滤除地面,对剩余部分进行聚类得到物体,之后用bounding box框住这个物体的点云范围,转换为鸟瞰图之后,利用点云的2D投影形状,筛选出墙壁、柱状物和静止的车辆。之后再针对这些特征信息,做SLAM后续的步骤。后续的步骤中针对使用的物体特征,做了单独的SLAM过程的设计,在地图更新时,转换为对物体地图的更新,并且在回环检测时也使用的是物体信息,利用距离信息表示分布,利用分布去表征一个场景,以此进行回环检测。