通过面向目标的奖励弥合人与机器人的灵活性差距

24年10月来自纽约大学的论文“Bridging the Human to Robot Dexterity Gap through Object-Oriented Rewards”。

直接通过人类视频训练机器人是机器人技术和计算机视觉领域的一个新兴领域。尽管双指机械手在双指夹持器方面取得了显著进展,但以这种方式让多指机械手学习自主任务仍然充满挑战。造成这一困难的一个关键原因是,由于形态差异,在人手上训练的策略可能无法直接迁移到机械手上。本研究提出 HUDOR 技术,它能够通过直接从人类视频中计算奖励来在线微调策略。重要的是,该奖励函数基于从现成的点跟踪器中获取的面向目标轨迹构建,即使人手和机械手之间存在形态差异和视觉差异,也能提供有意义的学习信号。给定一段人类解决任务(例如轻轻打开音乐盒)的视频,HUDOR 能够让四指 Allegro 机械手仅通过一小时的在线交互就能学会该任务。在四项任务中的实验表明,HUDOR 的性能比基线提升 4 倍。

人类在日常生活中能够毫不费力地完成各种灵巧的任务 [1]。让机器人具备类似的能力对于它们在现实世界中的有效部署至关重要。为此,最近的进展使得双指夹持器 [2, 3, 4, 5] 能够利用从遥控机器人数据中进行的模仿学习 (IL) 来学习多模态、长视界和灵巧的行为。然而,事实证明,将此类方法扩展到多指手的复杂任务具有挑战性。

将基于遥控操作的学习应用于多指手的挑战源于两个关键问题。首先,即使是通过这种方式实现中等程度的鲁棒性也需要大量数据。涉及双指夹持器 [6, 7, 8, 9] 的任务通常需要数千次演示来训练鲁棒策略。对于动作维度更大的手以及需要更高精度和灵巧性的任务,这种数据需求可能甚至更大。其次,由于在控制多个自由度时需要低延迟和持续反馈,遥操作多指手提出一个具有挑战性的系统问题 [10, 11, 12]。这使得收集完成灵巧任务所需的大量数据变得更加困难。

一种绕过遥操作的替代方法,是使用人类执行任务的视频来为机器人制定策略 [13, 14, 15]。然而,之前的大多数方法都需要额外的遥机器人演示 [16] 或人为干预学习 [17] 来进行微调。这些额外的信息通常是必要的,以弥合人手(如在人类视频数据中看到的那样)和机器人手(在机器人交互中观察的那样)之间的形态和视觉差异。

机器人灵巧操作学习。学习多指手的灵巧策略一直是一个长期存在的挑战,并引起机器人学习社区的广泛关注 [18, 19, 10]。一些研究通过在模拟环境中训练策略并将其部署到现实世界中来解决这个问题 [20, 19]。尽管这种方法在手部操作方面取得了深刻的成果 [21, 22],但在操作场景中的物体时,缩小模拟与现实之间的差距变得十分困难。其他研究则侧重于开发不同的遥操作框架 [23, 24, 11, 25],并使用通过这些框架收集的机器人数据训练离线策略。虽然这些框架响应速度很快,但由于当前机械手形态不匹配,且远程操作员缺乏触觉反馈,在不直接与物体交互的情况下远程操作灵巧手对用户来说仍然很困难。

从人类视频中学习。为了利用更容易获取的来源扩大数据收集,视觉和机器人社区一直致力于从人类视频中学习有意义的行为和模式 [31, 32, 33, 34]。一些研究侧重于学习模拟器,这些模拟器使用生成模型 [32, 35, 31] 从人类视频中紧密模拟机器人的真实环境,并使用这些模拟器训练策略,通过预测潜在的未来结果来做出决策。其他研究则使用互联网规模的人类视频来学习更高级的技能或 affordance [33, 36]。然而,这些研究要么需要低级策略来学习与物体交互的动作原语 [33],要么只关注单个接触点即可完成操作的简单任务 [36]。还有一些方法利用现场人类视频来学习多阶段规划 [16, 14],但需要额外的机器人数据来学习低级物体交互。值得注意的是,所有这些研究都集中在双夹持机器人上,其操纵能力有限,物体的关节较少。一些研究[17, 37, 38]利用多台摄像机结合手部运动捕捉系统采集的场景内人体视频,解决灵巧手的这一问题。这些研究要么侧重于简单的抓取任务[38, 37],要么需要针对灵巧任务设置一个带有人工反馈的在线微调阶段[17]。此外,这些方法的离线学习过程需要大量的预处理,以便从环境点云中屏蔽人手。

