三维复合导航技术:卡尔曼滤波与ESKF算法对比的MATLAB实现
三维组合导航的老问题,用卡尔曼滤波和ESKF玩出点新花样的 MATLAB 程序,挺有意思的。两种滤波方法对比得比较清楚,尤其是状态更新那块,写得还挺直观,变量命名也蛮规范,改起来省事。
滤波过程的代码结构还不错,predict
和update
函数分开写的,逻辑挺清晰。你要是想跑一下自己的 IMU 数据,改个传感器模型基本就能用,响应也快,不容易卡。
模型里用了误差状态卡尔曼滤波(ESKF),比起传统 KF 更适合搞 IMU+GPS 这种组合导航。尤其在姿态更新上,得更稳,对陀螺漂移也更有弹性。你要是搞自动驾驶、机器人导航那一块,挺值得看下的。
不过要注意哦,MATLAB 自带的quatmultiply
这些函数用了不少,环境版本太低跑不起来。建议用 R2020b 往后的版本,省得调环境调到吐血。
原文链接在这儿:基于卡尔曼滤波和 eskf 滤波的三维组合导航算法及 MATLAB 源码,有空你可以下载看看,代码量不大,跑一遍快熟。
如果你正好在弄三维导航建模,或者手头有 IMU/GPS 组合数据想试滤波算法的,拿来做参考挺合适。
下载地址
用户评论