合成实验与知识路线图
本文定义 robot-sysid-lab 的项目方向。仓库同时服务两个目标:
- 为机器人工程师提供实用系统辨识知识;
- 作为以仿真为主的研究实验室,用完整、可配置的真值检验辨识方法。
通用软件框架不是组织主线。可复用抽象应从具体实验和重复流程中提取。
当前 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. 设计原则
- 合成本身就是研究环境,不只是通往硬件的临时步骤。
- 知识与可执行实验对应,重要概念尽可能有具体实验。
- 真值可以复杂,观测应实际可得,隐藏真值只供评估。
- 不能始终使用相同教师/Student,结构匹配只是基线。
- 实验设计属于辨识,更多优化迭代无法创造缺失信息。
- 验证属于结果,只有参数文件而没有留出证据是不完整的。
- 区分物理参数与等效参数,两者有用但回答不同问题。
- 按层级扩展:执行器 → 腿 → 接触 → Microduck → Microban,逐步隔离新不确定性。
- 抽象来自重复实验,避免过早泛化。
- 最终目标是有用的机器人预测仿真。可辨识时参数恢复有价值,模型最终仍应以对控制/RL 有用的留出行为评价。