ECBS多机器人路径规划

这篇具有很好参考价值的文章主要介绍了ECBS多机器人路径规划。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

多机器人路径规划

多智能体路径规划 (Multi-Agent Path Finding, MAPF) 研究多智能体的路径规划算法,为多机系统规划无冲突的最优路径。

ECBS 算法由 CBS(Conflict-Based Search) 算法改进而来, 对 CBS算法的介绍可以参考笔者的这篇文章CBS多机器人路径规划(Conflict-Based Search)。CBS 算法给出 MAPF 问题的全局最优结果,ECBS 算法给出 MAPF 问题的有界次优结果。ECBS 之于 CBS,正如 A ϵ ∗ A^*_{\epsilon} Aϵ 之于 A ∗ A^* A,获得有限损失的次优结果,换来极大的速度提升。

参考文献:

  • Suboptimal Variants of the Conflict-Based Search Algorithm for the Multi-Agent Pathfinding Problem

ECBS(Enhanced CBS)

ECBS 基于 CBS 和 A ϵ ∗ A^*_{\epsilon} Aϵ,如果对 A ϵ ∗ A^*_{\epsilon} Aϵ 不熟悉可以参考笔者的这篇文章 A*算法及其变种。

ECBS 沿用 CBS 框架,主要对 CBS 的顶层和底层搜索算法作出改进,论文由浅入深,依次介绍了次优的 GCBS(Greedy-CBS)、有界次优的 BCBS(Bounded Suboptimal CBS),以及对 BCBS 作出更灵活改进的 ECBS(Enhanced CBS),本文将依次介绍这些算法。

GCBS(Greedy-CBS)

在 CBS 中,顶层和底层都是最优搜索,GCBS 通过松弛(relax)顶层和底层的搜索条件提升算法效率。

GCBS 不是最优的,但是完备的。完备性的证明可以参考原论文,和 CBS 证明完备性的思想一样。

顶层松弛

CBS 的顶层搜索启发函数规则为全局 c o s t cost cost 最小,GCBS 的顶层启发函数的规则设计为基于 s o l u t i o n solution solution 中的冲突( c o n f l i c t s conflicts conflicts)数量,用 h c h_c hc 表示,作者给出了以下几个启发函数示例:

  • h 1 h_1 h1:全局冲突数量:计算当前分支节点中 s o l u t i o n solution solution 的冲突数量
  • h 2 h_2 h2:发生冲突的机器人数量:计算前分支节点中路径里存在冲突的机器人数量
  • h 3 h_3 h3:发生冲突的机器人对(pairs):计算前分支节点中路径里存在冲突的机器人对的数量
  • h 4 h_4 h4:顶点覆盖(Vertex cover):定义一个图 graph:其中机器人为顶点(nodes),路径之间有冲突的机器人之间有边(edges)相连。事实上, h 2 h_2 h2 描述了顶点, h 3 h_3 h3 描述了边, h 4 h_4 h4 计算顶点覆盖数。
  • h 5 h_5 h5:可变启发式:在特定的条件下用特定的启发函数,更有鲁棒性,但编程比较麻烦。

作者声称,实测中 h 5 h_5 h5 的效果最好。但由于 h 3 h_3 h3 兼顾优秀性能和简洁性,介绍算法时选择 h 3 h_3 h3 作为实际的启发函数。在下文,所有的 h c h_c hc 都代表 h 3 h_3 h3

底层松弛

松弛底层,最简单的方法就是把寻路算法改成次优的,例如 WA*。作者提到,这样看起来单机器人搜索变快了,但次优算法会得出更长的路径结果,增加了未来顶层需要解决的潜在冲突数(单条路径越长,这些路径之间产生冲突的可能性就越大)。

作者提出,在每次进行当前机器人的路径规划前,考虑之前其他机器人的路径,尽量提前躲避。也就是把之前其他机器人的路径当成障碍物,然后进行时空 A*(space-time A*) 搜索。这样就能直接在底层尽量的减小路径之间的冲突数量。

