精华文稿 | 工业场景中机器人定位导航技术

本文总结于俞毓锋博士2021年10月20日在深蓝学院“大咖面对面”直播活动中的分享。俞毓锋博士毕业于北京大学,有十年SLAM领域研究经验,深入SLAM算法和工程化落地,目前担任极智嘉定位组总监。今天分享的主要内容包括工业场景中定位导航技术的演进,SLAM在工业场景中的应用和一些开放性问题。


工业场景介绍

关于工业场景,通常包括了以下常规步骤:第一步是物料的入库,包括来料检测、收货上架和整托入库;第二步是生产和质检,物料会经过产线的生产后进入到成品区;第三步是成品出货,包含成品整理与码垛发货。轮式机器人在整个场景中充当搬运工的角色,负责物料在场内的流转。

工业用搬运机器人主要有两大类,分别是无人叉车和AMR(Autonomous Mobile Robot)。

无人叉车通常会在顶部放置一个360度激光雷达,用于定位;在底部安装一个或多个避障激光雷达,用于安全检测;此外,还会在前侧放置一个空间传感器(例如深度相机)进行空间按障碍物的检测;以及后侧的深度/单目相机,用于托盘检测。

AMR因为自身结构的原因,单个激光雷达会被自身外壳遮挡,因此需要安装多个激光雷达。常见的方案是在机器人对角安装两个270度激光雷达,既可以用于定位,也可以用于避障。AMR与叉车有同样的空间避障需求,因此也会在机器人前方安装一个或多个深度相机用于空间障碍物检测。值得注意的是,由于激光雷达的高度不同,两类产品所感知的环境变化程度也不同,AMR的雷达高度较低,环境变化更加频繁,对定位算法的要求也更高。另外,为了解决环境高度变化的仓储场景,AMR底部还可以安装一个二维码相机,用于二维码导航。

图片

图1:极智嘉的两类搬运机器人产品 

工业环境中定位技术的演进

在上个世纪的时候,很多机器人产品还是采用磁导航的技术路线,利用磁条和一些标记完成机器人的定位导航。磁条引导机器人沿着固定轨迹行进,磁条附近的标记用于处理精准定位的问题。而极智嘉的一些产品则采用了利用平面二维码阵列进行导航的方式,一定程度上减少了实施的难度,也增加了一定的柔性。

这两种路线的共同点就是将机器人的定位和导航模块进行融合,所添加的标记既用于定位,也用于导航。磁导航机器人会沿着磁条走,优点是精度高,稳定性高,可监测性强,当机器人脱离磁条,还可以立刻报警,但缺点也很明显:铺设成本高,产线变更无法快速应对。二维码导航具备磁条导航的大部分优点,同时也继承了大部分缺点。它的实施难度小于磁条的铺设,但是柔性依旧不足,无法有效应对产线变更。此外在工厂环境中,二维码易损坏,也需要不少的维护成本。

另外一大类方案是将机器人的导航和定位分开,环境或者添加的标记仅仅用于定位,包括激光反光板定位,激光SLAM定位。其中,基于激光反光板的定位需要场景中安装大量的反光柱,对环境设备的要求比较高;另一种是激光SLAM定位,它的优点是不需要标记物的辅助,但同时技术难度也比较高。虽然对于激光雷达定位的研究从上世纪就开始了,但在10年前才开始逐渐推广到工业搬运机器人,而极智嘉从17年开始提供激光SLAM相关的产品。近几年的实际产品需求引导机器人的定位导航方式朝向混合定位导航的方向发展,以场景作为基础寻求融合解决方案,对机器人本身能力的要求也逐渐提高。

图片

图2:机器人定位导航技术演进图 

SLAM原理

关于基于SLAM的方案,首先我们要明白SLAM的定义——SLAM的全称翻译过来就是“同时定位和建图技术”。通俗来讲,就是当“你”到了一个陌生的环境,如何确定自己的位置,以及描绘出周围环境的地图。“你”需要以刚开始的位置为基准,记录参照物的位置,在不断走动的过程中,根据参照物对自己的位置进行修正,再不断修正和添加参照物,完成地图绘制。用流程化的方式介绍就是,首先需要进行位置预测,再观测周围的参照物,利用参照物的约束进行位置修正,并更新对应的地图。

一个传统的SLAM模型包括四大类状态,包括机器人位姿x,运动指令u,地图m和观测z。其中运动指令和观测是已知的,机器人位姿和地图是未知的, 各状态的约束如图3所示:

图片

图3:SLAM模型图

