1.白话 最近开始学习VINS-Mono系统源码,梳理其系统框架及运行原理方便后续自己后续回顾。 2.工程搭建 VINS-Mono的代码路径:GitHub - HKUST-Aerial-Robotics/VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator VINS-Mono的概要介绍我们直接阅读github上README中指定的paper就可以进行了解,无需...
1)判断是否是第一个imu数据的标志,并记录last_imu数据。由于使用的是中值积分,需要用到历史的一个imu。 2)对滑动窗口内每个帧创建预积分对象IntegrationBase对象存入pre_integrations数组当中。 3)当frame_count==0的时候表示滑动窗口中还没有图像帧数据,所以不需要进行预积分,只进行线加速度和角速度初始值的更新。...
本文是对VINS-Mono工程代码分析的第一讲:光流跟踪前端。本讲将分析VINS工程前端光流跟踪部分的代码,说明其工作逻辑。笔者对原工程进行了部分的修改,进行了若干封装与重命名以提高代码可读性,功能与原工程是一致的。 代码地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono 论文地址:https://ieeexplore.ieee.o...
代码地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono 论文地址:https://ieeexplore.ieee.org/document/8421746 论文翻译:https://www.bilibili.com/read/cv14123709 1. 预备知识 首先,我们需要了解VINS工程中对IMU的建模以及VINS论文中四元数求导的方法。 1.1 IMU建模 VINS工程中对IMU的建模只考虑了零偏...
VINS工程:https://github.com/HeYijia/VINS-Course.git基于 VINS-Mono 框架,但不依赖 ROS, Ceres, G2o。这个代码非常基础,目的在于演示仅基于 Eigen 的后端 LM 算法,滑动窗口算法,鲁棒核函数等等 SLAM 优化中常见的算法。The EuRoC MAV Dataset:https://projects.asl.
启动VINS-Mono,使用三个终端分别执行相关操作。接着,介绍Intel RealSense D435i传感器,这款设备在原有基础上集成了博世IMU,适合用于研究VIO及其他SLAM算法。在搭建环境时,需安装Intel RealSense SDK,并通过rs-capture可执行文件进行测试。安装ROS Wrapper: realsense-ros,创建新工程,下载并编译相关包...
VINS-MONO工程改造 这篇是接着前文“主流VIO/VSLAM系统改造与工程化落地”和“关于VIO零速更新(ZUPT)与控制三种约束的工程实践”的,有时候想一出是一出,导致写的东西还是太分散了。 要做VINS改造首先要熟悉VSLAM和数学基础那一堆的东西,前文“关于机器人状态估计(4)-成长路径与能力提升”和相关系列已经详述了,...
1.白话 这一章开始进入后端部分,将分为多个子章节。因为工作主要做的也是后端部分,将记录得比较细致。主要包含1)基于滑窗的非线性优化过程框架及理论推导。 2)imu预积分包括误差动力学传播方程,协方差更新等。 …
由于VINS-Mono工程中在feature_tracker_node.cpp中放置了太多的代码,为了增强代码可读性,笔者将其功能封装到了Frontend类当中,顶层node则如下 #include"frontend.h"intmain(intargc,char**argv){ros::init(argc,argv,"feature_tracker");// 初始化noderos::NodeHandlenh("~");// 初始化NodeHandleros::console:...
本文是对VINS-Mono工程代码分析的第二讲:预积分处理。本讲将完整推导预积分中所有的公式,并找到对应工程实现代码加以说明。 代码地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono 论文地址:https://ieeexplore.ieee.org/document/8421746 论文翻译:https://www.bilibili.com/read/cv14123709 ...