深度⏱ ~4 min
📍 演进位置建立在- 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 依赖、只在必要处用。
四件事:
RGB sim-real 统计差异大。
给仿真点云加噪声。
用大规模并行仿真做黑盒系统辨识。
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}。
额外喂上一动作鼓励平滑控制。
用指数移动平均平滑(α = 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):
给仿真点云加噪声。
用 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」。📎
局限:
- 绝对精度仍有限:鸭子 OOD 掉落率 56%;不掉时 75% 转到 0.4 rad(23°)以内。
论文坦承 ample scope for improving。📎
- sim-to-real gap 仍在:真机误差高于仿真。
- teacher 看不到物体形状(POMDP 简化为 MDP 的代价)。
把 shape 信息注入 teacher 是 open direction。📎
- 未上触觉:与 RotateIt [Qi 2023] 互补——后者明确把触觉纳入 in-hand 旋转。[未确认]
研究者视角
图谱定位:Visual Dexterity 是 T11 灵巧操作的转折 4——in-hand 重定向 RL 突破,把 in-hand 操作从「单一刚体」推向「跨形状泛化」的标志性工作。📎
它把 Dactyl「一物一策略」推进到「跨物体单一策略」,是 in-hand RL 走向实际 tool-use 的关键节点。
核心贡献的四条独立线:
- 跨形状泛化的第一次实证:单一控制器在训练时没见过的 OOD 物体(含鸭子)上做任意 SO(3) 重定向。
- 点云目标 + 稀疏 CNN = 跨物体泛化的关键 trick:目标用「物体在目标朝向的点云」而非 pose。
绕开了「跨物体无统一坐标系 / 关键点」的死结。
- democratize 灵巧研究:硬件 < $5k、全开源。
是学术 lab 能批量复现的平台(vs Shadow Hand $100k+)。
- 下视手 + 抗重力 + 实时:把之前所有「朝上手 / 多相机 / 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:
- 绝对精度的提升:鸭子 OOD 56% 掉落率,论文坦承 ample scope for improving。
能否通过触觉(RotateIt 路线)、更好的接触建模、或 longer-horizon planning 提升,仍开放。[未确认]
- shape 信息注入 teacher:当前 teacher 看不到物体形状(POMDP → MDP 简化的代价)。
把 shape 注入 teacher 是论文点名的 open direction。📎
- 跨物体 + 触觉融合:Visual Dexterity 是纯视觉,未用触觉。
触觉 + 视觉在跨物体上的统一策略(RotateIt 是单物体)是开放方向。[未确认]
- 更复杂非凸物体的泛化极限:鸭子之外更复杂的形状(如工具、柔性物体)能否被这套范式覆盖,仍开放。[未确认]
常见误区
⚠️ 误区「直接渲染点云训 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 拿起螺丝刀转到能用,四件缺一不可。
Q2Visual Dexterity 用 teacher-student 两层架构。老师有什么特权、学生有什么限制?学生模仿老师的什么?
💡 参考答案
- 老师特权:在仿真里能看到全刚体状态——关节、物体位姿、目标朝向。看不到物体形状(POMDP → MDP 简化的代价)。
- 学生限制:真机部署,看不到特权信息,只看相机深度点云 + 关节编码器;输入点云 = 场景点云 + 手指表面合成点 + 目标朝向下的物体点云。
- 学生模仿老师的什么:用模仿学习学从点云直接到动作的端到端网络,目标就是匹配老师的动作。
Q3用「蒙眼转笔高手」或你自己举的类比,向一个没学过的朋友解释:Visual Dexterity 是怎么让一只手转「没见过」的物体的?关键 trick 是什么?
💡 参考答案
- 蒙眼转笔高手类比:高手看一眼记住形状——policy 训练时见过 150 个物体,部署时遇到没见过的也能转。
- 关键 trick:用点云作目标(物体在目标朝向的点云),不用 pose / quaternion——跨物体天然没有统一坐标系 / 关键点,点云绕开了这个死结。
- 为什么能跨物体:policy 直接从「当前点云 + 目标点云」预测动作,不依赖物体特定坐标系;任何新物体都可以采样成点云喂进去。
Q4为什么 Visual Dexterity 把「物体在目标朝向的点云」当目标,不用 pose / quaternion?这是为了解决什么问题?
💡 参考答案
- 解决的问题:跨物体时 pose 在不同物体上语义不同——鸭子的「朝上」和圆柱的「朝上」几何意义不同;关键点也定义不出来(鸭子没有「指尖」「中心」这种点)。
- 点云作目标的优势:任何物体都可以采样成点云,policy 直接从「当前点云 + 目标点云」预测动作——不依赖物体特定坐标系。
- 结果:天然泛化到新形状——这是方法层面最可复用的 insight。
Q5in-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。📎