目的和益处
本设计建议解释了如何利用陀螺仪数据更新倾斜测量(翻转和俯仰角)和电子罗盘(偏航角)。还给出了四元数实现,其不存在奇点问题,也称为万向节锁。
优势:
- 对简单的 6 轴 Acc+Mag 数据融合功能进行了增强,此 6 轴融合算法在存在 high-g 运动或磁异常时无法执行。
- 使用 osxMotionFX 库提供的完整数据融合,可减少固件占用空间,请参阅设计支持材料段落中的 Open.MEMS。
- 基本实现简短,可以让最终用户轻松实现定制和增强(osxMotionFX 仅以二进制格式提供,而不是源代码)
- 易于在任意微控制器上使用(osxMotionFX 只能在 STM32 上运行,并且只有在Open.MEMS 许可证服务器发布了适当的许可证时才能运行)。
Euler 角实现说明
第 1 步:基于当前角度 Phi / Theta / Psi 和陀螺仪数据 Wx / Wy / Wz(参见图 1),计算角度导数 Phi' / Theta' / Psi':
翻转角导数:Phi’ = Wx + Wy * Sin(Phi) * Tan(Theta) + Wz * Cos(Phi) * Tan(Theta)
俯仰角导数:Theta’ = Wy * Cos(Phi) – Wz * Sin(Phi)
偏航角导数:Psi’ = Wy * Sin(Phi) / Cos(Theta) + Wz * Cos(Phi) / Cos(Theta)