斯坦福iDP3——改进3D扩散策略以赋能人形机器人的训练:不再依赖相机校准和点云分割(含源码解析)

前言

今天10.23日,明天1024则将作为长沙程序员代表,在CSDN和长沙相关部门举办的1024程序员节开幕式上发言,欢迎广大开发者来长工作 生活 考察 创业,​包括我司七月也一直在招聘大模型与机器人开发人员

后天,则将和相关开发同事出发去南京,因为我司于本周末10.25/10.26,在南京将举办「大模型机器人(具身智能)线下营」

该「机器人线下营」群内一学员提到:学umi这个成本好高,一套配下3万不知道够不够

  • 实话讲,搞机器人成本确实是比较大的,包括umi这套,在机械臂的迁移上 灵活度不太高,换个机械臂不是很顺畅
    但有一些工作 可以提高umi在机械臂上迁移的灵活度,比如fastumi,此外,dexcap的在机械臂上的可迁移性 更高些
  • 不过,相比起来,工业协作机器人还只是机械臂,人形成本更高,我最近一直在看各种人形paper,很多工作都想尝试,但有些系统开源了 但代码不全,而且不同的工作 换个人形 还不一定好work

正因为这里面的坑比较多,所以我一直在看各家的算法,看看他们是怎么解决一系列落地问题的,毕竟很多问题大家都会遇到

刚好我自己在视频号上看到了iDP3(且友人丁研究员也和我说了这个iDP3),于此便有了本文

PS,考虑到我司七月在线把umi/dexcap搞得差不多了,而iDP3和umi/dexcap有着一脉相承的紧密联系,故我们

  1. 准备再复现下斯坦福的这个iDP3「24年年底之前先在双臂上跑下斯坦福这个iDP3,然后再在多个人形机器人上 一并验证下
  2. 之后再想办法把各个算法整合到一个统一的框架中,欢迎人形厂商、科研机构一块合作搞(有意私我)

第一部分 3D扩散策略DP3

// 待更

第二部分 改进的3D扩散策略iDP3

24年10.14日,来自斯坦福大学、西蒙弗雷泽大学、宾夕法尼亚大学、伊利诺伊大学厄巴纳-香槟分校、卡内基梅隆大学的研究者们(Yanjie Ze1、Zixuan Chen2、Wenhao Wang3、Tianyi Chen3、Xialin He4、Ying Yuan5、Xue Bin Peng2、Jiajun Wu1),提出了改进的3D扩散策略iDP3

  • 其对应的论文为《Generalizable Humanoid Manipulation with Improved 3D Diffusion Policies》
  • 其对应的项目网址为:humanoid-manipulation.github.io
    这是其对应的学习代码:Improved-3D-Diffusion-Policy,这是其对应的遥操作代码:Humanoid-Teleoperation

2.1 iDP3与之前扩散策略、3D扩散策略的不同

2.1.1  视觉运动策略学习

最近,越来越多的趋势是通过端到端方式学习视觉运动策略来解决机器人问题[12],[17-3d diffusion policy: Generalizable visuomotor policy learning via simple 3d representations],[25]–[28],其中主要有两种途径:

  • 模仿学习[12,即Diffusion policy],[15]–[21],[29]–[34]
  • sim-to-real 的强化学习[35]–[44],其中第41篇所述的UMI on Legs,详见此文第一部分

在此之前

  1. 基于图像的模仿学习方法,例如Diffusion Policy[12],已经取得了显著的成功[10], [17], [22],[30], [45],但其有限的泛化能力限制了它们在复杂真实环境中的应用
  2. 最近的一些工作旨在解决这些限制[17], [22], [45]–[47]。其中,3D扩散策略(DP3,[17])展示了显著的泛化能力和在多样化机器人任务中的广泛适用性[10], [11],[22], [23]

    尽管如此,3D视觉运动策略本质上依赖于精确的相机校准和细粒度的点云分割[17], [18], [21], [39], [47],这限制了它们在类人机器人等移动平台上的部署
  3. 另与iDP3类似的工作也有一些,比如Maniwhere [37]通过大规模模拟数据实现了真实场景的泛化。然而,由于显著的模拟到现实的差距,他们仅展示了在未见过的场景中推送等任务,而不是像拾取和放置这样的富含接触的任务

    机器人实用模型[48-Transic: Sim-toreal policy transfer by learning from online correction]也通过模仿学习将技能泛化到新环境中,而他们必须使用从20个场景收集的数据进行场景泛化,相比之下iDP3只使用1个场景

    此外,VISTA [47]使用视图合成模型展示了令人印象深刻的视图泛化。与他们复杂的流程相比,iDP3的自我中心3D表示自然地实现了稳健的视图不变性

