文献链接
最近我在学习多机器人编队导航的论文,此篇文章为“Z. Sui, Z. Pu, J. Yi and T. Xiong, “Formation Control with Collision Avoidance through Deep Reinforcement Learning,” 2019 International Joint Conference on Neural Networks (IJCNN), 2019, pp. 1-8, doi: 10.1109/IJCNN.2019.8851906.”的论文学习笔记,只供学习使用,不作商业用途,侵权删除。并且本人学术功底有限,如果有思路不正确的地方欢迎批评指正!
为跟随者生成无碰撞、时间有效的路径是避免碰撞的编队控制中的一个具有挑战性的问题。具体来说,跟随者必须同时考虑编队维护和避碰。最近的工作显示了深度强化学习 (DRL) 在学习碰撞避免策略方面的潜力。然而,在以前的作品中只考虑了碰撞因素。在本文中,文中通过学习一项综合任务将基于学习的策略扩展到编队控制领域。特别是采用了模仿学习和强化学习的两阶段训练方案。提出了一种融合奖励函数来引导训练。此外,提出了一种面向编队的网络架构用于环境感知,并应用长短期记忆(LSTM)来感知任意数量的障碍物的信息。进行了各种模拟,结果表明所提出的算法能够预测环境的动态信息并且优于传统方法。
个人总结:结合模仿学习与强化学习实现一个综合任务,即机器人导航与编队控制。使用融合奖函数引导训练,以及提出了一种面向编队的网络架构应用于LSTM网络感知任意数量障碍物。
随着多智能体编队控制在各个领域的应用,越来越多的研究人员受到了关注。在leaderfollower 编队架构[1] 中,选择一个agent 作为leader,决定整个编队的运动,而其他agent 是需要跟随leader 的follower。编队维护和避撞是该过程中两个具有代表性的关键问题。编队控制中最具挑战性的困难是代理之间或与障碍物发生碰撞的风险。对于追随者来说,寻找无碰撞、时间高效以及编队维护的路径仍然具有挑战性。
传统的避碰算法可以分为三类:离线轨迹规划方法、力场方法和感知避让方法。轨迹规划方法[2]试图提前计算无碰撞轨迹,然后将结果作为输入进行控制。但是这种方法计算量大,需要知道环境中的所有信息,不适合在动态环境中实现。力场方法 [3] 通过假设障碍物和代理周围的虚拟场来解决碰撞问题。但是,力场可能存在局部最小值,可能会出现目标不可达的问题。 senseand-avoid 方法 [4] 通过感知环境并相应地改变运动来防止碰撞,这种方法更人性化,在实践中得到广泛应用。
现有的关于感知和避免的工作可以大致分为两类[5],基于反应的方法和基于预测的方法。前一种方法为当前几何状态指定一步交互规则,如基于模糊的避碰[6]和互易速度障碍(RVO)方法[7]-[10]。然而,这种方法在某些情况下似乎是短视和不安全的,因为它没有考虑环境的未来状态[5]。后一种方法预测障碍物的运动并预测环境的未来状态,然后计算出有远见的决策以避免碰撞。然而,基于预测的方法存在以下两个问题:一是模型和测量不确定性导致的估计不准确,二是计算复杂度高。
最近,已经进行了大量研究以改进防撞方法。受深度学习和深度强化学习 (RL) [11]、[12] 强大的感知和学习能力的启发,在 [5]、[13] 中训练了一种代理级别的防撞策略,以克服基于 RVO 的限制方法。引入了价值网络训练算法,将昂贵的在线计算卸载到离线训练过程。此外,应用了长短期记忆网络(LSTM)[14]模块,使算法能够基于任意数量的其他代理[15]做出决策。 [16] 中提出了一个基于注意力模型的交互模块,用于对人机交互进行编码,以更好地预测未来状态。此外,原始传感器数据用于在 [17]-[19] 中生成无碰撞转向命令,其中实施了监督学习和强化学习架构并产生了不同的效果。然而,这些研究只关注多智能体避碰策略,而没有尝试扩展到更重要的问题,如编队控制,本文将对此进行讨论。
基于强化学习的防撞策略的发展为具有防撞的编队控制带来了新的机会,本文将对此进行讨论。文中没有设计双模式控制策略 [20] 或在编队维护模型和避碰模型 [21] 之间切换控制,而是通过学习综合任务将基于学习的避碰方法扩展到编队控制。特别是,文中提出了一个两阶段的训练方案来学习行为策略,并设计了一个价值网络来估计状态值。在第一阶段,采用模仿学习方法[5]、[16],提出了一种基于共识和最优互反避碰(ORCA)的引导方法来生成用于初始化行为策略的演示轨迹;在第二阶段,实施 RL 方法来细化策略。在 RL 中设计奖励函数时综合考虑了形成因子和碰撞因子。此外,采用 LSTM 来感知环境中任意数量的障碍物的信息。
本文的主要贡献是:
在一般的leader-follower 编队架构中,leader 自主导航,follower 必须承担编队维护的责任。同时,他们都应该具备避开障碍物的能力。在本文中,文中专注于对追随者的编队控制器的设计。特别是,训练一个基于深度神经网络的模型,通过模仿学习和强化学习获得上述两种能力。
通过适当的控制策略,当通信拓扑满足最小生成树条件[22]时,可以实现形成。因此,这样的问题可以分解为几个子问题,每个子问题只考虑一个领导者和一个跟随者。如图 1 所示,本文讨论了一个由一个领导者和一个跟随者组成的领导者-跟随者配置的编队。蓝色圆圈代表领导者,绿色圆圈代表跟随者。蓝色星代表领导者的目标,绿色星代表追随者的目标。领导者和追随者之间的位置关系是一种需要保持的期望,稍后会更详细地讨论。红色圆圈代表障碍物,它们是随机设置的,分别朝着它们的中心对称位置移动。这样一来,中心区域就会变得异常拥挤,这是典型的复杂情况。领导者自主导航,而追随者由学习策略控制。任务的目标是保持队形,同时避免与任何障碍物发生碰撞。关键是建立适当的学习方法和培训结构,从而产生适当的政策。
对于每个智能体(领导者、追随者或障碍),让 s t s_t st, a t a_t at 表示在时间 t 的状态和动作,让 △ t \bigtriangleup t △t表示步骤时间。状态由可观察部分和隐藏部分组成。具体来说,文中假设智能体的位置 p t = [ p t x , p t y ] {\rm p}_t = [p_t^x,p_t^y] pt=[ptx,pty]、速度 v t = [ v t x , v t y ] {\rm v}_t = [v_t^x,v_t^y] vt=[vtx,vty]和半径 r r r,可以被其他人观察到,而目标位置 p g = [ p g x , p g y ] {\rm p}_g = [p_{gx},p_{gy}] pg=[pgx,pgy], 给定的首选速度 v p r e f v_{pref} vpref和航向角 θ t \theta_t θt由它自己拥有。 s t ~ = [ p t x , p t y , v t x , v t y , r ] ∈ R 5 \tilde{ s_t}= [p_t^x,p_t^y,v_t^x,v_t^y,r]\in\mathbb{R} ^5 st~=[ptx,pty,vtx,vty,r]∈R5表示可观察到的部分, s t ^ = [ p g x , p g y , v p r e f , θ t ] ∈ R 4 \hat{ s_t}= [p_{gx},p_{gy},v_{pref},\theta_t]\in\mathbb{R} ^4 st^=[pgx,pgy,vpref,θt]∈R4表示隐藏的部分,有 s t = [ s t ^ , s t ] ~ s_t=[\hat{s_t},\tilde{s_t]} st=[st^,st]~。对于动作 a t a_t at ,文中假设智能体在给出动作命令时可以立即响应,即 v t ] = [ v t x , v t y ] = a t v_t]=[v_t^x,v_t^y]=a_t vt]=[vtx,vty]=at 。此外,上标 F , L , O F,L,O F,L,O分别代表追随者、领导者和障碍物。例如, s t F s_t^F stF代表跟随者的状态, s t L s_t^L stL代表领导者的状态,而 s t O = [ s t O 1 , s t O 2 , s t O 3 , … ] s_t^O=[s_t^{O_1},s_t^{O_2},s_t^{O_3},\dots] stO=[stO1,stO2,stO3,…]代表障碍物的状态。目标是设计跟随者的策略 π : ( s t F , s ~ t L , s ~ t O ) ↦ a t \pi:(s_t^F,\tilde{s}_t^L,\tilde{s}_t^O)\mapsto a_t π:(stF,s~tL,s~tO)↦at来选择合适的动作来维持编队和避障。在学习结构中,这可以转化为具有目标函数和一组约束的优化问题。目标函数是多目标函数的一种形式,它由跟随者达到目标的时间 t 和编队维护的累积误差组成。同时,在约束中考虑了碰撞避免。最终,问题表述如下:
其中 O t h e r s = { p L , p O 1 , p O 2 , p O 3 , … } Others=\{{\rm p}^L,{\rm p}^{O_1},{\rm p}^{O_2},{\rm p}^{O_3},\dots\} Others={pL,pO1,pO2,pO3,…}表示环境中除跟随者外的智能体, r ˉ \bar{r} rˉ表示 p ˉ \bar{p} pˉ对应的智能体的半径。 H t H_t Ht是跟随者相对于领导者的预期相对偏移向量。 (2) 是避碰约束,(3) 是目标约束,(4) 是智能体的运动学约束。
RL [23] 是一类用于解决顺序决策问题的学习方法。在每一步,agent 通过与环境的交互获得奖励或惩罚。政策通过探索和训练逐步优化。由于近年来深度学习的快速发展,RL 已经获得了解决更高维度和更高难度问题的能力,例如玩 Atari 游戏 [11]、[12]。在本文中,具有避撞的编队控制问题可以表述为马尔可夫决策过程(MDP),这里通过强化学习来解决。文中定义 s t j n = ( s t F , s ~ t L , s ~ t O ) s_t^{jn}=(s_t^F,\tilde{s}_t^L,\tilde{s}_t^O) stjn=(stF,s~tL,s~tO)为环境在时间 t 的联合状态,其中 s t F s_t^F stF表示跟随者的完整状态, s ~ t L \tilde{s}_t^L s~tL表示领导者的可观察状态,而 s ~ t O \tilde{s}_t^O s~tO表示障碍物的可观察状态。价值网络旨在估计状态的价值,其目标是找到最优价值函数,
其中 R t ( s t j s , a t ) R_t({\rm s}_t^{js},{\rm a}_t) Rt(stjs,at)表示在时间 t t t收到的奖励, γ \gamma γ是折扣因子。
最优策略 π ∗ : s t j s ↦ a t \pi^{\ast}:{\rm s}_t^{js}\mapsto {\rm a}_t π∗:stjs↦at可以从价值函数中得到
其中 P ( s t j s , a t , s t + △ t j s ) P({\rm s}_t^{js},{\rm a}_t,{\rm s}_{t+\triangle t}^{js}) P(stjs,at,st+△tjs)表示 t t t和 t + △ t t+\triangle t t+△t之间的转移概率。
下面给出了用避碰解决编队控制问题的方案。文中遵循 [5] 中的主要 RL 框架。此外,本文提出了一种基于ORCA和传统编队控制的混合方法来指导模仿学习。同时,为了更好地感知环境信息,提出了一种面向编队的网络架构。如下图所示:
整个训练过程分为两个阶段,模仿学习和强化学习。引导方法在第一阶段实施。基于共识的编队控制律生成控制命令 u t {\rm u}_t ut,然后跟随者接收 u t {\rm u}_t ut并改变当前速度。 ORCA 模块检测与首选速度的可能碰撞并最终产生无碰撞速度。每集结束后,演示模块保存轨迹元组 ( s t , v t , R t ) (s_t,v_t,R_t) (st,vt,Rt)用于计算状态-值对和训练人类网络。第二阶段,价值网络由人网络预先初始化,然后采用RL方法优化策略。此外,实现目标网络以稳定整体网络性能。请注意,人际网络、在线价值网络和目标价值网络的结构是相同的。文中的方法的细节将在本节的以下部分讨论。
由于坐标信息在不同坐标系下取值不同,可能导致网络不稳定,文中从跟随者的第一人称视角对环境信息进行变换。特别地,对于每个状态对 s t p a i r = ( s t F , s t L ) {\rm s}_t^{pair}=({\rm s}_t^{F},{\rm s}_t^{L}) stpair=(stF,stL)或者 s t p a i r = ( s t F , s t O i ) , i ∈ 1 , 2 , 3 , … , {\rm s}_t^{pair}=({\rm s}_t^{F},{\rm s}_t^{O_i}),i\in1,2,3,\dots, stpair=(stF,stOi),i∈1,2,3,…,
其中 s t F ′ = [ d g , v p r e f , θ t ′ , v t x ′ , v t y ′ , r ] {\rm s}_t^{F'}=[d_g,v_{pref},\theta'_t,v_t^{x'},v_t^{y'},r] stF′=[dg,vpref,θt′,vtx′,vty′,r]表示其他代理的转换状态。 并且 s t ′ = [ p ~ t x ′ , p ~ t y ′ , v ~ t x ′ , v ~ t y ′ , r ~ , d , r + r ~ ] {\rm s}'_t=[{\tilde p}_t^{x'},{\tilde p}_t^{y'},{\tilde v}_t^{x'},{\tilde v}_t^{y'},\tilde r,d,r+{\tilde r}] st′=[p~tx′,p~ty′,v~tx′,v~ty′,r~,d,r+r~]表示另一个代理的转换状态。 d g = ∥ p g − p t F ∥ 2 d_g=\left \| {\rm p}_g-{\rm p}_t^F \right \| _2 dg=∥ ∥pg−ptF∥ ∥2是追随者到目标的距离, d g = ∥ p t F − p ~ t ∥ 2 d_g=\left \| {\rm p_t^F}-{\rm \tilde p}_t \right \| _2 dg=∥ ∥ptF−p~t∥ ∥2是到其他智能体的距离。
如下图所示,动作空间是每个步骤中可选动作的集合。文中假设智能体有一个完整的,它的动作空间由七个角度选择和五个速度选择组成。动作空间的总大小为 35,可以认为是近似连续的。
奖励函数的设计在强化学习中尤为重要。适当的奖励函数保证了规定任务的完成,而不适当的函数使训练变得毫无意义。
为了重点解决编队控制问题,这里提出编队评价函数来评价编队质量和计算奖励。特别是编队跟踪误差实时反映了质量。文中将期望位置和实际位置之间的欧几里得距离作为输入。形成的奖励函数定义为:
e r r o r t error_t errort表示在 t t t时刻形成的误差。
奖励在一定范围内是平滑的,当误差超过限制时会变大,如下图所示。这样,文中期望在没有跟踪误差或跟踪误差很小的情况下实现编队。至于避免碰撞,文中遵循作品 [5]、[15]、[16] 的公式。此外,文中修改了系数以确保奖励的平均分配。
其中 d t = m i n { ∥ p t F − p ˉ t ∥ ∣ p ˉ t ∈ O t h e r s } d_t={\rm min}\{ \left \| {\rm p_t^F}-{\rm \bar p}_t \right \||{\rm \bar p}_t \in{Others}\} dt=min{∥ ∥ptF−pˉt∥ ∥∣pˉt∈Others} 表示跟随者和其他代理之间的最小间隔距离。
在上述 R t F R_t^F RtF和 R t C A R_t^{CA} RtCA的基础上,得到综合奖励函数如下。
很明显,并不是所有的环境信息都需要在每个步骤的决策过程中进行处理。根据距离和航向角,每个智能体对行为策略的影响程度不同。但是,实际上影响更大的代理的数量是不确定的。为了解决这个问题,文中按照[15]中的方法实现了LSTM来处理环境信息。 LSTM 通常用于处理数据的时间序列,而 [15] 利用其编码不依赖于时间的信息序列的能力。给定足够大的隐藏状态,就有足够的空间来编码大量障碍物的状态。此外,为了减轻障碍物忘记早期状态的影响,状态按照距离的倒序馈送到跟随者,这意味着最近的障碍物对最终隐藏状态的影响最大。在时间 t,障碍物的状态被视为 LSTM 网络的输入序列。 LSTM 网络对它们进行一一处理,最终生成所有障碍物的编码信息。这样,可以解决任意数量的障碍物的问题。如图 5 所示,LSTM 接收 s t 0 1 s_t^{0_1} st01生成其隐藏状态 h 1 h_1 h1,然后接收 h 1 h_1 h1和 s t 0 2 s_t^{0_2} st02生成 h 2 h_2 h2 ,依此类推。最后,LSTM 在处理完所有代理后输出最后一个隐藏状态 h n h_n hn。直观地说, h n h_n hn包含有关所有障碍物的编码信息。
除了处理避撞问题外,编队维护问题也有待解决。显然,leader的状态需要单独处理。因此,文中设计了定制的网络架构来处理编队控制问题。如图下图所示,绿色立方体代表跟随者的状态,而蓝色立方体代表代表领导者的状态。红色长方体代表处理障碍物状态的 LSTM 模块。红色立方体是 LSTM 的最后一个隐藏状态,代表了所有 s ~ t O a l l {\tilde s}_t^{O^{all}} s~tOall的障碍物的编码信息。跟随者、领导者和障碍物的状态被组合起来,然后馈送到 3 个全连接 (FC) 层。最终,网络输出当前状态的估计值。
在所提出的架构中,领导者和跟随者的状态被平等对待,以引导神经网络注意形成。这样,编队控制问题将得到更好的处理。
为了适应编队控制问题,文中将训练分为两个阶段:模仿学习和强化学习。第一阶段,为了减少随机搜索的盲目性,提高训练效率,提出了基于ORCA的编队控制(ORCA-F)算法作为指导算法在环境中执行并生成演示轨迹,本文将对此进行讨论。稍后详细说明。之后,通过对示范轨迹的模仿学习来初始化价值网络。第二阶段,在之前设计的基础上采用强化学习方法。在这个阶段,可以通过反复试验逐步优化策略。、
为了综合处理编队维护和避碰问题,文中提出了基于编队控制律的ORCA-F方法和ORCA避碰方法。编队控制器的输出作为ORCA模块中的首选速度,然后ORCA算法生成避撞速度。这样,在一定范围内没有碰撞的可能性时,阵型最终会稳定下来。编队控制器设计成线性控制器的形式。稳定性分析如下。
为了平滑速度,文中选择二阶系统作为参考。考虑跟随者的以下二阶动力学
其中 P F = [ P x F , P y F ] T {\rm P}^F=[P_x^F,P_y^F]^T PF=[PxF,PyF]T、 V F = [ V x F , V y F ] T {\rm V}^F=[V_x^F,V_y^F]^T VF=[VxF,VyF]T、 u F = [ u x F , u y F ] T {\rm u}^F=[u_x^F,u_y^F]^T uF=[uxF,uyF]T分别表示跟随器的位置、速度和控制输入向量。
令 P L = [ P x F , P y F ] T {\rm P}^L=[P_x^F,P_y^F]^T PL=[PxF,PyF]T和 V L = [ V x L , V y L ] T {\rm V}^L=[V_x^L,V_y^L]^T VL=[VxL,VyL]T表示领导者的位置和速度矢量。另外,follower 应该在保持一定距离的情况下跟踪 leader 的轨迹, H p = [ H x , H y ] T {\rm H}^p=[H_x,H_y]^T Hp=[Hx,Hy]T表示 p F {\rm p}^F pF相对于 p L {\rm p}^L pL的期望相对偏移向量。
对于 ξ F = [ ( P F ) T , ( V F ) T ] T \xi ^F=[({\rm P}^F)^T,({\rm V}^F)^T]T ξF=[(PF)T,(VF)T]T、 ξ L = [ ( P L ) T , ( V L ) T ] T \xi ^L=[({\rm P}^L)^T,({\rm V}^L)^T]T ξL=[(PL)T,(VL)T]T和 H = [ p T , 0 , 0 ] T {\rm H}=[{\rm p}^T,0,0]^T H=[pT,0,0]T。如果对于任何给定的有界初始状态,则认为跟随者和领导者实现了编队跟踪。
设计以下控制协议:
其中 k 1 , k 2 > 0 k_1,k_2 > 0 k1,k2>0。
定理:在控制协议(13)下,可以实现对跟随者和领导者的编队跟踪。
证明:令 e = ξ F − ξ P − H {\rm e}=\xi ^F-\xi ^P-{\rm H} e=ξF−ξP−H为编队跟踪误差。则系统(11)可改写为
其中 ⊗ \otimes ⊗代表Kronecker积, I 2 I_2 I2是一个二维单位矩阵。
显然矩阵 M 是 Hurwitz,所以系统 (11) 是渐近稳定的,即 e → 0 {\rm e}\rightarrow 0 e→0 ,如 t → 0 t\rightarrow 0 t→0 。然后在控制协议(13)下,可以实现对跟随者和领导者的编队跟踪。
在模仿学习之后,采用深度强化学习来优化模型的行为策略。整个训练算法在算法 1 中进行了概述。
为了验证所提算法的有效性,本文选择了四种典型场景。主要区别在于编队配置和环境中的障碍物数量。特别地,考虑了水平形成和垂直形成。场景 1 和 2 是水平编队,分别有 4 个和 7 个障碍物,而场景 3 和 4 是垂直编队。
在整个实验过程中,使用配备 Intel XEON E3-1505M(高达 3.7GHz)处理器、NVIDIA Quadro M2200 (4GB) GPU 和 16GB RAM 的计算机进行训练和测试。 50000集在四障碍和七障碍场景中大约需要30到40个小时。训练参数如表 1 所示。
如下图所示,给出了成功率、总奖励和达到目标的时间的曲线作为训练的指标。文中发现曲线在所有情况下都收敛到稳健的性能,这意味着模型最终趋于稳定。此外,所有曲线在一开始就迅速恶化。原因之一是模型在开始时几乎随机采取行动。另一个可能的原因是模型学习到的策略与之前模仿学习中学习到的人类经验有质的不同。从曲线中文中可以看出,模型的最终性能比开始时要好得多。这是因为模型最终可以通过长期的探索找到更好的策略。此外,这表明通过 RL 学习的策略比引导方法要好得多。
如下图所示,给出了全局轨迹以更直观地评估性能。文中为每个场景选择一个模拟结果。并且文中发现follower可以在避免碰撞的情况下继续跟随leader,这意味着follower在所有场景中都很好地完成了任务。结果表明,该算法在处理带避碰的编队控制问题上具有良好的效果和泛化性。
此外,本文还对 ORCA 和 ORCA-F 进行了比较模拟。对于每种方法,每个场景案例都要测试 500 次。在比较中选择了以下性能指标。
为了进一步说明通过文中的方法学习到的行为策略的有效性,选择了状态和动作的几个关键帧进行分析。如下图所示,左侧表示环境状态,右侧表示具有可选动作的值估计。
在图 (a)中,领导者正在向目标移动,而跟随者刚刚避开红色障碍物,导致编队维护误差较大。因此,最大的估计值落在图(b)的左上方,其目的是以最快的速度跟上领导者并保持队形。在图 © 中,这一集才刚刚开始,跟随者与左侧的障碍物几乎处于相同的移动方向,这意味着它可能会在某些点发生碰撞。因此,模型选择减速并稍微右转,等待障碍物先通过。通过以上分析,文中可以发现该模型能够预测环境的动态信息,进而采取合理的行动。
本文通过深度强化学习解决了避免碰撞的编队控制问题。特别是,文中设计了一个面向编队的网络架构来预测环境的动态信息。此外,还提供了一个全面的奖励功能来领导训练。仿真结果表明,文中的方法结合了面向避碰方法和面向编队方法的优点。与避碰方法相比,文中的方法在编队维护方面有显着改进。同时,RL学习的避碰策略可以与障碍物保持更远的距离并获得更高的成功率。与面向编队的方法相比,文中的方法可以更好地处理避障问题,尤其是在成功率和危险频率方面优于传统方法。此外,文中的方法显示了实时实现的能力,文中期待将来在地面机器人系统中应用文中的方法。