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

首次在真机上对训练时未见过的复杂几何物体做 in-hand 重定向,是 in-hand manipulation 跨物体泛化的里程碑(Science Robotics)。它打开了『泛化到训练分布外物体』的方向,启发了后续 generalizable in-hand rotation 工作。

机器人Allegro Hand
上真机
实时
输入模态vision,proprioception
📍 演进位置
建立在
  • A System for General In-Hand Object Re-Orientation
催生

论文:Chen, Tippur, Wu, Kumar, Adelson, Agrawal(MIT + Tsinghua + Meta AI). Visual Dexterity: In-Hand Reorientation of Novel and Complex Object Shapes. Science Robotics 2023 / arXiv:2211.11744. 🌐 · 真机平台:D'Claw(开源 3/4 指手)+ 单 Intel RealSense 深度相机,整机硬件 < $5k。

一句话直觉

一台深度相机让一只手转没见过的物体到任意朝向。

还能朝下抗重力——失败就掉、不可逆。

Visual Dexterity 之于灵巧手,就像蒙眼转笔高手。

看一眼记住形状。

它学的不是「这一招怎么转方块」,而是「无论什么形状都能转」。

是什么·为什么

要解决的问题:让一只手把没见过的新物体转到任意朝向。📎

目标要同时满足四件事,之前的工作最多踩中三件。

之前的工作至少踩中下面一条限制📎

  • 只能转简单凸形(多边形、圆柱);
  • 转角范围有限;
  • 准静态(慢);
  • 仅仿真结果;
  • 依赖昂贵专用传感(mocap / 多相机阵列);
  • hand 朝上(物体被托住、不抗重力)。

OpenAI Dactyl 虽然 sim-to-real 成功。

每个物体要单独训一个策略,且依赖 mocap。

真正能用的 reorientation 系统需要同时满足四件事。

(1) 任意 SO(3) 朝向;(2) 泛化到新形状。

(3) 实时(单一商用传感器);(4) 能抗重力(下视手)。📎

Visual Dexterity 的转身:把这四条一次解决。

几个关键组合:单一控制器、点云作目标、teacher-student📎

方法核心(大白话):整套训练分两层,老师 + 学生。

  • 第一层·特权老师(teacher):在仿真里训一个「特权老师」。

PPO + 强化学习

老师能看到全刚体状态:关节、物体位姿、目标朝向。

看不到物体形状(这是 POMDP 简化为 MDP 的代价,是开放问题)。

老师跨 150 个物体一起训。

这一层是「在仿真里学会转」。

  • 第二层·点云学生(student):真机上装一台深度相机。

学生从点云直接预测动作,端到端。

模仿学习老师——目标就是匹配老师的动作。

输入点云 = 场景点云 + 手指表面采样点 + 目标朝向下的物体点云。

场景点云来自相机,手指表面点是合成采样的(让网络感知「手指-物体」空间关系)。

网络用 Minkowski Engine 稀疏 3D CNN

这是为了满足 12 Hz 实时。

这一层的核心 trick:用点云当目标,不用 pose / quaternion。

绕开了「跨物体无统一坐标系 / 关键点」的死结。

📎

两阶段学生(训练加速 trick):直接渲染点云训 student 慢得离谱。

单物体 > 1 周 V100。

分两阶段:

  • Stage 1(student1):用合成点云训练,极快。

合成点云不渲染,直接从 mesh 采样。

  • Stage 2(student2):渲染点云 finetune。

缩小 sim-to-real 的感知 gap。

整体训练加速 5 倍

这是「跨物体视觉策略」实验可行的关键。📎

Sim2Real 关键 trick:选择性 DR + 系统辨识 + 软指尖。

in-hand 重定向 sim-to-real 极难。

手和物体都动得快。

downward-facing 失败不可逆。

接触模型对非凸物体粗糙。

策略是减少对 DR 依赖、只在必要处用