2.1.2 iDP3所在系统的概述

iDP3所在的系统主要由四个部分组成:人形机器人平台、数据收集系统、视觉运动策略学习方法、现实世界的部署,如下图所示

在学习部分,作者开发了改进的3D扩散策略(iDP3)作为通用机器人的视觉运动策略

2.1.3 iDP3是如何对3D扩散策略做改进的

3D扩散策略(DP3,[17])是一种有效的3D视觉-运动策略,将稀疏点云表示与扩散策略相结合。尽管DP3在广泛的操作任务中展示了令人印象深刻的结果,但由于其固有依赖于精确的相机校准和细致的点云分割,无法直接部署在通用机器人上,如类人机器人或移动操作器

此外,为在更复杂的任务中有效执行,DP3的准确性需要进一步提高

最终作者改进的算法被称为改进的3D扩散策略(iDP3),其重点做了以下改进

  1. 以自我为中心的3D视觉表示
    DP3利用世界坐标系中的3D视觉表示,便于目标对象的分割[17],[53]。然而,对于类人机器人等通用机器人,相机安装位置并不固定,使得相机校准和点云分割变得不切实际
    为了解决这个问题,作者提出直接使用相机坐标系中的3D表示,如下图所示

    作者将这类3D表示称为以自我为中心的3D视觉表示
  2. 扩展视觉输入
    利用以自我为中心的3D视觉表示在消除多余点云(如背景或桌面)时存在挑战,特别是在不依赖基础模型的情况下
    为此,作者提出了一种简单但有效的解决方案:扩展视觉输入。与之前的系统[17],[22],[53]中使用标准稀疏点采样不同,他们显著增加了样本点的数量以捕获整个图像场景
  3. 改进的视觉编码器
    作者将DP3中的MLP视觉编码器替换为金字塔卷积编码器
    因为他们发现,在从人类数据中学习时,卷积层比全连接层产生更平滑的行为,并且结合来自不同层的金字塔特征进一步提高了准确性
  4. 更长的预测视野。人类专家的抖动和噪声传感器在从人类示范中学习时表现出很大的困难,这导致DP3在短期预测上遇到困难。通过延长预测视野,作者有效地缓解了这个问题
  5. 实现细节
    对于优化,他们使用AdamW [55]训练iDP3和所有其他方法,总计300个epoch
    对于扩散过程,他们使用DDIM [56]进行50个训练步骤和10个推理步骤
    对于点云采样,他们用体素采样和均匀采样的级联替换DP3 [17]中使用的最远点采样(FPS)「For the point cloud sampling, we replace farthest point sampling (FPS) used inDP3 [17] with a cascade of voxel sampling and uniform sampling」,这确保了采样点覆盖3D空间并具有更快的推理速度

2.2 iDP3相关的硬件配置、数据采集、学习与部署

2.2.1 人形机器人相关的硬件配置

  • 在人形机器人的选择上,他们使用Fourier GR1 [5],这是一款全尺寸人形机器人,配备了两个InspireHands [57]

    不过,他们只启用了整个上半身{头部、腰部、手臂、手},总共25个自由度(DoF),然后禁用了下半身以保持稳定,并使用推车进行移动
  • 激光雷达相机
    为了捕捉高质量的3D点云,他们使用了RealSense L515 [58],这是一款固态激光雷达相机。相机安装在机器人头部以提供自我中心视觉

    先前的研究表明,深度感知精度较低的相机,如RealSense D435 [59],可能导致DP3 [17], [60]的性能不佳
    然而,需要注意的是,即使是RealSense L515也无法产生完全精确的点云
  • 高度可调推车
    将操作技能推广到现实世界环境的一个主要挑战是场景条件的广泛变化,特别是桌面高度的不同。为了解决这个问题,作者使用了一个高度可调的推车,消除了对复杂全身控制的需求

