基于IMU和GPS的ESKF融合组合导航C语言、卡尔曼滤波、数据融合(复现)
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。
🍎 往期回顾关注个人主页:Matlab科研工作室
👇 关注我领取海量matlab电子书和数学建模资料
🍊个人信条:格物致知,完整Matlab代码获取及仿真咨询内容私信。
🔥 内容介绍
一、IMU 与 GPS 导航技术特点
1. IMU(惯性测量单元)
工作原理:IMU 主要由加速度计和陀螺仪构成。加速度计依据牛顿第二定律,测量物体在三维空间中沿各个轴向的加速度。比如在汽车行驶过程中,加速度计能感知车辆加速、减速或转弯时沿 X、Y、Z 轴方向的加速度变化。陀螺仪则基于角动量守恒原理,测量物体绕三个正交轴的角速度,像无人机在空中飞行时,陀螺仪可实时监测其翻滚、俯仰和偏航的角速度。
特性:IMU 具有高采样频率的优势,通常可达几百甚至上千赫兹,能够实时、高频地获取载体的运动状态信息。然而,它存在误差随时间累积的问题。加速度计的零偏误差会使速度和位置的积分计算逐渐偏离真实值,陀螺仪的漂移误差会导致姿态角的解算出现偏差,长时间运行后导航精度会显著下降。
2. GPS(全球定位系统)
工作原理:GPS 系统依赖分布在太空中的多颗卫星。每颗卫星持续向地球发射包含自身位置和精确时间信息的信号。GPS 接收机通过接收至少四颗卫星的信号,测量信号从卫星传播到接收机的时间,乘以光速得到接收机与卫星之间的距离(伪距)。基于这些伪距信息,运用特定算法解算出接收机在地球坐标系中的精确位置(经度、纬度、高度)和速度。
特性:GPS 能提供高精度的绝对位置和速度信息,在开阔环境下定位精度可达数米。但它的信号易受环境因素影响,如在高楼林立的城市中,信号可能被建筑物遮挡导致失锁;在恶劣天气条件下,如暴雨、沙尘等,信号质量会下降。而且 GPS 的采样频率相对较低,一般在 1Hz - 10Hz,无法满足对实时性要求极高的应用场景。
二、组合导航的必要性
1. 优势互补
IMU 和 GPS 各有优劣,将二者结合可实现优势互补。IMU 的高采样频率可弥补 GPS 采样频率低的缺陷,提供连续的运动信息,在 GPS 信号中断时维持导航系统的运行。例如,在隧道中 GPS 信号丢失,IMU 能根据之前积累的信息继续推算载体的位置和姿态。而 GPS 的高精度定位信息可用于校正 IMU 随时间累积的误差,提升导航系统的长期稳定性和精度。当 GPS 信号恢复时,可利用其精确的位置和速度信息修正 IMU 的偏差,使导航系统恢复高精度工作状态。
2. 增强可靠性
在复杂多变的实际环境中,单一导航技术往往难以稳定工作。如在城市峡谷、茂密森林等环境中,GPS 信号容易受到阻挡而失效,此时 IMU 可保证导航系统的连续性。反之,当 IMU 因长时间工作出现较大误差或发生故障时,GPS 仍能提供相对可靠的位置信息。通过组合导航,系统的可靠性大幅提高,能更好地适应各种复杂场景的需求。
三、ESKF(扩展状态卡尔曼滤波器)融合原理
1. 卡尔曼滤波基础
卡尔曼滤波器是一种用于线性系统且噪声服从高斯分布的最优递推估计算法。它主要由预测和更新两个关键步骤构成。在预测步骤中,依据上一时刻的状态估计值以及系统的状态转移方程,对当前时刻的状态进行预测。例如,已知上一时刻车辆的位置和速度,通过状态转移方程可预测当前时刻车辆的位置和速度。在更新步骤中,利用当前时刻的观测值以及观测方程,对预测状态进行修正,从而得到更准确的状态估计值。通过不断重复这两个步骤,卡尔曼滤波器能够对系统状态进行实时、准确的估计。
2. ESKF 对非线性系统的扩展
在 IMU 和 GPS 组合导航系统中,系统的状态方程和观测方程通常呈现非线性特性。例如,从 IMU 测量的加速度和角速度推算载体的姿态和位置时,涉及到三角函数等非线性运算。ESKF 通过对非线性系统的状态方程和观测方程在当前估计值处进行线性化处理(借助泰勒级数展开并忽略高阶项),将非线性问题近似转化为线性问题,进而运用卡尔曼滤波的基本框架进行状态估计。
3. 在组合导航中的应用
在基于 IMU 和 GPS 的组合导航中,系统状态一般涵盖载体的位置、速度、姿态等信息。ESKF 利用 IMU 的测量数据进行状态预测。具体来说,通过对 IMU 测量的加速度和角速度进行积分运算,预测载体下一时刻的位置、速度和姿态。同时,利用 GPS 的测量值进行状态更新。将 GPS 提供的位置和速度信息与预测值进行对比,通过计算卡尔曼增益对预测状态进行修正,从而获得更精确的状态估计值。通过持续循环执行预测和更新步骤,ESKF 能够实时、有效地融合 IMU 和 GPS 的信息,为载体提供高精度的导航定位结果。
⛳️ 运行结果
📣 部分代码
🔗 参考文献
🍅往期回顾扫扫下方二维码
- END -