四件事:

  • 感知 gap:只用深度。

RGB sim-real 统计差异大。

给仿真点云加噪声。

  • 动力学 gap:机器人本体可辨识。

用大规模并行仿真做黑盒系统辨识

spawn 多个不同动力学参数的仿真实例,选与真机运动最接近的。

机器人本体只用小范围 DR;物体动力学无法逐个辨识,用大范围 DR;

  • 硬件巧思:软指尖compliant + 高摩擦),让控制误差被材料形变吸收。

📎

一句话类比:Visual Dexterity 之于灵巧手,就像蒙眼转笔高手。

看一眼记住形状。

它学的不是「这一招怎么转方块」,而是「无论什么形状都能转」。

注意边界:绝对精度仍有限(最难的鸭子 OOD 物体掉落率 56%)。

怎么做

硬件与任务设定(Sec.III):开源 3 指 D'Claw 及改版 4 指手(9/12 DoF),装在 80/20 铝型材架上。

朝下(downward-facing),物体被手指从上方抓住——失败即掉落、不可逆。

观测是单台 Intel RealSense 的深度图(转成 base link 下的点云)+ 关节编码器

目标以「物体在目标朝向下的点云」形式给出(不写成 pose / quaternion)。

控制频率 12 Hz。

任务在 SO(3) 全空间,并在「有桌面支撑」和「空中无支撑」两种设定下都评估。📎

核心机制·teacher-student + 点云策略(Sec.IV):两层架构。📎

  • Teacher:仿真用 PPO + 特权低维状态。

特权状态含:关节位置 / 速度、物体位姿 / 速度、目标朝向。

单 teacher 跨 150 个物体一起训。

POMDP 简化为 MDP:teacher 输出动作 a_t,输入观测 o_t 和上一动作 a_{t-1}。

额外喂上一动作鼓励平滑控制。

  • 动作平滑:策略原始输出手指数维(G 维)。

用指数移动平均平滑(α = 0.8)。

目标关节角 = 当前关节角 + 平滑后的输出。

  • Student:用模仿学习学从点云直接到动作的端到端网络。

目标是匹配 teacher 的动作。

输入点云 = 场景点云(相机 ∪ 手指表面合成点)∪ 目标朝向下的物体点云。

手指表面点是合成采样的——让网络感知「手指-物体」空间关系。

网络用 Minkowski Engine 稀疏 3D CNN(带 GRU)以满足 12 Hz 实时。

两阶段 student 加速训练

  • Stage 1(student1):合成点云(不渲染,从 mesh 采样)训练,极快;
  • Stage 2(student2):渲染点云对 student1 finetune,缩小 sim-to-real 感知 gap。

整体加速 5×。📎

关键设计·点云作目标 = 跨物体泛化的关键 trick:目标用「物体在目标朝向的点云」而非 pose。

绕开了「跨物体无统一坐标系 / 关键点」的死结——直接从点云预测动作,天然泛化到新形状。

这是方法层面最可复用的 insight。📎

Reward 设计:从桌面到空中(Sec.IV):桌面重定向 reward 五项组成。

两项正向(c1, c2 > 0)、三项负向(c3, c4, c5 < 0)。

  • 稀疏成功奖励;
  • 稠密朝向奖励(缩小当前-目标朝向误差);
  • 指尖贴近物体(否则训练时手指根本不碰物体);
  • 能耗惩罚;
  • 把物体推离手的惩罚。

要学到空中 reorientation,追加两项(c6, c7 < 0)。

  • 惩罚依赖桌面(逼策略把物体拎起来);
  • 惩罚用「倒数第二关节」而非指尖转物体(让动作更自然)。

关键发现:配合 4 指手(3 指不够),空中 reorientation 会从这套 reward 涌现出来。

不需要专门的 gravity curriculum📎

Sim2Real:选择性 DR + 系统辨识 + 软指尖(Sec.V)

  • 感知 gap:只用深度。

