Robot SysID Lab

合成实验与知识路线图

本文定义 robot-sysid-lab 的项目方向。仓库同时服务两个目标:

  1. 为机器人工程师提供实用系统辨识知识;
  2. 作为以仿真为主的研究实验室,用完整、可配置的真值检验辨识方法。

通用软件框架不是组织主线。可复用抽象应从具体实验和重复流程中提取。

当前 K/L 教学范围、推荐顺序和必要前置以统一课程设计评审稿为准;本文保留长期研究选项,不作为每课的累计实现要求。

1. 项目主张

课程要讲清并检验以下闭环:

构建合成真值 → 向辨识流程隐藏真值 → 设计有信息量的实验
  → 选择实际可得的观测 → 选择 Student 假设类别 → 估计参数
  → 诊断残差与可辨识性 → 验证未见工况 → 扩展到更复杂机器人

仿真提供强实验控制:可获取真实物理和仿真参数;分析时可见隐状态和内力;可任意设置激励、重置、姿态、负载、接触和动作;可受控加入/移除噪声、延迟、量化、饱和及未观测条件;可重复比较模型与估计方法;在参数恢复有意义时直接测量恢复误差。因此合成教师是现实的受控替身,不只是单元测试。

2. 知识路线

知识内容应简洁到算法工程师能直接使用,同时足以支撑实验。

K0 — 为什么机器人需要系统辨识

回答:为什么 CAD 不是完整机器人模型?为什么物理参数错误仍可能匹配轨迹?为什么单条轨迹吻合却可能迁移失败?为什么宽泛域随机化不能代替理解系统?

K1 — 系统辨识基础

核心词汇:系统、输入、状态、观测、模型、参数、噪声、实验、估计器、验证。必须区分:选择模型结构 ≠ 估计参数。

K2 — 用于辨识的机器人动力学

只覆盖理解实验所需的动力学:

M(q) qdd + C(q, qd) qd + g(q) + tau_f = tau + J_c^T lambda

包括质量、质心、惯量、折算惯量、重力和动态耦合、执行器力矩生成、摩擦耗散、柔性回差和接触力。

K3 — 执行器建模

从简单到丰富建立模型阶梯:

理想执行器 → 比例/偏置/延迟 → 饱和及速度相关上限
  → 黏性与库仑摩擦 → Stribeck/非对称/负载相关项
  → 折算惯量/电机侧动力学 → 柔性/回差/共振
  → 证据需要时再加入电压、温度、迟滞

BAM 是本节和执行器实验的重要参考。

K4 — 实验设计与可辨识性

数据质量取决于执行了什么运动,不只是采集数量。示例激励包括慢正弦、扫频、多正弦、阶跃和换向、适用时的自由衰减/反驱、类似 PRBS 的激励,以及后续由信息量驱动的主动激励。

重点理解持续激励、敏感度、参数相关性、实际可辨识性,以及不同工况下隐藏效应是否可观测。

K5 — 估计与优化

理解线性/加权最小二乘、非线性最小二乘/Gauss-Newton、CMA-ES、并行/随机采样、适用时的贝叶斯优化,以及梯度/可微方法之间的取舍。

教学目标是区分优化器失败、模型失败和实验信息不足。PACE 可作为进化式整系统拟合的参考。

K6 — 验证与残差诊断

牢记:训练误差低 ≠ 模型已经验证。验证应覆盖不同运动、频率、方向、姿态、负载、控制增益、接触条件,以及已建模的电压/温度条件。残差结构应帮助提出缺失物理假设。

K7 — 物理参数与等效参数

K8 — 从辨识到仿真迁移

建立“校准 → 辨识后的标称模型 → 量化剩余不确定性 → 有针对性的域随机化/鲁棒控制”的连接。目标不是消除所有不确定性,而是不再用不必要的宽随机化隐藏可诊断的系统误差。

3. 合成实验阶梯

L0 — 单自由度解析概念

