vins专题

Ubuntu 16.04 下 VINS-Mono 的安装和使用(RealSense ZR300)

Overview 欢迎访问 https://spatial-ai.net/vinsmono-zr300-run.html, 持续更新 本文介绍在 Ubuntu 16.04(ROS Kinetic)的PC平台上使用 RealSense ZR300 的 fisheye camera (FOV: 100x133) + IMU 运行 我对VINS-Mono的改版 cggos/vins_mono_cg。

Ubuntu18.04运行Vins-Fusion

目录 一. 安装ros 1. Installation 2. Environment setup 3. Dependencies for building packages 4. 安装ros与opencv的桥接工具包 5.验证ros是否安装成功 二.  安装eigen 三. 安装opencv 1. 进入下载opencv的根目录 四. 安装ceres 1. 安装ceres依赖项

VINS-Mono 论文解读(IMU预积分残差+Marg边缘化)

目录 VIO引出原因: 融合方案: 本文贡献: 0、总体框架 0.1 数据预处理(IMU预积分见标题1) 0.2 初始化 A.滑动窗口(Sliding Window)纯视觉SfM B. 视觉惯性校准(IMU预积分与视觉结构对齐) 0.3 紧耦合后端非线性优化(IMU约束+视觉约束+闭环约束) A 公式 B IMU残差 C 视觉残差 D 边缘化 Marginalizat

VINS-fusion中的global fusion详解

文章目录 全局优化步骤解释globalOpt.cpp逐行解释Q&A 全局优化步骤解释 这个函数结合了视觉惯性里程计(VIO)和全球定位系统(GPS)数据进行优化。 循环检查新GPS数据:该函数在一个无限循环中运行,不断检查是否有新的GPS数据(newGPS)。如果有,它会进行全局优化。 初始化优化问题:使用Ceres库,创建一个优化问题。设置了线性求解器类型为稀疏的Chol

VINS-MONO拓展1----手写后端求解器,LM3种阻尼因子策略,DogLeg,构建Hessian矩阵

文章目录 0. 目标及思路1. 非线性优化求解器2. 基于VINS-MONO的Marginalization框架构建Hessian矩阵2.1 estimator.cpp移植2.2 solve.cpp/preMakeHessian()2.3 solve.cpp/makeHessian() 3. solve.cpp/solveLinearSystem()求解正规方程4. 更新状态5. 迭代求解6

VINS-MONO代码解读3----vins_estimator(鲁棒初始化部分)

文章目录 0. 前言1. 旋转约束标定旋转外参Rbc1.1 八点法求取relative pose1.2 **旋转约束和旋转residual的构建**1.3 **左乘右乘的构建**1.4 **系数矩阵A的构建**1.5 鲁棒核函数1.6 q c b q_{cb} qcb​ 的求解 2. initialStructure()2.1 check IMU可观性(激励是否足够)2.2 构建并求解gl

VINS-MONO理论学习---紧耦合后端非线性优化

基于滑动窗的紧耦合后端非线性优化:将视觉约束、IMU约束、闭环约束放到一个大的目标函数中进行非线性优化,求解出滑动窗口中所有帧的PVQ、bias等。 在视觉约束和IMU约束中,基本思想是找到优化状态向量,然后通过视觉残差和IMU测量残差分别对状态向量求导,获得视觉和IMU预积分的Jacobian和协方差矩阵。 一、VIO残差函数的构建 1、需要优化的状态向量: 状态向量包括滑动窗口内的所有相

七、VINS-mono 代码解析——紧耦合后端非线性优化 IMU+视觉的残差residual、Jacobian、协方差、基于舒尔补的边缘化

文章目录 前言紧耦合后端非线性优化系统框架一、VIO中的状态向量与代价函数1、需要优化的状态向量:2、目标函数为:二、视觉约束1.视觉重投影误差residual2、优化变量3、Jacobian4、协方差三、IMU约束1、残差:2、优化变量:3、IMU测量残差公式推导4、残差对状态量的Jacobian5、残差对状态量的协方差四、基于舒尔补的边缘化1、论文部分2、基本公式3、舒尔补4、marg后

