IMU惯导相关开源项目整理

文章目录

    • KF-GINS(组合导航)
    • PX4 (组合导航、AHRS,偏工程应用)
    • PSINS工具箱 (组合导航,偏算法仿真)
    • xioTechnologies公司 (AHRS,3D图形显示界面)
    • Aceinna公司 (组合导航,AHRS,偏算法仿真)
    • VINS (SLAM, GNSS-视觉-惯性)

之前的博客中对GNSS相关的开源项目进行了整理,感兴趣可以前往阅读( GNSS相关开源项目整理)。这篇博客主要是整理一下我知道、或者用过的惯导相关的比较好的开源项目,这篇博客会一直动态更新。

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

---------------2022.11.14更新----------------------------------

最近几年看到越来越多的高校团队在开源自己的算法,我觉得特别好。其实惯导入门并不简单,有好的教学视频、讲义,配合上好用的代码能够达到事半功倍的效果。有了开源代码,就会有更多的讨论,避免大家闭门造车。我觉得对于高校来说,敢于开源自己的代码,也是一种自信、开放的态度,至少我对敢于开源的学校就有一重滤镜,希望其他学校也能奋起直追。

在2022年10月21日,武汉大学i2Nav团队开源了基于扩展卡尔曼滤波的GNSS/INS组合导航算法代码(KF-GINS)。这套代码结合团队公开的视频、讲义、测试数据,可以作为松组合学习的平台。

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。我之前自己玩过一段时间,感觉挺有趣。
    IMU惯导相关开源项目整理_第1张图片

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也还是当前主流的融合方法,所以我还没有花时间阅读它的相关算法和论文。不过该开源项目非常出名,之后有时间可能会拜读。

你可能感兴趣的:(组合导航,开源)