这项工作提出 HUDOR,一种通过在线模仿学习来弥合人类视频和机器人策略之间差距的新方法。HUDOR 引入了一个框架,用于从单个场景中的人类任务执行视频中学习灵巧策略。其方法包含三个步骤:(1)使用 VR 头戴设备和 RGB 摄像头录制人类视频及其对应的手势轨迹;(2)使用姿势变换和全-机器人逆运动学 (IK) 将手势传输到机器人上并执行;(3)使用强化学习 (RL) 成功模仿专家轨迹。如图所示:

请添加图片描述

机器人设置和人体数据采集

硬件设置包括一个 Kinova JACO 6 自由度机械臂,以及一个 16 自由度四指 Allegro 手 [10]。两台 RealSense RGBD 摄像头 [39] 放置在手术台周围,用于标定和视觉数据采集。Meta Quest 3 VR 头戴设备用于收集手部姿势估计值。第一步是计算 VR 框架和机器人框架之间的相对变换,以便将记录的手部姿势轨迹从人体视频直接传输到机器人,如图所示。使用两个 ArUco 标记点(一个在手术台上,另一个在 Allegro 手的顶部)来计算相对变换。第一个标记点​​用于定义世界框架并将指尖位置从 VR 框架转换到世界框架,而第二个标记点用于确定机器人底座和世界框架之间的变换。

请添加图片描述

使用 Quest 3 VR 头戴设备上现有的手势检测器收集人类手势估计值,并使用 RGBD 摄像头捕捉视觉数据。

使用开发的 VR 应用,用户可以捏住右手的食指和拇指,开始用自己的手直接与物体交互。收集演示数据后,用户可以再次捏住手指,表示演示结束。计算演示开始时相对于世界坐标系的手腕姿势,并在部署过程中将机器人手臂初始化到该初始手腕姿势。这使得机器人能够从合适的起始位置开始探索。

在数据收集过程中,会记录所有 t = 1 … T 的指尖位置 a_rt 和图像数据 ot,其中 T 是轨迹长度。由于这些分量是以不同的频率收集的,因此会根据收集的时间戳将它们对齐,从而为每个时间 t 生成同步的三元组 (a_rt, o^t)。然后将数据下采样至 5 Hz。

为了确保机器人的指尖相对于其底座遵循所需的位置,为整个机器人手臂系统实现一个自定义的逆运动学 (IK) 模块。该模块对关节角度使用梯度下降法,利用机器人指尖相对于关节角度的雅可比矩阵,最小化所需指尖位置与当前指尖位置之间的距离 [41]。对于 IK 优化器,对手部和手臂关节应用不同的学习率,使其能够优先处理手部运动。手部学习率设置为手臂学习率的 50 倍,从而实现更自然、更精确的手指控制。总而言之,IK 模块将所需的指尖位置 a_rt 以及手部和手臂的当前关节位置 jt 作为输入,并输出达到目标所需的下一个关节位置 j∗t+1 = I(a_rt, j^t)。

使用上述标定和 IK 程序,机器人手臂系统可以直接从场景中的人体视频中跟踪指尖轨迹。如图展示使用的人类演示。

请添加图片描述

残差策略学习

由于人机形态差异以及 VR 手势估计的误差,即使物体位于同一位置,单纯地在机器人上重放重定位的指尖轨迹通常也无法成功完成任务。为了缓解这个问题,利用强化学习 (RL) 来学习一种在线残差策略,以增强轨迹重放。传统的现实世界机器人强化学习算法,依赖于基于图像的匹配奖励 [42, 30, 29] 等简单方法,并使用领域内演示数据得出的奖励函数。然而,由于人手和机器人手的视觉外观存在显著差异,这些方法无法提供有效的奖励信号。为了弥补这一域差距,提出了一种以目标为中心的轨迹匹配奖励算法。

