当前位置: 华文问答 > 数码

扫地机器人是如何实现精准避障的?

2022-09-23数码

大家好,我是 @森山,家用电器话题下优秀答主,本职工作是20年的硬件工程师,这是个我非常感兴趣的问题,虽然之前和此类技术有相关性的产品,我做过安防IPC、激光雷达、三维扫描仪和深度相机的开发,业余也测试过不下十台扫地机器人,但扫地机技术的迭代升级让我眼花缭乱,几乎每个月都有新型号推出,在广告宣传上,各种专业词汇或一些擦边球的描述让人困惑,一时吃不准到底是基于什么原理的方案。

早就想写一篇扫地机避障技术的文章,但要把这些技术点通俗易懂的表达出来,让普通用户也能看懂,是非常难的,需要很多图形化的方式来介绍,这一点比较麻烦,我找了很多资料。

我也是一边找资料,一边分析、验证,判断不合理的地方,专业人士请多指正。

本文的思路,我 按照避障所用到的传感器方案作为切入点 ,后面再列举一些实际的产品来对应:

【零维激光】点激光LDS和避障的关系

  • 功能:测量某一高度水平面的地图,用于建图,定位,以及部分避障功能。
  • 优点:可以主动旋转360度,全向测距。
  • 缺陷:因为是点光源,只能获取二维平面图;并且受限于高度,只能检测LDS传感器光源所在高度的数据,低矮处的障碍物无法识别。
  • 它的样子是这样,凸起在扫地机顶部:

    这类传感器拆开来是这样,两个水汪汪的透镜里面,一个激光发射管,一个接收管:

    原理是飞行时间(Time Of Fly,简称TOF),通过发出至接收到时间的长短,来计算物体的距离,距离越远,时间越久:

    由于一个激光管发射出去的信号只对准了一个角度,无法视察周边所有物体,所以工程师们在激光收发管的基础上加了一个用电机旋转的机构,来实现全角度的扫描检测:

    发出的激光是脉冲式的,扫描到的距离信息,被机器人的CPU,绘制成一张平面图形:

    看到这里,大家应该明白了,LDS最大的作用是建图和定位,理论上也能起到部分避障的功能,但是低于LDS传感器高度的一些障碍物,它是无法检测到的,比如袜子,电线等等。

    所以,为了弥补这种低矮避障物检测盲区,在早期的扫地机产品中,还有两种正面避障手段:机械避障、简单红外避障、甚至是超声波避障。

    【非激光】机械避障、简单红外避障、超声波避障的种种缺陷

    这3种避障方式技术简单,且性能不佳,所以我放在一起了。

    机械避障 就是大家熟知的碰撞式避障,机壳前方的碰撞外壳是有行程的,内部有一个弹性的轻触开关,撞到时会有轻微的咔哒声:

    红外避障 ,下图中左右两侧是普通的红外发射管,中间黑色部分是红外接收管,较后来的激光方式,它的能量不够集中,只适合近距离检测,成本很便宜,盲区大,易受外部光源影响,而且这类红外管经常被用于开关状态使用,电路上没有做接收强度采集,所以无法测距,性能较差,在扫地机上主要是辅助避障,要不然就没有机械避障什么事了:

    超声波避障,严格意义上来说,这是一种最古老的ToF技术方案,也是通过测量波形反射后的时间来计算距离,但常用的超声波传感器频率很低,KHz级别,这个波的速度慢,也就导致了采集的周期长,在扫地机上使用性能不行,但是这个传感器对于相对距离固定且较近的场景比较适合,所以在扫地机的背面,我们能看到有一个圆形的装置,它就是超声波原理,被用于地毯介质的检测:

    由于地毯的织物对信号反射能力比硬质光滑地面要弱,所以它的波形有明显的不规则特征。机器人判断出这类特征后,为其他行为做出决策,比如现在一些扫地机带有的拖布,遇到地毯时就会抬起。


    并且这个超声波传感器一般会装在机身正面边缘处,以方便最快时间检测到地毯,让机器人做出迅速决策。

    【一维激光】线激光方案主要用于正、侧面近距离障碍物测距

    前面提到的LDS方案,它的激光是点光源,由于高度的限制,即使在扫描方式下,也只能获取室内环境中该高度的二维信息,所以低矮的障碍物,它是扫描不到的。

    而第二部分的三种传感器机械避障要靠碰撞,红外避障精度差,超声波避障反应慢等缺点,使得扫地机在行进过程中很难做到有效避障。

    线激光方案被应用到扫地机上,线激光可以理解为很多个点激光排列在一条直线上,均匀分布:

    实际上,它是由光源通过光学结构实现的单线光源,它投射到平整物体上的形状就是一条直线。

    有了激光发射管也不够,一般都会配一个接收的摄像头或APD线阵采集,并且这种发射和接收呈现处一定的角度,所以现在的线激光收发器被整合到一个相对固定的模块中,也叫「固态」线激光。

    它的原理是结构光的三角测距:

    到了这里,很多人估计会不耐烦了,说了这么多,线激光到底能测什么?

    1. 如果配合转动机构,它可以测到三维信息。
    2. 如果没有转动机构,它只能测单条线上的距离信息。

    我在网上找到了三种线激光的测距方式,它呈现出来的三种不同的线激光角度:

    左边是垂直线激光,它可以检测LDS以下一定高度范围内的近距离障碍物,这种线束方案, 可以测距 ,而且理论上 通过机器的转动,是可以实现三维扫描 的,但是这个算法比较难,机器转动的路径很难计算。

    所以最简单有效的方式,是线激光遇到障碍物会出现折弯,中间的红外sensor识别到如果直线折弯,就认为有障碍物,如下图,如果前方是地面,采集到的图像应为直线,如果前方有障碍物,如遇到了书架,这条直线就改变了方向,下图绿色指示出它的变化:

    右上是水平交叉线激光,覆盖的角度更大。

    右下是水平单线激光,探测机器正前方一定角度内,地面平整度,一旦有明显障碍物,就会发生扭曲。

    这三种方案,其 目的都是为了实现机器人正前方近处障碍物的距离识别,只是激光线束的角度和数量不同,效果会有差异

    此外,线激光也被用于扫地机的 右侧方测距 ,主要是为了更好的沿边清洁效果,激光的精度和采集速度都会更好。

    【二维激光】面激光方案,更强更精细的三维识别

    二维激光,顾名思义,它区别于点光源和线光源,是一种面光源,这类光源通常被用作识别物体的三维形状。

    它的光源,常用的器件是VCSEL,垂直腔面发射激光器,结构原理是这样的,图中下半部分:

    它的系统设计一般是这样的架构:

    Vcsel打出一个面光源激光,打到物体上,绿色透镜可以接受对应频段的激光光源,中间的Pixel matrix类似于我们普通摄像头的CMOS,只不过这类tof sensor的像素做不到很大,以Sony为例,640x480已经是非常高的像素:

    除了Sony,还有松下、Melexis等少数几家公司,但是随着tof sensor在未来几年内在AR/VR、激光雷达(车载)、工业的机器视觉、3D扫描、无人机等等任何一个领域的爆发,可能都会大幅提升分辨率,成本也会随着量产降低。

    当然有了深度还不够,所以一般tof方案还会配合RGB摄像头作为深度图和现实图的结合应用,其实就是RGBD相机。

    深度相机的外观,就是下面这样,一个小方块一般就是Vcsel激光源,邻近的摄像头是Tof sensor,右边那个小孔是广角的普通摄像头,如果您在扫地机正前方看到类似的结构,一般就是面阵激光,是可以对前方物体做3D建模的,不但可以判断物体的距离,也可以判断物体的外形。

    说了这么多,二维激光能做到什么效果呢?以之前我在项目中记录的图片来做个示例:

    扫地机的通过ISP对采集的图像进行处理,通过CPU算法对障碍物的外形识别,比如常规的电线、鞋子、椅子腿等等,未来还会加入更多可能的物体模型,再一个就是对物体距离的识别,来计算是否应该减速、刹车,进而避开。

    所以这种方式下,对障碍物的识别更加精确,但是就像前面提到的,这种方案成本极高,研发难度大,识别率的提升也很难,算法上去了,对CPU的性能又是很高的要求,然后生产的标定也困难,还有一个就是功耗、发热等等一堆不利的因素。

    当然我的知识一定有盲区,激光的TOF方案也有非常多的技术类型,dTof、iTof、cwTof,未来也许还会有更多方案,它们的技术手段也许不同,但最终都是为了更好的获取三维数据。

    【纯视觉方案】单目、多目、结构光等其他方案

    所有 激光的方案有一个缺陷,就是对透明的、黑色的物体识别不佳

    扫地机像极了目前的汽车行业,激光雷达 vs 纯视觉方案,特斯拉慢慢放弃了激光雷达,也是发现了激光雷达的重重困难,退而求其次采用纯视觉方案,特斯拉依靠的是周围一圈的多个摄像头以及自己的算法和丰富的路况数据库。

    纯视觉方案就是通过普通摄像头方式+图像识别算法,来判断目标物体。

    单目就是一个摄像头,没什么好说的。

    双目就是两个摄像头,就像人的双眼,可以获取立体视觉,说到底就是能获取三维深度信息。

    还有一个方案是结构光,结构光是三维识别的一种整体方案,它的硬件可以是单目,可以是双目,也可以是tof sensor,但是它们有一个共同的原理,就是通过投射出特殊的图案到目标物体上,通过图像采集该图案在物体表面的扭曲、变形,来判断三维外形。

    本文最开头时我曾经做过的三维扫描仪,就是一种结构光方案,他就是通过DLP投影出特殊图案,打到物体上,两个摄像头分别采集到这个因为物体表面而扭曲的变化,通过算法计算出三维模型,这种技术非常成熟,效果取决于算法。

    【多传感器融合方案】

    前面说的那么多传感器,几乎涉及到了扫地机行业中目前大部分的类型。

    它们并不一定是对立的,或者孤立存在,并且各自都有优点和缺陷,比如普通摄像头在弱光下就不行,激光类型受到黑色和透明物体的影响,普通红外避障精度和稳定性差,无法判断障碍物类型等等,通过多种传感器的组合搭配,可以扬长避短,所以我们能看到,一台扫地机中会装载数量巨多,类型不一的传感器。

    一些混淆的技术名词

    ToF :这是一个飞行时间的描述,但从技术原理上来说,普通的红外收发、超声波传感器、单点和面激光,都会是ToF范畴内,所以如果简单说自己是ToF传感器,这是一种混淆不清的说法。

    SLAM :严格来说,SLAM是一种基于视觉采集的算法,它并非是传感方式,我可以是基于普通RGB摄像头的彩色图像,可以是红外光源下的红外图像,也可以是VCSEL面阵激光源下的深度图像。所以,如果你看到某产品号称自己用了SLAM传感器,这也是无效的说法。

    AI避障 :现在任何电子产品只要和AI结合一下,就是为自己提高身价,但是AI的水很深,真正要做到很强的人工智能是比较复杂的,不仅取决于算法,也取决于大量的、丰富的模型库,以目前业内最顶级的扫地机来说,它能识别的障碍物类型不到百种,而且识别率也是无法保证的。

    目前市面上具有代表意义的扫地机器人及其核心的避障方案

    【近期更新】

    未来的技术展望:

    在德州仪器官网,我找到一个扫地机的解决方案设计框图,这里面我看到了mmWave的字眼,这就代表了,未来很有可能毫米波雷达会加入扫地机应用。

    【以上结论可能存在争议,我也是基于我的个人理解和分析,如果有更专业的人士,可以提出异议,我们再完善补充】

    本文会持续更新……