VINS-Mono 理论详细解读——紧耦合后端非线性优化 IMU+视觉的残差residual、Jacobian、协方差、基于舒尔补的边缘化

预积分和后端优化IMU部分** https://blog.csdn.net/weixin_44580210/article/details/93377806 本讲是VINS最核心部分了,前面经历了 1)视觉跟踪feature_tracker、IMU预积分integrationBase类; 2)初始化中SFM纯视觉估计滑动窗中所有帧的位姿和3D路标点深度、SFM与IMU预积分松耦合对齐求解初始化

VINS-FUSION源码框架及C++知识点总结

VINS-FUSION源码框架及C++知识点总结 VINS-FUSION程序架构前端函数功能解读 后端初始化单目VIO初始化函数功能解读 优化一, sfm二,optimization()1, 添加相机状态变量参数2,加入边缘化先验残差信息(后面有详细介绍)3,IMU预积分残差源码及其数学推导4,视觉重投影误差源码及数学推导5,求解 三,总结四,边缘化留下的先验信息及其代码导读Shur co

VINS-Mono理论学习——后端非线性优化

前言 本文主要介绍VINS状态估计器模块(estimator)在完成了系统初始化后,对视觉与IMU信息进行基于滑动窗口的紧耦合过程中所用到的非线性优化理论。这部分对应论文第六章(VI. TIGHTLY-COUPLED MONOCULAR VIO),并参考了崔博的《VINS论文推导与代码解析》、深蓝学院的VIO课程内容。主要想对目标函数中视觉残差和IMU残差,以及对应的雅可比、协方差进行推导。

SLAM算法VINS-MONO安装运行介绍

说明:把资料放在这里,主要是因为github经常上不去,速度慢。如果网络申通的话大家还是去官网看资料比较方便,这个贴子本身没什么价值。同时这个贴子会持续更新。 这里是安装在Ubuntu18.04,通常是ROS melodic。 Ubuntu20.04上ROS noetic有些小问题,不过都很容易解决。 关于ceres-solver和VINS-mono在Ubuntu20.04上的特别说明

VINS-MONO代码解读5----vins_estimator(marginalization部分)

文章目录 0. 前言1.1 Marginalization Pipiline 1. marg factor构建1.1 变量及维度理解1.2 IMUFactor1.3 ProjectionTdFactor(ProjectionFactor)1.4 MarginalizationFactor( e p e_p ep​推导更新,FEJ解决的问题)1.4.1 先验残差的更新1.4.2 先验Jacob

VINS-MONO阅读记录

VINS是VIO研究中一个相当经典的架构,现在来读一读这篇论文 有一些在阅读过程中自己提出的问题,会慢慢解决掉 Abstract VINS系统由相机和低成本的IMU组成,最大的挑战在于没有直接的距离测量手段,这直接导致了初始化、外部校准、非线性优化上的问题。VINS则是一个鲁棒的,多种用途的系统。故事从估计器的初始化和失败恢复讲起。使用紧耦合的,基于非线性优化的方法来获得高准确度的视觉惯性里程

Realsence D455标定并运行Vins-Fusion

文章目录 一、双目相机标定1. 标定板准备1.1 打印标定板1.2 标定板信息原始pdf的格子参数是:调整后的格子参数是: 2. 左右目相机数据准备2.1 修改rs_camera.launch内容2.2 关闭结构光2.3 可视化双目图像2.4 修改相机播包帧数2.5 录制数据 3. kalibr 程序标定4. kalibr 标定结果 二、IMU标定1. 标定工具准备1.1 code_uti

Vins-Moon配准运行

Vins-Moon运行 源码地址电脑配置环境配置编译适配Kitti数据集运行结果Euroc数据集kitti数据集 evo评估(KITTI数据)输出轨迹(tum格式)结果 源码地址 源码链接:https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git 电脑配置 Ubuntu 18.04 + ROS Melodic + GTSA

realsense d455 运行vins-mono,vins-rgbd

GitHub - STAR-Center/VINS-RGBD https://github.com/HKUST-Aerial-Robotics/VINS-Mono 读取realsense的内外参,也可以自己标定。 保证realsense-view安装成功,读取方法: 1.rs-enumerate-devices -c > realsense.txt Extrinsic from "Col