a) 目标点跟踪和轨迹匹配:奖励计算涉及使用现成的计算机视觉模型来跟踪感兴趣物体上点的运动。计算人类专家视频中这些点的二维轨迹与机器人策略展开之间的均方误差,并将其作为在线学习框架中每个时间步的奖励。

目标状态提取:给定一条轨迹 τ = [o1, … , oT],其中 T 是轨迹长度,ot 是时刻 t 的 RGB 图像。将第一帧 o1 作为基于语言的“SAM”[43, 44] – langSAM 的输入。langSAM 使用文本提示和 GroundingDINO [45]提取物体的边框,然后将其输入到SAM [44]生成掩码。langSAM对应于 o1 的输出,是初始物体位置 P1 的分割掩码,P^1表示为物体上N个检测点的集合,其中N是超参。参数 N 决定目标追踪的密度,并根据目标在摄像机视图中的大小进行调整。

点跟踪:掩码 P1 用于初始化基于 Transformer 的点跟踪算法 Co-Tracker [46]。给定 RGB 图像的轨迹 τ 和第一帧分割掩码 P1,Co-Tracker 会在整个轨迹 τ 上跟踪图像中的点 p_it = (x_it, y_it),其中 t ∈ {1…T},P1 = [p_11,…p_N1]。使用 τp = [P1,…P^T] 表示由跟踪点集组成的点轨迹。如图所示说明了人类和机器人轨迹的目标跟踪情况。

请添加图片描述

匹配轨迹:首先,定义两个附加量:检测点的质心 ˆPt 和时间 t 时的平均平移 δ_transt。 δ_transt 定义为 Pt 中所有点相对于 P1 的平均位移。给定时间 t 的两个独立目标运动,一个对应于机器人 T_Rt,另一个对应于人类 T_H^t,奖励通过计算它们之间的负均方根误差来计算。

b) 探索策略:选择动作维度子的一个集进行探索和学习。例如,在卡片滑动任务中,只关注拇指的 X 轴和 Y 轴,而不是探索所有手指的所有轴。这种方法加快学习过程并实现快速适应。对于探索策略,使用预定的加性 Ornstein-Uhlenbeck (OU) 噪声 [47, 48] 来确保机器人动作流畅。

在提取有意义的奖励函数并确定动作空间的相关子集后,通过使用 DrQv2 [49] 最大化中每个 episode 的奖励函数,在该子集上学习残差策略 π_r(·)。

残差策略 a_+^t = π_r() 在时间 t 的输入包括:(a) 人类重定位的指尖相对于机器人基座 a_r^t 的位置,(b) 当前机器人指尖位置的变化 ∆s^t = s^t − s^t−1,© 机器人轨迹 Pˆ_R^t 上追踪点的质心,以及 (d) 在 t 时刻的目标运动 T_Rt。最后,计算执行的动作:at = a_r^t + a_+^t。
动作 a^t 被发送到 IK 模块,该模块将其转换为机器人的关节命令。随着机器人与目标交互的经验不断积累,该策略会使用 DrQv2 进行改进。

本文实验四项灵巧任务,如图所示。图中提到的探索轴均相对于机器人底座。

请添加图片描述

