BEAVR:双手、多具身、可访问、VR 的机器人远程操作系统
25年8月来自 MIT 的论文“BEAVR: Bimanual, multi-Embodiment, Accessible, Virtual Reality Teleoperation System for Robots”。
BEAVR 是一个开源的、双手操控、多具身虚拟现实 (VR) 机器人遥操作系统,旨在统一跨异构机器人平台的实时控制、数据记录和策略学习。BEAVR 使用商用 VR 硬件实现实时灵巧的遥操作,支持与从 7 自由度机械臂到全身人形机器人的模块化集成,并直接在 LeRobot 数据集中记录同步的多模态演示。该系统采用零拷贝流式架构,延迟≤35 毫秒,具有用于可扩展推理的异步“思考-行动”控制环路,以及针对实时多机器人操作优化的灵活网络 API。其在各种操作任务中对 BEAVR 进行基准测试,并展示其与 ACT、Diffusion Policy 和 SmolVLA 等领先的视觉运动策略的兼容性。所有代码均公开可用,数据集发布在 Hugging Face上。
机器人正在从结构化的工业流水线过渡到动态的、以人为中心的环境,其中灵巧的双手操作是实现有效自主的先决条件。然而,当前的遥操作流程仍然碎片化,通常依赖于特定硬件、专有格式或自定义框架,这阻碍了可重复性,并减缓了人机交互 (HRI) 和机器人技术研究的总体进展。
长期以来,远程操作一直是收集机器人任务可靠演示的关键策略。早期系统通常依赖于直接驱动方法,包括主从设置,其中两个相同的机械臂通过物理或虚拟连接以镜像彼此的运动。其他常见方法包括基于操纵杆的控制或输入设备,例如 6 自由度控制器,允许用户从远处指挥机器人运动。这些系统推动了远程操作的早期发展,但通常需要硬件对称性、灵活性有限,或者依赖于紧密耦合的软硬件配置,这些配置难以扩展或适应新任务。最近的系统已经探索了 VR 和 AR 界面,以实现更直观、以人为本的远程操作。这些方法使用手势追踪 [1]、[2]、[8]、基于手套的输入 [9]、[10] 或基于控制器的交互 [11] 来实时控制机器人操纵器。有些系统可以将手部或手臂的运动直接映射到机器人关节,而有些则需要引入中间步骤,例如在对物理机器人执行命令之前,先在 AR 中移动虚拟末端执行器 [12]。一些系统依赖于 VR 手部追踪,有时还会借助触觉手套或臂环进行增强。虽然这些平台对于双手和手指级别的操作非常有效,但它们往往与特定硬件绑定,通常并非完全开源,而且价格低廉或以专有格式存储数据。有些系统解决了其中一两个限制,但很少有系统能够同时满足所有限制。如果没有开放性、低成本、硬件灵活性和标准化的数据输出,就很难实现可重用性、可扩展性或广泛采用。
如图所示:远程操作堆栈系统组件的数据流可视化。手部关键点数据从输入设备(VR 头戴式设备)流向检测器。操作员获取原始关键点数据,创建坐标系,计算坐标变换,并将变换矩阵发送到接口,接口控制机器人。
像 LEAP Hand [6] 和 RX-1 [13] 这样的开源项目展示富有创意的低成本集成,但它们仍然缺乏一个能够广泛复用的标准化软件生态系统。
BEAVR,是一个开源的端到端 VR 遥操作和策略学习系统,它统一异构机器人的控制、记录和学习。它通过单个 VR 界面实现对各种末端执行器(例如 7 自由度 (DoF) xArm 或全身 RX-1 人形机器人)的实时双手控制,同时直接以标准化的 LeRobot 数据集格式捕获同步的多模态演示。LeRobot 框架 [3] 提供了统一的模式来存储机器人演示以及用户友好的策略学习流程,支持致力于让现实世界的机器人技术更容易获得人工智能的机器人社区。 BEAVR 还支持来自商用摄像机的实时 RGB 和 RGB-D 视频流,并集成了使用 Meta Quest 3S VR 眼镜的精确追踪功能。值得一提的是,一套包含摄像机、VR 头戴设备和机器人硬件(配备 LeapHand 的 RX-1)的完整系统,组装成本约为 10,000 美元,这凸显了该系统的经济性和广泛应用的潜力。除了经济实惠之外,这项研究还探讨了一个关键问题:单个 VR 界面能否在不产生延迟的情况下扩展到多个异构机器人?
系统概述
BEAVR 是一个开源的遥操作系统,可将基于 VR 的人类手部运动转化为实时机器人控制,从而实现灵巧的多实体操控。该架构分为三个主要模块:遥操作、数据采集和模型训练。
遥操作模块采用模块化组件式设计。它由三个核心组件组成,这些组件作为独立进程运行,并通过轻量级 ZMQ 通道进行通信:
• 检测器:从 VR 头戴设备捕获原始数据,包括手部关键点、按钮按下和会话命令。
• 操作员:处理输入数据并将其转换为与机器人相关的命令,例如末端执行器位置或关节目标。
• 接口:将高级动作发送到机器人的控制系统,确保执行平稳可靠。
这种模块化设计允许灵活地集成新的硬件和机器人,同时故障隔离功能可确保即使一个模块发生故障,其他模块仍可正常运行。
数据采集模块与 LeRobot 框架 [3] 无缝对接。它将同步的观察、动作和元数据流记录成标准化、与硬件无关的格式,以便下游立即用于基准测试和学习。
模型训练模块利用 LeRobot 的训练流程,并通过异步推理对其进行增强。专用控制环路以固定速率传输动作,而单独的推理线程则在计算资源可用时计算策略输出。这种解耦方案即使在高计算负载下也能保持实时性能。
总而言之,BEAVR 结合模块化、实时性能和开放数据标准,为远程操作灵巧机器人控制研究提供了一个可扩展的平台。
BEAVR
BEAVR 是一个模块化的远程操作流程,旨在将基于 VR 的手部追踪与跨异构机器人平台的机器人驱动连接起来。该系统与硬件无关,已部署在一系列实例中,包括 16 自由度灵巧机械手、7 自由度拟人手臂以及自主组装的 6 自由度 RX-1 机器人。对于 RX-1 平台,BEAVR 与基于 ROS 的组件无缝集成,可直接与 ROS 控制堆栈交互,并促进与现有机器人软件生态系统的兼容性。这种灵活性使 BEAVR 能够通过用于逆运动学 (IK)、时间平滑和实时控制的专用模块,支持从精细手部操作到全臂远程操作的各种实验设置。
手部追踪使用 Meta Quest 3S 头戴式设备以 90 Hz 的频率进行,每只手可获得 24 个符合 OpenXR 标准的关键点(如图所示)。生成的姿态向量作为坐标变换模块的输入,该模块将 VR 追踪数据与机器人特定的帧对齐,从而同时适应灵巧手和其他类型的末端执行器。这种模块化架构支持通过更新相关的变换矩阵和求解器目标来实现与新实施例的集成,而无需重新设计整个流程。
坐标变换
BEAVR 使用齐次变换计算 VR 跟踪手和机器人末端执行器之间的相对运动。
首先,将 VR 关键点平移到腕关节框架。使用食指、中指和小指等关键点构建正交手部基,然后进行 Gram-Schmidt 正交化以确保框架稳定。为了在末端执行器上实现泛化,变换被模块化,其中根据具体实施方式(例如,手与夹持器)分别应用尺度调整的平移运动。
这种模块化设计允许通过仅更新变换矩阵和求解器目标来实现新机器人实施方式的无缝集成。
逆运动学求解器、防碰撞和时间平滑
其实施一种多目标逆运动学 (IK) 方法,以优化八个指尖位置(每个手指两个,不包括小指)并计算用于灵巧操作的关节配置。对于每个指尖位置 p,应用轴反射和从 Y 轴向上 VR 坐标系到 Z 轴向上机器人坐标系的坐标转换。
使用阻尼最小二乘 (DLS) 公式求解 IK 问题,利用先前的关节配置作为种子来提高稳定性和收敛性。专用的防碰撞例程通过将实时碰撞检查集成到 IK 优化循环中,确保所有计算出的关节解决方案都符合机械和运动学限制,尤其是在高密度或高接触操作下。
为了确保流畅、低延迟的控制,对关节角度和末端执行器姿态应用时间滤波。移动平均滤波器应用于关键点轨迹,而四元数 SLERP [14] 混合的互补滤波器用于姿势状态,以减轻抖动并产生稳定的控制信号。
系统集成与通信
VR 系统、机器人和控制模块之间的通信通过 ZMQ 进行,ZMQ 将发布者-订阅者通道(用于连续数据流传输)与控制命令的请求-回复模式相结合。BEAVR 系统高度依赖于专为实时机器人遥操作中的线程安全消息传递而设计的高效网络模块。线程允许中央处理器 (CPU) 在同一进程中执行多个任务。当操作多个机器人时,每个机器人都包含各种交互组件,因此,可靠的通信机制至关重要,它可以避免数据争用、系统崩溃和行为不一致。为了解决这个问题,基于 ZMQ 开发专用的网络 API,提供以下关键功能:
• 发布者:向多个订阅者广播消息的组件。
• 订阅者:从发布者接收特定消息的组件。
• 线程管理:确保每个线程安全地管理其自身的 ZMQ 插口(socket)。
• 可靠传递:通过握手机制保证消息传递,解决诸如慢速加入者等潜问题。
选择 ZMQ 是因为它能够高效地抽象常见的消息模式(PUB/SUB、REQ/REP、PUSH/PULL),从而实现轻量级、高速的通信,非常适合实时机器人应用。此外,ZMQ 允许各个线程管理各自的插口(socket),从而固有地支持线程安全。
一个基于 Unity 的补充应用程序支持实时远程操作,通过 TCP 端口从专用守护进程接收关键点数据。该架构确保了不间断的高频数据传输,以及人类操作员和机器人平台之间的无缝集成。
BEAVR 的主要算法和架构创新包括:
• 使用具有 Gram-Schmidt 正交化的多地标基(multi-landmarks base)构建稳定的手部框架。
• 通过机器人特定的变换矩阵实现显式、模块化的坐标系转换(Y-up VR 到 Z-up 机器人)。
• 用于灵巧机械手的多目标 IK,结合防碰撞例程和时间平滑处理。
• 结合移动平均值和互补 SLERP 混合的时间滤波,实现平滑控制。
• 灵活、模块化的流水线设计,可适应各种机器人实施例和控制框架。
LeRobot
LeRobot 数据集格式
LeRobot 数据集格式为机器人技术提供了一种简单而灵活的结构。它与 Hugging Face Hub 和 PyTorch 集成,允许用户从 Hugging Face Hub 或本地目录加载数据集。这促进了机器人社区的协作。数据集中每个索引帧都包含表示观测值和动作的 PyTorch 张量,方便直接用于模型训练。该格式的独特之处在于能够使用增量时间戳参数查询时间相关的帧。这使用户能够高效地检索围绕给定帧索引的观测值序列。在内部,数据集使用广泛采用的格式存储:观测值和动作通过 Hugging Face 数据集库存储为 Arrow/Parquet 表。视频文件被压缩为 MP4 文件,元数据使用标准 JSON 格式进行管理。这种方法确保各种机器人传感输入和状态数据的易用性和可扩展性,这对于各种机器人技术和学习场景来说都是一项实用功能。
实时数据流
现有的 LeRobot 框架已包含一个控制和记录循环,旨在处理各种机器人平台。远程操作堆栈直接集成到该循环中,并通过实时数据流功能增强其功能。具体而言,此集成包含两个关键功能:
1)捕获观察结果:该循环捕获机器人的当前状态以及所有相关的传感输入,包括来自 RGB 和深度摄像头的实时图像以及关节位置。
2)发送动作:动作可以通过直接的人类远程操作或策略推理生成,然后发布到机器人系统。
这两个功能都使用了网络模块,从而实现了低延迟和高频数据交换。
实验设置
所有实验均在配备英特尔酷睿 Ultra 9 185H CPU 和 NVIDIA GeForce RTX 4080 Max-Q GPU(12GB 显存)的 Alienware x16 R2 笔记本电脑上进行。系统运行 Ubuntu 24.04.2 LTS 操作系统,CUDA 12.8 和 NVIDIA 驱动程序版本 570.169。如图展示了每项任务的图像序列,从固定底座 7 自由度桌面机械手 XArm7 机器人的初始姿态开始,该机器人的末端执行器上连接着一个 16 自由度 LEAP 机械手。所有试验均在桌面工作空间进行。两个静态安装的 RGB 摄像头(前置和头顶)以 480×640 分辨率和 30 FPS 的帧率同步采集视频流。
本文进行了三个独立的实验:
- 执行三个任务来展示灵巧的手臂和手部操作。
- 评估三种视觉运动策略在特定任务中的成功率。
- 通过收集延迟、抖动和频率数据来分析整个系统的性能及其扩展能力。
未来方向
虽然 BEAVR 在各种远程操作任务中表现出色,但仍存在一些局限性,这些局限性为未来的研发提供了方向。
硬件限制。一个核心挑战是缺乏价格实惠的高性能机械手。实验中使用的 LEAP 机械手提供一个可行的起点,但其实用性目前受到诸多因素的限制,例如其执行精确、可重复的抓握动作(例如用拇指触碰任何手指)的能力。此外,机械手的体积可能会阻碍 VR 关键点追踪,尤其是在手掌向下或握拳状抓握时。
系统可用性和可扩展性。虽然 BEAVR 支持多种机器人实施例,但添加新硬件仍然需要手动配置、标定和调整。通过自动配置工具、标准化机器人模板或基于 GUI 的设置向导简化这些流程,可以使系统更容易被更广泛的受众使用。
呼吁社区贡献。作为一个开源项目,BEAVR 依赖于持续的社区参与:贡献新的机器人模块,改进逆运动学 (IK) 和重定向组件,简化启动流程,并增强文档;贡献基准数据集、插件(例如触觉或 AR 叠加层)或替代控制策略(例如共享自主性)将扩大系统的影响力。更加多样化的机器人和任务生态系统也有助于建立基于 VR 的遥操作的通用评估标准。