一套基于扩展卡尔曼滤波的GNSS/INS组合导航系统算法代码

电子说

1.3w人已加入

描述

虽然GNSS/INS松组合算法已经很成熟,但对初学者来说正确实现它仍是不小的挑战。为此,我们开源一套基于扩展卡尔曼滤波的GNSS/INS组合导航算法代码(KF-GINS)。代码结合团队已公开的视频课程、讲义,供初学者入门使用,也可作为基础的GNSS/INS松组合算法研究平台。

随着自动驾驶和智能无人系统的发展,复杂环境下连续准确的定位定姿需求日益增加。在众多的导航定位技术中,全球卫星导航系统(GNSS)和惯性导航系统(INS)具有天然的互补性,因此GNSS/INS组合导航被公认为最经典、使用最广泛的组合导航系统。

GNSS/INS的数据融合算法首先通过INS机械编排实现导航状态的推算,然后通过Kalman滤波将GNSS的定位和测速信息作为观测量对INS推算的导航状态量进行修正。GNSS/INS数据融合的Kalman滤波算法已经很成熟,但涉及惯性导航算法、IMU误差建模、Kalman滤波设计实现等多方面的知识,正确实现组合导航算法对初学者来说仍是不小的挑战。

武汉大学i2Nav团队开源了一套基于扩展卡尔曼滤波的GNSS/INS组合导航系统(EKF-Based GNSS/INSIntegrated Navigation System, KF-GINS)算法代码。这套代码结合团队已公开的视频课程、讲义[1,2],供初学者入门使用,也可作为基础的GNSS/INS松组合算法研究平台。KF-GINS采用C++语言编写,各功能函数和模块相对独立,复用性和可扩展性较强。KF-GINS已上传到GitHub,可通过以下链接获取:

KF-GINS主要特点包括:

扩展卡尔曼滤波(误差状态向量)架构的GNSS/INS松组合算法,包括IMU误差补偿、惯性导航解算、Kalman滤波、误差反馈等环节;

采用21维系统误差状态,包括位置误差、速度误差、姿态误差、IMU零偏误差和IMU比例因子误差;

姿态误差采用Phi角模型,速度、位置误差定义在导航坐标系下;

惯性导航解算采用基于角速度和加速度线性变化假设的双子样机械编排算法,补偿了姿态圆锥效应、速度的旋转效应和划桨效应。

卡尔曼滤波

KF-GINS系统框架

这套代码配套的组合导航测试数据集(包含不同精度等级IMU)可以通过如下链接获取:

https://github.com/i2Nav-WHU/awesome-gins-datasets






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分