# MPU6050 滤波计算 Y 角度值异常

> 原文链接：https://robotics.hellobike.com/pitfalls/2017-08-04-robotics-se-7831
> 频道：pitfalls | 更新日期：2017-08-04 | 标签：auto, stackexchange, kalman-filter
> 核心摘要：MPU6050 的 Kalman 与互补滤波在 Y 角无效，给 gyro_y_scaled 加负号后解决。

# MPU6050 滤波计算 Y 角度值异常

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Complementary and Kalman filter don't work for Y angle](https://robotics.stackexchange.com/questions/7831/complementary-and-kalman-filter-dont-work-for-y-angle)（Robotics Stack Exchange #7831）

**状态**：已解决

## 问题

Python 读取 MPU6050 IMU 数据并用 Kalman、Complementary filter 计算角度时，X 角正常，但 Y 角输出值不合理，两个滤波器都不工作。

## 环境

状态估计 / EKF 滤波器

## 解决办法

1. 将 Y 轴陀螺仪速度计算改为 `gyro_y_scaled = - (self.result_list[5] / self.gyro_scale)`。
2. 原因是 Y 轴速度与角度符号相反；原实现中 `acc_y_angle` 没有负号，而 `self.gyro_y_angle -= gyro_y_scaled * dt` 使用了减号，导致滤波输入方向不一致。

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

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #7831：Complementary and Kalman filter don't work for Y angle](https://robotics.stackexchange.com/questions/7831/complementary-and-kalman-filter-dont-work-for-y-angle)