Crowd-Robot Interaction 论文阅读
论文信息
题目:Crowd-Robot Interaction:Crowd-aware Robot Navigation with Attention-based Deep Reinforcement Learning
作者:Changan Chen, Y uejiang Liu
代码地址:https://github.com/vita-epfl/CrowdNav
来源:arXiv
时间:2019
Abstract
对于在拥挤空间中运行的机器人来说,以有效且符合社会规范的方式进行移动是一项重要但具有挑战性的任务。最近的工作显示了深度强化学习技术在学习社会合作政策方面的力量。然而,随着人群的增长,他们的合作能力会下降,因为他们通常将问题放松为单向人机交互问题。在这项工作中,我们希望超越一阶人机交互,并更明确地模拟人群与机器人交互(CRI)。
我们建议
(i)重新思考与自注意力机制的成对交互
(ii)在深度强化学习框架中联合建模人与机器人以及人与人的交互。我们的模型捕捉了密集人群中发生的人与人的互动,这间接影响了机器人的预期能力。
Introduction
遵守社交礼仪导航是一项具有挑战性的任务。
由于代理(例如人类)之间的通信并不广泛,因此机器人需要感知和预测人群的演变,这可能涉及复杂的相互作用(例如排斥/吸引)。轨迹预测方面的研究工作提出了几种手工或数据驱动的方法来模拟智能体之间的交互[12]-[15]。然而,将这些预测模型整合到决策过程中仍然具有挑战性。
作为替代方案,强化学习框架已用于训练计算高效的策略,这些策略隐式编码代理之间的交互和合作。尽管最近的工作[19]-[22]取得了重大进展,但现有模型仍然受到两个方面的限制:
i)人群的集体影响通常通过成对相互作用的简化聚合来建模,例如最大最小运算符[19]或LSTM[22],它们可能无法完全表示所有交互;
ii)大多数方法侧重于人类与机器人的单向交互,但忽略了可能间接影响机器人的人群内的交互。这些限制降低了复杂和拥挤场景中协作规划的性能

Background
Related Work
早期的工作主要利用精心设计的交互模型来增强机器人导航的社交意识。
一项开创性的工作是社会力[23]-[25],它已成功应用于模拟和现实环境中的自主机器人[26]-[28]。
另一种名为交互高斯过程(IGP)的方法将每个智能体的轨迹建模为单独的高斯过程,并提出一个交互势项来耦合单独的 GP 进行交互 [18]、[29]、[30]。在多智能体设置中,相同的策略应用于所有智能体,RVO [5] 和 ORCA [6] 等反应方法在相互假设下寻求联合避障速度。这些模型面临的主要挑战是它们严重依赖手工制作的功能,并且不能很好地泛化到各种人群合作的场景。
另一项工作使用模仿学习方法从期望行为的示范中学习政策。 [31]-[33] 中通过直接模仿专家演示来开发映射各种输入(例如深度图像、激光雷达测量和本地地图)以控制操作的导航策略。除了行为克隆之外,[10]、[11]、[34] 中还使用了逆强化学习,使用最大熵方法从人类数据中学习潜在的合作特征。这些工作中的学习成果高度依赖于示范的规模和质量,这不仅消耗资源,而且限制了人类努力学习的政策的质量。在我们的工作中,我们采用模仿学习的方法来热启动我们的模型训练。
强化学习(RL)方法在过去几年中得到了深入研究,并应用于各个领域,因为它开始在视频游戏中取得优异的性能[35]。在机器人导航领域,最近的工作已经使用强化学习从原始观察中学习静态和动态环境中的感觉运动策略[21]、[36],并利用代理级状态信息学习社会合作策略[19]、[20] ,[22]。为了处理不同数量的邻居,[19]中报告的方法通过最大最小操作从两个智能体适应多智能体情况,该操作针对人群的最坏情况采取最佳行动。后来的扩展使用 LSTM 模型按照与机器人的距离相反的顺序顺序处理每个邻居的状态 [22]。与这些简化相反,我们提出了一种新颖的神经网络模型来明确捕捉人群的集体影响。
Problem Formation
我们考虑一个导航任务,其中机器人穿过 n 个人的人群向目标移动。这可以表述为强化学习框架中的顺序决策问题[19]、[20]、[22]。
对于每个智能体(机器人或人类),位置 p = [ p x , p y ] p = [p_x, p_y] p=[px,py]、速度 v = [ v x , v y ] v = [v_x,v_y] v=[vx,vy] 和半径 r r r 可以被其他智能体观察到。机器人还知道其不可观察的状态,包括目标位置 p g p_g pg 和首选速度 v p r e f v_{pref} vpref 。我们假设机器人的速度 v t v_t vt 可以在动作命令 a t a_t at 之后立即达到,即 v t = a t v_t = a_t vt=at。令 s t s_t st 表示机器人的状态, w t = [ w t 1 , w t 2 , . . . , w t n ] w_t = [w^1_t ,w^2_t , . .. ,w^n_t] wt=[wt1,wt2,...,wtn]表示人类在时间 t t t的状态。机器人导航的关节状态定义为 s t j n = [ s t , w t ] s^{jn}_t = [s_t,w_t] stjn=[st,wt]。

