具身导航:模块化方法

问题

  • 度量地图还是拓扑图?

GOAT

motivation

  • 仿照人和动物的导航系统都需要一个空间环境表征,纯粹的反应式无记忆导航系统不足以满足机器人技术的需要。仿照人和动物的“终身学习”——随着移动机器人进行主动搜索和探索,内部空间表征不断改进。这要求机器人建立、维护和更新对环境中的物体、它们的视觉和语言特性以及它们的最新位置的终生记忆。
  • 给定任何新的多模式目标,机器人还应该能够查询内存以确定目标对象是否已存在于内存中或需要进一步探索。
  • 路标的视觉特征在人和动物的导航中扮演至关重要的角色,所以需要维护机器人所处环境的多模态表征。
  • 多模态感知、探索、终生记忆和目标定位,机器人还需要有效的规划和控制才能在避开障碍物的同时达到目标。

方案

感知系统检测物体实例,将它们定位在场景的自上而下的栅格语义图中,并将每个实例已被查看的图像存储在物体实例记忆中。当指定新目标时,全局策略首先尝试在物体实例记忆中搜索定位目标。如果没有定位到物体实例,则全局策略输出一个探索目标。局部策略最终计算实现长期目标的具体行动。

感知

我们使用 MaskRCNN 和在 MS-COCO 上预训练的 ResNet50主干网络进行对象检测和实例分割。使用MiDaS模型进行单目深度估计

搜索匹配

  • 匹配方法:将原始图像视图存储在物体实例记忆中,使我们可以针对每个目标模态使用不同的匹配方法。我们使用 CLIP特征之间的余弦相似度得分将语言目标描述与内存中的对象视图进行匹配。另一方面,为了将图像目标与记忆地图中的对象视图进行匹配,我们使用 SuperGLUE 评估 CLIP 特征匹配和基于关键点的匹配
  • 匹配阈值:
  • 实例二次采样:是将目标与迄今为止捕获的所有实例的视图进行比较,还是仅与目标类别的实例进行比较。直观上,后者速度更快,精度更高,但召回率可能较低,因为它依赖于准确的对象检测。
  • 上下文:匹配时使用的实例上下文

存储视觉地标的原始图像

在语义地图里面去搜索目标,定位,规划

实验结果

GOAT 的总体成功率达到 83%,比之前的方法高出 32%(绝对改进)。 GOAT 使用环境中的经验而持续提高,从第一个目标的 60% 成功率到探索后的 90% 成功率。

对比基线:CLIP on Wheel
在9个不同的家庭场景中评估了GOAT及三个基线算法,每个家庭场景执行10个情节的任务。由从家庭中可用的物体中随机选择5-10个物体实例组成,总共代表200+不同的物体实例。选择了 15 个不同类别的目标(“椅子”、“沙发”、“盆栽植物”、“床”、“厕所”、“电视”、“餐桌”、“烤箱”、“水槽”、“冰箱” 、“书”、“花瓶”、“杯子”、“瓶子”、“泰迪熊”),拍摄了一张图像目标照片。 [32],并注释了唯一标识该物体的 3 种不同语言描述。为了在家里生成一个情节片段,我们随机抽取了 5-10 个目标序列,在所有可用对象实例中的语言、图像和类别目标中均等分配。

三个基线算法

  • CLIP on Wheels
  • GOAT treats all goals as object categories
  • GOAT resets the semantic map and Object Instance Memory after every goal

在这里插入图片描述

衡量指标

成功率
the Success weighted by Path Length (SPL):成功的测地距离与最佳路径长度的比值

优点

  • 可以通过类别标签、目标图像、语言描述指定目标
  • 使用地图存储过往的观测经验,而不是隐式存储在神经网络中
  • 模块化方案无需重新训练,泛化性强。而端到端方法需要针对每个不同的实施例进行新的数据收集和重新训练。

方案局限性

SayPlan

在这里插入图片描述

建图

分层拓扑图(大模型推断节点) ⟺ 对齐 度量地图(传统导航控制) 分层拓扑图(大模型推断节点) \overset{对齐}{\Longleftrightarrow}度量地图(传统导航控制) 分层拓扑图(大模型推断节点)对齐度量地图(传统导航控制)在这里插入图片描述整个3DSG可以表示为一个NetworkX Graph对象,并将文本序列化为JSON数据格式,可以通过预训练的LLM直接解析。
一个来自3DSG的单个资产节点的例子表示为

