多机器人路径规划(MAPF)综述

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

参考文献:

  • Multi-Agent Pathfinding: Definitions, Variants, and Benchmarks

这篇综述详细介绍了多机器人路径规划问题(Multi-Agent Path Finding, MAPF)统一的描述形式和研究 MAPF 问题需要参考的术语定义,并介绍了评估 MAPF 算法的标准数据集.

文中介绍了一个关于 MAPF 非常重要的网站 : http://mapf.info, 里面实时更新 MAPF 问题研究的最新进展,包括最新的论文和全球研究 MAPF 问题的组织机构.

以下是对这篇综述比较有价值的部分进行总结:

Introduction

看论文首先要知道论文干了啥,这样后续看论文就会有重点,一般先看看摘要和 introduction 的后半部分,然后看看 conclusion.这篇综述是一篇 2019 年的论文,论文开头说关于 MAPF 的研究近年来涌现,但关于 MAPF 问题的描述形式和变量细节的定义却众说纷纭,对初学者很不友好.回想看过的 MAPF 算法论文,确实一语中的,比起经典算法,这种对一个研究方向的全局概述才更算是大部分初学者的引路人.

文章的主要贡献

  • 介绍 MAPF 问题的统一描述形式和术语定义
  • 建立基准数据集(benchmarks) 和算法评估标准

MAPF 的定义:

原文:

  • MAPF is an important type of multi-agent planning problem in which the task is to plan paths for multiple agents, where the key constraint is that the agents will be able to follow these paths concurrently without colliding with each other.

总结:

  • MAPF(Multi-Agent Path Finding) 问题要干什么,其实从名字来说已经说的很清楚了: 就是多机器人路径规划,再关键一点,就是无碰撞(no collision)的路径规划

主要应用场景:

  • 仓储物流
  • 自动驾驶
  • 机器人集群相关:比如无人机编队

经典 MAPF 算法(Classical MAPF)

定义

理解一个算法首先先把算法玩起来,玩起来的前提是知道算法的输入输出,这就够了.从输入输出就能从总体上了解这个算法能干什么,之后再深入算法细节,就不至于在冗杂的参数和复杂的算法细节中迷失,从而事半功倍.

:MAPF 算法,有时也叫求解器(solver),从编程视角来说,叫求解器可能更贴切一些.

