随着后疫情时代的到来,并且受人力成本的制约,自主运动机器人将更加广泛的在全球范围内落地应用。而作为一家从事无人驾驶清洁设备研发的高仙,也有幸参与其中,并取得了较为不俗的成绩。截至目前,已经有40%的产品销往海外,并在全球30多个国家和地区落地1000个项目,累计机器人运行里程达1亿公里。
slam(同步定位和建图)是一切自主移动机器人的基础能力,笔者曾在往期文章中做过详细介绍。由于实际的场景是异常复杂的,机器人大规模落地时,必然会对slam算法提出更加严峻的挑战。当然,这是一项技术从实验室走向真正实用必须要面对的问题。幸运的是,近些年随着无人驾驶和机器人的井喷,学术界和工业界密切联合,致力于slam技术的深度探索。
icra(ieee international conference on robotics and automation:机器人与自动化国际会议)是目前机器人和人工智能领域最重要的国际会议之一,近些年刊登了不少有关于slam研究的最新成果。笔者近期与intel中国研究院的史雪松博士共同追踪了其中相关的文献,并希望结合slam落地,给出一些有意义的探讨。
图1(a) 、图1(b)
图1(c)、图1(d)
图2
一、大规模落地的技术问题
实际上,自主移动机器人的大规模落地对slam的挑战可以归纳为一点:鲁棒性。由于机器人是靠传感器和算法驱动的装置,在无人值守时尤其需要保持较高的安全性,不能发生跌落、碰撞等事故。其中的关键就是需要从slam获得精准可靠的定位姿态估计。机器人需要克服不同环境条件,克服异常状态,保持良好的定位输出。根据笔者实际经验,具体的挑战难点有:
1. 场景的多变对位姿估计的影响
a) 长走廊且无明显纹理特征:这类场景大多发生在室内,见图1(a),长走廊几何结构单一导致目前lidar slam方案在前端做点云匹配时,丢失前后向约束,导致机器人在长走廊下无法感知自身的x方向坐标,造成定位漂移。而环境纹理的缺失又使得vslam无法有效的提取特征。基于此,传统的优化方案是使用更长测距半径的激光雷达或者替换使用更高精度的惯导做dead-reckoning,以提高x方向的精度,但这无疑会增加产品成本。
b) 无明显反射物信息的环境:lidar slam的使用前提是能够接收反映特定环境特征的点云信息,而有些室内场景使用了黑色吸波材料,导致激光雷达无法获取有效的点云(图1(b)),进而降低了前端的匹配精度(scan match/icp/ndt)。另外,在开阔的室外场景,激光无法接收有效的点云测距信息,也存在类似的问题(图1(c))。
c) 环境突变对定位的影响:如图1(d)。机器人的定位依赖于预先扫描的一张地图(无人驾驶的高精地图还需要手工标注语义信息),在定位阶段使用当前获取的点云与地图匹配,计算位姿。而当定位时环境变化,点云无法与地图有效匹配建立约束,长期运行就会出现定位漂移和定位丢失。
2. 传感器或者结构问题导致的定位异常
a) 传感器失效:机器人内部传感器数据异常也将导致定位漂移。如slam高度依赖imu和轮速编码器提供的初始位姿输入,而在极端环境下这些传感器数据出现异常时,尽管有外部传感器(激光、相机)的观测信息进行修正,也无法有效降低定位误差。
b) 机器人长期震动对结构件的影响:机器人本体的硬件设计不合格,在长时间运行时,带来两种可能影响:结构件脱落遮挡激光传感器和结构件位移导致tf(传感器到传感器之间的相对位姿)不准。前者将严重干扰点云正常数据获取。后者直接带来了错误的slam输入,比如引发错误的地面点云提取。
3. 原始建图质量太差对定位的影响
一张一致性良好的地图(occupancy grid map/tsdf/feature map)是正确定位的前提。而如果建图时因为没有有效回环或者匹配精度较差,导致地图出现重影,也极容易引发定位错误。见图2。
4. 错误定位初始化的影响
正确的定位依赖于正确的初始化点的选取,如果初始化点给错,在环境特征高度相似的场景将导致定位出错。
5.大尺度场景建图定位的难点
通常在大场景下建图必须遵循一定的扫图路线,以实现准确的回环。而在某些尺度大的场景,如发电站、异型建筑中,通行路线单一,无法有效的回环,造成地图偏斜重影。另外,如果使用稠密点云来表征地图,则面积越大,数据量越大。如何有效的读取和存储数据需要有较好的架构设计.
6.实时性对于低算力平台的挑战
通常机器人除了运行slam算法,同时还将执行环境感知(perception)和运动控制(planning)。一些低成本的计算平台由于无法负载高强度的计算,使得slam算法运行卡顿,无法及时更新定位信息,也将影响机器人的正常运行。
上述总结了实际落地场景中,slam可能遭遇的难点。从清洁机器人角度看,由于需要有效的贴边清扫和消除清洁空洞,对slam精准定位的要求更高。大规模量产时,上述的问题不可回避。
二、icra2020总体形势分析
上一节从工业界角度介绍机器人在落地时,slam算法遇到的挑战。不同于工业界偏重技术应用,学术界更加注重理论性研究和前沿方向的探索。尽量两家目的不一致,但也存在交叉耦合的区间。最主要的原因是slam本身不单是一个算法,而是一个算法集合,一套系统。因此不管从工业界落地的角度看,还是从学术界出发,都能在各自的研究中,推动slam技术的进步。适当地从学术界获取一些灵感,对于工业界的技术提升是完全必要的。因而代表2020年slam前沿进展的icra,格外引起笔者关注,可以从中找到针对解决slam难点问题的一些发力点。
图3
笔者和史博一共扫了icra slam方向的共85篇文章,包含day1的localization、day2的mapping、slam、autonomus driving、localization、sensor fusion等专题,归纳了2019年到2020 slam方向的研究热点和趋势。图3(引用自[1])展示了不同阶段slam的发展历程,在经历了问题建模、模型求解之后的一二阶段,当前slam发展进入第三阶段,即研究鲁棒定位(robust performance)、高层环境理解(high-level understanding)、资源适配(resource awareness)和任务驱动的感知(task-driven perception)。icra2020的slam和该阶段保持一致。图4给出了笔者梳理的icra各专题slam的论文数量。其中有28篇涉及到vslam(囊括了深度学习和语义slam),lidar slam和sensor fusion各占9篇,place recognition(重定位)占8篇,long-term slam(长期定位)占6篇。其余数据集相关和slam理论只在2-3篇。
图4
图5为vslam方向的论文分布情况,饼图中每块分别为论文数量和占比,共分四大方向:结合深度学习的slam(包含语义slam,占43%,[6][11][12][16][17]),特征点法(占36%,[25][26]),视觉-惯性里程计(占14%,[14][15])和稠密slam(占7%,[27])。可以看到结合深度学习依旧是vslam的研究热点。深度学习跟vslam结合方面有较多的分支,包含端到端的位姿估计[28][29],使用深度学习训练鲁棒的特征点进行跟踪[6],深度学习与传统方法融合构造稠密地图[30]。
图5
图6为lidar slam方向的论文分布情况,有占比43%的文章涉及到深度学习[8][20]。其余方向包括优化点云匹配[18],大规模稠密建图[13],新型激光的适配优化[31]和针对特定机器人的定位框架[32]。在lidar slam领域,激光与深度学习结合呈现较热的趋势。
图6
除vslam和lidar slam外,long-term slam方面较好的工作是长期定位下地图的自动更新[4][5],但只占了两篇,说明在整个icra中,鲁棒的地图更新属于冷门方向,还有很多潜力待挖掘。而sensor fusion方向包含了视觉-激光里程计[19][20],相机和激光的联合标定[21],多imu slam[22],vio融合gps[23]和imu融合uwb[24],融合方案呈现多样性。
纵观今年的icra 论文,总体还是基于目前已有算法进行改进,理论方面没有较大的突破。可以看到上述的工作,都在致力于提高slam算法的鲁棒性和精度。
三、icra2020论文选讲
本节笔者尝试结合slam落地,从icra文章中挑选一些不错的工作,并给出一些说明。从前述的挑战难点看,多场景下的鲁棒定位依旧是一个急需攻克的点。实际上,鲁棒的定位严重依赖于稳定的前端匹配和后端回环。在高动态场景,简单的基于几何特征的匹配难以达到上述要求。比如商场环境,由于商铺开关门造成白天和夜间的地形完全不同,使得简单的激光slam无法有效工作。这是由于激光雷达本质上只能从轮廓信息角度进行比对,无法达到对环境的深度理解。此时如果结合相机加入语义层面的约束,将解决不少问题。另一方面,在准确定位的前提下,需要对地图进行更新,保证地图的时效性。同时,为了使机器在定位异常时能够恢复定位,需要使用准确的重定位方法。
1. 应对环境变化下的地图更新
地图更新是鲁棒slam必须具备的模块。今年有两篇icra文章涉及到地图更新[4][5],[4]来自百度apollo团队的工作,继承自2018年他们在icra的工作。与旧方法相比,作者对数据融合的框架进行了改动,将原先的基于滤波的方法改为因子图优化的方法。算法框架如图7所示。通过累积激光点云构造submap,同时使用点云与高精地图做回环检测,之后统一加入图优化。文章还加入了场景变化检测的模块,将反映当前环境信息的submap更新到全局地图中,从而维护一个时变的地图。上述的方法有两大优点:1.相对于全局匹配滤波方法,局部做scan match并构造submap可以获得平滑的位姿输出;2.相对于传统的基于单帧点云的地图更新方法,使用submap进行地图更新效率更高,数据管理方面也更简洁。
图7
2.变化场景下的重定位
place recognition,即重定位问题,一直是slam研究的热点。今年的icra也不例外,出现了较多相关文章。以下选取三篇有代表性的文章讲述。
vslam中,day-night下的重定位问题是较大的挑战。不同的光照导致特征匹配不稳定,进而引发错误的定位。文章[6]的工作来自tum,与传统的端到端的重定位方法不同,作者倾向于借助深度学习训练鲁棒的特征,之后使用经典的几何方法做匹配和重定位。应对光照问题,关键是提取不同光照条件下特征点的共性。这里作者使用gn-net,将原始图像转化到feature map,从feature map中提特征。图8上左右两幅图是不同时刻同一场景的图像,尽管光照不同,但在下左右的feature map看来,两幅图描述了同一场景。
图8
除了提鲁棒特征点方法外,近年来也涌现了不少使用图匹配的方法进行重定位的工作。由于传统的特征点匹配只考虑独立匹配对之间的约束,未考虑到特征点的空间关系。引入空间关系约束,将更好的约束特征点,从而减少误匹配的概率。文章[7]使用地标外貌和空间相对位置进行图匹配。给定一幅图像(image),可以用图(graph)进行编码,图上信息包括:landmark距离、角度和纹理外观。该算法通过计算相似性最小的地标之间的距离和角度空间关系来度量地点的相似度。图9给出了算法演示。
图9
icra中除了使用图像外,也有部分使用激光雷达进行重定位的工作。文章[8]是对loam的改进,相对于经典的loam,本文引入了重定位方法对定位进行修正,从而提高了定位精度。具体方法是,使用segmap[9]对新来的点云进行分割和描述,并在点云地图中寻找相似的分割描述,从而得到匹配的若干分割对,然后将这些分割对进行ransac几何验证,之后用icp做位姿精修。kitti数据集上的实验证明,该方法可以修正loam的定位漂移。
3. 语义slam的应用
近年来,语义slam被认为是提高slam系统感知能力的最佳方法。传统的slam主要利用低层几何特征进行匹配定位,如提取角点、线、面特征。而在引入语义信息后,slam系统可以感知环境的高级信息,比如行人识别、环境物体推理和感兴趣区域。语义几乎可以应用传统slam算法框架的所有阶段,例如:初始化,后端优化,重定位,回环检测等等。通过语义关联可以大大降低错误闭环、错误匹配的概率,从而提高系统鲁棒性。
目前较早的语义和几何联合优化框架之一被bowman[10]等人提出,他们首先提出了概率数据关联的方法。作者巧妙地将数据关联分解为多个子问题,将所谓的混合关联分为两个步骤:离散语义关联和连续姿态估计。这个两步联合迭代计算问题,能够被经典的期望最大算法(expectation-maximization algorithm)简单地解决。此外,被对象检测所提取出的语义最重要的点是,它在后端优化中发挥重要作用。今年icra有两篇较好的关于语义slam的工作[11][12]。
文章[11]来自于mit水下机器人实验室。提出了一种适用于语义关联的数据融合方法。不同于[10],文章方法适合于 slam 的常见非线性高斯公式的pg麻将胡了模拟器链接的解决方案对通常不是高斯的数据关联模糊度进行建模。通过最大边缘化(approximate max-marginalization)从推理过程中消除数据关联变量,保留标准的高斯后验假设。其结果是一个最大混合模型(max-mixture),它解释了多个数据关联假设以及拒绝不正确的闭环。与其他语义 slam 方法相比,该方法能表示多个假设,包括“零”假设,具有显著的鲁棒性优势。
文章[12]提出了一种cnn融合ekf进行室外定位的方法。具体地,使用hed网络检测路面标记(路沿、车道线等)构造ground surface。另一方面,使用yolo做物体检测,提出树、路灯等稳定的特征当做landmark。后端方面使用ekf,观测模型采用经典的运动方程,测量更新同时融合yolo landmark和hed的ground surface。上述方法可以避免了使用手工特征(如orb、sift、surf等)在环境变化下的误匹配。
总体而言,目前语义slam还停留在初级阶段,其中基于深度学习的语义提取方法还存在可解释性和泛化性受限的问题。以dnn为例,泛化能力的减弱同时伴随着过拟合,这是由于过于细致的参数配置和训练过程所导致。为了解决该问题,基于弱监督或无监督的学习框架被提出,以提高dnns的泛化能力。可以预见,未来高级的学习策略将是语义slam框架的强大而有力的工具。重要的是,可以将语义slam管道轻松集成到深度强化学习范例中,以构建具有一般智能的机器人系统。
在上述讨论中,笔者详细介绍了slam的挑战和icra与之相关的进展。高仙的slam技术已经支持机器人行驶超过1亿公里,解决了室内外各种场景的定位问题,达到了大规模落地商用的水平。一家科技公司的发展离不开全行业的生态建设,在追求更高技术水平的层面上,高仙希望做更多有助于提升全行业技术水平的工作,并与兄弟公司共享技术成长带来的收获。这也是本文的意义所在。在未来,高仙将进一步把研究着力点集中在机器智能上,让机器人能够更加深度的推理物理世界,从而提高机器人的工作效率。
ref
[1]xia, linlin, et al. “a survey of image semantics-based visual simultaneous localization and mapping: application-oriented solutions to autonomous navigation of mobile robots.” international journal of advanced robotic systems 17.3 (2020): 1729881420919185.
[2]bowman, sean l., et al. “probabilistic data association for semantic slam.” 2017 ieee international conference on robotics and automation (icra). ieee, 2017.
[3]doherty, kevin, et al. “probabilistic data association via mixture models for robust semantic slam.” arxiv preprint arxiv:1909.11213 (2019).
[4]ding, wendong, et al. “lidar inertial odometry aided robust lidar localization system in changing city scenes.” proceedings of the ieee international conference on robotics and automation (icra). ieee (may 2020).
[5]pannen, david, martin liebner, and w. burgard. “how to keep hd maps for automated driving up to date.” 2020 international conference on robotics and automation (icra). 2020.
[6]lvon stumberg, lukas, et al. “gn-net: the gauss-newton loss for multi-weather relocalization.” ieee robotics and automation letters 5.2 (2020): 890-897.
[7]peng gao, hao zhang. “long-term place recognition through worst-case graph matching to integrate landmark appearances and spatial relationships.” 2020 international conference on robotics and automation (icra). 2020.
[8]rozenberszki, david, and andras majdik. “lol: lidar-only odometry and localization in 3d point cloud maps.” arxiv preprint arxiv:2007.01595 (2020).
[9]r. dube, a. cramariuc, d. dugas, h. sommer, m. dymczyk, j. nieto, ´ r. siegwart, and c. cadena, “segmap: segment-based mapping and localization using data-driven descriptors,” the international journal of robotics research, vol. 39, no. 2-3, pp. 339–355, 2020.
[10]bowman, sean l., et al. “probabilistic data association for semantic slam.” 2017 ieee international conference on robotics and automation (icra). ieee, 2017.
[11]doherty, kevin, et al. “probabilistic data association via mixture models for robust semantic slam.” arxiv preprint arxiv:1909.11213 (2019).
[12]jayasuriya, maleen, et al. “localising pmds through cnn based perception of urban streets.”
[13]kühner, tilman, and julius kümmerle. “large-scale volumetric scene reconstruction using lidar.”
[14]campos, carlos, josé mm montiel, and juan d. tardós. “inertial-only optimization for visual-inertial initialization.” arxiv preprint arxiv:2003.05766 (2020).
[15]geneva, patrick, et al. “openvins: a research platform for visual-inertial estimation.” iros 2019 workshop on visual-inertial navigation: challenges and applications. 2019.
[16]wagstaff, brandon, valentin peretroukhin, and jonathan kelly. “self-supervised deep pose corrections for robust visual odometry.” arxiv preprint arxiv:2002.12339 (2020).
[17]greene, w. nicholas, and nicholas roy. “metrically-scaled monocular slam using learned scale factors.”
[18]schulz, cornelia, and andreas zell. “real-time graph-based slam with occupancy normal distributions transforms.”
[19]huang, shi-sheng, et al. “lidar-monocular visual odometry using point and line features.”
[20]ratz, sebastian, et al. “oneshot global localization: instant lidar-visual pose estimation.” arxiv preprint arxiv:2003.13279 (2020).
[21]zhu, yufeng, chenghui li, and yubo zhang. “online camera-lidar calibration with sensor semantic information.”
[22]zhang, ming, et al. “a lightweight and accurate localization algorithm using multiple inertial measurement units.” ieee robotics and automation letters 5.2 (2020): 1508-1515.
[23]lee, woosik, et al. “intermittent gps-aided vio: online initialization and calibration.”
[24]cao, yanjun, et al. “accurate position tracking with a single uwb anchor.” arxiv preprint arxiv:2005.10648 (2020).
[25]li, xinyi, and haibin ling. “hybrid camera pose estimation with online partitioning for slam.” ieee robotics and automation letters 5.2 (2020): 1453-1460.
[26]mousavi, hossein k., and nader motee. “estimation with fast feature selection in robot visual navigation.” ieee robotics and automation letters 5.2 (2020): 3572-3579.
[27]zhang, tianwei, et al. “flowfusion: dynamic dense rgb-d slam based on optical flow.” arxiv preprint arxiv:2003.05102 (2020).
[28]zhou, qunjie, et al. “to learn or not to learn: visual localization from essential matrices.” arxiv preprint arxiv:1908.01293 (2019).
[29]wagstaff, brandon, valentin peretroukhin, and jonathan kelly. “self-supervised deep pose corrections for robust visual odometry.” arxiv preprint arxiv:2002.12339 (2020).
[30]czarnowski, jan, et al. “deepfactors: real-time probabilistic dense monocular slam.” ieee robotics and automation letters 5.2 (2020): 721-728.
[31]lin, jiarong, and fu zhang. “loam_livox: a fast, robust, high-precision lidar odometry and mapping package for lidars of small fov.” arxiv preprint arxiv:1909.06700 (2019).
[32]ramezani, milad, et al. “online lidar-slam for legged robots with robust registration and deep-learned loop closure.” arxiv preprint arxiv:2001.10249 (2020).