UMI-机器人采集数据的通用框架

UMI-机器人采集数据的通用框架

UMI-机器人采集数据的通用框架

引言

在机器人学习领域,如何高效采集高质量的训练数据一直是研究的核心挑战。传统方式主要包括 遥操作(teleoperation)、基于视频的学习(video learning) 与 手持夹持器(hand-held gripper)。其中,遥操作虽然能够直接获得可用于模仿学习的数据,但硬件部署复杂、成本高昂且依赖专家操作;基于人类视频的学习方法具有良好的环境多样性,但由于 人与机器人之间存在显著的形态差异(embodiment gap),动作迁移效果有限;而手持夹持器作为一种折中方案,虽然提升了数据采集的直观性与便携性,但以往研究多局限于简单的抓取或静态操作,难以覆盖动态与复杂任务。

针对这些问题,斯坦福大学提出了 Universal Manipulation Interface (UMI)。其核心创新在于:

1.手持夹持器设计 —— 将传感器和摄像头直接安装在夹持器上,使人类示范与机器人执行的视觉输入对齐,从而大幅减少观测空间的差异;

2.改造后的 SLAM 系统 —— 结合视觉与动作信息,解决了传统基于单目相机的动作恢复精度不足的问题;

3。IMU 融合 —— 借助 GoPro 内置的惯性测量单元(IMU),在高速或动态操作中依然能够保持稳定、精确的 6DoF 姿态跟踪。


这种设计不仅提高了数据采集的 可移植性与低成本优势,还使机器人能够学习 动态、双臂以及长时序 等复杂操作任务,从而为大规模的“in-the-wild”机器人数据采集与策略学习提供了全新途径。

1.什么是 UMI

UMI(Universal Manipulation Interface)本质上是一个 用于数据收集和策略学习的框架。它通过 手持夹持器(hand-held gripper) 的设计,使人类能够以一种 简单、快速且低成本 的方式收集训练机器人所需的数据。与传统遥操作或视频学习方法相比,UMI 更强调实际可用性与高效性,能够覆盖更复杂的动态和长时序操作任务。

UMI 的一大亮点是对 延迟问题 的全面考虑。在真实机器人系统中,延迟主要来自三个环节:

  • 环境观测延迟 —— 传感器采集环境信息时不可避免的延迟;
  • 推理延迟 —— 系统对感知数据进行处理和决策的延迟;
  • 执行延迟 —— 推理完成后,指令传输并驱动机器人执行动作的延迟。

为了保证策略在真实环境中仍具备良好的对齐性与可迁移性,UMI 在框架中引入了 延迟匹配机制,使策略在推理和执行阶段能够与训练时的数据保持一致。

在感知设计上,UMI 采用了一系列巧妙的硬件改进:

  • 鱼眼镜头(②):提供超广角视野,增强对场景的整体感知;
  • 改造后的 SLAM 与 GoPro 内置 IMU(① & ④):结合视觉与惯性传感器,实现高速和动态场景下稳定、精确的姿态跟踪;
  • 侧面镜(③):在夹持器两侧加入物理镜面,形成隐式的立体观察,弥补单目视觉在深度感知上的不足;
  • 夹持器跟踪(⑤):实现对夹持器运动过程的连续追踪;
  • 基于运动学的数据过滤(⑥):保证所采集的数据在不同机器人结构下的可行性。

通过这一系列设计,UMI 在硬件简洁性与数据表达丰富性之间取得了平衡,为机器人策略学习提供了一个通用、可扩展的解决方案。

2. UMI的硬件结构设计

UMI 的数据采集设计核心在于 相机与传感器的组合使用。其中,GoPro 相机作为主要的视觉输入设备,能够在低成本条件下提供高分辨率和高帧率的视频流,是整个系统的数据入口。为了提升场景感知能力,相机搭配了 鱼眼镜头,其超广角(约 155°)能够在单帧图像中覆盖更多环境信息,减少因相机视野狭窄导致的目标丢失问题。

为了进一步获取 深度信息,UMI 在夹持器两侧安装了 物理侧面镜。这些镜子相当于提供了额外的虚拟摄像头视角,通过镜像反射形成隐式的双目视觉,从而弥补单目相机在深度估计上的不足。

除了视觉感知,UMI 还充分利用 GoPro 内置的 IMU(惯性测量单元)。IMU 由加速度计和陀螺仪组成,可以实时捕捉相机的运动加速度和角速度。当视觉因高速运动或遮挡而失效时,IMU 依然能够提供稳定的位姿信息。通过 视觉与惯性融合(视觉-惯性 SLAM),UMI 可以在动态操作场景下保持对末端执行器的精确动作跟踪。

简而言之:

GoPro 相机 → 提供主要视觉输入
鱼眼镜头 → 扩大视野,提升场景覆盖
侧面镜 → 增强深度信息,模拟立体视觉
IMU → 捕捉快速和精确的动作轨迹

这些设计结合在一起,使得 UMI 能够以低成本实现高质量、多维度的数据采集,为机器人学习提供可靠支撑。

3. 延迟测量与估计

在机器人系统中,延迟是影响策略能否稳定迁移的重要因素。UMI 将延迟分为四类:相机延迟、本体感觉延迟、夹持器执行延迟、机器人执行延迟。以下分别给出估计方法和公式。