Classical MAPF 算法的数学描述:

  • I n p u t : < G , s , t > Input: <G, s, t> Input:<G,s,t>, 其中:
    • 无向图 G = ( V , E ) G = (V, E) G=(V,E) V V V 为图 G G G 的顶点, E E E 为图 G G G 的边
    • 映射 s : [ 1 , . . . , k ] s:[1,...,k] s:[1,...,k] -> V V V 将一个机器人映射到一个顶点,描述每个机器人(agent)的起始(source)节点
    • 映射 t : [ 1 , . . . , k ] t:[1,...,k] t:[1,...,k] -> V V V 一个机器人映射到一个顶点,描述每个机器人(agent)的目标(target)节点
  • 在经典 MAPF 算法中,连续时间被离散化为时间步(这也是很多 MAPF 算法中 time step 的起源),在每一个时间步(time step ),机器人可以做一个动作(Action)
  • A c t i o n : a : V Action: a : V Action:a:V -> V V V,即 a ( v ) = v ′ a(v) = v' a(v)=v, 表示机器人执行动作 a a a 后,从顶点 v v v 移动到顶点 v ′ v' v. 在经典 MAPF 算法中,每个机器人有两种 actions:
    • w a i t wait wait: 待在原地, w a i t ( v ) = v wait(v) = v wait(v)=v
    • m o v e move move: 移动到下一个相邻顶点, m o v e ( v ) = v ′ , ( v , v ′ ) ∈ E move(v) = v',(v, v') \in E move(v)=v(v,v)E
  • π = ( a 1 , . . . , a n ) \pi = (a_1, ..., a_n) π=(a1,...,an) 为一串动作序列.对于一个机器人 i i i,设 π i [ x ] \pi_i[x] πi[x] 为机器人 i i i 从起点 s ( i ) s(i) s(i) 出发, 执行 π = ( a 1 , . . . , a n ) \pi = (a_1, ..., a_n) π=(a1,...,an) 中的前 x x x 个动作(action)后到达的位置,即 π i [ x ] = a x ( a x − 1 ( ⋅ ⋅ ⋅ a 1 ( s ( i ) ) ) \pi_i[x] = a_x(a_{x-1}(\cdot\cdot\cdot a_1(s(i))) πi[x]=ax(ax1(a1(s(i))). 如果机器人 i i i 从起点 s ( i ) s(i) s(i) 出发, 完整的执行完 π \pi π 后,到达目标点 t ( i ) t(i) t(i),即 π i [ ∣ π ∣ ] = t ( i ) \pi_i[|\pi|] = t(i) πi[π]=t(i),称 π \pi π 为机器人 i i i 的单机规划路径( s i n g l e single single- a g e n t agent agent p l a n plan plan, 在 CBS 中定义为 p a t h path path)
  • O u t p u t : s o l u t i o n Output: solution Output:solution
    • s o l u t i o n solution solution: k 个机器人的单机规划路径集合(a set of k k k single-agent plans)

总结:
对于经典 MAPF 问题:

  • 输入: 地图+机器人起始位置+机器人目标位置)
  • 输出: 全局路径(多个带时间步的单机规划路径)

冲突类型

为什么要定义冲突?
既然涉及到多机,每条单机规划路径之间的交叉或重合是很难避免的,这样就必然导致机器人产生碰撞,为了在算法层面解决这个问题,就将路径之间产生的交集定义为冲突.如果 s o l u t i o n solution solution 中的所有 s i n g l e single single- a g e n t agent agent p l a n plan plan 都没有冲突,那么这个 s o l u t i o n solution solution v a i l d vaild vaild

多机器人路径规划(MAPF)综述
π i \pi_i πi π j \pi_j πj 为两条 s i n g l e single single- a g e n t agent agent p l a n plan plan.

  • 顶点冲突(Vertex conflict)
    • 在同一时间步 x x x,机器人 i i i j j j 同时占据了顶点 v v v, 即 π i [ x ] = π j [ x ] \pi_i[x] = \pi_j[x] πi[x]=πj[x] , 如图(b), 绿机器人和蓝机器人将在下一时间步同时占据顶点 C C C
  • 边冲突(Edge conflict)
    • 在同一时间步 x x x,机器人 i i i j j j 同时穿越边 ( v , v ′ ) (v, v') (v,v), 即 π i [ x ] = π j [ x ] \pi_i[x] = \pi_j[x] πi[x]=πj[x] a n d and and π i [ x + 1 ] = π j [ x + 1 ] \pi_i[x+1] = \pi_j[x+1] πi[x+1]=πj[x+1] , 如图(a), 绿机器人和蓝机器人将在下一时间步同时穿越边 ( A , B ) (A, B) (A,B)
  • 跟随冲突(Following conflict)
    • π i [ x + 1 ] = π j [ x ] \pi_i[x+1] = \pi_j[x] πi[x+1]=πj[x]
    • 一台机器人在下一时间步要占据的节点是另一台机器人当前占据的节点,如图©
    • 形象一点解释,跟随冲突意味着跟车太近,没有保持车距,如果有意外情况容易撞上
  • 轮换冲突(Cycle conflict)
    • 一图胜千言,如图(d), 一圈机器人产生了一圈的跟随冲突,当禁止跟随冲突的情况下这种情况会造成死锁
    • 描述: π i [ x + 1 ] = π i + 1 [ x ] , π i + 1 [ x + 1 ] = π i + 2 [ x ] , ⋅ ⋅ ⋅ , π j − 1 [ x + 1 ] = π j [ x ] , π j [ x + 1 ] = π i [ x ] \pi_i[x+1] = \pi_{i+1}[x], \pi_{i+1}[x+1] = \pi_{i+2}[x], \cdot\cdot\cdot, \pi_{j-1}[x+1] = \pi_{j}[x], \pi_j[x+1] = \pi_{i}[x] πi[x+1]=πi+1[x],πi+1[x+1]=πi+2[x],,πj1[x+1]=πj[x],πj[x+1]=πi[x]
  • 交换冲突(Swapping conflict)
    • 非常经典的冲突, π i [ x + 1 ] = π j [ x ] , π j [ x + 1 ] = π i [ x ] \pi_i[x+1] = \pi_{j}[x], \pi_j[x+1] = \pi_{i}[x] πi[x+1]=πj[x],πj[x+1]=πi[x]
    • 如图(e), 两个机器人互换位置.
    • 在经典 MAPF 算法中,交换冲突有时被分进边冲突类型,因为显然两个机器人在同一时间步同时占据了一条边

机器人在终点的状态

由于每个机器人到达自己目标点的时间步不一致,所以需要定义机器人到目标点的状态.这个性质主要影响怎么去编程,跟算法没有多大关系.

  • 在终点消失(disappear at target)
    • 此状态下,一旦该机器人到达目标点,该目标点在算法中会设置为空白(clear)状态,之后,其他机器人的路径可以经过这个点
  • 在终点保持(stay at target)
    • 此状态下,一旦该机器人到达目标点,该目标点在算法中会设置为障碍物(obstacle)状态,变成障碍物,之后,其他机器人的路径不能经过这个点

目标函数

目标函数用于评估 MAPF 问题的解( s o l u t i o n solution solution), 一般有以下两个标准:

  • M a k e s p a n Makespan Makespan: s o l u t i o n solution solution 中最长的 p a t h path path 长度,也就是最长时间步 m a x 1 ⩽ i ⩽ k ∣ π i ∣ max_{1\leqslant i\leqslant k}|\pi_i| max1ikπi. 类比一下,相当于选取一个木桶最长的那块板.
  • S u m   o f   c o s t s Sum\space of\space costs Sum of costs: 时间步总数: ∑ 1 ⩽ i ⩽ k ∣ π i ∣ \sum_{1\leqslant i\leqslant k}|\pi_i| 1ikπi. 类比一下,相当于选取一个木桶所有木板的长度之和.

当然这只是一般的标准,根据具体情况还可以设计别的评估函数,例如机器人总的等待时间( w a i t wait wait动作),这就见仁见智了.

MAPF 问题的延伸

上一部分介绍的是经典 MAPF 问题,经典 MAPF 问题基于以下假设:

  • 时间离散化为时间步
  • 一个时间步机器人执行一个动作
  • 一个时间步内,机器人占据一个顶点

松弛以上假设,可以得到各种各样的 MAPF 问题变形.

带权图

这部分其实就是把经典 MAPF 的描述形式扩展了一下,把图的抽象扩展成带权图,例如在机器人规划领域广泛使用的欧式空间(栅格地图,矩阵等等), m o v e move move 操作演变成上下左右或者更大的步数跳跃,例如数据结构题里面模仿象棋马走日的广度优先搜索.    
多机器人路径规划(MAPF)综述

可行性判断

在经典 MAPF 问题中,可行性的判断标准唯一:没有冲突( n o   c o n f l i c t s no\space conflicts no conflicts), 变形的可行性判断规则有:

  • 鲁棒性判断
    • k − r o b u s t k- robust krobust MAPF 保证每个机器人在每个时间步有 k k k 个时间步的延迟裕量,这相比于经典 MAPF 的条件是加强的.有点类似于高中数学几何型线性规划的思想.
  • 队形规则
    • 这个与多机队形有关,例如无人机编队,详细可以阅读原文献中的参考文献

路径规划和运动规划

经典 MAPF 问题考虑的仅仅是理想情况的路径规划,但在实际问题中,机器人大小、机器人运动学约束都是非常重要的影响因子,经典算法需要进行特定的优化.

任务规划

  • 匿名 MAPF(Anonymous MAPF): 类似于滴滴打车,多个机器人需要到多个终点,但不规定哪台机器人必须到哪个终点
  • 分组 MAPF(Colored MAPF): 匿名 MAPF的变种,类似于外卖的区域性派单
  • 动态 MAPF(Online MAPF): 也叫 “Liftlong MAPF”, 南加州大名鼎鼎的 Jiaoyang Li 组就是研究这个的

Benchmark

这是这篇文章的第二个重点,介绍了评估 MAPF 算法的数据集和算法评估方法. 这里不涉及算法理论方面的东西,细节比较多,这里就不多介绍了,大家感兴趣可以看看原文章.文章来源地址https://www.toymoban.com/news/detail-462207.html

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

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

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

相关文章

  • 机器人学习-关于经典路径规划(二)

    8.Roadmap路线图 即将学习的第一组离散化方法被称为路线图,该方法使用一个简单的连通图来表示配置空间——类似于用地铁地图来表示城市。 路线图方法通常分两个阶段实现: — 构建阶段 从空间的连续表示中构建图形。这个阶段通常会花费大量的时间和精力,但是生成的图

    2024年02月16日
    浏览(44)
  • 机器人学习-关于经典路径规划(一)

    1.内容简介 识别不同类型的路径规划算法 理解一组算法的内部工作原理 评估算法对特定应用的适用性 实现搜索算法 2.路径规划示例 术语 完整性 ——如果一个算法能够在起点和目标之间找到一条路径,那么这个算法就是完整的。 最优性 ——如果一个算法能够找到最佳的解

    2024年02月06日
    浏览(55)
  • 【路径规划matlab代码】基于遗传算法求解机器人栅格地图路径规划问题

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进, 代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信    

    2024年03月08日
    浏览(68)
  • 【路径规划】基于遗传算法求解机器人栅格地图路径规划问题matlab代码

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进, 代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信    

    2024年01月24日
    浏览(64)
  • SLAM+路径规划:巡检机器人算法设计

    标题:Research on SLAM and Path Planning Method of Inspection Robot in Complex Scenarios 作者:Xiaohui Wang,Xi Ma,Zhaowei Li 编译:东岸因为 编辑:郑欣欣@一点人工一点智能 入群邀请:7个专业方向交流群+1个资料需求群 原文:SLAM+路径规划:巡检机器人算法设计 工厂安全检查对于保持生产环境

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

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

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

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

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

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

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

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

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

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

    2024年01月15日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包