深度:AGV如何避障,从传感器和算法原理讲起

深度:AGV如何避障,从传感器算法原理讲起
避障是指移动机器⼈在⾏⾛过程中,通过传感器感知到在其规划路线上存在静态或动态障碍物易白沙
时,按照⼀定的算法实时更新路径,绕过障碍物,最后达到⽬标点。
避障常⽤哪些传感器
  不管是要进⾏导航规划还是避障,感知周边环境信息是第⼀步。就避障来说,移动机器⼈
需要通过传感器实时获取⾃⾝周围障碍物信息,包括尺⼨、形状和位置等信息。避障使⽤的传
感器多种多样,各有不同的原理和特点,⽬前常见的主要有视觉传感器、激光传感器、红外传
感器、超声波传感器等。下⾯我简单介绍⼀下这⼏种传感器的基本⼯作原理。
  1、超声波
  超声波传感器的基本原理是测量超声波的飞⾏时间,通过d=vt/2测量距离,其中d是距
离,v是声速,t是飞⾏时间。由于超声波在空⽓中的速度与温湿度有关,在⽐较精确的测量
中,需把温湿度的变化和其它因素考虑进去。
  上⾯这个图就是超声波传感器信号的⼀个⽰意。通过压电或静电变送器产⽣⼀个频率在⼏
⼗kHz的超声波脉冲组成波包,系统检测⾼于某阈值的反向声波,检测到后使⽤测量到的飞⾏时
间计算距离。超声波传感器⼀般作⽤距离较短,普通的有效探测距离都在⼏⽶,但是会有⼀个
⼏⼗毫⽶左右的最⼩探测盲区。由于超声传感器的成本低、实现⽅法简单、技术成熟,是移动
机器⼈中常⽤的传感器。超声波传感器也有⼀些缺点,⾸先看下⾯这个图。
  因为声⾳是锥形传播的,所以我们实际测到的距离并不是 ⼀个点,⽽是某个锥形⾓度范围
内最近物体的距离。
  另外,超声波的测量周期较长,⽐如3⽶左右的物体,声波传输这么远的距离需要约20ms
的时间。再者,不同材料对声波的反射或者吸引是不相同的,还有多个超声传感器之间有可能
会互相⼲扰,这都是实际应⽤的过程中需要考虑的。
指纹检材是什么意思
  2、红外
  ⼀般的红外测距都是采⽤三⾓测距的原理。红外发射器按照⼀定⾓度发射红外光束,遇到
物体之后,光会反向回来,检测到反射光之后,通过结构上的⼏何三⾓关系,就可以计算出物
体距离D。
  当D的距离⾜够近的时候,上图中L值会相当⼤,如果超过CCD的探测范围,这时,虽然物7的乘法口诀教学设计
体很近,但是传感器反⽽看不到了。当物体距离D很⼤时,L值就会很⼩,测量量精度会变差。
因此,常见的红外传感器 测量距离都⽐较近,⼩于超声波,同时远距离测量也有最⼩距离的限
制。另外,对于透明的或者近似⿊体的物体,红外传感器是⽆法检测距离的。但相对于超声来
说,红外传感器具有更⾼的带宽。
  3、激光
  常见的激光雷达是基于飞⾏时间的(ToF,time of flight),通过测量激光的飞⾏时间来
进⾏测距d=ct/2,类似于前⾯提到的超声测距公式,其中d是距离,c是光速,t是从发射到接
收的时间间隔。激光雷达包括发射器和接收器 ,发射器⽤激光照射⽬标,接收器接收反向回的光波。机械式的激光雷达包括⼀个带有镜⼦的机械机构,镜⼦的旋转使得光束可以覆盖 ⼀个平⾯,这样我们就可以测量到⼀个平⾯上的距离信息。
  对飞⾏时间的测量也有不同的⽅法,⽐如使⽤脉冲激光,然后类似前⾯讲的超声⽅案,直接测量占⽤的时间,但因为光速远⾼于声速,需要⾮常⾼精度的时间测量元件,所以⾮常昂贵;另⼀种发射调频后的连续激光波,通过测量接收到的反射波之间的差频来测量时间。
图⼀
图⼆
  ⽐较简单的⽅案是测量反射光的相移,传感器以已知的频率发射⼀定幅度的调制光,并测量发射和反向信号之间的相移,如上图⼀。调制信号的波长为lamda=c/f,其中c是光速,f是调制频率,测量到发射和反射光束之间的相移差theta之后,距离可由lamda*theta/4pi计算得到,如上图⼆。张远忠
  激光雷达的测量距离可以达到⼏⼗⽶甚⾄上百⽶,⾓度分辨率⾼,通常可以达到零点⼏度,测距的精度也⾼。但测量距离的置信度会反⽐于接收信号幅度的平⽅,因此,⿊体或者远距离的物体距离测
