【论文阅读】Socially aware motion planning with deep reinforcement learning-annotated
前言:
摘要部分:
For robotic vehicles to navigate safely and efficiently in pedestrian-rich environments, it is important to model subtle human behaviors and navigation rules (e.g., passing on the right). However, while instinctive to humans, socially compliant navigation is still difficult to quantify due to the stochasticity in people’s behaviors. Existing works are mostly focused on using feature-matching techniques to describe and imitate human paths, but often do not generalize well since the feature values can vary from person to person, and even run to run. This work notes that while it is challenging to directly specify the details of what to do (precise mechanisms of human navigation), it is straightforward to specify what not to do (violations of social norms). Specifically, using deep reinforcement learning, this work develops a time-efficient navigation policy that respects common social norms. The proposed method is shown to enable fully autonomous navigation of a robotic vehicle moving at human walking speed in an environment with many pedestrians.
重点:点出人员嘈杂环境中的导航问题,现有的方法是:using feature-matching techniques去描述和模仿人的行驶路径,缺点很明显了:不可预知性较高;所以本文的方法是改变思路 从what to do到what not to do 界线就是violation of social norm,Using DRL 深度强化学习 开发了:time-effective navigation policy
I. Introduction 介绍
- [3]-[6]参考文献employs specific reactive rules for avoiding collision
缺点:并没有考虑人的实际行为方式 - [7][8]随后更成熟的运动模型被提出,也就是考虑并预测人的行为;不过在这个方式下,将导航分为了两步:首先是预测再规划路径
缺点:分开的操作为导致freezing robot 也就是找不到路,低效率的行驶 - 综上需要一种可以model the impact of the robot's motion on the nearby pedestrians
而现在对于cooperative socially compliant navigation可以被分为两个类别:model-based和learning-based
- 基于模型的 model-based:一般都是多参数可调的多机器人避障算法,为了区分human-human和human-robot交互的区别 通过在势场算法中添加用于控制type of intersection的参数,对the extended social forces model 进行了强化
显而易见的优势是:效率高,因为利用的是潜在的几何关系
但是缺点也因此而来:很难确定whether humans do follow such precise geometric rules,而且需要调整的参数也比较多,对于不同的行人就有不同的参数 - 基于学习的 learning-based:学习的方法目标是通过特征点匹配(比如行人的最小距离)去模仿人的行为 得出一种policy,使用IRL(反向RL)【这个...似乎没听过后面得查一下】然后从human demonstration里学习cost function 同时也有与周围行人joint trajectory的概率分布
对于于基于模型的优势:produce the paths that more closely resemble human behaviours
缺点:high computational cost,因为他需要计算并匹配路径特征 而这通常需要周围所有行人的路径信息和一些不可知的information(比如行人的目标);还有一点就是人的行为本来就具有随机性,不同的人不同的场景对于这个随机性都是有影响的
总结来说,现有的研究重点都在建模和复现the detailed mechanisms of social compliance,而对比下,人可以本能判断这个行为是否可取
首先我们需要明确 human navigation是time-effective通常遵循一些东西 例如靠右行驶,所以在这篇文章里我们将这个性质运用于强化学习的框架下 学习人是怎样去避障的方式
Contribution
- 引入socially aware collision avoidance with DRL 用来为强化学习的框架 explaining/inducing socially aware behaviours
- 开发系统神经网络结构(a symmetrical neural network structure) 适用于多机器人场景
- 演示了在人流量大的情况下 和人速度一样的车子运行情况 视频演示
II. Background 背景
A. Collision Avoidance with DRL
多机器人避障问题可以化为 a sequential decision making problem in a RL framework[14]【有空可以看一看】简单来讲就是:
- \(s_t\) 表示时间t下的状态
- \(u_t = v_t\) 表示时间t下的动作 在这里我们用\(v_t\)速度来表示动作
- \(\tilde{s}_t\) a nearby agent 状态
- \(\mathbf{s}_t=[s^o_t,s^h_t]\) 为了表达不确定性 状态分为observable和unobservable
- \(\mathbf{s}^o = [p_x,p_y,v_x,v_y,r] \in \reals^5\) 可观测状态有位置、速度、半径
- \(\mathbf{s}^h = [p_{gx},p_{gy},v_{pref},\psi]\) 不可观测状态有目标点、preferred speed、朝向
我们的目标是develop a policy \(\pi:(s_t,\tilde{s}^o_t)\mapsto u_t\) 从而最小化到达目标时间
\]
\qquad \begin{array}{ll}
\text { s.t. } & \left\|\mathbf{p}_{t}-\tilde{\mathbf{p}}_{t}\right\|_{2} \geq r+\tilde{r} \quad \forall t \\
& \mathbf{p}_{t_{g}}=\mathbf{p}_{g} \\
& \mathbf{p}_{t}=\mathbf{p}_{t-1}+\Delta t \cdot \pi\left(\mathbf{s}_{t-1}, \tilde{\mathbf{s}}_{t-1}^{o}\right) \\
& \tilde{\mathbf{p}}_{t}=\tilde{\mathbf{p}}_{t-1}+\Delta t \cdot \pi\left(\tilde{\mathbf{s}}_{t-1}, \mathbf{s}_{t-1}^{o}\right)
\end{array}
\end{aligned}\]
- \(\left\|\mathbf{p}_{t}-\tilde{\mathbf{p}}_{t}\right\|_{2} \geq r+\tilde{r}\) 是避障的约束
- \(\mathbf{p}_{t_{g}}=\mathbf{p}_{g}\) 到达目标点约束
- 最后两个公式是机器人的动力学公式
然后我们再将其变得更像RL的框架,首先是
- joint configuration \(\mathbf{s}^{jn} = [\mathbf{s},\tilde\mathbf{s}^o]\) 把已知nearby agent状态进行合并
- reward function \(R_{col}(\mathbf{s}^{jn},\mathbf{u})\) 当到达goal的时候给正值,撞到别人的时候给惩罚
- state transition model \(P(\mathbf{s}^{jh}_t.\mathbf{s}^{jh}_t|\mathbf{u}_t)\) 虽然这个是不知道的 也就是由其他 agents' motion due to its hidden intents \((\tilde{\mathbf{s} }^h)\)
最后就是两个强化学习的公式[不知道的建议可以进入强化学习书本进行基础学习]
\]
\gamma^{\Delta t \cdot v_{p r e f}} \int_{\mathbf{s}_{t+1}^{j n}} P\left(\mathbf{s}_{t}^{j n}, \mathbf{s}_{t+1}^{j n} \mid \mathbf{u}\right) V^{*}\left(\mathbf{s}_{t+1}^{j n}\right) d \mathbf{s}_{t+1}^{j n}
\]
比较棘手的是 \(\mathbf{s}^{jn}_t\)是连续、高维度向量,不太容易将其离散和在状态空间里枚举【对对对对!】 最近的工作一般都是利用 deep neural networks去表示高维度下的value function,[22][23]也直接将DRL运用于运动规划 但是他们专注于单个机器人在未知静止环境下的导航,而且一般计算的输入是传感器的数据(比如相机来的照片)
而我们的工作extend the collision avoidance with deep reinforcement learning framework (CADRL) 以在在多机器人系统中,识别与引入socially aware behaviours
B. Characterization of Social Norms
这是常见的social norms rule:

