【论文笔记】MIT-基于DRL的行人环境移动机器人导航

MIT_papers_reading

Num title author time
1 Decentralized Non-communicating Multiagent Collision Avoidance with Deep Reinforcement Learning Yu Fan Chen, Miao Liu, Michael Everett, and Jonathan P. How 2017
2 Socially Aware Motion Planning with Deep Reinforcement Learning Yu Fan Chen, Michael Everett, Miao Liuy, and Jonathan P. How 2017
3 Robot Designed for Socially Acceptable Navigation Michael F. Everett 2017
4 Motion Planning Among Dynamic, Decision-Making Agents with Deep Reinforcement Learning Michael Everettz, Yu Fan Cheny, and Jonathan P. How 2018
5 Safe Reinforcement Learning with Model Uncertainty Estimates Bj¨orn L¨utjens, Michael Everett, Jonathan P. How 2019

1 - Decentralized Non-communicating Multiagent Collision Avoidance with Deep Reinforcement Learning

摘要

  考虑与相邻机器人交互来规划路径很消耗算力。基于新的DRL应用,本文提出分散式的多智能体免碰撞算法。考虑周围智能体的影响,构建一个值函数网络用来估计到目标的所需时间。

一、介绍

  集中式的路径规划方法应对大规模智能体时需要很多算力,无法保证实时性。本文聚焦于通信不能可靠建立(communication cannot be reliably established)的场景。现有工作分2类方法:基于反应(reaction-based)和基于轨迹(trajectory-based)。前者是采用当前几何条件下的单步交互规则,如RVO(reciprocal velocity obstacle)是调整每一个智能体的速度向量来避免碰撞。但基于反应的方法不会考虑相邻机器人未来状态而导致短视,在某些情景下产生振动和不自然的行为。
  相反,基于轨迹的方法通过预测其他机器人的运动来考虑联合体(自身+相邻机器人)的未来状态。

  • 一类基于非协同的子方法是考虑其他智能体的将来动态,然后基于预测路径规划出无碰撞的路径。但在拥挤环境下的生成的预测轨迹会包含大部分不可达、不安全的空间,这样会导致freezing robot problem。
    一种解决方案是:考虑交互,智能体的轨迹会相互影响
  • 另一类基于协同的子方法就是预测其他智能体的意图,规划出环境中所有相邻智能体都可行的路径。
  • 基于路径协同的方法比基于反应的要好,但计算开销大,且需要能获取的准确信息。环境模型和计算的不确定性会导致对其他机器人的预测规划不准确。尤其是好几秒后的轨迹预测。所以基于轨迹的方法需要很高的频率快速更新,这又会导致巨大的计算开销。

问题和方案

  多智能体碰撞规划的主要难点在于预测联合状态(路径)的演化是可行的,但计算开销上不可行。本文方案:使用RL,把开销巨大的在线的计算降解为离线的学习过程(to offload the expensive online computation to an offline training procedure)。具体来说,通过学习一个“隐式编码协同行为”的值函数,得到一种计算高效(实时实现)的交互法则。

本文主要贡献:

  1. 基于新DRL方法的双智能体碰撞规避
  2. 可推广到多智能体的原理性方法(a principled way for generalizing to more (n > 2) agents)
  3. 一种新的表征运动学约束的扩展公式(an extended formulation to capture kinematic constraints)
  4. 仿真结果对比显示,新方法在质量上与现有的基于反应方法相比有很大提高。

二、问题描述

连续决策过程

  智能体在 t t t时刻的状态和动作分别表示为 s t \mathbf{s_t} st, a t \mathbf{a_t} at

s t = [ s t o , s t h ] \mathbf{s_t} = [\mathbf{s_t^{o}}, \mathbf{s_t^{h}}] st=[sto,sth]

  • s t o \mathbf{s_t^{o}} sto表示被其他机器人能观测的信息, s o = [ p x , p y , v x , v y , r ] ∈ R 5 \mathbf{s^{o}}=[p_x, p_y, v_x, v_y, r] \in \mathbb{R^{5}} so=[px,py,vx,vy,r]R5
  • s t h \mathbf{s_t^{h}} sth表示仅智能体自己知道的信息, s h = [ p g x , p g y , v p r e f , θ ] ∈ R 4 \mathbf{s^{h}}=[p_{gx}, p_{gy}, v_{pref}, \theta] \in \mathbb{R^{4}} sh=[pgx,pgy,vpref,θ]R4

