深度⏱ ~4 min
里程碑
⭐ 为何重要

iDP3 改进 3D Diffusion Policy,无需相机标定和点云分割,从第一/三人视角学习人形操作,并直接从含噪人类数据训练。它是『把 diffusion policy 移植到人形上半身 manipulation(PDF 显式禁用腿部、用 cart 替代移动以规避 loco-manipulation)』的代表作,承上 DP、启下大规模 humanoid manipulation。

机器人人形(Fourier GR1)
数据集Fourier GR1 自采
上真机
实时
输入模态Apple Vision Pro 采集 → 3D 点云 Diffusion Policy

论文:Ze, Chen, Wang, Chen, He, Yuan, Peng, Wu. iDP3: Generalizable Humanoid Manipulation with 3D Diffusion Policies. IROS 2025,Stanford / SFU / UPenn / UIUC / CMU。arXiv:2410.10803(2024.10 首发,2025.09 v3)。🌐 · 硬件平台:Fourier GR1(启用 25-DoF 上半身)。

一句话直觉

让人形仅用单场景数据,泛化到大量未见场景。

能做抓放、倒水、擦拭。

秘诀是把 3D policy 改成机器人自己的视角。

不再依赖第三人称相机,也不用预先分割物体。

iDP3 之于 3D policy,就像第一人称视角之于第三人称。

机器人自己看自己周围,不需要别人帮它圈物体。

是什么·为什么

要解决的问题:让人形 manipulation 走出"单场景 demo"陷阱。

2024 年中之前的工作都只在训练场景里 demo。

换场景就废。📎

老办法的痛点:DP3(3D diffusion policy)泛化强。

但有两个硬约束。📎

一是依赖精确相机标定。

DP3 点云在世界坐标系,需要相机到机器人 base 的 extrinsic。

人形相机装在头部、头会动,标定值不稳定。

二是依赖点云分割。

DP3 用 sparse point sampling,要先从场景里抠出目标物体。

每换一个场景就要重做分割。

foundation model 在野外不可靠。

iDP3 的转身:四个改造把 DP3 推上人形。

直接吃机器人头部相机看到的场景级点云。

无需标定、无需分割。📎

方法核心(大白话):DP3 + 四个改造。

DP3 是 3D diffusion policy。

给一段 3D 点云,扩散模型预测一段动作序列。

原版 DP3 有两个硬约束——要相机标定、要分割。

iDP3 的四个改造。

改造一:egocentric 坐标系。

点云直接在相机系里用,不变换到世界系。

相机可以随便动——头动、cart 动、将来带腿走都行。

这是最重要的改造。

改造二:scaling up 输入。

不分割,直接把整个场景的稠密点云喂进去。

靠"点数足够多"让网络自己学注意力。

点数从 1024 涨到 4096。

改造三:卷积 encoder

DP3 用超简单的 MLP 当点云编码器。

iDP3 换成 pyramid 卷积。

从 noisy human data 学时行为更平滑。

改造四:延长预测 horizon。

人演示本身有 jitter,传感器噪声大。

短 horizon 学不动。

延长让 diffusion 一次预测更长动作序列。

配套的 AVP 全上半身 teleop

用 Apple Vision Pro 采人的位姿。

包括人的头部和手腕的 3D 位置和朝向。

映射到机器人 25-DoF 上半身。

包括 head + waist + arms + hands。

手臂用 Relaxed IK 跟踪人 wrist 位置。

腰和头用人 head 旋转。

机器人 LiDAR 点云回传给人,做沉浸反馈。

相比传统 bi-manual(只控双臂),这套纳入腰 + 头 + 主动视觉。

大幅扩展工作空间

📎

一句话类比:iDP3 之于 3D policy,就像第一人称视角游戏之于第三人称。

机器人戴上"自己的眼睛",看到的就是它能动手的地方。

不需要外部相机当裁判,也不需要别人帮它圈出物体。

你会看到:单场景数据训出的 policy zero-shot 泛化到大量未见场景。

做 Pick&Place、Pour、Wipe 三类任务。

