Open-TeleVision——通过VR沉浸式感受人形机器人视野的远程操作

前言

7.3日,我司大模型机器人(具身智能)线下营群里的一学员发了《Open-TeleVision: Teleoperation with Immersive Active Visual Feedback》这篇论文的链接,我当时快速看了一遍,还是有价值的一个工作(其有受mobile aloha工作的启发),一直想做下解读来着,无奈过去一周一直在弄mamba2的解读,所以没来得及弄

但后来考虑到

  1. 7.11,在和一长沙的朋友聊到我司给工厂的机器人解决方案时,他无意中也发了「Open-TeleVision」这个工作的链接给我,说他也在关注这个团队,并表示“VR+具身智能,应用场景太大了”
  2. 之前本计划解读完mamba2之后,便解读open-television、我司7方面review微调gemma2,再之后是TTT、nature审稿微调
    但没想​​7.12这天,flashattention3又来了..,实属应接不暇
    故打算暂停对mamba2的修订(过几天后继续),而先开始解读这个Open-TeleVision了

故,本文来了

第一部分 Open-TeleVision的原理、创新点与技术架构

1.1 Open-TeleVision的原理与创新点

1.1.1 之前的各种远程操作方法

基于模仿学习的机器人在本博客的前几篇机器人文章中已经介绍过很多了,其中有个关键点便是数据的收集

而数据收集的其中一种重要的方式便是远程操作,它不仅提供了准确和精确的操
作演示,还提供了自然和流畅的轨迹,使学习到的策略能够推广到新的环境配置和任务中