给仿真点云加噪声。

  • 动力学 gap:机器人本体可辨识。

用 Isaac Gym 大规模并行做黑盒系统辨识

spawn 多个不同动力学参数的仿真实例,选与真机运动最接近的。

机器人本体只用小范围 DR 覆盖未建模误差。

物体动力学无法逐个辨识,用大范围 DR。

  • 抗扰:训练中对物体施加随机扰动力(大小随机 + SO(3) 随机方向)。

压力策略学会「边转边抗扰」。

  • 硬件巧思:软指尖(compliant + 高摩擦),让控制误差被材料形变吸收。

真机上 less aggressive、overshot 更小。📎

常见误区(先抛一个,完整版见末尾):「student 直接渲染点云训就行」——慢得离谱。

单物体 > 1 周 V100。

分两阶段:Stage 1 合成点云(不渲染,从 mesh 采样)极快;Stage 2 渲染点云 finetune。

整体加速 5×,是「跨物体视觉策略」实验可行的关键。📎

深度

Reward 精确形式(Sec.IV):桌面重定向 reward:

$$r_t^1 = c_1 \mathbb{1}[\text{成功}] + \frac{c_2}{|\Delta\theta_t| + \epsilon_\theta} + c_3 \sum_{i=1}^{G}\|p_t^{f_i} - p_t^o\|_2^2 + c_4 |\dot{q}_t|^T|\tau_t| + c_5 \mathbb{1}[\|p_t^o\|_2^2 > \bar{p}]$$

逐项读:稀疏成功奖励、稠密朝向奖励(缩小当前-目标朝向误差 $\Delta\theta_t$)、指尖贴近物体(否则训练时手指根本不碰物体)、能耗惩罚、把物体推离手的惩罚。

要学到空中 reorientation,追加两项($c_6, c_7 < 0$):

$$r_t^2 = r_t^1 + c_6 \mathbb{1}[\text{物体碰桌面}] + c_7 \sum_{i=1}^{N}\mathbb{1}[p_{t,z}^{f_i} > \bar{z}]$$

第一项惩罚依赖桌面(逼策略把物体拎起来),第二项惩罚用「倒数第二关节」而非指尖转物体(让动作更自然)。

关键发现:配合 4 指手(3 指不够),空中 reorientation 会从这套 reward 涌现出来,不需要专门的 gravity curriculum(这是它相对前作 [Chen 2022] 的进步)。📎

为什么点云作目标能跨物体泛化:传统方法用 pose / quaternion 当目标。

跨物体时,pose 在不同物体上有不同语义(鸭子的「朝上」和圆柱的「朝上」几何意义不同)。

关键点也定义不出来(鸭子没有「指尖」「中心」这种点)。

点云作目标绕开了这个死结——任何物体都可以采样成点云,policy 直接从「当前点云 + 目标点云」预测动作。

这是方法层面最可复用的 insight,被后续大量点云策略工作(iDP3、DP3)直接复用。[未确认]

Sim2Real 的黑盒系统辨识细节:用 Isaac Gym 的大规模并行仿真做黑盒系统辨识

spawn 很多不同动力学参数的仿真实例。

选与真机运动最接近的那个(让 $\lambda_i \in \Lambda$ 对应的仿真 $C^{\lambda_i}$ 与真机 $C^{real}$ 的轨迹匹配评分最高)。

机器人本体只用小范围 DR 覆盖未建模误差。

物体动力学(材质 / 质量分布)无法逐个辨识,用大范围 DR。📎

软指尖为什么重要:用软指尖(compliant + 高摩擦),让控制误差被材料形变吸收。

真机上 less aggressive、overshot 更小。

论文实证显著改善 sim-to-real——这是工程上不可省的 trick。📎

性能与精度:单一控制器在训练时没见过的 OOD 物体(含鸭子这种复杂非凸形)上做任意 SO(3) 重定向。