论文做了 2253 个真机 episode 的严格 ablation。

是同期 humanoid manipulation 工作里评估规模最大的。

📎

怎么做

核心机制·四个改造 + AVP teleop📎

iDP3 不是新算法,是 DP3 + 四个针对人形 noisy data 的工程化改造。

整篇论文真正的贡献是"系统"——平台 + teleop + 算法 + 部署全栈。

改造一·egocentric 3D 表示(最重要)📎

DP3 把点云放在世界坐标系。

需要 camera extrinsic 把相机系点云变到世界。

iDP3 直接在相机坐标系做 3D 表示。

点云进网络前不做任何坐标系变换。

这彻底消除对外部标定的依赖。

改造二·scaling up vision input📎

DP3 用 sparse point sampling(少量代表点)。

背景/桌面要靠分割去掉。

iDP3 不分割,直接把场景级稠密点云喂进去。

靠"点数足够多"让网络自己学会从背景里分辨任务相关几何。

代价是计算量上升,但 3D 表示比 2D 像素更紧凑,训练时间反而少于 image-based DP(30 min vs 80 min)。

改造三·improved visual encoder📎

DP3 用超简单 MLP 点云编码器。

iDP3 换成 pyramid 卷积 encoder。

卷积层从不同层级提特征金字塔。

论文发现:从 noisy human data 学时,conv 比 FC 产生更平滑的行为。

pyramid 多层特征进一步提升精度。

改造四·longer prediction horizon📎

human 专家演示本身有 jitter,传感器噪声大。

短 horizon 预测学不动。

iDP3 延长预测 horizon 让 diffusion policy 一次预测更长动作序列。

论文明确:去掉 horizon DP3 完全学不会 noisy human data。

AVP teleop 全上半身📎

  • 输入:Apple Vision Pro 实时拿到 head/hands/wrists 的 3D 位置和朝向。
  • 控制范围:head + waist + arms + hands 共 25-DoF。
  • 手臂用 Relaxed IK 跟踪人 wrist 位置。
  • 腰 + 头关节用人 head 的旋转。
  • 把机器人实时视觉(LiDAR 点云)回传给人做沉浸反馈。
  • teleop 延迟约 0.5 秒(LiDAR 吃带宽/CPU)。

部署:实时 15 Hz 推理,纯机载计算(PDF 仅说 onboard computing,未指明型号)。

open-world 直接部署——无 camera calibration、无 manual point cloud segmentation。

📎

常见误区(先抛一个):以为 iDP3 是新算法。

错。

iDP3 是 DP3 的四个工程化改造 + AVP teleop + 全栈部署。

论文真正的贡献是"系统"。📎

深度

硬件(Sec.III-A):Fourier GR1 全尺寸人形(整机 29-DoF)。📎

配两 Inspire Hand。

实际只启用上半身 {head, waist, arms, hands} 共 25-DoF。

下半身禁用。

固定在可移动 + 高度可调 cart 上。

cart 解决"桌面高度变化"问题——通过调 cart 高度代替 whole-body control

头部装 RealSense L515 solid-state LiDAR(不是 D435,D435 深度精度不够,DP3 在 D435 下性能差)。

实现细节(Sec.III-C)📎

  • 优化:AdamW,300 epochs。
  • Diffusion:50 训练步 + 10 推理步(DDIM)。
  • 点云采样:DP3 用 FPS(farthest point sampling),iDP3 换成 voxel sampling + uniform sampling 级联。
  • action space:直接用 joint positions(不用 end-effector pose)。

真机算 EEF pose 噪声大,joint position 更准。

点云点数 ablation(Tab.III)📎

1024(DP3)→ 2048 → 4096(iDP3 选定) → 8192。

点数到 4096 后性能饱和,8192 反而下降(噪声 + 计算开销)。

iDP3 选 4096 作 trade-off。

Tab.III 精确消融(1st-1/1st-2/3rd-1/3rd-2 total)📎

  • Linear(DP3 原版 MLP):58/127。
  • Conv:49/131。
  • Linear + Pyramid:66/134。
  • Conv + Pyramid(iDP3):75/139。

