Path Planning for Autonomous Mobile Robots: A Review
文章目录
- Path Planning for Autonomous Mobile Robots: A Review
![image-20240201100645752](https://i-blog.csdnimg.cn/blog_migrate/153c23105ca93093d6d38f37ee29d68d.png)
Abstract
摘要:为移动机器人提供自主能力是有好处的。它使人们可以免去人类操作员的干预,这可能会在经济和安全方面带来好处。在大多数情况下,自主性要求使用路径规划器,使机器人能够考虑如何从其所在位置在某一时刻移动到另一时刻。鉴于文献中存在大量的方法,根据用户的要求寻找最合适的路径规划算法可能具有挑战性。此外,本文所分析的过去的综述作品只涵盖了其中的一些方法,遗漏了一些重要的方法。因此,我们的论文旨在作为一个起点,对迄今为止的研究进行清晰而全面的概述。本文介绍了路径规划算法的总体分类,重点关注与自主地面车辆一起使用的方法,但也可扩展到在表面上移动的其他机器人,如自主船只。此外,还从路径规划的角度探讨了用于表示环境的模型以及机器人的移动性和动力学。对分类中提出的每个路径规划类别都进行了披露和分析,并在最后对其适用性进行了讨论。
1. Introduction
自主导航是移动机器人的宝贵财富。它有助于减轻机器人对人工干预的依赖。然而,它也需要解决许多任务或问题,例如路径规划。这项任务在于找到最佳行动方案,使机器人从当前状态到达理想状态。例如,这两个状态可以分别是目标和初始位置。这一行动路线以路径的形式出现,在许多其他著作中也被称为路线。路径的作用是引导机器人到达所需的状态。然而,考虑到机器人可移动的自由空间,可能会有无数条可能的路径。路径规划算法通常试图获得最佳路径,或至少是其可接受的近似值。这里的最佳路径指的是最优路径,即通过最小化一个或多个目标优化函数得到的路径。例如,这条路径可能是耗时最少的路径。这在搜救等任务中至关重要[1]:灾难受害者可能会在生死关头请求帮助。另一个需要考虑的优化功能可能是机器人的能量。在行星探索中,这一点至关重要,因为漫游车可用的能源资源有限[2]。同时,规划器生成的路径必须遵循任何强加的限制。这些限制可能来自于机器人对某些地形的适应性限制。机器人的运动能力和现有地形的特点限制了可执行的操作类型。这就减少了路径规划器可生成的可行路径的数量。
在文献中,有大量的路径规划方法,而且这种方法的数量近年来还在不断增加。因此,根据特定要求(例如上述运动限制)选择最合适的方法是一项具有挑战性的任务。此外,如下文所述,有关路径规划的最新评论和调查并未对大多数现有路径规划解决方案进行全面概述。这就是撰写本综述论文的主要动机:它详细描述了不同的路径规划类别,并针对其中的每一类,介绍了文献中具有代表性的相关参考文献,重点关注那些针对在表面上(地面、水面等)移动的机器人的算法。本文的结构如下。第 2 节介绍本文提出的对现有路径规划算法进行分类的方法。根据该方法,本文还明确指出了之前的工作存在重要疏漏的事实。此外,本节还分析了用于处理环境和运动信息的方法。接下来的章节将分别讨论这一分类中的一个类别: 反应计算(第 3 节)、软计算(第 4 节)、C 空间搜索(第 5 节)和最优控制(第 6 节)。最后,第 7 节总结了本文的内容,并对上述类别中包含的路径规划算法进行了讨论。
2. Path Planning Algorithms
图 1 描述了路径规划的四个类别,每个类别又分为两个子类别。这种分类基于构建和返回路径的原则和基本机制。下一小节将更详细地介绍这些类别以及为何如此分类。第二小节将介绍环境建模和机器人与地形交互建模的不同方法。我们认为有必要增加这一内容,因为对于许多算法,尤其是 C 空间搜索类算法,有必要事先构建这些模型。
图 1. 现有路径规划方法分类示意图。共有四个主要类别,每个类别包含两个子类别。不同类别中相邻的两个子类别具有共同特征。该示意图还显示了某些子类别更倾向于全局规划或局部规划。
2.1. General Classification
建议的分类考虑了路径规划算法的功能。在过去的许多综述中,人们对路径规划算法进行了两种区分:一是根据环境是否动态来区分;二是根据在线和离线路径规划算法来区分[3];三是根据环境的大小来区分,是局部环境还是全局环境。通常,"在线 "与 "本地 "相关,而 "离线 "与 "全局 "相关。这其中的主要问题是,有一些算法可以同时归为这两类。没有重新规划能力的算法由于计算速度快,可以在线使用。相反的情况也可能发生。例如,一种名为动态窗口法(DWA)的反应式计算算法通常用于局部规划[4],但也可用于全局规划[5]。Vagale 等人[6]提出了一种有趣的算法划分方法,即需要初步地图表示的算法(经典算法)[7] 和不需要初步地图表示的算法(高级算法)。经典算法包括图搜索方法,而高级算法则包括软计算和基于采样的算法。Souissi 等人[7]提出了几种清晰合理的路径规划分类:根据机器人模型(整体动力学、非整体动力学、动力学);根据地图模型要求(需要或不需要);根据重新规划能力(离线或在线);根据初步配置参数(确定性或概率性),根据算法是否总是计算出相同的解决方案。
本文提出的分类(如图 1 所示)有两个主要目的。首先,与以往的综述相比,本分类旨在涵盖更多种类的算法。过去的许多综述都提出或声称要对路径规划进行综述,但从表 1 中可以看出,大多数综述都存在重大遗漏。在本表中,"是 "表示对相关算法进行了重要讨论。仅提及表示出版物承认至少存在一种或多种该类算法。如果括号之间有一两个算法,则表示这些算法只被简单提及。其次,在某些情况下,路径规划类别的命名方式并不明确。例如,其他一些综述对经典方法和启发式方法进行了区分 [8,9]。Patle 等人[10] 将后者称为 “反应式”。然而,"经典 "一词可能是一个相当模糊的术语,因为大多数规划算法都是基于已有数十年历史的方法。这一类算法还包括许多运作方式完全不同的算法。启发式这一术语不仅用于指进化算法和人工智能算法 [8],也用于指基于图搜索的规划算法 [4]。有鉴于此,我们建议使用四个类别(见图 1)进行一般分类: 反应计算、软计算、C 空间搜索和最优控制。此外,图 1 显示了这些类别中的每个类别在一般情况下是如何主要用于局部或全局规划的。此外,每个子类别与其他类别的子类别在功能上也会有一些共同点,例如使用数值方法、存在用于事先调整算法的参数、要求用图形对地图进行建模或使用随机迭代过程。
2.2. Path Planning Workspace Modeling
路径规划器需要获得描述环境的信息。例如,这些信息可以描述是否存在障碍物或与规划相关的表面特征。此外,用于计算路径的标准还与机器人与环境的交互方式有关。例如,只需尽量缩短路径长度,或许还能获得哪些区域可以穿越、哪些区域不可以穿越的信息就足够了,而要尽量减少能量,则应考虑到地形力学和机器人的转向方式。
2.2.1. Environment Modeling
表面移动机器人是在空间的某个区域内从一个位置移动到另一个位置。因此,有必要考虑运动模型将如何与该表面交互,以及路径规划器将如何处理。例如,有些算法需要构建一个图形,以某种方式代表机器人移动的环境。图搜索算法(属于 C 空间搜索范畴)大多属于这种情况。蚁群优化算法(ACO)等进化算法也可以使用图形。这种资产可以表示影响机器人导航的地形特征在场景中的空间排列方式。特别是,本文假定有关图形是建立在度量图的基础上,同时也承认本文讨论范围之外存在其他类型的地图,如拓扑图和语义图[22]。根据 Souissi 等人的研究[7],有多种构建图的方法,如图 2 所示。Nash 和 Koenig [11] 的研究也对这种分类方法有所启发。他们对单元分解和路线图进行了区分。第一种方法是将曲面分割成单元格。这些单元格可以使用规则网格[3,4,7,11]或不规则网格[7,11]进行排列。图 2a-c 展示了如何使用正方形、三角形和六边形三种多边形中的一种来构建规则网格。它的主要优点是每个节点的索引简单,可以快速访问其中任何一个节点,并以优化的方式将其存储在内存中[23]。不规则网格(如图 2d 所示)可以使网格更好地适应不同分辨率值的地形特征,但代价是可能获得较差的路径[24]。单元格分解的其他形式还有导航网格和基于圆的航点图,如 Nash 和 Koenig 所解释的那样[11]。如前所述,环境的另一种表示形式是使用路线图。路线图是由边连接的节点构成的图形。每个节点代表机器人的一种可能状态,而每条边则表示如何从另一种状态到达该状态。路线图的例子包括沃罗诺图[25](见图 2e)、可见度图[26]和状态网格图(见图 2f)。后者包括根据运动基元制作边,因此在机器人移动限制条件下,所产生的路径确保是可行的,尤其是在使用图搜索算法时,如 Likhachev 和 Ferguson [27] 以及 Bergman 等人 [28] 的研究。
图 2. 不同类型的环境单元分解图(a-d)和路线图(e-f)。(a) 正方形网格。(b) 使用三角形的棋格图。© 使用六边形的网格。(d) 不规则网格。(e) Voronoi 路线图。(f) 状态网格图。
这些图中的单元或节点可以静态或动态元素的形式存储其所在位置的地表信息[10]。例如,这可以是高程信息。数字高程图(DEM)是一个网格,其中每个节点都有一个相关的高程值。高程图也可以用多边形表示,但常规网格图更受欢迎[29]。与形状相关的特征,如坡度或表面粗糙度,可通过卷积矩阵提取 [30]。核的大小和 DEM 的分辨率将决定提取的特征类型。此外,这种分辨率还决定了地图中所包含要素的详细程度。如图 2d 所示,这种分辨率可以是非均匀的,也可以是多重的。网格的大小可以根据规划的规模来选择: 在覆盖机器人周围环境的情况下(或多或少是机载传感器可触及的距离),网格的大小为本地网格;而在覆盖范围大于本地网格的情况下,网格的大小为全球网格,通常使用卫星或无人机等外部来源的信息。
关于如何定义规划器工作区的成本,有不同的方法。首先,我们将成本理解为机器人在移动过程中累积的度量。路径规划器的目标是通过生成最优路径,最大限度地减少这种累积。有关成本可以是统一的,即机器人可以进入的区域始终具有相同的值。这种方法可用于避免碰撞的路径规划,在这种规划中,诸如二维平面上的路径长度等指标都会被最小化。非均匀成本地图可用于为不同的可访问区域分配不同的成本值。例如,这对确定机器人在每个位置的能量性能非常有用。此外,成本还可以根据方向向量来定义。这意味着,机器人将根据其航向体验不同的成本值。在这种情况下,成本被归类为各向异性[31],而在相反的情况下,成本则是各向同性的。此外,机器人的转向动作也会根据其运动情况产生不同的成本值。最后,值得注意的是,环境可以是完全已知的,也可以是部分已知的,甚至是完全未知的。
2.2.2. Robot–Surface Interaction Modeling
地面移动机器人与脚下的地表相互作用,推动自身前进。为了实现这一功能,有许多不同的运动执行器,例如轮子、履带、腿,甚至全向轮。图 3 展示了三个使用不同配置执行器的地面移动机器人的实际例子。这些致动器以及将它们连接到机器人本体的关节决定了机器人的运动结构和动态行为。换句话说,它们决定了机器人的运动配置。Zhang 等人[20]总结了一些众所周知的不同配置的运动学和动力学模型: 差动驱动[32](见图 3a 中的 Koguma 机器人[33]为例和图 4a 中的模型描述)、阿克曼转向[34](见图 4b、d)、滑行转向[35](见图 4c)和全向[36]。其中一些模型包含与路径规划相关的约束条件,如前阿克曼转向机器人的最小转弯半径[37](见图 4b)或滑行转向机器人在转弯动作中的高能耗[38]。此外,还有一种称为 "蟹行 "的模式(见图 4e)。由于所有车轮的顶部都有转向关节,这种模式允许机器人朝不同的方向行驶 [39]。此外,某些运动学配置还允许机器人进行点转向操作,使其在不平移的情况下旋转。值得一提的是,有一些铰接式机器人能够重新配置自己,以获得某种好处,并执行多种类型的运动(图 3c 中的 SherpaTT 就是一个例子)。例如,带有履带的铰接式机器人可以在崎岖地形上行驶时主动控制其稳定性[40,41]。还有一些机器人使用脚轮配置来执行一种名为 “轮行”(Wheelwalking)的运动模式 [42,43]。这种模式旨在克服机器人可能被卡住的松软地形。与此类似,推拉式运动模仿毛毛虫的运动方式,以增加在此类地形中的牵引力[44-46]。承认这种重构能力的路径规划算法是这类机器人必须具备的,因为这些算法可以找到利用其高度适应性的路径。在全局规划方面,Rohmer 等人[47] 使用了一种名为 Dijkstra 的图搜索算法,首先生成一条路径,然后通过仿真工具评估哪种运动模式更适合驱动每个部件。我们,这篇综述文章的作者,提出了使用 PDE 求解方法,在规划时使用各向同性成本函数考虑多种运动模式 [48,49]。据作者所知,目前还没有很多局部规划方法可以解决具有多种运动模式的机器人的动力学约束问题。Reid 等人[50]提出使用基于采样的算法–快速行进树(FMT*)–来解决带轮腿的可重构混合机器人的运动规划问题。
机器人的运动适应性好坏取决于地形特征,这在前面已经简要提到过。这些特征可能与地形的形态(形状)或构成有关。其中之一就是地形的倾斜度或坡度[51]。坡度会影响机器人的滚动角和俯仰角,这对于保持机器人的稳定性非常重要 [41,52,53]。此外,坡度还会根据方向影响机器人的能量表现。这种对方向的依赖性是由于重力的影响,使机器人在爬坡、下坡、横向或斜向穿越斜坡时消耗不同的能量[29,54-57]。另一个相关的地形特征是粗糙度。这是对法线矢量多样性的衡量 [58,59],可能会影响机器人所经历的振动。根据机器人的底盘,它还可以克服其他地形。例如,机器人可以利用机身间隙(即机身下表面与地形表面之间的空间)克服岩石[60,61]。洞或沟等负面障碍物的存在可能会造成问题,因为它们很难被机器人的传感器捕捉到 [62]。至于地形的构成,它对机器人与地表交互的基本动态有影响。这种表面可能更坚硬,也可能更容易变形 [63]。这会影响机器人附着在表面上的方式,甚至限制其运动 [64]。一般来说,滑移是衡量机器人实际速度与指令速度之间差异的指标,通常通过计算两者之间的比率来实现 [65,66]。一些研究同时考虑了滑移和地形坡度,以便在穿越崎岖地形时对机器人进行更精确的估算 [67,68]。重力大小也会影响机器人与地形之间的动态交互 [30,69]。最后,路径规划器通常使用包含与形状和组成相关的多种地形特征的成本函数。例如,Ishigami 等人[2] 引入了动态移动指数,包括稳定性、滑移、经过时间和能耗。此外,与地形没有直接关系的其他因素也可能影响机器人的导航性能。其中之一就是太阳辐射 [66,70],可将其建模为动态函数 [71]。Groves 等人[72]绘制了可能对机器人造成伤害的其他辐射类型,如在核拆除场景中。此外,风险概念对于防止机器人陷入危险境地也非常重要 [73],例如,随着机器人靠近障碍物,成本也会增加 [74]。
图 4 轮式地面移动机器人的运动模型 轮式地面移动机器人使用的运动模型以及路径规划器: 差速驱动 (a)、前阿克曼 (b)、滑移转向 ©、全阿克曼 (d)、抓取 (e) 和点转向 (f)。
3. Reactive-Computing-Based Path Planning Algorithms
这类算法包括路径规划算法,在这类算法中,环境(通常是一张区分障碍物和非障碍物区域的地图)只显示现有障碍物的位置和形状。反应式计算算法通常被用作局部路径规划算法(覆盖机器人周围环境并进行动态重新规划),因为它们有能力快速处理新信息(例如,以新发现障碍物的形式),这些信息通常来自有限的机载传感器。作为局部规划算法,这些算法通常会在遵循另一种算法制定的全局规划的同时,规划下一条直接路径或机动动作,以避开附近的障碍物。不过,这些算法可能会计算出局部最小路径,甚至导致机器人被卡住,因此必须特别小心。反应式计算算法有两个子类别: 反应式机动方法,即由障碍物的存在决定机器人的下一步行动;局部优化方法,即根据障碍物的存在修改现有路径。
3.1. Reactive Manoeuvre
本文介绍的算法依赖于定义机器人在每一时刻对障碍物的存在做出的反应。这种反应可以根据处理现有障碍物位置的公式来定义。不同表述方法的共同特点是产生反应所需的计算量较低,通常以转向或速度指令的形式出现。由于这种表述方式缺乏全局信息,因此这些技术通常被用作局部规划器。这种方法可以利用场来确定障碍物的位置,也可以通过检测障碍物边界来绕过障碍物,还可以在评估可用自由空间或移动障碍物的速度后发出速度指令。
场方法包括人工势场(APF)和矢量场直方图(VFH)算法。在人工势场算法中,机器人的运动可以来自障碍物等外部元素产生的虚拟力的总和。这样,机器人会离这些障碍物越来越远,并避免与它们发生碰撞,因为来自它们的力是排斥性的 [75]。目标位置产生的吸引力会使机器人朝目标位置前进。从图 5a 中可以看出这一点。Ge 和 Cui [76] 提出了 APF 在包含动态障碍物环境中的应用。不过,这种策略的主要缺点是容易导致机器人陷入局部最小点。因此,进一步研究工作的方向是克服这一问题。这正是 Vadakkepat 等人[77]研究的主要目标。他们将 APF 与遗传方法(进化算法)相结合,以克服这种情况。这一组合还被用于规划模拟六轮漫游车的运动[78]。另一个混合版本包括使用 PSO 算法 [79]。Triharminto 等人[80] 提出了一种非混合解决方案,即在漫游车周围添加一个斥势场。不过,该方案尚未在 U 形障碍物上进行过测试。其他研究通过在检测到机器人处于局部最小点时创建自定义逃逸路径来解决这一问题 [81]。此外,Bayat 等人[82] 提出了一种受静电势场启发的解决方案,即用所谓的标量势场来引导机器人,而不是使用虚拟力的总和。Borenstein 等人[83]提出的 VFH 可创建极直方图来评估机器人周围的障碍物密度,从而选择障碍物密度最低的转向角。几年后,VFH 又有了一些改进 [84,85]。
Bug 算法,即 Bug1 和 Bug2,可使机器人绕过途中发现的任何障碍物,直至到达目标[86]。它们的主要区别在于,Bug1 能让机器人绕过所有障碍物(见图 6a),而 Bug2 只能绕过部分障碍物 [19]。Bug1 和 Bug2 都不追求最优性,而是追求简单易用和计算量极少。它们可以用在只配备传感器的机器人上,这些传感器只能探测到机器人附近的障碍物。这样,这些机器人要么朝着目标行驶,要么沿着它们发现的障碍物的边界行驶。Buniyamin 等人[87] 和 Campbell 等人[19] 的研究提到了改进这种算法的一些变体,总体上减少了机器人的行驶距离。Xu 等人[88] 使用的 Bug 算法考虑了转弯半径限制,可生成平滑转弯的路径。
图 6. Bug 算法(a)和带气泡边界的弹性带(b)算法中使用的概念的图形表示。(a) 使用 Bug1 算法后的路径。(b) 经历拉伸后的路径。
以下方法主要是为机器人生成速度指令。速度障碍法考虑到智能体和任何其他移动障碍物的速度矢量,计算出一条安全轨迹[89,90]。这种计算方法会评估一个碰撞锥,如图 5b 所示。Chen 等人[91]将速度障碍与另一种称为快速行进方阵(FMS)的算法混合使用。Wilkie 等人[92]考虑了汽车的 Front-ackermann(见图 4b)运动模型。Chakravarthy 和 Ghose [93] 建议使用碰撞锥算法,该算法与速度障碍类似,但考虑到了任意形状的障碍。Qu 等人[94]介绍了该算法与汽车模型(如图 4b 所示,采用 Front-ackermann 配置)的结合使用。最后,动态窗口法(DWA)是一种在速度空间中搜索速度指令以遵循无碰撞圆形轨迹的算法,该轨迹由可接受速度值和时间窗口限定[95]。该方案可能不是全局最优方案,而是局部最优方案 [4]。DWA 甚至可用于高速航行的机器人 [96]。Feng 等人[97] 提出了一种改进版本,通过减少搜索速度空间来降低复杂性。其他方法将该算法用于能量最小化路径规划 [98,99]。虽然该算法通常被用作局部规划算法,但 Zhang 等人[5]提出将其作为全局路径规划算法在全球范围内使用。
3.2. Local Optimization
这些算法通常从预先存在的路径出发,根据现有障碍对其进行修改。在这种情况下,优先考虑的是将计算量保持在最低水平,而不是牺牲最优性甚至完整性。修改路径有多种选择,从在速度空间内选择速度曲线,到在人造力作用下拉伸和拉长路径,不一而足。
在路径规划中使用弹性带是由 Quinlan 和 Khatib [100] 提出的。该方法根据障碍物的情况对现有的无碰撞路径进行变形,拉伸(见图 6b)或拉长。根据路径中的一组点,创建一组重叠的子区域,称为 “气泡”。这些 "气泡 "覆盖了无碰撞区域,其大小以与障碍物的距离为界。这就意味着,在路径中靠近障碍物的部分,气泡更小、数量更多。该方法可用于动态环境中,但较大的变化可能会导致方法失效 [100]。此外,该方法还通过遵守曲率约束 Khatib 等人[101]和使用贝塞尔曲线[102]适用于非自主车辆。弹力带的扩展包括时间约束,被命名为定时弹力带(TEB)。这一扩展版本解决了机器人的动力学约束 [103]。
4. Soft-Computing-Based Path Planning Algorithms
这类算法的目的不是找到精确的最优解,而是近似最优解,并能容忍一定范围内的不精确。一般来说,这些算法需要用户调整某些参数,以便根据环境特征正常工作。这些算法甚至可以处理动态环境,适用于涉及大量变量和高自由度的问题[8]。不过,一般来说,它们需要大量的计算资源。本综述沿用 Mirjalili 和 Dong 提出的分类方法[104],将其分为进化法、模糊控制法和机器学习法。第一种方法使用受生物学和自然界启发的技术:它们从一个由个体组成的系统开始,随着时间的推移而变化,即进化。模糊控制和机器学习方法属于人工智能的一个子类别。它们分别使用模糊规则和神经网络来生成控制器。这些控制器对于在最初的未知场景中导航非常有用,一般来说,它们会根据机器人探测到的障碍物生成路径。总之,软计算算法允许对一系列重复性元素(自然个体、模糊规则或人工神经元)进行调整,以生成路径。
4.1. Evolutionary Computation
进化算法也被称为元启发式或自然启发式 [105]。这些算法通过种群的进化产生一条路径。种群由智能个体组成,其行动仿照自然界中的行为[104]。这些行为可能涉及修改自身和/或与其他个体交互。在某些情况下,这些操作意味着个体在环境的自由空间(即机器人可到达的空间)中进行运动。在执行一系列这些操作后,算法会逼近最优解。最终的路径和收敛所需的时间取决于分配给个体的行为策略、场景的性质以及用户分配给某些可配置参数的值。后者的一个例子就是填充路径规划问题的个体数量。进化算法包括遗传方法和蜂群优化器。第一种方法使用染色体模型,而第二种方法则以生物的行为为模型。
如前所述,遗传算法是以染色体为模型的个体[106]。这些个体包含基因,就像染色体一样,以二进制数字的形式存在。这些数字编码了一个解决方案,即在解决路径规划问题的特定情况下形成路径的一组航点。换句话说,群体中的每个染色体都代表一条路径。图 7a 展示了一个使用网格的例子。网格由单元格组成,每个单元格都标有一个数字。遗传算法从一组随机染色体开始。这组染色体通过三个过程进化: 繁殖、交叉和突变 [107]。复制通过复制最好的染色体来产生新的染色体。同时也会删除最差的染色体。交叉是染色体交换基因的过程。突变在基因中引入随机变化,以鼓励探索搜索空间并避免局部最小值。不断重复这些过程,算法就会收敛。Zhang 等人[4]提到,遗传算法在接近最优解时收敛速度会越来越慢。Han 等人[108] 使用遗传算法在有动态障碍物的环境中寻找最短路径。Tuncer 和 Yildirim [109] 对突变过程进行了修改。这包括检查即将发生突变的位置周围的空闲节点。这项工作将结果与之前的变异方法进行了比较。另一项研究工作使用了遗传算法以及高达 2000 × 2000 节点的大型网格[110]。用于路径规划的遗传算法也在一个实验平台上进行了测试[111]。更多的改进包括初始选择航点时,考虑那些位于障碍物附近的航点[112]。Elhoseny 等人[113]考虑到染色体的多样性,在突变过程中引入了更为规范的探索策略。此外,这项研究不仅优化了路径长度,还利用贝塞尔曲线保持了平滑度。最后,Lamini 等人的研究[114]还对交叉过程进行了改进,使解决方案收敛得更快,并减少了机器人转弯的次数。Patle 等人[10]的综述中介绍了许多基于遗传方法的路径规划应用。
图 7. 进化算法示例: 遗传算法 (a) 和蜂群优化算法 ACO (b)。(a) 用于执行路径规划的遗传算法的功能。图中的路径为染色体形式,基因为 21-08-03-06。(b) ACO 算法的功能。模拟蚂蚁在最短路径上沉积更多的信息素。最终,大多数蚂蚁会沿着这条路径前进。
与基于遗传方法的算法不同,蜂群优化器使用在自由空间中移动和行动的智能体。在大多数情况下,这些个体是以动物为模型的。经过一系列迭代后,这些个体朝向目标的运动会形成一种模式,最终收敛到产生的路径上。表 2 介绍了文献中使用的一些模型。粒子群优化(PSO)算法因其简单性而脱颖而出。它的灵感来源于某些动物群体的行为,如鱼群[115]。它创建了一系列粒子,这些粒子会随着时间的推移自行重新定位,直到算法收敛。这些算法寻找最佳位置,并根据以往经验相互交流 [116]。Mac 等人[117]提出了一种路径规划器,将 PSO 与 Dijkstra 算法(下文将讨论的一种图搜索规划器)相结合。另一种著名的算法是蚁群优化器(ACO),顾名思义,它是模拟蚂蚁的行为。这些昆虫在寻找食物的过程中会留下信息素的痕迹。其他蚂蚁可以追踪到这些痕迹。那些含有较多信息素的地方就是最佳发现路径的航点。图 7b 描述了在起点和目标位置之间有障碍物的情况下的这一概念。在这里,最佳路径就是最短的路径。按照同样的策略,虚拟蚂蚁可以在网格上移动,根据它们与目标之间的状态留下更多或更少的信息素 [118,119]。为了避免陷入局部最小值,一些研究将这种方法与启发式函数相结合 [120,121]。Che 等人[122]也通过采用灰狼方法中使用的规则解决了这一问题。Luo 等人[123]对 ACO 做了一些改进,不仅避免了死锁,还缩短了收敛所需的时间。还利用 DEM 对该算法进行了模拟,以最小化时间[124]和能量[125]。Sangeetha 等人的研究[126]也在避开动态障碍物的同时实现了后者。这项研究将 ACO 与模糊控制相结合。受自然启发的方法还有很多。为避免过多扩展,表 2 列出了其中一些。此外,还有将两种模型相结合的情况。Saraswathi 等人提出的方法就是这种情况[127],其中对 Cuckoo 算法和 Bat 算法的混合进行了测试。
4.2. Artificial Intelligence
软计算算法可使用其他可配置运算符集,如模糊规则或神经网络。Seraji 和 Howard [140] 演示了在一个实验性移动平台上使用模糊逻辑在非结构化地形中导航。Zavlangas 和 Tzafestas [141]提供了一个基于模糊逻辑的系统,旨在使移动机器人在动态环境中自主导航,避开途中的障碍物。Wang 等人[142]的研究重点是防止机器人陷入局部最小点,如 U 形障碍物产生的最小点。Pandey 等人[143] 还提供了模糊逻辑避障的模拟测试结果。关于神经网络的使用,Yan 和 Li [144] 也在一个平台上使用了模糊逻辑,重点是尽量减少计算资源和穿越包含动态障碍物的环境。Pandey 和 Parhi [145] 将模糊逻辑与一种名为 "风驱动优化 "的群体算法相结合,对模糊规则进行了调整。关于神经网络的使用,Zou 等人[146] 在 2000 年代初简要介绍了这类算法的应用。Engedy 和 Horváth [147] 为必须避开静态和动态障碍物的移动机器人介绍了一种使用神经网络的路径规划器。Zhang 等人[148] 使用这种技术在迷宫场景中寻找最短路径。这种方法还与遗传算法结合使用 [149,150]。
文献中的其他作品则将模糊逻辑与神经网络相结合 [151-154]。这方面有不同的方法。例如,Mohanty 和 Parhi [155] 将许多此类系统用于自主导航。Mac 等人[8]对相关混合方法进行了更深入的了解和更广泛的调查。此外,人们还研究了如何利用强化学习(RL)来控制机器人的运动 [156,157]。Faust 等人[158] 将强化学习与概率路线图法 (PRM) 相结合,这也是接下来详细介绍的算法之一。有关基于 RL 的规划算法的更多信息,请参阅 Sun 等人的研究 [21]。
5. C-Space-Search-Based Path Planning Algorithms
这类算法将路径规划器的工作空间视为机器人可到达的所有状态或配置的空间。因此,这类算法中的大多数作品都将这一工作空间称为 C 空间。这些算法背后的主要思想是使用属于 C 空间一部分的离散样本集。换句话说,C 空间是离散的。这组样本包括初始状态和目标状态,或至少是相对接近这两个状态的样本。这样,这些算法就会执行搜索操作,访问这组样本。在某一点上,算法会找到并返回连接初始状态和目标状态的某个样本子集,该子集代表所产生的路径。换句话说,构成路径的每个航点都与 C 空间中的一个样本相对应。这意味着生成的路径在很大程度上取决于这些样本的分布、连接和访问方式。事实上,由于这种依赖性,有些方法需要进行后处理,以平滑生成路径的形状。
根据 C 空间离散化的方式,C 空间搜索类别又分为两类算法。图搜索算法是通过预先存在的图(如图 2 所示)来实现离散化的。该图中的每个节点都代表一个 C 空间样本,并与附近的其他节点(即其邻居)相连。基于采样的算法侧重于在 C 空间内以迭代方式创建和/或修改样本。即使在找到一条可行路径后,它们还能继续工作,找到更好的路径。
5.1. Graph Search
如前所述,C 空间可以以图的形式离散化。图搜索算法会全部或部分访问该图,直到找到连接初始状态和目标状态的路径。这类算法的第一种返回路径是将航点置于相邻样本之上。换句话说,路径上连续航点之间的连接与图边重合。图 8a 是一个示意图,显示了在第一种情况下,路径的形状是如何由这些边决定的。因此,本综述将生成此类路径的图形搜索算法归类为边缘受限算法。因此,这些路径取决于图的结构。正如第 2.2.1 节所述,有多种单元分解和路线图形式的图结构。另一种图搜索算法 “任意角度”(Any-angle)就是为了解决这个问题而创建的,它对图的边进行了限制。之所以使用这个名称,是因为限制边缘规划器生成的路径只能使用特定的方向值。例如,在八邻规则网格中,如图 8a 所示,限制边缘的路径只能有 0、±45、±90、±135 和 180 度的方向。任意角度算法生成的路径不受限于这些方向,因为它们的航点不一定要放置在相邻节点上。图 8b 展示了这方面的一个例子。
图 8. 限边算法(a)和任意角度算法(b)生成的路径(红色)的主要区别:在第一种情况下,航点只能放置在连续(相邻)的节点上。
关于限边算法,图 9 展示了文献中最具代表性的限边算法示意图。最著名、最基本的限边路径规划算法是 Dijkstra 算法 [159]。该算法的第一步是选择一个节点,即起点或目标节点。此后,它开始向其邻居传播信息。这些信息可以是从起点出发所需的成本值,也可以是到达目标所需的成本值。算法会迭代访问已访问节点的邻居。关于成本的信息会不断传播,算法会为每个访问过的节点分配一个父节点。如果环境允许,即目标和起点之间没有障碍物,算法最终会同时访问这两个节点。此时,通过回溯父节点来检索路径。换句话说,路径从最后访问的节点开始,通过父节点返回。多年后,哈特等人[160] 实现了启发式版本 A*,以加快计算速度。后来,又有了进一步的改进。D* 也被称为动态 A*,是 A* 的增量版本,由 [161] 提出。增量版的意思是,每当分配给网格节点的成本发生变化时,该算法就会重复之前的计算。这就避免了算法从头开始执行全新的计算。例如,当机器人在行进过程中遇到新的障碍物时,这种计算量的减少允许快速重新规划。名为 Focussed D* 的改进版本进一步缩短了 D* 的计算时间[162]。Koenig 和 Likhachev [163] 提出使用终身规划 A* (LPA*) 作为 A* 的另一种直接增量扩展。他们以此为参考,开发出了更简单的 D* 版本,称为 D*-Lite [164,165]。Colas 等人[166] 在搜索和救援应用中的移动机器人上采用了这种算法。由于 A* 和 D* 算法,包括它们的版本,都使用了启发式函数,因此得出的路径可能是次优的。Likhachev 等人[167]提出了这些算法的随时版本,使用可配置的固定时间。在给定时间内找到的最佳路径由这些随时版本生成。多尔戈夫等人[168]提出了一种 A* 算法,即混合 A*,该算法在找到路径后通过重新排列节点,优先考虑所生成路径的可行性,以换取最优性和完整性的损失;从某种程度上说,该路径在运动学上是可行的。
关于任意角度算法,最早的算法之一是 Field-D* [169]。这是一种众所周知的算法,主要是因为美国国家航空航天局(NASA)的火星探测器自 Spirit 和 Opportunity 开始就采用了这种算法 [170]。与 D* 和 D*-lite 类似,它也是一种增量算法,因此会在后续执行中重复之前的计算。虽然 Field-D* 是克服路径受限于边的问题的杰出方法,但仍有改进的余地,可以找到更多最优路径。多年后,以 A* 为基础,更多的任意角算法被创造出来,它们都专注于在避开障碍物的同时寻找最短路径的问题。纳什等人[171]为此创造了 Theta*。他们将其分为两个版本:一个是计算成本较低的 Base-Theta*,另一个是成本较高但结果更接近全局最优最短路径的 Angle-Propagation Theta*。Theta* 的主要前提是考虑障碍物拐角处的航向变化,与 Field-D* 相比,减少了路径上的航向变化 [172]。基础 Theta* 算法的增量版本后来被命名为增量 Phi* 算法 [173]。纳什等人[174]推出了更快的 Theta* 版本,即 Lazy-Theta*。Theta* 算法也得到了改进,能更好地处理非均匀代价图,即越接近障碍物,代价越高[175]。Šišlák 等人提出了加速 A* 算法[176]。它找到的路径比 Theta* 短,但速度较慢(尽管仍比 A* 快)。Yap 等人[177] 还引入了另一种名为 Block A* 的算法,并将其性能与 A* 和 Theta* 进行了比较。Nash 和 Koenig [11] 提供了另一项比较研究,其中包括加速 A*、Block A*、Field-D* 和 Theta*,还包括后一种算法的变体。同一作者后来还将这种算法与可见性图的使用进行了比较[178]。Muñoz 和 R-Moreno [179] 建议使用 S-Theta* 算法生成平滑航向变化的路径。3DANA 用于生成高程图上的路径[180,181]。与 Theta* 和许多其他任意角算法相比,其他算法的结果有所改进,包括任意角子目标图 [182,183] 和 Anya [184,185]。
5.2. Sampling-Based
基于采样的路径规划算法会按照不同的策略在 C 空间中创建一个又一个样本 [12,186]。之后,在满足特定条件或条件集(如达到时间限制)后,从创建的样本中检索路径。这种算法是渐进最优的。这意味着它们可以创建越来越多的样本,试图随着时间的推移找到更好的解决方案。一般来说,这些算法通常用于高维空间的搜索。然而,为了接近全局最优解,样本数量可能会相对较多 [14],这就需要使用大量内存资源来存储所有样本。
如果只考虑两个点(起始位置或状态和目标),该算法就是单查询算法,而如果在同一环境下选择更多的点,该算法就被归类为多查询算法。关于单查询,最著名的算法之一是快速随机树(RRT)算法,它也是快速确定树(RDT)的一个特例[187]。该算法模拟了树的生长过程,即从一个起点开始,动态地创建样本,就像创建树枝一样。图 10a 描述了一个总结这一过程的方案。当其中一个样本与目标的距离超过一定距离时,就可以通过向后跟踪的方式找回路径,直至到达原点。如前所述,为了找到更好的路径,还可以执行更多的迭代。文献中可以找到对 RRT 的进一步修改。Kuffner 和 LaValle [188] 提出了一个双向版本,命名为 RRT-Connect。后来,Yershova 等人[189] 提出了 RRT 的改进版本,称为动态域 RRT,它能在树扩展过程中意识到环境中存在的障碍。Arslan 和 Tsiotras [190] 从图形搜索算法 LPA 中汲取灵感,提出了 RRT#,这是 RRT 的改进版本,收敛速度更快。Karaman 和 Frazzoli [186] 引入了一种名为启发式 RRT(RRT*)的启发式 RRT 版本,以加快计算速度,同时仍能达到渐近最优。有关 RRT* 变体的广泛综述,请参阅 Noreen 等人的著作[14]。一种名为 "知情 RRT*"的改进版本在 RRT* 的基础上进行了改进,当找到一条可行路径时,将起点和目标位置围成一个椭圆[191]。接下来改进路径的迭代就在这个椭圆内进行,而不是让算法探索其他可能不会影响结果的选项。Gammell 等人[192]提出了另一种改进方法,称为批量有信息树(BIT*),并进行了比较,证明其性能优于 RRT*、有信息 RRT* 和 FMT*。BIT* 还借鉴了图搜索算法 LPA* 的一些步骤。区域加速批量有信息树(AIT*)在 BIT* 的基础上进行了改进,尤其是在存在狭窄走廊的情况下[193]。Adaptively Informed Trees (AIT*) 和 Advanced Batch Informed Trees (ABIT*) 算法在 BIT* 算法的基础上进行了改进,并被集成到 NASA 的一个实验性漫游车中 [194,195]。
关于基于采样的多重查询算法,最著名的是概率路线图法(Probabilistic Roadmap Method,PRM)[196]。这种算法从一系列已经分散在 C 空间中的样本开始。在此基础上,创建新样本,从每个初始样本创建一棵新树。图 10b 展示了这一过程背后的概念。之后,使用 A* 等图形搜索方法,利用 PRM 创建的图形检索路径。Karaman 和 Frazzoli [186] 提出了 PRM 的启发式版本。Park 等人[197]提出的改进方法采用了分层结构,减少了样本数量。Alenezi 等人[1]在模拟室内场景中对机器人进行了 PRM 测试。Ichter 等人[198] 提出了临界 PRM 算法,该算法将 PRM 与强化学习相结合,用于确定狭窄走廊等临界位置。
为了降低 RRT 和 PRM 的收敛速度,另一种基于采样的算法被命名为快速行进树(FMT* )算法。它不仅借鉴了这两种算法的特点,还借鉴了一种名为 FMM 的优化控制算法,详情如下。FMT* 的主要目标是在涉及大量自由度的问题中找到避开障碍物的路径。Reid 等人[50]提出的铰接车辆运动规划就是一个例子。Ichter 等人[199]提出使用分组行进树(GMT*),这是一种与 FMT* 相似的算法,但其重点是通过 GPU 的并行化来加快计算速度。最后值得一提的是,有一些路径规划算法将动态采样方法与模型预测控制(MPC)技术相结合,以考虑动力学约束[57,200,201]。
6. Optimal-Control-Based Path Planning Algorithms
基于控制方法的算法的基本原理是创建一个控制函数,将机器人从 C 空间的初始状态带向目的地。顾名思义,这里使用的是最优控制方法来解决路径规划问题[202]。与软计算方法的主要区别在于没有可配置的参数;这里的问题必须是完全封闭的。这里有两个不同的子类别。第一类是 PDE 求解,算法基于动态编程原理 (DPP),在网格上求解偏微分方程 (PDE)[203]。第二个子类别,即数值优化,包括根据机器人的动力限制优化已有路径,使其可行的算法。
6.1. PDE-Solving-Based
这里的优化控制方法基于动态编程原理,通过使用网格解决汉密尔顿-雅各比-贝尔曼方程 [204]。由于这是一个偏导数方程 (PDE),这一子类被命名为 PDE 求解。它可以看作是计算波在网格上传播问题的数值解。波到达时间的值分配给每个网格节点。波的传播方式将取决于 HJB 方程的表达方式,包括代价函数。这种算法的主要缺点是通常无法处理不连续形式的约束。
HJB 方程的一个特殊情况是 Eikonal 方程。它不仅是静态的,而且还考虑了成本函数,只根据地图上的位置返回一个标量值。这意味着波在节点上的传播速度仅取决于分配的标量值。这样一来,特征方向就与总成本函数的梯度相吻合,因此只需使用梯度下降法就能检索出路径。多年来,人们提出了一整套方法,以较低的计算要求计算这一问题公式的解,因此这些方法被命名为快速方法 [18]。其中最著名的是由 Sethian [205] 提出的快速行进法 (FMM)。该算法采用与 Dijkstra 相同的策略访问网格节点。与 Dijkstra 不同的是,FMM 通过求解 Eikonal 算法为每个节点分配成本值。这样得到的路径是平滑、连续和最优的。Chiang 等人[206]将该算法与 A* 进行了比较,结果表明,由于路径不受网格限制,FMM 得到的路径更短。目前有许多使用 FMM 进行路径规划的研究 [207-210]。Gómez 等人[18]在综述中介绍了 FMM 的一些变体,其中大部分都降低了 FMM 的计算能力要求,同时还介绍了其他 Eikonal 求解器。它们是二进制 FMM、斐波纳契 FMM、简化 FMM 和不整齐 FMM。Eikonal 使用的成本值决定了计算波的传播速度。Petres 等人[24] 证明了这些成本值的梯度如何影响所产生路径的曲率半径。他们的研究还引入了启发式快速行进 (FM* ) 的理念,并将其与其他图搜索算法进行了比较。为了顺利避开障碍物,快速行进方阵(FMS)[74] 计算两次 FMM,首先在障碍物周围形成一个排斥场。图 11a 描述了由于障碍物附近的成本值较高(颜色较深),路径如何平稳地远离障碍物。Liu 和 Bucknall [211] 使用 FMS 以及对初始位置周围的成本进行修改,以考虑车辆的初始方向。研究人员还致力于提出 FMM 的增量版本,如 E* [212-214]。
要处理汉密尔顿-雅各比-0 贝尔曼(HJB)方程更一般的表达式,必须使用其他类型的方法。如果使用与方向相关(各向异性)的代价,FMM 会产生次优结果[215]。这种代价意味着,相对于节点的矢量代价而言,波的传播方向不同。在某些特殊情况下,FMM 可以在一定程度的各向异性条件下得出准确的结果,例如,成本函数的计算方式使其主要在与参考轴平行的方向上变化[24,216]。图 11b 描述的就是这种情况。Sethian 和 Vladimirsky [215] 建议使用一种名为有序上风法 (OUM) 的算法来处理静态 HJB 方程,Shum 等人[217] 证实了该算法的收敛速度。其主要缺点是计算成本的增加与场景中存在的各向异性成正比。Shum 等人[31]使用 HJB 进行各向异性路径规划,考虑了能量最小化和稳定性,并考虑了斜坡的方向和幅度。快速扫描法(FSM)也被证明适用于一般的静态 HJB 方程 [218]。它的工作原理是访问网格上的所有节点,沿着特定方向反复进行,这意味着它需要大量的迭代。Takei 和 Tsai [37] 使用 FSM 拟定 HJB 方程,以符合转弯半径约束条件。对于 Eikonal 情况,Bak 等人[219]对 FSM 进行了改进,以在成本变化过大时加快计算速度,Detrixhe 等人[220]则推出了并行版本。Jeong 和 Whitaker [221] 提出了一种名为快速迭代法 (FIM) 的算法,同样可以在并行架构上求解 Eikonal 方程。
6.2. Global Optimization
该子类包含优化现有初步可行路径的路径规划算法。与第 3.1 节中介绍的局部优化方法不同,全局优化方法是以投入更多计算负荷来换取路径的全局最优。例如,Ratliff 等人[222]提出的方法首先使用基于采样的方法,如 RRT 或 PRM。第二步是使用梯度优化技术,从这条可行路径中逼近最优解。Van Den Berg 等人[223]也是从使用 RRT 计算出的轨迹开始,随后将 jt 应用于基于差分动态编程(DP)的优化过程。Plonski 等人[70]考虑到机器人会收获太阳能,因此使用 DP 计算了太阳地图中动态变化的路径。Ajanovi ́ c 等人 [224] 将 DP 与模型预测控制 (MPC) 相结合,计算出能量最小的路径。其他技术包括砰砰方法 [225] 和混合整数线性规划 (MILP) [226]。最后,Kogan 和 Murray[227]提出了一种独特的方法,他们使用非线性优化来规划长度在 20 米至 70 米之间的时间最优路径。
7. Summary and Conclusions
根据本文提出的分类系统(见图 1),表 3 总结了每个路径规划类别的主要特征。表 3 分析了这些算法是否需要一个初步的环境模型、是否具有确定性(即在相同的初始条件下总能提供相同的解决方案)、是否能处理动态环境并重新规划、是否是最优的以及是否完整(即如果可行,总能返回一条路径)。考虑到最终路径规划应用的范围,有些算法会比其他算法更适合。此外,规划器的覆盖范围和重新规划能力(即处理环境信息更新的能力)将决定一种算法更适合局部规划还是全局规划。局部规划通常需要快速的在线计算,在环境数据发生变化时需要这种反应行为来规划新的路径。全局规划甚至可以离线计算,目的是在有静态初始环境的情况下,生成长距离穿越的路径。
基于反应式计算的算法似乎很适合局部避障路径规划,因为这些算法易于实现且成本低廉。此外,对于不确定性较高的场景或使用传感能力非常有限的机器人时,反应式机动方法也是一个不错的选择。局部优化甚至可以考虑使用 TEB 的动力学约束,尽管它们不能确保完整性。必须特别注意这两个子类别,以避免陷入局部最小值。软计算算法使用多个可配置的运算符生成路径,这些运算符的灵感可以来自自然界,也可以基于模糊规则和/或神经网络。它们适用于涉及大量变量的问题或难以建模的问题,例如高度动态的环境。在包含移动元素的情况下,在远距离(全局路径规划)情况下,使用进化法就足够了。最新的人工智能方法,包括 DL 和 RL 方法,还需要进一步研究才能得出可靠的结论,Sun 等人也指出了这一点[21]。基于模糊规则或神经网络的人工智能方法可用于快速局部规划,以替代反应式机动方法。C 空间搜索算法利用样本来表示机器人的不同配置。这些样本可以事先以图形的形式提供,也可以动态创建。图形搜索算法适用于全局路径规划,考虑到了高级图形(如可见度图或空间网格图),但需要投入时间来构建这些图形(这在离线规划中是允许的)。不过,这种算法在处理高维度问题时扩展性较差,因此需要使用基于采样的算法。事实证明,基于采样的算法也适用于此类操作和高维度问题。优化控制算法在获得全局最优结果方面表现突出。基于各向同性成本函数或各向异性成本函数的 PDE 求解算法在很大程度上依赖于所配制的 PDE,并且可以使用网格形式的地图模型。全局优化算法必须从已定义的路径开始,并根据机器人的运动限制进行调整。在不确定性较低的静态情况下,PDE 求解算法可提供最优路径,而无需重新规划,因此适合离线计算长距离穿越。最后,需要注意的是,所有这些规划算法都依赖于描述环境和机器人的可用信息。必须尽可能准确地模拟这些信息,才能改善路径规划器的结果。