a = v \mathbf{a} = \mathbf{v} a=v

  • v \mathbf{v} v是2D中的速度向量
    下面仅考虑双智能体的碰撞规避问题,智能体和另一个智能体的状态分别表示为 s \mathbf{s} s s ~ \mathbf{\widetilde{s}} s 。策略为 π : ( s 0 : t , s ~ 0 : t o ) ↦ a t \pi:(\mathbf{s_{0:t}}, \mathbf{\widetilde{s}_{0:t}^{o}}) \mapsto \mathbf{a_t} π:(s0:t,s 0:to)at

arg ⁡ min ⁡ π ( s , s o ~ ) E [ t g ∣ s 0 : t , s ~ , π , π ~ ] \arg\min_{\pi(\mathbf{s}, \mathbf{\tilde{s^{o}}})} \mathbb{E}[t_g|\mathbf{s_{0:t}}, \mathbf{\tilde{s}},\pi,\tilde{\pi}] argπ(s,so~)minE[tgs0:t,s~,π,π~]

s . t . ∣ ∣ P t − P ~ t ∣ ∣ 2 ≥ r + r ~ s.t. ||\mathbf{P}_t - \mathbf{\widetilde{P}}_t||_2 \geq r+\widetilde{r} s.t.PtP t2r+r

P t g = P g \mathbf{P}_{t_g} = \mathbf{P}{_g} Ptg=Pg

P t = P t − 1 + △ t ⋅ π ( s 0 : t , s ~ 0 : t o ) \mathbf{P}_t = \mathbf{P}_{t-1}+\triangle t \cdot\pi(\mathbf{s_{0:t}}, \mathbf{\widetilde{s}_{0:t}^{o}}) Pt=Pt1+tπ(s0:t,s 0:to)

P ~ t = P ~ t − 1 + △ t ⋅ π ~ ( s 0 : t , s ~ 0 : t o ) \mathbf{\widetilde{P}}_{t} = \mathbf{\widetilde{P}}_{t-1} + \triangle t \cdot\widetilde{\pi}(\mathbf{s_{0:t}}, \mathbf{\widetilde{s}_{0:t}^{o}}) P t=P t1+tπ (s0:t,s 0:to)

  常见假设是双方策略相同, π = π ~ \pi = \widetilde{\pi} π=π 。主要困难在于如何处理对方的未知信息 s h \mathbf{s}^{h} sh

基于反应

  基于反应的方法通常假设马尔科夫性,即: π ( s 0 : t , s ~ 0 : t o ) = π ( s t , s ~ t o ) \pi(\mathbf{s_{0:t}}, \mathbf{\widetilde{s}_{0:t}^{o}}) = \pi(\mathbf{s_t}, \mathbf{\widetilde{s}_{t}^{o}}) π(s0:t,s 0:to)=π(st,s to)

  考虑免碰撞约束时只考虑一个步长的代价。虽然依靠高频计算实现对对方运动做出实时反应,但是不能预测对方的潜在意图。这种简化可以减小计算开销,但是短视容易生成不自然的轨迹。

基于轨迹

  1. 从观测到的轨迹获得智能体的内在状态 s ~ ^ t h = f ( s ~ 0 : t o ) \hat{\tilde{\mathbf{s}}}_{t}^{h}=f(\tilde{\mathbf{s}}^{o}_{0:t}) s~^th=f(s~0:to).

  2. 使用集中式的路径规划算法 π ( s 0 : t , s ~ 0 : t o ) = π c e n t r a l ( s t , s ~ t o , s ~ t h ) \pi(\mathbf{s_{0:t}}, \mathbf{\widetilde{s}_{0:t}^{o}}) = \pi_{central}(\mathbf{s}_t, \mathbf{\widetilde{s}_t^o}, \mathbf{\widetilde{s}_t^h}) π(s0:t,s 0:to)=πcentral(st,s to,s th)

    通过规划或预测复杂路径可以避免短视,但计算开销很大。

本文方法

  1. 使用RL通过预计算值函数 V ( s , s ~ o ) V(\mathbf{s}, \mathbf{\tilde{s}^{o}}) V(s,s~o)估计到达目标的预计时间
  2. 将集中式的在线计算降解成分布式的离线计算过程
  3. 训练好的值函数保证单步前视操作的使用(The learned value function enables the use of a computationally efficient one-step lookahead operation)

