Allegro / Sharpa 手内操作部署

在 16 自由度的 Allegro 手或 17 自由度的 Sharpa 手上进行方块重定向。UniLab 以无触觉 方式训练它们 —— 观测仅为关节状态 + 方块位姿。

难点在哪

手内操作是对摩擦与接触敏感的任务。在以下方面的微小偏差:

  • 方块边缘几何(圆角半径、表面粗糙度)

  • 手指接触垫摩擦(取决于温度和湿度!)

  • 关节回差

都可能把策略推到它在仿真中未曾见过的工况之外。使用任务自带的域随机化配置,并在硬件 上机前于仿真中验证这些范围;见 面向真机迁移的域随机化

观测契约

分组

维度

硬件上的来源

关节位置

16(Allegro)/ 17(Sharpa)

编码器

关节速度

16 / 17

编码器差分,低通滤波

方块位姿(世界系)

7

视觉(RGB-D + 位姿估计器,或基准标记)

方块线速度/角速度

6

位姿的有限差分,低通滤波;在真机上有噪声

目标旋转四元数

4

指令

上一步动作

16 / 17

上一次策略输出

视觉管线延迟

位姿估计延迟取决于具体的部署栈。在硬件观测构建器中测量它,然后在硬件部署前让训练 owner 与部署运行时在观测时序上达成一致。见 延迟预算

抓取生成器

4-allegro_inhandsharpa_inhand 两个环境都自带一个抓取生成器,用于采样 合理的初始手部构型。硬件侧的等价物是操作员把方块放到手里 —— 请核实你的起始构型分布 与训练环境的抓取生成器输出相匹配(参见 unilab.envs.manipulation.allegro_inhand.grasp_gen)。

如果你真实世界的起始握持存在系统性差异,把这些位姿加入抓取生成器,重新训练, 然后再试。

动作接口

操作类环境通过任务控制配置把策略动作映射为关节位置目标 (src/unilab/envs/manipulation/allegro_inhand/base.pysrc/unilab/envs/manipulation/sharpa_inhand/base.py)。部署控制器必须使用相同的 关节顺序、动作缩放与限位策略。

失败恢复

掉落在不重新抓取的情况下无法恢复。硬件侧安全层应当持有掉落检测器,使用部署栈实际 提供的任何方块位姿或力感知。一旦检测到,进入控制器的安全状态并告警操作员。

另请参阅