DexHand Sensing System Design
System design view: deployment × data × self-recovery.
← Back to Home ← Back to Blog

灵巧手 DexHand 的 Sensing System 设计(面向部署 × 采数 × 自恢复)

这是一份“可落地的系统设计文档”:从 任务 → 力学因果 → 可观测信号 → 多频闭环 → 数据闭环(RM-in-loop) 一次讲清楚, 并给出从 MVS 到“超越人类能力”的迭代路线。

读者导览(面试/快速理解):先看 2.1(多频闭环与必需信号)→ 2.2(可观测性与 Teacher/Student 分工)→ 3.0(决策逻辑与工程取舍)→ 7.2(Teacher→Student 落地)→ 6)(RM-in-loop)。

目录(简版,减少分级)

读法建议:先把“为什么做(买家需求/目标)”讲清楚,再用 2.1 把“信号与闭环底座”锁死,最后讲 Teacher→Student + RM/critic 如何形成数据飞轮。

  1. 为什么做:需求与目标
  2. 底座:信号 × 多频闭环(最难被替代)
  3. 传感栈:MVS → Pro(工程取舍与推荐布置)
  4. 数据闭环:Teacher→Student + RM/critic(把失败变资产)
  5. 工程化:可训练 / 可复现 / 可追责
  6. 面试收束:落地顺序与结论

核心三问(直击要害)

在复杂环境和大量变量中,最容易跑偏的是“堆传感器/堆模型”。从第一性原理出发,DexHand 作为“物理因果接口”,系统必须随时回答三件事:

  1. 接触发生了吗,接触在哪里?(contact geometry:接触点/接触面/面积/法向)
  2. 接触状态是否稳定,下一段时间会不会失败?(contact_mode、slip_risk、jam_risk)
  3. 如果要恢复,应切换到哪个物理原语?(primitive / recoverability:backoff、regrasp、wedge、twist…)

本文的 A(Teacher→Student)+ C(RM/QC flywheel)就是围绕这三问:Research Mode 用视触觉提供高信息真值,Deploy Mode 用可部署信号近似这些真值并形成闭环。

买家视角:为什么 VLA 公司会"需要"RM/critic

DexHand 的核心客户是 VLA 公司/科研团队:他们买的不是"多几个传感器",而是可持续迭代的能力——能把真实世界交互变成可训练、可复现、可评估的 dataset,并能进入 post-training/self-improvement 的飞轮。 因此你必须把 RM/critic 做成"系统默认能力"(哪怕最初是规则版),否则手很容易被当成一次性采数工具,需求与复购都会弱。

✅ 前沿验证:本方案与最新VLA研究的概念对齐(2025-12-30)

重要:本设计方案的核心理念——"高层信息模态 → 可部署低层控制"的转换架构—— 在最新发表的前沿论文中得到独立验证。这证明了方案的前瞻性与技术正确性。

最新论文:GenieReasoner (arXiv 2512.24125, 2025-12-30)

论文标题:Unified Embodied VLM Reasoning with Robotic Action via Autoregressive Discretized Pre-training

发布日期2025年12月30日

机构:Yi Liu等13位作者

arXiv链接https://arxiv.org/abs/2512.24125

核心概念对齐分析

维度 本方案(DexHand Sensing System) GenieReasoner论文 对齐度
核心挑战 高信息传感(视触觉)vs 可靠部署 强推理能力(VLM语义)vs 精确控制 ⭐⭐⭐⭐⭐
解决思路 Teacher→Student蒸馏:视触 → 可靠传感 FACT动作离散化:连续控制 → token空间 ⭐⭐⭐⭐⭐
统一表示 统一在"因果状态空间"(slip_risk/contact_mode) 统一在"离散token空间"(reasoning + action) ⭐⭐⭐⭐
分层控制 Level-A/B/C多频闭环(500Hz→60Hz→5Hz) 端到端统一模型 ⭐⭐⭐(互补)
传感焦点 触觉/力感知(contact/slip/force) 视觉+语言(语义理解) ⭐⭐⭐(互补)

前沿对照:GR-Dexter(ByteDance Seed, arXiv 2512.24210)

GR-Dexter 把 VLA 扩展到双手灵巧手的路径很工程化:高 DoF 硬件 + 触觉阵列 + 遥操作数据采集 + 跨形态对齐。 这些与本文的“分层闭环 + Teacher→Student + 数据飞轮”天然互补。

关键洞察:相同的哲学,不同的角度

本方案:传感模态转换
问题:如何把"高信息但不稳定"的
      传感(视触觉)变成
      "可部署"的控制?

答案:Teacher(视触)
      → Student(可靠传感)
      → Policy

关键:蒸馏到因果状态空间
     (contact_mode, slip_risk,
      failure_mode, recoverability)
GenieReasoner:控制模态转换
问题:如何把"强推理但难控制"的
      VLM变成"精确"的
      机器人动作?

答案:Reasoning(VLM)
      → FACT离散化
      → 统一token空间

关键:统一到离散序列空间
     (语义token + 动作token)

本质相同:都在解决"高层理解-低层执行"的gap,通过模态转换/蒸馏来实现部署可靠性。

本方案的独特优势(论文未涉及)

前沿补充:视触预训练 + 在线多任务学习(Science Robotics, 2026-01-28)

另一条独立的前沿路线验证了相同的核心哲学:先解决遮挡/接触相位的“表征问题”(Observation),再学统一多任务策略(Practice)。 它的特点是把触觉降到单目RGB + 二值触觉,依然能提升遮挡鲁棒性与 Sim2Real 稳定性(摘要级结论)。

手册速记(摘要可验证 + 可复用抽象): theory/frontier/visual_tactile_pretraining_online_multitask_learning_2026.md

对VLA公司的价值

为什么这个验证重要?

  1. 前沿对齐:本方案的核心架构(模态转换+统一表示)与最新顶会论文理念一致, 证明技术方向正确且前瞻。
  2. 互补优势:GenieReasoner解决语义理解→动作,本方案解决传感感知→控制, 两者可融合形成完整解决方案。
  3. 差异化竞争力:本方案的触觉/力感知(Level-B精细力控)是GenieReasoner缺失的, 这是灵巧手精细操作(twist/insertion/pry)的核心能力。
  4. 工程可行性:论文是前沿研究,本方案有完整的落地路线(Day 0→阶段1-4), VLA公司可立即采购部署。

可能的融合方向(未来扩展)

【融合架构】
Level-C(语义层):借鉴GenieReasoner
├─ 语言指令 → token
├─ RGB视觉 → token
├─ Student状态(slip_risk/contact_mode)→ token
└─ 动作原语 → token(FACT离散化)
  → 统一transformer

Level-B(触觉层):保持本方案设计
├─ wrist_FT闭环(精确力控)
├─ Student估计(slip_risk/contact_mode)
└─ 60-200Hz快速响应

Level-A(安全层):保持本方案设计
└─ 500-1000Hz止损

1) 系统目标与 KPI(把方向锁死)

DexHand 的 sensing system 不应追求“传感器越多越好”,而应追求 长时稳定 + 可自救 + 数据可复现(把交付与迭代能力做出来)。

Level-B-Force 稳定性约束(必须)

精细力控 KPI(与 Replay/QC 并列)

直觉:工程胜负手不是单次成功率,而是“长时稳定 + 快速自救 + 可复现数据飞轮”。

2) 总体架构(传感栈 × 多频闭环 × 数据闭环)

三件事必须同时成立:

2.0.1 多频闭环架构图

┌─────────────────────────────────────────────────────────────────────────────────┐
│                            多频分层闭环架构                                    │
└─────────────────────────────────────────────────────────────────────────────────┘

  ╔═══════════════════════════════════════════════════════════════════════════╗
  ║  Level-C: 语义策略层 (5–15Hz)                                           ║
  ║  ┌─────────────────────────────────────────────────────────────────────┐  ║
  ║  │ 输入: RGB (static+wrist) + 任务状态 + wrist_FT 统计特征           │  ║
  ║  │ 处理: VLA Policy / 原语切换 (push/pull/twist/regrasp...)           │  ║
  ║  │ 输出: 子目标 + 原语参数 + Level-A/B 约束 (力限/速度限)            │  ║
  ║  └─────────────────────────────────────────────────────────────────────┘  ║
  ╚═══════════════════════════════════════════════════════════════════════════╝
                                     │
                        下发:primitive + params + constraints
                                     ↓
  ╔═══════════════════════════════════════════════════════════════════════════╗
  ║  Level-B: 触觉协调层 (60–200Hz)                                         ║
  ║  ┌─────────────────────────────────────────────────────────────────────┐  ║
  ║  │ B1: 防滑/夹持                     B2: 精细力控 (Level-B-Force)  │  ║
  ║  │ • 输入: current/effort + q/qdot    • 输入: wrist_FT (6D) + q/qdot  │  ║
  ║  │ • 控制: 夹持力调度、防滑响应       • 控制: 阻抗/导纳 (twist/insert)  │  ║
  ║  │ • 输出: 关节闭合量微调             • 输出: 末端 compliance 调整      │  ║
  ║  └─────────────────────────────────────────────────────────────────────┘  ║
  ╚═══════════════════════════════════════════════════════════════════════════╝
                                     │
                        微调:夹持力/姿态/接触几何
                                     ↓
  ╔═══════════════════════════════════════════════════════════════════════════╗
  ║  Level-A: 安全反射层 (500–1000Hz)                                       ║
  ║  ┌─────────────────────────────────────────────────────────────────────┐  ║
  ║  │ 输入: q/qdot + current/effort + 温度/限位/故障事件                 │  ║
  ║  │ 检测: stall (qdot≈0 且 current↑) / jam / 过流 / 越界              │  ║
  ║  │ 响应: 限流、力矩限幅、backoff (卸载/退避)                          │  ║
  ║  │ 输出: 关节力矩指令 (带安全限幅) → 执行器                          │  ║
  ║  └─────────────────────────────────────────────────────────────────────┘  ║
  ╚═══════════════════════════════════════════════════════════════════════════╝
                                     │
                                执行层 ↓
                      ┌────────────────────────────┐
                      │  执行器 (电机/驱动器)      │
                      │  → 物理世界 (接触/力/约束) │
                      └────────────────────────────┘

  ╔═══════════════════════════════════════════════════════════════════════════╗
  ║  旁路:数据闭环 (RM-in-loop)                                            ║
  ║  ┌─────────────────────────────────────────────────────────────────────┐  ║
  ║  │ 所有层数据 → timestamp 对齐 → episode 切段 → RM 打分/QC             │  ║
  ║  │          ↓                                                           │  ║
  ║  │  hard cases 挖掘 → Teacher labels → Student 训练 → 反哺 Policy      │  ║
  ║  └─────────────────────────────────────────────────────────────────────┘  ║
  ╚═══════════════════════════════════════════════════════════════════════════╝

