SLAM(Simultaneous Localization and Mapping)
SLAM比较专业的解释为:机器从未知环境的未知地点出发,在运动过程中通过传感器重复观测到的环境特征定位自身位置和姿态,再根据自身位置构建周围环境的增量式地图,从而达到同时定位和地图构建的目的。定位更新是指在已知机器人初始位姿的条件下,结合本体运动模型,通过将观测到的特征与地图中的特征进行匹配,求取它们之间的差别,进而更新机器人位姿的定位方法。建立了场景地图,剩下的就是根据地图实现自身的定位,这也是
解决陌生环境定位和地图构建问题用的就是SLAM(Simultaneous Localization and Mapping)技术,人通过双眼和耳朵去熟悉陌生的环境,并在逛完一圈回到起点后即在大脑里形成一幅大致的环境地图。同样机器在未知环境中,通过自身传感器在第一次运动过程中去采集陌生环境中的场景信息并生成一张地图。下次我再走到相似的位置时,传感器采集到的数据去和我记忆里的地图对比,相似度达到一定概率,机器就知道我现在在哪里了。
SLAM比较专业的解释为:机器从未知环境的未知地点出发,在运动过程中通过传感器重复观测到的环境特征定位自身位置和姿态,再根据自身位置构建周围环境的增量式地图,从而达到同时定位和地图构建的目的。SLAM按实现传感器来分,主要包括激光SLAM和视觉SLAM两大类,本文侧重介绍激光SLMA。
![]()
产品功能
SLAM在室内机器人和开放道路自动驾驶车辆两个典型应用场景所需要实现的功能并不相同,最典型的区别是室内机器人几乎可以去工作空间任意没有障碍物的地方,没有什么限制;而自动驾驶车辆要遵循复杂的道路交通规则,虚线可变道,实线不可变道,这导致两者在建图方式和最终生成的地图格式上都有所不同。室内机器人以商超商用清洁机器人为例,开放道路自动驾驶车辆以城区主干道行驶的RoboTaxi为例。
一
扫描地图
对于商超场景,机器人只须在室内有限区域内实现导航,而无须知道自己在物理世界的经纬信息,因此商超清洁机器人的扫图只需要一个8/16线的低线束主激光,结合惯导即可实现扫图工作。主激光提供场景深度信息,惯导结合码盘,提供基本的移动信息。由于惯导的工作原理,连续扫图下来会有累积误差,因此后续需要进行闭环检测。对于空间特征不明显的场景,还可以加配相机,提高扫图的质量。
对于开放道路场景,RoboTaxi需要从地图里知道自己在哪条车道,所在车道的类型(左转、右转、直线、应急、公交),旁边车道的类型,两条车道线之间是虚线还是实线,交通标识(限速标识、急转弯标识等),人行横道等信息。因此单纯依靠激光传感器没法定位物理世界经纬度,至少需加上高精度GNSS。高精度GNSS在立交桥下,涵洞内,密集高楼旁等遮挡比较严重的地方又会出现定位漂移,因此融合IMU的高精度组合导航,高线束扫图激光成为开放道路激光SLAM建图的硬件标配。

二
地图类型
机器人所用的地图绝大多数为栅格地图,所谓栅格地图,即是将地图离散化为一个个小的栅格,每个小栅格可代表三种状态:占用、空闲、未知。这样所有的栅格组成的一张图就可以代表可通行区域(白)、障碍物区域(黑)和未知区域(灰)。

RoboTaxi的行驶场景注定它无法简单的使用只有三种状态的栅格地图,必须在栅格地图上体现更多的交通规则信息,就是现在异常火爆的高精度地图。高精地图是一类定位精度达到厘米级,其中包含了驾驶辅助信息(车道类型、交叉路口布局及路标位置等)及语义信息(限速信息、斑马线位置及车辆转弯开始位置等)。

