# IMU 欧拉角测量出现角度不连续尖峰

> 原文链接：https://robotics.hellobike.com/pitfalls/2015-10-26-robotics-se-8329
> 频道：pitfalls | 更新日期：2015-10-26 | 标签：auto, stackexchange, sensors, imu, matlab, noise
> 核心摘要：IMU 欧拉角出现不连续尖峰，可用中值滤波、阈值拒绝异常点，或按角度环绕问题处理。

# IMU 欧拉角测量出现角度不连续尖峰

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Filtering IMU angle discontinuities](https://robotics.stackexchange.com/questions/8329/filtering-imu-angle-discontinuities)（Robotics Stack Exchange #8329）

**状态**：已解决

## 问题

从 IMU 测量欧拉角时，即使在无振动环境中也出现角度不连续尖峰；答案认为数据疑似存在约 180 度附近的角度环绕问题。

## 环境

Linux / ROS 机器人软件与控制通用开发环境

## 解决办法

1. 对信号使用中值滤波：用小窗口内样本的中位数替换当前值，MATLAB 可用 `medfilt1` 或 `median`，C++ 需自行实现。
2. 或检查相邻变化量：若 `abs(x[k] - y[k-1]) > threshold`，则拒绝该样本并用上一值，否则保留当前值。
3. 若是角度环绕问题，可先将角度信号加倍，再用 `wrapToPi` 做角度环绕处理，示例中尖峰会消失。

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

## 原始参考来源 (Sources)

- [Robotics Stack Exchange #8329：Filtering IMU angle discontinuities](https://robotics.stackexchange.com/questions/8329/filtering-imu-angle-discontinuities)