关键设计原则:
  • 频率分层:高频兜底安全 (A),中频稳定接触 (B),低频策略决策 (C)
  • 信号分工:q/qdot + current/effort (必选底座) → wrist_FT (精细力控) → 视触觉 (teacher)
  • 延迟容忍:Level-A <10ms,Level-B 10–30ms,Level-C >50ms
  • 可降级:B2 失效 → 回退 B1;B 失效 → 只走简单任务 (MVS baseline)

2.1 多频闭环 × 传感信号:速查表

关键约束:视觉/视触觉的 30–120Hz 与编解码/处理延迟,无法直接承担 kHz 级闭环;因此必须分层(handbook 有详细同步与集成讨论)。

符号速释(这一节里常用的信号是什么意思)q = 关节位置(角度/位移),qdot = 关节速度(\(\dot q\)); effort = 关节力矩/驱动器输出的“用力”(有些系统直接给力矩,有些是估算值); current = 电机电流(常作为力矩/负载的 proxy); rgb_static/rgb_wrist = 外部相机/腕部相机画面; wrist_FT = 手腕六维力/力矩(F/T); “限位/故障事件” = 软硬限位触发、过流/过温保护、驱动器 fault、急停等离散事件(必须可回放)。

层级 频率 核心职责 必需信号(建议) 可选增强 延迟容忍
Level-A 500–1000Hz 安全反射/止损(限流、卡死检测、退避) q/qdot, current/effort, 温度/限位/故障事件 硬件触发/更高频总线(EtherCAT 等) 极低(<10ms)
Level-B 60–200Hz 接触协调/防滑(夹持力调度、微调几何)
精细力控(twist/insertion/pry)
current/effort(触觉代理), q/qdot
对精细力控:wrist_FT(6D,必选)
指尖剪切/压力阵列;耐久触觉(ITPU/霍尔/类 uSkin) 中等(10–30ms)
Level-C 5–15Hz 语义策略/原语切换(push/pull/wedge/twist…) rgb_static, rgb_wrist, 任务状态 视触觉特征(几何/接触模式)作为 teacher 信号 高(>50ms)

2.1.1 “必需信号(建议)”逐项解释(为什么缺了就会翻车)

这里的“必需”指的是:它们构成每一层闭环的最小可观测因果集合——能止损、能自恢复、能回放追责。 不是说没有其它传感就做不了研究,而是说没有这些信号,你就很难把系统做成“可交付”的长期稳定系统。

2.1.2 设计原则(压缩成 5 条)

2.2 深度梳理:接触系统的状态空间 × 可观测性(为什么必须 Teacher/Student 分工)

灵巧操作的难点不在“动作学得不够像”,而在于接触是一类强非线性、强历史依赖、部分不可观测的系统: 同样的 current/effort 扰动可能来自不同的接触几何;同样的视触形变也可能因为材料状态变化而不同。 因此一个可交付的系统必须把“要学什么”定义成可对齐、可回放、可验收的因果状态,而不是把传感器当作目标。

落地检查:如果你能用 Deploy 信号稳定输出 slip_risk/jam_state/recoverability,并驱动 recover primitives 提升 KPI,那么这套分工就是“能跑”的;几何真值则留给 teacher 去提供与校准。

2.3 面向前沿 VLA:动作表示 × 推理延迟 × 分层接口(让模型“聪明且不手笨”)

VLA 前沿(RT/Octo/OpenVLA/π0/π* 等)在“动作生成”上分成三类:离散 TokenDiffusionFlow Matching。 它们共同的现实约束是:即便模型再强,直接以 VLA 在 kHz 级输出电机命令仍然不经济也不可靠(推理延迟、噪声、动作抖动、误差累积都会被物理世界放大)。 因此本方案把 VLA 放在 Level‑C(5–15Hz) 的“原语/子任务接口”上,把高频稳定性交给 Level‑A/B 的闭环去兜底。

一句话:VLA 负责“做什么/怎么做”(原语与策略),A/B 负责“做得稳不稳”(接触闭环与止损)。这也是为什么本方案对 Token/Diffusion/Flow 都兼容——你只要把它们接到同一个原语接口上。

3) 传感栈分层(MVS → Pro)与推荐布置

这一节要解决的不是“买什么传感器”,而是:在复杂环境里,用最少的、不容易坏的信号去回答前文的核心三问。 记住一个思维框架:先保证可观测因果(observability),再追求更高分辨率

3.0 决策逻辑(为什么这样分层)

可行性论证(为什么这套分层“真的能跑”)

这套分层成立的第一性原因是:闭环控制需要的是“可长期、低延迟、可回放的因果信号”,而不是“看见一切几何细节”。 在长时部署里,视触觉(凝胶/表皮/光学)很难满足 uptime 与维护成本约束,因此它更适合承担“老师信息”(生成近真值标签),而不是承担“闭环主力”。

你最容易失明的三类因果(slip / jam / misalignment)本质更接近事件检测 + 模式切换 + 风险评估问题: q/qdotcurrent/effort 能提供强一致的“动力学扰动证据”(可回放、可追责),再叠加(可选)wrist_FT 或耐久触觉阵列,就能把“止损与恢复”做得足够可靠。 研究模式下再用视触觉给出接触几何/接触模式真值,通过 Teacher→Student 蒸馏为部署可用的状态(如 slip_riskjam_statemisalign_classcontact_mode),从而实现研究上限部署稳定的同时满足。

RM-in-loop 的关键作用不是“给一个总分”,而是把连续流变成可用数据: 自动切段、挑 hard cases、触发复核/重采样,保证 teacher 标签与部署失败代价函数对齐,避免数据飞轮被噪声带偏。

成立条件清单(不满足就会翻车)

失败模式与对策(工程上最常见的坑)

失败模式 典型现象 根因 怎么发现(可观测信号) 对策(可落地)
Teacher/Student 标签不一致 学生模型学不稳、上线后误报/漏报高 标签定义不工程化(人/场景之间不一致) 同一片段不同版本 teacher 输出差异大;RM 复核分歧段 把标签写成“阈值 + 时间窗 + 版本号”;RM 专门挖“分歧段”做复标
Research→Deploy 域移 研究效果好、部署崩盘 视触装配改变动力学/摩擦;或训练分布偏置 部署数据上的状态分布漂移(统计特征/失败类型变了) 老师只做标注不改控制边界;训练做随机化/对齐;部署端以 proprio/effort 为主
多模态不同步导致“学错因果” slip/jam 预测提前/滞后,触发恢复无效 相机/触觉/本体时间戳不一致,alignment 漂 回放对齐后事件峰值错位;同一事件跨源延迟不稳定 timestamp-at-source + 对齐校准;事件标签用窗口而不是单帧点
闭环过度依赖“老师传感” 视触坏了/脏了就失明 把高信息但不耐久的信号当主闭环输入 一旦遮挡/污染,性能断崖式下降 老师信号只用于训练/标注;部署闭环只依赖可长期信号,并有健康降级路径
RM 指标带偏数据飞轮 数据越采越“好看但没用” RM 学到了表象特征,未对齐失败代价函数 RM 高分片段并不提升部署 KPI;hard cases 被遗漏 RM 只做 triage;用部署 KPI 做闭环;定期插入挑战集做校准
传感器漂移/退化未建模 慢性劣化、很久才被发现 触觉耗材化、标定变化、线缆接触不良 sensor_health 统计漂移;失败率随时间上升 把健康/标定版本写进数据;策略对健康做门控与降级;定期自动自检

3.0.1 传感配置 vs 可解锁的任务能力(速查表)

不同的传感配置决定了系统能够完成的任务谱系。下表明确展示:每增加一个传感器,能解锁什么新能力

配置等级 传感器组合 可做的任务 不能做的任务(缺什么)
MVS
(阶段 1–2)
RGB (static+wrist) + proprio (q/qdot) + current/effort
  • 简单抓取、pick-and-place
  • press(粗力控)、push
  • 基于 effort 的粗防滑
  • backoffreopenregrasp
  • 精细力控:twist、insertion、pry(缺扭矩/侧向力精确闭环)
  • 毫牛级夹持、脆弱物(电机摩擦吃掉精度)
+wrist_FT
(阶段 2.5)
上述 + 6D F/T(≥200Hz)
  • 新增twist(擰瓶盖)、insertion(精密插入)、pry(撬开)
  • pull 拉力闭环、wedge 力矩限幅
  • 推/拉/扭的因果判定(外部约束反力)
  • 毫牛级夹持精度(指尖直接测力更优)
  • 高品质 slip detection(指尖触觉更敏感)
+指尖力
(阶段 3)
上述 + 指尖 3 轴力传感器 ×2
  • 新增:脆弱物抓取(毫牛级法向控制)
  • 精细防滑(直接测量指尖摩擦状态)
  • 夹持力精确闭环(不受传动摩擦影响)
  • 接触几何真值(面积/边缘/微滑动)
+视触觉
(阶段 4)
上述 + 多点视触(pad+side)
+ 可选:温度传感器 ×1–2
  • 新增:高品质 teacher labels(接触几何/接触模式/力学真值)
  • 显著提升 RM/QC 质量(hard case 挖掘更准确)
  • Teacher→Student 蒸馏质量提升
  • (温度可选)材质识别 (metal/plastic/wood/fabric)、热安全检测
—(核心能力完整;场景特定可继续扩展)

关键洞察:wrist_FT 是解锁精细力控的"最小投入"(单传感器),但它不替代指尖触觉的防滑与精细夹持能力; 视触觉是 teacher 信息的"金标准",但它更适合用于 Research Mode 而非闭环主力。

3.1 Level-0(MVS:最小可行传感)

目标:低成本获得“接触判别能力 + 可复现数据”。

这套配置已经能支撑:卡死/顶住检测、粗粒度夹持强弱闭环、Replay Validation(决定数据能不能用于训练)。

这背后的要害:即便你“看不见接触几何”,你也要能用 current/effort 判断“有没有接触/有没有卡死/夹持是否在变强”。
否则部署数据会变成不可回放、不可追责的噪声。

3.2 Level-1(触觉层:让“滑移 / 接触几何”可观测)

这一层的目标是把两类关键信息补齐:
(1) 滑移/摩擦状态(用于 Level-B 的防滑闭环);
(2) 接触几何真值(用于 Research Mode 的 teacher labels)。
为了兼顾 uptime 与信息量,部署侧推荐空间布置:“2 + 1 + 1”;Research(teacher)侧则建议在关键受力面追加“多点视触”(尤其侧边),以覆盖手套材料在外力变化下的侧向形变。

为什么不是“全指视触觉”:全铺会把带宽、布线、耐久、标定维护成本拉爆; “少量高信息老师 + 少量高频工兵 + 本体信号兜底”更接近工程最优解。

视触的材料物理学(提前说明:为什么它更适合当 teacher)

