博舍

大规模多智能体路径规划 人工智能路径规划算法是什么

大规模多智能体路径规划

点击蓝字

关注我们

AITIME欢迎每一位AI爱好者的加入!

李娇阳:南加州大学计算机系博士四年级学生,导师SvenKoenig,本科毕业于清华大学自动化系。目前主要的研究方向为人工智能,多智能体规划,组合优化,搜索算法等。以第一作者在AAAI,IJCAI,ICAPS,AAMAS等顶级会议上发表论文十余篇。曽担任ArtificialIntelligence,IEEERoboticsandAutomationLetters等期刊审稿人,AAAI,IJCAI,ICAPS等会议评审委员会委员,IJCAI会议评审委员会资深委员,并组织举办了IJCAI-2020多智能体路径规划研讨会。曾获得2019年南加州大学技术商业化奖,2020年高通奖学金,2020年ICAPS最佳学生论文,以及2020年NeurIPSFlatland挑战赛(Multi-AgentReinforcementLearningonTrains)第一名。本次报告的其中一项工作(论文1)在AmazonRobotics实习期间完成。

一、背景

多智能体路径规划,英文叫Multi-AgentPathFinding,简称为MAPF。它本质上是一个数学问题,通过给每个机器人规划一条路径,保证这些路径不相撞,并最小化总的运行时间。

它有很多实际应用,其中一个是仓储系统。近年来机器人仓储系统吸引了很多人的注意,出现了各种各样的仓储系统,比较典型的有亚马逊的Kivasystem,以及sortingcenter,和一些比较新的系统。这些系统本质上是给成百上千个机器人同时做规划路径,然后保证它们既不相撞,同时又能很快的到达目的地。

传统方法采用single-agent方法,通过给每一个机器人规划它们的最短路,或者最小时间路径。如果两个机器人可能相撞,就用一些简单的交通规则处理,比如说其中一个机器人减速或换一条路。但这种方法在简单的系统中工作较好,一旦机器人数量或密度增大,就会出现拥堵,导致整个系统效率变低。而MAPFsolver把所有机器人的路径一起规划,会考虑到各种碰撞的可能性。在同等情况下,MAPFsolver可以很好的去调度所有的机器人的路径,使得它们可以顺畅的到达目的地。

这张图展示了不同机器人个数下,系统吞吐量的变化。可以看到在一开始的时候,两种方法很接近,基本上保持线性增加,但是当机器人个数到一定值的时候,Single-agent会出现拥堵,导致系统的吞吐量增长率开始下降,经过巅峰之后,增长率开始下降,这是因为系统中出现了严重的交通拥堵,导致系统开始瘫痪。而对于MAPFsolver来说,在测试的1000个机器人之内,吞吐量几乎保持线性增长。

除了仓储系统,其还可以应用于交通系统,比如火车调度的例子。MAPFsolution可以在几分钟之内调度3000多个火车到他们的目的地。

除火车调度以外,一个类似的应用是飞机调度,这是我之前和NASA合作的项目,我们如何用MAPF的方法来控制飞机的起飞与降落。这个问题的难点在于,飞机的控制包含有很多不确定性因素,例如天气干扰,人为因素干扰,所以我们要把MAPF模型和随机模型结合起来,考虑到各种因素干扰,控制整体的调度与运行。

MAPF还可以被用到很多机器人系统中,比如说自动叉车,自动停车系统,无人车、无人机以及一些水下机器人。对这些系统一方面要避免碰撞,另一方面要去考虑各种机器人不同的动力学约束,比如说速度、加速度、转角,以及各种干扰的约束。如何把MAPF与这种约束结合起来,也是一个难点。

那么总的来说,其实MAPF的研究主要有两大方向:

一个是针对MAPF本身的问题,如何提高现有的算法效率和解的质量。

然后另一个是把MAPF应用到实际问题当中的时候,如何处理不同问题所带来的不同约束。

本次AAAI,我一共有4篇文章被选中,我会依次介绍它们。

第一篇文章是关于如何利用Heuristic方法加速现有的MAPF算法。