绝对精度仍有限:最难的鸭子 OOD 物体掉落率 56%。

不掉时 75% 能转到 0.4 rad(23°)以内。

论文坦承「ample scope for improving absolute performance」。📎

局限

  1. 绝对精度仍有限:鸭子 OOD 掉落率 56%;不掉时 75% 转到 0.4 rad(23°)以内。

论文坦承 ample scope for improving。📎

  1. sim-to-real gap 仍在:真机误差高于仿真。
  2. teacher 看不到物体形状(POMDP 简化为 MDP 的代价)。

把 shape 信息注入 teacher 是 open direction。📎

  1. 未上触觉:与 RotateIt [Qi 2023] 互补——后者明确把触觉纳入 in-hand 旋转。[未确认]

研究者视角

图谱定位:Visual Dexterity 是 T11 灵巧操作转折 4——in-hand 重定向 RL 突破,把 in-hand 操作从「单一刚体」推向「跨形状泛化」的标志性工作。📎

它把 Dactyl「一物一策略」推进到「跨物体单一策略」,是 in-hand RL 走向实际 tool-use 的关键节点。

核心贡献的四条独立线

  1. 跨形状泛化的第一次实证:单一控制器在训练时没见过的 OOD 物体(含鸭子)上做任意 SO(3) 重定向。
  2. 点云目标 + 稀疏 CNN = 跨物体泛化的关键 trick:目标用「物体在目标朝向的点云」而非 pose。

绕开了「跨物体无统一坐标系 / 关键点」的死结。

  1. democratize 灵巧研究:硬件 < $5k、全开源。

是学术 lab 能批量复现的平台(vs Shadow Hand $100k+)。

  1. 下视手 + 抗重力 + 实时:把之前所有「朝上手 / 多相机 / mocap」的妥协一次性去掉。

靠近真实 tool-use 场景。📎

演化谱系

  • 建立在A System for General In-Hand Object Re-Orientation [Chen 2022, CoRL](同组前作,确立 teacher-student + gravity curriculum 范式;本作把 curriculum 替换为 reward-driven 涌现)、Dactyl / OpenAI Hand [Andrychowicz 2018](DR + LSTM 灵巧手 sim-to-real 开山)、Tobin et al. 2017(domain randomization)。🌐
  • 引出RotateIt / General In-Hand Object Rotation with Vision and Touch [Qi 2023, CoRL](视觉 + 触觉融合,补上触觉这条线);后续触觉 + in-hand 工作(Tac2Motion 等);点云策略线(iDP3、DP3)。[未确认]
  • 方法学遗产:点云作目标 + 稀疏 3D CNN 跨物体泛化范式,被 3D 扩散策略(DP3、iDP3)直接继承——只是把「策略网络」换成了「扩散去噪」。[未确认]

副产品·democratize 灵巧研究:D'Claw 硬件 < $5k 全开源,是后续学术 lab 批量复现 in-hand RL 的标准平台。

软指尖 + 选择性 DR + 系统辨识的 sim-to-real 工程包也被后续工作大量复用。[未确认]

Open problems

  1. 绝对精度的提升:鸭子 OOD 56% 掉落率,论文坦承 ample scope for improving。

能否通过触觉(RotateIt 路线)、更好的接触建模、或 longer-horizon planning 提升,仍开放。[未确认]

  1. shape 信息注入 teacher:当前 teacher 看不到物体形状(POMDP → MDP 简化的代价)。

把 shape 注入 teacher 是论文点名的 open direction。📎

  1. 跨物体 + 触觉融合:Visual Dexterity 是纯视觉,未用触觉。

触觉 + 视觉在跨物体上的统一策略(RotateIt 是单物体)是开放方向。[未确认]

  1. 更复杂非凸物体的泛化极限:鸭子之外更复杂的形状(如工具、柔性物体)能否被这套范式覆盖,仍开放。[未确认]

常见误区