这种思想其实与基于优先级的搜索(Prioritized-Based Search, PBS)有点像:按顺序对多台机器人进行规划,先进行规划的机器人的路径作为障碍物信息附加在后进行规划的机器人的约束条件中。PBS 的底层可以用任意一种单机规划算法。

为什么说 GCBS 的底层和 PBS 有点像 而不是一样呢,因为为了快速计算出结果, GCBS 的底层只是尽量(倾向于)提前躲避障碍物,并不是完全躲避,未能躲避而产生的冲突交给顶层解决。

BCBS(Bounded Suboptimal CBS)

CBS 的顶层和底层搜索都使用 A* ,BCBS 的顶层和底层搜索都使用 F O C A L   S e a r c h ( A ϵ ∗ ) FOCAL \space Search(A^*_{\epsilon}) FOCAL Search(Aϵ),对 A ϵ ∗ A^*_{\epsilon} Aϵ 不熟悉可以参考笔者的这篇文章 A*算法及其变种。

首先,定义 f o c a l focal focal- s e a r c h ( f 1 , f 2 ) search(f_1,f_2) search(f1,f2) 表示使用启发函数 f 1 , f 2 f_1,f_2 f1,f2 F o c a l   S e a r c h Focal \space Search Focal Search,其中, f 1 f_1 f1用于选择哪些节点被选入 F O C A L FOCAL FOCAL表, f 2 f_2 f2用于选择从 F O C A L FOCAL FOCAL表中选择哪一个节点作为下一步扩展。

顶层搜索

对约束树进行 f o c a l focal focal- s e a r c h ( g , h c ) search(g,h_c) search(g,hc),其中, g ( n ) g(n) g(n) 表示当前节点的 c o s t cost cost h c ( n ) h_c(n) hc(n) 表示 h 3 ( n ) h_3(n) h3(n)(发生冲突的机器人对的数量)。

底层搜索

在底层应用 f o c a l focal focal- s e a r c h ( f , h c ) search(f,h_c) search(f,hc),其中 f ( n ) = g ( n ) + h ( n ) f(n) = g(n) + h(n) f(n)=g(n)+h(n) 与 A* 中的 f ( n ) f(n) f(n) 一致, h c ( n ) h_c(n) hc(n) 表示 h 3 ( n ) h_3(n) h3(n) (考虑在节点 n 的路径冲突)

定义 B C B S ( w H , w L ) BCBS(w_H,w_L) BCBS(wH,wL) 表示在 顶层的 f o c a l   s e a r c h focal \space search focal search 使用 w H w_H wH 参数,在底层的 f o c a l   s e a r c h focal \space search focal search 使用 w L w_L wL 参数 ( w = 1 + ϵ w=1+\epsilon w=1+ϵ)。

根据定义, B C B S ( w H , w L ) BCBS(w_H,w_L) BCBS(wH,wL)有如下特例:

  • w L = 1 w_L = 1 wL=1,即 B C B S ( w H , 1 ) BCBS(w_H,1) BCBS(wH,1) :表示仅在顶层使用 f o c a l   s e a r c h focal \space search focal search
  • w H = 1 w_H = 1 wH=1,即 B C B S ( 1 , w L ) BCBS(1,w_L) BCBS(1,wL) :表示仅在底层使用 f o c a l   s e a r c h focal \space search focal search
  • w H = w L = 1 w_H = w_L = 1 wH=wL=1,即 B C B S ( 1 , 1 ) BCBS(1,1) BCBS(1,1) :BCBS 退化为 CBS
  • w H = w L = ∞ w_H = w_L = \infty wH=wL=,即 B C B S ( ∞ , ∞ ) BCBS(\infty,\infty) BCBS(,) :BCBS 退化为 GCBS,此时, F O C A L FOCAL FOCAL 表与 O p e n Open Open 表一致。

B C B S ( w H , w L ) BCBS(w_H,w_L) BCBS(wH,wL) 能保证最终的全局 c o s t ≤ w H ⋅ w L ⋅ C ∗ cost \le w_H \cdot w_L \cdot C^* costwHwLC,其中, C ∗ C^* C 为最优 c o s t cost cost (也就是 CBS 的结果)。

