基于双层蚂蚁算法和区域优化的机器人导航新算法 翻译+总结

改进的蚁群算法  1.初始路径的确定   2.光滑路径的优化

摘要

摘要提出了一种用于机器人自主导航的双层蚁群优化算法DL-ACO。该DL-ACO由两个独立和连续运行的蚁群算法组成。首先,我们提出了一种并行精英蚁群优化方法来生成复杂地图中的初始无碰撞路径,然后,我们应用了一种称为转折点优化算法的路径改进算法,其中初始路径在长度、平滑度和安全性方面进行了优化。此外,为了便于移动机器人的跟踪控制,提出了一种分段B样条路径平滑器。通过仿真验证了该方法的有效性,并与其他路径规划算法进行了比较。实验结果表明,该方法能够高效、一致地生成更好的无碰撞路径,证明了该算法的有效性。此外,在室内外环境中的实验验证了其性能。

索引项

双层蚁群优化(DLACO),路径规划,分段B样条曲线,轨迹优化。

一、导言

    全局路径规划是机器人技术中的一个重要问题,因为它有各种各样的应用,如自动驾驶、民用搜索、紧急救援、资源开发等[1]–[3]。该问题关注的是移动机器人如何找到从起始位置到目标位置的路径,避免与障碍物碰撞并满足约束条件。传统的方法,如人工势场[4]和细胞分解[5],被广泛应用于各种任务中,并且由于其易于执行而表现出显著的性能。然而,它们往往会消耗昂贵的计算量,并且容易陷入复杂问题的陷阱。与传统方法相比,启发式算法在机器人路径规划中被证明是有效的[6],包括神经网络[7]、模糊逻辑技术[8]和自然启发算法,如遗传算法(GA)[9]、粒子群优化(PSO)[10]和蚁群优化(ACO)算法[11]。一个好的路径规划方法应该具有较强的全局搜索能力和稳定性。然而,在PSO和GA等启发式算法中,初始值都是随机获得的,这种随机性有时会导致结果的巨大变化。图1描绘了由相同算法生成的三条截然不同的路由。这种不确定性严重影响了路径规划器在实际应用中的鲁棒性。