而各种远程操作方法包括且不限于

  1. 使用VR设备 [Learning visuotactile skills with two multifingered hands,  Open teach: A versatile teleoperation system for robotic manipulation]
  2. RGB相机[Anyteleop:A general vision-based dexterous robot arm-hand teleoperation system, Robotic telekinesis: Learning a robotic hand imitator by watching humans on youtube , A mobile robot hand-arm teleoperation system by vision and imu]
  3. 可穿戴手套 [A systematic review of commercial smart gloves: Current status and applications, High-fidelity grasping in virtual reality using a glove-based system,  A glove-based system for studying hand-object manipulation via joint pose and force sensing]
  4. 定制硬件 [mobile aloha之Learning fine-grained bimanual manipulation with low-cost hardware , AirExo: Low-Cost Exoskeletons for Learning Whole-Arm Manipulation in the Wild

大多数远程操作系统中有两个主要组件:执行和感知

  • 对于执行,使用关节复制来操纵机器人提供了高控制带宽和精度 [Aloha,  Yell at your robot: Improving on-the-fly from language corrections,  Gello: A general, low-cost, and intuitive
    teleoperation framework for robot manipulators
    ]
    然而,这要求操作员和机器人必须在同一地点,无法进行远程控制,即每个机器人硬件需要与一个特定的远程操作硬件配对
    重要的是,这些系统尚不能操作多指灵巧手(Moblie aloha和UMI确实都没有灵巧手,dexcap才有)
  • 对于感知,最直接的方法是用操作员自己的眼睛以第三人称视角 [Robotic telekinesis,Anyteleop, Learning visuotactile skills with two multifingered hands] 或第一人称视角 [Mobile aloha, Dexcap] 观察机器人任务空间
    然,这不可避免地会在远程操作过程中遮挡操作员的视线(例如,被机器人手臂或躯干遮挡),操作员无法确保收集的演示已捕捉到策略学习所需的视觉观察
    重要的是,对于细粒度的操作任务,远程操作员很难在操作过程中近距离直观地观察物体
    此外,第三人称静态摄像头视图或在VR头戴设备中使用透视功能 [Learning visuotactile skills with two multifingered hands, Open teach, Using apple vision pro to train and control robots] 也会遇到类似的挑战

1.1.2 TeleVision的创新点与改进之处

为了解决上述一系列问题,来自加州大学圣地亚哥分校、麻省理工学院的研究者们(Xuxin Cheng, Jialong Li, Shiqi Yang, Ge Yang, Xiaolong Wang)提出了本TeleVision

如下图所示,便是TeleVision的远程操作数据收集和学习设置

  • 上图左侧:是远程操作系统
    首先,VR设备(虽然系统对VR设备型号不敏感,但还是选择的Apple VisionPro作为VR设备平台)将人体的手部、头部和手腕的姿态流式传输到服务器
    其次,服务器再将人类姿态重新定向到机器人(用了两个机器人做实验,一个来自宇树科技的具有多手指的Unitree H1,一个则是傅里叶智能的具有抓手的Fourier GR1)
    最后,将关节位置目标发送到机器人
    换言之,通过捕捉人类操作员的手部姿势,然后进行重新定位以控制多指机器人手或平行爪抓手,最后依靠逆运动学将操作员的手根位置转换为机器人手臂末端执行器的位置
  • 上图右侧:使用基于transformer的动作分块算法即ACT,为每个任务训练模仿策略,比如Transformer编码器捕捉图像和本体感觉token的关系,Transformer解码器输出特定块大小的动作序列

而TeleVision对允许细粒度操作的主要贡献来自感知,它结合了具有主动视觉反馈的VR系统

即在机器人头部使用单个主动立体RGB相机,配备2或3个自由度的驱动,模仿人类头部运动以观察大工作空间。 在远程操作过程中,摄像头会随着操作员的头部移动而移动,进行流
媒体传输,即如下图所示

这是因为实时、自我中心的3D观察传输到VR设备,使得人类操作员看到的是机器人看到的。 这种第一人称主动感知为远程操作和策略学习带来了好处

  • 对于远程操作,它为用户提供了一种更直观的机制,通过移动机器人的头部来探索更广阔的视野,并关注重要区域以进行详细交互
  • 对于模仿学习,TeleVision的策略将模仿如何在操作的同时主动移动机器人的头部
    与其采用进一步的静态捕获视图作为输入,主动摄像头提供了一种自然的注意机制,专注于下一步操作相关区域并减少需要处理的像素,从而实现平滑、实时和精确的闭环控制

1.2 TeleVision System

1.2.1 TeleVision基于Vuer [19]开发了一个网络服务器

humanplus通过影子系统实现了人类操作员对机器人的实时控制,那TeleVision又是如何做到实时远程遥控的呢

事实上,TeleVision基于Vuer [19]开发了一个网络服务器

  1. VR设备将操作员的手、头和手腕姿态以 SE(3)格式流式传输到服务器
  2. 服务器处理人到机器人的运动重定向

下图便显示了机器人如何跟随人类操作员的头部、手臂和手的动作

反过来,机器人以每只眼480x640的分辨率流式传输立体视频(整个循环以60 Hz的频率进行)

且过程中只考虑它们的主动感知颈部、两个7自由度的手臂和末端执行器,而其他自由度未被使用。其中,H1的每只手有6个自由度 [20],而GR-1有一个1自由度的下颚夹持器

此外,为了主动感知,设计了一个具有两个旋转自由度(偏航和俯仰)的云台,安装在H1躯干顶部,该云台由3D打印部件组装而成,并由DYNAMIXEL XL330-M288-T电机驱动 [21]

对于GR-1,使用了厂家提供的3自由度颈部(偏航、滚动和俯仰),且两个机器人都使用ZED Mini [22] 立体相机提供立体RGB流

1.2.2 对机器人手臂、手部的控制

对于手臂控制而言,人类手腕姿态首先转换为机器人的坐标系。 具体来说,机器人末端执行器与机器人头部之间的相对位置应与人类手腕和头部之间的相对位置相匹配,且机器人的手腕方向与人类手腕的绝对方向对齐,这些方向是在初始化Apple VisionPro手部追踪后端时估计的

这种对末端执行器位置和方向的差异化处理确保了当机器人的头部随人类头部移动时,机器人末端执行器的稳定性

过程中,TeleVision采用基于Pinocchio[23, 24, 25]的闭环逆运动学(CLIK)算法来计算机器人手臂的关节角度

输入的末端执行器姿态使用SE(3)群滤波器进行平滑处理,该滤波器由Pinocchio的 SE(3)插值实现,从而增强了IK算法的稳定性

为了进一步降低IK失败的风险,当手臂的可操作性接近其极限时,加入了关节角度偏移。 这种校正过程对末端执行器的跟踪性能影响最小,因为偏移量被投影到机器人手臂雅可比矩阵的零空间,从而在解决约束的同时保持跟踪精度

对于手部控制而言,通过dex-retargeting,一个高度通用且计算速度快的运动重定向库,人手关键点被转换为机器人关节角度命令 [Anyteleop]

TeleVision的方法在灵巧手和夹持器形态上都使用了向量优化器。 向量优化器将重定向问题表述为一个优化问题 [Anyteleop, Dexpilot],而优化是基于用户选择的向量定义的:

\min _{q_{t}} \sum_{i=0}^{N}\left\|\alpha v_{t}^{i}-f_{i}\left(q_{t}\right)\right\|^{2}+\beta\left\|q_{t}-q_{t-1}\right\|^{2}

在上述公式中

  • q_{t}表示时间t 时的机器人关节角度
  • v_{t}^{i}是人手上的第i个关键点向量
  • 函数f_{i}\left(q_{t}\right)使用来自关节角度q_{t}的正向运动学计算机器人手上的第i个关键点向量
  • 参数 α是一个缩放因子,用于考虑人手和机器人手之间的尺寸差异(将其设置为1.1用于Inspire手)
  • 参数 β权衡了确保连续步骤之间时间一致性的惩罚项。 优化是使用顺序最小二乘二次规划(SLSQP)算法[27]在NLopt库[28]中实时进行的,正向运动学及其导数的计算在Pinocchio[24]中进行

此外

  • 对于灵巧手,使用7个向量来同步人手和机器人手,其中
    \rightarrow  5个向量表示手腕和每个指尖关键点之间的相对位置
    \rightarrow  另外2个向量,从拇指指尖延伸到主要指尖(食指和中指),以增强细致任务中的运动精度
  • 对于夹持器,优化是使用一个单一向量实现的,该向量定义在人类拇指和食指指尖之间。 这个向量与夹爪上下端之间的相对位置,使得通过简单地捏住操作员的食指和拇指,可以直观地控制夹爪的开合动作

1.3 TeleVision的技术架构

1.3.1 ACT作为模仿学习算法,但做了两项修改

TeleVision和Moblie Aloha一样,选择 ACT[10]作为的模仿学习算法

但进行了两项关键修改

  1. 首先,用更强大的视觉骨干 DinoV2 [29, 30] 替换了 ResNet,这是一个通过自监督学习预训练的视觉transformer(ViT)
  2. 其次,使用两幅立体图像而不是四幅单独排列的 RGB 摄像机图像作为transformer编码器的输入

    DinoV2 骨干为每张图像生成 16 × 22个token。 状态token是从机器人的当前关节位置投影出来的,且使用绝对关节位置作为动作空间
    \rightarrow  对于 H1,动作维度是 28(每个手臂 7 个,每只手 6 个,主动颈部 2 个);
    \rightarrow  对于GR-1,动作维度是19(每只手臂7个,每个夹爪1个,主动颈部3个)
    至于本体感觉token是从相应的关节位置读数投影出来的

// 待更

第二部分 TeleVision的4个任务及其效果表现

2.1 TeleVision的4个任务:分类、插入、折叠、卸载

2.1.1 罐子分类:5个雪碧与5个可乐的分类

如下图a所示,此任务涉及将随机放置在桌子上的可乐罐(红色)和雪碧罐(绿色)分类

罐子一个接一个地放在桌子上,但位置和类型(可乐或雪碧)是随机的

  1. 目标是拾起桌子上的每个罐子并将其扔进指定的箱子:左边是红色的可乐,右边是绿色的雪碧
  2. 解决此任务需要机器人根据每个罐子的位置信息和方向进行自适应泛化,以实现准确抓取。 这也要求策略能够根据当前持有的罐子的颜色调整其计划的动作

每一集包括连续分类10个罐子(5个雪碧和5个可乐随机)

2.1.2 罐子插入:将苏打罐放入槽中

如下图c所示,此任务涉及从桌子上拾取软饮料罐,并将它们按预定顺序小心地插入容器内的槽中

虽然和上一个任务罐子分类都涉及饮料罐的操作,但此任务要求更精确和细致的动作,因为成功的插入需要高精度

此外,此任务采用了不同的抓取策略。 在之前的罐子分类任务中,机器人只需要将罐子扔到指定区域,因此形成了一种涉及手掌和所有五个手指的抓取策略,这是一种宽容但不精确的抓取策略

在这个任务中,为了将罐子插入仅比罐子稍大的槽中(苏打罐的直径大约为5.6厘米,槽的直径大约为7.6厘米),TeleVision采用了一种更类似于捏的策略,仅使用拇指和食指,从而在罐子的放置上进行更细微的调整

这两种不同的抓取策略表明,系统能够完成具有复杂手势要求的任务(该任务的每一集都包括将所有六个罐子放入正确的槽中)

2.1.3 折叠

如下图d所示,此任务涉及将毛巾折叠两次

任务的区别在于它展示了系统操作柔软和顺从材料(如毛巾)的能力。 该任务的动作序列如下展开:

  1. 捏住毛巾的两个角
  2. 提起并折叠
  3. 轻轻将毛巾移到桌子的边缘以准备进行第二次折叠
  4. 再次捏住、提起并折叠

该任务的每一集都包括一次完整的毛巾折叠

2.1.4 卸载

如下图e所示,此任务是一个复合操作,涉及管子的提取和手内传递

在此任务中,一个芯片管被随机放置在分类盒内的四个槽中的一个中。目标是识别包含管子的槽,用右手提取管子,传递给左手并将管子放置在预定位置

为了成功执行这个任务,机器人需要视觉推理来辨别管子的位置信息,并且需要准确的动作协调来提取和传递管子。 这个任务的每一集包括从4个随机槽中拾取4个管子,传递到另一只手,最后放在桌子上

// 待更

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

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

相关文章

锂电池剩余寿命预测 | Matlab基于Transformer的锂电池剩余寿命预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab基于Transformer的锂电池剩余寿命预测 Matlab基于Transformer的锂电池剩余寿命预测(单变量) 运行环境Matlab2023b及以上 NASA数据集,B0005号电池数据训练,B00…

web前端开发——标签一(注释、标题、段落、换行、格式、图片)

今天我来针对web前端开发讲解标签一 目录 html标签_标题&段落&换行 注释标签:Ctrl/ 标题标签: h1-h6 段落标签: 换行标签: 格式标签 图片标签_src属性 html标签_标题&段落&换行 注释标签:Ctrl/ Ctrl/ &…

小程序-设置环境变量

在实际开发中,不同的开发环境,调用的接口地址是不一样的 例如:开发环境需要调用开发版的接口地址,生产环境需要正式版的接口地址 这时候,我们就可以使用小程序提供了 wx.getAccountInfoSync() 接口,用来获取…

查找PPT中某种字体的全部对应文字

本文章的目的是找到某种字体的文字,而不是替换某种字体的文字,也不是将某种字体全部替换为另外一种文字。 第一步:在PPT中按下ALTF11 出现以下窗口 第二步:点击插入->模块 第三步:将以下代码输入到窗体中 Sub F…

树的结构(b,b+树)

无论线性表,栈还是队列,都是一对一,查询的时候,效率较低,数据量比较的大的情况 1.树的定义 一种数据结构,有层次关系的集合,根朝上,叶朝下 除了根节点外,每个子节点都…

论文翻译:Large Language Models for Education: A Survey and Outlook

https://arxiv.org/abs/2403.18105 目录 教育领域的大型语言模型:一项调查和展望摘要1. 引言2. 教育应用中的LLM2.1 概述2.2 学习辅助2.2.1 问题解决(QS) 2.2.2 错误纠正(EC)2.2.3 困惑助手(CH)…

解决elementUI列表的疑难杂症,排序显示错乱的问题

大家好,在使用elementUI表格时,有时会出现一些意料之外的问题,比如数据排序正常但表格显示、排序错乱等。在网上搜索后一般有2种解决方法:1.给表格每一项的el-table-column添加唯一的id用于区分。2.给表格每一项的el-table-column…

羧基聚乙二醇生物素的制备方法;COOH-PEG-Biotin

羧基聚乙二醇生物素(COOH-PEG-Biotin)是一种常见的生物分子聚合物,具有多种应用,特别是在生物实验、药物研发和生物技术等领域。以下是对该化合物的详细解析: 一、基本信息 名称:羧基聚乙二醇生物素&#x…

数据结构:链表详解 (c++实现)

前言 对于数据结构的线性表,其元素在逻辑结构上都是序列关系,即数据元素之间有前驱和后继关系。 但在物理结构上有两种存储方式: 顺序存储结构: 使用此结构的线性表也叫 顺序表物理存储上是连续的,因此可以随机访问…

电压反馈型运算放大器的增益和带宽

简介 本教程旨在考察标定运算放大器的增益和带宽的常用方法。需要指出的是,本讨论适用于电压反馈(VFB)型运算放大器。 开环增益 与理想的运算放大器不同,实际的运算放大器增益是有限的。开环直流增益(通常表示为AVOL)指放大器在反馈环路未闭合时的增益…

借人工智能之手,编织美妙歌词篇章

在音乐的领域中,歌词宛如璀璨的明珠,为旋律增添了无尽的魅力和情感深度。然而,对于许多创作者来说,编织出美妙动人的歌词并非易事。但如今,随着科技的飞速发展,人工智能为我们带来了全新的创作可能。 “妙…

Cornerstone3D导致浏览器崩溃的踩坑记录

WebGL: CONTEXT_LOST_WEBGL: loseContext: context lost ⛳️ 问题描述 在使用vue3vite重构Cornerstone相关项目后,在Mac本地运行良好,但是部署测试环境后,在window系统的Chrome浏览器中切换页面会导致页面崩溃。查看Chrome的任务管理器&am…

浅析Kafka Streams消息流式处理流程及原理

以下结合案例&#xff1a;统计消息中单词出现次数&#xff0c;来测试并说明kafka消息流式处理的执行流程 Maven依赖 <dependencies><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-streams</artifactId><exclusio…

【三维AIGC】扩散模型LDM辅助3D Gaussian重建三维场景

标题&#xff1a;《Sampling 3D Gaussian Scenes in Seconds with Latent Diffusion Models》 来源&#xff1a;Glasgow大学&#xff1b;爱丁堡大学 连接&#xff1a;https://arxiv.org/abs/2406.13099 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何…

Spring Security学习笔记(一)Spring Security架构原理

前言&#xff1a;本系列博客基于Spring Boot 2.6.x依赖的Spring Security5.6.x版本 Spring Security中文文档&#xff1a;https://springdoc.cn/spring-security/index.html 一、什么是Spring Security Spring Security是一个安全控制相关的java框架&#xff0c;它提供了一套全…

海外ASO:iOS与谷歌优化的相同点和区别

海外ASO是针对iOS的App Store和谷歌的Google Play这两个主要海外应用商店进行的优化过程&#xff0c;两个不同的平台需要采取不同的优化策略&#xff0c;以下是对iOS优化和谷歌优化的详细解析&#xff1a; 一、iOS优化&#xff08;App Store&#xff09; 1、关键词覆盖 选择关…

用node.js写一个简单的图书管理界面——功能:添加,删除,修改数据

涉及到的模块&#xff1a; var fs require(‘fs’)——内置模块 var ejs require(‘ejs’)——第三方模块 var mysql require(‘mysql’)——第三方模块 var express require(‘express’)——第三方模块 var bodyParser require(‘body-parser’)——第三方中间件 需要…

打造你的智能家居指挥中心:基于STM32的多协议(zigbee、http)网关(附代码示例)

1. 项目概述 随着物联网技术的蓬勃发展&#xff0c;智能家居正逐步融入人们的日常生活。然而&#xff0c;市面上琳琅满目的智能家居设备通常采用不同的通信协议&#xff0c;导致不同品牌设备之间难以实现互联互通。为了解决这一难题&#xff0c;本文设计了一种基于STM32的多协…

ant design form动态增减表单项Form.List如何进行动态校验规则

项目需求&#xff1a; 在使用ant design form动态增减表单项Form.List时&#xff0c;Form.List中有多组表单项&#xff0c;一组中的最后一个表单项的校验规则是动态的&#xff0c;该组为最后一组时&#xff0c;最后一个表单项是非必填项&#xff0c;其他时候为必填项。假设动态…

docker inspect 如何提取容器的ip和端口 网络信息?

目录 通过原生Linux命令过滤找到IP 通过jq工具找到IP 使用docker -f 的过滤&#xff08;模板&#xff09; 查找端口映射信息 查看容器内部细节 docker inspect 容器ID或容器名 通过原生Linux命令过滤找到IP 通过jq工具找到IP jq 是一个轻量级且灵活的命令行工具&#xf…