ECBS(Enhanced CBS)

提出新方法的第一步是抨击旧方法。刚介绍完 BCBS,作者马上提到,BCBS 中关于 w L w_L wL w H w_H wH 的调参是非常有讲究的,需要大量的调试经验,并且在整个搜索过程中 w L w_L wL w H w_H wH 完全固定,会影响算法性能。

为了解决这个问题,ECBS 应运而生。

ECBS 的底层搜索算法与 B C B S ( 1 , w ) BCBS(1,w) BCBS(1,w) 一致。以下介绍 ECBS 的顶层搜索算法。

设在 CBS 底层搜索中,为机器人 a i a_i ai 搜索路径时使用的 O P E N OPEN OPEN 表为 O P E N i OPEN_i OPENi,则 O P E N i OPEN_i OPENi 中的最小 f f f f m i n ( i ) f_{min}(i) fmin(i) 为 机器人 a i a_i ai 最优路径代价 c o s t cost cost 的下界(Lower Bound)。对一个约束树节点(CT node) n n n,设 L B ( n ) = ∑ i = 1 k f m i n ( i ) LB(n) = \sum^k_{i=1}f_{min}(i) LB(n)=i=1kfmin(i),根据定义有 L B ( n ) ≤ n . c o s t ≤ L B ( n ) ⋅ w LB(n) \le n.cost \le LB(n) \cdot w LB(n)n.costLB(n)w

在 ECBS 中,每一个 CT node 传递两个值给顶层算法:

  • n . c o s t n.cost n.cost
  • L B ( n ) LB(n) LB(n)

L B = m i n ( L B ( n ) ∣ n ∈ O P E N ) LB = min(LB(n) | n \in OPEN) LB=min(LB(n)nOPEN) ,其中 O P E N OPEN OPEN 为顶层搜索中的 O P E N OPEN OPEN 表,则 L B LB LB 显然是全局最优代价 C ∗ C^* C 的下界。ECBS 顶层算法的 F O C A L FOCAL FOCAL 表定义如下:

F O C A L = { n ∣ n ∈ O P E N , n . c o s t ≤ L B ⋅ w } FOCAL = \{n | n \in OPEN,n.cost \le LB \cdot w\} FOCAL={nnOPEN,n.costLBw}

由于 L B LB LB 是全局最优代价 C ∗ C^* C 的下界,那么 F O C A L FOCAL FOCAL 里的所有节点的代价 c o s t cost cost 都小于等于 w w w 倍最优代价,因此,全局代价也小于等于 w ⋅ C ∗ w \cdot C^* wC

至此,ECBS 在顶层和底层的次优界限完成了统一。ECBS 既有 B C B S ( 1 , w ) BCBS(1,w) BCBS(1,w) 底层算法的灵活性,顶层也不局限于 B C B S ( w H , 1 ) BCBS(w_H,1) BCBS(wH,1) 的固定参数的 F O C A L FOCAL FOCAL 表,而是随着底层算法的搜索情况而改变。

总结

本文所述的三个算法都是完备的。ECBS 为推进 MAPF 算法发展做出了重大贡献。 顺带一提,这个研究组居然在学术论文里使用文学笔法,这是非常罕见的。贴一下作者的结尾句:Time will tell how these new methods compare in general to traditional search approaches.文章来源地址https://www.toymoban.com/news/detail-745857.html