第二篇文章研究了MAPF的一个延伸问题,叫K-RobustMAPF,它的逻辑就是很多情况下机器人是不会严格的执行每一个动作,可能会有延迟。所以当我们考虑到有一定延迟的时候,我们仍然希望最终给的解保证没有碰撞。这种情况下,这个问题会带来很多的Symmetry因素,如何去消除这些因素,就是这篇文章所要解决的问题。

第三篇文章就是刚才提到的仓储系统,如何去应对实时的、大规模的、不断动态变化的仓储系统,用我们现有的MAPFsolver来解决这种LifelongMAPF问题。

第四个也是刚才提到的,考虑到机器人的动力学约束的时候,如何把它和MAPF模型结合起来。

进一步定义MAPF,假设时间是离散化的,在每一个行动点,机器人可以选择两种动作,一种是移动到相邻的位置,一种是在当前位置等待,两种动作只需要一个行动点,而且他们的cost也是1。碰撞被称为collisions或者是conflicts,其有两种类型,一个叫vertexconflict,即在任意时刻内,有两个agent在同一时间到达同一位置;另一种叫edgeconflict,即两个agent在同一时间去交换彼此的位置,或经过同一条边。所以我们的任务就是生成指令,使机器人既能到达目的地,也不会发生碰撞,同时具有最小旅行时间和。

这里有一个比较主流且具有较好效果的MAPF算法叫Conflict-Basedsearch或者CBS。它是一个两层的算法,其逻辑为假设一个机器人想从A2到D3,一个机器人想从B1到C4。CBS最开始先给每一个机器人规划一条最短路,忽略另一个机器人或忽略其他机器人。检查当前的最短路有没有collisions,算法根据其中一个机器人是否执行当前指令分别生成两个子树并且加一个额外的约束。之后在各自的子树中重新规划路线,左边给agent2重新规划一条路,右边给agent1重新规划一条路。重复之前的过程,直到找到一个节点,里面的路径没有任何collisions。

二、EECBS:ABounded-SuboptimalSearchforMulti-AgentPathFinding

第一篇我们提出了一个新的算法叫EECBS,这个算法从heuristicsearch的角度来分析如何来加速CBS。heuristicsearch中最经典的算法就是A*,CBS的上层和下层都使用了A*,如果想让其运算更快,一个很常见的算法是用wA*。通过给h乘一个w,使得f更偏向于h的值,这样可以更快找到解,并且解在最坏情况下不超过w倍最优解。但是其表现会比CBS更差。这是因为在CBS中,h的值没有考虑中途可能包含的碰撞信息。于是在1982年有人提出算法来解决这种问题。A*ε里有两个heurisitic,一个是传统的A*会用到的admissiblecostheuristic,然后另一个是distancetogoheuristicd。这个d表示当前节点到goalnode还需要展开多少个节点,heuristic用于估计这个事情。当人们把放到CBS框架中替换A*之后,发明了算法ECBS,它是目前最好的boundedsuboptimalMAPFsolver。

ECBS通过一个openlist存入所有的节点,并且按照f的值去排列。最小的叫fmin,其是最优解的一个lowerbound。而boundedsuboptimal的要求只需要最终解的cost比wfmin小。所以ECBS用d在橙色区域内选择合适的node作为解。但是实际中会有两个缺陷,第一个是因为fmin基本不会变,也就意味着橙色区域没有解的情况下也不会发生变化,第二个是获得的解会比真实解大。

为了解决上述的弊端,我们提出了explicitestimationCBS,EECBS。这个算法中包含了explicitestimationsearch和三个heuristic。第一个是A*中的h,第2个中的distance-to-god,第三个是cost-to-goheuristich’。第三个h’用于估计cost的增加量,并且不需要admissible,比h的准确度更高。

 1.第一个heuristic将问题转换为vertexcover,然后求解。

 2.第二个heuristic计算collisions的个数。

 3.第三个是onlinelearning方法,在搜索过程中观察前面h和d的误差,然后反馈矫正得到更精确的h’的预估计。

 4.结合三个heuristic就可以克服之前ECBS提到两个缺陷。

 5.此外,我们在EECBS中增加了近年来一些新的CBSimprovements。