a) 拾取面包:机器人必须找到一块橙色面包,将其拾起并保持一段时间。在验证过程中,面包的定位和方向应在 15cm × 10cm 的空间内。在此任务中探索所有手指的 X 轴。用于检索遮罩的文本提示是“橙色面包”。
b) 滑动卡片:机器人必须用拇指找到并滑动一张薄卡片,然后用其余手指支撑卡片将其拾起。在验证过程中,卡片的定位和方向应在 10cm × 10cm 的空间内。用于检索物体掩码的文本提示是“橙色卡片”。仅探索拇指的 X 轴和 Y 轴。
c) 打开音乐盒:机器人必须找到并打开一个小音乐盒。它用拇指稳定盒子,同时用食指打开盒盖。验证过程中,盒子被放置在10cm×10cm的空间内并定向。探索拇指和食指的所有轴,使用的文本提示是绿色音乐盒。
d) 纸张滑动:机器人必须将给定的纸张向右滑动。在验证过程中,纸张被放置在 15 厘米 × 15 厘米的空间内并定向。用于检索面具的文本提示是一张印有披萨图案的蓝色纸张。纸张向右移动的距离越远,奖励就越高。此任务的成功程度以纸张向右移动的距离(以厘米为单位)来衡量。探索所有手指的 X 轴和 Z 轴。

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

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

相关文章

C++入门篇(下)

目录 1、引用 1.1 引用概念 1.2 引用特性 1.3 常引用 1.4 使用场景 1.4.1 引用做参数 1.4.2 引用做返回值 1.5 引用和指针的区别 2、内联函数 2.1 概念 2.2 特性 3、auto关键字 4、基于范围的for循环 5、指针空值nullptr 5.1 C98 中的指针空值处理 5.2 C11 …

Multi-Query Attention (MQA) PyTorch 实现

和多头注意力机制的唯一区别:K、V在不同的head之间实现了复用,而对于不同的头,Q依然不同。 因此这里的代码和标准多头注意力的实现也是几乎完全一样: import torch import torch.nn as nn import torch.nn.functional as Fclass…

visual studio无法跳转到函数定义、变量定义、跳转函数位置不准问题解决

参考:https://blog.csdn.net/snakehacker/article/details/135438353 程序有时会出现大部分函数都不能准确的从头文件中正确定位到函数定位,这是因为数据库错乱造成的,可以通过重构数据库来解决,操作方法如下: 菜单栏:工具——选项 文本编辑…

Java优雅实现判空方法

在 Java 开发中,频繁的 if (obj ! null) 判空代码会导致代码冗余、可读性差,且容易遗漏判空导致 NullPointerException。以下从 语言特性、设计模式、工具类 和 编码规范 四个维度,结合实际案例,详解如何优雅处理空值问题。 一、…

京东百亿补贴杀入外卖市场:一场关乎即时零售未来的攻防战

当美团和饿了么在外卖市场双雄争霸十余年之际,京东突然以"百亿补贴免佣金"的组合拳高调入场。这场看似跨界的外卖大战,实则是互联网巨头对万亿级即时零售市场的生死争夺。 外卖只是表象,即时零售才是终极战场 京东黑板报4月10日官…

UNION和UNION ALL的主要区别

UNION和UNION ALL的主要区别在于处理重复数据和排序的方式。 UNION和UNION ALL都是SQL语言中用于合并两个或多个SELECT语句结果集的关键字。它们的主要区别如下: 1、对重复结果的处理:UNION在进行表链接后会筛选掉重复的记录,而UNION ALL不会…

七段码 路径压缩 并查集 dfs

