先记住一句话
估计不是平滑 sensor,而是在模型约束下融合过去 input 与当前 measurement,并同时维护自己有多不确定。
1. 确定性 Luenberger observer
对 xₖ₊₁=Axₖ+Buₖ, yₖ=Cxₖ,可写:
x̂ₖ₊₁ = Ax̂ₖ + Buₖ + L(yₖ−Cx̂ₖ)innovation/residual = y−ŷ 是测量与预测的差。estimation error 按 A−LC 演化;若系统 detectable,可选 L 让误差收敛。gain 太快会追 noise,太慢会保留 model bias。
2. 加入 stochastic noise
xₖ₊₁=Axₖ+Buₖ+wₖ, w~N(0,Q)yₖ=Cxₖ+vₖ, v~N(0,R)Q 表示 dynamics/process uncertainty,R 表示 sensor noise covariance。它们不是 LQR 的 Q/R;名字相同但含义、单位完全不同。
3. Kalman filter 两阶段
Predict:
x̂⁻ = A x̂⁺ + B u
P⁻ = A P⁺ Aᵀ + Q
Update:
ν = y - C x̂⁻
S = C P⁻ Cᵀ + R
K = P⁻ Cᵀ S⁻¹
x̂⁺ = x̂⁻ + Kν
P⁺ = (I-KC)P⁻P 是 estimation error covariance,K 是 Kalman gain。P⁻ 大或 R 小,就更信 measurement;sensor 很 noisy 时则更信 prediction。
4. 为什么 Q/R 不是随便调的旋钮
Q太小:过度自信模型,innovation 有结构且 correction 慢;Q太大:estimate 跟 noise 走,state 抖;R太小:过度相信 sensor,outlier 冲击大;R太大:sensor 基本不起作用,bias 漂移。
最好从静态/动态 log 估 covariance,再用 normalized innovation consistency 检查,而不只是看 trajectory “顺不顺”。
5. EKF、UKF 与 nonlinear estimator
EKF 在当前 estimate 处 linearize f,h 并传播 Jacobian;UKF 用 sigma points 近似 nonlinear distribution。两者都把 posterior 近似为 Gaussian,遇到多峰 contact ambiguity、强非线性或错误 data association 会失效。factor graph/smoothing 可利用一段时间窗重估 past states,但带来 latency 与计算。
6. 机器人常估哪些东西
- floating-base pose/velocity 与 IMU bias;
- joint velocity、motor/link side state 与 elastic deflection;
- foot contact state、ground normal、contact force;
- camera–IMU extrinsics、clock offset;
- payload、friction 等慢变参数。
contact-aided estimation 把“接触足相对世界不动”当 pseudo-measurement;一旦 foot slip,这个 assumption 会把错误注入 base estimate。
7. 时间同步比公式更先
sensor timestamp、actuator command 生效时间和 estimator clock 必须统一。10 ms 的未补偿延迟在高速运动中会表现成固定 innovation 和假 velocity bias。实践需 buffer、interpolation、out-of-sequence handling,并记录采样时间而非只记录接收时间。
8. Estimator 健康指标
| 指标 | 异常含义 |
|---|---|
| innovation mean | 持续非零通常是 model/sensor bias |
| innovation covariance | 与预测 S 不符说明 Q/R 或模型错 |
| Mahalanobis distance / rejection rate | outlier、association 或 covariance 过小 |
| P 的 eigenvalues | 不确定性是否发散或虚假过度自信 |
| latency / dropped messages | 时序健康,而非估计公式本身 |
9. 标量 Kalman filter 走一遍
例 1:state prediction
上次位置 2.0 m、速度 0.5 m/s,dt=0.2 s,常速模型预测位置 2+0.5×0.2=2.1 m。
例 2:covariance prediction
简化标量 P=0.4、A=1、process noise Q=0.1,则 P_minus=1×0.4×1+0.1=0.5。
例 3:gain 与更新
Measurement noise R=0.25,K=0.5/(0.5+0.25)=2/3。测量 z=2.4,innovation=0.3,更新 state=2.1+(2/3)×0.3=2.3。
例 4:更新后不确定性
P_plus=(1−K)P_minus=(1/3)×0.5=0.1667。若 R 变大,K 会变小,估计更相信模型。
Kalman filter 只在 linear-Gaussian assumptions 下是最优 estimator;EKF 的 covariance 也可能不一致。低噪声输出不等于低误差,过度自信且平滑的错误 estimate 对 feedback 更危险。
自测
1. innovation 是什么?
当前 measurement 与基于 prior estimate 的预测 measurement 之差,是 update 的新信息。
2. 增大 process Q 有什么直觉效果?
prediction covariance 增大,filter 更少相信模型、更快接受新 measurement。
3. foot-contact pseudo-measurement 何时危险?
足底实际滑动、接触误判或地面变形时,“足固定”假设错误。
学习资料
MIT Underactuated Robotics 的 State Estimation从 observers 推到 Kalman filter,并延伸到 nonlinear 与 smoothing 方法。