{
    "name": "coffee_machine",
    "type": "asset",
    "location": "kitchen",
    "affordances": [
        "turn_on",
        "turn_off",
        "release"
    ],
    "state": "off",
    "attributes": [
        "red",
        "automatic"
    ],
    "position": [
        2.34,
        0.45,
        2.23
    ]
}

节点之间的边表示为: {kitchen↔coffee machine}

语义搜索

给定完整3D Scene Graph G \mathcal{G} G和任务指令 I \mathcal{I} I,输出任务相关的最小子图 G ′ \mathcal{G}' G
LLM通过展开和收缩3DSG 操作API,识别包含任务所需节点的最小子图。
通过给予示例的形式让LLM在语境中学习,利用"思维链"提示,引导LLM识别哪些节点需要操纵。
从最顶层拓扑图开始向下层扩展搜索,如果发现一个扩展节点包含与任务无关的实体,LLM则将其收缩,最终得到一个任务特定的子图。

迭代重规划

给定任务特定子图 G ′ \mathcal{G}' G和任务指令 I \mathcal{I} I,输出满足给定任务指令的节点级导航goto(pose2)和操作动作序列pickup(coffee_mug)

问题

LLM不是完美的规划智能体,倾向于幻想或产生错误的输出。当在大规模环境或长时间跨度任务上进行规划时,这种情况进一步加剧。

解决方法

缩短LLM的规划范围,使用最优路径规划器给Dijkstra算法,使LLM专注于任务的操作部分。
其次,使用Reflection反思机制,使用场景图模拟器评估生成的规划是否符合场景图的谓词、状态和可供性,利用模拟器的反馈来迭代地修正LLM生成的规划。

LM-Nav

亮点:无需轨迹注解
LLM(GPT-3) + VLM(CLIP) + VNM(ViNG)

  • LLM:大语言模型将文本指令解析为一系列地标 ℓ ˉ \bar{\ell} ˉ
  • VLM:视觉-语言模型对齐地标描述和图片,给出每个图片节点对应每个路标的概率 P ( v ˉ ∣ ℓ ˉ ) P(\bar{v}|\bar{\ell}) P(vˉˉ)
  • VNM:视觉导航模型直接从视觉观测中学习导航行为和导航可达性,通过时间关联图像和动作。(1)通过VNM得到的距离预测构建拓扑图;(2)给定当前图像观测和目标图像观测,输出底层导航动作。
    在这里插入图片描述

问题描述

给定一系列用LLM从语言指令中提取的地标描述 ℓ ˉ = ℓ 1 , ℓ 2 , … , ℓ n \bar{\ell}=\ell_1,\ell_2,\dots,\ell_n ˉ=1,2,,n,输出一系列waypoints v ˉ = v 1 , v 2 , … , v k \bar{v}=v_1,v_2,\dots,v_k vˉ=v1,v2,,vk
P ( v i , v i + 1 ‾ ) P(\overline{v_i,v_{i+1}}) P(vi,vi+1)描述了从节点 v i v_i vi到达节点 v i + 1 v_{i+1} vi+1的可能性,由VNM决定
使用辅助的伯努利变量 c v ˉ c_{\bar{v}} cvˉ( c v ˉ = 1 c_{\bar{v}}=1 cvˉ=1表示成功遍历 v ˉ \bar{v} vˉ),则给定节点序列被成功遍历的概率为:
P ( c v ˉ = 1 ∣ v ˉ ) = ∏ 1 ≤ i < T P ( v i , v i + 1 ‾ ) = ∏ 1 ≤ i < T γ D ( v i , v i + 1 ) P(c_{\bar{v}}=1|\bar{v})=\prod_{1\leq i<T}P(\overline{v_i,v_{i+1}})=\prod_{1\leq i<T}\gamma^{D(v_i,v_{i+1})} P(cvˉ=1∣vˉ)=1i<TP(vi,vi+1)=1i<TγD(vi,vi+1)
用于规划的完整似然函数由下式给出:
P ( success ∣ v ˉ , ℓ ˉ ) ∝ P ( c v ˉ = 1 ∣ v ˉ ) P ( v ˉ ∣ ℓ ˉ ) = ∏ 1 ≤ j < k γ D ( v j , v j + 1 ) max ⁡ 1 ≤ t 1 ≤ . . . ≤ t n ≤ k ∏ 1 ≤ i ≤ n P ( v t i ∣ ℓ i ) . P(\text{success}|\bar{v},\bar{\ell})\propto P(c_{\bar{v}}=1|\bar{v})P(\bar{v}|\bar{\ell}) = \prod_{1\leq j<k}\gamma^{D(v_j,v_{j+1})}\max_{1\leq t_1\leq...\leq t_n\leq k}\prod_{1\leq i\leq n}P(v_{t_i}|\ell_i). P(successvˉ,ˉ)P(cvˉ=1∣vˉ)P(vˉˉ)=1j<kγD(vj,vj+1)1t1...tnkmax1inP(vtii).