视触(gel-based)把“接触边界条件”映射为可观测的形变/光学纹理,这正是它能给出高信息几何/接触模式真值的原因。 但这条映射强依赖材料状态:粘弹性/滞回、蠕变、温度、老化、污染会让同一个接触在不同时间/不同胶体批次下呈现不同“表观形变”。 因此工程上最稳的用法是:把视触当 Research Mode 的 teacher(提供近真值与诊断),而不是把它当 Deploy Mode 的闭环主力

温度梯度是常态(一个直观类比):人体也不是“全身同温”——核心温度通常稳定在 36.5–37.5℃,而室温 20–25℃ 下皮肤表面温度常见在 32–35℃, 两者温差常在 1–5℃(环境极端时可更大)。同样地,机器人手的“内部/驱动温度”与“指尖胶体表面温度”通常也会有差异。
因此工程上不能用“机体温度”替代 temp_gel:要把胶体温度当作 teacher 侧的关键解释变量与校准条件。

一句话:视触提供高信息“真值”,但真值受材料影响;所以 teacher 必须版本化 + 输出置信度,student 必须学“物理因果”而不是“胶的纹理”。

Teacher:为什么需要“更多位置的视触”(指腹 + 侧边)来仿手套

你提到的关键点很重要:当外力方向变化(推/拉/扭/侧向摩擦)时,手套/电皮肤这种“包覆材料”会在侧边产生明显形变(鼓起、折皱、接触面积迁移), 而这些形变对电传感(电容/电阻阵列)的读数影响很大。若 teacher 只看指腹一个视触面,student 很容易学到“指腹局部视角下的伪规律”,在侧向受力/边缘接触时失效。

布置启发式(在复杂环境里如何选“装哪里”)

补充:法向力 proxy 与“压力传感”不要想当然

这里容易踩一个物理直觉坑:多数视触结构是 实体软胶 + 刚性背板(例如亚克力),它测的是形变/光学纹理,并不存在“腔体气压随按压变化”这一默认信号
只有当你专门设计了密封腔体/气囊/微流体通道时,“压力传感”才成立,并且它更接近低维法向力 proxy + 健康/漏气监测,依旧不能替代视触的几何真值。

因此在本方案里:法向/接触的最低配仍以 current/effort、(可选)wrist_FT、以及耐久触觉阵列为主;视触负责 teacher labels(几何/接触模式),而不是依赖"气压"做闭环。

3.2.1 温度感知:材质识别 × 安全检测(可选增强)

温度感知通过热导率差异可以区分材质(金属 vs 塑料 vs 织物),并提供安全检测(过热预警)。 但它的时间常数慢(0.5–5秒 vs 力学的 1–10毫秒),无法参与 Level-A/B 的高频闭环,只能作为 Level-C 的语义输入。

温度感知的价值与局限
维度 价值 局限
材质识别 通过接触瞬间的温度变化率 (dT/dt) 估计热导率:
• 金属 (50–200 W/m·K) → 快速热交换
• 塑料/橡胶 (0.1–0.5) → 慢速热交换
• 织物 (0.03–0.1) → 极慢热交换
需要 0.5–2秒 的接触时间窗口,无法做毫秒级反应
安全检测 避免抓烫的物体 (>60°C),检测电机/驱动器过热 手套/包覆材料会延长热传导路径,需要差分测量
任务适应 根据材质调整抓取策略(金属→大预紧力,织物→小预紧力) 与视触胶体有矛盾:胶体温度变化会同时影响视触测量和温度测量
推荐决策树:你的应用需要温度感知吗?
你的应用场景是?
  │
  ├─ 工业装配 / 实验室操作
  │   └─ ❌ 不需要温度(材质已知,环境可控)
  │       理由:任务中的物体材质是预先确定的
  │
  ├─ 家庭服务 / 通用操作
  │   └─ ⚠️  可选(Phase 4+)
  │       优先级: wrist_FT > 指尖力 > 温度
  │       理由:力学闭环是基础能力,温度是锦上添花
  │       配置:1–2 个 NTC 热敏电阻(指尖侧面 / 手腕)
  │       用途:材质识别 → 调整抓取参数
  │
  └─ 厨房 / 医疗 / 安全关键应用
      └─ ✅ 需要温度(Phase 3–4)
          理由:必须避免烫伤/冻伤,或测量体温
          配置:方案 A(1–2 个热敏电阻)或方案 B(多点温度阵列)
          用途:安全检测(过热预警)+ 材质识别
最小配置方案(如果要纳入)

传感器

集成到架构

时间常数对比(为什么温度无法参与高频闭环)
模态 时间常数 适用闭环频率 用途
力/力矩 1–10ms 500–1000Hz (Level-A) 安全反射、止损
触觉(压力/剪切) 5–20ms 60–200Hz (Level-B) 防滑、夹持力调度
温度 0.5–5s 0.2–2Hz 材质识别、安全检测(语义特征)
视觉 30–100ms 5–30Hz (Level-C) 全局几何、策略决策

关键洞察:温度的时间常数比力学慢 100–1000 倍,因此它只能作为语义输入(Level-C), 用于材质分类、任务初始化参数选择、或安全检测,不参与毫秒级的接触稳定闭环

3.2.2 超声感知:非接触探测 × 内部结构(场景特定可选)

超声传感器通过声波反射可以实现非接触距离测量、材料内部结构探测、以及声学特性识别(空心 vs 实心、液体检测)。 相比温度,超声的响应速度更快(毫秒级),但需要声学耦合方向性强,更适合特定任务场景。

超声感知的价值与局限
应用场景 价值 局限
非接触距离测量 • 手指接近物体前的障碍检测(5–30cm)
• 抓取前的距离估计 → 优化 approach 路径
• 避免碰撞(尤其在视觉遮挡时)
• 空气中衰减大(需要 <30cm)
• 方向性强(±15–30°锥角)
• 不适合复杂几何(多次反射)
材质/内部结构 • 空心 vs 实心(声阻抗差异)
• 液体检测(瓶子里有没有水)
• 厚度测量(墙壁/容器壁厚)
• 多层结构识别
• 需要接触或极近距离(<1cm)
• 需要耦合介质(凝胶/水)或密贴接触
• 高频超声(>1MHz)穿透性差
声学特性识别 • 区分金属/塑料/木材(声速不同)
• 识别液体/气体/固体
• 结合温度 → 更准确的材质分类
• 需要已知参考声速数据库
• 表面粗糙度影响反射
• 软质材料(织物/海绵)吸声严重
推荐决策:超声 vs 温度(如何选择)
你的任务需要什么?
  │
  ├─ 接触前的距离/障碍感知
  │   └─ ✅ 超声更合适(非接触,ms 级响应)
  │       配置:指尖前端 1–2 个超声测距模块(40kHz,5–30cm 量程)
  │       用途:approach 优化、避碰、抓取前距离估计
  │
  ├─ 接触后的材质识别
  │   └─ ⚖️  温度 + 视觉更简单(超声需要耦合)
  │       • 温度:热导率 → metal/plastic/fabric
  │       • 超声:需要密贴接触 → 空心/实心/液体
  │       建议:优先温度 + RGB;特殊需求(液体检测)才加超声
  │
  ├─ 内部结构/液体检测(瓶子里有没有水、空心 vs 实心)
  │   └─ ✅ 超声必需(唯一可行方案)
  │       配置:高频超声探头(1–5MHz)+ 接触式布置
  │       注意:需要声学耦合(凝胶或水膜)
  │
  └─ 热安全检测(避免烫伤)
      └─ ✅ 温度必需(超声无法测温)
最小配置方案(如果要纳入超声)

方案 A:非接触测距(推荐用于 approach 优化)

方案 B:接触式材质/液体检测(特殊应用)

超声 vs 温度 vs 力学:时间常数对比
模态 响应时间 测量距离 主要用途
力/力矩 1–10ms 接触(0mm) 闭环控制、止损
超声(测距) ~10ms 5–300mm 非接触距离、避碰
超声(材质) ~10–50ms 接触(0–1mm) 内部结构、液体检测
温度 0.5–5s 接触(0mm) 材质识别(热导率)、安全

工程建议

  • 优先级:力学 > wrist_FT > 指尖力 > 温度 > 超声
  • 超声更适合特定场景(复杂环境避碰、液体检测、内部结构探测)
  • 通用家庭服务:温度 + RGB 已够用于材质识别;超声是锦上添花
  • 厨房/医疗:温度(热安全)优先级高于超声
  • 工业/仓储(复杂环境):超声测距对 approach 优化有明确价值

超声的特定场景深入分析:什么任务真正需要它?

下面用具体任务案例说明超声的独特价值——即其他传感器做不到或做不好的事

场景 1:液体容器操作(厨房/服务机器人)
任务 挑战 超声的作用 替代方案的局限
倒水/倒饮料 • 需要实时监测液位(避免溢出)
• 视觉看不到瓶/杯内部
• 重量变化滞后且不精确
超声探头朝向容器内部,实时测量液面距离:
• 距离减小 → 液位上升
• 距离稳定 → 液位到达目标
• 响应时间:~10ms(足够快)
视觉:遮挡、反光、透明液体难识别
重量:需要力传感器 + 容器标定,滞后
倾斜角估计:误差大,不可靠
检测容器是否空 抓取前不知道瓶子/盒子里是否有东西 轻拍容器 + 超声:
• 空容器:声波穿透,回波单一
• 有液体:声阻抗变化,回波特征不同
• 无需打开/倾斜
重量:需要已知容器自重
视觉:不透明容器看不到
晃动:需要复杂动作,可能洒出
场景 2:视觉盲区的几何探测(复杂抓取)
任务 挑战 超声的作用 为什么视觉/触觉不够
抓取遮挡物体
(柜子深处、抽屉里)
• 相机视角被遮挡
• 物体背面几何不可见
• 需要"盲抓"
手指上的超声探头:
• 在 approach 过程中扫描周围 5–15cm
• 检测障碍物(墙壁、其他物体)
• 估计目标物体的大致位置和尺寸
视觉:被遮挡,看不到
触觉:需要先接触,来不及调整
wrist_FT:只有接触后才有信号
手掌内侧/手指间探测 抓取过程中,手掌内侧是相机盲区 手掌内侧安装超声:
• 检测物体与手掌的距离
• 判断是否完全进入抓取区域
• 避免夹空
腕部相机:角度有限,手掌内侧仍是盲区
触觉:接触后才知道,已经晚了
场景 3:软硬度/成熟度估计(非破坏性检测)
任务 挑战 超声的作用 触觉方案的问题
水果成熟度检测 • 需要判断软硬度(成熟/过熟/生)
• 不能捏坏(触觉需要施加力)
超声测量声速/衰减:
• 硬(生):声速快,反射强
• 软(熟):声速慢,衰减大
• 无需施加压力
触觉:需要捏压 → 可能损坏
视觉:只能看外观,内部软硬度看不出
温度:与成熟度无直接关系
面包新鲜度 新鲜面包柔软,陈旧面包变硬 超声探测内部密度/气孔结构:
• 新鲜:多气孔,声波散射
• 陈旧:密实,声波穿透性强
触觉:表皮摸起来都差不多
视觉:外观无明显差异
包裹/盒子内容物检测 • 不能打开看
• 需要判断是实心还是空心
• 判断是硬物还是软物
超声穿透检测:
• 空:回波单一且清晰
• 硬物:强反射
• 软物:吸声,回波弱
重量:需要拿起来,且不知道内容物类型
晃动:并非所有物体都会响
视觉:不透明包装看不到
场景 4:复杂环境的 approach 优化(工业/仓储)
场景 挑战 超声的作用 为什么必须是超声
货架深处抓取 • 狭窄空间
• 多次碰撞风险
• 相机视角受限
多方向超声测距:
• 前方:目标物体距离
• 侧方:与货架壁的距离
• 实时调整 approach 轨迹
视觉:深度估计误差大(单目);遮挡严重
触觉/FT:碰到才知道,已经晚了
激光雷达:成本高、体积大、不适合手指
插拔操作
(插头、USB、钥匙)
• 孔深度不可见
• 需要精确对齐
• 插入深度反馈
插入物前端装超声:
• 测量到孔底的距离
• 监测插入深度
• 检测是否到位
视觉:孔内部看不到
wrist_FT:只能感知阻力,不知道深度
proprio (q):只知道关节位置,不知道实际插入深度(可能卡住)
夹持力预判 在接触前估计需要多大夹持力 超声估计物体尺寸/形状:
• 大物体 → 需要大开合度
• 估计接触面积 → 预设夹持力
视觉:尺寸估计有误差;遮挡时更不准
触觉:接触后才知道,可能已经夹坏了
场景 5:滑移早期预警(补充触觉盲区)

