移动机器人路径规划算法分析
2023-10-28闫振
闫振
重庆交通大学机电与车辆工程学院,重庆 400074
0 引言
随着科学技术的发展与变革,机器人成为人工智能的重点研究领域,其中,路径规划在机器人研究与发展中是不可或缺的。鉴于在实际工作中,机器人工作环境的复杂性与不确定性,怎样准确迅速地找出一条从初始位置至目标位置的无碰撞路径是当前机器人避障的技术难题。与此同时,随着技术的发展与进步,路径规划不仅仅是简单地规划出一条可行的行走路线,同时,它还要满足距离最短、时间最优、安全性高、能耗最、效率高等一系列要求。最初提出的一些传统算法能够有效解决最短路径问题,但随着环境范围的扩大,地形的复杂以及执行任务的多项指标性要求,传统的路径规划算法难以取得理想的效果,于是出现了一系列智能优化算法,例如蚁群算法、遗传算法、强化学习算法等。每种算法在不同的工作要求下能够发挥其优势,合适的路径规划算法不仅可以节省大量时间,还可以减少移动机器人的磨损和资金的投入。本文针对移动机器人主流的路径规划算法进行系统性总结分析,介绍主流算法的原理以及不同算法的优缺点,并且进行优化措施的阐述,最后,对当前机器人的路径规划算法的发展现状做出进一步展望,并分析其未来发展趋势,为未来路径规划发展提供一定的思路。
移动机器人路径规划算法分类如图1 所示。
1 传统路径规划算法
1.1 Dijkstra 算法
Dijkstra 算法[1]是科学家Edsger W.Dijkstra 提出的一种最短路径算法,它可以迅速地处理小范围内计算最短路径的情况。该算法基本的思想内容是:以起点为中心,不断扩展搜索范围,对于每个扩展的节点,记录从起点到该节点的最短路径和距离;在扩展的过程中,每次选取距离起点最近的节点进行扩展,并更新与该节点相邻节点的距离和路径,一直扩展到终点为止,最终找到起点到终点的最短路径。
尽管Dijkstra 算法是处理单源最短路径问题的有效算法,具有简单易实现、算法思路简单、鲁棒性高等优点,但它也有一些缺点需要考虑,例如无法处理负权边、对于大规模图效率较低、时间复杂度较高以及空间复杂度较高等。对于Dijkstra 算法来讲,可以采用一些常见的方法对其进行优化:
(1)用双向搜索加速。在起点和终点同时进行Dijkstra 算法的搜索,可以大幅减少搜索范围,提高搜索效率;
(2)使用堆优化。由于每次扩展节点都需要遍历所有相邻节点,并更新距离和路径,因此时间复杂度较高,可以使用二叉堆或斐波那契堆等数据结构来优化,将时间复杂度降低到O((V+E)logV);
(3)提前终止。在Dijkstra 算法中,一旦终点被扩展,就可以立即结束搜索,因为此时终点到起点的最短路径已确定,可以减少不必要的计算和内存开销。
1.2 A*算法
A*算法是用于网络或者图中寻找起点到终点最短路径的一种启发式搜索算法。它结合了Dijkstra 算法的广度优先搜索和贪心算法的启发式搜索,通过估价函数来指导搜索过程,更加高效地找到最优路径。
A*算法的估价函数F(n)表示为:
式中,F(n)为起始点至目标点的预估消耗;G(n)为起始点至当前节点的实际消耗;H(n)为当前节点至目标点的估计消耗,也称为启发函数[2]。
A*算法的启发函数需要满足一定的条件,即它必须是一致的。在实际运用中,需要根据实际情况选择相应的启发式函数。常用的启发式函数包括[3]:
(1)曼哈顿距离(Manhattan Distance):计算当前节点到终点的水平和垂直距离之和,适用于在方格状的网络中进行路径规划(如图2 所示);
(2)欧几里得距离(Euclidean Distance):计算当前节点到终点的直线距离,适用于连续空间的路径规划(如图3 所示);
(3)切比雪夫距离(Chebyshev Distance):计算当前节点到终点的水平、垂直和对角线距离的最大值,适用于允许对角移动的路径规划;
(4)障碍物避免启发式函数:根据障碍物的位置和形状,估计从当前节点到终点的代价,使得搜索过程可以避开障碍物。需要注意的是,启发式函数的选择应该平衡估计的准确性和计算的效率,过于精确的启发式函数可能导致计算代价过高,而不准确的启发式函数可能导致找到的路径并不是最优解。
总结而言,A*算法是一种高效的启发式搜索算法,适用于在网络和图中找到起点到终点的最短路径。通过合理选择启发式函数,可以在较小的时间复杂度内找到最优路径,并应用于移动机器人路径规划等各种领域。
另外,对于A*算法规划路径存在转折点多、距离障碍物近以及搜索效率低等问题。文献[4]提出一种动态窗口法和A*算法结合的混合算法,该算法通过引入预测距离以及设定h(n)的权重系数,处理了易于导致局部最优解的情况,路径的平滑度也得到了改善;另一方面,文献[5]提出了一种双向A*路径规划算法,该算法采用了人工势场法引力的思想,它通过建立从搜索点到双向搜索中点的距离衰减函数,使得双向搜索能够在中间位置相遇,同时,该算法还通过为预估函数添加权值函数,加快了算法的收敛速度,从而提高了效率。
1.3 人工势场法
人工势场法是Khatib 在1986 年提出的,它的基本原理是建立人工虚拟的势场描述场景,在目标点附近创建引力势场,在障碍物附近创建斥力势场,移动机器人在其复合场中受到引力及斥力作用,引力和斥力的合力引导机器人的运动,从而在复合场中搜索出无障碍的路径[6]。
人工势场法的优点在于计算效率高、简单易于实现,以及对实时性有较高要求的场景适用。然而,该方法也存在局限性:
(1)局部最小值问题:由于斥力和引力之间的平衡,导致机器人无法绕过障碍物或者找到最优路径。这可能会导致路径规划失败或产生次优路径;
(2)无法处理复杂环境:在复杂环境中,存在密集的障碍物、狭窄的通道或者环形障碍物等情况时,人工势场法可能无法有效规划路径,因为斥力和引力的设置可能导致机器人受到多个力的影响,产生不稳定的行为;
(3)缺乏全局规划能力:人工势场法主要是基于当前机器人位置和目标点来进行路径规划,缺乏全局规划的能力,它没有对整个环境进行全面的考虑和分析,可能无法找到全局最优路径。
在实际应用中,人工势场法有一些常见的变种和改进:
(1)惩罚势场法(Penalty Field Method):引入惩罚项来处理障碍物的影响,避免机器人陷入局部最小值,惩罚项可以根据障碍物的距离和形状进行调整;
(2)动态势场法(Dynamic Potential Field Method):动态更新势场,以适应环境的变化,例如考虑动态障碍物的移动和机器人的实时感知;
(3)优化算法的结合:结合各类算法,如遗传算法或模拟退火算法来对生成的路径进行优化,以获得更优的结果。
文献[7]中,对于前期引力过大的问题,建立动态增益函数;然后将被控物到目标点的距离引入到斥力场函数中,从而使斥力构成的形式改变,解决了目标不可到达的问题;最后增加便于被控物脱离局部极小值点的引力,可以有效解决陷入局部最小值的问题。文献[8]首先提出了在人工势场法中引入障碍物的碰撞范围,同时利用角度表示障碍物的影响范围,进而排除了机器人前进方向上角度外和距离外障碍物的影响。另外,该文献基于目标点与机器人的距离改进了斥力函数,解决了目标不可达的情况,从而在一定程度上克服了传统算法的缺陷。
2 基于采样路径规划算法
2.1 PRM 算法
PRM 算法[9]是最先提出的一种概率完备型算法,用于解决移动机器人在复杂环境中的路径规划问题。通过在环境中随机采样一组节点,并通过连接合法的节点来构建一个图,然后使用图搜索算法来寻找起点到终点的最短路径。
PRM 算法的优势在于能够处理复杂的环境,避免陷入局部最小值。在随机采样和碰撞检测阶段帮助生成一组合法的节点,而图的构建阶段通过连接节点形成一张表示自由空间的图,这样,在图中搜索最短路径相对较容易,避免了直接在连续空间中进行路径规划的困难。
另外,PRM 算法的性能和结果质量还受到一些关键因素的影响:
对客户而言,这个行业没有最好的月嫂,也没有最贵的月嫂,只有合适的月嫂。并且,标准不能取代服务,标准的机械化可能还会影响服务效果。母婴服务就是要形成人性化的服务,母婴服务的核心竞争力就是人性化,要逐渐地让母婴服务变为价值性、稀缺性、不可替代性、难以模仿的服务。那在母婴服务中如何体现核心竞争力呢?这就要求我们的母婴护理师具备以下四个要素:职业忠诚度、职业适应力、沟通能力和法律素养,要让母婴服务变成有感情的服务。
(1)采样数量:采样的节点数量对算法的性能和路径质量有影响,过少的采样数量可能导致路径规划的不准确性,而过多的采样数量会增加算法的计算复杂度;
(2)连接半径:连接半径定义了节点之间的连接距离,过小的连接半径可能导致图中存在过少的边,使得路径规划困难,而过大的连接半径可能导致图中存在过多的边,增加了搜索时间;
(3)碰撞检测精度:碰撞检测的精度对路径规划的准确性有重要影响,精确的碰撞检测能够排除不合法的节点,确保路径规划的可行性。
总体而言,PRM 算法是一种灵活而强大的路径规划方法,特别适用于解决复杂环境中的路径规划问题,但在高维空间和动态环境中,PRM 算法需要结合其他技术或者算法来克服其局限性。文献[10]提出了一种改进的PRM 算法,该算法利用随机节点生成函数来随机生成节点,以改善节点的质量,从而实现更有效的路径规划。另外,文献[11]提出了一种基于改进的节点增强法与几何平滑策略相结合的路径规划方法,该方法不仅能够提高路径的平滑度,使得机器人运动更加平顺,同时还提高了路径规划的效率。
2.2 RRT 算法
RRT 算法是一种不受自由度和约束限制的通用方法,而且其原理简单,在无人驾驶汽车和智能机器人领域被广泛应用。它的搜索过程类似于一棵树在不断生长,向四周扩散的过程,它以起点作为根节点构建一棵搜索树,如图4 所示,以Xinit表示起点,在自由空间中随机得到采样点Xrand,从搜索树中找出距离采样点Xrand最近的节点Xnear,计算Xnear和Xrand之间的距离,如果距离大于步长,则从Xnear向Xrand移动步长后得到新节点Xnew,否则在Xrand位置生成新节点Xnew,如果Xnew和Xnear间存在直线通路,则将Xnew加入搜索树,它的父节点为Xnear,否则进入下一轮循环。
RRT算法的优势在于它能够快速地探索搜索空间,并且适用于高维和复杂的环境。随机采样和树的扩展过程使得RRT 算法能够充分探索环境,并通过不断扩展树来找到路径。相较于其他经典算法,如Dijkstra算法或A*算法,RRT 算法更适用于动态和未知环境。
然而,RRT 算法也有一些局限和需考虑因素:
(1)路径质量:RRT 算法生成的路径通常是次优的,因为它是基于随机采样和树的扩展过程,无法全局优化路径;
(2)算法参数:RRT 算法的性能和结果受到一些参数的影响,如最大迭代次数、步长、采样偏置等;
(3)碰撞检测:粗糙的碰撞检测可能导致路径规划结果存在碰撞的情况。因此,高质量的碰撞检测算法是必要的,以确保生成的路径是可行的和安全的;
(4)树的生长方向:RRT 算法树的生长方向是随机的,取决于随机采样点和最近节点的连接。这可能导致路径倾向于在某些方向上生长,而在其他方向上生长缓慢;
(5)动态环境:由于树的构建基于静态随机采样,因此当环境发生变化时,树可能无法适应新的障碍物布局。
针对传统RRT 算法的局限,文献[12]提出了渐进最优的RRT*算法,该算法在选择父节点时,通常选择路径代价最小的节点,从而生成的路径较短。文献[13]提出了一种启发式采样的RRT 算法,避免了陷入局部最小值以及节点盲目扩展的情况,并且利用节点优化策略,使路径平滑性和长度得到提高。文献[14]采用最小二乘策略迭代算法对生成的路径进行优化。文献[15]采用目标导向、修剪无用节点、5 次多项式曲线拟合以及引入权重系数的联合策略得到满足要求的最优路径。
3 智能仿生算法
3.1 蚁群算法
蚁群算法是一种模拟蚂蚁寻找食物的行为而设计的启发式算法。它通过模拟蚂蚁在寻找食物和通信过程中的行为规则,用于解决组合优化问题中的路径规划问题。蚁群算法的基本思想是利用蚂蚁的正反馈机制和信息素沉积来引导搜索过程。
蚁群算法的优势在于其能够在搜索空间中快速找到较优解,并且适用于大规模和复杂的优化问题。蚁群算法具有一定的并行性,蚂蚁可以同时搜索多条路径,从而增加搜索的效率。
同时,蚁群算法也有一些局限和注意事项:
(1)参数设置:如信息素的蒸发率、启发式信息的权重等。这些参数的设置对算法的性能和结果具有重要影响,需要经验或者通过试验来确定最佳值;
(2)局部最优解:蚁群算法有时可能会陷入局部最优解,为了克服这个问题,可以采用一些策略,如引入随机因素、增加信息素的多样性等;
(3)动态环境:当环境发生变化时,原有的信息素分布可能不再适用,需要考虑如何适应动态环境的变化,常见的方法是引入信息素,更新策略的动态调整,使得信息素能够及时适应环境的变化;
(4)路径质量和收敛速度:蚁群算法可能需要较长的时间才能找到较优解,并且生成的路径质量可能不是最优的。为了改善路径质量和加快收敛速度,可以采用一些改进策略,如引入局部搜索、引导蚂蚁选择更有希望的路径等。
文献[16]提出一种基于拉普拉斯分布与动态窗口融合的蚁群算法来解决机器人路径规划,加快了收敛速度,提高了路径平滑度,最后,将改进的蚁群算法与改进动态窗口算法融合,使机器人安全到达终点。文献[17]提出了一种基于改进蚁群算法的全局路径规划,引入正态分布函数改进传统启发函数,提高了算法效率,缩短了算法收敛所需时间;自适应调整信息素挥发系数,避免过早收敛;对算法路径平滑处理,缩短路径长度,从而实现机器人的全局路径规划。文献[18]采用A*算法与蚁群算法相结合的优化方法,提高了算法的收敛速度,同时加入转弯因子,使规划的路径更加平滑。
3.2 遗传算法
遗传算法[19]是一种模拟自然选择和遗传机制的优化算法,用于解决组合优化问题。它模拟了生物进化中的遗传过程,通过迭代演化和改进候选解来搜索最优解。遗传算法的基本内容包括初始化种群、适应度评估、选择操作、交叉操作、变异操作及替换操作等,流程图如图5 所示。
遗传算法的优势在于能够在大规模和复杂的搜索空间中找到较优解,并且适用于多种类型的问题。它利用种群的多样性和演化过程中的选择、交叉和变异操作,能够全局搜索解空间,并逐步改进解的质量。
然而,遗传算法也存在一定局限和注意事项:
(1)参数设置:如种群大小、交叉率、变异率等,这些参数的设置需要经验或者通过试验来确定最佳值;
(2)局部最优解:遗传算法有时可能会陷入局部最优解,为了克服这个问题,可以采用一些策略,如增加种群的多样性、引入随机性的操作、使用不同的交叉和变异策略等;
(3)编码方式和解空间表示:不同的问题可能需要不同的编码方式,如二进制编码、排列编码、实数编码等,合适的编码方式能够提高算法的搜索效率;
(4)计算复杂度:遗传算法的计算复杂度通常较高,因此,需要合理设计算法,考虑如何减少计算量,并采用适当的优化策略;
(5)收敛速度和收敛性:遗传算法的收敛速度可能相对较慢,此外,遗传算法并不能保证找到全局最优解,而是更倾向于找到较优解。
总体来说,遗传算法适用于解决复杂的组合优化问题,通过模拟生物进化的过程,遗传算法能够在搜索空间中寻找较优解,并逐步改进解的质量。然而,在上述方面仍需要进一步的研究和改进,以提高算法的性能和适用性。
文献[20]对传统遗传算法进行了改进,采用二进制编码的方式来存储路径,并且结合粒子群优化算法进行局部搜索,加快了遗传算法的搜索速度,提高了搜索效率。在单目标简单情况下,改进的遗传算法具有更快的收敛速度,同时避免了局部最优;在多目标复杂环境下,能够得到合适的路径解。文献[21]在遗传算法中增加了插入算子,使遗传算法变得简单优化,算法的效率得到提高,收敛速度加快,但是路径平滑性没有得到提高,仅仅是对路径长度的优化。
3.3 人工蜂群法
人工蜂群算法灵感来源于蜜蜂群体搜索行为的启发式优化算法,模拟了蜜蜂群体寻找食物以及传递信息的过程,用于解决组合优化问题。人工蜂群算法的基本内容包括初始化蜜蜂群体、雇佣蜜蜂阶段、适应度评估和选择、侦查蜜蜂阶段、放弃蜜蜂阶段等。
与其他优化算法相比,人工蜂群算法具有以下特点和优势:
(1)简单易实现:人工蜂群算法的基本思想简单明了,易于理解和实现,不需要过多的参数调整,具有较低的算法复杂度和实施难度;
(2)全局搜索能力:通过多个雇佣蜜蜂的并行搜索和信息交流,人工蜂群算法具有较强的全局搜索能力;
(3)自适应性:人工蜂群算法具有一定的自适应能力,通过侦查蜜蜂,根据解的适应度值选择雇佣蜜蜂的源头,能够实现对解空间中适应度较高的区域进行更多的搜索,算法搜索效率得到提高;
(4)鲁棒性:人工蜂群算法对初始解的依赖性较低,具有一定的鲁棒性。它能够在不同的问题和搜索空间中有效地应用,适用于多种类型的组合优化问题。
尽管人工蜂群算法具有许多优点,但也存在一些局限和注意事项:
(1)参数选择:虽然人工蜂群算法的参数较少,但对于一些特定问题,如蜜蜂数量、迭代次数等参数的选择仍然需要经验和试验;
(2)局部最优解:人工蜂群算法可能会陷入局部最优解,为了克服这个问题,可以采用一些策略,如增加蜜蜂的多样性、引入随机性的操作等;
(3)算法收敛性:人工蜂群算法的收敛速度可能相对较慢,特别是在复杂问题中,需要通过合适的参数设置和算法设计来加快收敛速度以及控制算法的收敛性。
总体来说,人工蜂群算法具有较好的全局搜索能力、扩展性和并行性,在多种问题领域和复杂的优化问题中得到了广泛应用。然而,参数选择、局部最优解和计算复杂度等问题仍需要进一步改进,以提高算法的性能和适用性。
文献[22]提出一种混沌蜂群法,每次进行搜索时,都要以上一次最好结果为基础进行搜索,从而使得搜索区域变小,避免了易于陷入局部最优的缺点。文献[23]对传统人工蜂群法进行了改善,运用粒子群算法优化局部搜索的过程,并且优化引领蜂的更新方式,采用分段搜索的方式,提高了算法的速度及效率。
4 基于强化学习的算法
强化学习是一种通过与环境交互学习最优策略的机器学习方法。在移动机器人路径规划中,强化学习算法可以用于训练机器人在复杂环境中选择最佳动作,以达到特定目标。常见的应用于移动机器人路径规划的强化学习算法有Q-Learning、Deep Q-Network(DQN)、Trust Region Policy Optimization(TRPO)、Proximal Policy Optimization(PPO)等。
以上强化学习算法都能够通过与环境的交互学习最优的路径规划策略,使机器人能够在复杂的环境中自主决策和导航。选择适合的算法需要考虑问题的具体要求、状态和动作空间的特征,以及算法的收敛性和计算效率等因素。此外,算法的参数设置、奖励设计和经验回放等技术也需要重视,这些是影响算法性能的重要因素。因此,在应用中需要进行合适地调参和优化,以获得最佳的路径规划结果。
文献[24] 提出一种改进强化学习算法,在Q-learning 算法中引入一种经验记忆力机制,能够基于当前状态节点到起始点的最短距离连续更新。另外,针对算法的过估计问题设计了一种奖励机制,避免在未知环境中盲目搜索。最后利用Hermite 曲线对路径进行平滑。文献[25]提出一种改进的IQ-learning 算法,在Q-learning 算法的基础上,IQ-learning 在奖惩函数中增加了对角线运动奖励值,将平移运动和对角线运动相结合,减少规划路径长度和在初始阶段的盲目搜索,加快算法的收敛速度。
5 发展趋势
以上是对于传统路径规划算法、基于采样路径规划算法、智能仿生算法以及基于强化学习算法的总结与分析,将各主流算法进行归纳描述,如表1 所示。
表1 路径规划算法汇总表
移动机器人路径规划算法的发展趋势主要包括以下几个方面:
(1)深度强化学习的应用:随着深度学习的发展和强化学习算法的不断改进,深度强化学习在移动机器人路径规划中的应用将进一步增加。深度神经网络可以更好地处理高维状态信息,并学习到更复杂的路径选择策略。同时,结合传统强化学习算法和深度神经网络的方法也会得到进一步改进和发展;
(2)考虑不确定性的路径规划:移动机器人在真实环境中常面临不确定性和动态性的挑战,例如动态障碍物、传感器误差等。未来的路径规划算法将更加注重考虑不确定性因素,通过概率建模、贝叶斯推理等方法,提高机器人在不确定环境中的路径规划性能;
(3)多智能体协同路径规划:移动机器人往往不是孤立运行,而是在多机器人系统中协同工作。未来的路径规划算法将更加注重多智能体之间的协同和合作,以实现高效的任务分配和路径规划,多智能体强化学习、协同搜索等方法将得到广泛应用;
(4)自适应路径规划:未来的路径规划算法将更加注重自适应性和灵活性。机器人可以根据实时环境变化调整路径规划策略,以适应不同的任务需求和环境条件。自适应路径规划算法将结合感知和规划,实现机器人的智能决策和灵活导航;
(5)结合机器学习和优化方法:机器学习和优化方法在路径规划中的应用将更加紧密。结合机器学习和优化方法,可以充分利用大量的数据和先验知识,实现更高效的路径搜索和规划。混合方法、元启发式算法等将得到广泛研究和应用。
总体而言,未来移动机器人路径规划算法将更加注重机器学习、自适应性和协同性。这些趋势将推动路径规划算法的发展,使机器人能够更智能、高效地规划路径,并在复杂环境中实现精确导航和任务执行。
6 结束语
路径规划是移动机器人研究的重要问题之一,本文对传统路径规划、基于采样路径规划、智能仿生路径规划以及强化学习路径规划等算法做出了总结阐述。以上路径规划算法都存在着优缺点,从以往机器人研究状况和未来发展来看,未来机器人路径规划还要从算法的有效结合、现有算法的改进以及新算法的研究着手,采用合适的路径规划算法可以有效地提高移动机器人的工作效率,从而创造更大的应用价值。与此同时,多机器人协同路径规划的研究也是热点问题,多机器人协同工作具有更加高效、更高可靠性的优点。