全局路径规划算法
Dijkstra 算法:
Dijkstra 算法通过逐步更新节点的最短距离来找到起点到目标节点的最短路径,通过维护一个优先队列来选择当前最短距离的节点进行扩展,在找到目标节点或者遍历完所有节点后才停止重复之前的操作。
Dijkstra 算法的优点是能够找到最短路径,适用于无负权边的图;缺点是时间复杂度较高,无法处理负权边的情况。
使用RRT 和Dijkstra 算法融合避障:使用RRT 算法得到可行路径,并将这个可行区域扩张,类似膨胀操作,再对可行区域进行栅格化,在栅格地图中通过Dijkstra 算法找到最短路径。
A*算法:
A*算法利用一个估计函数(启发函数)来预测从当前节点到目标节点的最 佳路径,以减少搜索的开销。通过选择代价最小的节点进行扩展,直到找到目标节点或搜索完整个图。
引入了启发式函数的权重系数来提高A*算法的搜索效率。最终实现了A*和DWA 算法的融合,使路径更平滑,提高了算法的避障性能。
提出一种基于时间窗模型的动态路径规划方法,用来对多辆AGV 小车进行实时路径规划。每一辆AGV 小车单独使用A*算法进行路径规划,当路径与障碍物重叠时,实时更改道路权重,重新进行路径规划,这样就实现了实时避障。该算法在动态环境下有良好的适应性和鲁棒性。
D*算法:
D*算法通过不断更新路径的代价和启发式估计值来适应环境的变化。D*算法首先从目标节点开始,根据当前的代价和启发式估计值选择最优的邻居节点,并更新路径和代价信息。当环境发生变化时,D*算法会重新评估路径,并通过局部的增量更新来快速修正路径。这种增量的更新策略使得D*算法适用于实时的路径规划应用。
针对D*算法遍历节点过多、路径规划搜索缓慢的缺陷,从算法融合的思想出发,提出一种基于跳转搜索策略的改进D*算法。在静态规划过程中,采用跳转搜索策略代替原有D*算法的节点扩展策略。改进后的算法可以在路径规划过程中减少70%的路径节点数,提高规划速度。
模拟退火算法:
模拟退火算法基本思想源自固体退火过程,通过模拟固体从高温到低温的冷却过程,以一定概率接受劣解,从而避免陷入局部最优解。算法通过随机扰动当前解并根据目标函数的变化情况进行接受或拒绝的决策,逐步降低温度直到收敛到最优解,具有全局搜索能力和对局部最优解的逃逸能力。
在人工势场法中融合模拟退火算法,当传统人工势场法陷入局部最小值时,通过模拟退火法跳出当前局部最小值区域。
遗传算法:
遗传算法通过模拟自然界的遗传机制,利用基因编码和遗传操作来搜索问题的最优解。算法将解空间中的每一组解都抽象化为算法中的个体,个体在交叉、变异和选择等操作下就像是接受自然界的自然选择。优 秀的个体在生存和繁衍上占据较大优势,随着时间推移,优胜劣汰,最终存活的大都是较为优 秀的解。
提出一种改进遗传算法用于巡检路径规划,首先采用拓扑图对机器人工作环境进行建模,然后采用特殊的交叉算子、自适应变异算子和淘汰算子,对每一代被淘汰的个体进行逆转变异并将产生的新个体重新加入种群,随迭代次数调整变异概率,从而对连续的规划空间直接进行寻优。文献[7]以工厂中零件需求时间窗为约束条件,最短时间为规划目标,使用遗传算法得到AGV 小车的最优运输路线。
蚁群算法:
蚁群算法通过模拟蚂蚁在路径选择过程中的信息素沉积和挥发行为,来寻找最优解。蚁群算法在对地图搜索过程中,在搜索过的区域增加信息素,信息素越高,说明来过的蚂蚁越多。在后续的搜索过程中基于当前地图信息素选择下一位置。
在考虑传统蚁群算法搜索路径时存在找到收敛速度慢、拐点多且不能动态避障等问题,提出一种基于拉普拉斯分布与动态窗口融合的蚁群算法来解决机器人路径规划。
提出了一种用于AGV 路径规划的双种群蚁群算法:该算法引入差异化信息素初始值,修改启发函数并在信息素更新时对最优及最差路径进行奖惩;以改进策略为基础,引入自适应步长搜索策略,通过具有差异化步长的两个种群相互协作加强算法寻优能力和搜索效率;针对死锁问题,提出了将符合条件的单元格视为障碍物的“填充陷阱”策略。
提出了一种解决多AGV 路径规划问题的方法。对每一辆AGV 小车的初始路径分别使用蚁群算法进行优化。对于多辆AGV 小车,使用通过采用多AGV 冲突解决策略。这种策略可以在路途最短和路径最光滑的基础上,避开冲突,最终实现多车避障。该方法融合了蚁群算法的优势,能够有效地生成高质量的初始路径,并通过冲突解决策略避免了冲突的发生。
粒子群优化算法:
粒子群优化算法通过模拟鱼或者鸟在鱼群或者鸟群中的搜索和协作行为来得到最优解。算法将每一个解抽象化为一个粒子,每一个粒子在解空间中的运动同时受到个体最优和全局最优的影响,粒子在将自身当前状态与当前最优解对比后获得更优的搜索方向。
提出了一种基于粒子群优化和反应避障的编队控制系统。在领航跟随法中,通过粒子群优化实现领航者轨迹规划。领航者轨迹规划完成后,并不能保证跟随者的轨迹不会与障碍物发生碰撞,因此在编队控制中加入了跟随者反应避障系统,实现了编队避障。
基于传感器信息的局部路径规划算法
Bug 算法:
Bug1 算法的基本思想是当小车面前没有障碍物时,小车将直线走向目标点。当遇到障碍物时,小车将沿着障碍物边沿移动,直到可以继续按直线走向目标点。
Bug2 算法的基本思想是当小车面前没有障碍物时,小车将直线走向目标点。当遇到障碍物时,小车将沿着障碍物边沿移动,直到到达与初始位置和目标点连接的直线相交的位置时,停止绕行,继续按照原来的直线走向目标点。
将深度学习算法和路径规划技术相结合,提出了一种基于深层卷积神经网络和改进Bug 算法的机器人避障方法。]针对传统人工势场算法易陷入局部极值的问题,引入Bug 算法,保证算法的全局性能。
向量势直方图法:
向量势直方图法环境用网格表示,每个单元赋值表示该单元有障碍的可能性,在每一步环境信息转化为1 维直方图,引入代价函数值G,为所有可以通过的方向赋值选择具有最小代价函数值G 的方向。G=a·目标方向+b ·轮转动角度+c ·原运动方向。
采用向量场直方图和拓扑地图相结合的方法,实现AGV 的快速部署。
动态窗口法:
动态窗口法的基本思想是对当前的小车计算下一时刻可能的速度空间,对速度空间中的每一组速度进行轨迹预测,通过当前速度和预测的轨迹点对速度进行评估,在速度空间中选取评价最 高的速度作为下一时刻的速度。
使用改进后的动态窗口法实现了阿克曼机器人的局部路径规划。在传统的编队保持方案中加入动态窗口方法使编队稳定地到达目标点。
提出了一种新的基于跳点搜索的优化A*算法和动态窗口法的融合算法。
人工势场法:
人工势场法的核心思想是人为构造引力场和斥力场。障碍物将对被控对象产生一个斥力,斥力方向由障碍物指向被控对象,这个斥力的大小与被控对象同障碍物之间的距离有关。目标点将对被控对象产生一个吸引力,引力方向由被控对象指向目标点,引力的大小与被控对象同目标点之间的距离有关。被控对象在引力和斥力的共同作用下,远离障碍物,靠近目标点,最终完成路径规划。
将引力作用阈值引入引力势场函数,解决引力过大问题;在斥力势场函数中引入目标点与移动机器人之间的距离,解决目标不可达问题;根据环境复杂度,提出了自适应速度调节机制;针对局部极小值问题,分别提出了APF-v1 和APF-v2 两种构建虚拟目标点的方法,引导移动机器人走出陷阱区域。
通过针对多智能体系统在避障过程中出现的问题,结合使用鸽群搜索算法和人工势场法,对于车队队形控制使用领航跟随法,最终实现在一定编队队形下的避障任务。这一算法可以较为良好的保持避障过程中车队的队形,并且避免了传统人工势场法中的局部最优解问题。最终的仿真实验结果显示,使用这种方法进行避障任务的平均避障时间相比传统方法提高了约20.96%。
智能体编队控制算法
编队控制算法是一种用于多个无人车或机器人形成有序编队的控制算法。这些算法旨在使多个车辆按照特定的形态和行为规则进行协同操作,以实现任务分配、路径跟踪和相互协调等功能。以下是几种常见的编队控制算法:
领航跟随者算法:
领航跟随者算法的基本思想是将车队中的一些小车看作是领航者,另一些小车看作是跟随者。我们能预先知道领航者的位姿信息与当前速度,也能知道初始跟随者与领航者之间的位置关系。对领航者的位姿信息和当前速度通过跟随者与领航者之间的位置关系可以得到跟随者当前理论上的位姿与速度。
提出了一种基于时延补偿的领航跟随编队控制方案。
在领航跟随编队控制算法中设置了动态的φ值,当编队的领航者改变方向(或者遇到障碍物改变方向)时,φ值即变为动态的,随着领航者角速度的变化而变化,从而使跟随者路径更加平滑,队形的保持更加可靠。
提出了一种虚拟结构法和领航跟随法相结合的机器人协同编队算法。对整体的控制主要实现对领航机器人的控制,而对于该整体内部,已知所有领航机器人的位置信息就能得到所有跟随机器人的目标位置,设计了控制器,控制所有跟随机器人跟踪各自的目标位置,从而实现多机器人的协同编队控制。
虚拟结构算法:
虚拟结构算法基于预定义的几何结构或模式,使车辆之间保持特定的相对位置和距离。这些算法可以基于几何约束或相对运动规则来生成编队的运动轨迹,以实现编队的形态控制。
以虚拟结构为框架,在编队控制算法里加入队形反馈,邻近的分散编队控制器之间进行通信和协调,使得编队控制器既能控制编队机动运动速度,又能在编队机动过程中较好地维持队形。
分布式协同算法:
这类算法允许车辆之间通过局部通信和信息交换进行协同操作。车辆根据周围车辆的状态和位置信息,自主地调整自己的速度和轨迹,以保持编队的协调性和一致性。
提出了一种基于布谷鸟搜索算法的多智能体自动避障方法,用于提高多智能体在避障任务中的效果。通过智能体之间的协作和信息共享,利用布谷鸟搜索算法进行路径搜索和优化,实现了高效的避障策略。这种方法为多智能体系统在复杂环境中的避障任务提供了有效解决方案。
针对多智能体编队飞行问题,提出一种新的基于对偶分解的分布式算法,以实现协同航迹规划。这种算法只需相邻智能体间的通信,在智能体与外界信息受到阻碍的情况下使用这种算法也能很好地保持原有编队飞行。
人工势场算法:
人工势场算法利用虚拟的势场来引导车辆移动和形成编队。每个车辆感知周围障碍物和其他车辆,并根据势场的梯度调整自身运动,以实现编队的稳定和收敛。
提出了一种新的人工势场方法,用于实现智能体之间的队形控制,并满足期望的距离和方位角。通过设计合适的势场函数,可以在多智能体系统中引导智能体在给定的队形中运动。该方法考虑了智能体之间的相互作用,并根据期望的距离和方位角设置合适的势场梯度,使得智能体能够自主调整位置和姿态,以达到预期的队形目标。
通过引入这种人工势场方法,研究者成功地实现了智能体之间的协同运动和队形控制,为多智能体系统的协调行为提供了一种有效的解决方案。针对动态环境中多智能体编队避障问题,提出了一种基于人工势场法与布谷鸟搜索算法相结合的编队避障方法。
模型预测控制算法:
模型预测控制算法依据小车的自身的运动学模型来预测车辆的未来的位姿与速度信息,然后采取预先设定的控制策略来实现编队目标。为研究基于模型预测原理的路径跟踪控制器,建立了三自由度车辆动力学模型。
基于模型预测控制算法设计了智能车辆横向运动控制器.这些编队控制算法可根据具体的应用场景和要求进行选择和调整。它们旨在实现车辆之间的协同操作,提高编队的运动效率、安全性和鲁棒性。