# IMU静止30秒漂移20米，如何融合GPS里程计

> 原文链接：https://robotics.hellobike.com/pitfalls/2020-08-07-robotics-se-382
> 频道：pitfalls | 更新日期：2020-08-07 | 标签：auto, stackexchange, sensors, kalman-filter, sensor-fusion
> 核心摘要：普通卡尔曼滤波不适合该非线性定位问题，建议用EKF并把IMU/陀螺偏置纳入状态估计。

# IMU静止30秒漂移20米，如何融合GPS里程计

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[How to fuse linear and angular data from sensors?](https://robotics.stackexchange.com/questions/382/how-to-fuse-linear-and-angular-data-from-sensors)（Robotics Stack Exchange #382）

**状态**：已解决

## 问题

户外履带/差速机器人用IMU加速度做卡尔曼滤波估计`x、y`位置和速度，但IMU质量一般，静止约30秒会漂移约20米；提问者不知如何融合IMU姿态、轮编码器和GPS。

## 环境

SLAM 建图与定位系统 · 状态估计 / EKF 滤波器

## 解决办法

1. 若目标包含建图，应使用完整的`SLAM`算法，因为状态估计只是其中一部分。
2. 定位状态转移含角速度和角加速度，非线性，不应使用普通线性卡尔曼滤波；常用`Extended Kalman Filter`（`EKF`）。
3. 将位置、速度、姿态、角速度等作为同一个滤波器的输出/状态，并把IMU和陀螺的非平稳偏置`b`加入状态，否则估计会发散。
4. 对差速机器人，可用里程计作为控制结果输入；IMU和GPS用于帮助修正打滑等误差。
5. 可参考已有定位和`SLAM`实现，答案提到`ROS`中有相关实现，避免从零重复实现。

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

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #382：How to fuse linear and angular data from sensors?](https://robotics.stackexchange.com/questions/382/how-to-fuse-linear-and-angular-data-from-sensors)