三
地图处理
机器人栅格地图
机器人扫描地图完成后,由于传感器本身及环境的噪声,地图通常需要经过处理后才能正式生成机器人可用的栅格地图。
(a)噪点处理
扫图过程中不可避免的会存在移动障碍物(行人、手推车等),扫图完成会在栅格地图上呈现不可通行的黑色噪点区域,这部分区域需要人工恢复至可通行区域,以便导航功能正常;多数激光无法识别玻璃,导致多玻璃墙的场景,玻璃后面会被识别为可通行区域,这部分也需要人工处理为未知区域,以免发生撞玻璃问题。
(b)重影处理
典型的重影表现为实际环境中的一面墙在地图里变成了两面平行相近的墙,可能的原因有激光运动畸变、闭环不成功问题、激光精度问题等。重影会影响导航与定位。理想的情况是可以通过后期的算法处理掉重影,不理想的情况下只能从头开始扫图了。
(c)闭环检测
闭环检测,是指机器人在扫图过程中,判断当前区域已经来过,从而将当前区域扫描地图与之前扫描地图进行匹配,达到闭环的目的。但是,由于传感器本身及周围环境噪声的存在,下一次机器人再路过相同的局域时,极有可能发生“梦里寻她千百度,蓦然回首,却不相识”的尴尬。
没有闭环检测或闭环错误,会导致地图信息错误,实际使用时会在闭环不正常的附近发生较大的定位偏移,甚至定位丢失无法找回。提高闭环检测成功率一方面可以选择特征明显的起点和终点进行闭环匹配,另一方面可以通过优化算法去提高噪点过滤能力,特征匹配能力,提高闭环成功率。
RoboTaxi高精地图
高精地图从定义上就可以看出后期需要处理的东西太多,主要包括数据标注、动态障碍物去除,地图拼接等处理。
(a)数据标注
激光SLAM方式生成的栅格地图,不具有驾驶辅助信息及语义信息,因此需要对激光点云数据进行标注,增加车道类型、交叉路口布局及路标位置等驾驶辅助信息以及限速信息、斑马线位置及车辆转弯开始位置等语义信息。目前标注仍以人工为主,因为场景数据无法完全体现人为规则,比如上海的高架,你外地牌照和沪C牌照在一天中可通行的时间段是不一样的,这些信息场景数据里无法体现,只能通过人工标注添加。
(b)动态障碍物去除
高精地图里我们只需保留静态的物体,对于扫图过程中生成的动态障碍物,我们需要从地图中去除。去除静态障碍物可以先用概率模型,然后利用点云数据进行离线处理。当然高级的方案是利用机器学习,将识别到的点云进行分类,删除掉属于动态障碍物的类别。
(c)地图拼接
对于开放道路场景,地图的采集不可能一次完成,因此,存在需要将不同时间段栅格地图数据校准到一起的问题。简单来讲,通过对不同时间段栅格地图建立点和边的约束,从而拼接得到所有时间段的栅格地图相对正确位置,这个时候我只要知道一个点的准确位置,就能得到整幅栅格地图的准确位置。
四
定位功能
建立了场景地图,剩下的就是根据地图实现自身的定位,这也是SLAM第二大功能了,作者写到这时已经有点消化不良,详细的定位原理,我们只能下回详解,这里只先做简单介绍。
机器人在商超场景中的定位功能包括:定位初始化,定位更新。定位初始化
是指在机器人初始位姿不确定的条件下,利用局部的、不完全的观测信息估计机器人的当前位姿。初始化时尽量选择特征明显,稳定可靠的起始点。定位更新是指在已知机器人初始位姿的条件下,结合本体运动模型,通过将观测到的特征与地图中的特征进行匹配,求取它们之间的差别,进而更新机器人位姿的定位方法。
RoboTaxi在城市开放道路的定位分为空旷区域和有遮挡区域,空旷区域就是高精度GNSS,短暂遮挡区域,可以利用IMU结合里程计信息进行定位补偿,长期遮挡区域,可以利用激光或相机进行辅助定位。总而言之,多传感器融合定位。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)