量不会像光亮的、近距离的物体那么好的估计。并且,对于透明材料,⽐如玻璃,激光雷达就⽆能为⼒了。还有,由于结构的复杂、器件成本⾼,激光雷达的成本也很⾼。
  ⼀些低端的激光雷达会采⽤三⾓测距的⽅案进⾏测距。但这时它们的量程会受到限制,⼀般⼏⽶以内,并且精度相对低⼀些,但⽤于室内低速环境的SLAM或者在室外环境只⽤于避障的话,效果还是不错的。
  4、视觉
  常⽤的计算机视觉⽅案也有很多种, ⽐如双⽬视觉,基于TOF的深度相机,基于结构光的深度相机等。深度相机可以同时获得RGB图和深度图,不管是基于TOF还是结构光,在室外强光环境下效果都并不太理想,因为它们都是需要主动发光的。像基于结构光的深度相机,发射出的光会⽣成相对随机但⼜固定的斑点图样,这些光斑打在物体上后,因为与摄像头距离不同,被摄像头捕捉到的位置也不相同,之后先计算拍到的图的斑点与标定的标准图案在不同位置的偏移,利⽤摄像头位置、传感器⼤⼩等参数就可以计算出物体与摄像头的距离。⽽我们⽬前的E巡机器⼈主要是⼯作在室外环境,主动光源会受到太阳光等条件的很⼤影响,所以双⽬视觉这种被动视觉⽅案更适合,因此我们采⽤的视觉⽅案是基于双⽬视觉的。
  双⽬视觉的测距本质上也是三⾓测距法,由于两个摄像头的位置不同,就像我们⼈的两只眼睛⼀样,
看到的物体不⼀样。两个摄像头看到的同⼀个点P,在成像的时候会有不同的像素位置,此时通过三⾓测距就可以测出这个点的距离。与结构光⽅法不同的是,结构光计算的点是主动发出的、已知确定的,⽽双⽬算法计算的点⼀般是利⽤算法抓取到的图像特征,如SIFT或SURF特征等,这样通过特征计算出来的是稀疏图。
  要做良好的避障,稀疏图还是不太够的,我们需要获得的是稠密的点云图,整个场景的深度信息。稠密匹配的算法⼤致可以分为两类,局部算法和全局算法。局部算法使⽤像素局部的信息来计算其深度,⽽全局算法采⽤图像中的所有信息进⾏计算。⼀般来说,局部算法的速度更快,但全局算法的精度更⾼。
  这两类各有很多种不同⽅式的具体算法实现。能过它们的输出我们可以估算出整个场景中的深度信息,这个深度信息可以帮助我们寻地图场景中的可⾏⾛区域以及障碍物。整个的输出类似于激光雷达输出的3D点云图,但是相⽐来讲得到信息会更丰富,视觉同激光相⽐优点是价格低很多,缺点也⽐较明显,测量精度要差 ⼀些,对计算能⼒的要求也⾼很多。当然,这个
精度差是相对的,在实⽤的过程中是完全⾜够的,并且我们⽬前的算法在我们的平台NVIDIA TK1和TX1上是可以做到实时运⾏。
144f5790f52b3fccc0b4adc6314ce84b.jpg
KITTI采集的图
c769e46d57db45b94be6a310556585e4.jpg
实际输出的深度图,不同的颜⾊代表不同的距离
  在实际应⽤的过程中,我们从摄像头读取到的是连续的视频帧流,我们还可以通过这些帧来估计场景中 ⽬标物体的运动,给它们建⽴运动模型,估计和预测它们的运动⽅向、运动速度,这对我们实际⾏⾛、避障规划是很有⽤的。
  以上⼏种是最常见的⼏种传感器 ,各有其优点和缺点,在真正实际应⽤的过程中,⼀般是综合配置使⽤多种不同的传感器 ,以最⼤化保证在各种不同的应⽤和环境条件下,机器⼈都能正确感知到障碍物信息。我们公司的E巡机器⼈的避障⽅案就是以双⽬视觉为主,再辅助以多种其他传感器,保证机器⼈周边360度空间⽴体范围内的障碍物都能被有效侦测到,保证机器⼈⾏⾛的安全性。
