最近在做一个无人机项目,被磁罗盘校准折腾了好几天。趁着周末把这块知识整理一下,顺便记录下踩过的坑。
前言
做过飞控或者机器人导航的朋友应该都知道,惯性导航系统(INS)是整个姿态估计的核心。但单靠IMU做航向估计会有累积误差,这时候就需要磁罗盘来提供绝对航向参考。问题是,磁罗盘这东西特别"娇气",周围有点铁磁性材料就会被干扰,必须做好校准才能用。
本文会从底层原理讲起,然后给出可以直接跑的代码。
一、惯性导航基础
1.1 IMU传感器组成
一个典型的9轴IMU包含三类传感器:
| 传感器 | 测量物理量 | 单位 | 用途 |
|---|---|---|---|
| 加速度计 | 比力(加速度+重力) | m/s² 或 g | 估计俯仰角、横滚角 |
| 陀螺仪 | 角速度 | rad/s 或 °/s | 短期姿态积分 |
| 磁力计 | 磁场强度 | uT 或 Gauss | 估计航向角 |