23 实验方法论 · 误差分析与对照实验

返回 00 - 项目总览与学习路线 | 前置 22 标定系统 - 支点标定、重力姿态与Quest-标记标定

为什么学这个(项目关联)

这篇毕设的含金量一半来自实验方法。两个对照实验(编码器 vs ArUco、四种标定方法互比)都是可迁移的通用方法论——你以后调任何硬件、做任何选型,都能用同一套框架。这也是把本项目”融入开发体系”最直接的部分。

知识点清单

1. 对照实验设计(原文范式)

  • 单一变量:同一测试协议下只换被比较的对象(编码器/ArUco;四种标定)
  • 场景覆盖:不止测理想情况——原文测了 标定 / 自然抓取 / 快速开合 / 低光照 四个场景,专门覆盖极端工况
  • 明确协议:一分钟自然抓取、66 秒统计窗、“一帧有效 = 两个标记均检测到”……先定义清楚再测
  • 结论带决策:不止报告数字,给出选型结论与代价分析(编码器的额外硬件清单 vs 收益)

2. 误差统计量工具箱

统计量定义/用途原文应用
RMSE均方根误差,综合精度标定误差表
bias系统性偏移(均值)“平均偏差仅 x,不存在固定偏移”
SD离散度bias ± SD 报告
95% 帧区间分位数区间,覆盖绝大多数帧标记-编码器读数差
帧间抖动相邻帧差分,稳定性指标编码器≈0 vs ArUco 明显
99 分位误差半径最坏情况视角bootstrap 仿真输出
  • 分位数思维:关注尾部(最差单次)而非均值——原文明确”关注最差单次标定结果,而不是平均值”

3. Bootstrap 蒙特卡洛仿真(原文的评估核心)

  • 目的:估计”一次标定结果离真值多远”——但真值未知
  • 做法:
    1. 10 次独立标定 → 均值当”代理真值”
    2. 对标定输入数据(快照对)做有放回重采样 / 对参数协方差采样 → 仿真大量”虚拟单次标定”
    3. 统计虚拟结果到代理真值的距离分布 → 99 分位 = 误差半径
    4. 同时评估”用均值当真值”本身引入的不确定性
  • 局限(原文诚实声明):抓不住全局固定 bias(Quest 追踪系统误差、打印偏差)——仿真离散 ≠ 方法学正确
  • 均值平均效应:10 次结果的平均把随机误差压低 ~1/√10 量级

4. 无真值时的验证策略(组合拳)

1. 重复性(自身离散):bootstrap 分位误差
2. 一致性(互相偏差):方法两两之差 vs 各自离散范围
   → 偏差 > 离散 ⇒ 存在系统 bias,需要解释来源
3. 物理校验:正交性检验(重力姿态)、支点间距 vs CAD 尺寸
4. 可视化校验:CAD 渲染 vs 实物照片多视角
5. 已知约束检验:贴齐标定实测光轴倾角 vs 设计值
  • 原文的偏差溯源示范:手眼偏差 ← “理论倾角 ≠ 实测倾角”这一环

5. 数据呈现技巧(学原文的表达)

  • 直方图 + 分段标注(1798 帧分三段:1461/279/56)
  • 按运动速度分桶的误差分布(图 2:慢/中/快 str/s)→ 揭示”误差随速度上升”
  • 表格统一格式:单次误差 / 10 次平均误差 ×(平移,旋转)
  • 每张图有明确的坐标定义(“闭合百分比 0=全开 100=全闭”)

6. 复刻时的实验管理

  • 每次实验记录:日期、协议、原始数据路径、分析脚本、结论一句话
  • 版本化:数据不覆盖,结论可追溯(对接知识库”实践记录”小节)

学习资源

资源用途
任意概率统计教材的参数估计章节基础
检索 “bootstrap resampling uncertainty estimation”bootstrap
原文的表格与图注表达范式

实践任务

  1. 💻 用 numpy 实现 bootstrap:对一组含噪测量的均值/分位数做重采样,画置信区间
  2. 💻 给 16 嵌入式 - AS5600 编码器与 XIAO ESP32C6 的标定数据算 RMSE/bias/95% 区间,按原文表格格式呈现
  3. 💻 设计并执行一个自己的对照实验(任选:两种滤波、两种电源、两种打印材料),按”单一变量 + 极端工况 + 分位数报告”执行
  4. ✍️ 把”无真值验证五件套”做成自己的检查清单卡片

掌握标准(自测)

  • 能区分 bias / 随机误差 / 方法学偏差,并说出各自怎么检测
  • 能手写 bootstrap 流程并解释它抓不住固定 bias 的原因
  • 能按原文范式设计一个三场景以上对照实验
  • 养成”报告最差情况 + 分位数”的习惯

关联笔记

实践记录

(学习时在这里追加:日期 / 做了什么 / 踩坑 / 疑问)