利用视觉-语言模型搭建机器人灵巧操作的支架

25年6月来自斯坦福和德国卡尔斯鲁厄理工的论文“Scaffolding Dexterous Manipulation with Vision-Language Models”。

灵巧机械手对于执行复杂的操作任务至关重要,但由于演示收集和高维控制的挑战,其训练仍然困难重重。虽然强化学习 (RL) 可以通过在模拟中积累经验来缓解数据瓶颈,但它通常依赖于精心设计的、针对特定任务的奖励函数,这阻碍了其可扩展性和泛化能力。因此,当代灵巧操作领域的研究通常基于参考轨迹进行引导。这些轨迹指定了目标(target)手的姿势,用于指导 RL 策略和目标(object)姿势的探索,其能够实现密集的、与任务无关的奖励。然而,寻找合适的轨迹——尤其是针​​对灵巧手的轨迹——仍然是一项重大挑战。然而,由于 RL 最终会细化动作,因此显式参考轨迹中的精确细节通常是不必要的。

本文关键见解是,现代视觉语言模型 (VLM) 已经编码了指定任务和有效指导探索所需的常识性空间和语义知识。给定一个任务描述(例如“打开柜子”)和一个视觉场景,该方法首先使用现成的视觉语言模型 (VLM) 识别与任务相关的关键点(例如,手柄、按钮),然后合成手部运动和物体运动的 3D 轨迹。随后,在模拟环境中训练一个低层残差强化学习 (RL) 策略,以高保真度追踪这些粗略轨迹或“支架”。通过一系列涉及关节运动和语义理解的模拟任务,该方法证明能够学习稳健的灵巧操作策略。此外,还展示该方法,无需任何人工演示或人工设置奖励,即可迁移到现实世界的机械手上。

方法概述如图所示:

请添加图片描述

问题表述

目标是学习一种用于灵巧操作的分层策略,其中高级和低级策略通过基于 3D 关键点的规划或轨迹“支架”进行交互。虽然一些先前的研究假设能够访问真实状态(通常在模拟中),但此类信息在实践中通常只能部分观察到。例如,假设人们能够精确测量现实世界中的目标姿态和速度是不现实的。只有灵巧手的本体感受状态 (w, q, q̇) 是精确已知的,该状态由当前腕部姿态 w、手指关节位置 q 和速度 q̇ 组成。假设访问的是 RGB 图像 I、深度 D 以及用于传达任务的语言指令 L,而不是真实状态。按照灵巧操作的标准做法,用一个绝对动作空间,该空间由期望的手腕 wtarg 和手指关节位置 qtarg 组成,即 (wtarg, qtarg) ∈ A。

高级策略 πh 根据语言指令 L 生成一个基于粗略 3D 关键点的规划 τ,并在时间 t = 1 处生成一个初始高级观测值 oh_1,其中包含初始图像 I_1 和手腕位置 w_1。当使用 VLM 实例化 πh 时,假设它能够将图像空间中的 2D 关键点 u(i) 投影到世界坐标系中 3D 关键点 x(i),这在实践中很容易通过深度信息 D 和相机参数(内外)实现。最终规划 τ 中的3D关键点 k 的数量,由指令 L 指定。将这些关键点枚举为x(1),…x(k),并通过简写 1:T缩写为长度为 T 的时间序列。最终的关键点规划 τ 包含 k 个3D关键点序列 x(1)_1:T,…x(k)_1:T 和一个预测手腕姿势序列 w ̃_1:T。该粗略规划通过 k 个关键点序列(用于捕捉目标运动)封装任务信息,并通过手腕位置 w 封装了指导智体探索的信息。

高级策略仅为腕关节 w 提供粗略的规划,而非手指关节位置 q,后者将由低级策略通过强化学习进行学习。

低级策略 πl 生成腕关节和手指动作 a_t 来执行关键点规划 τ。假设可以访问一个关键点追踪模型,该模型在时间 t = 1 时给定一个初始 3D 关键点 x(i)_1,能够追踪其随时间推移的位置,从而生成 xˆ_t(i) 的估计值。然后,低级策略 πl 通过强化学习进行优化,使用奖励函数来鼓励估计的 3D 关键点 xˆ(i) 与规划 τ 生成的 x(i)_t 之间的一致性。为了完成此任务,它将低级观测值 ol_t(包含本体感受状态 (w, q, q̇) 和估计的关键点 xˆ(1)_t, ……xˆ(k)_t)作为输入,以及规划 τ_t:T 的所有未来步骤。