通过实验对比,CBS最多能解决的agent个数小于200,而EECBS可以达到1000个以上,而解的质量与最优解只有2%的误差。

三、SymmetryBreakingfork-RobustMulti-AgentPathFinding

第二个工作关于对称性以及K-robustMAPF。观察上图发现每一个机器人可以有多条不同的路径。但是任意一条路径在黄色区域都有交集,这被称为symmetry。右图中,横坐标代表黄色区域的面积,纵坐标代表解决相撞问题时CBS的节点个数,图像显示随着面积增加,节点个数指数增大,尤其超过8×8后趋于不现实。

因为机器人不能够精准的以预定速度执行命令,所以需要k-robustMAPF制定计划,即对于任意数量的agent,延迟不超过k个时间单位,仍然可以保证不相撞,在左图中表现为后面的尾巴。但是这样也造成了更多的对称性缺点,中间图中是黄色面积图的延伸,可以看到随着k的增加,CBS需要的节点数也在增加。而右图显示的是随着k增加,rectanglesymmetry出现的频率也在增加,会严重影响CBS效率。

为了解决上述问题,我们采用了一种名为symmetry-breakingconstraints的想法,其运算逻辑是通过设计constraint来消除symmetry,从而缩小搜索空间,加速算法。应用于CBS中,当出现一个symmetry时,就子树添加多个constraints,从而消除潜在的collision。而constraint的设计要遵循两个原则,第一个是尽可能多的消除collision,第二个是尽可能保留潜在的解。

本篇文章的核心是如何设计constraints,主要从三类symmetry入手:

 1.第一个是rectangle。

 2.第二个corridorsymmetry,它需要解决两个机器人如何从不同方向经过一个狭窄的过道。

 3.第三个targetsymmetry,它面对的是一个agent已经到了它的目的地并且停止运动,另一个agent如何越过它。

我们在多种地图的情况下进行了测试,例如随机生成地图、游戏地图、仓库和火车网络,本文的方法对CBS有着显著的提高,对比之前可以对多一倍的数量求解。

四、LifelongMulti-AgentPathFindinginLarge-ScaleWarehouses

第三个是在亚马逊实习是完成的,称为LifelongMAPF,意图解决机器人在到达目的地后立即获得新任务的实时动态系统。

目前有三种方法:

 1.第一种从一个解决新问题的角度来思考,但是这种算法速度极慢,图中的文章只能解决20个agent。而且还需要知道所有的goallocation,这对于仓储系统不现实。

 2.第二种是在每个行动点多运行一次MAPFsolver,这个方法虽然只关心起始点,但是需要获得新任务后重新计算,造成重复性工作。此外实际系统中,机器人不会在每个timestep中等待系统重新制定计划。

 3.第三种是只针对有新任务的机器人做路径规划,机器人严格执行这个计划,并且不会进行改变。这个方法的缺点是解的质量差,且会出现拥堵,而且因为只涉及一部分agent,所以会出现无解的情况,只能使用于某一类地图,而且它同样要求每个行动点进行replan。

本文提供了一个新的思路来解决这个问题,称为Rolling-HorizonCollisionResolution。这个算法首先由用户提供参数h,之后每htimestep都进行replan。因为系统是在动态变化的,所以我们在当前replan只处理当前的collision,即在每htimesteps去处理一个windowedMAPFinstance。之所以叫windowedMAPF基于两点,第一点是前w个行动点的collision,其中w大于等于h;第二点是一个agent可能会有多个目的地,为的是在htimestep之前能够保持持续行动。上图是一个大概的展示,横轴为时间,在0的时刻,给所有agent完整的plan,但是只处理前w步的collision,到第h个timestep时,重复上述步骤。