12.七段码 - 蓝桥云课 将七个二极管映射为 1-7 开一个二维矩阵 为 相邻的边连上线 edge[1][2] edge[1][6] 1;edge[2][1] edge[2][3] edge[2][7] 1;edge[3][2] edge[3][4] edge[3][7] 1;edge[4][3] edge[4][5] 1;edge[5][4] edge[5][6] edge[5][7] 1;edge[6][1…

科技如何改变世界?

技术是我们日常生活中不可或缺的一部分,以至于我们常常忘记了它的重要性。如果你正在科技领域工作,或者希望进入该领域,你可能是众多有使命感的人之一,希望知道自己的日常工作能为社会或地球的长远利益做出贡献。 别再四处寻找了…

抽象的https原理简介

前言 小明和小美是一对好朋友,他们分隔两地,平时经常写信沟通,但是偶然被小明发现他回给小美的信好像被人拆开看过,甚至偷偷被篡改过。 对称加密算法 开头的通信过程比较像HTTP服务器与客户端的通信过程,全明文传输…

高级java每日一道面试题-2025年4月13日-微服务篇[Nacos篇]-Nacos如何处理网络分区情况下的服务可用性问题?

如果有遗漏,评论区告诉我进行补充 面试官: Nacos如何处理网络分区情况下的服务可用性问题? 我回答: 在讨论 Nacos 如何处理网络分区情况下的服务可用性问题时,我们需要深入理解 CAP 理论以及 Nacos 在这方面的设计选择。Nacos 允许用户根据具体的应用…

python解压文件 zip tar.gz tar.xz

以下代码为解压zip包 tar包文件 zip_path:文件绝对路径 output_folder:文件解压后存放的文件夹路径 def extract_file(zip_path, output_folder):# 支持解压zip tar tar.gz tar.xz .tar.bz2# 确保输出文件夹存在os.makedirs(output_folder, exist_okT…

网络基础(协议,地址,OSI模型、Socket编程......)

目录 一、计算机网络发展 二、协议 1.认识协议 2.OSI七层模型 3.TCP/IP 五层(或四层)模型 4.协议本质 三、网络传输流程 1.MAC地址 2.协议栈 3.IP地址 IP地址 vs MAC地址 1. 核心区别 2. 具体通信过程类比 3. 关键总结 为什么需要两者? 4.协议栈图解…

生成式AI对话中提示词策略:明确问题、明确目标和提供背景信息是最有效的策略

生成式AI对话中提示词策略:明确问题、明确目标和提供背景信息是最有效的策略 最有效的提示词策略包括明确问题、明确目标和提供背景信息。普适性有效提示词策略可分为三类:明确需求与精确指引型、清晰解释与逻辑排序型、拆解任务与多样化表达型。[局限]数据来源于中国用户,…

AtCoder ABC402 ABCD

A - CBC 把大写字母按顺序连起来 B - Restaurant Queue 一眼队列,stl模拟就行 C - Dislike Foods 显然,每次克服暴力枚举每个菜肴会超时。 然而题目中给了每个菜肴的配菜个数,不妨换过来统计每个配菜用在了哪些菜肴。每次克服时&#x…

Transformer 架构 - 解码器 (Transformer Architecture - Decoder)

欢迎回到我们的 Transformer 系列教程!在上一篇中,我们详细探讨了 Transformer 的编码器,它负责将输入的源序列(比如源语言句子)转换为一系列包含丰富上下文信息的向量表示。 现在,我们将把目光投向 Transformer 的另一半——解码器 (Decoder)。解码器负责接收编码器的输…

神经网络与模型训练过程笔记

1.专有名词 ANN 人工神经网络,一种受生物神经元启发的监督学习算法。输入数据通过网络中的层级函数传递,激活特定神经元。函数复杂度越高,模型对数据的拟合能力越强,预测精度越高。 偏置项 其中x下表从1开始的是输入变量&#xf…

【计算机网络 | 第二篇】常见的通信协议(一)

HTTP和HTTPS有什么区别? 端口号:HTTP默认是80端口,HTTPS默认是443。 URL前缀:HTTPHTTP 的 URL 前缀是 http://,HTTPS 的 URL 前缀是 https://。 安全性和资源消耗:HTTP协议运行在TCP上,都是明…

【python实用小脚本系列】用 Python 自己手搓一个给视频“静音”的小脚本,批量处理,轻松高效制作“无声电影”!

嘿,小伙伴们!今天我来给大家介绍一个超实用的 Python 小工具——一个能给视频“静音”的“声音消除器”!是不是听起来很酷?想象一下,你可以把任何有声视频变成无声视频,是不是很有趣?接下来&…

【gpt生成-总览】怎样才算开发了一门编程语言,需要通过什么测试

开发一门真正的编程语言需要经历完整的设计、实现和验证过程,并通过系统的测试体系验证其完备性。以下是分阶段开发标准及测试方法: 一、语言开发核心阶段 1. 语言规范设计(ISO/IEC 标准级别) ​​语法规范​​:BNF/…

leetcode222 完全二叉树的节点个数

完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层(从第 0 层开始),则该层…