「直接渲染点云训 student 就行」 —— 错。

直接渲染点云训 student 慢得离谱(单物体 > 1 周 V100)。

论文用两阶段:Stage 1 合成点云(不渲染,从 mesh 采样)极快;Stage 2 渲染点云 finetune。

整体加速 5×,是「跨物体视觉策略」实验可行的关键。

渲染是 sim-to-real 必需,但全部渲染会拖垮训练。📎

「目标用 pose / quaternion 就行」 —— 错。

跨物体时 pose 在不同物体上语义不同(鸭子的「朝上」和圆柱的「朝上」几何意义不同)。

关键点也定义不出来。

论文用「物体在目标朝向的点云」当目标,绕开这个死结。

点云目标是跨物体泛化的关键 trick,不是设计偏好。📎

「全范围 domain randomization 越宽越好」 —— 错。

论文明确选择性 DR:机器人本体可辨识,用小范围 DR;物体动力学无法辨识,用大范围 DR;感知 gap 只用深度(RGB 统计差异大)。

配合黑盒系统辨识 + 软指尖。

in-hand sim-to-real 极难,光堆 DR 不够,要分而治之。📎

「Visual Dexterity 解决了 in-hand reorientation」 —— 部分错。

它第一次实证了跨物体泛化,但绝对精度仍有限(鸭子 OOD 56% 掉落率)。

论文坦承「ample scope for improving absolute performance」。

它是「跨物体泛化可行」的里程碑,不是「已 solved」。📎

「teacher 也需要看物体形状」 —— 错(但部分对)。

实际 teacher 看不到物体形状(POMDP 简化为 MDP 的代价)。

这是局限,论文点名把 shape 注入 teacher 是 open direction。

teacher 只看特权低维状态(关节、位姿、目标朝向),shape 信息靠 student 从点云隐式处理。📎

检查点

Q1

之前 in-hand reorientation 工作至少踩中一条限制(凸形 / 转角 / 准静态 / 仿真 / 昂贵传感 / 朝上手)。Visual Dexterity 同时满足的「四件事」是什么?

💡 参考答案

  • 四件事:(1) 任意 SO(3) 朝向(任意目标朝向都能转);(2) 泛化到训练时没见过的新形状;(3) 实时(单一商用传感器,单 Intel RealSense 深度相机 + 关节编码器);(4) 能抗重力(下视手 / downward-facing,物体被手指从上方抓住)。
  • 对比:OpenAI Dactyl 虽然 sim-to-real 成功,但每个物体单独训策略、依赖 mocap、朝上手——四件事都没完全做到。
  • 为什么这四件是关键:是「真正能用的 reorientation 系统」的门槛——mobile manipulator 拿起螺丝刀转到能用,四件缺一不可。
Q2

Visual Dexterity 用 teacher-student 两层架构。老师有什么特权、学生有什么限制?学生模仿老师的什么?

💡 参考答案

  • 老师特权:在仿真里能看到全刚体状态——关节、物体位姿、目标朝向。看不到物体形状(POMDP → MDP 简化的代价)。
  • 学生限制:真机部署,看不到特权信息,只看相机深度点云 + 关节编码器;输入点云 = 场景点云 + 手指表面合成点 + 目标朝向下的物体点云。
  • 学生模仿老师的什么:用模仿学习学从点云直接到动作的端到端网络,目标就是匹配老师的动作。
Q3

用「蒙眼转笔高手」或你自己举的类比,向一个没学过的朋友解释:Visual Dexterity 是怎么让一只手转「没见过」的物体的?关键 trick 是什么?

💡 参考答案

  • 蒙眼转笔高手类比:高手看一眼记住形状——policy 训练时见过 150 个物体,部署时遇到没见过的也能转。
  • 关键 trick:用点云作目标(物体在目标朝向的点云),不用 pose / quaternion——跨物体天然没有统一坐标系 / 关键点,点云绕开了这个死结。
  • 为什么能跨物体:policy 直接从「当前点云 + 目标点云」预测动作,不依赖物体特定坐标系;任何新物体都可以采样成点云喂进去。