对于这个算法,一共进行了两组对比实验,第一组是和之前的方法三做对比。可以看到质量要比方法三好,但是时间在不考虑解的质量时要略逊色于方法三。所有对于适合的地图,并且单纯追求速度的话可以使用方法三,但是追求质量的话,本文的方法更合适。

第二个实验选择了方法三不适用的地图,在此基础上使用了不同的w大小,观察对解的质量的影响。首先观察吞吐量,随着w的增加,吞吐量变化不大,这是因为只处理眼前的collision而不是所有之后可能发生的collision。另一方面,算法的速度随着w的增加会减慢,而且还涉及了能够处理agent的数量,例如当w趋于无穷,能解700个agent,而w为5或10就可以解1000个以上的agent。

这个方法有4个优点:

它适用于任何地图

我们不需要每个时刻都去replan,而是由用户决定其频率

有了W之后,算法速度提升明显

在提升速度的同时能够保证解的质量

五、ScalableandSafeMulti-AgentMotionPlanningwithNonlinearDynamicsandBoundedDisturbances

最后一篇文章是如何将MAPF和机器人的各种constraint结合,称为multi-robotmotionplanning。这里有一个比较典型的二轮车模型,我们会获得机器人所在位置的x、y,以及方向θ,速度和转速。输入是两个controlinput,一个是力,一个是力矩。因为考虑到机器人不会精确执行每一个动作,面临非线性,nonholonomic,high-dimensiondynamics,以及外界干扰的情况,所以成为一个离散空间和离散时间的问题。

重新思考MAPF算法,其本质就是考虑很多路径会不会有相撞情况,如果有就处理其中的conflict。而这里我们没有采用CBS,因为其对于连续时间中,取一个点,会使得constraint没有意义,因为其需要一个位置和一个timestep。所以我们采用了priority-basedsearch,即PBS,其与CBS的区别在于,当我们要处理一个conflict的时候,它给两个机器人的其中一个指派一个更高优先级,优先级低的那个agent就要去避免和优先级高的那个agent去撞。左图就是agent1优先级高于agent2,所以要给agent2重新规划路径。这样对于collision的问题就迎刃而解,接下来就是在不断的plan和replan的情况下,如何使得算法运行快。

我们将piecewiselinearpath作为介质,称为PWLpath。它将一个时间点和位置,即x,t组合成一个微point,两个微point之间通过直线段连接。在机器人实际执行过程中,我们用trackingcontroller作为跟踪器,让机器人跟随这条路径。而机器人会有误差,所以我们做了reachabilityenvelop去分析,例如直线情况下,机器人的偏离误差,即maximumtrackingerror,以及最坏情况下,它至少需要花多久时间,从一个点移到另一个点,minimumtrackingduration。计算出这两个误差的bound之后,通过MAPFsolver获得最终解。

这里举个例子,如果有两个机器人,要通过中间的过道。

第一步先获得maximumtrackingerror,增大o1,o2障碍物面积,从而保证只要机器人的piecewiselinearpath在白色区域,那么就不会与障碍物相撞。

第二步给每个机器人找一条piecewiselinearpath,通过PBS逻辑检查是否会相撞。当前情况下会相撞,于是赋予机器人1更高的优先级,对于机器人2来说,机器人1就是移动的障碍物。同时考虑到其覆盖面积,编码时通过这些约束就获得另一条规划路径。之后通过trackingcontroller,使得机器人跟随两条路径,就可以保证不相撞的情况下到达目的地。

上图是算法的框架图,称为S2M2,它包含了三部分:

第一部分ReachabilityAnalysis,用于计算maximumtrackingerror和minimumtrackingduration。

第二部分给每一个机器人规划一条piecewiselinearpath,将其编码成混合整数规划问题。

第三部分把SingleAgentMotionPlanner和PBS结合,去处理agent之间的碰撞,得到collisionfreepiecewiselinearpath,保证机器人能无碰撞的到达目的地。

第一个实验在2D环境下与ECBS-CT方法做对比。不论从时间还是质量来看,我们的方法都占据优势,最好的情况能减少一半的时间,尤其是预处理时间。我们的预处理只做reachabilityanalysis,大概只需要1s;而ECBS-CT则最多花费1800s以上。