1) 相机延迟(Camera Latency, τ_cam)

相机从真实场景到可用帧的路径包含曝光、ISP/编码、传输与解码:

τ cam = τ exp + τ pipe + τ tx \tau_{\text{cam}} = \tau_{\text{exp}} + \tau_{\text{pipe}} + \tau_{\text{tx}} τcam​=τexp​+τpipe​+τtx​

估计方法

  • 将相机估计的末端位姿轨迹 (p_{\text{cam}}(t)) 与关节正解位姿 (p_{\text{enc}}(t)) 对齐;
  • 使用互相关或最小化均方误差估计 (\tau_{\text{cam}})。

τ ^ cam = arg ⁡ max ⁡ τ C ( p ˙ cam , p ˙ enc ) ( τ ) \hat{\tau}_{\text{cam}} =\arg\max_{\tau}\; \mathcal{C}(\dot{\mathbf{p}}_{\text{cam}},\dot{\mathbf{p}}_{\text{enc}})(\tau) τ^cam​=argτmax​C(p˙​cam​,p˙​enc​)(τ)

τ ^ cam = arg ⁡ min ⁡ τ ∑ k ∥ p cam ( t k ) − p enc ( t k − τ ) ∥ 2 \hat{\tau}_{\text{cam}} =\arg\min_{\tau}\; \sum_k \left\|\mathbf{p}_{\text{cam}}(t_k) - \mathbf{p}_{\text{enc}}(t_k-\tau)\right\|^2 τ^cam​=argτmin​k

Read more

无人机航拍检测实战:用YOLOv8打造高空鹰眼系统

无人机航拍检测实战:用YOLOv8打造高空鹰眼系统 1. 引言:从工业缺陷到高空之眼 在上一期《YOLOv8【第八章:特殊场景检测篇·第12节】一文搞懂,工业缺陷检测专业化!》中,我们深入探讨了如何将YOLOv8应用于高精度、高标准的工业质检场景。面对微小缺陷、复杂纹理和样本不均等挑战,我们通过锚框重聚类、Focal Loss优化与数据增强策略,实现了对焊点、划痕等细微异常的精准识别。 而今天,我们将视角从“微观”转向“宏观”,聚焦于一个更具挑战性的应用场景——无人机航拍目标检测。 随着无人机技术的普及,其在农业植保、电力巡检、灾害救援、交通监控等领域发挥着越来越重要的作用。然而,要让无人机真正具备“智能感知”能力,仅靠高清摄像头远远不够。我们需要为它装上一双“会思考的眼睛”——即基于深度学习的目标检测系统。 🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类

AI Skills:前端新的效率神器!

近来,AI 领域有个火爆的话题:Skills。 Github 上被疯狂 star 的仓库,很多都是和 skills 有关的。 有的仓库仅仅上线三个月就获得了快 50K 的 star,Skills 的火热可见一斑。 不管是大模型,还是 Cursor、Codex、Claude、Trae、Copilot 等编程 IDE 都在争先支持 Skills。 围绕 Skills,它们在做的就是为了完成一件事情:技能是通过学习和反复练习获得的,而 Skills 是把经验和最佳实践沉淀为 AI 能力,将“知道”转化为“做到”的本领。 详解什么是 Skills 要说清楚什么是 Skills,先来了解一下关于 AI 的 2

零基础前端模拟器完整指南:在浏览器中畅玩经典游戏

零基础前端模拟器完整指南:在浏览器中畅玩经典游戏 【免费下载链接】EmulatorJSThe official home of the EmulatorJS project 项目地址: https://gitcode.com/GitHub_Trending/em/EmulatorJS 想在浏览器中重温童年经典游戏吗?浏览器游戏模拟器让这一切成为可能!无需安装复杂软件,只需一个网页就能畅玩从任天堂到世嘉的数十种经典游戏主机。本指南将带你从零开始,掌握EmulatorJS的部署、配置与优化技巧,让你轻松搭建属于自己的网页游戏怀旧站🎮 一、为什么选择EmulatorJS?3大核心优势解析 EmulatorJS作为一款基于Web前端的RetroArch模拟器界面,自4.0版本完全重写后,带来了三大革命性提升: * 纯Web技术栈:无需任何插件,直接在浏览器中运行 * 模块化架构:核心功能与界面分离,定制灵活 * 多平台支持:从8位机到32位机,覆盖数十种经典游戏系统 二、3种部署方案对比:哪种最适合你? 2.1 如何用CDN快速启动?5分钟上手方案 最简单的方式,

【Spring Boot】Spring Boot调用 WebService 接口的两种方式:动态调用 vs 静态调用 亲测有效

文章目录 * 前言 * 0、前提准备,添加依赖(Spring Boot + CXF) * 一、 方法一:动态调用 WebService(推荐用于调试) * 1. 添加依赖(Spring Boot + CXF) * 2、调用示例代码 * 3、注意事项 * 二、方法二:静态调用 WebService(推荐用于生产) * 1. 添加依赖(Spring Boot + CXF) * 2、获取 WSDL 文件 * 3、使用 `wsimport` 生成 Java 类 * 1. 检查 `wsimport` 是否存在 * 2. 进入存放 `service.wsdl`