1.1.4 SLAM技术探讨
在SLAM技术讨论中,我们经常会碰到如下两个问题。
该场景是否需要SLAM技术?
该场景里,SLAM问题是否能被有效求解?
下面我们将从SLAM的必要性和可求解性两方面来回答这两个问题。
1.SLAM必要性
讨论移动机器人SLAM时,通常构建的地图是占据栅格地图,它只能表达障碍物、边界、可自由通行区域和未知区域等有限信息。然而实际作业环境中包含更丰富、更具体的描述障碍物、边界和通行区域的信息。例如,障碍物可以是静止机器、堆放的杂物、货物等,边界可以是墙面、栅栏等,通行区域还可以区分行人区域、机器移动区域以及人机混合区域。
移动机器人的自动作业通常发生在相对简单的环境中,如工厂、仓库、小型室内环境等,因此其运动只需满足基本的“不撞墙”“不撞人”等安全要求,不需要过多的环境信息来满足其作业需求。相比之下,自动驾驶中的场景要求更丰富的环境信息,因为机动车的运动受交通规则约束,远不及移动机器人的自由运动。
在自动驾驶中,需要收集更多的环境信息用于定位和决策等后续功能逻辑模块。占据栅格地图或原始点云地图通常在移动机器人中使用,不能直接用于自动驾驶中的定位和决策。因此,高精地图的概念应运而生。它的目的是满足自动驾驶系统在复杂环境下安全稳定运行的需求,扩大车辆的环境感知范围,并辅助实时定位,增强规划和决策能力。高精地图的需求源于对复杂场景的处理需求,它是逐渐发展而来的。需要指出的是,高精地图的环境信息采集功能借用了SLAM中与建图相关的技术,因此SLAM技术在实现高精地图方面发挥着重要作用。
那使用了高精地图的自动驾驶系统,是否还需要SLAM来实现定位呢?答案是即便在有高精地图的情况下,若GPS信号被遮挡,则仍需要SLAM定位技术来辅助自动驾驶车辆进行定位。例如,虽然自动驾驶系统前端依赖GNSS(Global Navigation Satellite System,全球导航卫星系统)和IMU(Inertial Measurement Unit,惯性测量单元)进行定位,但在高架桥上行驶时需要借助SLAM定位技术,基于高精定位图层通过自动驾驶定位算法进行全局地图匹配,以消除误差、保证精度。
SLAM算法的目标是建立对全局环境的认知,包括车辆自身的运动测量和回环检测(或称闭环检测)。如果不考虑回环检测的因素,那么SLAM算法将简化为里程计算法。根据里程计的特性,它通常是通过车轮编码器的数据来计算的,而从里程计获得的位姿估计误差会随着里程的增加而快速累积,使得位姿估计结果在一定时间后便不再可靠,这是硬件特性导致的。而这个不足也成为SLAM技术发展的主要推动力之一,SLAM技术有助于缩小里程计的累积误差并对其进行纠正。因此,无人驾驶是需要完整的SLAM算法的。
首先,不管是视觉SLAM还是激光SLAM,都是基于过去10年的SLAM研究成果实现的。只不过视觉SLAM可以看作一个简化的SLAM系统,因为其中的回环检测模块被禁用了。应该说,近10年来SLAM的研究促进了传感器的融合,而这种融合则推动了无人驾驶在更具挑战性的场景下的应用。
其次,如果自动驾驶车辆只执行里程计而忽略回环检测的话,那意味着车辆一直处于一个探索新的空间的过程,而回环检测会使得车辆尝试了解当前路径是否与之前路径重叠,并且有寻找最优路径的动作。回环检测里的尺度检测和位置检测使自动驾驶车辆更容易检测到真正的回环路径,并丢弃虚假的回环。因此,SLAM技术提供了对错误数据和感知混叠的鉴别能力,避免某些位置和历史位置数据相似而导致系统判断出错,保证算法运行的鲁棒性。
最后,SLAM技术可以生成全局地图。自动驾驶技术在探索环境并描绘出该环境的全局地图时,需要确保对环境进行全面的覆盖,这同样离不开SLAM功能,只有SLAM才能完成全局一致的三维点云图重建。
2.SLAM可求解性
对于本节开始时的第二个问题,SLAM问题的有效求解涉及如下几个方面的信息。
• 自动驾驶车辆的运动类型、速度、传感器种类、车载系统可用的计算资源等。
• 自动驾驶车辆所处的环境是否存在特定的参考定位标识、动态变换的物体或人、雷同的传感器数据等。
• 对车辆状态估计的精度、地图的精度和类型,包括状态精度范围、估计延迟时间、最大操作时间、地图最大尺寸等。
上述信息直接影响该场景的SLAM问题能否被有效求解。比如,采用配备里程计和激光雷达的无人车对室内环境进行二维建图,并保证构建出来的地图具有足够的精度(<10cm)和稳健性。类似的低速无人车或机器人的应用场景都是研究较为成熟的领域,所以这些场景的SLAM问题基本都能有效求解。