conv 和 pyramid 各自都涨,合起来最强。

主任务 Pick&Place 设置(Sec.IV)📎

抓杯子放一边,难点是灵巧手大小和杯子差不多。

小误差就撞/漏抓——比 parallel gripper 难得多。

4 个 setting:{1st-1, 1st-2, 3rd-1, 3rd-2}。

"1st" = egocentric 视角,"3rd" = 第三人称视角。

数字 = 示教数量(每示教 = 20 次成功执行)。

物体位置在 10 cm × 20 cm 区域随机。

每个方法跑 3 episode,每 episode 1000 action steps。

共约 130 trials/method。

Tab.I 列出本工作 real-world episode 总数 2253(同期对比:OpenTeleVision 75、OmniH2O 90、HumanPlus 160、ManiWhere 200、Hato 300——本工作评估规模最大,约为次大 Hato 的 7.5×)。

对比(Tab.II)📎

  • vanilla DP(ResNet18):24/106。
  • DP3 原版:0/0(完全失败——PDF §IV-B 原文「original DP [17] and DP3 [2] work badly on our humanoid robot」)。
  • DP + frozen R3M:62/138。
  • DP + finetuned R3M:99/147(最强 baseline,甚至超过 iDP3)。
  • iDP3(用 DP3 encoder):58/127。
  • iDP3:75/139。

关键发现

  1. DP + finetuned R3M 在训练场景内比 iDP3 强(99 vs 75)。

预训练 + finetune 通常比 from-scratch 强,且当前没有对应的 3D 视觉预训练模型可用。

  1. 但 image-based 方法泛化性差(§IV-D)。

DP + finetuned R3M 换场景就过拟合,抓新场景里的新物体失败。

iDP3 的 3D 表示鲁棒得多。

这是 iDP3 的核心价值——牺牲一点训练场景精度换多场景泛化

  1. 训练更快(Fig. 7)。

iDP3 30 min vs DP 80 min,且示教数大时优势更明显。

消融总结(Tab.III)📎

去掉任一改造(encoder、scaled input、longer horizon)DP3 都学不动或精度大降。

其中 longer prediction horizon 是必须的——没有它 DP3 完全学不会 noisy human data。

部署泛化(§IV-D)📎

仅用单场景数据训出的 iDP3 policy zero-shot 泛化到大量随机选择的未见场景。

做 Pick&Place / Pour / Wipe 三类任务。

这是论文标题"Generalizable"的实证。

局限

  1. leg 固定 + cart 调高:本质回避了 loco-manipulation 难题,靠 cart 替代 WBC。

作者承认这是阶段性简化,等 WBC 成熟才能去掉 cart。

所以严格说这是"人形上半身 manipulation",不是 full-body。📎

  1. 3D 传感器贵且噪声大:RealSense L515 solid-state LiDAR 比 D435 精度高但仍不完美。

论文明确说"当前 3D observation 噪声大,更准的 3D 传感器能进一步提升"。

  1. DP + finetuned R3M 在训练场景内更强:iDP3 牺牲 in-distribution 精度换泛化。

如果有大规模 3D 视觉预训练模型(类似 R3M 但 3D),3D 路线还能大幅提升——目前没有。

  1. 任务仍偏桌面 contact-rich:Pick&Place / Pour / Wipe 都是近距离精细操作。

没有展示推开、搬重物、双手协作的大尺度任务。

  1. 0.5 s teleop 延迟:LiDAR 吃带宽导致延迟偏高,影响数据质量。
  2. 仅 Fourier GR1 验证:作者强调 iDP3 是通用算法,但实验只在一个平台上。

研究者视角

图谱定位:iDP3 是 T05 diffusion policy lineage 的转折 4。📎

首次让人形 manipulation 走出"单场景 demo"陷阱。

egocentric camera-frame 3D 表示是真正的范式创新。

把 3D policy 从"固定相机 + 第三人称 + 分割"解放出来,让 3D diffusion policy 能上人形、mobile manipulator 这类"相机随本体动"的平台。