通过VLM生成高级策略的轨迹

使用VLM实现高级策略 πh,该学习器必须能够有效地将任务描述 L 和初始图像 I_1 转换为粗略运动规划 τ,以便 πl 完成。这需要高度的语义和空间推理能力:不同关键点 xˆ_1:T(i) 的路径必须遵循目标之间的理想关系(例如,将苹果放在砧板上)和物理约束(例如,锤头必须保持与手柄连接)。同时,预测的手腕轨迹 w ̃_1:T 必须保持靠近目标物体以便于操作。使用VLM分三个阶段生成粗略关键点规划 τ:(1) 语义关键点检测,(2) 粗略轨迹生成,以及 (3) 插值。如图左侧提供可视化概览。此外,还可以使用少样本提示 (few-shot prompting) 来改进生成的规划 τ。

请添加图片描述

关键点检测。首先,VLM 在图像 I 中识别与完成文本 L 中描述的任务相关的 k 个二维关键点 u(1), …, u(k)。VLM 会根据该任务所需的关键点进行提示。例如,对于“敲击”任务,关键点包括锤子的柄和头;对于语义拾取任务,关键点包括物体的位置及其所需位置。由于 VLM 在二维图像平面中运行,利用深度信息将二维关键点 u 提升到三维世界坐标 x。

轨迹生成。其次,给定文本描述 l,VLM 为每个初始三维关键点 x(1), …, x(k) 和手腕位置 w_1 生成长度 n < T 的航点序列。总的来说,这将产生 (k + 1) × n 个 3D 航点,它们将作为规划 τ 的基础。虽然第一个关键点检测阶段依赖于 VLM 的图像理解,但此阶段更多地依赖于空间理解和推理——VLM 必须将语义描述转化为动作,例如,“锤击”的含义或门如何打开,同时尊重关键点之间的物理约束以及手和被操作目标之间的接近度。注:没有让 VLM 生成整个视界 T 的关键点轨迹,因为这样做可能更加困难且不准确。相反,每个航点的质量比数量更重要,因为低级 RL 可以补偿位置上的小错误,但不能补偿推理中的大错误。

插值。最后,虽然为所有关键点和智体的手腕姿势提供了长度为 n 的粗略航点轨迹,但直接使用这些航点作为运动目标可能会导致运动过快或抖动。因此,额外应用线性插值,将 n 个航点转换为长度为 T 的序列,例如 x(i)_1:T,以形成用于训练低级策略 πl 的最终规划 τ。
少样本改进。虽然 VLM 生成的关键点规划 τ 通常是正确的,但它们并非绝对可靠。例如,有时高级策略 πh 会翻转世界坐标轴,导致关键点规划难以理解。如果 VLM 规划未能完成任务,此类错误将无法挽回。然而,VLM 的准确率通常可以通过提供上下文示例来提高 [9, 36]。在部署最终系统后,可以将低级策略成功执行的规划示例用作未来生成的上下文示例。假设 m 个成功规划 τ(1), …, τ(m),可以将高级策略提示为 πh(τ|s_1,τ(1), …,τ(m)),从而为低级策略生成更好的规划。正如实验所示,随着上下文规划的改进,反复重复此过程可以进一步提高性能。

基于强化学习的低级控制

低级策略 πl 确保 πh 提供的关键点规划 τ 能够得到有效跟踪。

用残差强化学习 [13, 22] 来学习 πl,将其形式化为一个基于低级观测空间 Ol 和动作空间 A 的“规划”条件马尔可夫决策过程 (MDP),其视界为 T。

为了考虑关键点估计中的噪声,假设动态过程为随机 p(o_t+1|o_t, a_t),并且初始状态 ol_1 ∼ pinit_τ 始终与高级规划 τ 一致,以确保其有效性。