2.2.2 数据采集

  • 为了遥操作机器人的上半身,作者采用了Apple Vision Pro(简称AVP,[61]),该设备能够精确跟踪人手、手腕和头部的姿态[62]。机器人使用Relaxed IK [63]来准确地跟随这些姿态

    且他们还将机器人的视觉流回传至AVP。与[9]不同,我们将腰部纳入了遥操作流程,从而实现了更灵活的工作空间
  • 遥操作的延迟
    使用LiDAR传感器会显著占用机载计算机的带宽/CPU,导致遥操作延迟大约为0.5秒。他们还尝试了两个LiDAR传感器(一个额外安装在手腕上),这引入了极高的延迟,因此使得数据收集变得不可行
  • 对于用于学习的数据。在遥操作过程中,他们收集了观察-动作对的轨迹,其中观察由两部分组成:
    1)视觉数据,如点云和图像
    以及2)本体感觉数据,如机器人关节位置。动作由目标关节位置表示。且他们还尝试使用末端执行器姿态作为本体感觉/动作,发现性能没有显著差异

2.2.3 学习与部署

最终,他们在收集的人类演示数据上训练 iDP3

值得注意的是,由于不依赖之前提到的相机校准或手动点云分割。因此,他们认为他们的iDP3策略可以无缝转移到新场景,而无需额外的校准/分割等工作

2.3 实验效果及与各个相似策略的对比

在测试中,让机器人完成下图所示的三个任务:拾取/放置、倒水和擦拭

2.3.1 iDP3与几个的基线的比较

作者将iDP3与几个强大的基线进行比较,包括:

  • DP:带有ResNet18编码器的扩散策略[12];
  • DP(❄R3M):带有冻结R3M [64]编码器的扩散策略;
  • DP (✶R3M):带有微调R3M编码器的扩散策略
  • iDP3 (DP3编码器):使用DP3编码器[12]的iDP3

所有基于图像的方法都使用与iDP3相同的策略骨干,并采用随机裁剪和颜色抖动增强来提高鲁棒性和泛化能力,且RGB图像的分辨率是224×224(从RealSense相机的原始图像调整而来)

如下表所示「在四种设置下训练Pick&Place任务:{1st-1, 1st-2, 3rd-1, 3rd-2}。“1st”使用自我中心视角,而“3rd”使用第三人称视角。后面的数字表示用于训练的示范次数,每个示范由20轮成功执行组成,比如1st-2中的2 即代表示范次数为40次

  1. iDP3显著优于普通DP、带冻结R3M编码器的DP以及带DP3编码器的iDP3
  2. 然而,我们发现带微调R3M的DP是一个特别强的基线,在这些设置中优于iDP3。作者认为这是因为微调预训练模型通常比从头开始训练更有效[26],而目前没有类似的用于机器人技术的预训练3D视觉模型。尽管DP+微调R3M在这些设置中更有效,但作者发现基于图像的方法过拟合于特定场景和对象,无法推广到一些比较极端的场景之下

作者在论文中表示,他们还进行了 iDP3 与 DP (✶R3M)(简称为 DP)之间的更多比较,并证明 iDP3 在具有挑战性和复杂性的现实世界中更具适用性


具体如下表所示

iDP3和DP在训练环境中对训练对象都取得了很高的成功率,并具备以下三个更好的属性

  1. 属性1:视图不变性View Invariance
    iDP3的自我中心3D表示展示了令人印象深刻的视图不变性
    如下图所示

    iDP3即使在视图发生较大变化时也能始终抓取物体,而DP即使是训练对象也难以抓取。DP仅在视图发生轻微变化时偶尔取得成功
    值得注意的是,与最近的工作[22],[45],[47]不同,他们没有采用特定的设计来实现等变性或不变性
  2. 属性2:对象泛化性
    他们评估了训练杯之外的新型杯子/瓶子,如下图所示

    由于使用了颜色抖动增强,DP偶尔可以处理未见过的对象,但成功率很低。相比之下,iDP3由于使用了3D表示,自然能够处理广泛的对象
  3. 属性3:场景泛化性
    他们进一步在各种真实世界场景中部署了iDP3的策略,如下图所示