避障常⽤算法原理
  在讲避障算法之前,我们假定机器⼈已经有了⼀个导航规划算法对⾃⼰的运动进⾏规划,并按照规划的路径⾏⾛。避障算法的任务就是在机器⼈执⾏正常⾏⾛任务的时候,由于传感器的输⼊感知到了障碍物的存在,实时地更新⽬标轨迹,绕过障碍物。
  1、Bug算法网络对话
  Bug算法应该是最简单的⼀种避障算法了,它的基本思想是在发现障碍后,围着检测到的障碍物轮廓⾏⾛,从⽽绕开它。Bug算法⽬前有很多变种, ⽐如Bug1算法,机器⼈⾸先完全地围绕物体,然后从距⽬标最短距离的点离开。Bug1算法的效率很低,但可以保证机器⼈达到⽬标。
Bug1算法⽰例
  改进后的Bug2算法中,机器⼈开始时会跟踪物体的轮廓,但不会完全围绕物体⼀圈,当机器⼈可以直接移动⾄⽬标时,就可以直接从障碍分离,这样可以达到⽐较短的机器⼈⾏⾛总路径。
Bug2算法⽰例
  除此之外,Bug算法还有很多其他的变种, ⽐如正切Bug算法等等。在许多简单的场景中,Bug算法是实现起来⽐较容易和⽅便的,但是它们并没有考虑到机器⼈的动⼒学等限制,因此在更复杂的实际环境中就不是那么可靠好⽤了。
  2、势场法(PFM)
  实际上,势场法不仅仅可以⽤来避障,还可以⽤来进⾏路径的规划。势场法把机器⼈处理在势场下
的 ⼀个点,随着势场⽽移动,⽬标表现为低⾕值,即对机器⼈的吸引⼒,⽽障碍物扮演的势场中的⼀个⾼峰,即斥⼒,所有这些⼒迭加于机器⼈⾝上,平滑地引导机器⼈⾛向⽬标,同时避免碰撞已知的障碍物。当机器⼈移动过程中检测新的障碍物,则需要更新势场并重新规划。
  上⾯这个图是势场⽐较典型的⽰例图,最上的图a左上⾓是出发点,右下⾓是⽬标点,中间三个⽅块是障碍物。中间的图b就是等势位图,图中的每条连续的线就代表了⼀个等势位的⼀条线,然后虚线表⽰的在整个势场⾥⾯所规划出来的⼀条路径,我们的机器⼈是沿着势场所指向的那个⽅向⼀直⾏⾛,可以看见它会绕过这个⽐较⾼的障碍物。最下⾯的图,即我们整个⽬标的吸引⼒还有我们所有障碍物产⽣的斥⼒最终形成的⼀个势场效果图,可以看到机器⼈从左上⾓的出发点出发,⼀路沿着势场下降的⽅向达到最终的⽬标点,⽽每个障碍物势场表现出在很⾼的平台,所以,它规划出来的路径是不会从这个障碍物上⾯⾛的。
  ⼀种扩展的⽅法在基本的势场上附加了了另外两个势场:转运势场和任务势场。它们额外考虑了由于机器⼈本⾝运动⽅向、运动速度等状态和障碍物之间的相互影响。
  转动势场考虑了障碍与机器⼈的相对⽅位,当机器⼈朝着障碍物⾏⾛时,增加斥⼒, ⽽当平⾏于物体⾏⾛时,因为很明显并不会撞到障碍物,则减⼩斥⼒。任务势场则排除了那些根据当前机器⼈速度不会对近期势能造成影响的障碍,因此允许规划出 ⼀条更为平滑的轨迹。
  另外还有谐波势场法等其他改进⽅法。势场法在理论上有诸多局限性, ⽐如局部最⼩点问题,或者震荡性的问题,但实际应⽤过程中效果还是不错的,实现起来也⽐较容易。
  向量场直⽅图(VFH)
  它执⾏过程中针对移动机器⼈当前周边环境创建了⼀个基于极坐标表⽰的局部地图,这个局部使⽤栅格图的表⽰⽅法,会被最近的⼀些传感器数据所更新。VFH算法产⽣的极坐标直⽅图如图所⽰:
  图中x轴是以机器⼈为中⼼感知到的障碍物的⾓度,y轴表⽰在该⽅向存在障碍物的概率⼤⼩p。实际应⽤的过程中会根据这个直⽅图⾸先辨识出允许机器⼈通过的⾜够⼤的所有空隙,然后对所有这些空隙计算其代价函数,最终选择具有最低代价函数的通路通过。
  代价函数受三个因素影响: ⽬标⽅向、机器⼈当前⽅向、之前选择的⽅向,最终⽣成的代价是这三个因素的加权值,通过调节不同的权重可以调整机器⼈的选择偏好。VFH算法也有其他的扩展和改进,⽐如在VFH+算法中,就考虑了机器⼈运动学的限制。由于实际底层运动结构的不同,机器的实际运动能⼒是受限的,⽐如汽车结构,就不能随⼼所欲地原地转向等。