图1。由同一算法生成的三条路由。(方形)开始位置。(星星)目标位置。

    蚁群算法被认为是一种高效、稳健的优化技术,经常被用于不同的应用[12]–[15]。近年来,利用蚁群算法解决全局路径规划问题的研究已经展开。Duan等人[16]提出了一种基于蚁群算法和差分进化的无人机(UCA V)三维路径规划方法。[17]中引入了一种改进的蚁群算法,通过在路径评估中添加模糊代价函数,用于动态环境中的机器人路径规划。Zhu等人[18]提出了一种基于动态路径重新计算的算法和一种改进的scout-ant算法,用于未知环境中的机器人导航。蚁群算法虽然具有良好的搜索特性,但存在收敛速度慢早熟收敛等缺点。此外,蚂蚁在一次移动中可以移动的最大距离是有限的,这会导致路径扭曲,并影响路径长度和平滑度。

     针对蚁群算法的不足,研究人员提出了一些改进方法。Abdulkader等人[19]提出了一种混合蚁群算法该算法将局部搜索与现有蚁群算法相结合,以减少计算时间,并在更大的问题中获得更高的性能。Jiao等人[20]通过采用自适应状态转移策略和自适应信息更新策略,设计了一种自适应多态蚁群算法(APACA),该算法根据实际情况确定最佳组合参数。Chen等人[21]介绍了一种两阶段蚂蚁算法。该方法将启发式搜索分为预处理阶段和路径规划阶段,避免算法陷入局部极小值。并行计算和精英策略已被广泛用于提高算法的性能[22]–[25]。两个并行蚂蚁种群可以扩大搜索多样性,加强精英蚂蚁的影响可以加快收敛速度。

      本文将路径规划问题分为路径生成和轨迹优化两部分。我们提出了一种双层蚁群优化算法(DL-ACO),该算法包含两个分别求解这两部分的蚁群算法首先,提出了并行精英蚁群优化算法(PEACO)来生成初始可行路径。根据路径的曲折性,提出了拐点优化算法(TPOA),对初始路径进行进一步改进。这种双层计算结构提高了解的质量,增强了稳定性。

     当移动机器人追踪由一系列线段组成的路径时,它必须在每个角停下来,以调整方向盘的方向。这种突然的运动延长了行驶时间,缩短了机械设备的使用寿命。此外,在平坦的道路上跑步可以减少机器人的能量消耗[26]。因此,必须对这些不连续段进行平滑处理。B样条曲线是最有效的曲线插值方法之一,已广泛应用于许多学科,如医学成像[27]、几何建模[28]、曲面重建[29]和位置控制[30]。利用B样条曲线的特性,这种插值方案对于路径平滑非常有用[31],[32]。然而,在某些情况下,B样条曲线与原始线段之间的拟合度不符合要求,这可能会影响路径安全。因此,我们改进了传统的B样条曲线,设计了一条分段B样条曲线,该曲线只对拐角处的路径进行平滑。最后,将样条-蚁群算法(DLA-ACO)与机器人路径规划(DLA-ACO)相结合,形成机器人的分段路径规划。本文的主要贡献可以总结如下。

    1) 为了扩大蚁群算法的搜索多样性,避免早熟收敛,设计了蚁群算法的增强函数和并行计算结构。

    2) 提出了一种轨迹优化方法,以改善路径的长度和平滑度。

    3) 提出了一种分段B样条路径平滑器,在不影响安全性的前提下对拐角处的路径进行平滑。          4) 与其他启发式算法相比,本文提出的DL-ACO算法生成的路径更短、更平滑。此外,双层结构增强了算法的稳定性。

      本文的其余部分组织如下。第二节定义了基于网格的地图中的路径规划问题。第三节描述了PEACO的执行步骤。第四节介绍了轨迹优化方法,包括TPOA和分段B样条路径平滑器。第五节介绍了计算机模拟和实际实验结果。第六节总结了本文。

二、环境描述和问题陈述

 A.环境描述

  移动机器人的工作环境是一个基于网格的二维(2-D)场,其中有多个静态障碍物。障碍物没有对自由空间有影响的负面属性,它们的位置是完全已知的。因此,网格分为自由空间网格TF和障碍网格TO。移动机器人被视为质点R,以固定速度移动。

  高风险区域:出于安全考虑,机器人应与障碍物保持安全距离,以避免发生事故。如图2所示,给定一个障碍物网格to,to四个方向上的网格被定义为高风险网格Th。机器人将尝试避开该区域,但如果必要(例如狭窄通道),它们可以通过该区域。

B.问题陈述 

  在这里,我们提出了本文考虑的问题陈述。基于网格的路径规划问题定义如下。

  给定起始网格S和目标网格E,找到一组网格π(t):[0,t]→ T f,使得π(0)=S和π(T)=E,路径由π(T)中的网格表示,这些网格从S到E顺序连接,并且这些段不会与任何to碰撞。然后,在长度、平滑度和安全性方面优化路径。由于存在多个优化准则,全局路径规划问题被归类为多目标优化问题。

三、 并行精英蚁群优化(PEACO)

    为了在复杂环境中生成初始无碰撞路径,提出了一种PEACO算法。与传统蚁群优化算法不同,PEACO算法将蚁群划分为两个子种群,每个子种群独立迭代。提出了在信息素更新阶段增强精英蚂蚁的增强函数。此外,当每个子种群的迭代过程结束时,这两个子种群之间的信息素相互作用步骤就会被添加。PEACO的伪码在算法1中给出。

