前言
24年9.28日下午,微信上的好友丁研究员和我说
- “hi 周总,我们基于umi改进了一下——弄了一个用户友好的采集系统(当然,现在这个版本还比较初级 后续不断迭代),希望周总给些建议”
项目网站为:https://fastumi.com/
技术报告见:https://fastumi.com/fastumi_short.pdf
作者团队为:Ziniu Wu, Tianyu Wang, Zhaxizhuoma, Chuyue Guan, Zhongjie Jia, Shuai Liang, Haoming Song, Delin Qu, Dong Wang, Zhigang Wang, Nieqing Cao,Yan Ding, Bin Zhao, Xuelong Li
我当时(周六)和家人在李自健美术馆,故回复之:帅气,我晚上到家后看下 - 第二天上午找我确认,问:“不知道周总 有没有什么建议”
我个人确实准备 这几天仔细研究下,毕竟我们之前也在基于umi、dexcap做二次开发,有很多契合点
至于前者umi的详细介绍见:UMI——斯坦福刷盘机器人:从手持夹持器到动作预测Diffusion Policy(含代码解读)
后者dexcap的详细介绍见:DexCap——斯坦福李飞飞团队泡茶机器人:更好数据收集系统的原理解析、源码剖析 - 他说,“我很喜欢周总写的那些帖子,所以第一时间找周总问fastumi的意见”
我深知这种感觉,因为当我司做出一个大模型应用或机器人解决方案,哪怕只是一篇博客时,都渴望和同行做各种深入交流
而且正如技术合伙人姚博士所说,“fastumi数据采集方式的改进强,因为我们当时也考虑过t265,但确实是人手不足”
丁研究员希望帮他们宣传下,我说我看下你们论文(当然,本质更多是相对初级的技术报告),可能会给你们论文 还做下解读,毕竟在博客里给你们技术报告 做解读,便是一个持久且足够高定位的宣传了(毕竟,本博客内的机器人系列已经吸引了来自国内各大知名高校、知名企业等同行们的持续关注)
于此,本文就来了:部分翻译、部分解读,且为了写好fastumi的解读,我又特地重温了一遍UMI的论文,且打印下来一字一句仔细抠了一遍(然后针对该UMI博客增补了不少内容)
且过程中还注意到了一个针对UMI所用扩散策略的改进——Diff-Control,故本文第二部分会再详细介绍Diff-Control: A Stateful Diffusion-based Policy for Imitation Learning
第一部分 UMI的不足与Fast-UMI的改进
1.1 现有数据收集系统及UMI的不足
1.1.1 机器人现有的数据收集系统
对于目前的机器人而言,现有的数据收集系统可以分为三类:
- 直接人类远程操作 [16,Viola: Imitation learning for vision-based manipulation with object proposal priors]
直接人类远程操作涉及操作员控制直接人类遥控操作涉及操作员远程或现场控制机器人,以获取包括视觉输入、运动状态和动作指令在内的全面数据
尽管这种方法提供了高质量的数据,但其成本高且劳动强度大。即使使用像SpaceMouse1这样的六自由度控制器,收集细粒度操作的数据仍然具有挑战性,因为很难精确对准小目标物体 - 基于沉浸式技术的远程操作 [7 Digital twin-driven mixed reality framework for immersive teleoperation with haptic rendering, 12 Hubotverse: Toward internet of human and intelligent robotic things with a digital twin-based mixed reality framework]
- 基于视觉的数据收集 [2 Human-to-Robot Imitation in the Wild, 9 Learning hand-eye coordination for robotic grasping with deep learning and large-scale data collection]
基于视觉的数据收集使用摄像头,如可穿戴设备,以捕捉交互数据而无需直接控制机器人。虽然这种方法收集了一些视觉信息,但它缺乏表示机器人手臂与其环境之间复杂交互的能力[8]。 - 界面中介操控 [3 Scaling data-driven robotics with reward sketching and batch reinforcement learning, 11 MimicPlay: Long-Horizon Imitation Learning by Watching Human Play, 13 Deep Imitation Learning for Complex Manipulation Tasks from Virtual Reality Teleoperation]
界面中介操作系统,以通用操作界面UMI——Universal manipulation interface: In-thewild robot teaching without in-the-wild robots为例,使用手持夹具和专门的界面从人类演示中收集数据,特别是捕捉机器人手臂末端执行器的姿态
然后再通过像Diffusion Policy [5,详见此文的第三部分 Diffusion Policy:基于CNN或Transformer]这样的算法随后从收集的数据中推断出机器人动作,从而降低成本并简化数据收集过程
1.1.2 UMI的不足之处:依赖特定的硬件且所用的SLAM2相对复杂
UMI系统解决了人类演示中的挑战UMI系统解决了人类示范数据收集中的挑战,并支持在各种场景中进行动作策略学习,但它仍然存在两个局限性:
- 与特定机器人硬件的强耦合性
- 系统中使用开源SLAM2带来的复杂性
具体而言
- 首先,系统严格的硬件要求——如必须使用WeissWSG-50夹持器3——带来了限制
用户必须采购这些特定组件才能直接实施UMI,增加了成本,并限制了那些拥有不同机器人配置的用户的采用 - 将UMI适应其他硬件需要重新设计夹持器、重新校准摄像头、进行SLAM校准以及修改代码参数,这些都是劳动密集型任务,阻碍了即插即用功能
此外,这些修改往往缺乏普遍性,复杂了在不同实验室和设备间的应用 - 其次,虽然利用SLAM技术可以估计末端执行器的姿态,但使用像ORB-SLAM3这样的开源解决方案引入了额外的挑战
SLAM性能高度依赖于手持设备的参数设置,部署和调试过程复杂且耗时。用户在配置过程中必须投入大量精力进行数据可视化和对齐
且系统还需要全局坐标、涉及多次转换步骤的校准,降低了用户友好性 - 此外,收集到的数据在训练中的可用性取决于SLAM算法的性能;无法获得准确的末端执行器坐标可能需要丢弃数据,从而降低收集效率
不同于依赖SLAM算法的UMI系统,Fast-UMI直接使用RealSense T265相机获取机器人的末端执行器姿态,消除了复杂的SLAM部署和校准需求,从而简化了数据处理,且该方法不需要重复的外部校准,简化了软件和硬件的集成
当然,他们还在三个机械臂上实现了迁移,比如xarm、非夕、franka,毕竟如果是原始的UMI,我司七月在UR5e上复现的很快,但不一定好迁移到其他机械臂上
1.2 Fast-UMI的原型设计、数据收集、评估与验证
1.2.1 原型设计:含手持设备、机器人、视觉对齐、相机等设计
他们采用了解耦设计理念,即将手持设备上的相同指尖扩展件连接到机器人的夹爪上
- 这种设计保持了机器人系统与手持设备之间的一致性,使得通过手持设备收集的数据训练的模型可以直接应用于真实机器人
- 此外,开发了可插入的指尖扩展件,这些扩展件兼容五种主流夹爪型号,包括XArm夹爪和robotiq 2f-856,且这种方法也可以适用于其他类型的夹爪
下图Fast-UMI原型设备的各个组成部分,蓝色代表需要购买的组件,而黄色表示需要3D打印的组件
具体而言,首先如下图左侧的子图所示
在手持设备的设计上,他们通过手持设备用于手动数据采集以训练动作策略。它包括:
- 配备鱼眼扩展模块的GoPro相机:用于捕捉鱼眼图像以进行监控和数据收集
- RealSense T265相机:获取末端执行器的六自由度姿态
值得一提的是,斯坦福dexcap团队也用到了这个T265相机
比如下图c中的4个相机中
前两个:最顶部的L515 LiDAR相机,和三个T265相机中最上面的T265相机(红色)固定在相机支架上,这两个相机侧重记录3D观察和校准
后两个:即两个较低的(即绿色、蓝色)T265相机设计为可拆卸的,并可以固定在手套的背部进行手部6自由度姿态跟踪 当然,据友人丁研究员所说,他们在做这个fastumi工作时,尚不知道dexcap,而是准备研究灵巧手之后,才知道这个dexcap
关于灵巧手,比较有名的之一,就是本博客中之前提到过的AnyTeleop「当然,还包括AnyTeleop 的论文中提到的Dexpilot,至于AnyTeleop的介绍详见此文《UC San Diego的三大机器人:AnyTeleop、Open-TeleVision、Bunny-VisionPro——从RGB相机到VR远程控制机器人》的第一部分」 - 手持夹持器:在其指尖处配备了两个标记,用于记录夹持器的宽度
且他们特别注意将摄像头的视角与夹持器的指尖对齐,以确保与机器人安装设备的视觉一致性
在机器人安装设备的设计上,机器人安装设备旨在适应各种机器人手臂配置,如下图右侧所示
它主要包括:
- GoPro-机器人支架(GoPro-Robot Mount ,即棕色延长板):作为GoPro相机的安装点
- 可调节延长臂(Adjustable Extension Arm,即蓝色延长臂):允许进行横向和纵向调整,以对齐相机的视角
通过调整延长臂,可以在不同平台上实现与手持设备的视觉一致性,而可插入的指尖延长件确保尽管抓取器的尺寸和形状有所不同,视觉视角仍然保持一致
By adjusting the extension arm, we can achieve visual consis-tency with the handheld device across different platforms. The insertable fingertip extensions ensure that, despite variationsin gripper sizes and shapes, the visual perspective remainsconsistent
在视觉对齐与一致性上,他们为了确保手持设备和机器人安装设备之间的视觉一致性,建立了一条视觉对齐准则:GoPro 鱼眼镜头图像的底部与夹持器指尖的底部对齐
该准则增强了视觉一致性,并确保了两个设备上摄像头的正确定位。即使指尖延伸部分相同,夹持器尺寸的变化也会影响视觉对齐
他们可调节的机械设计能够补偿这些位移,使延伸臂可以根据需要进行调整,以保持一致的观察视角
下图显示了分别由手持设备和机器人安装设备上的 GoPro 摄像头捕获的视图
在相机的选择与安装上,选择GoPro相机是有意为之的。其鱼眼镜头能够捕捉广角图像,可能取代传统算法如ACT和DP中使用的第一人称和第三人称平面相机的组合,且他们初步观察表明,单个相机的鱼眼图像可以提供足够的时空信息,简化了硬件设置,不需要多个摄像头
且更重要的是,他们使用了专门设计的限制器安装了RealSense T265摄像头,以确保其始终垂直于GoPro摄像头。这一设计选择简化了安装过程,并保证了两个摄像头之间的精确对齐,从而在不需要复杂的SLAM算法的情况下实现准确的姿态估计
此外,与原始UMI系统不同,他们省略了夹持器侧面的镜子。UMI的实验表明,镜子对系统性能的提升有限。省略镜子可以在夹持器顶部保留宝贵的空间,以便集成额外的传感器,例如触觉传感器,从而增强未来系统扩展的潜力
且为了提高机器人安装设备的稳定性和耐用性,他们还进行了以下几项优化:
- 加固了GoPro机器人支架:增强了结构完整性以减少振动
- 使用碳纤维材料:在增加强度的同时减轻重量
- 标准化的Male-Female接口设计:允许顺序连接延长臂以调整长度而不会产生显著振动(已测试最多可连接三个延长臂),这些改进确保了数据传输过程中的可靠性能
最后
- 他们的配置允许所有用户共享一个标准化的手持设备——通过统一的手持设备确保了数据收集的一致性
- 而安装在机器人上的设备可以调整以适应各种机器人手臂和夹持器模型——可调节的机器人安装设备则增强了系统的多功能性
- 另,延长臂的长度可以通过标准化接口进行修改,其模块化设计便于轻松调整
1.2.2 数据收集流程(GoPro捕捉鱼眼图像、RealSense T265获取六自由度位姿数据)
数据收集主要包括从GoPro捕捉鱼眼图像,以及从RealSense T265获取六自由度位姿数据
与依赖复杂的基于SLAM的位姿估计的原始UMI系统不同,他们利用T265的内置跟踪功能直接获取末端执行器的位姿数据,简化了数据处理流程。所有数据通过有线连接传输,以确保稳定性和实时性能
- GoPro相机:一台配置为超广角模式的GoProHero 9相机以1280×720的分辨率和60帧每秒(FPS)捕捉鱼眼图像,提供广泛的视野以全面覆盖场景。实时图像传输通过Elgato HD60 X采集卡进行。对于更高的分辨率,可以使用更先进的采集卡
- RealSense T265:该设备捕捉手持夹具的六自由度姿态数据,他们将其转换为工具中心点(TCP)姿态,以表示人类演示的轨迹
与UMI相比,他们的设计消除了重建TCP轨迹所需的复杂后处理SLAM流程——complex post-processing SLAM pipeline,显著简化了数据处理
对于数据同步和ROS节点,他们为了协调来自多个传感器的数据采集,使用机器人操作系统ROS[10]作为中间件「ROS提供了一个灵活的框架,用于开发机器人应用程序,能够实现各个节点之间的通信——这些节点是执行特定任务的独立进程,并确保来自多个来源的数据的精确同步」
在他们的数据采集设置中,使用了以下ROS节点:
- GoPro节点:从GoPro摄像机捕捉鱼眼图像,并发布图像数据流以供后续处理
这些图像提供了广阔的视野,对于捕捉全面的环境视觉信息至关重要 - T265 节点:与 RealSense T265 跟踪相机接口,以获取末端执行器的姿态和方向
末端执行器的准确跟踪对于模仿学习任务至关重要,该节点实时发布姿态数据以监控和记录运动 - 夹爪宽度计算节点——Gripper Width Calculation Node:使用手持设备上的基准标记计算夹爪开口(Calculates the gripper aperture using fiducial markers on the handheld device)
由于精确同步这些数据流对于确保传感器读数的时间对齐至关重要。毕竟任何不一致会导致在模仿学习过程中对机器人的动作解释错误,从而对学习性能产生不利影响
故,他们为了实现时间同步,实现了一个专用的数据收集节点。该节点聚合来自GoPro、T265和夹爪宽度计算的实时数据,并使用统一的时间戳记录它们。通过存储这些同步的数据点,我们构
建了一个全面且准确的数据集,代表了机器人的动作和周围环境,这对于训练机器人学习模型以高保真度复制人类演示至关重要
最终,数据收集过程的步骤如下
- 步骤1:初始化传感器节点:启动GoPro节点、T265节点和夹爪宽度计算节点,以验证所有传感器的数据是否正确发布
- 步骤2:使用手持设备执行数据收集:在所有传感器节点正常运行的情况下,人工操作员使用手持设备执行所需任务
且数据收集节点在操作员执行动作时实时记录所有传感器的同步数据 - 步骤3:执行数据转换:完成数据收集后,运行数据转换节点,将原始数据集转换为与特定模仿学习模型(如ACT或Diffusion Policy)兼容的格式
1.2.3 与UMI使用扩散策略不同,fastumi使用ACT推断动作策略
有意思的是,他们通过在收集的数据集上训练的ACT算法推断出的动作策略,没用UMI默认用的扩散策「毕竟如本文的1.2节所述:“UMI使用扩散策略进行动作预测,当然,也可以换成mobile aloha所用的ACT算法”」
具体如下图所示,前三张图像描绘了一名人类操作员使用fastumi的操作设备来收集演示数据,接下来的两张图片显示了机器人执行推断的动作策略,该策略是使用ACT算法在收集的数据上训练的
// 待更