2.3.2 iDP3的几个消融研究

最后,作者对DP3的几项修改进行了消融研究,包括改进的视觉编码器、缩放的视觉输入和更长的预测范围

实验表明如果没有这些修改,DP3要么无法有效地从人类数据中学习,要么表现出显著降低的准确性

更具体地说,他们观察到

  1. 他们改进的视觉编码器可以同时提高策略的平滑度和准确性

  2. 缩放视觉输入是有帮助的,但在他们的任务中更多的点数会使性能饱和(while the performance gets saturated in our tasks with more points)

  3. 一个合适的预测时间范围是关键,如果没有这个,DP3无法从人类演示中学习

最后论文中提到,iDP3的训练时间,与DiffusionPolicy相比,显示出显著的减少。这种效率即使在点云数量增加到DP3的几倍时仍然保持

第三部分 iDP3的源码解析

// 待更

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3 -- 项目配置之eslint【企业级项目配置保姆级教程1】

下面是项目级完整配置1➡eslint:【吐血分享,博主踩过的坑你跳过去!!跳不过去?太过分了给博主打钱】 浏览器自动打开项目: 你想释放双手吗?你想每天早上打开电脑运行完项目自动在浏览器打开吗?不要9998,不要998,只要你在我们爱的 package.json 中配置一下即可显示。如…

DataWorks on EMR StarRocks,打造标准湖仓新范式

在大数据领域,数据仓库和实时分析系统扮演着至关重要的角色。DataWorks 基于大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台,为用户带来智能化的数据开发和分析体验。而阿里云提供的 EMR Serverless St…

谷歌浏览器的实验性功能介绍

谷歌浏览器(Google Chrome)作为全球最受欢迎的网络浏览器之一,以其快速、稳定和丰富的扩展功能而闻名。除了常见的功能外,Chrome还提供了许多实验性功能,这些功能可以通过启用一些隐藏的标志来访问。本文将详细介绍如何…

Acrobat Pro DC 2023(pdf免费转化word)

所在位置 通过网盘分享的文件:Acrobat Pro DC 2023(64bit).tar 链接: https://pan.baidu.com/s/1_m8TT1rHTtp5YnU8F0QGXQ 提取码: 1234 --来自百度网盘超级会员v4的分享 安装流程 打开安装所在位置 进入安装程序 找到安装程序 进入后点击自定义安装,这里…

【论文复现】STM32设计的物联网智能鱼缸

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀STM32设计的物联网智能鱼缸 【1】项目功能介绍【2】设计需求总结【3】项目硬件模块组成 1.2 设计思路【1】整体设计思路【2】ESP8266工作模式…

Elasticsearch 和 Kibana 8.16:Kibana 获得上下文和 BBQ 速度并节省开支!

