资讯详情

从传感器到算法原理,机器人、视觉避障尽在此文

点击上方“”,选择加""或“

重磅干货,第一时间送达  

本文转自:计算机视觉life

避障是指当移动机器人在行走过程中通过传感器感知规划路线上的静态或动态障碍物时,根据 实时更新路径,绕过障碍物,最终达到目标点。

感知周围环境信息是第一步,无论是导航规划还是避障。在避障方面,移动机器人需要通过传感器 实时获取周围障碍物的信息,包括尺寸、形状和位置。避障传感器种类繁多,原理和特点各不相同。目前常见的传感器有视觉传感器、激光传感器、红外传感器、超声波传感器等。让我简要介绍一下这些传感器的基本工作原理。

超声d=vt/2测量距离,其中d为距离,v是声速,t是 飞行时间。由于超声波在空气中的速度与温度和湿度有关,需要考虑温度和湿度的变化等因素。

上图是超声波传感器信号的示意。通过压电或静电变送器产生几十个频率kHz超声脉冲组成波包,系统检测高于某个阈值的反向声波,检测后使用测量的飞行时间计算距离。超声传感器一般工作距离较短,普通有效检测距离为几米,但最小检测盲区约为几十毫米。移动机器人中常用的传感器是因为超声传感器成本低,实现方法简单,技术成熟。超声波传感器也有一些缺点,首先看下面这个图。

因为声音是锥形的,我们实际测量的距离不是 一点,而是锥角范围内物体的最近距离。

此外,超声波的测量周期较长,如3米左右的物体,声波传输距离约20米ms时间。此外,不同材料对声波的反射或吸引力不同,多个超声传感器可能相互干扰,这在实际应用过程中需要考虑。

一般来说,红外测距采用三角测距的原理。红外发射器从一定角度发射红外光束。遇到物体后,光反向返回。检测到反射光后,物体距离可以通过结构上的几何三角关系来计算D。

当D足够近时,上图中的L值将相当大,如果超过CCD此时,虽然物体很近,但传感器却看不见。当物体距离D很大时,L值会很小,测量精度会变差。因此,常见的红外传感器 测量距离相对较近,小于超声波,长距离测量也有最小距离限制。此外,红外传感器无法检测透明或类似黑体的物体之间的距离。但红外传感器的带宽高于超声波。

基于飞行时间的常见激光雷达(ToF,time of flight),测量激光的飞行时间d=ct与上述超声测距公式相似,d为距离,c是光速,t是从发射到接收的时间间隔。激光雷达包括发射器和接收器 ,用激光照射发射器,接收器接收反向回光波。机械激光雷达包括带镜子的机械机构。镜子的旋转使光束覆盖 一个平面,这样我们就可以测量平面上的距离信息。

测量飞行时间量飞行时间的方法,如使用脉冲激光,然后类似于上述超声波方案,直接测量所占用的时间,但由于光速远高于声速,需要非常高精度的时间测量元件,所以非常昂贵;另一个连续射调频后,通过测量接收到的反射波之间的差异来测量时间。

图一

图二

相对简单的方法是测量反射光的相移。传感器以已知频率发射一定范围的调制光,并测量发射和反向信号之间的相移,如上图1所示。调制信号的波长为lamda=c/f,C是光速,f调制频率,测量发射和反射光束之间的相移差theta之后,距离可由lamda*theta/4pi计算得到,如上图2所示。

激光雷达的测量距离可达几十米甚至几百米,角度分辨率高,通常可达零点几度,测距精度高。然而,测量距离的信心度将与接收信号范围的平方相反。因此,黑体或远距离物体的距离测量不会像明亮和近距离物体那样好。而且,对于玻璃等透明材料,激光雷达无能为力。此外,由于结构复杂,设备成本高,激光雷达的成本也很高。

一些低端激光雷达采用三角测距方案进行测距。但此时,它们的范围有限,一般在几米以内,精度相对较低,但用于室内低速环境SLAM或者如果室外环境只用于避障,效果还是不错的。

