战场环境侦察无人车避障算法的优化设计
2020-10-12张小明于纪言
张小明,于纪言
(南京理工大学 机械工程学院, 南京 210094)
在充满危险性的战场环境中,为了避免人员伤亡,各大科研机构对战场环境侦察无人车展开深入研究。文献[1]采用双目视觉传感器进行环境探测,基于虚拟力场法进行航迹规划,能有效避开大型障碍物,但对细小交叉线缆的避障效果并不理想,且受雾霾和沙尘等因素影响较大;文献[2]提出一种基于MPC的自主避障算法,解决了车辆在复杂路况下出现稳定性和避障行为冲突的问题,但其模型过于复杂,且当车速较高时避障效果下降明显;文献[3]提出一种基于机器人速度的模糊控制算法,实现对动态和静态障碍物精确的避障效果,但其动态环境下的数学模型十分复杂,且适用的避障环境中障碍物规律分布,不适用于环境复杂的地形环境;文献[4]提出一种具有速度反馈的无人艇模糊避障控制算法[5],将超声波传感器和多路激光传感器的数据进行加权融合,并在模糊控制的基础上根据环境情况自动调整航速,但其突出的问题是模糊控制规则过于复杂,三层结构的控制系统在实际复杂的使用环境中较难维护。
本文设计的避障算法应用背景是在未知战场环境中由操作员在避障之前给出要侦察环境的4个顶点坐标和目标点坐标,以此确定待避障环境范围大小和目标点位置,无人车依靠单线激光测距传感器探测未知环境中障碍物的位置后建立模拟地形图并将各障碍物标定其中,无人车主要完成两个任务:(1)完成对给定范围未知环境的侦察,确定其中各障碍物的位置和状态信息,并在模拟地形图中标定;(2)在对给定范围未知环境侦察的同时基于避障算法规划出一条至目标点的无障碍最佳通行路径,以对目标点实现必要的物资补给。本文基于人工势场法[6-7]设计环境侦察无人车避障算法,无人车每侧均布两个单线激光传感器,形成以无人车为中心、激光探测距离为半径的全覆盖探测区域,并针对人工势场法存在的局部最小点问题,提出“米”字坐标试走改进方案;针对目标点不可到达问题,提出目标点附近重新定义斥力场函数改进方案,使无人车在保证避障路线最优情况下控制系统简单可靠。
1 障碍物检测
本文设计的未知环境探测系统由8个单线激光测距传感器构成,小车每侧均布两个,每个激光测距传感器有90°的扫描范围,相较于多线激光雷达,最大程度的降低了成本。
1.1 激光测距传感器
本文采用单线激光测距传感器探测环境中障碍物的位置,其在无人车上的布置如图1所示。
图1 单线激光测距传感器分布示意图
激光测距传感器由两部分组成:激光回路部分和信号测量部分。激光回路部分由激光发射器、凸透镜和分光镜组成;信号测量部分由雪崩光电二极管、信号放大器、比较器和延时测量芯片TDC-GP2组成。整个激光测距传感器的系统图如图2所示,具体工作过程如下:当系统对准障碍物后,激光器发出一个很强很窄的激光脉冲,这个脉冲经过凸透镜,将光束发散角压缩为几个毫弧度,使得脉冲光聚焦为平行光发射。这样的光脉冲射到几公里远的地方,光斑直径只有几米,当测量距离小于 30 m时,光斑更小,更利于高精度测量[8]。在脉冲发射出去的同时,其中极小一部分光由分束镜反射到探测器-光电二极管,它作为发射参考信号,用来标识激光发出的时间,即计时开始时刻t1。 参考信号到达探测信号的光电转换器(雪崩光电二级管 APD),将光脉冲变成电脉冲。这个电脉冲经放大、整形滤波后送入延时测量芯片,使其开始计时。而射向目标的光脉冲由于目标的漫反射,总有一部分光从原路反射回来,于是射向目标的光脉冲在凸透镜汇聚后射向目标点,经目标点反射回来的散射光先通过窄带滤波片滤除杂波,再由凸透镜将微弱的反射光会聚到小面积的光电探测器上,经过光电转换器变成电脉冲,再经过放大整形电路而进入时间测量系统,这是计时结束时刻t2,使其停止计时。 由此,TDC-GP2 便可以测得激光往返的时间,再将测量到的激光延时通过4线8位数据位的SPI口[9]传输到无人车的控制系统MCU,由MCU计算出障碍物离无人车的距离及其他状态信息。在本设计中,主控系统的MCU采用168 MHz的STM32F407。
图2 测距系统结构示意图
1.2 TDC-GP2与STM32的通信
TDC-GP2将测量到的t1与t2之间的时间间隔传输到STM32中计算出最终的障碍物位置信息,具体是通过串行外设接口(Serial Peripheral Interface,SPI)。SPI以主从方式工作,通常有一个主设备和一个或多个从设备,需要至少4根线,它们是SDO(数据输入)、SDI(数据输出)、SCLK(时钟)、CS(片选)[10],各引脚的作用分别是:(1)SDO:主设备数据输出,从设备数据输入;(2)SDI:主设备数据输入,从设备数据输出;(3)SCLK:时钟信号,由主设备产生;(4)CS:从设备使能信号,由主设备控制;
其中片选信号SSN控制芯片是否被选中,即只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI从设备。TDC-GP2将激光延时传输到STM32后,根据以下公式计算出无人车与障碍物之间的距离,即:
(1)
2 战场环境侦察无人车避障算法
战场环境侦察无人车主要用在局部地形侦察,实现在静态环境中从起始点到目标点的无障碍最优通行。环境中岩石、树木和小山丘分布较多,这些障碍物均属于静态障碍物,符合人工势场法的运用条件。该避障算法数学模型简单、运行可靠,配合均布在车身的八个单线激光测距传感器,可以保证无人车具有很高的障碍物探测精度。
2.1 经典人工势场法
经典人工势场法是美国著名科学家O.Khatib于1986年提出的,其基本原理是将目标点构建为虚拟引力场,将障碍物构建为虚拟斥力场,如图3所示。而无人车避障系统运行在由引力场和斥力场共同作用的人工势场中,通过搜索势能减弱的方式寻找无障碍路径,具有算法简单、易于实现、实时性较高等特点。
图3 人工势场法原理示意图
其中目标点对无人车的引力函数为:
(2)
式(2)中:η为正比例位置增益系数;ρ(q,qg)表示的矢量大小为无人车位置q和目标点位置qg之间的欧几里得距离|q-qg|,矢量方向为两个位置连线上指向目标点。
障碍物对无人车的斥力函数为:
(3)
式(3)中:k为正比例位置增益系数;ρ0为正常数,表示在无人车周围障碍物的最大影响半径;ρ(q,q0)表示无人车坐标点q和无人车离无人车距离最近的障碍物坐标点q0之间的欧几里得距离|q-q0|,方向为障碍物指向无人车。
无人车的总势场力可表示为:
F(q)=-▽U(q)=Fy(q)+Fc(q)
(4)
2.2 经典人工势场法存在的问题
在实际使用中经典人工势场法存在一些缺陷和问题,如目标点不可到达问题和局部最小点问题等。
2.2.1目标点不可到达问题
目标点不可到达问题是指当无人车在引力场作用下向目标点行进时,若此时在目标点距离很近的地方布置有一个障碍物,则此时无人车与目标点附近的障碍物的距离也越来越小,所受障碍物的斥力也就越来越大,引力反而越来越小,当无人车受到的斥力大于所受到的引力时,目标点将不会是整个势场的全局最小点[11],因此无人车将会在综合作用力的作用下远离目标点,这就是目标点不可到达的问题。
针对这个问题,我们需要在无人车进入离目标点很近的范围内时重新定义斥力场函数,如果能够满足在无人车向目标点逼近时斥力场趋于零,那么目标点将是整个势场的全局最小点,从而解决目标点不可到达问题,这就驱使我们在重新定义斥力场函数时,把无人车与目标点之间的相对距离也考虑进去,从而建立一个新的斥力场函数,有:
(5)
式(5)中:ρ是无人车与障碍物之间的最近距离;(X-Xgoal)为无人车与目标点之间的距离,障碍物的影响范围在距离ρ0之内;η是一个位置增益系数。与之前提出的斥力场函数相比,引入了无人车与目标点之间的相对距离,保证了整个势场仅在目标点Xgoal处全局最小。引力和斥力的势场函数应该使得无人车所受的合力Fsum将驱使无人车远离障碍物,向目标点靠近。根据上一章节的定义,即X=Xgoal时,斥力可以写为:
(6)
式(6)中:
(7)
(8)
新的斥力矢量Frep1的方向为从障碍物指向无人车,新的斥力矢量Frep2的方向为从无人车指向目标点。无人车在新斥力场函数作用下所受的斥力与它的两个斥力分量的关系如图4所示。很显然,当Frep1对无人车产生方向背离无人车的斥力时,Frep2相应的对无人车产生朝向目标点的吸引力。在式(7)、(8)中,当系数n=0时,与原斥力场函数相同,无人车在目标点附近所受到的斥力仍未关联目标点与无人车间的距离。因此,在新的斥力场函数中,我们选择n>0。图4为战场环境侦察无人车在新的斥力场函数下的受力分析图。
图4 新斥力场函数下无人车受力分析图
2.2.2局部最小点问题
无人车在自主避障规划路径时,在合力的引导下避开障碍物,向总势场强度减弱的方向运动,但在某些特殊情况下,由于障碍物的数量以及排列方式等因素使得无人车在其运动路径中的某一点处所受到的斥力作用与引力作用大小相等,方向相反时达到受力平衡,从而失去牵引作用,此时无人车将无法通过障碍物从而无法到达目标点,这就是局部最小点问题。
针对局部最小点问题,本文提出改进方案。当检测到无人车陷入局部稳定区域后,算法就会从人工势场法转入局部稳定区改进算法来确定无人车下一个前进方向,局部最小点改进算法采用“米”字试走法。当检测到无人车在路径中的某一点经过时间间隔t内行走的距离超过局部最小距离R,则说明无人车此时并未陷入局部最小点,此时不需“米”字试走算法介入。当无人车在某一点处被检测到在时间间隔t内行走距离未达到局部最小距离R时,系统自动由“米”字试走算法介入控制,以无人车此时的坐标点m_cNow为原始点,即“米”字中心点,标定此时水平向左的方向为0°,按顺时针方向分别标定为45°,90°,135°,180°,225°,270°,315°,0°,如图5所示。以此时无人车所处的位置m_cNow为坐标原点,建立上述的“米”字型坐标系,先以水平向左方向即0°方向为下一次的行进方向,经过时间间隔t后再次检测无人车行进距离是否大于R,若经过时间间隔t后的行进距离大于R,则说明此时无人车已不处于局部最小区域,此时再次由人工势场控制算法介入。若经过时间间隔t后,无人车行进距离小于R,则说明无人车仍处于局部最小区域内,此时无人车将沿0°方向退回,在原点位置以0°方向顺时针递增45°为下一次行进的方向,时间间隔t后再次检测无人车是否走出局部最小区域,接下来的步骤与上述过程同理,直到无人车顺利到达目标点。
图5 “米”字试走法示意图
3 验证设计
为了进一步说明人工势场法对战场环境侦察的适用性,针对目前常用的模糊控制算法、A*算法和人工势场法在模拟战场环境下设计对比实验,观察避障效果。在MobotSim仿真平台中采用0.2 m×0.1 m的移动无人车并且在小车周围均布8个单线激光传感器,用同样的模拟实验环境一次对上述3种算法进行验证,并观察其避障路径,如图6所示。
图6 3种避障算法仿真实验避障路线图
图6的模拟战场实验环境属于静态环境,尺寸为5 m×3 m,分别模拟了3种情景:规律分布障碍物、回转形不规则障碍物和无规律分布障碍物。在仿真平台中对于避障性能的第一评价指标为通行时间,第二评价指标为通行距离。小车除去加速减速的情况之外匀速行驶速度保持不变,一般情况下通行时间最短的避障路径就是最佳避障路径,为了进一步确保其性能最佳,以第二评价指标再次进行排序筛选。由图6可以看出,模糊控制算法和人工势场法均完成了避障到达目标点,而A*算法则陷入局部最小点问题困在了回转形不规则障碍物中。3种算法在对比实验中所得的避障性能数据如表1所示。由此认为人工势场法更加适用于战场静态环境侦察避障。
表1 3种避障算法数据
为了进一步验证本文提出的针对性改进办法在实际应用中是否有效,在MobotSim仿真平台中设计模拟实验以及布置实地实验环境验证其避障性能。模拟实验中事先根据引力场和斥力场计算出局部最小点的位置,并在该位置设置障碍物,模拟实验结果如图7所示。
由图7可得,人工势场法下无人车始终没有走出局部最小区域;改进人工势场法下无人车在检测到陷入局部最小区域后按照“米”字坐标试走法成功走出局部最小区域,由于在目标点附近重新定义了引力场函数,因此无人车顺利到达目标点。实地实验环境场地按照模拟实验1∶2搭建,障碍物布局相同,确认局部最小点的位置,分别试验人工势场法和改进人工势场法,最终实验结果得出人工势场法经过152 s走出局部最小区域,经过复杂的避障路线最终到达目标点;改进人工势场法经过8.3 s走出局部最小区域,按照简单直接的避障路径最终顺利达到目标点。
图7 改进方法效果验证路线图
4 结论
战场环境侦察无人车避障算法基于经典人工势场法进行针对性改进,该方法通过在目标点附近重新定义斥力场函数解决目标点不可到达问题;通过“米”字坐标试走法避免了局部最小点问题。通过对比性实验,充分验证了改进人工势场法的快速性和可靠性,说明了改进人工势场法相较于其他常用避障方法对于战场环境侦察的适用性。