作者:来自 Elastic Platform Product Team Elastic Search AI 平台(Elasticsearch、Kibana 和机器学习)的 8.16 版本包含大量新功能,可提高性能、优化工作流程和简化数据管理。 使用更好的二进制量化 (Better Binary Quantizatio…

ubuntu20.04安装FLIR灰点相机BFS-PGE-16S2C-CS的ROS驱动

一、Spinnaker 安装 1.1Spinnaker 下载 下载地址为: https://www.teledynevisionsolutions.com/support/support-center/software-firmware-downloads/iis/spinnaker-sdk-download/spinnaker-sdk–download-files/?pnSpinnakerSDK&vnSpinnakerSDK 在上述地址中…

OCR+多模态数据技术,赋能海洋数据智能处理

海洋是推动高质量发展的关键区域,也是人类未来发展的宝库。然而,我们对海洋生态系统的深入理解尚不足5%。海洋大数据,通过观测、监测、调查、分析和统计等手段获得,已成为我们探索海洋世界的主要工具。 如图1所示&#xff0…

JUC学习笔记

文章目录 锁生产者消费者问题8锁现象集合类不安全Callable创建线程的三种方式 常用辅助类CountDownLatchCyclibarrierSamphore 本篇博客是之前学习JUC时记录的内容,对于并发编程知识只是浅浅谈及,并不深入。也算是给自己开新坑。建一个JUC的专栏&#xf…

集合卡尔曼滤波(EnsembleKalmanFilter)的MATLAB例程(三维、二维)

本 M A T L A B MATLAB MATLAB代码实现了一个三维动态系统的集合卡尔曼滤波(Ensemble Kalman Filter, EnKF)示例。代码的主要目的是通过模拟真实状态和测量值,使用 EnKF 方法对动态系统状态进行估计。 文章目录 参数设置初始化真实状态定义状…

OpenGL ES 共享上下文实现多线程渲染

OpenGL ES 共享上下文时,可以共享哪些资源? 共享上下文实现多线程渲染 EGL 概念回顾 EGL 是 OpenGL ES 和本地窗口系统(Native Window System)之间的通信接口,它的主要作用: 与设备的原生窗口系统通信; 查询绘图表面的可用类型和配置; 创建绘图表面; 在OpenGL ES 和…

如何安装和使用SSH远程连接工具MobaXterm

文章目录 一、下载二、安装三、使用四、配置1、配置默认编辑器2、配置右键粘贴3、SSH配置4、关闭X-Server服务 一、下载 1、进入官网:https://mobaxterm.mobatek.net/download-home-edition.html 2、Download——>Home Edition。 3、下载绿色安装版本。 二、安…

Java项目实战II基于微信小程序的原创音乐小程序(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着移动互…

linux-文件的读写

操作系统一切皆文件,访问文件实际上就是访问硬件,因为文件都保存在硬件上,或者文件就是硬件,而要访问硬件,就需要操作系统提供的系统调用,所以c/c函数中关于访问硬件设备,基本上是由系统调用封装…

「实战应用」如何可视化 DHTMLX Scheduler 中的资源工作量?

DHTMLX Scheduler是一个全面的 UI 组件,用于处理面向业务的 Web 应用程序中复杂的调度和任务管理需求。但是,某些场景可能需要自定义解决方案。例如,如果项目的资源(即劳动力)有限,则需要确保以更高的精度分…

RNA-seq 差异分析的点点滴滴(2)

引言 本系列[1]将开展全新的转录组分析专栏,主要针对使用DESeq2时可能出现的问题和方法进行展开。 Tximeta:自动导入并附加元数据 Bioconductor 家族中的 tximeta 包,在 tximport 的基础上进行了扩展,不仅保留了原有功能&#xff…

Pycharm PyQt5 环境搭建创建第一个Hello程序

第一步: 创建Pycharm项目,下载包: pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple/pip install PyQt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/下载好了之后,可以看到相应包: PyQt5:PyQt5是一套Python绑定Digia QT5应用的框架。Qt库是最…

安装luasocket模块时提示“sudo: luarocks:找不到命令“问题,该如何解决?

大家好,我是袁庭新。分享一个我在使用luarocks来安装luarocks模块报错的解决方法。 在Unix系统中安装LuaRocks。本文我以CentOS 7.x系统为例,来讲解如何安装LuaRocks。 $ cd /opt $ wget https://luarocks.org/releases/luarocks-3.11.1.tar.gz $ tar …

Axure安装步骤及免费替代方案

Axure作为一款强大的原型设计工具,因其丰富的功能而受到设计师的青睐。它包括动态面板、复杂表格编辑、协同设计和高保真原型设计等,这些功能可以简化复杂的设计流程,提高团队效率。本文将介绍Axure的安装方法,并探索一款新兴的Ax…

分布式数据库:架构、优势与实践应用

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 分布式数据库在现代信息技术中扮演着至关重要的角色,尤其在需要处理大规模数据和实现高可用性、可扩展性的应用中更是…