VINS fusion软件架构分析(2)---- 从参数文件读取参数

2023-05-16

1. 参数配置文件

VINS是利用参数文件yaml统一管理重要的参数,主要分为两个参数配置文件,如下图:

  1. 普通参数配置文件,如euroc_mono_imu_config.yaml
  2. 相机模型参数配置文件,如cam0_pinhole.yaml
    普通参数配置文件中会设置要调用的相机模型参数配置文件的名字,从而决定使用哪个相机模型参数配置文件
    在这里插入图片描述

2. 程序中如何读取参数文件

在main函数中,读取参数分两步:
第一步, 利用readParameters(config_file)先把参数文件读进去
第二步,利用estimator.setParameter()把读到的参数设置到位姿估计器中。
在这里插入图片描述

在这里插入图片描述

2.1 readParameters:读入参数

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

2.2 estimator.setParameter(): 设置参数到位姿估计器中

在生成位姿估计器中,也会生成来和特征点相关性很强的两个对象:

  • 特征点管理器 f_manager
  • 特征点跟踪器 featureTracker

在这里插入图片描述在这里插入图片描述

2.2.1 配置特征点管理器 f_manager.setRic()

为什么只传递了旋转外参ric??
在这里插入图片描述

2.2.2 配置特征点跟踪器 featureTracker.readIntrinsicParameter(CAM_NAMES)

功能:readIntrinsicParameter()调用相机工厂CameraFactory中的generateCameraFromYamlFile()来生成相机模型,生成的相机模型是用共享指针的方式读取的。
在这里插入图片描述
generateCameraFromYamlFile

2.2.2.1 CameraFactory::instance()

功能:CameraFactory::instance()返回一个相机工厂类的共享指针m_instance
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

2.2.2.1 generateCameraFromYamlFile()

功能:调用相机工厂类的共享指针m_instance,用他的成员函数generateCameraFromYamlFile()读取相机模型参数配置文件中的参数,最终生成对应的相机模型。

在generateCameraFromYamlFile(),当选择好需要生成的相机模型的名字后,会通过三步完成相机模型的参数配置:

  1. 生成用于存储相机参数的中间变量params
  2. 把相机模型参数配置文件中的参数存入中间变量params
  3. 中间变量params存入相机模型的参数中,从而完成相机模型参数的配置
    在这里插入图片描述在这里插入图片描述

2.2.2.1.1 camera->getParameters( )

功能:生成用于存储相机参数的相机参数对象(中间变量params)
在这里插入图片描述在这里插入图片描述

2.2.2.1.2 params.readFromYamlFile( filename )

功能:把相机模型参数配置文件中的参数存入中间变量params
在这里插入图片描述

2.2.2.1.3 amera->setParameters( params )

