GenDexHand: Generative Simulation for Dexterous Hands
核心思想
训练灵巧手(5 指机器人手)做复杂操控任务需要大量训练数据,但人工设计任务和环境费时费力。GenDexHand 提出全自动流水线:
- LLM 提议任务:给定物体资产,自动生成可行任务描述
- MLLM 校验场景:渲染图像 → 视觉语言模型检查物理合理性 → 迭代修正
- 分层轨迹生成:LLM 作为高层规划器分解子任务,选择合适的低层控制器
这是首个针对灵巧手操控的生成式仿真方法(此前仅有夹爪和行走的方案)。
背景知识
为什么灵巧手特别难
| 方面 | 夹爪 | 灵巧手 |
|---|---|---|
| 自由度 | 1-2 | 16-24 |
| 控制维度 | 低 | 极高 |
| 接触点 | 2(开/合) | 多点多指 |
| 典型任务 | 抓放 | 旋转、翻转、拧盖子 |
自由度高 → 探索空间指数级增大 → 纯 RL 很难收敛。
生成式仿真是什么
不由人类设计每个任务和环境,而是由 AI(LLM/VLM)自动生成:
- 任务描述(”把苹果放进碗里”)
- 场景配置(物体位置、大小、状态)
- 奖励函数
- 训练策略
方法详解
Stage 1:任务提议与环境生成
1.1 任务提议
输入:物体资产库(DexYCB、RoboTwin、Partnet-Mobility 等)
LLM(Claude 4 Sonnet,温度 1.2 提高多样性)生成任务:
- 从资产库中采样可用物体
- 生成可行的操控任务描述
- 验证引用的物体确实存在
- 输出结构化 YAML 配置
示例任务:”把苹果放进碗里”、”旋转网球”、”打开笔记本电脑”。
1.2 环境合成
LLM 同时生成:
- 物体大小调整(相对于手的尺寸)
- 物体配置(位置、初始状态)
- 场景布局(多物体组合)
Stage 2:MLLM 迭代校验
问题:3D 数据集的物体尺寸、朝向不一致 → 自动生成的场景可能物理不合理(物体穿透、大小不对、位置错误)。
解决方案:渲染 → 检查 → 修正循环
for iteration = 1 to max_iter:
1. 从 3 个视角渲染场景图像
2. 多模态 LLM(Gemini 2.5 Pro)分析图像
3. 识别问题:穿透?错放?尺寸不对?
4. 输出调整指令:
- Scale_Action(object, factor)
- Position_Action(object, dx, dy, dz)
- Pose_Action(object, rotation)
5. 执行调整,更新配置文件
if 无问题: break
关键洞察:用视觉(渲染图像)而非纯文本来验证场景——视觉比文本描述更能发现物理不合理。
Stage 3:分层轨迹生成
3.1 LLM 作为高层规划器
LLM 承担三个职责:
- 子任务分解:将长程任务分解为短子任务
- “把苹果放进碗里” → ①移动到苹果上方 ②抓取苹果 ③移动到碗上方 ④释放
- 控制器选择:为每个子任务选择合适的低层控制器
- 无碰撞点到点运动 → 采样式运动规划(快速可靠)
- 接触丰富的精细操控 → 强化学习(灵活但训练慢)
- 自由度管理:动态冻结/解冻手指关节
- 抓取阶段:解冻所有手指
- 移动阶段:冻结手指(仅移动手臂)→ 减少探索维度
3.2 为什么混合控制更好
| 方法 | 优势 | 劣势 |
|---|---|---|
| 纯运动规划 | 可靠、快速 | 无法处理接触操控 |
| 纯 RL | 灵活 | 探索空间巨大,训练慢 |
| 混合 | 各取所长 | — |
运动规划负责”移动到位”,RL 负责”精细操控” → 总探索空间大幅缩小。
3.3 RL 训练细节
- 算法:PPO
- 并行环境:1024 个
- 仿真频率:120 Hz,控制频率:20 Hz
- 奖励函数:由 LLM 自动生成(包含接近奖励、接触力奖励、目标完成奖励)
LLM 生成的奖励函数示例(伪代码):
reward = (
approach_reward(hand, object) # 手接近物体
+ grasp_reward(contact_forces) # 指尖接触力
+ goal_reward(object_pose, target_pose) # 物体到达目标
)
实验结果
任务多样性
语义多样性(任务描述的余弦相似度,越低越多样):
| 方法 | MiniLM | MPNet | DistilRoBERTa |
|---|---|---|---|
| Meta-World | 0.52 | 0.53 | 0.60 |
| RoboTwin | 0.32 | 0.36 | 0.39 |
| GenDexHand | 0.29 | 0.28 | 0.32 |
GenDexHand 生成的任务最多样化(数值最低)。
策略学习效率
混合控制方案(运动规划 + RL + 子任务分解 + DoF 冻结)vs 基线:
| 方法 | 平均提升 |
|---|---|
| 直接 RL(无分解) | 基线 |
| + 子目标分解 | 小幅改善 |
| + 冻结自由度 | 中等改善 |
| + 运动规划(完整方案) | +53.4% |
训练配置
| 参数 | 值 |
|---|---|
| 仿真器 | Sapien |
| LLM | Claude 4 Sonnet(任务提议),Gemini 2.5 Pro(场景校验) |
| 并行环境 | 1024 |
| 训练轮次 | 250 epochs |
| 每 episode 步数 | 400(无分解)/ 200(每子任务) |
个人思考
- “生成器-校验器”范式的通用性:先生成再用视觉检查 → 这个模式可以推广到任何仿真环境构建。
- 子任务分解大幅降低 RL 难度:53.4% 的提升说明灵巧手的长程任务不应端到端学习,而应分而治之。
- 冻结自由度是直觉但有效的策略:移动阶段不需要动手指 → 冻结它们减少搜索空间。
- LLM 生成奖励函数是双刃剑:省去了人工设计,但可能产生运动抖动或不稳定——需要人工审查。
- 首个灵巧手生成式仿真填补了重要空白:此前 RoboGen、GenSim 等仅支持夹爪和行走。