A.增强功能 

    在觅食过程中,一旦蚂蚁找到食物来源,它就会开始回程,并在它们经过的路径上沉积信息素来引导后面的蚂蚁。这形成了一个正反馈回路,蚁群中的所有蚂蚁最终都会沿着最佳路径到达食物来源。同时,信息素强度随着时间的推移而降低,这被称为信息素蒸发,这增加了蚂蚁找到更好路径而不是坚持现有路径的可能性。

   然而,当大量蚂蚁在同一条路线上奔跑时,信息素的积累率将远远高于蒸发率。这导致信息素高度集中在现有路径上。在这种情况下,即使蚂蚁找到了一条新路径,它在这条新路径上释放的信息素仍然远远少于现有路径上的信息素。因此,我们提出如下增强因子:

 其中t是当前迭代次数,n是一个常数,该常数取决于最大迭代次数,以确保q不会过大。这样,q在早期迭代中近似为零,并且早期迭代中的最优解不会得到加强。Lb是当前迭代中最佳路径的长度,而L是直到最后一次迭代的最优解。也就是说,只有当出现新的最优解时,我们才会增强它。

B.PEACO流程

  PEACO由三个步骤组成:初始化;选择;信息素更新。下面将对这些步骤中的每一步进行讨论。

1) 初始化:在这一步中,蚁群被分成两个子种群。初始化每个子群体中的几个参数,并在表I中解释所有参数。这些权重的值应通过实验分配。此外,开始S和目标E是确定的,所有蚂蚁都位于开始网格中。两个子群体独立地执行每个迭代。

 2) 选择:蚂蚁在旅行中使用轮盘赌选择来选择下一个网格。蚂蚁k从网格i移动到网格j的转移概率P kij计算如下:

ψ是可达网格集,ηj是启发式信息

其中dje是网格j和目标网格E之间的距离。此外,如果一只蚂蚁已经通过了预定义的最大网格数,但仍然没有达到目标,我们就让蚂蚁掉下来。

3) 信息素更新:这一步在所有蚂蚁到达目标后开始。在两个称为蚂蚁b的亚种群中选择最佳蚂蚁,同时进行信息素强化和信息素蒸发两个操作。规则由

式中,Δτkij(t)是蚂蚁k在时间t时在i和j之间的路径上沉积的信息素的数量。Δτbij是蚂蚁b沉积的额外信息素的数量,Δτkij(t)由下式给出:

其中Q是一个常数。Lk是蚂蚁k作为路径行进的总长度

其中x和y是坐标。当迭代次数达到预定义的Nmax时,将选择并输出两个子群体中的最佳路径。图3描述了PEACO中不同迭代后的优化结果。

图3。PEACO生成的路径。(a) 五次迭代。(b) 15次迭代。(c) 30次迭代。 

C.敏感性分析

   在本小节中,我们对α和β进行敏感性分析,这可能会影响我们算法的性能。我们固定一个参数,更改另一个参数,并记录路径长度的变化。图3中的地图用于测试。图4描述了结果。可以看出,当α∈ (1,3),β=5,α=1,β∈ (2, 5). 到目前为止,当β是α的2-5倍时,我们的算法可以提供很好的解,并且当参数在一定范围内时,解的质量是稳定的。然而,当参数超出范围时,溶液质量将受到影响。

 四、轨迹优化

    本节旨在改进PEACO生成的初始路径,不仅优化路径本身,而且降低机器人转向遵循预定路径的难度。TPOA用于减少转弯次数和缩短总路径长度,而分段B样条路径平滑器用于平滑转弯周围的路径。这两个步骤依次进行。

A.回转点优化算法(TPOA)

   

 图5。原始无碰撞路径和消除不必要转折点的优化路径

    如图5所示,S→ I1→ A.→ B→ I2→ E是一条从起点到目标的可行路径。显然,这条路不是最好的。例如,S上的蚂蚁可以直接到达A而不经过I1,类似于B到E而不经过I2。如果我们移除I1和I2,路径S→ A.→ B→ E的长度较短,转弯次数也较少。这些点I1和I2被定义为不必要的转折点。对于具有多个转弯的复杂路线,移除这些不必要的转弯点可以有效地改善其长度和平滑度。因此,TPOA建议如下。

  对于初始路径,节点集由起点、目标和所有转折点组成