功能:中间变量params存入相机模型的参数中,从而完成相机模型参数的配置
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VINS fusion软件架构分析(2)---- 从参数文件读取参数 的相关文章

  • VINS - Fusion GPS/VIO 融合 二、数据融合

    https zhuanlan zhihu com p 75492883 一 简介 源代码 xff1a VINS Fusion 数据集 xff1a KITTI 数据 程序入口 xff1a globalOptNode cpp 二 程序解读 2
  • 【SLAM】VINS-MONO解析——前端

    各个部分的讲解如下链接 xff1a SLAM VINS MONO解析 综述 SLAM VINS MONO解析 feature tracker SLAM VINS MONO解析 IMU预积分 SLAM VINS MONO解析 vins est
  • 【SLAM】VINS-MONO解析——对vins-mono的一点小改动

    vins mono刷了三遍 xff0c 手写vio刷了两遍 xff0c SLAM十四讲刷了两三遍 xff0c 从一开始完全看不懂是啥 xff0c 不知道什么是SLAM xff0c 什么是VIO xff0c 什么是VINS xff0c 什么是
  • 【学习SLAM】vins笔记

    VINS ROS source catkin ws devel setup bash 3 1 1 Open three terminals launch the vins estimator rviz and play the bag fi
  • VINS技术路线与代码详解

    VINS技术路线 写在前面 xff1a 本文整和自己的思路 xff0c 希望对学习VINS或者VIO的同学有所帮助 xff0c 如果你觉得文章写的对你的理解有一点帮助 xff0c 可以推荐给周围的小伙伴们 xff0c 当然 xff0c 如果
  • VINS on RealSense D435i

    关于Realsense D435i运行VINS系列 前言 在SLAM中 xff0c 主要是以激光SLAM和视觉SLAM为主 xff0c 激光雷达直接可以获取三维点云坐标信息 xff0c 所以激光SLAM会比视觉SLAM稳定许多 xff0c
  • vins位姿图优化

    我们 的滑动窗口和边缘化方案限制了计算的复杂性 xff0c 但也给系统带来了累积漂移 更确切地说 xff0c 漂移发生在全局三维位置 x y z 和围绕重力方向的旋转 yaw 为了消除漂移 xff0c 提出了一种与单目VIO无缝集成的紧耦合
  • VINS-Fusion跑kitti stereo及stereo+GPS数据

    Stereo source vfusion devel setup bash roslaunch vins vins rviz launch source vfusion devel setup bash rosrun loop fusio
  • NVIDIA Jetson Xavier NX部署VINS-fusion-GPU

    组内大佬师兄今天抽出时间总结了一篇博客 xff0c 主要内容是 xff1a 把在阿木P450无人机上 xff0c 对自带的NVIDIA Jetson Xavier NX边缘计算机部署VINS fusion GPU教程 xff0c 并进行实验
  • 在ubuntu20.04上配置VINS_Fusion(亲测有效,一应俱全)

    最近在做科研训练的时候配置了HKUST Aerial Robotics实验室的VINS Fusion代码项目 xff0c 经历了一些编译报错的问题 xff0c 在网上查找的时候博客内容良莠不齐 xff0c 且实质针对性意见不多 xff0c
  • NVIDIA Jetson Xavier NX部署VINS-fusion-GPU

    NVIDIA Jetson Xavier NX部署VINS fusion GPU 一 环境配置 xff08 Ubuntu 18 04 xff09 1 Cuda 10 2的安装 span class token function sudo s
  • VINS-FUSION-GPU在jetson nx上的实现

    需要安装经过修改的Ubuntu18系统 https span class token operator span span class token comment developer nvidia com zh cn embedded do
  • VINS-Mono论文笔记(中)

    VINS Mono论文笔记 中 前言1 初始化过程1 1 视觉重构1 2 视觉惯性联合 2 紧耦合的单目VIO系统2 1 公式2 2 imu残差2 3 视觉残差2 4 边缘化残差2 5 针对相机实时帧率的纯运动视觉惯性状态估计器2 6 im
  • VINS-Mono学习(二)——松耦合初始化

    初始化 xff1a 如何当好一个红娘 xff1f 图解SfM 视觉和IMU的羁绊 怎么知道发生了闭环 xff1f 位姿图优化与滑窗优化都为哪般 xff1f 闭环优化 xff1a 拉扯橡皮条 整体初始化流程如下 xff1a 1 SFM纯视觉估
  • VINS-Mono代码解读——视觉跟踪 feature_trackers

    前言 本文主要介绍VINS的视觉处理前端的视觉跟踪模块 xff08 feature trackers xff09 论文第四章A节 xff08 IV MEASUREMENT PREPROCESSING A Vision Processing
  • CLR 何时尝试加载引用的程序集?

    我想编写一个小型安装程序应用程序来安装网站并创建 IIS 虚拟目录 该应用程序应在 Windows XP Server 2003 IIS 6 以及 Vista 2008 IIS 7 上运行 问题是 对于 IIS 6 我们通过调用 WMI M
  • 如何解决:自定义 MSBuild 任务需要在 AppBase 外部进行组装

    我有一个自定义任务 想要在构建 C 项目时执行 此任务位于 MyTask dll 中 它引用另一个程序集 MyCommon DLL 问题是 MyCommon dll 相对于 MyTask dll 位于 Common MyCommon dll
  • fusion 能看穿新型包装吗?

    Given newtype MyVec MyVec unVec Data Vector deriving Functor etc 这将创建 类似于 instance Functor MyVec where fmap f MyVec Data
  • 从 .Net v4.0 程序集链接到 .Net v2.0 程序集似乎也链接(和别名)mscorlib v2.0。为什么?

    我有一个 Net 程序集 它导入与 v2 0 运行时链接的程序集 我遇到的问题是 当我尝试在程序集上运行一些测试时 Fusion 尝试加载依赖程序集的错误版本 查看程序集清单后 我明白了原因 错误的版本FSharp Core已连接 在我的构
  • TypeLoadException 说“没有实现”,但它已实现

    我的测试机器上有一个非常奇怪的错误 错误是 System TypeLoadException Method SetShort in type DummyItem from assembly ActiveViewers does not ha

随机推荐