VFH+算法会考虑障碍物对机器⼈实际运动能⼒下轨迹的阻挡效应,屏蔽掉那些虽然没有被障碍物占据但由于其阻挡实际⽆法达到的运动轨迹。我们的E巡机器⼈采⽤的是两轮差动驱动的运动形式,运动⾮常灵活,实际应⽤较少受到这些因素的影响。
好爱情就是要算计
  具体可以看⼀下这个图⽰:
  类似这样传统的避障⽅法还有很多,除此之外,还有许多其他的智能避障技术,⽐如神经⽹络、模糊逻辑等。
  神经⽹络⽅法对机器⼈从初始位置到⽬标位置的整个⾏⾛路径进⾏训练建模,应⽤的时候,神经⽹络的输 ⼊为之前机器⼈的位姿和速度以及传感器的输 ⼊,输出期望的下⼀⽬标或运动⽅向。
  模糊逻辑⽅法核⼼是模糊控制器,需要将专家的知识或操作⼈员的经验写成多条模糊逻辑语句,以此控制机器⼈的避障过程。 ⽐如这样的模糊逻辑:第⼀条,若右前⽅较远处检测到障碍物,则稍向左转;第 ⼆条,若右前⽅较近处检测到障碍物,则减速并向左转更多⾓度;等等。
避障过程中存在哪些问题
  1、传感器失效
  从原理上来讲,没有哪个传感器是完美的,⽐⽅说机器⼈⾯前是⼀块完全透明的玻璃,那么采⽤红外、激光雷达或视觉的⽅案,就可能因为这个光线直接穿过玻璃导致检测失败,这时候就需要超声波这样的传感器来进⾏障碍物的侦测。所以我们在真正应⽤的过程中,肯定都需要采取多种传感器的结合,对不同传感器采集到的数据进⾏⼀个交叉验证,以及信息的融合,保证机器⼈能够稳定可靠的⼯
作。
  除此之外也有其他模式可能导致传感器失效,⽐如超声波测距,⼀般需要超声阵列,⽽阵列之间的传感器如果同时⼯作的话,会容易互相产⽣⼲扰,传感器A发射的光波反射回来被传感器B接收,导致测量结果出现错误,但是如果按照顺序⼀个个⼯作,由于超声波传感器采样的周期相对⽐较长,会减慢整个采集的速度,对实时避障造成影响,这就要求从硬件的结构到算法都必须设计好,尽可能提⾼采样速度,减少传感器之间的串扰。
  还有⽐如说,机器⼈如果需要运动的话,⼀般都需要电机和驱动器,它们在⼯作过程中都会产⽣电容兼容性的问题,有可能会导致传感器采集出现错误,尤其是模拟的传感器,所以在实现过程中要把电机驱动器等设备、传感器的采集部分,以及电源通信部分保持隔离,保证整个系统是能够正常⼯作的。
  2、算法设计
  在刚刚提到的⼏个算法,很多在设计的时候都并没有完善考虑到整个移动机器⼈本⾝运动学模型和动⼒学模型,这样的算法规划出来的轨迹有可能在运动学上是实现不了的,有可能在运动学上可以实现,但是控制起来⾮常困难,⽐如刚刚提到的如果⼀台机器⼈的底盘是汽车的结构,就不能随⼼所欲地原地转向,或者哪怕这个机器⼈是可以原地转向,但是如果⼀下⼦做⼀个很⼤的机动的话,我们的
整个电机是执⾏不出来的。所以在设计的时候,就要优化好机器⼈本⾝的结构和控制,设计避障⽅案的时候,也要考虑到可⾏性的问题。
  然后在整个算法的架构设计的时候,我们要考虑到为了避让或者是避免伤⼈或者伤了机器⼈本⾝,在执⾏⼯作的时候,避障是优先级⽐较⾼的任务,甚⾄是最⾼的任务,并且⾃⾝运⾏的优先级最⾼,对机器⼈的控制优先级也要最⾼,同时这个算法实现起来速度要⾜够快,这样才能满⾜我们实时性的要求。
  总之,在我看来,避障在某种程度上可以看做机器⼈在⾃主导航规划的⼀种特殊情况,相⽐整体全局的导航,它对实时性和可靠性的要求更⾼⼀些,然后,局部性和动态性是它的⼀个特点,这是我们在设计整个机器⼈硬件软件架构时⼀定要注意的。
问答环节

本文发布于:2024-09-22 18:16:29,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/500470.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:传感器   机器   算法   障碍物   势场
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议