# 实现 ESKF 时协方差传播公式混淆

> 原文链接：https://robotics.hellobike.com/pitfalls/2019-11-18-robotics-se-19714
> 频道：pitfalls | 更新日期：2019-11-18 | 标签：auto, stackexchange, kalman-filter, ekf, sensor-fusion, filter
> 核心摘要：实现 Markley ESKF 时公式和状态设计不确定，最终放弃陀螺漂移并使用经典协方差传播。

# 实现 ESKF 时协方差传播公式混淆

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Implementing ESKF](https://robotics.stackexchange.com/questions/19714/implementing-eskf)（Robotics Stack Exchange #19714）

**状态**：已解决

## 问题

提问者实现 Multiplicative Kalman Filter/ESKF 时，不确定 Markley 两版论文中公式差异，以及应使用 `P = FPF^T + GQG^T` 还是 `P = FP + PF^T + GQG^T`；同时想把角速度和加速度加入状态。

## 环境

状态估计 / EKF 滤波器

## 解决办法

1. 不要使用提问中的 Python 代码，作者表示其中有缺陷。
2. 最终放弃估计 gyro drift，作者认为仅用一个陀螺仪时该量不可观。
3. 协方差传播改用经典形式 `P_{k+1} = FP_kF^T + GQG^T`。
4. 可参考作者放到 GitHub 的 C++ 源码。

原问题作者：hobbeshunter；采纳答案作者：hobbeshunter。原内容依 CC BY-SA 4.0 授权，本页摘要同样依 CC BY-SA 4.0 授权。
:::

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #19714：Implementing ESKF](https://robotics.stackexchange.com/questions/19714/implementing-eskf)