一、航向确定概述
1.1 什么是航向角
航向角,说白了就是你的设备「脑袋」朝哪个方向。我习惯用0°到360°来表示,0°是正北,90°是正东,以此类推。
在嵌入式系统里,航向角通常用yaw(偏航角)来表示。你想想看,无人机在空中悬停,机器人在地面移动,汽车在道路上行驶——它们都需要知道自己面朝哪个方向。
我个人做项目时,最常用的航向角定义是:以地理北极为参考,顺时针旋转的角度。这个定义简单直观,也好跟GPS数据对齐。
核心公式:航向角 ψ = atan2(mag_y, mag_x) + 磁偏角修正
其中 mag_x、mag_y 是磁力计在水平面上的分量。
1.2 航向确定的应用场景
航向确定不是花架子,它在实际项目中到处都是。我挑三个最常见的场景说说。
无人机
无人机飞控里,航向角是基础中的基础。没有准确的航向,GPS导航就是瞎指挥。我记得有一次调试四旋翼,磁力计没校准好,飞机在天上画圈圈——嗯,那画面挺尴尬的。
- 起飞前需要确定初始航向
- 飞行中需要实时更新航向
- 返航时航向偏差不能超过5°
机器人
室内机器人更依赖航向角。GPS信号弱的时候,全靠磁力计和IMU撑着。我之前做过一个扫地机器人项目,磁力计受电机干扰严重,航向角跳得跟心电图似的。
- SLAM建图需要航向约束
- 路径规划依赖航向连续性
- 避障时航向突变要平滑处理
自动驾驶
自动驾驶对航向角的要求最苛刻。高速行驶时,1°的航向偏差,100米外就偏了1.7米。这可不是闹着玩的。
- 车道保持需要高精度航向
- GPS信号丢失时靠航向推算
- 多传感器融合时航向是核心状态量
1.3 航向确定的挑战
做航向确定这么多年,我踩过的坑比走过的路还多。这里说两个最头疼的。
磁干扰
磁力计这东西,说白了就是个「娇气包」。电机、电源线、甚至旁边的铁架子都能让它读数乱跳。
避坑指南:我曾经在一个机器人项目里,磁力计装在电机旁边,读数偏差达到30°。后来把磁力计移到远离电机的位置,又加了软铁校准,才把误差压到3°以内。
常见的磁干扰来源:
- 电机和驱动器(硬铁干扰)
- PCB走线和电源(软铁干扰)
- 周围金属结构(环境干扰)
怎么处理?我一般用两步走:
- 硬铁校准:找干扰源,做偏移补偿
- 软铁校准:做椭圆拟合,修正比例因子
GPS信号丢失
GPS信号丢失是家常便饭。隧道、高楼、树荫下,说没就没。这时候航向角全靠磁力计和IMU撑着。
我的经验:GPS信号丢失后,航向角会随时间漂移。磁力计提供绝对参考,但受干扰影响大;IMU提供相对变化,但积分会累积误差。两者互补才是正道。
信号丢失时的应对策略:
- 短时丢失(<5秒):靠IMU积分维持
- 中时丢失(5-30秒):磁力计+IMU融合
- 长时丢失(>30秒):需要其他辅助手段
1.4 小结
航向确定这件事,说简单也简单,说复杂也复杂。简单的是原理——一个atan2就能算出来。复杂的是工程——干扰、噪声、信号丢失,每个问题都能让你折腾好几天。
我个人觉得,做航向确定最重要的是理解传感器的「脾气」。磁力计怕干扰,GPS怕遮挡,IMU怕漂移。摸清它们的性格,才能做好融合。
下一章,我会详细讲磁力计的工作原理和校准方法。到时候咱们聊聊怎么把那个「娇气包」调教得服服帖帖。