考虑到路线的方向,蚂蚁只能朝一个方向移动。因此,当蚂蚁到达节点Ti时,以下节点集为:

 

 我们增加了一个额外的步骤来判断一个节点上的蚂蚁是否可以直接到达另一个节点。如果节点Ta和Tb之间的直线没有通过任何障碍网格to,我们相信Ta上的蚂蚁可以直接到达Tb。具体如下:

 其中Ta和Tb是路径上的任意两个节点。总之,节点Ti上蚂蚁的可到达节点Tr(i)的集合被定义为

 节点Ta中的蚂蚁到达节点Tb的概率由下式给出:

 式中,τab是信息素浓度,ηab是启发信息,由下式给出:

 其中dab是Ta和Tb之间的距离。在信息素更新中,我们考虑了四个参数来评估路径,包括路径长度、转弯点数、路径平滑度和路径安全性.

 其中n是转折点的数量,Lk是路径的长度,sf k是蚂蚁经过的高风险区域网格的数量,smk是路径平滑度

 TPOA的伪码在算法2中给出。

 B.分段B样条路径平滑器

    本小节旨在使拐点周围的道路变得平坦。B样条曲线是多段线平滑中最常用的曲线。然而,在某些情况下(例如,高转向角),通过B样条曲线平滑的路径与原始路径不太匹配。在这种情况下,碰撞的风险会增加。因此,我们提出了一种分段B样条路径平滑器,以实现更高的拟合度。

B样条曲线由n+1个控制点Bi和节点向量u定义,公式如下: 

其中Ni,k(u)是由以下DeBoor–Cox递归公式定义的基于B样条的函数:

 结值

   与传统的B样条不同,分段BSP线分别对每个角点的路径进行平滑。如图6所示,Ti−1.→ Ti→ Ti+1是原始路径,Ti是转折点,它周围的路径应该平滑。我们在Ti中加上P1,P2−Ti+1中的1Ti和P3、P4及其位置计算如下:

 其中Xsafe是安全距离,根据安全要求计算。然后,B样条曲线由P1、P2、P3和P4使用(19)-(21)定义。对于具有多个转弯的复杂路线,我们在每个拐角处执行此操作,以使整个路径平滑。

图7。分别用常规B样条曲线和分段B样条曲线平滑同一路径的图示 

图7显示了分别由常规B样条和分段B样条平滑的相同路径。显然,用分段B样条曲线平滑的路径比用传统的Bspline曲线平滑的路径更符合原始路径。分段B样条曲线的总体优势可以总结如下。

 1) 平滑后的路径与原始路径相切,即机器人在跟踪路径时不必转向。

2) 只有拐角处的两条线对曲线有影响,可以在不变换平滑路径的情况下更改任何其他路径。

3) 当转向角较大时,原始路径和平滑路径之间的拟合度仍然较高。

五、实验与讨论

在这一部分中,我们进行了两个实验来说明该算法的可行性和优点。在第一个实验中,在不同的地图下进行了仿真,并将结果与其他路径规划算法进行了比较。而在第二个实验中,我们将该算法应用于机器人在真实环境中的导航。