简单来说,πl 的优化目标是最大化从 πh 中采样的规划预期累积奖励,max_πl E_τ∼πh(·|oh_1) E_ol_1:T ∼πl(·|τ)[∑︁r_τ (ol_t)],其中 πl(·|τ) 表示在 πl 和 pinit_τ 下长度为 T 的完整轨迹分布。

密集关键点奖励。基于强化学习的标准灵巧操作方法通常需要复杂的、手工制作的奖励函数。然而,如果有一个高级关键点规划 τ 来规定所有目标应该如何移动和交互,可以简单地通过关键点距离来奖励智体遵循规划。虽然类似的想法已被用于跟踪参考演示 [6] 中的真实物体姿态,但在此选择跟踪关键点,因为这些关键点不需要完全可观测性。

残差策略。为了引导智体朝着高级规划 τ 指定的目标前进,在绝对姿态动作空间 A 中采用“残差”强化学习 [13, 22]。具体来说,学习的低级策略 π_θl 预测的是相对于手腕规划 w ̃_t 的偏移量 ∆w,而不是绝对动作 wtarg。这保证了学习的策略默认遵循规划的手腕轨迹 w ̃1:T,并且 ∆w 的裁剪确保其不会偏离太远。这种残差方法利用 VLM 计划编码的世界知识来指导低级策略探索状态空间的相关部分,以完成目标。实际上,πl 被实现为一个多层感知器,其中关键点以固定顺序提供,并且未来的规划步骤 τ_t:T 被下采样到固定长度。

终止条件。为了提高学习效率,如果跟踪误差超过阈值 δ,提前终止迭代。这个提前停止的标准可以作为一个强有力的监督信号,鼓励策略保持接近预期轨迹。为了进一步指导学习,引入了一个课程:初始阈值 δ_init 在训练过程中线性退火至 δ_init/2。这有助于在早期阶段进行广泛的探索,同时促进后期精确的轨迹跟踪。

完整流程

上述组件定义生成单个规划 τ∼πh(·|s_1) 并使用它来学习低级残差策略 πl 的过程。

训练。最终的低级策略必须能够在πh生成的所有规划中表现良好,这些规划在初始条件、选定的关键点位置和生成的动作方面可能有所不同。因此,按照目标,针对灵巧手物体初始姿态的变化来训练整个系统。对于环境中的N个初始条件中的每一个,从 πh 中采样相应的高级规划。然后,使用PPO [54]在大规模并行模拟环境中从N个初始条件和规划集合中随机采样,从而训练低级策略。在模拟中,使用真值物体信息跟踪关键点,以生成低级观测值 ol。跨随机规划进行训练对于 πl 保持对 πh 生成的关键点和规划的鲁棒性至关重要。

评估。在测试时,将环境的初始条件随机化。之后,用 VLM πh 生成一个新规划,并将其提供给冻结的学习策略 π_θl 进行闭环控制。高级策略继承了底层 VLM 对视觉扰动的鲁棒性,使其能够轻松迁移到现实世界。用捕获的 RGB-D 图像生成 τ,并在现实世界中部署低级策略零样本训练。用姿态估计器估计低级观测值 ol 的关键点位置 [66]。

任务套件。用 ManiSkill 模拟器 [41,58] 和 Allegro Hand 模型构建一个评估套件,旨在评估四项核心灵巧操作能力,而运动规划对于这些能力而言比较困难:i)语义理解,ii)非结构化运动,iii)铰接物体操作,以及 iv)精确操作。如图描述八个任务中的每一个,每个类别两个。每个任务都由语言指令 L 指定,而不是奖励函数。例如,“移动苹果”任务的指令是“将苹果移到砧板上”。高级 VLM πh 另外由提示引导以检测指定的关键点。至关重要的是,任务集评估的能力难以设计奖励函数(铰接体操作或需要复杂和非结构化运动)或难以使用经典运动规划来指定(需要语义知识或精度)。

请添加图片描述

