IMU惯导相关开源项目整理

这篇文章主要是整理一下我知道、或者用过的惯导相关的比较好的开源项目,包括了:

  • 武汉大学i2Nav团队的KF-GINS(组合导航)

  • PX4 (组合导航、AHRS,偏工程应用)

  • 西工大严恭敏教授的PSINS工具箱 (组合导航,偏算法仿真)

  • xioTechnologies公司的开源项目 (AHRS,3D图形显示界面)

  • Aceinna公司的开源项目 (组合导航,AHRS,偏算法仿真)

  • 香港科技科技大学的VINS (SLAM, GNSS-视觉-惯性)

好的开源项目让我们站在巨人的肩膀上,感谢开源作者们的无私,也欢迎各位读者分享其他优秀的开源项目,我们一起学习,共同进步。

一、KF-GINS(组合导航)

作者:武汉大学i2Nav团队

地址:https://github.com/i2Nav-WHU/KF-GINS

开发语言:C++

最新版本:活跃更新

功能:

  • 扩展卡尔曼滤波架构(误差状态向量)的GNSS/INS松组合算法,包括IMU误差补偿、惯性导航解算、Kalman滤波、误差反馈等环节
  • 采用21维系统误差状态,包括位置误差、速度误差、姿态误差、IMU零偏误差、IMU比例因子误差
  • 姿态误差采用Phi角模型,速度、位置误差定义在导航坐标系下
  • 惯性导航解算基于线性变化假设的双子样机械编排算法,补偿了姿态圆锥效应、速度的旋转效应和划桨效应

二、PX4 (组合导航、AHRS,偏工程应用)

作者:PX4 Autopilot团队

地址:https://github.com/PX4/PX4-ECL, https://github.com/PX4/PX4-Autopilot

开发语言:C++, matlab, python

最新版本:活跃更新

功能:PX4团队的开源代码中包括了飞控整套软件,我想国内很多无人机公司、高校研究也是从这套代码开始做起。

  • 由于软件是直接针对嵌入式系统,使用了C++开发,所以能够非常快速地进行工程应用。相比其他用于仿真的开源项目,解决了很多实时应用中的问题。
  • 对我来说,我主要还是感兴趣其中的导航算法。PX4 ECL中的EKF算法,支持融合IMU、GPS、磁力计、气压高度计、视觉里程计等传感器,相关的模型推导解析可以参见PX4 EKF中的多传感器融合方法。同时也有相关的matlab仿真代码,可以快速用于进行仿真试验。
  • PX4-Autopilot也包括了相比于EKF计算量更小,更简单的AHRS算法,相关模型推导、解析可以参见PX4中的mahony姿态算法解析。

三、PSINS工具箱 (组合导航,偏算法仿真)

作者:西工大严恭敏教授

地址:www.psins.org.cn

开发语言:matlab, C

最新版本:活跃更新

功能:

  • PSINS工具箱主要用于捷联惯导的算法验证开发,包括轨迹仿真、惯组标定、初始对准、惯导解算、组合导航卡尔曼滤波。
  • 工具箱主要是matlab开发,适用于做算法仿真,而非工程应用,里面的大部分算法可以配合手册或者严老师的论文看。
  • 我对PSINS的初步体验可以参考博客《PSINS开源代码初体验——航迹仿真与组合导航》,对轨迹仿真模块的理解可以参见《关于PSINS运动轨迹仿真模块的理解和思考》。C语言的版本我暂时没有仔细阅读过。

四、 xioTechnologies公司 (AHRS,3D图形显示界面)

作者:xioTechnologies公司,主要产品是IMU

地址:https://github.com/xioTechnologies

开发语言:matlab, C#

最新版本:保持更新

功能:包括AHRS算法和3D界面

  • 开源项目以AHRS算法为主,在之前的博客AHRS互补滤波(Mahony)算法及开源代码中也进行过介绍。我感觉开源出来的算法比较简单,主要用于了解核心思想,该公司实际产品中的算法应该会有更加复杂的处理。
  • 它最有特色的开源项目我觉得是它的3D图形展示界面,如下图所示,基本上改个接口就可以自己用起来,做个非常直观的动态demo。我之前自己玩过一段时间,感觉挺有趣。

五、Aceinna公司 (组合导航,AHRS,偏算法仿真)

作者:Aceinna 新纳传感公司,主要产品是IMU,AHRS,惯导

地址:https://github.com/Aceinna/gnss-ins-sim

开发语言:python

最新版本:保持更新

功能:GNSS/INS组合导航仿真项目,可以生成参考轨迹以及传感器输出(IMU、GPS、里程计、磁力计),并运行组合导航算法生成结果。不过我印象中这是个半开源的项目,核心的组合导航算法被封装成库进行调用。我个人觉得里面生成轨迹、AHRS、传感器标定的demo还是可以看看。

六、VINS (SLAM, GNSS-视觉-惯性)

作者:香港科技大学

地址:https://github.com/HKUST-Aerial-Robotics

开发语言:C++

最新版本:活跃更新

功能:主要是SLAM相关的融合,采用的不是传统的EKF算法,而是基于因子图的算法。因为SLAM目前不是我的研究方向,EKF也还是当前主流的融合方法,所以我还没有花时间阅读它的相关算法和论文。不过该开源项目非常出名,之后有时间可能会拜读。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注