到了这里,关于ECBS多机器人路径规划的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【路径规划-二维路径规划】基于人工势场结合快速搜索树APF+RRT实现机器人避障规划附matlab代码

    在机器人路径规划领域,人工势场方法(Artificial Potential Field,APF)和快速搜索树(Rapidly-exploring Random Tree,RRT)是两种常用的算法,用于实现机器人避障规划。这两种方法可以结合使用,以在复杂环境中生成安全有效的路径。 人工势场方法是一种基于力的路径规划方法,通

    2024年01月19日
    浏览(36)
  • 基于灰狼算法的机器人栅格地图路径规划

    基于灰狼算法的机器人栅格地图路径规划 路径规划是机器人领域中一项重要的任务,它涉及在给定的环境中找到机器人从起始点到目标点的最优路径。灰狼算法是一种基于自然界中灰狼群体行为的优化算法,可以用于解决路径规划问题。在本文中,我们将介绍如何使用灰狼算

    2024年02月06日
    浏览(44)
  • 一套简单的机器人短途路径规划算法

    适用场景 效果 机器人在收到目标点后, global_planner先生成一条直达该点的路径 机器人转向目标点 机器人移动至目标点 机器人旋转到目标位姿 具体可以参考上篇文章, 修改了ROS自带navigation包中的carrot_planner, 使之具有以下特点 global_plan这个vector中包含的路径点的数量增加, 适配

    2024年02月19日
    浏览(41)
  • 基于粒子群算法的机器人动态路径规划

    基于粒子群算法的机器人动态路径规划 粒子群算法(Particle Swarm Optimization,PSO)是一种基于群体智能的优化算法,常用于解决优化问题。在机器人动态路径规划中,粒子群算法可以被应用于寻找最优路径,以使机器人在动态环境中能够高效地规划路径并避免障碍物。 本文将

    2024年02月07日
    浏览(39)
  • 改进灰狼算法实现机器人栅格地图路径规划

    改进灰狼算法实现机器人栅格地图路径规划 在机器人路径规划领域中,灰狼算法是一种具有全局搜索能力的优化算法。为了进一步提高其性能,可以结合和声算法对其进行改进。本文将介绍如何使用改进的灰狼算法实现机器人在栅格地图上的路径规划,并提供相应的MATLAB源代

    2024年02月06日
    浏览(41)
  • 基于粒子群算法的机器人栅格地图路径规划

    基于粒子群算法的机器人栅格地图路径规划 路径规划是机器人导航和自主移动的重要任务之一。在栅格地图中,机器人需要找到一条最优路径以避开障碍物并到达目标位置。粒子群算法(Particle Swarm Optimization,PSO)是一种模拟自然群体行为的优化算法,可以用于解决路径规划

    2024年02月07日
    浏览(36)
  • 基于Dijkstra算法的机器人编队路径规划问题

    基于Dijkstra算法的机器人编队路径规划问题 路径规划是机器人领域中的一个重要问题,它涉及确定从起点到目标点的最佳路径。Dijkstra算法是一种经典的图算法,用于解决最短路径问题。在本文中,我们将介绍如何使用Dijkstra算法来实现机器人编队的路径规划,并提供相应的

    2024年02月08日
    浏览(41)
  • 【路径规划】RRT算法机器人避障路径规划【含Matlab源码 319期】

    获取代码方式1: 完整代码已上传我的资源:【路径规划】基于matlab RRT算法求解机器人避障路径规划问题【含Matlab源码 319期】 点击上面蓝色字体,直接付费下载,即可。 获取代码方式2: 付费专栏Matlab路径规划(初级版) 备注: 点击上面蓝色字体付费专栏Matlab路径规划(初

    2024年01月15日
    浏览(36)
  • 基于蚁群算法的机器人栅格地图路径规划

    基于蚁群算法的机器人栅格地图路径规划 蚁群算法(Ant Colony Optimization, ACO)是一种模拟蚂蚁觅食行为的启发式优化算法。它常被应用于求解路径规划问题,其中包括机器人在栅格地图上寻找最佳路径的情景。在本文中,我们将介绍如何使用蚁群算法来实现机器人在栅格地图

    2024年02月07日
    浏览(35)
  • 【路径规划】人工势场算法机器人避障路径规划【含Matlab源码 2731期】

    获取代码方式1: 完整代码已上传我的资源:【路径规划】基于matlab人工势场算法机器人避障路径规划【含Matlab源码 2731期】 获取代码方式2: 付费专栏Matlab路径规划(初级版) 备注: 点击上面蓝色字体付费专栏Matlab路径规划(初级版),扫描上面二维码,付费29.9元订阅海神

    2024年02月02日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包