任务:在物体开始滑移之前检测风险

工程实现建议(如果要做超声)
场景类别 推荐配置 成本 集成难度
液体容器操作 1–2 个超声测距模块(40kHz)
安装位置:指尖前端,朝向容器内部
$2–5/个 低(简单测距)
视觉盲区探测 2–4 个超声测距模块
安装位置:手指侧面、手掌内侧
$10–20 总计 中(需要多传感器融合)
软硬度/内部结构 高频超声探头(1–5MHz)
安装位置:指尖表面
$10–50/个 高(需要耦合凝胶、信号处理复杂)
复杂环境 approach 2–3 个多方向超声测距
安装位置:手腕、指尖前端/侧面
$5–15 总计 中(需要轨迹规划集成)
滑移早期预警 高精度超声测距(0.1mm 分辨率)
安装位置:指尖侧面
$10–20/个 高(需要高采样率 + 信号滤波)

总结:超声的核心价值在于非接触感知内部结构探测——这是视觉、触觉、温度都做不到的。 但它不是通用传感器,只在上述特定任务中才体现明确的投资回报率(ROI)。

推荐策略

  • MVS–Phase 3:专注力学闭环(这是基础)
  • Phase 4:如果有明确的液体操作/复杂环境需求,加入超声测距(低成本、低风险)
  • Phase 5+:如果有特殊需求(软硬度检测、内部结构),考虑高频超声(高成本、高维护)

3.3 Level-2(工程化 Pro:长时部署与健康管理)

落地要点:把“耗材化/会坏”写进系统。
视触觉(凝胶/表皮)与线缆在长期部署中就是耗材;因此需要把 sensor_healthrecalib_required、以及更换后的 calib_version 当作数据的一等公民写进 episode metadata。

视触相关(建议新增到 episode metadata)gel_id / gel_batch / temp_gel / precondition_ok(开机预调理脚本是否通过); 同时 teacher 侧建议记录 teacher_versionteacher_uncertainty(或置信度),避免“材料状态漂了但标签看起来还很自信”。

4) 三层闭环(Level-A/B/C)与职责边界

4.1 Level-A:安全反射层(500–1000Hz)

目标:防损坏、防卡死、防过热,毫秒级止损。

4.2 Level-B:触觉协调层(60–200Hz)

目标:防滑(slip control)、夹持力调度、微调接触几何。

4.2.1 精细力控子模式(Level-B-Force)

twist/insertion/pry 等精细力控任务,Level-B 需要切换到力控子模式,要求更精确的力/力矩闭环。 此时 current/effort 的弱 proxy 不足,必须引入 wrist_FT(6D F/T)

多指力分配(Force Distribution / Internal Force)
精细力控闭环结构图
┌─────────────────────────────────────────────────────────────────────────────┐
│                      精细力控闭环 (Level-B-Force)                         │
│              适用任务: twist / insertion / pry / fine press / pull            │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│  传感输入层                                                                │
└─────────────────────────────────────────────────────────────────────────────┘
     ┌─────────────────┐   ┌───────────────────┐   ┌──────────────────┐
     │  wrist_FT (6D)  │   │ 指尖力 (可选)     │   │  q / qdot        │
     │  [Fx,Fy,Fz,     │   │ 法向 + 切向 ×2    │   │  关节位置/速度   │
     │   τx,τy,τz]     │   │                   │   │                  │
     └────────┬────────┘   └─────────┬─────────┘   └────────┬─────────┘
              │                      │                       │
              └──────────────────────┴───────────────────────┘
                                     │
                             实时测量 (60–200Hz)
                                     ↓
┌─────────────────────────────────────────────────────────────────────────────┐
│  状态估计 & 误差计算                                                       │
└─────────────────────────────────────────────────────────────────────────────┘
     ┌────────────────────────────────────────────────────────────────┐
     │  • 接触力/力矩估计: F_contact, τ_contact                       │
     │  • 误差计算:                                                    │
     │    - twist:    e_τz = τz_cmd - τz_measured                     │
     │    - press:    e_Fz = Fz_cmd - Fz_measured                     │
     │    - insertion: e_F = [Fx,Fy,Fz] - [Fx_cmd, Fy_cmd, Fz_cmd]   │
     │  • 风险评估: slip_risk, jam_risk (从 Student 或规则)           │
     └────────────────────────────────────────────────────────────────┘
                                     │
                                误差信号 ↓
┌─────────────────────────────────────────────────────────────────────────────┐
│  控制律选择 & 参数调整                                                     │
└─────────────────────────────────────────────────────────────────────────────┘
     ┌────────────────────────────────────────────────────────────────┐
     │  控制律类型:                                                  │
     │  ┌──────────────────────────────────────────────────────────┐  │
     │  │  阻抗控制 (Impedance):  τ = K(x_d - x) + B(ẋ_d - ẋ) + F_ext │
     │  │  导纳控制 (Admittance): ẍ = M⁻¹(F_ext - Kx - Bẋ)           │
     │  │  混合控制 (Hybrid):     位置主方向 + 力从方向              │
     │  └──────────────────────────────────────────────────────────┘  │
     │                                                                 │
     │  任务特定映射:                                                │
     │  • twist      → τz 闭环 + slip_risk 补偿 (增大 Fz 预紧)       │
     │  • insertion  → Fz 限幅 + Fx/Fy 对中 (阻抗控制)                │
     │  • press      → Fz 闭环 (PID 或力限幅)                          │
     │  • pry        → τ 限幅 + 姿态微调                               │
     └────────────────────────────────────────────────────────────────┘
                                     │
                              控制指令 ↓
┌─────────────────────────────────────────────────────────────────────────────┐
│  输出 & 执行                                                              │
└─────────────────────────────────────────────────────────────────────────────┘
     ┌────────────────────────────────────────────────────────────────┐
     │  输出形式:                                                       │
     │  • 末端 compliance 调整 (Δx_ee, Δorientation)                   │
     │  • 或关节力矩指令 (τ_joint) → Level-A 安全限幅                  │
     │                                                                 │
     │  安全约束 (Level-C 下发):                                        │
     │  • F_max, τ_max (力/力矩上限)                                   │
     │  • slip_risk_threshold (触发增大 Fz)                            │
     │  • jam 检测 → 立即触发 backoff                                  │
     └────────────────────────────────────────────────────────────────┘
                                     │
                                执行层 ↓
                      ┌────────────────────────────┐
                      │  Level-A (安全反射)        │
                      │  → 执行器 → 物理世界       │
                      └────────────────────────────┘

关键要点:
  • wrist_FT 必选:twist/insertion/pry 无法用 current/effort 替代(精度差 10–100×)
  • 阻抗 vs 导纳:阻抗控制适合刚性环境(insertion),导纳适合柔性/未知刚度
  • slip_risk 补偿:当 slip_risk > 阈值时,自动增大法向预紧 Fz
  • 可降级:wrist_FT 失效 → 回退简单任务(不做精细力控)
典型控制律示例
任务原语 控制目标 控制律类型 关键闭环信号 成功/失败判据
twist(擰瓶盖) 维持 τz 在目标范围,同时监控 slip_risk 扭矩闭环:τz_cmd → τz_measured wrist_FT.τz 角度达标 且 slip_risk < 0.3
press(精密夹持) 限制 Fz,维持预紧力 力闭环:F_cmd → F_measured 指尖法向力 或 wrist_FT.Fz contact_confidence > 0.8|F_error| < ε
insertion(精密插入) 限制 Fz,同时用 Fx/Fy/τx/τy 做对中 阻抗控制:位置主/力从 wrist_FT (6D) 深度达标 且 无 jam 事件
pry(撬开) 控制力矩,限制峰值力 力矩限幅 + 姿态微调 wrist_FT (6D) + 安全限位 约束解除 且 无 safety_trip
职责边界明确化

Level-B 的"微调接触几何"具体指:

关键区别:简单抓取/防滑可用 current/effort;精细力控(twist/insertion/pry)必须用 wrist_FT 才能做到毫牛级闭环与多轴解耦。

4.3 Level-C:语义策略层(5–15Hz)

目标:任务理解、子任务切换、与 VLA/LLM 高层决策对接。

关键点:Level-C 不直接管“接触瞬间怎么稳住”,它管的是“何时进入接触、失败后走哪条恢复路径”。

5) 人形视角:手是“物理因果接口”

对人形机器人来说,手的职责是把意图转成物理世界会响应的原因(力、力矩、接触约束)。 最小语义接口可以写成 6D wrench:

\[ w = [F_x, F_y, F_z, \tau_x, \tau_y, \tau_z]^T \]

push/pull/press/twist/pry 本质是在控制 \(w\) 的不同分量。滑移的物理边界(简化): \[ \|f_t\| \le \mu f_n \] 因而 slip detection 也是在估计:是否进入 sliding,以及离边界有多近(slip_risk)。

5.1 物理原语(Physical Primitives)词汇表

下面把文中出现的“物理原语”统一成可落地定义:每个词对应你想改变的物理量(wrench/约束/接触模式)以及它依赖的关键可观测信号。 原语可以作为早期 rule-based policy,也可以作为 VLA policy 的高层动作空间(primitive switching)。