强化学习

  • 状态空间: 双智能体的联合状态 s j n = [ s , s ~ o ] ∈ R 14 \mathbf{s}^{jn}=[\mathbf{s}, \mathbf{\tilde{s}}^{o}] \in \mathbb{R}^{14} sjn=[s,s~o]R14
  • 动作空间: 可行的速度向量 a ( s ) = v \mathbf{a}(\mathbf{s})=\mathbf{v} a(s)=v for ∥ v ∥ 2 < v p r e f \Vert\mathbf{v}\Vert_ 2 < v _{pref} v2<vpref
  • 报酬函数:

R ( a ) = { − 0.25 i f d m i n < 0 = 0.1 − d m i n / 2 e l i f d m i n < 0.2 1 e l i f P = P g 0 o . w . R(a)=\left\{ \begin{array}{rcl} -0.25 && {if d_{min} < 0}\\ =0.1-d_{min}/2 && {elif d_{min} < 0.2}\\ 1 && {elif \mathbf{P}=\mathbf{P}_g}\\ 0 && {o.w.} \end{array} \right. R(a)=0.25=0.1dmin/210ifdmin<0elifdmin<0.2elifP=Pgo.w.

  • 状态转移模型:未知,依赖智能体学好的策略
  • 值函数
    V ∗ ( s 0 j n ) = ∑ t = 0 T γ t ⋅ v p r e f R ( s t j n , π ∗ ( s t j n ) ) V^{*}(\mathbf{s}_{0}^{jn})=\sum_{t=0}^{T}\gamma^{t\cdot{v_{pref}}}R(\mathbf{s}^{jn}_t, \pi^{*}(\mathbf{s}^{jn}_t)) V(s0jn)=t=0TγtvprefR(stjn,π(stjn))
  • 最佳策略
    π ∗ ( s 0 j n ) = arg ⁡ max ⁡ a R ( s 0 , a ) + γ △ t ⋅ v p r e f ∫ s 1 j n P ( s 0 j n , s 1 j n ∣ a ) V ∗ ( s 1 j n ) d s 1 j n \pi^{*}(\mathbf{s}_{0}^{jn})=\arg \max_{a} R(\mathbf{s}_0,\mathbf{a})+\gamma^{\triangle t\cdot{v_{pref}}} \int_{\mathbf{s}_{1}^{jn}}P(\mathbf{s}_{0}^{jn}, \mathbf{s}_{1}^{jn}|\mathbf{a}) V^{*}(\mathbf{s}_{1}^{jn})d\mathbf{s}_{1}^{jn} π(s0jn)=argamaxR(s0,a)+γtvprefs1jnP(s0jn,s1jna)V(s1jn)ds1jn
    本文的工作选择优化 V ( s j n , a ) V(\mathbf{s}^{jn}, \mathbf{a}) V(sjn,a)而不是选择以前更普遍的 Q ( s j n , a ) Q(\mathbf{s}^{jn}, \mathbf{a}) Q(sjn,a)。因为以前的工作采用离散有限的动作空间,而本文采用连续的动作空间,且最佳速度向量取决于智能体的状态(最佳速度)。

三、方法

  联合状态向量 s j n \mathbf{s}^{jn} sjn是连续14维空间,且大量训练时刻可以在仿真中获得。本文应用一个基于ReLU的全连接深度神经网络(DNN)参数化值函数。值函数网络 V ( ⋅ ; w ) V(\cdot;\mathbf{w}) V(;w) w \mathbf{w} w-神经网络中权重

参数化

  1. 为避免歧义,以当前机器人为原点,指向目标点的方向为X轴。
    s ′ = r o t a t e ( s j n ) s^{'} = \mathbf{rotate(\mathbf{s}^{jn})} s=rotate(sjn)

= [ d g , v p r e f , v x ′ , v y ′ , r , θ ′ , v ~ x ′ , v ~ y ′ , p ~ x ′ , p ~ y ′ , r ~ , r + r ~ , c o s ( θ ′ ) , s i n ( θ ′ ) , d a ] =[d_g, v_{pref}, v^{'}_x, v^{'}_y, r, \theta^{'}, \tilde{v}^{'}_x, \tilde{v}^{'}_y, \tilde{p}^{'}_x, \tilde{p}^{'}_y, \tilde{r}, r+\tilde{r}, cos(\theta^{'}), sin(\theta^{'}), d_a] =[dg,vpref,vx,vy,r,θ,v~x,v~y,p~x,p~y,r~,r+r~,cos(θ),sin(θ),da]

  • 智能体到目标的距离(欧式距离) d g = ∥ p g − p ∥ 2 d_g = \Vert\mathbf{p}_g - \mathbf{p}\Vert_2 dg=pgp2
  • 和对方的距离(欧式距离) d a = ∥ p − p ~ ∥ 2 d_a = \Vert\mathbf{p} - \tilde{\mathbf{p}}\Vert_2 da=pp~2
  • 这种参数化的方法只在DNN中使用

用值网络生成路径

【论文笔记】MIT-基于DRL的行人环境移动机器人导航_第1张图片

训练网络

【论文笔记】MIT-基于DRL的行人环境移动机器人导航_第2张图片

  1. 使用ORCA(optimal reciprocal collision avoidance)生成500条轨迹集,包括大约20000对状态-值。
  2. 一条轨迹训练生成一个状态-值 { ( s j n , y ) k } k = 1 N \{(\mathbf{s}^{jn}, y)_k\}_{k=1}^{N} {(sjn,y)k}k=1N
    集合, y = γ t g ⋅ v p r e f y=\gamma^{t_g\cdot v_{pref}} y=γtgvpref t g t_g tg是到达目标用时
  3. 值网络用反向传播最小化二次回归误差(quadratic regression error) arg ⁡ min ⁡ w ∑ k = 1 N ( y k − V ( s k j n ; w ) ) 2 \arg \underset{\mathbf{w}}{\min}\sum_{k=1}^{N}(y_k-V(\mathbf{s}^{jn}_{k};\mathbf{w}))^2 argwmink=1N(ykV(skjn;w))2
  • 初试化的注意事项:
    • 训练的轨迹未必最优
    • 不是简单模拟ORCA,而是学习值函数,可用算法1生成新轨迹。
    • 训练好的值函数可能是次优
  • 训练第二步通过 ϵ \epsilon ϵ-greedy策略
    • 值网络最终用样本子集中的随机梯度下降(反向传播)来更新
  • 协同也是重要的考察指标。当智能体额外的时间消耗小于或大于指标时会有惩罚,来限制激进的行为。

合并运动约束

  1. 实际机器人需要考虑运动约束,已有的工作中这种约束很难编码或提高计算要求。但在RL框架内可直接引入:
    a ( s ) = [ v s , ϕ ]    f o r    v s < v p r e f ,   ∣ ϕ − θ ∣ < π / 6 ,   ∣ θ t + 1 − θ t ∣ < △ t ⋅ v p r e f \mathbf{a}(s)=[v_s, \phi] \ \ for\ \ v_s<v_{pref},\ \left|\phi-\theta\right|<\pi/6, \ \left|\theta_{t+1}-\theta_t\right|<\triangle t \cdot v_{pref} a(s)=[vs,ϕ]  for  vs<vpref, ϕθ<π/6, θt+1θt<tvpref
  2. 机器人可以选择在指向目标时全速前进,也可以选择先旋转直到指向目标点。CADRL学会了如何平衡这2种选择并最小化移动时间。

多智能体碰撞规避

结果

计算复杂性

  1. 3个隐藏层(150,100,100)。
  2. CPU-i7-5820K

穿梭场景表现对比

2 - Socially Aware Motion Planning with Deep Reinforcement Learning

摘要

  
机器人在人群环境中安全、高效的导航,很重要的一点是建模人类行为和导航规则。现有工作是使用特征匹配技术来描述和模仿人类路径,但无法处理复杂信息。

介绍

  1. 行人遵循潜在的社会规范,意图难以识别。
    • 常见方法将行人视为动态障碍物,使用特定的反应规则来避免碰撞。但不能理解人类行为,有时会产生不安全、不自然的行为。尤其移速与行人相近时。
    • 改进做法:推理附件行人的意图,并生成预测轨迹,再用传统路径规划算法生成无碰撞的路径。但将预测和规划分离的做法会导致freezing robot problem。
    • 考虑协同(account for cooperation),建模并预测附件行人对机器人运动的影响。
  2. 基于协同、遵从社会的导航工作大致分为2类:
    • 基于模型(model-based):加入参数化的社会性交互影响,扩展多智能体免碰撞算法。这类方法通常基于直观的几何关系设计成计算高效的,但不清楚人是否遵循精确的几何规则,因人而异。且会导致振荡路径。
    • 基于学习(learning-based):
      • 从人的演示中用逆向强化学习(IRL)学习代价函数和概率分布
      • 可以学得更人性化的路径,但计算消耗大。因为计算\匹配轨迹特征通常需要预测周围行人的联合路径,其中就包括观测不到的信息。
      • 人类行为的随机性,导致在行人特征统计中不同人的路径特征差异很大。甚至同一场景下也是如此。
    • 现有工作关注建模和重现社会约束的细节机制。因为人类行为的随机性很难评估。但人类天生具有在遵循社会约束下省时的导航能力。

背景

社会规范特征

  1. 相比于直接量化人类行为,复杂的规范运动模式可以是简单局部交互的结果
  2. 社会规范是基于省时、相互碰撞规避机制下的一类紧急行为
  3. 相互性可以显式的编码其他智能体的行为,导航规则不唯一,左手-右手法则均可。
  4. CADRL不可控-依赖于值网络的初始值和随机生成的测试样本集

方法

  1. 基于DRL的具有社会意识的多智能体碰撞规避方法
  2. 给不符合规范的行为更多惩罚,使用考虑了社会规范的奖励函数

加入社会规范

  1. RL训练是用于寻找最优的值函数,输入是智能体和周围环境的联合状态 s j n = [ s , s ~ o ] s^{jn}=[s,\tilde{s}^{o}] sjn=[s,s~o],输出是可表征到达目标点预期时间的标量值。
  2. 每个智能体的状态参数化为:
    s = [ d g , v p r e f , v x , v y , ψ , r ] s=[d_g, v_{pref}, v_x, v_y, \psi, r] s=[dg,vpref,vx,vy,ψ,r]
    s ~ o = [ p ~ x , p ~ y , v ~ x , v ~ y , r ~ , d ~ a , ϕ ~ , b ~ o n ] \tilde{s}^{o}=[\tilde{p}_x, \tilde{p}_y, \tilde{v}_x, \tilde{v}_y, \tilde{r}, \tilde{d}_a, \tilde{\phi}, \tilde{b}_{on}] s~o=[p~x,p~y,v~x,v~y,r~,d~a,ϕ~,b~on]
    其中, d g = ∥ p g − p ∥ 2 d_g=\|p_g-p\|_2 dg=pgp2

TODO…

4. Motion Planning Among Dynamic, Decision-Making Agents with Deep Reinforcement Learning

摘要

  • 其他工作问题:预设其他智能体的行为,当数量增大时,实际偏差就会很大。
  • 本文在不预设其他动态智能体的行为规范下,通过学习得到碰撞规避的算法。
  • 使用LSTM来应对任意数目的智能体,而不是预设固定观测输入大小。

介绍

2个主要挑战:

  1. 怎样知道或假设其他智能体的状态、策略、意图等?本文不显式的预测其他智能体的行为,而是用RL建模智能体之间复杂交互和协同。在以往算法上扩展成不预设其他智能体遵循某种特定的行为模型。
  2. 如何应对环境中其他智能体数目的变化?典型前馈神经网络要求固定维度的输出, 本文在网络输入端借鉴NLP中的LSTM处理大小变化的输出。这样算法就可基于自身周围任意数目的智能体来做决策。

主要贡献:

  1. 不提前预设其他决策智能体的行为
  2. 可将任意数目智能体的观测作为算法输入的一种策略
  3. 不使用3D雷达(3D雷达可以基于点云聚类算法分割出物体类别),本文采用视觉+单线雷达。

背景

其他工作:

  1. 刘明团队、潘佳团队:直接使用传感器的原始数据作为输入,端到端的训练。
    • 优点:可以将动态、静态障碍物纳入统一架构中,不区分动态和静态。
    • 缺点:从多传感器中抽离出智能体是有用的,因为相比于静态障碍物,智能体有潜在的移动可能性。
      抽离出世界中的智能体,对机器人的运动规划有很重要的启发。

你可能感兴趣的:(paper_reading,强化学习,机器人学,移动导航)