Multi-object navigation in real environments using hybrid policies 论文阅读

论文信息

题目:Multi-object navigation in real environments using hybrid policies
作者:Assem Sadek, Guillaume Bono
来源:CVPR
时间:2023

Abstract

机器人技术中的导航问题通常是通过 SLAM 和规划的结合来解决的。

最近,除了航路点规划之外,涉及(视觉)高级推理重要组成部分的问题也在模拟环境中得到了探索,这些问题大多通过大规模机器学习来解决,特别是强化学习、离线强化学习或模仿学习。

这些方法要求智能体学习各种技能,例如局部规划、绘制对象和查询所学习的空间表示。与航点规划(PointGoal)等更简单的任务相比,对于这些更复杂的任务,当前最先进的模型已经在模拟中进行了彻底的评估,但据我们所知,尚未在真实环境中进行评估

在这项工作中,我们重点关注 sim2real 转变
我们的目标是具有挑战性的多对象导航(Multi-ON)任务[41],并将其移植到包含原始虚拟 Multi-ON 对象的真实副本的物理环境。

我们引入了一种混合导航方法,它将问题分解为两种不同的技能:
(1) 路点导航通过经典 SLAM 与符号规划器相结合来解决,
(2) 探索、语义映射和目标检索则通过经过训练的深度神经网络来处理监督学习和强化学习的结合。

我们在模拟和真实环境中展示了这种方法与端到端方法相比的优势,并且在该任务上优于 SOTA [28]。

Introduction

机器人导航已经从准备充分的环境中的简单路径点导航问题发展到涉及视觉和语义概念的高级推理的复杂任务。当策略从模拟转移到物理机器人的真实环境时,它们会出现性能下降和缺乏鲁棒性的情况。这主要是由于模拟与现实之间的真实性差距**(“sim2real 差距”),以及难以探索导航问题中固有的大量变化因素**,例如房间布局、家具、纹理和其他房间细节、罕见的局部场景几何形状等。

最近有一种模块化方法的趋势,它将问题分解为分层部分 [8]、[4] 和混合方法,将最短路径规划器(符号或经过训练的)与经过训练的策略相结合。虽然这些方法已被证明具有更高的样本效率[32],但最先进的方法仍在模拟中进行评估,并且缺乏对真实机器人的彻底测试。

在这项工作中,我们解决了多对象导航 [41] 的挑战性问题,与 K 项物品场景 [5] 类似,需要代理按规定的顺序顺序导航一组对象。这个任务定义有利于代理能够学习在内部空间表示中映射所看到的对象,因为后面在情节中导航到它们可以增加奖励。这使得它在像 ObjectNav 这样的简单任务中脱颖而出,其中探索和当前观察的反应性局部规划的综合能力足以解决任务。

我们的目标是 sim2real 迁移,据我们所知,我们是第一个在真实物理环境中对多对象导航方法进行全面性能评估的人,请参见图 1。虽然更简单的任务(例如 PointGoal)已在在真实的机器人[23]、[34]中,对更复杂任务的训练模型的评估很少或不存在。我们提出了一种新的导航方法,其设计选择是由优化实际环境中的性能的目标驱动的。
在这里插入图片描述

我们提出了一种新的混合方法,将问题分解为两部分:

  1. Good Old Fashioned Robotics”(GOFR),处理与语义无关的经典导航方面,例如可导航空间的检测和定位(几何 SLAM)与地图上的路点导航相结合。
  2. Semantics through Machine Learning, 即映射视觉推理所需的语义概念并利用它们;利用布局规律探索环境中最有前途的区域

在导航过程中,经典的 SLAM 算法 [24] 以张量/地图的形式创建并维护 2D 度量表示,并使用激光雷达输入​​在其上定位机器人。使用深度神经网络从视觉 RGB-D 观测中提取的高级特征形成空间和语义点云,其空间坐标与度量表示对齐,见图 2。
组合的混合表示满足相关子的需求。 -智能体所需的技能:
(i)确定过去是否观察到目标物体,
(ii)规划智能体和探索区域之间的最佳轨迹,以及
(iii)确定环境中未探索区域的边界以及下一个中间子目标,以防环境需要探索以找到下一个目标。所有这些子技能都是单独设计和训练的,这可以限制训练的样本复杂性。

这项工作的贡献如下:
(i)我们引入了一种多目标导航的混合方法,将经典的度量 SLAM 和路径规划与经过监督学习和 RL 训练的学习组件相结合;
(ii) 我们在真实环境中重现 Multi-ON 基准测试 [41],其中我们放置目标对象的制造复制品,用于最初模拟的目标环境;
(iii) 我们将所提出的方法与真实环境中的端到端训练方法进行比较,特别是与 CVPR 2021 MultiON 竞赛 [28] 的获奖作品进行比较,我们在真实和模拟环境中都表现出色。

Related Work

(这部分没太多有价值的)

Hybrid Planning and Navigation

我们的目标是 Wani 等人[41]引入的多对象导航(Multi-ON)任务,特别是 3 个对象变体:在每个情节中,智能体必须找到 3 个圆柱形对象 G n , n = 1 , 2 , 3 G_n,n = 1, 2, 3 Gnn=1,2,3,按照预定义的顺序,其中 G n G_n Gn 是要查找的第 n 个对象,并且需要在每个目标处调用 Found 操作。剧集持续时间限制为 2,500 个环境步骤。在每个步骤 t,智能体接收一个以自我为中心的 RGB-D 观察 O t ∈ R h × w × 4 O_t ∈ R^{h×w×4} OtRh×w×4、一个激光雷达框架以及来自 8 个类别的当前目标对象的类别标签。

在导航过程中,代理根据激光雷达输入​​构建度量鸟瞰占用图,并使用度量 SLAM [39] 在其上进行自身定位。该二值图与重叠的语义点云相结合,其中包含关键对象的位置及其语义类别,这些是通过对象检测器从 RGB 输入中检测到的。检测和建图通过 SLAM 算法的定位模块进行协调。

Navigation

在两个不同的级别上分层执行。在较高级别(图 2 中的外环)上,生成 2D 航路点坐标 pt=(x, y) 并将其提供给较低级别​​控制器(内环),其任务是使用维护的占用地图导航到航路点。高级控制器在两种不同的策略之间切换:
Exploration- 当目标物体尚未被观察到时,即机器人探索环境,最大化覆盖范围。这是通过 RL 训练的学习策略来完成的,见下文。
Exploitation——当目标对象被观察到并因此成为语义点云的一部分时,其位置被视为新的路径点并提供给本地规划器。

Metric EgoMap

为了收集沿其路径的导航信息并更有效地重新访问之前看到的区域,代理构建了所谓的 EgoMap,这是一个以其当前位置为中心并与其前进方向对齐的固定空间分辨率的占用网格。

在真实的机器人上,该地图是使用 RTABMap [24] 库获得的。它使用基于图形的 SLAM 算法和闭环功能,这是一种利用 RGB-D、激光雷达和里程计传感器数据的灵活设计。激光雷达和/或深度用于创建 2D/3D 局部占用网格,与初始位置依赖于里程计积分的节点相关联。

然后从 RGB 帧中提取的关键点创建描述符,以便于节点比较和回环检测。 RTABMap 还包括短期和长期内存管理、全局映射压缩和多会话映射。

在模拟中,我们利用特权信息,通过 Habitat-Sim 中的 Recast&Detour [1] 库生成的 NavMesh 投影来检索场景导航性的完整自上而下视图。然后,通过使用完美定位,直接在该自上而下视图上的代理视野中进行光线追踪,构建战争迷雾掩模。

真实方法和模拟方法都会生成一个全局地图,我们在该地图上应用由代理当前姿势参数化的简单仿射变换来获取 EgoMap。

Exploration

是基于机器学习的主要模块。与最近的嵌入式 AI 工作相比 [4]、[8],该策略不采用第一人称 RGB 输入,而是采用度量 SLAM 算法生成的 EgoMap Mt。这大大简化了任务并提高了采样效率,并且由于避免了闪电、颜色和纹理的变化,因此最大限度地减少了 sim2real 差距。该策略是外循环的一部分,预测 2D 航路点坐标 pt。

由于多种原因,该问题是部分可观察到的:
(i) 并非场景的所有区域在任何时间点都已被观察到;
(ii) 出于效率原因,EgoMap Mt 并未覆盖整个场景,因此当智能体导航到距离观察区域足够远时,可能会忘记观察到的区域;
(iii) 在环境中存在不确定性的情况下,即使理论上完全可观察的问题(MDP)也可以转化为 POMDP(“认知 POMDP”),这是机器人技术的标准情况,正如最近在[18]中所显示的那样。

因此,我们为该策略注入了隐藏记忆 h t h_t ht 并使其循环出现。

策略 π 需要能够预测多模态分布,因为有多个有效轨迹可以有效地探索环境。我们通过归纳偏差将其纳入策略中,这迫使预测通过空间热图 Ht,从中对所选航路点位置进行采样。在采样之前,我们通过掩蔽将热图限制在未探索的区域。这种选择还导致了一个更可解释的模型,因为目标探索点的分布可以可视化(参见第四节)。

这可以形式化如下(另请参见图 3):
在这里插入图片描述
在这里插入图片描述

Local Navigation

本地导航 — 到航路点 p t p_t pt 由分析规划器执行,该规划器计算当前占用 EgoMap Mt 上的最短路径。这不一定是最佳路径,因为地图不等于(未观察到的)GT 地图和中间区域待穿越的区域(甚至路径点 p t p_t pt)可能未被探索。

我们采用动态规划器 D ∗ D^* D,它计算经典假设下的最短路径,并在新信息可用时重新规划。由于我们优化了我们的方法,使其在实际环境中稳健且高效,与最近的工作 [32]、[7] 不同,我们选择 D* 规划器而不是常用的快速行进方法 [37]。实际路径的可行性和规划的速度是这种设计选择背后的两个主要原因。

Stabilizing training

稳定训练——如上所述,在不确定条件下使用 D ∗ D^* D 的局部规划产生的潜在失败和次优轨迹也会对勘探策略的训练过程产生负面影响。该策略是外循环的一部分,预测航路点 p t p_t pt,仅在完成完整的本地导航过程后才收到奖励。局部规划中的噪音会影响强化学习训练过程的稳定性并导致缺乏收敛。

我们通过训练与本地策略接口的探索策略来解决这个问题,并对其施加了长度限制。探索策略预测的从当前位置到下一个路点 pt 的完整轨迹被分成一系列距离为 0.3m 的小子目标,本地策略仅限于其中 5 个子目标。如果达到航路点 pt,或者达到 5 个子目标的限制,则将控制权交还给外循环。这种选择导致了稳定的训练,并且训练后的策略很好地转移到了有针对性的探索任务,而无需改变。对本地规划长度的相同限制也适用于部署时,这提高了实际条件下的鲁棒性,并使复杂的恢复行为变得过时。

Object Detection and Mapping

对象检测和映射 - 被构建为来自当前 RGB-D 帧 ot 的语义分割任务,我们通过根据模拟器中的特权信息计算出的 GT 掩码进行监督。预测器是 DeepLab v3 网络 [12],使用深度信息和情景里程计对掩模中检测到的对象进行反向投影并与 EgoMap 对齐。请注意,深度和里程计在真实机器人/真实环境评估设置中都是有噪声的。

High-level decisions

高层决策完全是手工制定的,因为这会带来稳健且可转移的决策过程,而可以说不需要学习。考虑到我们的决策选择,只需要一种类型的决策,是进行探索还是利用(即朝着目标导航)。这是根据当前目标对象是否已在映射时被观察到而采取的。如果已检测到同一类的多个对象,则选择最有可能检测到的位置(就分段对象像素而言)。要映射的对象需要最小数量的像素

Experimental

在这里插入图片描述

Conclusion

我们已将 Multi-ON 任务扩展到真实环境,据我们所知,我们在这些设置中对该任务进行了首次实验评估。

我们引入了一种混合模型,它解开了航点规划和语义,显着减小了 sim2real 差距,并且优于当前仿真中 SOTA 的 E2E 训练模型。

未来的工作将集中于增强手工制定的高级策略,该策略需要对误报检测具有鲁棒性,这也是其他导航任务(例如 ObjectNav)中的常见挑战。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/35758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优化堆排序(Java 实例代码)

目录 优化堆排序 Java 实例代码 src/runoob/heap/HeapSort.java 文件代码: 优化堆排序 上一节的堆排序,我们开辟了额外的空间进行构造堆和对堆进行排序。这一小节,我们进行优化,使用原地堆排序。 对于一个最大堆,首…

pytest 编写规范

一、pytest 编写规范 1、介绍 pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点: 1、简单灵活,容易上手,文档丰富;2、支持参数化,可以细粒度地控制要测试的测试用例;3、能够…

差分升级在物联网水表上的实现与应用(学习)

摘要 当越来越多的物联网水表加入抄表系统后,实现了水表数据的信息化,并且当水表终端需要技术更新时,通过网络方式来升级产品可以高效修复设备面临的问题,减少用户损失,降低维护成本,但同时也对有限的网络…

遍历集合List的五种方法以及如何在遍历集合过程中安全移除元素

一、遍历集合List的五种方法 测试数据 List<String> list new ArrayList<>(); list.add("A");list.add("B");list.add("C");1. 普通for循环 普通for循环&#xff0c;通过索引遍历 for (int i 0; i < list.size(); i) {Syst…

form中表单切换,导致 relus 中的事件无法触发,原因:页面切换不要一直切换DOM,会导致问题,需要都显示出来

修改前&#xff0c;因为重复渲染DOM导致绑定rules失效 修改前代码使用 computed 计算出渲染的DOM&#xff0c;影响rules事件<el-formref"form"inline:model"billDetailCopy":rules"rules"size"small"label-position"right&quo…

NLP语言模型概览

语言模型结构分类 Encoder-Decoder&#xff08;Transformer&#xff09;: Encoder 部分是 Masked Multi-Head Self-Attention&#xff0c;Decoder 部分是 Casual Multi-Head Cross-Attention 和 Casual Multi-Head Self-Attention 兼具。比如T5&#xff0c;BART&#xff0c;MA…

腾讯云轻量服务器和云服务器的CPU处理器有差别吗?

腾讯云轻量应用服务器和CVM云服务器的CPU处理器性能有差别吗&#xff1f;创建轻量应用服务器时不支持指定底层物理服务器的CPU型号&#xff0c;腾讯云将随机分配满足套餐规格的物理CPU型号&#xff0c;通常优先选择较新代次的CPU型号。而云服务器CVM的CPU处理器型号、主频都是有…

JAVA设计模式----原型设计模式

文章目录 一、简介二、实现方式三、原型模式的注意事项浅拷贝与深拷贝浅拷贝深拷贝一、简介 定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 类型:创建类模式 类图: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Protot…

下载程序到西门子PLC

更多关于西门子S7-200PLC内容请查看&#xff1a;西门子200系列PLC学习课程大纲 下载西门子200PLC程序分以下两步&#xff1a; 一.编译程序 1. 如下图1-1所示&#xff0c;使用PPI电缆将PLC和电脑连接上&#xff0c;注意笔记本使用USB转PPI电缆&#xff0c;连接保证给PLC单独供…

Linux(进程间通信详解)

进程间通信&#xff0c;顾名思义&#xff0c;就是进程与进程之间互通信交流&#xff0c;OS保证了各进程之间相互独立&#xff0c;但这不意味着进程与进程之间就互相隔离开&#xff0c;在不少的情况下&#xff0c;进程之间需要相互配合共同完成某项6任务&#xff0c;这就要求各进…

怎样学会单片机

0、学单片机首先要明白&#xff0c;一个单片机啥也干不了&#xff0c;学单片机的目的是学习怎么用单片机驱动外部设备&#xff0c;比如数码管&#xff0c;电机&#xff0c;液晶屏等&#xff0c;这个需要外围电路的配合&#xff0c;所以学习单片机在这个层面上可以等同为学习单片…

JVM:运行时数据区域(白话文)

最近有时间在看一本<深入了解Java虚拟机>的书籍&#xff0c;这本书是一个中国人&#xff0c;名叫周志明的人写的。相比于其他翻译过来的技术书籍&#xff0c;这本书还是挺通俗易懂的。先前有和彬哥在聊&#xff0c;他说如果是自己一个人看的话会很枯燥&#xff0c;很难坚…

双端列表 —— Deque 接口概述,使用ArrayDeque实现队列和双端队列数据结构

Deque接口简介 Deque译为双端队列&#xff0c;在双向都能作为队列来使用&#xff0c;同时可用作栈。Deque接口的方法是对称成比例的。 Deque接口继承Queue接口&#xff0c;因此具有Queue&#xff0c;Collection&#xff0c;Iterable的方法属性。 双端队列的工作原理 在常规队…

前端架构师的能力要求:打造可靠、灵活和可扩展的Web应用

随着互联网技术迅猛发展&#xff0c;现代Web应用程序变得越来越复杂且功能强大。作为一名前端架构师&#xff0c;在这个快节奏且竞争激烈的环境中&#xff0c;你需要具备广泛而深入地技术知识&#xff0c;并且有能力设计、开发和维护高度可靠、灵活和可扩展性强的Web应用。 深入…

jvm里的内存溢出

目录 堆溢出 虚拟机栈和本地方法栈溢出&#xff08;栈溢出很少出现&#xff09; 方法区和运行时常量池溢出 本机内存直接溢出&#xff08;实际中很少出现、了解即可&#xff09; 堆溢出 堆溢出&#xff1a;最常见的是大list&#xff0c;list里面有很多元素 堆溢出该怎么解决…

ArcGIS入门操作手册

一.ArcGIS安装过程 参考本人博客&#xff1a;保姆级Arcgis安装图文安装教程_追忆苔上雪的博客-CSDN博客 二.ArcGIS植被指数计算 (1)使用工具&#xff1a;栅格计算器 打开软件&#xff0c;右侧搜索栅格计算器打开&#xff0c;要是搜索栏不小心叉掉找不到了&#xff0c;可以通…

定义行业新标准?谷歌:折叠屏手机可承受20万次折叠

根据Patreon账户上的消息&#xff0c;Android专家Mishaal Rahman透露&#xff0c;谷歌计划推出新的硬件质量标准&#xff0c;以满足可折叠手机市场的需求。Android原始设备制造商&#xff08;OEM&#xff09;将需要完成谷歌提供的问卷调查&#xff0c;并提交样品设备进行严格审…

基于 JMeter API 开发性能测试平台

目录 背景&#xff1a; 常用的 JMeter 类和功能的解释&#xff1a; JMeter 编写性能测试脚本的大致流程示意图&#xff1a; 源码实现方式&#xff1a; (1) 环境初始化 (2) 环境初始化 (3) 创建测试计划 (4) 创建 ThreadGroup (5) 创建循环控制器 (6) 创建 Sampler (…

【编码魔法师系列_六大原则5】迪米特原则(Law of Demeter Principle)

学会设计模式&#xff0c;你就可以像拥有魔法一样&#xff0c;在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们&#xff08;GoF&#xff09;凝聚出来的最佳实践&#xff0c;可以提高代码的可读性、可维护性和可重用性&#xff0c;从而让我们的开发效率更高。通…

每日一题——旋转数组的最小数字(II)

旋转数组的最小数字——II 题目链接 注&#xff1a;此题是昨天旋转数组的最小数字——I的拓展延伸&#xff0c;昨天题目数组的条件是不会存在重复元素&#xff0c;而本题数组的元素可以重复&#xff0c;因此建议先做前面一题&#xff0c;进行思考&#xff0c;这样求解这一题的…