A.模拟和比较

    为了验证我们的算法在不同环境下的适应性,我们选择了8张地图进行仿真,它们都是一个面积在50×50范围内的正方形区域,并且在障碍物的数量、形状和道路宽度方面有所不同。起始和目标位置是随机定位的,其位置如表二所示。PEACO的参数设置如下:n=100;m=20;α = 1; β = 3; ρ = 0.03; Nmax=100。TPOA的参数设置为:m=10,α=0.3;β = 0.8; ρ = 0.1; Nmax=100。安全距离Xsafe=1。

  选择另外两种算法进行比较:APACA[20]和多目标萤火虫算法(MO-FA)[33]。APACA也是一种基于蚂蚁算法的路径规划算法,它使用自适应策略来保证信息素强度和可取性的相对重要性。此外,采用方向确定法加快收敛速度。MO-FA是一种用于多目标路径规划的群体智能算法,它采用了一种新的进化算子来获得准确有效的路径。对于APACA的参数,信息启发因子为1,期望启发因子为5,信息素蒸发系数为0.9,蚂蚁数为120,循环数为200。MO-FA的参数设置为:种群规模为50,世代数为150。每个方法在地图中运行100次。

 图8。由DL-ACO、AP-ACA和MO-FA生成的最佳路径。

 图8显示了每种方法生成的最佳路径。显然,我们的算法生成的路径具有更少的圈数和更短的长度。例如,我们的算法可以有效地避免U型陷阱,而APACA总是落入陷阱(参见地图3和5),在复杂环境中,路径质量的差异更为明显(参见地图3、4和8)。此外,还发现分段B样条在不影响安全性的情况下,有效地平滑了拐角处的路径。

 

 Fig. 9. Algorithm performance by maps.

   表III和图9总结了我们的算法和其他两种算法的特征之间的定性比较,包括长度、平滑度和良好解决率(Rateg)。长度由(7)计算,路径的平滑度是路径上所有内部点的线段之间的角度之和,由(16)计算。Rateg是一个指标,表示算法的稳定性,即找到近似最优解的概率。我们将路线的质量定义为

   最低Rq代表最佳解,其他Rq与最佳解相差小于5%的解被视为接近最优解。根据长度和平滑度的结果,我们的算法生成所有地图中最短、最平滑的路径。APACA生成的路径与我们的方法有很大差异,尤其是在存在陷阱的情况下。这是因为启发式信息使蚂蚁直接到达终点,蚂蚁在面对障碍物之前不会改变方向。MO-FA提供了更好的结果。但是,由于粒子的位置是随机的,拐角处的路径通常会有一些扭曲,这会影响路线的质量。关于(Rateg),我们的算法几乎每次都能产生一个接近最优的解。MO-FA可以在简单的环境中保持稳定(参见图2、图5和图7),而APACA的稳定性较差。我们的方法在复杂地图中的优越性更为明显。表四显示了所有地图的改善百分比。

 综上所述,虽然APACA可以生成可行的路径,但其避开陷阱的能力较差,这影响了其解的质量和稳定性。即使MO-FA可以在某个时间提供类似的解决方案,它在复杂映射中的稳定性也会迅速降低。这些结果可以解释为,我们提出的算法可以在长度、平滑度和安全性方面一致地生成更好、更健壮的路由。

B.真实环境下的路径规划

    在本小节中,通过实际实验进一步验证了算法在实际应用中的有效性。如图10所示,我们将Rikirobot用于该实验由树莓皮驱动,使用激光雷达Rplidar A1探测障碍物。选择1个室内环境和6个室外环境作为实验区。图11描述了路径生成的过程,首先,从真实地图中提取自由空间区域,然后,将真实地图建模为基于二维网格的地图,并输入Raspberry Pi。路线生成后,运动指令将传输给机器人,并让其沿着路线移动,直到达到目标。我们在[34]和[35]中使用了运动控制定律。DL-ACO的参数与计算机模拟中的参数相同。

   图12显示了室内实验结果。分别是运行图片和相应的轨迹。真实环境被模拟成一个10×10的正方形。很明显机器人成功地避开并与障碍物保持一定距离。此外,机器人在整个导航过程中通过了五个高风险网格,这表明我们的算法可以有效地在路径长度和安全性之间进行权衡。室外环境中的轨迹如图13所示。机器人在每张地图上运行五次,轨迹几乎相同。拐角处的路径也很平滑。这些结果证明了该算法在实际应用中的有效性。

   此外,我们发现运行时间与栅格地图的分辨率直接相关。例如,在10×10室内地图下,运行时间小于0.5秒,而我们将室外地图建模为20×25,运行时间上升到3秒。然而,高分辨率可以提高路径规划的精度。因此,在实际应用中,我们需要在运行时和路径质量之间保持平衡。