原语 直白定义你在物理上做什么 目标改变什么 闭环控制律怎么闭环 关键闭环信号最低配 成功/失败判据触发恢复
press 沿接触法向"压下去",建立/维持法向力 提高 \(f_n\),增加摩擦预算(降低 slip_risk) 力闭环:F_cmd → F_measured(或 current 限幅) current/effort(法向 proxy)、q/qdot;高精度:指尖法向力或 wrist_FT.Fz 成功contact_confidence > 0.8 且 F_error < ε
失败:过力/jam → backoff;slip 仍高→ wedge/regrasp
pull 沿某方向"拉",尝试解除约束或拉出物体 控制切向力 \(f_t\),改变约束反力 力闭环(切向):f_t_cmd → f_t_measured;或阻抗控制 wrist_FT(强烈推荐)、current/effort 成功:目标位移达标 且 slip_risk < 0.3
失败:滑移/脱手→增大 pressregrasp
push 沿某方向"推",让物体/机构进入更可控的约束状态 改变接触约束与几何关系(让任务更可解) 位置控制 + 力限幅(hybrid control) rgb_wrist + current/effort(接触/阻力 proxy);高精度:wrist_FT 成功:目标约束状态达成 且 无 jam
失败:顶死/卡住→ backoff;偏斜→ re-approach
wedge "楔入/撬开"式接触:用边缘/角点制造几何杠杆 把不可见/难抓的几何变成可抓(解锁/起缝) 力/力矩限幅 + 姿态微调(限制峰值力) wrist_FT(强烈推荐)、current/effort 成功:缝隙打开 或 接触状态改变
失败:过力/损伤风险→限力 backoff;slip→ press/regrasp
twist 绕轴旋转(例如拧盖/旋钮) 控制 \(\tau_z\)(扭矩)并维持接触模式为 stick 扭矩闭环:τz_cmd → τz_measuredwrist_FT 必选) wrist_FT.τz必选);次选:current/effort(扭矩弱 proxy) 成功:角度达标 且 slip_risk < 0.3
失败:slip→先 press 提升摩擦;jam→ backoff + 重新对齐
pry "撬":绕支点施加力矩,解除卡扣/粘连 改变约束反力与接触点(高风险原语) 力矩闭环 + 峰值限幅(阻抗控制) wrist_FT必选)、安全限位/温度 成功:约束解除 且 无 safety_trip
失败:过力/过矩→立刻 backoff;损伤风险→终止并报警
drag 贴着表面"拖拽/扫过"以定位或产生摩擦信息 用可控滑移获取信息/对齐(信息驱动原语) 位置控制 + 法向力限幅(保持接触但允许滑移) rgb_wrist + current/effort;高精度:指尖触觉或 wrist_FT 成功:完成扫描区域 或 找到目标特征
失败:摩擦过大→减速/减力;抓取不稳→先 press
regrasp 重新抓(松开→调整接触点→再抓) 把接触几何重置到更稳定区域 序列控制:reopen → 视觉定位 → press rgb_wrist + q/qdot + current/effort 成功contact_confidence 提升 且 slip_risk 降低
失败:重复失败→切换 wedge 或改变 approach 方向
backoff 后退/卸载力(退避) 快速止损,解除 jam/过力风险(Level-A 常用) 位置撤退 + 力卸载监控(验证力是否下降) current/effort + qdot + 安全事件;高精度:wrist_FT 成功current/effort 降至安全范围 且 qdot 响应正常
失败:退避后仍异常→标记 sensor_health 或请求人工介入
reopen 张开手指/减小夹持(释放接触) 解除卡住/重置接触 位置控制(张开)+ 力卸载验证 q + current/effort 成功current/effort 降至基线 且 q 达到开启位置
失败:释放无效(仍有阻力)→可能几何卡死,转 backoff + 改路径
re-approach 重新接近(换角度/路径再次进入接触) 降低 misalignment/occlusion,获得更好接触几何 视觉伺服 + 路径规划(重新定位 grasp pose) rgb_static/rgb_wrist + q 成功:接触建立 且 misalignment 指标改善
失败:重复 misalignment→调整目标姿态或先 drag 探索

6) RM-in-loop:自动切段、挑 hard cases、触发自恢复

把 RM 当成“质量裁判”:部署时不仅做任务,还能自动生成高价值训练数据,并减少人工介入。

建议 RM 多头输出,而不是只输出一个标量:

面向 VLA 的对齐说明:RM 在前沿里通常以“critic/复盘”形态出现
在具身/机器人学习前沿,很多团队并不把 RM 当作“在线 RL 的奖励函数”直接驱动真机探索(风险与不稳定性太大),而是把它用在三件更稳、更可交付的事上:

公开对照(handbook): π*0.6 的 Recap 属于典型的 post-training / Offline RL 复盘范式;GR‑RL 体现了用 critic 筛选/提升长时程精细操作数据质量的思路;Reward Discovery 则对应“自动发现/进化奖励函数”的研究路线。

7) 时间同步与数据管线(可训练 / 可复现 / 可追责)

否则你无法判断失败到底是“策略错”,还是“执行延迟/饱和/保护触发”导致的。

同步实现要点(对应 handbook)

7.1 Deploy vs Research:同一套数据骨架(Deploy = 子集,Research = 超集)

你选择的路线是 A + C:用 Research Mode 的视触觉提供“高信息 teacher 信号”,但部署(Deploy Mode)不依赖视触觉的 uptime。 因此数据要做到:同一套 schema,Research 只是多字段,Deploy 允许缺字段。

共通字段(推荐)

7.2 A:Teacher → Student(蒸馏到可部署信号)

目标:让部署侧只依赖可靠模态(RGB + proprio + current/effort + F/T),但仍能获得“类视触觉”的状态(接触模式、滑移风险、失败模式)。 做法是:用 Research Mode 的视触 teacher 生成 teacher labels(建议多点视触:指腹 + 侧边/侧壁覆盖侧向受力与形变),再训练一个只吃 Deploy 模态的 Student estimator。

Teacher labels(最小集合)

补充(与电手套/电皮肤的 teacher 更对齐):若你的 student 目标是拟合“包覆材料在外力变化下的侧向形变”, teacher 侧就不能只看单一指腹视角——建议把 teacher 的几何/接触模式标签基于 pad + side 两个(或以上)视触通道联合生成,并对侧向形变/脱离边缘等情况显式给出更高权重或单独事件标签。

部署侧推理(Student 输出给 policy)

7.2.1 因果状态空间(state taxonomy):VLA 真正在学什么

从第一性原理出发,DexHand 不是“更复杂的夹爪”,而是机器人把语义意图转成可控的物理因果的接口。 因此 policy 需要的不是“更多传感器”,而是一个可部署、可对齐、可回放的因果状态

这解释了 A(Teacher→Student)的必要性:Research Mode 的视触觉提供高信息的“因果真值”,而 Deploy Mode 则要把这些真值蒸馏成可部署信号。

7.2.2 Teacher labels 的产生机制(视触 → 标注 → 版本化)

这一步的目标是让 label 可计算、可复现、可版本化,否则 teacher label 会变成不可追责的“拍脑袋标签”。 推荐把每次生成 teacher label 的实现写成一个可追踪版本:teacher_version(commit hash / semantic version)+ teacher_config(阈值/窗口大小等)。

label 定义(第一性) 视触可计算 proxy(示例) 输出形式
contact_confidence “是否接触”的置信度 接触 patch 面积是否显著:area(contact_patch) > A_min 0–1
contact_patch 接触区域(几何真值) 由视触深度/形变图阈值得到二值 mask;可进一步取 centroid/主方向 mask + stats
contact_mode 接触处于 stick/slip/roll(摩擦边界)
  1. contact_confidence 低 → no_contact
  2. 估计接触 patch 的切向位移/光流能量 \(v_t\)
  3. 若 \(v_t > v_{slip}\) 且法向压入持续存在 → slip;否则 stick
  4. 若存在绕接触点显著旋转且切向位移小 → roll(可选)
枚举/one-hot
slip_risk \(P(\\text{slip within }\\Delta t)\) 用短窗口特征回归:v_t、接触面积变化、法向压入变化、effort/current 残差(如果同步) 0–1
failure_mode 失败的物理原因分类
  • jam:current↑ + qdot≈0
  • slip:contact_mode=slip
  • misalignment:接触 patch 偏置且 progress 停滞
  • occlusion:视觉/视触关键观测缺失(可选)
多类分类
progress 子任务进度(用于切段/训练) 用规则或小模型:达到关键状态(接触建立、稳定抓取、旋转完成…) 0–1
recoverability 是否处于可自救窗口 failure_mode + 接触置信度 + 安全事件组合判定 0–1 或 bool
力学真值(精细力控必需)
contact_wrench 接触点的 6D 力/力矩估计 视触形变 + wrist_FT 的联合估计(或基于形变的力学建模) [Fx, Fy, Fz, τx, τy, τz]
grasp_stability_margin 离摩擦锥边界的余量(安全距离) \(\mu f_n - |f_t|\) 的归一化(或基于 slip_risk 的逆推) 0–1(1 = 非常稳定,0 = 即将滑移)
insertion_phase 插入任务的阶段状态 基于 wrist_FT 特征 + 深度/接触面积变化:approach / contact / slide / jam / success 枚举(5 类)
twist_phase 扭转任务的阶段状态 基于 wrist_FT.τz + 角度变化:engage / turn / slip / complete 枚举(4 类)
normal_force 接触法向力估计(单通道) 视触压入深度 → 力(需标定)或 wrist_FT.Fz 投影 标量(N)
tangential_force 接触切向力估计(单通道或 2D) 视触剪切形变 → 力(需标定)或 wrist_FT 的 Fx/Fy 分量 标量或 [fx, fy](N)
场景特定增强(可选)
material_class 物体材质分类(基于热导率 + 视觉纹理) • 温度:接触后 dT/dt (0.5–2s 窗口) → 热导率估计
• 视觉:RGB 纹理特征(颜色/光泽/纹理)
• 联合:融合两者 → 分类 logits
枚举:metal / plastic / wood / fabric / ceramic
contact_wrench 的定义与可辨识范围(责任边界)

注意:视触不必承担高频闭环(handbook 强调其延迟/线缆/耗材/标定成本),但它非常适合在 Research Mode 里提供“几何真值”和“摩擦状态真值”。
对 Deploy Mode,teacher labels 只作为监督信号,不作为实时传感依赖。

7.2.2.1 材料/接触物理学:为什么“视触 teacher”必须做版本化与去材料化

视触(gel-based)之所以“信息量大”,是因为它把接触边界条件(法向压力、剪切、曲率、边缘)映射成可观测的形变/光学纹理; 但这条映射不是常数,而是强烈依赖材料与环境:粘弹性、蠕变、滞回、温度、老化、污染都会改变同一个接触在传感器里的“表观形变”。 因此在 Teacher→Student 里,视触更适合承担 teacher(近真值) 而不是 线上依赖,并且 teacher 必须显式建模“不确定度”和“版本”。

