一句话定位
Hierarchical Diffusion Policy(HDP,CVPR 2024)把操作策略拆成两层:高层用现成的 PerAct 预测下一个关键末端位姿(next-best pose, NBP),低层用一个新提出的 Robot Kinematics Diffuser(RK-Diffuser) 生成到达该位姿的完整关节轨迹——RK-Diffuser 同时训练一个末端位姿扩散器和一个关节位置扩散器,并在推理时用可微机器人运动学把精确但不懂运动学约束的位姿轨迹「蒸馏」进关节空间,从而替代传统 IK 求解器,在 RLBench 11 个任务上把整体成功率从最强基线 PerAct+Diffuser 的 71.27% 提到 80.18%,并在真实 Franka Panda 上仅用每子任务 10 条示范就学会开烤箱(100%)与分拣物体入抽屉(94%)。
背景与定位
机器人操作策略的两条主流路线各有短板:
- 端到端连续控制(直接把 RGB 映射到关节 / 速度动作,如 Diffusion Policy 的原始设定)对任务和环境假设最少,但长时程任务样本效率低、易受累积误差影响。
- 下一关键位姿(NBP)智能体(PerAct、C2F-ARM、Act3D 等)只预测稀疏关键帧末端位姿,再交给预定义运动规划器(如 RRT)去生成轨迹——规划器不理解任务上下文,遇到需要「感知环境动力学」的任务(如论文举例的开箱子:必须理解铰链阻力才能走出正确的弯曲轨迹)就会失败。
HDP 的立意是把两者缝合:高层保留 NBP 智能体的长时程任务规划能力(直接复用 PerAct,不重新训练其架构),低层用可学习的、能感知任务上下文的扩散策略替代运动规划器。这与同期工作 ChainedDiffuser(3D Diffuser Actor 团队 Xian et al. 2023)同属「扩散连接两个关键位姿」的思路,但 ChainedDiffuser 直接在末端位姿轨迹上扩散、再用 IK 求解器转成关节动作,对 IK 误差没有免疫力;HDP/RK-Diffuser 的核心区别在于额外学习关节位置扩散并用可微运动学做知识蒸馏,以绕开 IK 求解器。论文作者为 Xiao Ma、Sumit Patidar、Iain Haughton、Stephen James(Dyson Robot Learning Lab;Stephen James 也是 RLBench 的作者)。
模型架构
整体分解:π(a∣o,l) = π_high(a_high∣o,l) ∘ π_low(a∣o,a_high)。a_high=(a_pose, a_grip) 含 6-DoF 末端位姿(平移 R³+四元数旋转 R⁴)和二值夹爪动作;低层输出 a_low=a_joint,即 N 维关节角轨迹(N=机器人关节数)。
高层:PerAct(直接复用,未改动架构)——语言条件的 Transformer 行为克隆智能体:CLIP 冻结语言编码器提取指令特征;RGB-D 多视角图像经相机内外参投影为 100³ 体素网格;PerceiverIO 用 2048 个 512 维固定 latent 向量编码体素+语言 token,解码出三个离散动作头——体素平移 Q_trans、离散化旋转 Q_rot、夹爪开合 Q_grip。与原版 PerAct 不同,本文去掉了 collision 动作头(π_collision),因为低层 RK-Diffuser 被训练为自动生成避障轨迹,不需要高层显式标记是否忽略碰撞。高层超参直接沿用原始 PerAct 论文设置。
低层:RK-Diffuser——两个并行扩散模型:
- 末端位姿扩散 p_θ(a_pose^(k-1)∣a_pose^k, C_pose):条件 C_pose 包含起始位姿 a_pose⁰(0)、高层预测的下一关键位姿 â_pose⁰(T)、机器人低维状态、夹爪开度、环境点云 v。每步去噪都用起止位姿做轨迹内绘(inpainting),作为硬约束,保证末端始终对齐高层输出。
- 关节位置扩散 p_φ(a_joint^(k-1)∣a_joint^k, C_pose):条件同上,但只 inpaint 起始关节角 a_joint⁰(0)——因为一个 6-DoF 末端位姿对 7-DoF 冗余臂可能对应无穷多组关节解,无法像位姿扩散那样对末态做 inpainting。
可微运动学蒸馏(推理时):利用可微正运动学 f_K(a_joint⁰)=a_pose⁰(URDF 定义),以关节扩散器输出的 a_joint⁰ 为初始化(已接近最优),用梯度下降 a_joint⁰ ← a_joint⁰ − α·∂‖a_pose⁰ − f_K(a_joint⁰)‖/∂a_joint⁰(式 10)把关节轨迹拉向位姿扩散器给出的更精确目标,得到最终执行轨迹 a_joint^(0*)——既不违反运动学约束,又继承位姿扩散器的高精度。
网络细节:点云特征提取用 PointNet++(RGB-D 转世界系点云,仅用前置相机);其余向量特征(位姿、状态等)用 2 层 MLP(128、512 隐藏单元,GELU 激活);时序去噪骨干沿用 Janner et al. [21](Diffuser)的 Conv1D UNet,含 3 个下采样残差块+3 个上采样残差块(消融显示与 Transformer 骨干无明显性能差距)。推理用**无分类器引导(classifier-free guidance, Ho & Salimans 2022)**做条件采样。子轨迹统一重采样到长度 T=64 做批训练。
轨迹排名(trajectory rank):额外条件变量 r_ξ = d_Euclidean/d_travel(起止点欧氏距离/实际走过路程),训练示范路径未必最优,推理时强制设 r_ξ=1 以鼓励生成更短、更接近最优的轨迹。
关键超参搜索(网格搜索,标注为选中值):去噪步数 {10, 50, 100};噪声初始化 {正态分布, 均匀分布};预测目标 {预测噪声 ε, 直接预测 x₀(遵循 Ramesh et al. 2022/DALL·E2 的做法,经验上效果更好)}——即最终选定 100 步去噪 + 正态噪声初始化 + 直接预测 x₀。这套超参先在 open oven / open microwave / open grill 三个高难任务上验证,再统一应用到全部任务与真实机器人。
数据
纯行为克隆,不采集额外强化学习数据:
- RLBench 仿真(RLBench/CoppeliaSim,Franka Panda):11 个任务(reach target、take lid off saucepan、pick up cup、toilet seat up、open box、open door、open drawer、open grill、open microwave、open oven、knife on board),每任务 100 条专家示范,训练 100K 迭代。
- 关键帧发现(keyframe discovery):沿用 James & Davison [17] 方法——关节速度趋近于 0 且夹爪开合状态未变时判定为关键帧;与先前工作只保留关键帧不同,HDP 同时保留关键帧索引并切分出不同轨迹段,分别喂给高层(仅关键帧)和低层(关键帧间的完整子轨迹)训练。
- 子轨迹重标注:仿照 Hindsight Experience Replay,把每个关键帧重标为子目标,构造 {ξ(i)} 子轨迹训练低层,与高层可同时联合优化。
- 低层数据增强:对起止位姿额外采样 a(0+k)、a(T−k) 作为子轨迹起止点,k∼U[0,5],用以补偿高层预测下一关键位姿时可能存在的误差。
- 真实机器人:Franka Panda 7-DoF 臂 + 2 台 RealSense D415 相机;开烤箱(open oven)和分拣物体入抽屉(sorting objects into drawer,含 beetle/bear/cube 等目标物)两个任务,每个子任务仅 10 条示范。
训练方法
高层损失(式 7,沿用 PerAct):ℒ_high = −𝔼_(k∼ξ,ξ∼𝒟)[log π_high(a_demo(k)∣o,l)],即离散动作空间上的交叉熵行为克隆损失(平移/旋转/夹爪三个离散头之和)。
低层损失(式 11):ℒ_low = −β₁ℒ_pose − β₂ℒ_joint − β₃ℒ_joint→pose,三项均为扩散 ELBO(式 5 形式):
- ℒ_pose:末端位姿扩散的证据下界;
- ℒ_joint:关节位置扩散的证据下界;
- ℒ_joint→pose:蒸馏项——通过可微运动学把关节位置轨迹映射回末端位姿 â_pose^(0:K)=f_K(a_joint^(0:K)),再用它计算 ELBO,让关节位置扩散器在训练时就吸收位姿空间的精度信号,作为运动学归纳偏置。
优化配置:低层网络用 AdamW 训练 100K 步,多任务联合训练(每任务 100 条示范)。高层直接沿用原始 PerAct 超参(未在本文重新调参)。
推理流程:高层 PerAct 先给出下一关键位姿;RK-Diffuser 以此为目标条件采样出位姿轨迹和关节轨迹;再用式 10 的梯度下降做运动学蒸馏得到最终关节轨迹;执行到该关键位姿后进入下一个高层决策周期,如此循环直至任务完成。
Infra(训练 / 推理工程)
- 训练 GPU 型号 / 卡数 / GPU-hours / 并行策略 / 精度:论文正文与附录、GitHub README 均未披露。
- 推理控制频率 / 延迟:论文未给出具体 Hz 或毫秒级延迟数字(不同于同期 3D Diffuser Actor 论文披露的控制频率对比)。
- 真实机器人硬件:Franka Panda 7-DoF 机械臂 + 2 台 RealSense D415 RGB-D 相机(已在「数据」节列出)。
- 代码仓库(
dyson-ai/hdp)基于 CoppeliaSim + RLBench 环境,依赖 PyTorch/PyTorch3D 生态;高层 PerAct 训练/推理直接复用 PerAct 官方实现。
评测 benchmark
所有数字取自论文正文表格(arXiv HTML 版 Table 1、Table 2、正文 5.4 节及附录 B.1)。
RLBench 11 任务整体成功率(Table 1,%):
| 方法 | overall |
|---|---|
| ACT | 18.36 |
| Diffusion Policy | 15.18 |
| PerAct + Planner | 57.72 |
| PerAct + Planner + Bezier | 56.73 |
| PerAct + Diffuser | 71.27 |
| HDP | 80.18 |
分任务代表性对比(HDP vs 次优基线 PerAct+Diffuser):open box 90 vs 82、open door 94 vs 88、open oven 58 vs 18、knife on board 72 vs 52——在需要理解任务上下文/铰链动力学的高难任务上领先幅度最大;简单任务(reach target、take lid off saucepan)双方均接近满分。
RK-Diffuser 消融(Table 2,固定用专家高层位姿,对比成功率/IK 违例率,%):
| 方法 | 成功率 | IK 违例率 |
|---|---|---|
| RRT | 26.82 | 0 |
| Pose Diffusion(位姿扩散+IK求解) | 67.18 | 24.55 |
| Joint Diffusion(纯关节扩散,无终态inpaint) | 73.64 | 0 |
| RKD-RGB(ResNet50提特征,弃深度) | 72.18 | 0 |
| RKD-ResNet(ResNet提RGB-D特征) | 83.45 | 0 |
| RK-Diffuser(完整版) | 94.55 | 0 |
关键发现:Pose Diffusion 虽然在部分任务(如 open microwave)成绩不错,但整体 IK 违例率高达 24.55%,其中由无效四元数导致的 IK 错误约占其失败案例的 75%,且 IK 违例率随控制难度上升而增加;RK-Diffuser 通过关节空间扩散+运动学蒸馏,把 IK 违例率降为 0且成功率反而最高,验证了「用可微运动学替代 IK 求解器」这一核心设计。
真实机器人(5.4 节 + 附录 B.1):开烤箱任务成功率 100%,分拣物体入抽屉任务成功率 94%;附录逐子任务分解(reach 100、open(烤箱)100、open(抽屉)100、beetle 85、bear 100、cube 85、close 100),整体加权 95.71%。两个任务都要求精确控制腕部姿态,否则烤箱高阻力铰链会导致关节力矩超限而停止——作者观察到即便高层 PerAct 因示范轨迹方差大而给出分布外的次优目标位姿,RK-Diffuser 仍能鲁棒地生成准确轨迹。
创新点与影响
- 用可微运动学替代传统 IK 求解器,是本文最核心的贡献:传统末端位姿扩散(如同期 ChainedDiffuser)依赖 IK 求解器把位姿轨迹转成关节动作,论文定量证明轨迹越长、IK 违例概率 p_error=1−(1−p)^T 越趋近于 1,是长时程任务失败的主因之一;RK-Diffuser 通过训练关节位置扩散器 + 推理时梯度下降蒸馏,把 IK 违例率消除为 0。
- 双扩散器的知识蒸馏范式:位姿扩散器精确但不懂运动学约束、关节扩散器懂约束但(因无法对末态 inpaint)欠精确,论文提出用可微正运动学在训练(ℒ_joint→pose)和推理(式 10 梯度优化)两个阶段把前者的精度「蒸馏」给后者,是一种新颖的跨动作空间知识迁移方式。
- 高低层解耦、复用现成高层策略:高层直接沿用 PerAct 而不重新设计架构,证明该分解范式对高层智能体的选择是通用的(「naturally works as a low-level policy of PerAct」原文表述)。
- 真实机器人低数据验证:每子任务仅 10 条示范即在高阻力接触任务(开烤箱)上达到 100% 成功率,展示了运动学感知低层策略对样本效率的贡献。
- 作者自陈局限:(1) open microwave 任务因末端位姿分布高度多样,导致高层预测方差大、误差向下游传播,论文将此列为未来探索方向;(2) 行为克隆固有的长时程误差累积/分布漂移问题并未根本解决,作者认为需要设计更统一的结构以减少复合误差(列为 Conclusion 中的未来工作)。
原始链接
- 论文(arXiv abs):https://arxiv.org/abs/2403.03890
- 论文 PDF:https://arxiv.org/pdf/2403.03890
- 项目主页:https://yusufma03.github.io/projects/hdp/
- GitHub(官方实现,dyson-ai/hdp):https://github.com/dyson-ai/hdp
一手源存档(sources/)
- hierarchical-diffusion-policy-hdp—project-page — 项目主页快照(sources/embodied/2024/hierarchical-diffusion-policy-hdp—project-page.md)
- hierarchical-diffusion-policy-hdp—github-readme — GitHub README 快照(sources/embodied/2024/hierarchical-diffusion-policy-hdp—github-readme.md)
- arXiv 2403.03890 全文(HTML v1)已通读,原文 PDF 不入 git,引用见上方 arXiv 链接