方法。鉴于问题设置的新颖性,很少有适用的基线模型能够同时满足语言条件、无需演示且无需进行真实状态估计。因此,实验主要集中在与各种预言机 (Oracle) 和消融 (Ablations) 进行比较:
• 预言机关键点和轨迹:此基线模型为每个任务使用固定的、手动定义的关键点和硬编码的轨迹,代表在完美语义理解和关键点检测的情况下的性能上限。
• 减少航点:人为地限制 VLM 以生成更短的航点序列,例如长度为 3 而不是 n = 20,从而降低可通过关键点和手腕表达的运动的复杂性。
• 预先记录的轨迹:此方法在测试时重复使用训练集中预先记录的轨迹,从而消除了对新场景的适应性。

评估系统的两个版本:零样本版本,其中视觉语言模型 (VLM) 不接收任何示例规划;以及少样本 100 个初始状态和相应的计划τ,用于使用 PPO 训练 πl [54]。

评估。为了进行评估,构建特定于任务的二元成功指标(例如,物体到达目标位置、门打开到最小角度)来衡量性能。所有策略评估均针对 100 个初始状态进行,其中包含新目标配置和手势。对每种配置进行了 20 次试验,总共进行了 2000 次评估,并对三个种子进行平均结果计算。

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

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

相关文章

面试拷打-20250701

memcopy和memmov 详细解释 示例1&#xff1a;不重叠的内存区域 正常复制。 示例2&#xff1a;重叠的内存区域 原始数据&#xff1a;src2是一个包含字符串"HelloWorld"的字符数组。使用memcpy&#xff1a; memcpy(src2 2, src2, 5);试图将src2中的前5个字符复制…

什么是 BigKey?

Redis BigKey 深度解析&#xff1a;识别、危害与优化方案 什么是 BigKey&#xff1f; 在 Redis 中&#xff0c;BigKey 是指存储大量数据的单个键&#xff0c;这些键通常具有异常大的内存占用或包含大量元素。BigKey 不是由数据类型定义&#xff0c;而是由其资源消耗决定的。 …

量化选股策略 聚宽

# 量化选股策略完整分析与优化建议 ## 策略整体架构分析 这个量化交易策略主要由以下几个核心部分组成&#xff1a; 1. **初始化设置**&#xff1a;配置基准指数、交易参数和全局变量 2. **选股逻辑**&#xff1a;通过财务指标筛选优质股票 3. **股票过滤**&#xff1a;排除…

Python 数据分析:numpy,抽提,布尔索引2。

目录 1 示例代码2 欢迎纠错3 论文写作/Python 学习智能体------以下关于 Markdown 编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右S…

解决leetcode第3597题分割字符串

3597. 分割字符串 难度&#xff1a;中等 问题描述&#xff1a; 给你一个字符串 s&#xff0c;按照以下步骤将其分割为 互不相同的段 &#xff1a; 从下标 0 开始构建一个段。 逐字符扩展当前段&#xff0c;直到该段之前未曾出现过。 只要当前段是唯一的&#xff0c;就将其…

电源芯片之DCDC初探索ING

1. 概述 DC-DC转换器的意思是直流变直流&#xff08;不同的直流电源值得转换&#xff09;&#xff0c;是一种在直流电路中将一个电压值的电能变为另一个电压值的电能装置。 DC-DC转换器一般由控制芯片、电感线圈、二极管、三极管、电容器构成。 2. 基本拓扑结构 2.1 非隔离…

JavaEE:分布式session

一、使用Redis存储分布式session&#xff1a; 1.SpringBoot整合Redis&#xff0c;见如下地址&#xff1a; JavaEE&#xff1a;SpringBoot整合Redis_a526001650a-CSDN博客 2.代码实现分布式session存储(此处以token为例)&#xff1a; Autowired private RedisTemplate<St…

OpenCV CUDA模块设备层-----“大于阈值设为零” 的图像处理函数 thresh_to_zero_inv_func()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 OpenCV 的 CUDA 模块&#xff08;cudev&#xff09; 中的一个仿函数生成器&#xff0c;用于创建一个 “大于阈值设为零” 的图像处理函数对象。 …

FastGPT与MCP:解锁AI新时代的技术密码

一、AI 浪潮中的新星&#xff1a;FastGPT 与 MCP 登场 在当今科技飞速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;已成为推动各行业变革的核心力量。从智能语音助手到复杂的图像识别系统&#xff0c;AI 的应用无处不在&#xff0c;而其中的关键技术 —— 语言模…