7.2.3 Student → Policy 的接口规格(让部署可控、可验证)

为了让 A 真正可落地,必须把 student 的输出形式“写死”,并规定 policy 如何消费这些输出(否则会出现训练/部署语义不一致)。

验收门槛(必须写死):Student 必须输出置信/校准(例如 failure_mode_confidenceslip_risk_calib), 否则 policy 会把噪声当信号,恢复触发会比“没触发”更致命。

训练目标别贪(只蒸馏低维因果):Student 优先学 phase/mode/risk/recoverability 的“触发点”, 不强制追求连续高精度 contact_wrench;精细闭环仍由 wrist_FT 直接完成(与你的系统分工一致)。

电传感的盲区:为什么“拉力(tension)”难直接感到?如何补齐?
多数电触觉/电手套对“压入/接触面积变化”(法向)很敏感,但对拉离/张力本身没有对称的直接通道(没有“负压力”这一物理量), 往往只能通过“接触逐渐消失/边缘先脱离”的事件间接体现。这会导致仅靠电触觉很难稳定估计 pull load。
工程解法(推荐优先级): (1) 加 wrist_FT 或关节力矩/腱张力传感,提供外力/拉力的可观测 proxy;(2) 用 q/qdot + current/effort 做模型外力估计(把摩擦/内阻作为不确定度处理);(3) 把“脱离/将脱离”事件化为 detach_risk/recoverability,让 policy 在拉力任务中优先走“先建立足够法向,再拉”的原语序列。

Policy 使用约束(示例)

这些规则也可以作为早期的 rule-based policy(阶段 1),随后逐步被 VLA policy 学到(阶段 2+)。

7.3 C:RM/QC flywheel(把部署数据变成“可用且可追责”的数据)

视触觉不必进 kHz 闭环,但可以显著提高数据质量与训练效率:QC、更准切段、更准 hard case 挖掘、更可控的恢复触发。

7.3.1 Replay Validation(最关键 QC)—可执行 checklist

目标:把“能不能训练”从主观判断变成硬指标。

A+C 数据流(示意图)

flowchart TD
  DeployMode[DeployMode_Data] --> Align[TimeSync_Align]
  ResearchMode[ResearchMode_Data_WithVisuoTactile] --> Align

  ResearchMode --> Teacher[TeacherLabeler_VisuoTactile]
  Teacher --> Labels[TeacherLabels]

  DeployMode --> Student[StudentEstimator_DeployOnly]
  Labels --> Student

  Student --> PolicyInputs[VLA_Policy_Inputs]
  DeployMode --> PolicyInputs

  PolicyInputs --> Policy[VLA_Policy]

  DeployMode --> RM[RM_QC_Flywheel]
  ResearchMode --> RM
  RM --> HardCases[HardCaseMining]
  HardCases --> Train[Retrain]
  Train --> Student
  Train --> Policy

7.4 数据采集实施流程(VLA公司落地操作指南)

本节面向"买完系统回去要做什么"的实际工程问题:谁来采、怎么采、采什么、如何质控、如何从 Research 过渡到 Deploy。 流程按照 9.2 迭代路线图 的阶段划分,每个阶段给出可执行的操作清单。

验收门槛(数据覆盖):采集策略必须按“失败分布”来设计,而不是只追成功率。
最少要刻意覆盖:材料状态gel_batch/temp_gel/pollution)、接触边界(stick↔slip 临界)、早期征兆(misalignment/jam 的前兆)。 这决定了 Student 能不能学到“触发点”,而不是只学到“平均态”。

核心概念澄清:Teacher训练 vs 遥操作手套

关键误解澄清"戴手套"有两个完全不同的含义,不要混淆!

两种"戴手套"的根本区别
概念 手套类型 数据类型 作用 是否需要
遥操作手套 Meta Manus / Cyberglove / 数据手套 人手关节角度 [θ1, θ2, ..., θ20] 控制机器人手的运动轨迹 可以用(或用主从手/VR手柄代替)
假想的"训练Teacher手套" 假想的人手触觉传感器 人手的接触感受/力感知 (误以为)提供Teacher训练ground truth 不需要!不存在!
❌ 常见误解(错误流程)
【错误理解】
人戴触觉手套 → 人手接触感受数据 → 训练Teacher → Teacher处理机器人视触图像
       ↑                                              ↑
   (人手数据)                                    (机器人数据)
       └──────────── 数据来源不匹配! ────────────┘
✅ 实际架构(正确流程)
┌─────────────────────────────────────────────────────────────────────────────┐
│  完整数据采集流程(Teacher→Student架构下)                                    │
└─────────────────────────────────────────────────────────────────────────────┘

【步骤 1】人类遥操作(控制机器人执行任务)
┌────────────────────────────────────────────────────────────────┐
│  操作员                                                         │
│  ├─ 用主从灵巧手 / VR手柄 / 数据手套(任选一种)               │
│  └─ 控制机器人手执行任务(抓取/插入/拧瓶盖...)                │
└──────────────────────────┬─────────────────────────────────────┘
                           │ 遥操作指令
                           ↓
┌─────────────────────────────────────────────────────────────────┐
│  机器人手(被控制,执行任务)                                  │
│  ├─ 装有传感器:RGB相机、关节编码器、wrist_FT、指尖力...        │
│  └─ Research Mode额外装:视触觉传感器(GelSight/DIGIT/uSkin)  │
└──────────────────────────┬──────────────────────────────────────┘
                           │ 采集传感器数据
                           ↓

【步骤 2】机器人传感器采集数据
┌─────────────────────────────────────────────────────────────────┐
│  Deploy Mode 数据(可长期稳定运行)                            │
│  ├─ RGB图像(static + wrist)                                   │
│  ├─ 关节位置/速度(q / qdot)                                   │
│  ├─ 电流/力矩(current / effort)                               │
│  └─ 手腕6D力/力矩(wrist_FT,阶段2.5+)                         │
└──────────────────────────┬──────────────────────────────────────┘
                           │
┌─────────────────────────────────────────────────────────────────┐
│  Research Mode 数据(额外采集,用于生成Teacher labels)        │
│  ├─ 上述Deploy模态                                              │
│  └─ + 视触觉图像(指腹 + 侧边,多点覆盖)                      │
└──────────────────────────┬──────────────────────────────────────┘
                           │
                           ↓

【步骤 3】Teacher算法处理视触觉数据(机器人数据,不是人手!)
┌─────────────────────────────────────────────────────────────────┐
│  Teacher Labeler(算法,运行在服务器上)                       │
│  输入:视触觉图像(从机器人手指传感器采集)                  │
│  处理:                                                          │
│  ├─ 分析接触形变 → contact_mode(stick/slip)              │
│  ├─ 估计滑移风险 → slip_risk(0-1)                        │
│  ├─ 检测失败模式 → failure_mode(jam/slip/...)            │
│  ├─ 计算接触几何 → contact_patch / contact_wrench │
│  └─ 输出不确定度 → teacher_uncertainty                     │
│  输出:Teacher labels(监督信号)                                │
└──────────────────────────┬──────────────────────────────────────┘
                           │
                           ↓

【关键问题】Teacher如何训练?Ground Truth从哪来?
┌─────────────────────────────────────────────────────────────────┐
│  Teacher训练方法(4种方案,不需要人手数据!)                     │
└─────────────────────────────────────────────────────────────────┘

方案1:规则为主(70%的labels)
  简单labels用规则,不需要训练:
  ├─ contact_confidence = (接触patch面积 > 阈值) ? 1 : 0
  ├─ contact_mode = (光流能量 > v_slip) ? "slip" : "stick"
  └─ 纯计算机视觉算法,可计算、可复现

方案2:传感器融合自动标注(20%的labels,推荐!)
  用机器人自己的可靠传感器作为ground truth:
  ┌────────────────────────────────────────────────────┐
  │ 机器人执行任务时同时记录:                          │
  │ ├─ 视触图像(需要labels)                           │
  │ └─ wrist_FT(6D力/力矩,可靠传感器,作为GT)       │
  │                                                    │
  │ 自动生成训练数据:                                  │
  │ ├─ wrist_FT检测Fz突降 → slip事件 → 标注视触图像    │
  │ ├─ wrist_FT.τz卡住+current↑ → jam → 标注为"jam"   │
  │ └─ contact_wrench: 视触形变+wrist_FT联合估计       │
  │                                                    │
  │ 训练Teacher模型:                                   │
  │ X_train = 视触图像                                 │
  │ Y_train = wrist_FT推算的力/接触状态(GT)          │
  └────────────────────────────────────────────────────┘
  关键:wrist_FT是机器人自己的传感器,不是人手套!

方案3:标定实验(力学模型标定)
  用标准力传感器建立形变→力的映射:
  ├─ 施加已知力(1N, 2N, 5N...) → 记录视触形变
  ├─ 建立初始模型:形变特征 → 力(线性/NN)
  └─ 用任务数据fine-tune

方案4:少量人工标注(10%,辅助)
  专家标注机器人的视触视频(不是人手!):
  ├─ 观看机器人视触视频 → 标注slip发生时刻
  ├─ 100-500 episodes足够冷启动
  └─ 用于训练轻量Teacher模型


【步骤 4】Student学习(Deploy模态 → Teacher labels)
┌─────────────────────────────────────────────────────────────────┐
│  Student Estimator(神经网络,训练后部署)                     │
│  输入:只用Deploy模态(RGB + q/qdot + current/effort + wrist_FT)│
│  监督信号:Teacher labels                                        │
│  目标:学习从可靠传感器推理出Teacher的输出                       │
│  输出:部署时可用的状态估计(contact_mode / slip_risk / ...)   │
└──────────────────────────┬──────────────────────────────────────┘
                           │
                           ↓

【步骤 5】Policy训练(Deploy模态 + Student输出)
┌─────────────────────────────────────────────────────────────────┐
│  VLA Policy(最终部署的策略)                                  │
│  输入:Deploy模态 + Student输出的状态估计                        │
│  训练数据:Deploy Mode episodes(5000+,大量)                  │
│  输出:机器人动作(关节目标位置/速度)                           │
└─────────────────────────────────────────────────────────────────┘
关键区分:遥操作方式 vs Teacher→Student架构
概念 作用 谁/什么 常见误解
遥操作方式 人类控制机器人执行任务 主从手 / VR手柄 / 数据手套(任选一种) ❌ 误以为"数据手套=Teacher"
Teacher 从视触觉数据生成高质量labels 视触觉传感器(装在机器人手指上)+ 算法 ❌ 误以为"人戴手套=Teacher"
Student 从可靠传感器推理Teacher输出 神经网络(训练后部署) ✅ 正确理解
Policy 根据传感器输入决策机器人动作 VLA模型(最终部署) ✅ 正确理解
三种数据采集模式对比
阶段 遥操作方式 机器人传感器配置 Teacher来源 数据用途
阶段 1
(MVS冷启动)
VR手柄 + 规则手势 RGB + q/qdot + current/effort 规则伪标签
(基于current阈值)
训练初始Policy
建立数据管线
阶段 2-2.5
(加wrist_FT)
主从灵巧手 上述 + wrist_FT(6D) 规则伪标签
(升级为轻量RM)
训练精细力控Policy
(twist/insertion/pry)
阶段 4
(Research Mode)
主从灵巧手 上述 + 视触觉(pad+side) 视触觉Teacher算法
(真Teacher)
训练Student estimator
生成高质量labels
阶段 4
(Deploy Mode)
主从手 + 自主探索混合 RGB + q/qdot + current/effort + wrist_FT
(无视触觉)
Student输出
(蒸馏自Teacher)
训练最终Policy
(大量数据)
FAQ:常见困惑澄清
Q1: 遥操作要戴Meta Manus手套吗?