我们遵循[19]、[20]中定义的奖励函数的公式,该函数奖励任务成就,同时惩罚碰撞或不舒服的距离

Value Network Training
价值网络通过时差法、标准经验回放和固定目标网络技术进行训练[19],[35]。如算法 1 中所述,模型首先使用一组演示者经验(第 1-3 行)通过模仿学习进行初始化,然后根据交互经验进行细化(第 4-14 行)。与之前的工作[19]、[20]的一个区别是,第7行中的下一个状态S jn t+1是通过查询环境的真实值而不是用线性运动模型近似来获得的,从而减轻了系统动力学问题训练。在部署期间,转移概率可以通过轨迹预测模型[12]、[13]、[15]来近似。

为了有效地解决问题(1),价值网络模型需要准确逼近隐式编码智能体之间社会合作的最优价值函数V*。该轨道之前的工作并未完全模拟人群互动,这降低了人口稠密场景的价值估计的准确性。在以下部分中,我们将提出一种新颖的人群机器人交互模型,该模型可以有效地学习在拥挤的空间中导航。
Approach
当人类行走在人口稠密的场景中时,他们会通过预测附近邻居的行为来与他人合作,特别是那些可能参与未来某些互动的邻居。这促使我们设计一个模型,可以计算相对重要性并编码邻近代理的集体影响,以实现社交合规导航。受社交池[13]、[15]和注意力模型[14]、[44]-[48]的启发,我们引入了一个由三个模块组成的社交注意力网络:
• Interaction module:显式地建模人机交互,并通过粗粒度局部映射对人机交互进行编码。
• Pooling module:通过自注意力机制将交互聚合成固定长度的嵌入向量。
• Planning module:估计机器人与人群的关节状态对于社交导航的价值。

Parameterization
我们遵循[19]、[22]中以机器人为中心的参数化,其中机器人位于原点,x轴指向机器人的目标。机器人和行走人变换后的状态为:

Interaction Module
每个人都会对机器人产生影响,同时也会受到他/她的邻居的影响。对人类之间的所有交互对进行显式建模会导致 O(N2) 复杂性 [14],这对于在密集场景中扩展的策略来说在计算上是不可取的。我们通过引入一个成对交互模块来解决这个问题,该模块显式地模拟人机交互,同时使用局部地图作为人机交互的粗粒度表示。

给定大小为 L 的邻域,我们构造一个以每个人 i 为中心的 L × L × 3 地图张量 M i M_i Mi 来编码邻居的存在和速度,在图 3 中称为局部地图:

我们使用多层感知器(MLP)将人类 i 的状态和地图张量 M i M_i Mi 以及机器人的状态一起嵌入到固定长度的向量 e i e_i ei 中:

嵌入向量 e i e_i ei 被馈送到后续的 MLP 以获得机器人和人 i 之间的成对交互特征:


Pooling Module
由于不同场景中周围人群的数量可能会有很大差异,因此我们需要一个能够将任意数量的输入处理为固定大小的输出的模型。
Everett 等人 [22] 提出将所有人类的状态按照与机器人的距离降序依次输入 LSTM [49]。然而,最接近的邻居具有最强影响力的基本假设并不总是正确的。其他一些因素,例如速度和方向,对于正确估计邻居的重要性也至关重要,这反映了该邻居如何潜在地影响机器人的目标获取。利用自注意力机制的最新进展,其中序列中某个项目的注意力是通过查看序列中的其他项目来获得的[44]、[46]、[50],我们提出了一个社交注意力池模块以数据驱动的方式了解每个邻居的相对重要性以及人群的集体影响。
交互嵌入 e i e_i ei 转换为注意力分数 α i α_i αi 如下:

给定每个邻居 i 的成对交互向量 h i h_i hi 和相应的注意力分数 α i α_i αi,人群的最终表示是所有对的加权线性组合:

Planning Module
基于人群 c 的紧凑表示,我们构建了一个规划模块,用于估计合作规划的状态值 v:

Implementation Details
局部地图是一个以每个人为中心的 4 × 4 网格,每个网格的边长为 1m 。函数 ϕ e ( ⋅ ) 、 ψ h ( ⋅ ) 、 ψ α ( ⋅ ) 、 f v ( ⋅ ) \phi_e(·)、ψ_h(·)、ψ_α(·)、f_v(·) ϕe(⋅)、ψh(⋅)、ψα(⋅)、fv(⋅) 的隐藏单元分别为 (150,100)、(100,50)、(100,100)、(150,100,100)。
我们在 PyTorch [51] 中实现了该策略,并使用 Adam [52] 以 100 的批量大小对其进行训练。对于模仿学习,我们使用 ORCA 收集了 3k 集演示,并以学习率 0.01 训练了策略 50 个时期。对于强化学习,学习率为0.001,折扣因子γ为0.9。 ε-贪婪策略的探索率在前 5k 集中从 0.5 线性衰减到 0.1,并在剩余 5k 集中保持 0.1。 RL 训练在 i7-8700 CPU 上花费了大约 10 个小时。
这项工作假设机器人具有完整的运动学,即它可以向任何方向移动。动作空间由 80 个离散动作组成:5 个速度在 (0, vpre f ] 之间呈指数分布,16 个方向在 [0, 2π) 之间均匀分布。
Experiments


