Figure 1. 激光雷达沿着方位角(浅蓝)与放射方向(黄)的Bin分割 [1]Figure 2. Scan Context示意图 [1]
1
浅读文章Scan Context,从英文字面理解就是“ 扫描 上下文 ”。类比于我们阅读的时候,需要理解上下文,才能明白其意,LidarSLAM在进行回环检测的时候,也需要将“上下文” (之前的数据)进行比较,方才知道我们是不是又走到了之前的同一个地方( 回环 )。Scan Context这篇文章由韩国KAIST大学的Giseop Kim和Ayoung Kim所写,它的主要特点是提出了Scan Context这个非直方图的全局描述符 ,来帮助我们对“上下文”(当前/之前的数据)进行更快速、有效地搜索。典型的应用就是在LiDAR SLAM中进行回环检测和Place Recognition。2
提出的方法•The representation that preserves absolute location information of a point cloud in each bin (如图2所示)• Efficient bin encoding function• Two-step search algorithm3
公式解读: • 就是指the set of points belonging to the bin where the ith ring and jth sector overlapped。• z(⋅) 是指 中一个point P 的Z坐标。• 直接使用最大z坐标值 z(p),作为这个bin的value。
小红薯: 且慢,大师兄!小红薯: 古希腊哲学家赫拉克利特说,“人不能两次踏进同一条河流”。小红薯: 这样来比较两个点云,而没考虑每次不可能在exactly同一个位置和角度观察,是不是too young, too simple了呢!
Figure 3. Column Shift示意图 [1]咱们可以看到在column方向发生了水平位移,但是竖着的row方向没有变化。为了解决这个问题,文中采用了一个“地球人都能想到的方法”,那就是不断尝试各种角度的column shift。注意的是,旋转candidate point cloud有个resolution,那就是之前提到的。我们使用公式(7)进行最佳shift的选择,找到最好的 n∗后,用公式(6)进行distance计算。
注意:这里咱们通过找最好的 n∗,还有一个意想不到的好处,那就是可以给ICP提供一个Good initial rotation value! (就是ICP代码中的predicted pose)
Figure 4. Ring key示意图 [1]由内而外,一圈一圈的ring key通过对Scan Context Matrix的每一行row r 进行ψ ( ⋅ )的encoding就变成了一个N r 维度的Vector k:
The ring encoding function ψ psi ψ is a occupancy ratio using L0 norm:
小红薯: 大师兄,这里的r0是什么意思呢?大师兄: 这是L0 norm(范数)的意思,其实L0 norm并不是一个真正的norm,它就是the total number of non-zero elements in a vector 。 比如,(2,0,1,0,9)这个vector的 L0 norm就是3,因为有3个非零数。大师兄: 这样一来,咱们统计每一圈的row中有多少个非零数值,那这就和rotation没啥关系啦(也就是原文中所说的rotation invariance)! 这样就能够达到快速的search。
4
Figure 5. SC在ICP初始化中的应用 [1]4.2 ScanContext在全局重定位中的应用在深蓝学院第四章作业中,我们应用了ScanContext在全局重定位中的效果。如果初始化不在原点,且没有全局重定位,效果如下:如果加入ScanContext进行全局重定位,效果如下图:4.3 Future Works在文章最后,作者提到可以使用更好的bin encoding function (eg., a bin’s segmantic information)来提升性能,目前咱们只是用了一个很简单的max Z(p)来找Z轴高度上的最高点。对于有梦想的读者,也期待你的贡献! 审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !