论文精读⚡️LEARNING TO EXPLORE USING ACTIVE NEURAL SLAM⚡️使用主动神经SLAM学习探索
Project webpage : https://devendrachaplot.github.io/projects/Neural-SLAM
Code: https://github.com/devendrachaplot/Neural-SLAM
主要内容
将基于学习的方法和传统的方法融合,学习室内环境的结构规律。核心思想是在探索中能够最大化覆盖范围。主要利用了将长期目标转化为短期目标,并利用局部策略降低了姿态估计错误的鲁棒性。通过迁移学习的方法,可以将不确定的长期目标转化为确定的例如点目标的长期目标。
问题
1️⃣长期目标的选择是agent自己的选择还是能够指定?
2️⃣将长期目标选择为室外目标那么短期目标的生成是如何进行的?agent想要去到达或者探索长期目标,可以先观察并探索他的周围环境以及障碍物情况,在周围环境中选择能够通行的道路?
3️⃣对于探索区域的覆盖面积最大化,是指在一个指定的任务过程中对探索空间的尽可能探索还是其根本任务就是探索整个空间?那么对于空间探索和物体寻找或者任务完成应该如何平衡?是在找物体的过程中尽可能的扩大观察面积以便为以后的寻找提供更好的观察条件还是在寻找物体之前的一段时间内对未知环境的探索以便在寻找物体的过程中能够更好的利用周围的环境信息。
摘要
introduction
导航可分为点任务:到达指定坐标;语义导航:寻找到特定场景或对象的路径。
导航的核心问题是探索:即如何有效地访问尽可能多的环境。这有助于最大限度地扩大覆盖范围,以提供在未知环境中找到目标的最佳机会,或者在有限的时间预算内有效地预映射环境。
chen等人在端到端的学习解决了这个问题,而学习的方法优点在于1️⃣比起经典方法,其输入的形式更灵活;2️⃣提高对错误的鲁棒性;3️⃣学习可以有效地利用现实世界的结构规律,在以前看不见的环境中产生更有效的行为。但是他们的方法相比于传统方法需要大量的数据进行训练,其实验结果仍然比传统方法差。
本文所提出的方法保留学习方法的优点同时避免其的缺点。关键概念是通过学习的方法学习:1️⃣利用室内环境的结构特点2️⃣ 对状态估计误差的鲁棒性3️⃣对输入方式的灵活。这使得导航策略可以处理原始的感官输入,如RGB图像,对状态估计错误具有鲁棒性,并利用真实世界布局的规则性。
任务设置
遵循Chen等人提出的勘探任务设置,其目标是在固定时间预算内最大化覆盖范围。覆盖范围定义为地图中已知可穿越的总面积。
本文的目标是训练一个策略,输入数据是在每一个时间 t t t时的观察 s t s_t st,输出是能够使得导航覆盖面积最大化的动作 a t a_t at
使用环境模拟器在Gibson以及Matterport(MP3D)数据集进行实验。由于在真实环境下存在噪声误差,并添加了噪声模型。
噪声模型
我们用(x,y,o)表示代理的姿势,其中x和y表示代理的xy坐标,以米为单位,o表示代理的方向,以弧度为单位(从x轴逆时针测量)。假设代理从p0=(0,0,0)开始。
驱动噪声:实际动作与预期动作的差值
p1实际位姿,p0原始位姿,u控制程序
传感器噪声:传感器姿态估计和实际姿态差值
p1’传感器位姿估计;p1实际位姿估计
导航操作:向前,右转,左转
方法
本文的方法主要包括以下几个方面:
0️⃣地图表示:空间地图 m t m_t mt: 2 ∗ M ∗ M 2*M* M 2∗M∗M,第一个通道中的每个元素表示相应位置处障碍物的概率,第二个通道中的每个元素表示该位置被探测的概率。当一个单元被认为是自由空间或障碍物时,它就被认为是被探测的。位姿 x t x_t xt
1️⃣ a learned Neural SLAM module:产生自由空间地图(free space maps),并根据输入的RGB图像和运动传感器估计agent的姿态。当前的观测和先前的预测来预测环境地图和agent姿态。
输入:当前RGB观测 s t s_t st,当前和上一传感器位姿 x t − 1 , t ′ x_{t-1,t}' xt−1,t′,上一位姿和地图估计 x ^ t − 1 , m t − 1 \hat{x}_{t-1},m_{t-1} x^t−1,mt−1,更新地图 m t m_t mt,当前代理位姿估计 x ^ t \hat{x}_t x^t,
Mapper( f m a p f_{map} fmap)输出一个自上而下的以自我为中心的二维空间地图,V表示视野范围,预测当前观测中的障碍物和探测区域
位姿估计器 f P E f_{PE} fPE根据过去的位姿和前两帧自我地图预测 p t − 1 : t e g o p^{ego}_{t-1:t} pt−1:tego预测当前位姿.它本质上是将当前的自我中心地图预测与转换到当前帧的上一个自我中心地图预测进行比较,以预测两个地图之间的姿态变化。基于姿态估计器给出的姿态估计,将来自映射器的自我中心地图转换为地心地图,然后与先前的空间地图(mt−1)聚合以获得当前地图(mt)。
2️⃣a global policy:利用姿态的自由空间地图,并通过学习来利用真实环境布局中的结构规则来产生长期目标。这些长期目标用于生成本地策略的短期目标(使用几何路径规划器)。全局策略可以利用真实环境布局中的规律性。全局策略使用预测的地图和代理姿势来生成长期目标。通过路径规划将长期目标转化为短期目标。
全局策略:全局策略采用ht∈[0,1],(4×M×M)作为输入,其中前两个信道是SLAM模块给出的空间映射
m
t
m_t
mt,第三个信道表示SLAM模块估计的当前agent位置,第四个信道表示访问的位置
3️⃣a local policy:利用学习方法将原始RGB图像直接映射到agent应执行的操作。学习的局部策略可以使用视觉反馈来展示更健壮的行为。根据当前的观察结果采取导航行动,以达到短期目标。
局部策略:将当前RGB观测值(st)和短期目标( g s t gs_t gst)作为输入,并输出一个导航动作 a t a_t at, a t = π L ( s t , g t s ∣ θ L ) a_t=\pi_L(s_t,g^s_t|\theta_L) at=πL(st,gts∣θL)其中θL是本地策略的参数。将短期目标坐标转换为与代理位置的相对距离和相对角度,再传递给局部策略。
4️⃣规划:以长期目标( g l t gl_t glt)、空间障碍地图(mt)和agnet位姿估计( x ^ t \hat{x}_t x^t)为输入,计算短期目标( g t s g^s_t gts) g t s = f p l a n ( g l t , m t , x ^ t ) g^s_t=f_{plan}(gl_t,mt,\hat{x}_t) gts=fplan(glt,mt,x^t)。它基于当前的空间地图mt,计算从当前代理位置到长期目标的最短路径。未勘探区域被视为规划的自由空间。我们计算计划路径上的短期目标坐标(距离代理的ds(=0.25m)内的最远点)。
实验
已知的可穿越点:在代理的视野中,并且距离小于3.2米。
评估指标:以m2为单位的绝对覆盖面积(Cov)和场景中探索的面积百分比(%Cov)(在相应场景中覆盖与最大可能覆盖的比率。)
为了分析所有模型在场景大小方面的性能,我们将Gibson验证集分为两部分,一小部分10个场景,可探测面积从16m2到36m2,一大部分4个场景,可探测面积从55m2到100m2。请注意,地图的大小通常比可穿越区域大得多,最大的地图长约23米,宽约11米。
全球政策的培训采用强化学习,奖励与覆盖率的增加成比例。使用模仿学习(行为克隆)训练本地策略。
基线对比实验