相关文章:
Crowd-Robot Interaction 论文阅读
论文信息 题目:Crowd-Robot Interaction:Crowd-aware Robot Navigation with Attention-based Deep Reinforcement Learning 作者:Changan Chen, Y uejiang Liu 代码地址:https://github.com/vita-epfl/CrowdNav 来源:arXiv 时间…...
什么是LIMS系统,LIMS实验室管理系统
LIMS是实验室信息管理系统,全称是Laboratory Information Management System,是将以数据库为核心的信息化技术与实验室管理需求相结合的信息化管理工具。它是由计算机硬件和应用软件组成,能够完成实验室数据和信息的收集、分析、报告和管理&a…...
Python Opencv实践 - 图像属性相关
import numpy as np import cv2 as cv import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR) plt.imshow(img[:,:,::-1])#像素操作 pixel img[320,370] print(pixel)#只获取蓝色通道的值 pixel_blue img[320,370,0]…...
PCB制造中铜厚度的重要性
电子产品中的PCB是现代电子设备中不可或缺的一部分。在PCB制造过程中,铜厚度是一个非常重要的因素。正确的铜厚度可以保证电路板的质量和性能,同时也影响着电子产品的可靠性和稳定性。 一般我们常见的铜厚有17.5um(0.5oz)&#x…...
浅谈高校宿舍水电表远程智能管理的研究与应用
安科瑞 华楠 摘要:本系统的设计是基于485总线技术与TCP/IP网络技术相结合的方式来实现的,充分考虑了目前高校后勤水电表管理控制的实际情况,以传输可靠性高、技术成熟、成本低的485总线技术为基础,并与应用广泛的TCP/IP网络相结合…...
无货源跨境电商购物平台快速搭建(微商城、小程序、APP、网站)
无货源跨境电商购物平台的快速搭建可以通过以下步骤完成,并且可以同时开发微商城、小程序、APP和网站以满足不同用户的需求。 第一步:需求分析 在搭建之前,需要对平台的需求进行详细的分析。包括用户需求、功能需求、技术需求等等。这一步是…...
力扣:57. 插入区间(Python3)
题目: 给你一个 无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 来源:力扣(LeetC…...
List和数组互转方法以及踩坑点
一、数组转List 1. 使用for循环逐个添加 String[] array {"A", "B", "C"}; List<String> list new ArrayList<>(); for (String element : array) {list.add(element); }2. 使用Arrays.asList(arr) String[] array {"A&q…...
css3背景渐变
1.线性渐变 <style>.box {width: 200px;height: 200px;border: 1px solid black;float: left;margin-left: 50px;}.box1 {background-image: linear-gradient(green, yellow, red);}/* 右上 */.box2 {background-image: linear-gradient(to right top, green, yellow, re…...
windows 安装免费3用户ccproxy ubuntu 代理上网
Windows 上进行安装 ubuntu 上进行设置 方法一 (临时的手段) 如果仅仅是暂时需要通过http代理使用apt-get,您可以使用这种方式。 在使用apt-get之前,在终端中输入以下命令(根据您的实际情况替换yourproxyaddress和proxyport)。 终…...
B树的插入与删除过程
B树的插入 原树: 插入key后,若导致原节点关键字数超过上限,则从中间位置( ⌈ m 2 ⌉ \lceil\frac{m}{2}\rceil ⌈2m⌉)将关键字分成两部分,左部分包含的关键字放在原节点中,右部分包含的关键…...
【二分】CF1623 C
Problem - 1623C - Codeforces 题意: 思路: 肯定是二分,我们去二分最小值,然后check的时候最小值要大于mid check的时候要让最小值尽可能大 注意到我们不需要去管最大值,只需要最小值尽可能大就好了,因…...
redis五大类型分析--list(1)
此篇为对redis五大数据类型中list的分析,希望能有所帮助 List API listTypePush函数 void listTypePush(robj *subject, robj *value, int where) {/* 检查编码类型是否为 quicklist (快速列表) */if (subject->encoding OBJ_ENCODING_QUICKLIST) {/* 根据参数…...
【多重信号分类】超分辨率测向方法——依赖于将观测空间分解为噪声子空间和源/信号子空间的方法具有高分辨率(HR)并产生准确的估计(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
【Express.js】集成Websocket
集成websocket 本节我们介绍在如何在 express 中集成 websocket。 WebSocket 服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。 准备工作 创建一个 express.js 项目&a…...
MachineLearningWu_14/P65-P69_Multiclass
x.1 Multiclass多分类问题 对于分类问题,往往指的是二分类问题,而对于二分类的decision boundary较为简单,而实际生活中会有很多问题是多分类问题,例如MNIST手写数字识别, 从特征空间上来看,二分类和多分类…...
深入理解高并发编程 - SimpleDateFormat 类的线程安全问题
1、重现与解决 1.1、重现 import java.text.SimpleDateFormat; import java.util.Date;public class UnsafeSimpleDateFormatExample {public static void main(String[] args) {SimpleDateFormat sdf new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Runnable task…...
接口幂等性实现方式
优质博文:IT-BLOG-CN 幂等 操作的特点是一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外)。幂等函数或幂等方法是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态&am…...
redis高可用之持久化
目录 一、Redis 高可用的相关知识 1)什么是高可用 2)Redis的高可用技术 3)持久化的功能 4)redis持久化的方式 二、RDB持久化 1)RDB持久化的触发方式 (1)手动触发 (2&…...
Cocos Creator 3.8 后期效果 Shader 编写(2/2) 进阶篇
前言 在上一篇文章中,麒麟子给大家分享了如何在 Cocos Creator 3.8 中的自定义管线中,添加属于自己的后期效果 Shader。 但基于 BlitScreen 的方案,我们只能编写最简单后效 Shader,如果我们想要支持更多复杂的 Shader,…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