browser-tools-mcp + excel-mcp-server + cursor 实现读取网页信息自动写入Excel

browser-tools-mcp excel-mcp-server cursor 实现读取网页信息自动写入Excel 文章目录 browser-tools-mcp excel-mcp-server cursor 实现读取网页信息自动写入Excel一、安装node.js和npm1、安装nvm2、安装最新版本的node.js 二、安装browser-tools-mcp1、安装 BrowserTools…

Linux安装JDK和Maven

Linux安装JDK和Maven 安装JDK1.8 oracle官网 https://www.oracle.com 下载包地址&#xff1a;https://www.oracle.com/java/technologies/downloads/archive/ 步骤1&#xff1a;官网下载压缩包 点击想要下载的版本&#xff0c;需要登录Oracle的账号&#xff0c;没有的话需要…

MySQL主从复制与数据库集群深度解析

一、主从复制核心架构与复制模式 MySQL主从复制是构建分布式数据库的基础技术&#xff0c;通过日志同步机制实现数据冗余与读写分离。其核心架构分为三层&#xff1a; 日志记录层&#xff1a;主库将数据变更写入二进制日志&#xff08;Binlog&#xff09;网络传输层&#xff…

安装emsdk 4.0.10报Connection reset by peer解决

出错如下: 使用浏览器下载所需文件 https://storage.googleapis.com/webassembly/emscripten-releases-builds/deps/node-v22.16.0-darwin-x64.tar.gz 移动到到emsdk/downloads下 修改emsdk.py download_even_if_exists=True 设置环境变量

win11,visual studio 2022,配置dcmtk,opencv

一、配置dcmtk 1 文件下载---地址&#xff0c;Software Development based on DCMTK - dicom.offis.de 源文件下载&#xff0c;选择.zip下载&#xff0c;.tar.gz为Linux和macOS下面常见的压缩包 支持库下载 解决 DCMTK 在 Windows 上编译时所需的依赖库问题 libiconv GNU有…

2025 最新 Appium Inspector 环境搭建教程

1 环境搭建背景 版本升级&#xff1a;Appium 2.0 版本替代 1.x&#xff0c;原 Appium Desktop 因安全漏洞和功能废弃不再适用。需求痛点&#xff1a;Android Studio 仅支持 debug 程序元素定位&#xff0c;需通过 Appium Inspector 实现通用 APK 元素定位。 2 环境搭建步骤 …

Vue 安装使用教程

一、Vue 简介 Vue&#xff08;读作 /vjuː/&#xff0c;类似于“view”&#xff09;是一款用于构建用户界面的渐进式 JavaScript 框架。它易于上手&#xff0c;轻量高效&#xff0c;适合快速构建前端界面&#xff0c;广泛应用于各类 Web 项目中。 二、Vue 安装方式 2.1 直接通…

通过http调用来访问neo4j时报错,curl -X POST 执行指令报错

curl -X POST ^ More? http://localhost:7474/db/neo4j/tx/commit ^ More? -H Authorization: Basic bmVvNGo6MTIzNDU2Nzg ^ More? -H Content-Type: application/json ^ More? -d { \"statements": [{\"statement": \"MATCH (n) RETURN n, label…

Node.js到底是什么

我想像是npm、vite这些名词大家都很熟悉&#xff0c;对它们的作用也有大致印象&#xff0c;但是可能都像我一样不明白Node.js到底是什么&#xff0c;这里给大家带来一个简单介绍。 Node.js 详解&#xff1a;历史发展、生态构建与底层原理 一、Node.js 的起源与历史发展 诞生背…

Rust与Go:GAN实战对决

Rust与Go生成对抗 GAN概念 GAN的全称是Generative Adversarial Network,中文翻译为生成对抗网络。这是一种深度学习模型,由两部分组成:生成器(Generator)和判别器(Discriminator)。生成器的任务是创建数据,而判别器的任务是区分生成器创建的数据和真实数据。这两部分…

pyspark driver 上传pod本地文件到对象存储

前提: pyspark driver on k8s,环境变量或者spark_home/jars 下有相关对象存储的包,报错包问题就这里添加jar即可 from py4j.java_gateway import java_import from pyspark.sql import SparkSession# ----------------------------------------------------------------------…