定位、建图与 SLAM

扫描匹配

扫描匹配是机器人通过比较前后相隔片刻拍下的两张周围环境快照,来弄清自己移动了多远的方法。每一张快照——也就是一次扫描——是激光或深度传感器测出的一束距离读数,本质上是附近墙壁和物体的一圈点状轮廓。如果机器人向前挪了一点、又转了一点,那么第二张轮廓看起来就会像第一张恰好平移、旋转了那么多。扫描匹配做的,就是找出这个“平移加转动”:那唯一的一次移动,能让新轮廓整整齐齐地落在旧轮廓上。

想象同一张平面图在描图纸上印了两份。你把其中一张在另一张上慢慢推动、轻轻转动,直到两边的线条尽可能地重合。你推了多少、转了多少角度,就是答案。机器人用数字做着同样的事:它尝试各种细小的平移和旋转,为每一个猜测打分,看两次扫描吻合得有多好,然后留下让它们对得最齐的那一个。这个胜出的“平移加旋转”,就是机器人自上一次扫描以来估计出的运动。

这之所以重要,是因为它让机器人能凭眼前所见来追踪自己的运动,而不必只靠车轮的转数——在光滑或颠簸的地面上,车轮会打滑、会“撒谎”。把这些一次接一次的扫描估计随时间叠加起来,就勾勒出机器人的路径,也有助于建出地图,因此扫描匹配是激光雷达 SLAM 和许多深度相机系统里的主力。它的弱点是“千篇一律”:在又长又空的走廊里,每一次扫描看上去都一样,于是没有清楚的办法判断你沿着它滑了多远,估计就会变得摇摆不定。

扫地机器人撞上椅子腿、打了个滑,车轮数也数错了——但扫描匹配发现墙并没有像车轮所说的那样移动那么多,于是修正了这个估计。

当车轮撒谎时,周围的环境会说出真相。

把最新的扫描与不断扩大的地图(而不只是上一次扫描)相匹配,叫做“扫描对地图”匹配,它通常漂移更小。

又称
scan registration扫描配准掃描配準