Q4

为什么 Visual Dexterity 把「物体在目标朝向的点云」当目标,不用 pose / quaternion?这是为了解决什么问题?

💡 参考答案

  • 解决的问题:跨物体时 pose 在不同物体上语义不同——鸭子的「朝上」和圆柱的「朝上」几何意义不同;关键点也定义不出来(鸭子没有「指尖」「中心」这种点)。
  • 点云作目标的优势:任何物体都可以采样成点云,policy 直接从「当前点云 + 目标点云」预测动作——不依赖物体特定坐标系。
  • 结果:天然泛化到新形状——这是方法层面最可复用的 insight。
Q5

in-hand 重定向 sim-to-real 极难。Visual Dexterity 用「选择性 DR」,机器人本体和物体分别用小范围 / 大范围 DR——为什么这样分而治之?还有一个工程巧思叫「软指尖」,它的作用是什么?

💡 参考答案

  • 分而治之的 why:机器人本体可辨识(PD 增益、摩擦这些参数可以测出来),所以用黑盒系统辨识 + 小范围 DR;物体动力学(材质、质量分布)无法逐个辨识,所以用大范围 DR 覆盖。
  • 软指尖的作用:compliant + 高摩擦,让控制误差被材料形变吸收——真机上 less aggressive、overshot 更小,论文实证显著改善 sim-to-real。
  • 整体策略:减少对 DR 依赖、只在必要处用,配合系统辨识 + 软指尖——in-hand sim-to-real 极难,光堆 DR 不够。

FAQ

Q1:Visual Dexterity 能直接装到我自己的手上吗?

能。

D'Claw 硬件 < $5k、全开源。

代码与硬件均开源(仓库 https://github.com/Improbable-AI/dexenv)。

从 https://taochenshh.github.io/projects/visual-dexterity 项目页入手。

先在仿真复现跨物体泛化,再上 D'Claw 真机。

关键工程点:(1) Isaac Gym 并行仿真做系统辨识 + 训练;(2) Minkowski Engine 稀疏 3D CNN(PointNet++ 太慢跑不到 12 Hz);(3) 两阶段 student;(4) 软指尖不可省。📎

Q2:为什么用 Minkowski Engine,不用 PointNet++?

PointNet++ 太慢跑不到 12 Hz。

Minkowski Engine 是稀疏 3D CNN,对点云做卷积只在占用的体素上算,计算量与点数成比例、不与体素总数成比例。

配合 GRU 处理时序,能满足 12 Hz 实时控制。📎

Q3:teacher 真的看不到物体形状吗?

是的。

teacher 的特权状态只有:关节位置 / 速度、物体位姿 / 速度、目标朝向。

没有物体形状。

POMDP 被简化为 MDP。

代价:teacher 不知道当前物体的几何(如鸭子的嘴和身体)。

论文点名把 shape 注入 teacher 是 open direction。📎

Q4:和 Dactyl 比,Visual Dexterity 强在哪?

Dactyl 是「一物一策略」(方块 / 八棱柱各训一个),依赖 mocap,朝上手。

Visual Dexterity 是「单一策略跨物体」,单一商用深度相机,下视手抗重力。

跨物体泛化 + 下视手 + 实时这三件事 Dactyl 都没做到。📎

Q5:为什么我的 Visual Dexterity 复现真机老掉?

先查三处:(1) 软指尖用了没——硬指尖 overshot 大、易掉;(2) 系统辨识做了没——机器人本体 PD 增益 / 摩擦这些必须辨识;(3) 点云噪声加了没——仿真点云不噪声化,student 部署到真机就脆。

鸭子这种复杂非凸物体本身就是最难 OOD 案例,56% 掉落率是论文基线,不是 bug。📎