拓扑图建立

拓扑图节点是图像,边是节点之间的距离。
我们使用学习到的距离估计值(来自VNM )、空间邻近性(来自GPS )和时间邻近性(在数据收集过程中)的组合来推断边连接性。如果两个节点对应的时间戳接近( < 2s ),表明它们是快速连续捕获的,那么对应的节点是连接的。
如果两个节点的图像的VNM估计值接近,表明它们是可达的,那么相应的节点也是连通的- -在同一路线的远距离节点之间添加边,并给出一种机制来连接在不同轨迹或一天中不同时间收集相近位置的节点。
为了避免由于视觉观测的混淆而导致VNM低估距离的情况(例如绿色开阔场地或白墙),结合GPS位置估计过滤掉明显较远的潜在边。
在这里插入图片描述

图搜索最优路径

目标是最大化概率 P ( success ∣ v ˉ , ℓ ˉ ) P(\text{success}|\bar{v},\bar{\ell}) P(successvˉ,ˉ),等价于最大化其对数:
R ( v ˉ , t ˉ ) : = ∑ i = 1 n C L I P ( v t i , ℓ i ) − α ∑ j = 1 T − 1 D ( v j , v j + 1 ) , w h e r e   α = − log ⁡ γ . R(\bar{v},\bar{t}):=\sum_{i=1}^{n}\mathrm{CLIP}(v_{t_{i}},\ell_{i})-\alpha\sum_{j=1}^{T-1}D(v_{j},v_{j+1}),\mathrm{where}\ \alpha=-\log\gamma. R(vˉ,tˉ):=i=1nCLIP(vti,i)αj=1T1D(vj,vj+1),where α=logγ.
该问题可以使用动态规划DP求解,详细过程见论文。

VLFM

VL-Nav

Stairway to Success

EmobodiedRAG

背景

  • 近期LLM与3DScene Graph(3DSG)结合的工作在促进机器人执行复杂长时间复杂任务方面的进展令人兴奋
  • 3DSG输入到LLM中会消耗很多token,而LLM输入token数量是有限制的,减少LLM输入token数量可以扩大场景面积并显著加快规划时间
  • LLM被证明会被输入提示中存在的与任务无关的信息分心,并且对于在输入提示开头或结尾提供的信息存在位置偏见。这些限制使得大型语言模型难以识别完成任务所需的重要实体和环境变化。移除与任务无关的信息也会从LLM中移除存在于三维场景图中的相关不确定性,可能导致更稳健的计划。

技术方案

在这里插入图片描述

提出了一个三维场景子图检索框架,用于增强基于LLMs的规划器。

  1. LLM指导的预检索:根据输入指令推断出任务必要的实体及其属性
  2. 建图与索引:当机器人在其操作环境中开始部署时,3DSG的构建开始,每个实体被嵌入为文档。
  3. 检索:首先检索与预检索实体相关的前k个相似文档。这些检索的实体作为进入3DSG的入口点。从这些节点生长出一个子图,以捕捉检索实体之间的关系。
  4. 规划生成:原始指令和检索到的文档被提供给LLM,输出思考 τ t \tau_t τt和下一步的动作 a t a_t at
  5. 反馈机制:思考 τ t \tau_t τt提供了关于LLM规划器当前正在做出、想要做出或计划做出的决策的信息类型的洞察。使用自查询机制来根据思考 τ t \tau_t τt进一步检索任务相关的实体及属性。动作 a t a_t at直接影响环境,然后根据新的观测反过来更新文档或添加新文档。这个反馈循环对于LLM规划器验证其动作是否按预期完成至关重要。

总结

  • 该方法将3DScene Graph作为记忆模块,利用大模型领域的RAG技术高效的提取与任务相关的记忆。类似于人类在每个特定任务中只需要使用部分相关的记忆。达到节约token数量和加快规划速度的效果。
  • 最终实验的成功率不高,表明该技术还是一个处于初期探索的技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shilong Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值