石志刚,梅松,邵毅帆,万如,宋志禹,谢铭露,李燕
(1.宁夏农林科学院枸杞工程技术研究所,银川市,750002;2.农业农村部南京农业机械化研究所,南京市,210014;3.南京理工大学机械工程学院,南京市,210094;4.泰兴市知识产权服务中心,江苏泰兴,225400)
据估计,2050年世界总人口将达到90亿,当前农业活动受限于生产效率而无法显著提升。为提升生产效率,在过去几十年中机械化和自动化生产模式已广泛应用于农业生产中,一批多领域专用智能农业机器被开发,针对不断提高农业机械的生产效率以满足日益增长的农业生产需求问题,农业机器人如何高效率行走问题,成为当前的研究热点,而农业机器人的路径规划技术是关键,这也是中国“十四五”智能农机和智慧农业要求下的必然发展趋势。
路径规划是提升移动机器人运行效率并保证其运行稳定性的核心技术之一[1],学者们对路径规划技术做了大量研究。移动机器人的路径规划就是在依照工作能耗最小、行走路线最短、行走时间最短等指标,在工作空间内找到一条从运行开始到运行结束可以避开环境障碍物满足工作指标的最优路径,该种算法是实现农业机器人远程化运行的基础。
经过几十年的发展,国内外学者对许多具有优良运行效率及运行稳定性的路径规划方法进行研究,如A*算法[2]、Dijstar算法、人工势场法[3]、蚁群算法[4]、粒子群算法[5]、RRT算法[6]等。A*算法、Dijstar算法、蚁群算法、遗传算法等能在机器人处于静态时得到较好路径,但因移动机器人自身算力限制及工况实时性的要求,对路径进行实时计算修正仍是一个问题。
人工势场法是一种启发式搜索算法,具有算法简单,实时性好的优点,因此广泛的应用于移动机器人的路径规划之中,并能在大部分移动机器人路径规划问题中能够取得较好的结果,但是也存在局部最小值和目标不可达的问题。针对这些问题,许多学者对人工势场法的运行机制和原理进行了深入研究,并提出了改进方案及应对对策。
本文分析了国内工业机器人路径规划的研究现状,对人工势场法在农业中的应用进行详细描述,介绍人工势场法的工作机制,并对人工势场法存在的问题以及解决方法进行原理分析和方法总结,并对效果较好的算法融合进行原理分析。最后对基于算法融合的人工势场法在农业机器人上应用研究方向进行展望。
人工势场法(Artificial Potential Field Method)是由Khatib[3]首先提出将障碍物及目标抽象为虚拟势场,通过建立对应势能场函数解决机械臂避障问题的一种算法。其中,虚拟势场源分为两类:引力场和斥力场。势能场函数将机器人进入区域中的障碍物视为斥力极,目标视为引力极。抽象定义引力极产生引力为参考位置(即移动机器人位置)指向目标位置的距离相关函数;斥力极产生的斥力为障碍物指向参考位置的距离相关函数。通过目标位置引力和环境中障碍物斥力的叠加,即可得移动机器人运行至该点时的合力大小及方向,如图1所示。
图1 人工势场法示意图Fig.1 Schematic diagram of artificial potential field method
假设移动机器人所在位置为X=(x,y),X为移动机器人位置向量,XT=(xT,yT)为目标位置向量,Katt为引力势场常量,则目标位置与移动机器人之间引力场
(1)
式中:ρ(X,XT)——移动机器人至目标位置相对距离。
引力势场负梯度方向为移动机器人所受引力方向,即
Fatt(X)=-Uatt=-Katt|X-XT|
(2)
由于移动机器人与障碍物间距离对规划路径会产生不同程度影响,因此设置以障碍物为中心的斥力场影响半径ρ0,移动机器人与障碍物间距离ρ。当ρ>ρ0时,移动机器人不再受斥力场的影响,此时受斥力为0;当ρ≤ρ0时,障碍物移动机器人间距离ρ与斥力场Urep成线性,可得引力场
(3)
式中:ρ(i)(X)——机器人与障碍物i间的欧氏距离;
Krep——斥力势场常量。
斥力势场负梯度方向为移动机器人所受斥力方向,即
(4)
通过将所受引力和所有斥力求取矢量和可得机器人所受合力
(5)
式中:n——障碍物的个数。
人工势场法对每个障碍物的斥力都进行考虑计算,能够很好的保证移动机器人规划路径不会与障碍物发生碰撞,但由于算法本身具有缺陷,存在无法到达目标位置或是最终轨迹不够平滑等问题。
人工势场法在移动机器人路径静态规划和动态规划中得到广泛应用,但存在陷入局部最小点、目标不可达、路径易出现震荡等问题,主要缺陷分析如下。
1)陷入局部最小点。人工势场法通过式(2)和式(4)对势能场求取负梯度,利用得到的引力和斥力根据式(5)求合力为移动机器人路径规划提供驱动力。当F(X)=0时,移动机器人在该点处陷入局部极小值[7],处于静止状态。该问题在多障碍物复杂环境中尤为常见。通过启发式算法可以在一定程度上解决局部最小值问题,但最终得到的规划路径可能非最优解且需要消耗大量时间运算,导致算法效率低下。
2)目标不可达问题。由于环境中障碍物的位置随不同工程问题而改变,因此当环境中的障碍物恰好分布在目标位置附近时,可能会导致移动机器人无法达到目标位置。在一般的路径规划问题中,障碍物不会恰好分布在目标位置周围,斥力不断减小,引力逐渐增大直至抵达目标位置。
在实际工作环境中,会出现如图2的情况。当目标位置的附近存在相隔很近的障碍物时,引力不断增加,斥力也随着移动机器人不断靠近目标位置而逐渐增大,根据式(5),此时移动机器人所受斥力可能远大于引力而无法抵达目标位置。
图2 目标不可达问题示意图Fig.2 Schematic diagram of unreachable target problem
3)路径震荡问题。移动机器人在狭窄的走廊中运行时,会同时受到来自两边的斥力。由于障碍物位置的突然变化使机器人产生不稳定振动,最终导致移动机器人与障碍物发生碰撞,这种情况随着速度的增加而格外明显。
许多学者对上述的缺陷进行了深入研究,以增加人工势场法的适用范围及运行可靠性。
针对人工势场法局部极小值的问题许多学者对算法进行改进,其中主要的思想是对势能场函数进行优化,通过优化势能场函数以满足跳出局部极小点。
1)障碍物连结法。在传统的人工势场法中,由于势场函数需要对每个障碍物的斥力进行合成,极大地增加了出现局部最小点的可能性。黄兴华[8]提出采用障碍物连结算法。通过对工作范围内的障碍物进行连结(图3),使其简化成一整个障碍物,便于运算并能在一定程度上减少局部最小点情况的出现。通过设定移动机器人的可视角度为α,可视范围半径为Rd,当两个障碍物满足距离阈值Ds时,则将两个障碍物连结,而其他可视范围外的不可见障碍物则假设其对移动机器人无斥力影响,与传统人工势场法中设置ρ0有相似之处。
图3 障碍物连结法示意图Fig.3 Schematic diagram of obstacle linkage method
2)Follow-Wall算法。虽然障碍物连结算法能够在一定程度上减少局部最小点情况的出现,但是出现斥力方向和引力方向处于同一条直线上时,移动机器人仍有可能陷入局部最小点而静止无法到达目标位置。
温素芳等[9]在传统人工势场法基础上,对障碍物影响范围进行二次分层。传统人工势场法中,障碍物与移动机器人间距离设为ρ,影响范围设为ρ0,当距离超过影响范围ρ0时,障碍物对移动机器人无斥力影响(如图4(a)),反之则考虑障碍物斥力影响。温素芳通过增设一个接近距离ρ1,当0<ρ<ρ1时,表示移动机器人即将碰撞障碍物,设置引力方向垂直于斥力(如图4(c)),再通过传统人工势场法求合力的方式得到运动方向以逃离局部最小点。
(a)当ρ>ρ0时
这种算法与Follow-Wall算法有着相似的思想。Follow-Wall算法是由Yun等[10]首先提出用于解决移动机器人陷入局部最小值问题。Follow-Wall算法通过设定5个运动方向,对每个运动方向上障碍物的距离与障碍物安全距离进行比较。如果存在某个方向上的距离大于安全距离,且满足上述条件中最小方向,则沿着该方向运行,并保持最大速度;如果所有方向距离都小于安全距离则使移动机器人静止,使移动机器人转动一个固定的角度。这种算法通过不断修正移动机器人路径,紧贴着障碍物的外沿不断运行,当面遇障碍物时通过不断改变运动方向来最终绕过障碍物达到目标位置,算法流程如图5所示。
图5 Follow-Wall算法流程图Fig.5 Flow chart of Follow-Wall algorithm
由于Follow-Wall算法使移动机器人沿着障碍物不断的运行,为使得移动机器人能够进入和退出算法,黄兴华[8]通过设定局部最小值影响范围,通过判断单位时间之后,移动机器人的坐标是否在以t秒前坐标位置为圆心,半径为Rl的圆内,若在即可判断移动机器人已陷入局部稳定状态即可使用跳出局部最小点算法以实现达到目标点位置。通过这个方法可以极大减少算法的复杂程度,为局部最小点算法提供基础。王丽[11]通过判断移动机器人与障碍物和目标点之间的角度来知晓运行方向以及障碍物存在位置,以开始Follow-Wall算法;当目标点位置位于移动机器人正面180°内且正前方不存在障碍物时,则退出Follow-Wall算法。
3)虚拟目标点。设置虚拟目标点在遇到U型和C型障碍物时能如Follow-Wall算法一样逃离局部最小点[12],但具有更高的运行效率。程志等[13]首先对移动机器人附近的障碍物进行判定,设置安全距离R0,通过对障碍物的两个端点Xo1和Xon间距离是否小于2R0来确定是否属于同一个障碍物。然后通过移动机器人与障碍物的相对位置来判断机器人是否处于障碍物影响范围中,其中分为两种情况。第一种情况如图6(a)所示,点X处于Xo1和Xon连线所围区域内,则认为处于障碍物影响范围内;第二种情况如图6(b)所示,当δ<φ时,则认为处于障碍物影响范围内。由此做X关于Xon的对称点X*,通过传统人工势场法的势场函数与虚拟目标点的不断更新,最终就能实现逃离局部最小点到达目标点位置。
(a)机器人在障碍物内
4)其他算法。(1)牛顿型势场[14]。N.Ahuja采用了一种牛顿型场,将障碍物简化成具有均匀密度的线段,线段上的每一个微元在整个环境中产生的势场类似于一个点电荷产生的电场,如果环境中有多个线段障碍物,则用迭加法将对应的势场相加以此势场为基础L形机器人规划了避障路径。(2)调和场(Harmonic Potential Filed)。Kim等[15]采用了一种调和场方法来消除势场中的局部极小点,但是它是以不能保证最后能避开障碍物为代价的。(3)基于速度势场。高升等[16]提出一种基于速度势场的局部在线避障方法,以速度势场的形式充分利用了相对速度的信息,得到了较好的局部在线避障效果。
目标不可达问题是人工势场法中的重点问题,已经有许多学者提出了一些相应的改进办法。郭枭鹏[17]对传统人工势场法中式(3)的势能函数进行改进,增加调节因子ρc(X,XT)=|(x-xT)c|+|(y-yT)c|,可得新的势能场函数
(6)
式中:ρ(X,XT)——移动机器人与目标点间距离;
c——斥力修正因子。
通过对势能场函数的修正使得移动机器人在接近目标点位置时,斥力能够根据与引力极间距离的不断减小,规划出不碰撞障碍物的路径,直至斥力为0,达到目标点。为解决斥力修正因子c取值问题,徐小强等[18]对修正因子的取值进行分别讨论。分别对c>1,c=1和0 于光金[19]通过在以移动机器人为圆点的一定半径的圆上均匀选取16个点,通过计算每个点处的势能函数,判断其中势能最小的点,使移动机器人以较小步长移动至该点,重复更新移动位置,直至到达目标点位置。 1)与RRT算法融合。快速拓展随机数算法[17](Rapidly-exploring Random Tree algorithm,RRT)是一种适用于二维以及更高维度的搜索算法,常应用于机械臂等复杂空间环境的路径规划。RRT算法的基本思想就是快速扩张树杈结构形成路径来搜索尚未到达的空间,以找到合适的可行路径。 算法融合主要通过人工势场法进行路径规划,再利用RRT算法的扩展树结构以实现逃离局部极小值区域。当通过定量的判断确定已陷入局部极小点时,将路径规划算法切换为RRT算法。通过判断移动机器人与逃离后的障碍物的距离判断是否要切换为传统人工势场法,直到抵达目标点。既解决了移动机器人在运行空间的局部极小值问题,也解决RRT算法路径规划中存在的随机性大的问题。 2)与模拟退火算法融合。模拟退火(Simulated Annealing)[20]算法最早由Metropolis等于1953年提出。模拟退火算法是通过赋予搜索过程一种实时变换且最终趋于零的概率突跳性,从而可有效避免陷入局部极小并最终趋于全局最优的串行结构的优化算法,算法的流程如图7所示。 图7 基于模拟退火的人工势场法流程图Fig.7 Flow chart of artificial potential field method based on simulated annealing 模拟退火与人工势场法算法融合,既能解决移动机器人局部极小值问题,并能通过模拟退火能够跳出极小值的优势解决目标不可达问题[21]。 3)与粒子群算法融合。粒子群算法(Particle Swarm Optimization,PSO)是一种模拟鸟群觅食行为的群智能算法,算法的基本思想是模拟鸟群在寻找食物时所表现出来的协作和信息共享。其具有参数少,运算快,局部搜索能力强的优点,但也存在全局搜索能力差,易陷入局部最小值的缺点。因此在与人工势场法进行算法融合时,多将其应用于多障碍物分布于目标附近的目标不可达问题和在障碍物前出现振荡的问题[22],通过该种算法融合能够规划出平滑且鲁棒性强的路径。 许多学者对上述的缺陷进行研究,以增加人工势场法的适用范围及运行可靠性。 人工势场法在移动机器人路径规划中得到了广泛的应用。许多学者提出了有效的改进措施,并对上述内容进行总结,如表1所示。 表1 改进的人工势场法的优缺点比较Tab.1 Comparison of advantages and disadvantages of improved artificial potential field method 人工势场法在工业中主要用于AGV小车的路径规划问题,现如今在农业中也有着很广泛的应用场景。在中国“十四五”智能农机和智慧农业要求下,一批能够利用计算机和传感器技术的自动驾驶算法,已经逐渐实现在农业生产中的应用,利用这种实时可视化的展示技术,能够实现农业生产的远程管控。人工势场法作为自动驾驶算法中应用较广的技术,与同类的路径规划算法相比具有计算量小,实时性强,适应性好等优点,更加适用于具有一定规模的设施蔬菜生产领域的装备机器人;相比于常规的手动控制方法,人工势场法具有更好的运行稳定性以及运行的精确性,并且能在一定程度上降低对人工操控机器人的依赖并提高效率。 相比于其他路径规划算法,人工势场法在农业领域的研究较少,可供参考的适用于农业场景的改进方法较少。算法融合是现阶段提高算法效率及提高算法可行性最好的办法。但现存的融合算法中的融合策略和算法运行选择机制缺乏深入的研究,因此需要对该方向进一步的探索。 本文首先介绍了人工势场法的工作机制,将障碍与目标分别看成引力和斥力,利用计算合力的方式实现对路径的实时规划,但人工势场法较容易出现局部最小点位置问题而无法得出下一步移动位置,因此根据出现的局部极小值和目标不可达问题进行了改进方法的原理分析和总结。 其中,针对局部极小点问题可以通过障碍物连接法、Follow-Wall算法和虚拟目标点的方式解决;针对目标不可达问题采用设置修正参数和进行局部最优搜索的方式解决。然后根据现有的算法融合方式,对人工势场法与RRT算法、模拟退火算法、粒子群算法的融合进行分析,并阐述其适用情况。人工势场法作为自动驾驶算法中应用较广的技术,与同类的路径规划算法相比具有计算量小,实时性强,适应性好等优点,更加适用于具有一定规模的设施蔬菜生产领域的农业装备机器人。 最后通过对多种改进方法进行比较,对农业机器人路径规划所需满足的实时性以及障碍物的多变性进行应用展望,可以利用现有的算法融合研究,结合农业生产的实际情况,对不同农业生产应用场合的融合算法选择机制进行深入研究,以满足现代农业生产中对机器人路径规划的需求。2.3 基于算法融合的人工势场法改进研究
3 人工势场法的总结与展望
3.1 人工势场法的总结
3.2 人工势场法的展望
4 结论