LARVIO代码学习以及基本框架

本文介绍了LARVIO(基于MSCKF的VIO实现)的改进,包括引入Hybrid EKF、在线IMU标定、静态与动态初始化策略、ORB特征点优化和ZUPT应用。通过分析System.cpp、ImageProcessor.cpp和LarVio.cpp的主要功能,揭示了在动态初始化中存在的时间对齐问题,并提出了修复方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LARVIO代码学习以及基本框架
最近由于项目原因,对MSCKF进行了一定的研究,在其基础上进行开发,但是17年开源的代码不管是初始化还是后期跟踪、悬浮等问题,均为解决,在20年3月份qxc开源了LARVIO(https://github.com/PetWorm/LARVIO),基于MSCKF基本框架开发的一个可使用版本的VIO。
在传统的MSCKF的基础上其主要做了以下改进:
1、引入Hybrid EKF;
2、在线对IMU进行标定;
3、初始化部分:静态初始化、动态初始化,其中静态初始化采用视觉来判断是否存在移动,动态初始化为借鉴VINS初始化模块;
4、在视觉前端对特征点跟踪过程中,添加了ORB描述子剔除策略,提高特征点精度;
5、采用ZUPT(零速校正)应对静态、悬浮情况;
等等。。。。。。。。。。。。。。。。。。
下面我们来看程序,程序主要有三个主程序:System.cpp、ImageProcessor.cpp、LarVio.cpp ,其中System.cpp为程序主框架,负责系统参数初始化(不包括SLAM初始化)等;ImageProcessor.cpp主要为视觉前端,特征点的跟踪剔除等功能;LarVio.cpp为滤波跟踪,包括系统初始化、IMU预计分、添加特征点、扩充状态量、ZUPT校正、管理跟踪特征点等功能;
首先来看System.cpp;主要程序流程如下所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值