在农业数据集上运行VINS-fusion

文章目录 配置VINS-fusion环境下载数据集单目+IMU双目+IMU 配置VINS-fusion环境 参考这篇博客。 下载数据集 github: https://github.com/ucr-robotics/citrus-farm-dataset 官方给出了两种网盘下载方式 谷歌网盘: https://drive.google.com/drive/folders/12

在docker中运行vins-fusion

文章目录 拉取镜像创建容器在vscode中运行代码运行效果 拉取镜像 拉取自带数据集的镜像 docker pull jianchong/vins-fusion 创建容器 docker run -it \--privileged=true \--network host \-e

VINS-fusion 跑通Euroc、TUM、KITTI数据集,以及评估工具EVO的下载和使用

零、EVO工具获取与使用 ubuntu20.04中python版本是3.x,因此对应的pip工具会变成pip3,可以先参考如下链接查看自己系统的python和pip版本。 Ubuntu20.04安装evo(详细教程)【亲测有效】_ubantu20.04 evo_学无止境的小龟的博客-CSDN博客 再调用如下命令对evo工具进行安装 pip3 install evo --upgrade --

VINS学习笔记之一: 开篇,从vio标定开始

今天是庚子鼠年腊月二十九,也是今年的最后一个工作日,大部分同事都回家了或在回家的路上了,无心干活,那就干点自己喜欢的事情吧 :) 前段时间乘着年底不忙整理了下VIO以及在线标定相关的论文和开源代码,下载好了著名的VINS-Mono,一直没有精力开始学习的进程,正好今天给即将到来的辛丑牛年做个学习开篇吧,给来年的学习进步开个好彩头,哈哈 VINS的demo是从Euroc数据集开始的,config

ROS kinetic 运行s_msckf和 vins_fusion

s_msckf:采用多状态约束的双目vio系统 !!!注意imuCallback:接收IMU数据,将IMU数据存到imu_msg_buffer中,这里只会利用开头200帧IMU数据进行静止初始化,不做其他处理。featureCallback:接收双目特征,进行后端处理。利用IMU进行EKF Propagation,利用双目特征进行EKF Update。静止初始化(initializeGravi

ZED2相机运行VINS-Fusion和ORB-SLAM3

ZED2相机运行VINS-Fusion和ORB-SLAM3 1 关于zed2标定2 运行VINS-Fusion3 运行ORB-SLAM3 1 关于zed2标定 我最开始被zed2的标定问题折磨了好久,用kalibr工具标定出来的结果始终不好,投影误差甚至达到了5-10个像素。 后来我在github上发现有人问了这么一个问题: https://github.com/stereol

VINS-MONO拓展1----手写后端求解器,LM3种阻尼因子策略,DogLeg,构建Hessian矩阵

文章目录 0. 目标及思路1. 非线性优化求解器2. 基于VINS-MONO的Marginalization框架构建Hessian矩阵2.1 estimator.cpp移植2.2 solve.cpp/preMakeHessian()2.3 solve.cpp/makeHessian() 3. solve.cpp/solveLinearSystem()求解正规方程4. 更新状态5. 迭代求解6

VINS-MONO拓展2----更快地makeHessian矩阵

1. 目标 完成大作业T2 作业提示: 多线程方法主要包括以下几种(参考博客): MPI(多主机多线程开发),OpenMP(为单主机多线程开发而设计)SSE(主要增强CPU浮点运算的能力)CUDAStream processing, 之前已经了解过std::thread和pthread,拓展1中makeHessian使用的是p_thread,这次正好用这几种方法与p_thread进行

超维空间S2无人机使用说明书——21、VINS视觉定位仿真

引言:为了实现室内无人机的定位功能,S系列无人机配置了VINS-FUSION定位环境,主要包含了仿真跑数据集和实际操作部分。为了提前熟悉使用原理,可以先使用仿真环境跑数据集进行学习和理解 硬件:1080P显示器、Jetson orin nano 8g 软件环境:ubuntu20.04+ros-noetic 步骤一:启动VINS和RVIZ roslaunch vins vins_rviz.l