定位是教学放大镜,不是真实电机模型。研究惯量在数据中的样子、何时能看到阻尼、延迟如何影响相位、慢激励为何掩盖惯量,以及摩擦/饱和如何改变残差。实现保持小规模,先约定实验边界再构建。

L1 — 合成执行器

在保留完整隐藏真值的前提下复现、扩展 BAM 类研究。教师可包含力矩比例/偏置、指令/测量延迟、饱和和速度相关上限、黏性/库仑/Stribeck 摩擦、方向和负载依赖、折算惯量、回差/柔性、电压/温度依赖。

逐步丰富 Student,并在留出工况上比较。维度包括结构匹配/失配、激励选择、观测可用性、参数恢复与预测性能,以及估计器行为。

L2 — 固定基座关节腿

引入多体耦合,暂时排除接触和浮动基座不确定性。

案例 执行器模型 刚体模型 主要问题
A 正确 错误 能否恢复连杆/刚体误差而不扭曲执行器参数?
B 错误 正确 执行器误差如何随姿态和频率显现?
C 错误 错误 出现哪些补偿解?
D 部分约束 部分约束 低层先验有多大帮助?

明确引入实际可辨识性、敏感度和参数共享规则。

L3 — 带接触的腿

自由空间预测合格后再增加一个不确定性类别。教师可加入地面摩擦、接触刚度/阻尼、足底柔性、足部几何和黏着/滑动转变。

依次检查:执行器正确吗?刚体子系统正确吗?接触模型正确吗?不能让接触参数补偿已知的自由空间错误。

L4 — Microduck 整机

第一个整机合成基准,直接比较部件优先与全局拟合。

路线 A — 先辨识部件

执行器辨识 → 子系统验证 → 约束低层参数 → 整机残差匹配

路线 B — 全局拟合

整机轨迹 → 紧凑仿真参数化 → PACE 类优化

比较训练/验证误差、参数正确性和可解释性、优化难度、跨动作族鲁棒性、对模型失配的敏感度,以及下游仿真行为。

L5 — Microban 小型人形

Microban 是项目指定的小型人形平台。重点是规模和层次,而不是一次增加很多物理效应。

研究执行器族共享参数、逐关节残差、分组与完全独立参数化、高维可辨识性、部件先验与无约束全局拟合、全身动作多样性和留出验证。

代表策略:A 每关节全部独立;B 执行器族共享参数加少量关节残差;C 紧凑整机等效参数。

L6 — 跨仿真器失配

超越相同实现的教师/Student。可比较丰富自定义执行器教师与 MuJoCo 原生参数 Student、不同积分/步长假设、参数语义一致时的 MuJoCo CPU 与 Warp,以及不同接触实现。

这一层逼近仿真迁移的关键特征:Student 模型类别无法精确包含现实。教学范围已明确为同一小系统的两案:先在主后端隔离结构失配,再完成真正不同物理引擎间的对比;仅完成第一案不构成完整 L6。L4 后可进入,L5 不是必要前置,第二引擎在单课评审时选定。

4. 硬件迁移路线

硬件复用合成实验建立的实验与证据约定。单独设为 H 路线,因为硬件准备和合成实验进展相关,但不能互相替代。

H0 — 真实执行器台架

在受控物理子系统上面对力矩校准、时序、测量噪声、温度、电压、安全上限和可重复性。

H1 — 真实 Microduck / Microban

将部件证据与整机动作结合,在小规模平台验证完整仿真迁移闭环。

H2 — 完整人形机器人

将数据采集、参数共享、拟合、验证和部署证据扩展到完整平台。

所有硬件阶段复用明确边界、实验与观测格式、模型层级、留出验证、残差诊断和不确定性报告。

5. 跨实验的基准类别

B1 — 模型失配

故意从 Student 中移除教师的一种或多种效应,研究补偿解。例如真值有延迟或回差而 Student 没有;真值有 Stribeck/负载依赖而 Student 只用库仑加黏性;刚体质量错误时允许 Student 改变力矩比例。