常用的计算机视觉方案有很多种, 例如,基于双眼视觉TOF基于结构光的深度相机等。深度相机可以同时获得RGB无论是基于图还是深度图,TOF还是结构光,在室外强光环境下效果不理想,因为都需要主动发光。

例如,基于结构光的深度相机发出的光会产生相对随机但固定的斑点图案。这些斑点击中物体后,由于与相机的距离不同,相机捕获的位置也不同。然后,首先计算图片中的斑点与不同位置校准的标准图案之间的偏差,并利用相机位置、传感器大小等参数计算物体与相机之间的距离。我们目前的E巡逻机器人主要在室外环境中工作,主动光源会受到阳光等条件的极大影响,所以双眼视觉更适合被动视觉方案,所以我们使用的视觉方案是基于双眼视觉的。

双目视觉的测距本质上也是三角测距法,由于两个摄像头的位置不同,就像我们人的两只眼睛一样,看到的物体不一样。两个相机看到的同一点P,成像时会有不同的像素位置,这个点的距离可以通过三角测距来测量。与结构光方法不同,结构光计算点是主动确定的,双目算法计算点一般是算法捕获的图像特征,如SIFT或SURF通过特征计算的特征等是稀疏图。

要做好避障工作,稀疏地图还不够。我们需要获得的是整个场景的密集点云图和深度信息。密集匹配算法大致可分为两类:局部算法和全局算法。局部算法使用像素局部信息计算其深度,而图像中的所有信息都用于计算全局算法。一般来说,局部算法更快,但全局算法更准确。

实现这两种算法有很多不同的方法。通过他们的输出,我们可以估计整个场景中的深度信息,这可以帮助我们在地图场景中找到可行的区域和障碍物。整个输出类似于激光雷达输出的3D点云图,但相比之下,信息会更丰富。与激光相比,视觉的优点是价格低得多,缺点明显,测量精度差 有些,对计算能力的要求也要高得多。当然,这种精度差是相对的,在实际过程中是完全足够的,我们目前的算法在我们的平台上NVIDIA TK1和TX一是实时操作。

KITTI采集的图

不同的颜色代表不同的距离

在实际应用过程中,我们从相机中读取连续的视频帧流,我们也可以通过这些帧来估计场景 目标物体的运动为他们建立了运动模型,估计和预测他们的运动方向和速度,这对我们的实际行走和避障规划非常有用。

以上是最常见的传感器 ,各有各的优缺点,在实际应用过程中,一般采用各种传感器进行综合配置 ,在不同的应用和环境条件下,机器人能够正确感知障碍物信息。我们公司的E巡机器人的避障方案就是以双目视觉为主,再辅助以多种其他传感器,保证机器人周边360度空间立体范围内的障碍物都能被有效侦测到,保证机器人行走的安全性。

在谈论避障算法之前,我们假设机器人有一个导航计划算法来计划他们的运动,并按照计划的路径行走。避障算法的任务是在机器人执行正常行走任务时,实时更新目标轨迹,绕过障碍物。

Bug算法应该是最简单的避障算法。它的基本思想是在发现障碍物后绕着检测到的障碍物的轮廓走。Bug目前算法有很多变种, 比如Bug1算法,机器人首先完全围绕物体,然后离开目标最短的点。Bug算法效率低,但能保证机器人达到目标。

改进后的Bug在2算法中,机器人会在一开始就跟踪物体的轮廓,但不会完全围绕物体。当机器人可以直接移动到目标时,它可以直接从障碍物中分离出来,从而实现相对较短的机器人行走总路径。

除此之外,Bug算法中还有许多其他变种, 比如正切Bug算法等等。在许多简单的场景中,Bug算法更容易实现和方便,但它们不考虑机器人的动力学限制,所以在更复杂的实际环境中不那么可靠和容易使用。

势场法(PFM)

事实上,势场法不仅可以用来避障,还可以用来规划路径。在势场下处理机器人的势场法 有一点,随着势场的移动,目标是低谷值,即对机器人的吸引力,而障碍物在势场中的高峰是排斥力。所有这些力都添加到机器人身上,平稳地引导机器人走向目标,避免与已知障碍物碰撞。当机器人在移动过程中检测到新的障碍物时,需要更新势场并重新规划。