A: 可以,但这是遥操作工具,不是Teacher训练数据!

阶段 Meta Manus的作用 数据流向
遥操作阶段 捕捉人手关节角度 → 控制机器人运动 Meta Manus → 机器人关节目标位置
Teacher训练阶段 不使用Meta Manus数据 机器人视触 + 机器人wrist_FT → Teacher模型

关键:Meta Manus提供的是运动指令(关节角度),不是力感知
Teacher需要学习的是"机器人视触图像 → 力/接触状态",ground truth必须来自机器人自己的传感器(wrist_FT)。

Q2: 为什么不能用人手套的触觉数据训练Teacher?

A: 三个根本原因:

Q3: 那Meta Manus在整个流程中到底有什么用?

A: 只用于遥操作,让机器人执行多样化的任务

完整流程(用Meta Manus遥操作的情况):

1. 【遥操作阶段】
   人戴Meta Manus → 人手动作 → Meta Manus捕捉关节角度
   → retargeting(人手20 DOF → 机器人16 DOF)
   → 机器人手执行动作(抓取/拧瓶盖/插入...)

2. 【数据采集阶段】
   机器人执行任务时,机器人传感器记录:
   ├─ RGB图像
   ├─ 关节角度/速度(q/qdot)
   ├─ wrist_FT(6D力/力矩)← Ground Truth!
   ├─ current/effort
   └─ 视触图像(Research Mode)

   ⚠️ 注意:Meta Manus的数据不记录,只是控制机器人运动

3. 【Teacher训练阶段】
   训练数据:
   X = 机器人视触图像
   Y = 机器人wrist_FT(ground truth)

   ⚠️ 注意:完全不使用Meta Manus数据!

4. 【Student训练阶段】
   X = Deploy模态(RGB + q/qdot + current/effort + wrist_FT)
   Y = Teacher labels

5. 【Policy训练阶段】
   X = Deploy模态 + Student输出
   Y = 任务成功/失败
Q4: 简单总结:两种"戴手套"的区别
对比维度 遥操作手套(Meta Manus) 假想的"训练Teacher手套"
是否真实存在 ✅ 存在,可以买 ❌ 不存在,不需要
数据类型 人手关节角度 (假想的)人手触觉/力
作用 控制机器人运动轨迹 (误以为)提供Teacher训练GT
数据流向 人手套 → 机器人关节 (不存在)
Teacher训练是否使用 不使用 不使在/不需要
实际GT来源 机器人wrist_FT + 规则 + 标定实验
实际采集流程示例(阶段4 Research Mode)
  1. 操作员用主从灵巧手控制机器人手去拧瓶盖
  2. 机器人手指上的视触觉传感器采集接触形变图像(30Hz)
  3. 同时记录:RGB、q/qdot、current/effort、wrist_FT(Deploy模态)
  4. Teacher算法分析视触觉图像 → 生成 contact_mode=slipslip_risk=0.8
  5. 事后训练Student:输入Deploy模态(RGB+proprio+FT)→ 预测 slip_risk=0.8
  6. 部署时:机器人手上不装视触觉,只用Student从Deploy模态推理slip_risk

Day 0:系统初始设置(开箱到第一条数据)

目标:验证硬件、建立数据管线、完成首次标定,产出第一条可回放的 episode。

硬件检查清单(MVS最小配置)
检查项 验证方法 产出/记录
2 路 RGB 相机 采集 10 帧,检查分辨率、帧率、曝光一致性 camera_calib_v1.yaml(内参/外参/畸变)
关节位置/速度 运动全行程,检查 q/qdot 连续性、无跳变 joint_limits.yaml(软硬限位)
电流/力矩 proxy 空载/负载对比,建立 current_baseline current_calib_v1.json(零点/增益)
时间同步 检查 PTP/NTP 状态,timestamp 对齐误差 < 5ms sync_status: ok 写入 metadata
Level-A 安全反射 触发过流/过热/碰撞,验证 backoff 响应 safety_config_v1.yaml
Day 0 产出(必须完成才能进入阶段 1)

阶段 1(2–4 周):MVS 基础数据采集

硬件配置:2 路 RGB + q/qdot + current/effort
能力范围:简单抓取、pick-and-place、粗防滑
数据目标:1000–3000 episodes(成功率 60–80%),建立数据质量基线

采集流程(谁来采)
采集方式 适用场景 数据量占比 质量特点
遥操作(teleoperation) 冷启动、复杂任务、hard cases 30–50% 高质量,但慢(5–10 episodes/小时)
规则策略(scripted policy) 简单抓取、标准场景 30–40% 一致性高,但泛化弱
自主探索(w/ RM 筛选) 阶段 2+ 解锁,用于数据飞轮 20–30%(阶段 1 占比低) 量大,需 RM QC
遥操作硬件接口方案(真人示范如何实现?)

核心问题:是否需要真人戴数据手套?答案:不是必须,取决于任务复杂度与预算

⚠️ 重要澄清:遥操作手套 ≠ Teacher训练数据

本节讨论的数据手套(Meta Manus/Cyberglove等)只用于遥操作(控制机器人运动),
不用于训练Teacher(Teacher的ground truth来自机器人自己的wrist_FT传感器)。
详见 7.4 核心概念澄清

方案 实现方式 成本 采集效率 数据质量 推荐场景
1. 主从灵巧手
(leader-follower)
操作员戴上一只与机器人手相同的"主手"
主手动作实时映射到机器人手(follower)
不需要数据手套,直接用主手的关节编码器
中高
(需要第二只手)
⭐⭐⭐⭐⭐
直观、快速
⭐⭐⭐⭐⭐
最接近目标动作
灵巧操作、精细力控
阶段 2+ 推荐
2. VR 手柄
+ IK
操作员用 VR 手柄控制手腕位姿
手指通过按键/扳机触发预定义手势
逆运动学(IK)解算关节角度
不需要手套

(VR 手柄几千元)
⭐⭐⭐
需要训练
⭐⭐⭐
手指动作受限
简单抓取、pick-and-place
阶段 1 推荐(冷启动)
3. 数据手套
(data glove)
操作员戴上带传感器的手套
捕捉手指关节角度
映射(retargeting)到机器人手
需要解决:手指数量/长度/自由度差异
中高
(专业手套 5–30 万)
⭐⭐⭐⭐
自然,但需 retargeting
⭐⭐⭐⭐
取决于 retargeting 质量
灵巧操作、需要采集大量数据
阶段 2–3(若预算允许)
4. 视觉捕捉
+ 重定向
用相机捕捉人手动作(MediaPipe/OptiTrack)
重定向(retargeting)到机器人手
不需要手套,非接触式
难点:遮挡、精度、延迟
低–中
(相机/动捕系统)
⭐⭐
retargeting 复杂
⭐⭐⭐
遮挡时失效
离线示范采集
用于预训练,不适合实时闭环
5. 键盘/3D鼠标
+ 手势库
操作员用键盘/3D鼠标控制手腕
手指通过快捷键触发预定义手势
(open/close/pinch/...)
不需要手套
极低
(几百元)

慢且不直观
⭐⭐
只能做简单动作
预算极低时的备选
仅适合阶段 1 简单抓取
6. 不需要人类示范
(自主探索)
用规则策略/RL 让机器人自主探索
RM 筛选高质量数据
前提:已有初始 policy 或规则库

(无额外硬件)
⭐⭐⭐⭐⭐
可 7×24 采集
⭐⭐⭐
需要 RM QC
数据飞轮阶段
阶段 2+ 与人类示范混合使用
推荐决策树:我该用哪种遥操作方式?
你的预算与任务复杂度?
  │
  ├─ 预算紧张(<10万) + 任务简单(pick-and-place)
  │   └─ ✅ VR 手柄 + IK(阶段 1 首选)
  │       ├─ 优点:成本低、上手快、足够冷启动
  │       └─ 缺点:手指动作受限(只能做简单手势)
  │
  ├─ 预算中等(10–50万) + 任务复杂(灵巧操作)
  │   └─ ✅ 主从灵巧手(阶段 2+ 首选)
  │       ├─ 优点:最直观、数据质量最高、无 retargeting 问题
  │       └─ 缺点:需要购买/制造第二只手
  │
  ├─ 预算充足(>50万) + 需要大量采集
  │   └─ ✅ 数据手套主从手(二选一)
  │       ├─ 数据手套:适合人手→机器人手 retargeting 研究
  │       └─ 主从手:更直接,数据质量更稳定
  │
  └─ 已有初始 policy(阶段 2+)
      └─ ✅ 自主探索 + RM 筛选(数据飞轮)
          ├─ 20–30% 用人类示范补充 hard cases
          └─ 70–80% 用自主探索扩充数据量
主从灵巧手方案详解(阶段 1–2 推荐)

为什么推荐主从手?
对于灵巧手采集,主从手(leader-follower)是工业界最成熟的方案(Tesla Optimus、Figure、1X 等都在用):

实现要点

  1. 主手可以是"透明模式"(zero-torque,操作员轻松移动)或"阻抗模式"(模拟从手接触阻力)
  2. 主手不需要装传感器(只需关节编码器),从手才装全套传感器(RGB/F/T/触觉)
  3. 采集时记录:主手 q_leader、从手 q_follower + 从手传感器数据
  4. 回放验证:重放 q_leader 到从手,检查 replay_ok
数据手套方案的陷阱(慎用)

为什么不首选数据手套作为遥操作工具?

适用场景:若你的研究重点是"人类示范 → 机器人策略迁移",或需要采集大量不同操作员的数据(数据多样性), 则数据手套有价值。但若只是为了"快速采集高质量数据训练 policy",主从手更直接。

阶段 1 最小成本方案(VR 手柄 + 规则手势)