我们还在3D环境下与当前最好的求解器做了对比。我们解的质量随着agent的数量,优势尽显。对于时间,我们的预处理依然很快,而对方需要1500s以上做离散化处理。

六、结论

最开始说到MAPF的研究主要有两大方向,一个是如何改进现有的算法,一个是在实际应用中如何处理约束。这4篇文章契合了这几个方向。

第一篇利用heuristicsearch方法,来指导搜索方向,从而加速算法。第二篇通过设计symmetry-breakingconstraints来减小搜索空间,从而加速搜索算法。

剩余两篇将目光集中于应用,第一个是在讲在lifelongMAPF问题中,我们提出rolling-horizoncollisionresolution框架,通过只处理眼前的collision,从而加速算法。

最后一个在multi-robotmotionplanning的时候,考虑robotdynamics。通过piecewiselinearpath为介质,把trackingcontroller和MAPF就结合起来,设计了高效求解multi-robotmotionplanning的算法。

REF

个人主页:

https://jiaoyangli.me/

论文标题:

LifelongMulti-AgentPathFindinginLarge-ScaleWarehouses

EECBS:ABounded-SuboptimalSearchforMulti-AgentPathFinding

ScalableandSafeMulti-AgentMotionPlanningwithNonlinearDynamicsandBoundedDisturbances

SymmetryBreakingfork-RobustMulti-AgentPathFinding

论文链接:

https://arxiv.org/abs/2005.07371

https://arxiv.org/abs/2010.01367

https://arxiv.org/abs/2012.09052

https://arxiv.org/abs/2102.08689

整理:闫  昊

审稿:李娇阳

排版:岳白雪

AITIME欢迎AI领域学者投稿,期待大家剖析学科历史发展和前沿技术。针对热门话题,我们将邀请专家一起论道。同时,我们也长期招募优质的撰稿人,顶级的平台需要顶级的你!

请将简历等信息发至yun.he@aminer.cn!

微信联系:AITIME_HY

AITIME是清华大学计算机系一群关注人工智能发展,并有思想情怀的青年学者们创办的圈子,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法、场景、应用的本质问题进行探索,加强思想碰撞,打造一个知识分享的聚集地。

更多资讯请扫码关注

 

(直播回放:https://www.bilibili.com/video/BV1X54y1h7qm?share_source=copy_web)

(点击“阅读原文”下载本次报告ppt)

(6)【全局路径规划】智能算法的方法

(4)【轨迹优化篇】方法二:基于Frenet车道线坐标系,采用DP、QP速度解耦进行局部规划--EM_planner

琴雨城烧脑之旅:链接全是404不存在啊

【四足机器人--支撑相足端反作用力预测】(5)ConvexMPCLocomotion代码解析

ixxuan:师兄可以告知一下是您的哪篇论文吗,十分想看看

【嵌入式--伺服电机】MIT无刷电机FOC驱动程序分析

weixin_51262391:可以提供一下有注释版的吗?514714543@qq.com

项目开发模式--独立开发模式、瀑布开发模式、敏捷开发模式、DevOps开发模式

CSDN-Ada助手:非常棒的博客!写得非常详细全面。这篇博客让我对不同的项目开发模式有了更深入的了解。感谢CSDN博主的分享。我建议下一篇博客可以写一些关于如何选择适合自己团队的项目开发模式的技巧和方法。希望能够多分享一些实际经验和案例。期待你的下一篇精彩博客!2023年博客之星「城市赛道」年中评选已开启(https://activity.csdn.net/creatActivity?id=10470&utm_source=blog_comment_city),博主的原力值在所在城市已经名列前茅,持续创作就有机会成为所在城市的TOP1博主(https://bbs.csdn.net/forums/blogstar2023?typeId=3152981&utm_source=blog_comment_city),更有丰厚奖品等你来拿~。

【项目解读】fast_planner工程解读

匍匐的狗仔:博主,链接进不去了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