上图是典型的势场示例图。上图a的左上角是出发点,右下角是目标点,中间三个方块是障碍物。中间的图b是等势图,图中的每条连续线代表等势线,后虚线表示的在整个势场里面所规划出来的一条路径,我们的机器人是沿着势场所指向的那个方向一直行走,可以看见它会绕过这个比较高的障碍物。

最下面的图,即我们整个目标的吸引力还有我们所有障碍物产生的斥力最终形成的一个势场效果图,可以看到机器人从左上角的出发点出发,一路沿着势场下降的方向达到最终的目标点,而每个障碍物势场表现出在很高的平台,所以,它规划出来的路径是不会从这个障碍物上面走的。

一种扩展的方法在基本的势场上附加了了另外两个势场:转运势场和任务势场。它们额外考虑了由于机器人本身运动方向、运动速度等状态和障碍物之间的相互影响。

转动势场考虑了障碍与机器人的相对方位,当机器人朝着障碍物行走时,增加斥力, 而当平行于物体行走时,因为很明显并不会撞到障碍物,则减小斥力。任务势场则排除了那些根据当前机器人速度不会对近期势能造成影响的障碍,因此允许规划出 一条更为平滑的轨迹。

另外还有谐波势场法等其他改进方法。势场法在理论上有诸多局限性, 比如局部最小点问题,或者震荡性的问题,但实际应用过程中效果还是不错的,实现起来也比较容易。

它执行过程中针对移动机器人当前周边环境创建了一个基于极坐标表示的局部地图,这个局部使用栅格图的表示方法,会被最近的一些传感器数据所更新。VFH算法产生的极坐标直方图如图所示:

图中x轴是以机器人为中心感知到的障碍物的角度,y轴表示在该方向存在障碍物的概率大小p。实际应用的过程中会根据这个直方图首先辨识出允许机器人通过的足够大的所有空隙,然后对所有这些空隙计算其代价函数,最终选择具有最低代价函数的通路通过。

代价函数受三个因素影响:目标方向、机器人当前方向、之前选择的方向,最终生成的代价是这三个因素的加权值,通过调节不同的权重可以调整机器人的选择偏好。VFH算法也有其他的扩展和改进,比如在VFH+算法中,就考虑了机器人运动学的限制。由于实际底层运动结构的不同,机器的实际运动能力是受限的,比如汽车结构,就不能随心所欲地原地转向等。VFH+算法会考虑障碍物对机器人实际运动能力下轨迹的阻挡效应,屏蔽掉那些虽然没有被障碍物占据但由于其阻挡实际无法达到的运动轨迹。我们的E巡机器人采用的是两轮差动驱动的运动形式,运动非常灵活,实际应用较少受到这些因素的影响。

具体可以看 一下这个图示:

类似这样传统的避障方法还有很多,除此之外,还有许多其他的智能避障技术,比如神经网络、模糊逻辑等。

神经网络方法对机器人从初始位置到目标位置的整个行走路径进行训练建模,应用的时候,神经网络的输 入为之前机器人的位姿和速度以及传感器的输 入,输出期望的下一目标或运动方向。

模糊逻辑方法核心是模糊控制器,需要将专家的知识或操作人员的经验写成多条模糊逻辑语句,以此控制机器人的避障过程。比如这样的模糊逻辑:第一条,若右前方较远处检测到障碍物,则稍向左转;第 二条,若右前方较近处检测到障碍物,则减速并向左转更多角度;等等。

在「」公众号后台回复:即可下载全网第一份OpenCV扩展模块教程中文版,涵盖等二十多章内容。

在「」公众号后台回复:即可下载包括等31个视觉实战项目,助力快速学校计算机视觉。

在「」公众号后台回复:即可下载含有个基于实现20个,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。在群内发送广告,否则会请出群,谢谢理解~

标签: c1623转向传感器tk7480传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台