预算 <1 万时的冷启动方案

  1. Meta Quest / HTC Vive 手柄(~3000–5000 元)控制手腕 6D 位姿
  2. 手指用 5–10 个预定义手势:
    • open(张开)
    • close(合拢)
    • pinch(捏取,拇指+食指)
    • power_grasp(包络抓取)
    • precision_grasp(精密抓取,三指)
  3. 操作员用扳机/按键切换手势,IK 解算关节角度
  4. 局限:只能做简单抓取,无法做精细操作(twist/insertion/pry)
  5. 足够阶段 1 冷启动:采集 1000+ episodes 简单抓取,训练初始 policy,再过渡到主从手或自主探索
实际采集团队配置建议
阶段 遥操作方式 人员配置 每日产出
阶段 1
(2–4 周)
VR 手柄 + 规则手势 1–2 名操作员 + 1 名工程师(监控数据质量) 40–80 episodes/天
(每人 5–10 episodes/小时 × 4–8 小时)
阶段 2
(4–6 周)
主从灵巧手 2–3 名操作员(轮班)+ 1 名工程师 80–150 episodes/天
(主从手效率更高)
阶段 3+
(数据飞轮)
70% 自主探索 + 30% 人类示范 1 名操作员(补充 hard cases)+ 1 名工程师(RM 监控) 200–500 episodes/天
(自主探索 7×24 运行)
每条 episode 必须记录的字段(episode metadata)
{
  "episode_id": "ep_20260115_001234",
  "task": "pick_cup",
  "collection_method": "teleoperation",  # teleoperation / scripted / autonomous
  "calib_version": "v1.0.0",
  "sync_status": "ok",                   # ok / degraded / failed
  "replay_ok": true,                     # Replay Validation 结果
  "success": true,                       # 任务是否成功
  "failure_mode": null,                  # jam / slip / occlusion / timeout / ...
  "duration_sec": 12.5,
  "sensor_health": {"rgb_static": "ok", "rgb_wrist": "ok", "current": "ok"},
  "timestamp_start": 1736899234.567,
  "git_commit": "a1b2c3d"                # 代码版本
}
阶段 1 数据质量控制(每天/每周执行)
  1. Replay Validation:抽查 10% episodes,replay_ok 通过率 > 90%
  2. 失败分布统计failure_mode 统计(哪类失败最多?是否需要调整采集策略?)
  3. 成功率监控:按任务类型分组,SR(Success Rate)> 60%;若 SR 持续下降→检查标定漂移
  4. 传感器健康:每天开机前检查 sensor_health,异常立即重新标定
阶段 1 产出(进入阶段 2 的前置条件)

阶段 2–2.5(6–10 周):加入 wrist_FT,解锁精细力控

硬件新增:1 个手腕 6D F/T 传感器(≥200Hz)
新增能力twist(拧瓶盖)、insertion(精密插入)、pry(撬开)、pull(拉力闭环)
数据目标:每类新任务 200–500 episodes

wrist_FT 标定流程(Day 1)
  1. 零点标定:手空载静止,采集 1000 帧 → 计算 wrist_FT_zero_offset
  2. 重力补偿标定:手臂多姿态(6–10 个姿态),建立重力模型 → gravity_comp_model_v1.json
  3. 已知负载验证:抓取已知质量物体(100g, 500g, 1kg),验证 Fz 读数误差 < 5%
  4. 扭矩标定(可选):用标准力矩扳手施加已知扭矩,验证 τz 读数
精细力控任务的采集要点
任务原语 关键采集信号 成功判据(自动标注) 推荐采集方式
twist wrist_FT.τz + 角度变化 旋转达标 且 slip_risk < 0.3 遥操作(初期),脚本(标准瓶盖)
insertion wrist_FT (6D) + 深度 插入深度达标 且 无 jam 遥操作 + RM 辅助对中
pry wrist_FT (6D) + 安全限位 约束解除 且 无 safety_trip 遥操作(高风险,慢速采集)
pull wrist_FT.Fz + 位移 拉力达标 且 无脱手 脚本(简单)+ 遥操作(复杂)
阶段 2.5 数据质量升级
阶段 2.5 产出

阶段 3–4(2–6 月):指尖力 + 视触觉 Teacher

阶段 3 硬件新增:2 个指尖 3 轴力传感器
阶段 4 硬件新增:多点视触觉(指腹 + 侧边,Research Mode only)
目标:形成完整 Teacher→Student 数据飞轮

Research Mode vs Deploy Mode 数据采集策略
模式 传感器配置 采集目的 数据量 质量要求
Deploy Mode RGB + q/qdot + current/effort + wrist_FT(+ 指尖力) 量产数据,训练 Policy + Student 大(5000+) replay_ok + SR 基线
Research Mode Deploy 配置 + 多点视触(pad+side) 生成高质量 teacher labels 中(1000–2000) Teacher label 置信度 + 覆盖 hard cases
视触觉 Teacher 标定与数据采集(阶段 4)
  1. Teacher 标定(每次更换 gel 必做)
    • 记录 gel_id / gel_batch / gel_install_date
    • 预调理(pre-conditioning):运行标准压入/滑动脚本,验证 precondition_ok
    • 标定接触阈值:A_min(最小接触面积)、v_slip(滑移速度阈值)
    • 版本化:teacher_version: v2.1.0 + teacher_config(阈值参数)
  2. 采集策略(Research Mode)
    • 优先采集 Deploy Mode 中失败率高的任务(hard cases)
    • 每条 episode 同时记录 Deploy 模态 + 视触觉图像
    • Teacher labeler 实时生成 contact_mode / slip_risk / contact_patch / teacher_uncertainty
    • 低置信样本(teacher_uncertainty > 0.3)标记为待复核
  3. Teacher→Student 训练
    • 输入:Deploy 模态(RGB + q/qdot + current/effort + wrist_FT)
    • 监督信号:Teacher labels(带不确定度加权)
    • 验证:在 Deploy Mode 数据上测试 Student 输出与 RM 规则的一致性
    • 闭环验收:把 Student 输出接到 recovery primitives,测量 SR/IR 提升
阶段 4 产出(完整数据飞轮)

跨阶段数据质量保障协议

每日检查(自动化脚本)

每周复盘(人工 + RM 辅助)

阶段切换验收(A/B 对比)

数据管理与版本控制

数据存储结构(推荐)
data/
├── raw/                          # 原始采集数据(不可修改)
│   ├── stage1_mvs/
│   │   ├── ep_20260115_001234/   # 每个 episode 一个文件夹
│   │   │   ├── metadata.json     # episode metadata
│   │   │   ├── rgb_static.mp4    # 视频或图像序列
│   │   │   ├── rgb_wrist.mp4
│   │   │   ├── proprio.h5        # q/qdot/current/effort 时间序列
│   │   │   └── commands.h5       # cmd_joint_target(命令流)
│   │   └── ...
│   ├── stage2_wrist_ft/
│   └── stage4_research_mode/
├── processed/                    # 处理后数据(对齐、标注)
│   ├── aligned/                  # 时间对齐后
│   ├── labeled/                  # Teacher labels
│   └── filtered/                 # QC 筛选后(replay_ok=true)
├── calibration/                  # 标定文件(版本化)
│   ├── v1.0.0/
│   │   ├── camera_calib_v1.yaml
│   │   ├── current_calib_v1.json
│   │   └── calib_hash.txt        # git commit hash
│   └── v2.0.0/
└── models/                       # RM / Student / Policy checkpoints
    ├── rm_v1.0.ckpt
    ├── student_v1.0.ckpt
    └── policy_v1.0.ckpt
版本控制实践

常见采集陷阱与对策

陷阱 表现 根因 对策
标定漂移 SR 逐渐下降,slip_risk 误报增加 温度变化、gel 老化、零点漂移 每天开机预调理;每周重新标定零点;记录 gel_batch 与使用时长
Teacher 过拟合 gel Student 在新批次 gel 上性能下降 Teacher labels 对材料特性敏感 输出 teacher_uncertainty;低置信样本降权;做"去材料化"特征(归一化/比值)
时间对齐失败 replay_ok: false 比例高 传感器时钟不同步、Ring Buffer 溢出 验证 PTP 状态;减小 Ring Buffer 窗口;timestamp-at-source
RM 指标带偏 RM 分数高但 SR 不提升 RM 学到了"看起来好"而不是"真的好" 验收绑定部署 KPI(SR/IR/ER);RM 只做排序/筛选,不做唯一判据
Hard cases 采集不足 Policy 在边缘情况失败 遥操作偏好简单任务,复杂情况数据少 RM hard case mining → 优先采集失败场景;专门安排"刁钻场景"采集日

8) 标定、健康监测与可维护性

9) 最小落地版与迭代路线图(走向超越人类)

9.1 最小落地版本(你今天就能做出来)

9.2 迭代路线图

关键调整:将 wrist_FT 提前到阶段 2.5,使精细力控任务(twist/insertion/pry)能够尽早解锁。

为什么这样排序:阶段 1–2 建立数据底座(可复现、可追责);阶段 2.5 解锁精细力控(扩展任务谱系); 阶段 3 强化精细夹持(降低损坏风险);阶段 4 提升数据质量(teacher 真值)。这样既保证了快速交付 MVS,又不让精细力控能力等到"长期"才上线。

10) 可行性与未来性(面向 VLA 的评估结论)

本节给出一个“面试可复述”的结论:这套 DexHand Sensing System 方案的底座(多频闭环 + MVS)成熟且可快速交付; 完整版(Teacher→Student + RM-in-loop)具有很强的“前沿 VLA 对齐度”,但通常需要以标签质量与 domain gap 为中心做数月级工程迭代(具体取决于既有控制栈、采数基础与人力投入)。

10.1 核心架构的可行性(为什么能跑)

10.2 关键模块成熟度(TRL/风险速览)

模块 成熟度(直观) 主要风险
多频闭环 + proprio(q/qdot) 低(工程成熟)
current/effort 触觉代理 中高 中(需针对具体手/任务标定,避免误触发)
多点视触 teacher(pad+side) 高(材料/温度/污染/老化导致标签漂移,需要版本化 + 不确定度)
Teacher→Student 蒸馏 高(domain gap:Research→Deploy 分布偏移)
RM-in-loop 自动 QC 中低 高(指标带偏风险;建议 RM 只做 triage,验收用部署 KPI)

10.3 MVS(最小可行版本)为什么很值钱

MVS(2 路 RGB + q/qdot + current/effort + 同步对齐 + Replay Validation)能快速把系统从“demo”推进到“可回放、可追责、可迭代”。 对 VLA 来说,这一步解决的是数据质量与评估协议的地基问题:没有 replay_ok 与失败分布,你无法严谨筛选 checkpoint,也无法做可靠 A/B。

10.4 最大风险与对应对策(抓住真正会翻车的点)

10.5 建议的落地顺序(不绑时间)

注:这里给的是“先后顺序”,不写周级承诺(不同公司/团队的控制栈、硬件改动窗口与人力差异很大)。 若地基缺失,先补齐 A/B 的基本保护与 recover primitives、以及可写入的日志/时间同步,再往后推进。

参考链接