B2 — 激励设计

固定真值/模型组合,比较激励类别,测量参数误差、留出误差、敏感度或类似 Fisher 信息的指标、参数相关性或不确定性代理量。

B3 — 观测消融

利用仿真能够公开所有内部信号的优势,研究移除信号后的变化。全知分析数据可以包含 q/qd/qdd、真实力矩、电机电流、控制器输出、接触力和隐状态;Student 则只得到实际观测组合,如“指令+编码器”“指令+编码器+电流估计”,或条件允许时加入外力/力矩测量。

将噪声、量化、滤波和时序不确定性作为显式实验因素。

B4 — 优化器对比

只在固定模型/数据约定下比较估计器。同时报告计算预算与拟合质量,避免混淆优化失败和模型质量。

B5 — 跨工况验证

每个正式基准都保留未用于拟合的工况。留出维度应与预期部署变化一致。

6. 真值难度等级

难度 教师/Student 关系 目的
D0 相同结构 实现检查与基础恢复
D1 教师稍丰富 模型选择与残差诊断
D2 强结构失配 等效参数与补偿
D3 隐藏工况依赖 数据分布变化与缺失上下文
D4 不同实现/后端 用跨仿真逼近真实模型失配

7. 支撑软件模块

实验需求驱动复用代码。可能的模块包括 Experiment/Excitation、Plant/Teacher、Observation policy、Dataset、Student Model、ParameterSchema、SimulatorBackend、Loss、Estimator、Validation、Report。它们支撑实验,不是项目主线。

实验 / 数据

定义激励、初始状态、运行工况、观测、时序和元数据。

系统 / 教师

定义隐藏真值系统及其指令接口。

模型库

包含逐步丰富的执行器、摩擦、传动、刚体和接触 Student 模型。

参数化 / 可辨识性

定义单位、边界、先验、共享规则、物理/等效语义,以及实际可辨识性诊断。

估计

保持优化器可替换,适配层尽量薄。

验证 / 报告

将留出表现、残差、敏感度、参数稳定性和真值比较作为核心输出。

8. 实现顺序

从实验约定出发,不先搭通用框架骨架。

阶段 0 — 稳定学习与实验规格

交付知识提纲、实验阶梯、真值难度、共同词汇,以及参数恢复和预测的成功指标。

阶段 1 — 重建最小单自由度实验

规格稳定后,实现正确的最小教师/Student;明确实验、观测、拟合、验证和真值比较;据此建立报告约定。

阶段 2 — 合成执行器基准

构建第一套可复用基准,用已知真值研究 BAM 类问题,由此确定真正可复用的抽象。

阶段 3 — 固定基座腿与接触

先加入多体耦合,再将接触作为可独立诊断的不确定性类别。

阶段 4 — Microduck 整机基准

在相同合成真值上比较部件优先与 PACE 类全局拟合。

阶段 5 — Microban 规模基准

在小型人形上研究参数共享、层次和高维可辨识性。

阶段 6 — 跨仿真与后续硬件

使用不同数值/模型实现,再将同一方法应用到真实系统。

9. 设计原则

  1. 合成本身就是研究环境,不只是通往硬件的临时步骤。
  2. 知识与可执行实验对应,重要概念尽可能有具体实验。
  3. 真值可以复杂,观测应实际可得,隐藏真值只供评估。
  4. 不能始终使用相同教师/Student,结构匹配只是基线。
  5. 实验设计属于辨识,更多优化迭代无法创造缺失信息。
  6. 验证属于结果,只有参数文件而没有留出证据是不完整的。
  7. 区分物理参数与等效参数,两者有用但回答不同问题。
  8. 按层级扩展:执行器 → 腿 → 接触 → Microduck → Microban,逐步隔离新不确定性。
  9. 抽象来自重复实验,避免过早泛化。
  10. 最终目标是有用的机器人预测仿真。可辨识时参数恢复有价值,模型最终仍应以对控制/RL 有用的留出行为评价。