这是 DP3 思想能否工业级落地的关键改造。

演化谱系

  • 建立在:DP3(3D diffusion policy 起点,T05 转折 4)、Diffusion Policy(action diffusion 母方法)、R3M(2D 视觉预训练 baseline)、Relaxed IK(IK 求解器)、Apple Vision Pro(手部追踪硬件)。
  • 引出:人形 IL 数据采集范式(AVP teleop 被后续 OmniH2O/HumanPlus/HOX/ARMA 普遍采纳);3D 视觉预训练模型的需求(论文指出缺这个,是后续研究方向);pi0 / GR00T 等 VLA 路线(最终选择 2D RGB + 大模型而非 3D 路线,但 iDP3 证明了 3D 在小数据高泛化场景的价值)。

副产品

  1. AVP teleop 全上半身:把 teleop 从 bi-manual 扩展到 head + waist + hands + arms。

配合 egocentric vision 回传,定义了 2024–2025 年人形数据采集的事实范式。📎

  1. egocentric 3D 表示:让 3D policy 摆脱固定相机依赖,是 3D diffusion policy 能上人形/mobile 平台的关键改造。
  2. 训练效率反超 2D:3D 点云 + iDP3 比 2D DP 训练更快、数据效率更高,扭转了"3D 一定比 2D 慢"的偏见。

Open problems

  1. 3D 视觉预训练模型缺失:2D 有 R3M/CLIP 等,3D 没有对应物。

有了之后 3D 路线还能大幅提升。[未确认]

  1. loco-manipulation:当前靠 cart 回避。

去掉 cart、让机器人带腿走 + 上半身 manipulation 是开放方向。

  1. 0.5 s teleop 延迟:LiDAR 吃带宽。

能否用更轻量的 3D 传感器或事件相机把延迟压下去,仍开放。

  1. 任务尺度:当前偏桌面 contact-rich。

推、搬、双手协作的大尺度任务尚未展示。

常见误区

"iDP3 是新算法" —— 不准确。

iDP3 是 DP3 的四个工程化改造 + AVP teleop + 全栈部署。

论文真正的贡献是"系统",不是新算法。📎

"iDP3 比 DP + finetuned R3M 强" —— 部分错。

训练场景内 iDP3(75/139)弱于 DP + finetuned R3M(99/147)。

iDP3 的优势是泛化——换场景时 R3M 过拟合失败,iDP3 鲁棒。

iDP3 牺牲一点 in-distribution 精度换多场景泛化。📎

"iDP3 用 end-effector pose 当 action" —— 错。

iDP3 直接用 joint positions。

真机算 EEF pose 噪声大,joint position 更准。📎

"iDP3 是 full-body 人形" —— 错。

leg 固定 + cart 调高。

只启用 25-DoF 上半身(head + waist + arms + hands)。

严格说是"人形上半身 manipulation"。📎

"点云越多越好" —— 不对。

点数到 4096 后性能饱和。

8192 反而下降(噪声 + 计算开销)。

iDP3 选 4096 作 trade-off。📎

检查点

Q1

iDP3 是 DP3 + 四个改造。请说出其中两个改造,并解释每个改造解决了 DP3 在人形上的什么问题?

💡 参考答案

  • 四个改造任选两个:(1) egocentric 坐标系——点云不变换到世界系,消除对外部相机标定的依赖;(2) scaling up 输入——不分割,直接喂场景级稠密点云,靠点数多让网络自己学注意力;(3) pyramid 卷积 encoder——替换 DP3 的 MLP,从 noisy human data 学时行为更平滑;(4) longer prediction horizon——缓解 noisy human data 的 jitter,否则 DP3 学不会。
  • 每个改造要说出对应解决的 DP3 问题(标定/分割/MLP 平滑度/jitter),不能只列名字。
  • 关键:iDP3 不是新算法,是 DP3 的工程化改造。论文真正的贡献是系统(平台 + teleop + 算法 + 部署)。
Q2

DP3 原版要把点云放在世界坐标系,iDP3 改成放在哪里?为什么这个改造对"机器人头会动"这件事关键?