为了实现机器人的状态估计,最简单的模型就是卡尔曼滤波,但是卡尔曼滤波的前提是状态量和观测量的更新必须都是线性的。而对于机器人的运动来说,大部分时候状态的变化都是非线性的,这时候可以使用卡尔曼滤波的一种延伸:扩展卡尔曼滤波。扩展卡尔曼通过假设状态量局部线性来进行约束的简化。当特征点数目较少时,此方案通常有效,但是当特征点数较多时,或者针对很难进行离散化的栅格地图,我们很难实现同时的定位和建图。

这时就可以采用粒子滤波的方式,以粒子的形态去模拟实际分布,一方面解决非线性的问题,另一方面每一个粒子都可以保留一份对应的地图,以实现一定程度的回环。粒子滤波的SLAM方案在小地图上效果较好,因为运行距离不远,发散程度较小,“回环”的概率较大。但对于大一些的场景,会由于回环前的位姿漂移太大导致无法闭合。

面对基于滤波的方法的种种问题,目前我们使用更多的还是基于图优化的方案,也就是通场所说的Graph-SLAM。在这个方案中,机器人位姿和局部地图这两类状态都转化为节点,运动估计和观测估计转化为节点之间的边,最终用图优化对整张图进行迭代优化。目前在求解的过程中,大多使用的方案是将位姿与地图的约束转化为位姿与位姿的约束,大大简化图的结构,便于优化求解。另一方面,Graph-SLAM因为整个过程中的约束被全部保存下来,而不像滤波那样丢弃较早的状态,所以回环的能力很强。

SLAM落地技术难点

对于实际的机器人应用,我们通常需要机器人在空场地进行建图,然后基于已有地图执行任务。在这个过程中有哪些对应的难点呢?

第一个难点就是建图的误差问题,不管运行轨迹是否有回环,SLAM所创建的地图只能做到逻辑上的自洽,跟实际的场地或多或少还是会有差异,有回环差异较小,没有回环差异较大。这就导致机器人实际在运行的过程中,无法有效走“直线”。

那该如何保证地图和实际场景一致呢?

一种思路是通过寻找线特征来增加方向约束,使用前后帧的匹配来约束长通道的稳定性。另一种思路是增加全局特征的信息建立约束。而我们该如何添加包含全局信息的地标呢?在室外我们可以在GPS信号良好的情况下记录这些信息,而对于室内,我们目前是采用地面贴码的方式,将其作为全局特征融合建图,而这也确实显著改善了建图的效果。此外,在实际工业场景中,整个实施过程是跟着工厂整体的进度来的,区域也是不断开放的。因此需要一个地图扩展的方案,在不改变原区域的地图和路线地基础上,不断地增加新区域地图。在扩展过程中,我们以原地图机器人定位结果作为初始位姿,重新扫描扩展新地区域,过程中不断利用旧地图进行回环,确保定位准确性。当然,地图扩展的前提是旧地图准确。如果旧地图存在畸变,新地地图也很难建准。

第二个难点是如何应对环境变化。在实际应用过程中,地图内的局部环境很容易发生变化,导致机器人跑偏甚至定位失败。而为了应对这种变化,机器人需要不断更新地图,以而提高SLAM的环境适应能力。我们的方案是将原图进行备份,并生成一张活跃地图,在位姿准确的基础上不断更新活跃地图。在工程化过程中,我们还需要让多个机器人协同更新地图,确保整个场地地图的实时性。利用这个特性,目前我们可以有效解决环境变化率小于50%的场景。对于环境变化率非常大的场景,光靠地图更新仍无法解决。因此,我们要引入更多的特征,增加特征的稳定性。这里的特征包括地面二维码、标线、四周的反光柱、Tag码等等。

第三个难点是整体稳定性或鲁棒性问题。在实际的工业场景中,一次走偏很可能导致产线停止几分钟甚至几十分钟,对工厂生产带来实质性损失。因此,工业场景对于机器人稳定性的要求极高。针对这类需求,我们会融合IMU,轮速计等多个传感器,极大地减少定位问题发生的概率。

在工业场景, SLAM越来越受关注,同时也面对了更多开放性问题,比如机器人是否能实现自身定位置信度的评估?在建图过程中,如何避免可移动物体的干扰?地图建立之后,如何对地图进行评估,删除一些可能会动的物体?面对这些问题,欢迎大家参与到SLAM问题的研究和工程化实践中来。

直播链接:

大咖面对面(移动机器人专场)——俞毓锋博士 - 深蓝学院 - 专注人工智能的在线教育

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值