六、 结论

   本文提出了一种基于蚁群算法的自主移动机器人路径规划方法,即DL-ACO。目标是从其强大的搜索能力中获益,并克服其弱点。通过使用双层计算结构,我们的算法具有良好的稳定性,表明它每次都能提供一个很好的可行解。另一个优点是,当机器人在平滑的路径上进行跟踪时,它可以避免抖动,简化控制活动。仿真结果表明,DL-ACO算法在生成更短、更平滑、稳定性好的路径以及适应不同地图方面优于其他算法。实际实验也验证了其在具有挑战性的实际应用中的有效性。然而,我们的算法有很高的要求在地图的准确性方面,这导致应用场景有限。未来的工作将针对未知动态环境下的多机器人路径规划和轨迹优化。

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
双层优化算法是一种用于解决多目标优化问题的方法,它将优化问题划分成两个层次:上层和下层。 在上层,我们定义一个目标函数来最小化或最大化一些参数,这些参数是在下层的子问题中定义的。在下层的子问题中,我们通过优化一组约束条件来获得结果,这些约束条件来自于上层定义的优化目标函数。 双层优化算法的优点是能够同时考虑多个目标函数,且在解决高维问题时表现出色。在实现过程中,可以使用各种方法来构建优化函数和约束条件,并采用不同的求解技术来获得最优解。 下面是一个基于双层优化算法的多目标优化问题的MATLAB代码: %Step 1: Set up the upper level optimization problem x0 = [0.5; 0.5]; %Initial guess for x variable options = optimoptions('fmincon','Display','iter','Algorithm','sqp'); %Set options for optimizer [obj_upper, obj_lower] = evalUpperLevelObj(x0); %Evaluate objective function for upper level lower_level = @(y)evalLowerLevelObj(y,obj_upper); %Define lower level objective function nonlcon_lower = @(y)evalLowerLevelConstraints(y,obj_upper); %Define lower level constraint function %Step 2: Solve the lower level optimization problem Y = fmincon(lower_level,[0;0],[],[],[],[],[],[],nonlcon_lower,options); %Solve the lower level problem using fmincon %Step 3: Evaluate the upper level objective function using results of lower level problem [obj_upper,obj_lower] = evalUpperLevelObj(Y); %Evaluate the upper level objective function %Step 4: Repeat steps 2-3 until convergence is achieved while abs(obj_upper-obj_upper_prev)>0.01 %Convergence criterion obj_upper_prev = obj_upper; %Save previous upper level objective function value Y = fmincon(lower_level,[0;0],[],[],[],[],[],[],nonlcon_lower,options); %Solve lower level problem again [obj_upper,obj_lower] = evalUpperLevelObj(Y); %Evaluate upper level objective function again end function [obj_upper,obj_lower] = evalUpperLevelObj(x) %Upper level objective function obj_upper = [x(1).^2+x(2).^2; (x(1)-1).^2+x(2).^2]; %Two objectives (minimize both) obj_lower = []; %No lower level objective function end function [obj_lower] = evalLowerLevelObj(y,obj_upper) %Lower level objective function obj_lower = [y(1).^2+y(2).^2-obj_upper(1); (y(1)-1).^2+y(2).^2-obj_upper(2)]; %Two constraints (less than zero) end function [c,ceq] = evalLowerLevelConstraints(y,obj_upper) %Lower level constraint function c = []; %No inequality constraints ceq = [y(1)+y(2)-obj_upper(1); y(1)*y(2)-obj_upper(2)]; %Two equality constraints (equal to zero) end 以上是一段简单的实现,可以根据实际问题和具体的优化目标进行修改和改进。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值