💡 参考答案

  • 改成哪里:相机坐标系(camera frame)。点云进网络前不做任何坐标系变换,iDP3 称之为 egocentric 3D 表示。
  • 为什么关键:DP3 的世界坐标系需要相机到机器人 base 的 extrinsic;人形相机装在头部、头会动,extrinsic 不稳定。
  • 相机坐标系表示的好处:相机随便动都行(头动、cart 动、将来带腿走都行),彻底消除对外部标定的依赖。
Q3

用"第一人称视角游戏 vs 第三人称视角游戏"或自己举的类比,用自己的话解释 iDP3 相对 DP3 的核心改动。

💡 参考答案

  • 类比核心:DP3 = 第三人称视角,需要外部相机当裁判(固定在世界系);iDP3 = 第一人称视角,机器人戴自己的眼睛(相机系)。
  • 关键映射:第三人称要相机标定 + 分割物体(外部裁判圈出玩家和敌人);第一人称看到的就是能动的地方,不需要外部裁判。
  • 扩展:第一人称让机器人可以头动、身体动、将来带腿走都行——相机跟着本体动,不再需要固定的世界坐标系。
Q4

iDP3 在训练场景内的成功率比 DP + finetuned R3M 低。为什么论文还认为 iDP3 更有价值?

💡 参考答案

  • 核心:iDP3 牺牲一点训练场景内精度换多场景泛化。训练场景内 R3M 强,但换场景就过拟合失败;iDP3 的 3D 表示对几何鲁棒得多。
  • 现象:DP + finetuned R3M 抓新场景里的新物体失败;iDP3 zero-shot 泛化到大量未见场景。
  • 关键:这是论文标题'Generalizable'的实证——iDP3 的价值在泛化,不在训练场景内的极致精度。
Q5

iDP3 用 AVP 做 teleop 采集数据。相比传统 bi-manual(只控双臂),这套系统的关键扩展是什么?

💡 参考答案

  • 关键扩展:纳入腰 + 头 + 主动视觉,不只是双臂。控制范围是 head + waist + arms + hands 共 25-DoF。
  • 为什么重要:尤其是不同高度的任务靠腰俯仰——传统 bi-manual 够不到地面或高处。
  • egocentric 反馈:机器人 LiDAR 点云回传给操作员做沉浸反馈,操作员看到的就是机器人看到的。

FAQ

Q1:iDP3 能直接装到我自己的机器人上吗?

不能直接装。

需要 Fourier GR1(或类似 25-DoF 上半身人形)+ RealSense L515 LiDAR + AVP + 可调高 cart + 机载计算单元(PDF 未指明型号)。📎

算法部分(iDP3 训练)开源在 humanoid-manipulation.github.io/,但硬件栈是关键。

Q2:为什么不用 image-based DP(2D)而用 3D?

2D DP + finetuned R3M 在训练场景内比 iDP3 强(99 vs 75)。

但换场景就过拟合失败。

3D 表示对几何鲁棒得多——这是 iDP3 的核心价值。

另外 3D 训练反而更快(30 min vs 80 min),因为 3D 表示比 2D 像素更紧凑。📎

Q3:为什么手部目标用 joint position 不用 EEF pose?

真机算 EEF pose 噪声大(kinematics 链长,误差累积)。

joint position 直接是编码器读数,更准。📎

Q4:AVP teleop 延迟 0.5 秒是大问题吗?

影响数据质量,但不致命。

延迟主要来自 LiDAR 点云回传(吃带宽/CPU)。

论文试过腕上再加一个 LiDAR,延迟高到没法采数据。

这是为什么 iDP3 只用一个头部 LiDAR。📎

Q5:iDP3 复现难度?

高。

硬件 + teleop 链路搭起来 1–2 个月。

iDP3 训练本身快(30 min 级),但采数据 + 调视角 + 调 cart 高度是大工程。

baseline 复现坑:DP3 原版在人形 noisy data 上直接失败(0/0);DP + frozen R3M 反而能学(62/138),DP + finetuned R3M 是最强 baseline(99/147)。📎