靠右行驶 passing,从左边超越 overtaking,
在对于social norms的定义中 直观上确实很难精确的确定细节转角等 when to turn and how much to turn with passing another one.
对比那些想量化人们行为的方法 本文则是将这些复杂 normative motion转为简单交互的结果。如果是两个采取同样避障策略的机器人在长廊相遇会保持同一条车道行驶,因此我们可以将social norms看成一种time-efficient, 互惠互利的避障原理
human navigation tends to be cooperative and time-efficient
所以CADRL就有这两个性质:
- min-time reward function
- reciprocity assumption \(\tilde\pi = \pi\)
图3展示了 CADRL整个协作的过程,因为 \(\mathbf{s}\) 是已知的,也就是一系列相关的 位置、速度、尺寸和目标点,所以一般是不会打破这个协作的默契。但是首先是agent都是CADRL下生成的,其次这个协作的行为是CADRL不能控制的 他是由value network的初始化和随机训练案例决定的 下一个部分我们会解决这个问题 去引导生成的行为是遵循人们的行为
III. Approach 方法
这一部分就是用DRL展示具有社会认知的multi-agents,首先要描述shaping normative behaviours在两个agents的环境中
A. Inducing Social Norms
回顾上面的强化学习optimal value function中,我们是将agent本身和其邻近的状态一起进行计算学习 \(\mathbf{s}^{jn} = [\mathbf{s},\tilde{\mathbf{s}}^o]\) scalar value that encodes the expected time to goal. 为了减少冗余 我们就使用local coordinate frame局部坐标系下的x轴指向目标,那么每一个agent的状态就可以参数化为:
其中
- \(d_g = \left\|\mathbf{p}_g-\mathbf{p}\right\|_2\) 是agent到目标之间的距离
- \(\tilde{d}_a = \left\|\mathbf{p}-\tilde{\mathbf{p}}\right\|_2\) 是与其他agent之间的距离
- \(\phi = tan^{-1}(\tilde{v}_y/\tilde{v}_x)\) 是agent的朝向问题
- \(\tilde{b}_{on}\) 是二进制flag表示这个agent是real or virtual
这一部分表明了social norms仅是解决这个问题的一种
【论文阅读】Socially aware motion planning with deep reinforcement learning-annotated的更多相关文章
- 论文阅读之: Hierarchical Object Detection with Deep Reinforcement Learning
Hierarchical Object Detection with Deep Reinforcement Learning NIPS 2016 WorkShop Paper : https://a ...
- 论文笔记之:Asynchronous Methods for Deep Reinforcement Learning
Asynchronous Methods for Deep Reinforcement Learning ICML 2016 深度强化学习最近被人发现貌似不太稳定,有人提出很多改善的方法,这些方法有很 ...
- 论文笔记之:Playing Atari with Deep Reinforcement Learning
Playing Atari with Deep Reinforcement Learning <Computer Science>, 2013 Abstract: 本文提出了一种深度学习方 ...
- 论文笔记之:Human-level control through deep reinforcement learning
Human-level control through deep reinforcement learning Nature 2015 Google DeepMind Abstract RL 理论 在 ...
- Deep Reinforcement Learning for Dialogue Generation 论文阅读
本文来自李纪为博士的论文 Deep Reinforcement Learning for Dialogue Generation. 1,概述 当前在闲聊机器人中的主要技术框架都是seq2seq模型.但 ...
- 论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning
论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning 2017-06-06 21: ...
- Deep Reinforcement Learning for Visual Object Tracking in Videos 论文笔记
Deep Reinforcement Learning for Visual Object Tracking in Videos 论文笔记 arXiv 摘要:本文提出了一种 DRL 算法进行单目标跟踪 ...
- 论文笔记之:Dueling Network Architectures for Deep Reinforcement Learning
Dueling Network Architectures for Deep Reinforcement Learning ICML 2016 Best Paper 摘要:本文的贡献点主要是在 DQN ...
- 论文笔记之:Deep Reinforcement Learning with Double Q-learning
Deep Reinforcement Learning with Double Q-learning Google DeepMind Abstract 主流的 Q-learning 算法过高的估计在特 ...
随机推荐
- C++中头文件和实现文件的关系
头文件相当于是声明的集合,包括头文件的语句#Include实质为程序代码的宏替换. 编译阶段将函数和变量登记在符号表,链接时将各种函数的入口地址在其中查找到来调用,解引用.
- 一文带你了解.Net互斥锁
本文主要讲解.Net基于Threading.Mutex实现互斥锁 基础互斥锁实现 基础概念:和自旋锁一样,操作系统提供的互斥锁内部有一个数值表示锁是否已经被获取,不同的是当获取锁失败的时候,它不会反复 ...
- 《Docker基础与实战,看这一篇就够了》
什么是Docker? Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术 ...
- 大家看看大佬对Maven仓库的讲解,有何高明之处?
Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库.(仓库就是存放依赖和插件的地方). 分类 maven的仓库只有两大类:1.本地仓库 2.远程仓库,在远程仓库中又分 ...
- SCP,SSH应用
- 大白话spring依赖注入
在前边的文章中分享了spring如何实现属性的注入,有注解和配置文件两种方式,通过这两种方式可以实现spring中属性的注入,具体配置可查看<spring入门(一)[依赖注入]>,那么sp ...
- SAI常用快捷键大全
一.默认常用工具快捷键如下: N 铅笔 B 喷枪 V 笔 X 前/背景色切换 - 前景色与透明色切换 C 水彩笔 A 选区笔 S 选区擦 D 清空当前图层 F 向下转写 (当前图层内容合并至下层,该层 ...
- drf-序列化器serializer
目录 一.序列化器-serializer 二.序列化器的使用 简单使用 高级使用 source **SerializerMethodField( ) ** 通用参数 三.反序列化数据校验 字段属性 局 ...
- 分布式AKF拆分原则
1. 前言 当我们需要分布式系统提供更强的性能时,该怎样扩展系统呢?什么时候该加机器?什么时候该重构代码?扩容时,究竟该选择哈希算法还是最小连接数算法,才能有效提升性能? 在面对 Scalabilit ...
- 1.6Java语言规范、API、JDK、和IDE
要点提示:Java语言规范定义了Java的语法,Java库则在JavaAPI中定义.JDK是用于开发和运行Java程序的软件.IDE是快速开发程序的集成开发环境. 计算机语言有严格的使用规范.