第七章——VINS系统初始化

2023-05-16

前言

这一章主要内容是讲的VINS系统初始化的事,内容上还是比较全面丰满的,有一些有疑问的点我之后读了代码会在博客里补上。一句话总结初始化:以优化量与观测值构建残差,提取优化量构成最小二乘问题

内容

1. IMU和相机旋转外参 q b c q_{bc} qbc以及角速度计(陀螺仪)的bias

在这一部分的初始化过程中,我们已知的信息有:

  1. 相机以一定频率采样得到的帧图像(可提取出相机旋转信息)
  2. IMU以一定频率采样得到的角速度值(同样可提取出IMU旋转信息)

旋转外参 q b c q_{bc} qbc我们认为在相机位移过程中是不会改变的,如果 q b c q_{bc} qbc给的准,那么对于每一帧匹配的相机和IMU旋转信息,我们从相机帧k->相机帧k+1->IMU帧k+1,或是从相机帧k->IMU帧k->IMU帧k+1的旋转变换的误差应该是趋向于0的,所以我们构建了如下所示的最小二乘问题求取 q b c q_{bc} qbc
在这里插入图片描述
这里加入了鲁棒核函数,具体鲁棒核函数的构造这里我不截了,说一下思路:以上述误差角进行阈值的判断

同样基于上面的已知信息,在这里我们还多知道一个前提,也就是 q b c q_{bc} qbc,本来是可以精确计算出各个旋转矩阵的,但是由于bias的存在, q b k b k + 1 q_{b_kb_{k+1}} qbkbk+1将存在误差,从而导致转一个圆回来后的旋转矩阵不是单位矩阵。每两帧都将提供一个误差信息,我们希望找到一个bias使得所有帧的误差最小化(也就相当于静止初始化的求平均过程),因此我们构建了如下所示的最小二乘问题:
在这里插入图片描述
有关于该问题对于bias的雅可比矩阵我本来是有所疑问的,感谢这位博主的讲解手写VIO-初始化第三部分,另外强推该博主的手写VIO专栏,都是高质量的梳理代码逻辑的文章,这里我把博主关于这个问题如何化成Ax=b的形式的推导记录在下面:
在这里插入图片描述

2. 初始化关键帧相机的速度,初始帧的重力方向、相机相对位移转化到世界坐标系的尺度信息

在这个问题中,我们已知的信息又多了两个:各关键帧之间的平移信息,也就是说相机的相对平移以及IMU关于速度和位置的预积分我们都是知道的。
这里新增了一项VINS中关于初始帧重力方向的处理,把它处理成已知一维信息的二维约束问题,相当于把可变量减少了一维,构建的优化量如下:
在这里插入图片描述
我们可以利用上面的已知信息,根据预积分公式,计算出预积分的值,再与IMU给出的预积分结果形成残差
构建的最小二乘形式如下:
在这里插入图片描述
根据优化给出的初始帧重力加速度方向,我们可以把相机初始帧对齐到世界坐标系下,从而以世界坐标系来进行相关操作

3. VINS初始化存在的一些疑问以及解答

  • Q1:优化给出的初始帧重力加速度方向是不准的,那么对齐过程也是不准的,这会对后续优化过程带来哪些影响
  • A1:在后续对齐过程中,我们使用的不再是 R W C 0 R_{WC_0} RWC0,而是对应帧到世界坐标系的旋转矩阵,而这个是后端优化过程中的优化量,所以是在不断修正的,也就是对齐过程是不断变好的,初始给定的不准也将被修正
  • Q2:加速度 bias 为何没有估计
  • A2:因为相对于重力加速度,加速度bias是否初始化的影响很小,所以忽略了它的初始化
  • Q3:平移外参数 p b c p_{bc} pbc 为何没有初始化
  • A3:平移是一个线性函数,它的初始值是多少不会影响优化曲线,这与旋转初始值是不同的,所以我们可以不关心它的初始值(也可以把它放在之后的优化量中去得到)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第七章——VINS系统初始化 的相关文章

  • 基于STM32CubeIDE HAL库利用基本定时器实现串口接收不定长数据

    基于STM32CubeIDE HAL库利用基本定时器实现串口接收不定长数据 申明 xff1a 本文章仅发表在CSDN网站 xff0c 任何其他网见此内容均为盗链和爬取 xff0c 请多多尊重和支持原创 x1f341 对于文中所提供的相关资源
  • idea重构手法

    idea重构手法 四键齐发 xff1a ctrl 43 alt 43 shift 43 T 修改方法名 xff1a shift 43 F6修改方法参数 xff1a Ctrl 43 F6提取常量 xff1a Ctrl 43 Alt 43 C提
  • Linux下实现http的Get方法

    Linux如何实现http的GET数据方法 下载curl库源码 https curl se download html Linux编译 make拷贝库文件 xff0c 目录 curl 7 83 0 lib libs 下 libcurl so
  • 一篇关于GPS定位写得最详实清晰的文章之一

    一篇关于GPS定位写得最详实清晰的文章之一 介绍篇 过去 xff0c 如果你的女友是个路痴 xff0c 大概会有这样的对话 你在哪儿呢 xff1f 啊 xff1f 我在马路上啊 有什么特征 xff1f 头顶有个月亮 你旁边有什么啊 xff1
  • 基于HAL库STM32串口驱动不定长数据接收

    STM32串口驱动不定长数据接收带环形缓冲区 最新框架代码使用方法源码串口接口文件环形缓冲区接口文件 移植图示 使用涉及4个文件 xff0c UART Port c UART Port h CircularQueue h CircularQ
  • OptiTrack---Motive简单使用导出groundtruth

    文章目录 Motive介绍1 详细介绍 Motive使用1 详细使用2 简单使用导出groundtruth 1 首先安装Motive 2 启动Motive 3 建立body xff0c 进行录制 4 对结果进行保存 Motive介绍 1 详
  • 使用U盘安装Ubuntu20.04

    背景 今天自己鼓捣小电脑 xff0c 卖家发过来的时候已经按要求预装了Ubuntu20 04 xff0c 我想改一下卖家起的用户名 也许是计算机名 xff0c 分不太清 xff0c 结果搞的电脑输入密码却进不了桌面 xff0c 最终决定重装
  • 【ROS基础】rviz打开后如何显示实时2D地图

    1 背景 launch 了一个建图程序 xff0c 并打开了 rviz xff0c rviz 中也 add 了 map xff0c 但是 rviz 中并未出现期望的2D地图 xff0c 让人很是手足无措 2 问题解决 百度了才发现自己使用的
  • RTKlib源码解析:ppp和rtkpost中的周跳检测函数

    文章目录 前言detslp mwdetslp gfdetslp lldetslp dop 欢迎关注个人公众号 xff1a 导航员学习札记 前言 本文解析了RTKlib ppp c中两个周跳检测函数detslp mw和detslp gf xf
  • RTKlib相对定位源码解析:resamb_LAMBDA (整周模糊度求解)

    本文对resamb LAMBDA函数 xff0c 以及其中的ddmat restamb函数进行了解析 由于其中的lambda函数在参考论文中都给出了详细推导和计算步骤 xff0c 因此没有解析 lambda函数参考论文 xff1a 1 P
  • RTKlib PPP代码解析

    文章目录 ppposudstate pppudbias pppcorr measppp res 欢迎关注个人公众号 xff1a 导航员学习札记 我所基于的代码版本是RTKlib 2 4 3的一个拓展版本RTKexplore Demo5 xf
  • Android 动态修改SeekBar滑块和进度条的颜色

    方法一 1 需求 xff1a 需要改变其默认颜色 xff0c 样式 2 滑竿样式 seekbar xml lt xml version 61 34 1 0 34 encoding 61 34 utf 8 34 gt lt layer lis
  • GNSS定位(SPP、RTK、PPP)位置坐标系

    欢迎关注个人公众号 xff1a 导航员学习札记 文章目录 一 前言二 单点定位三 差分定位四 PPP 一 前言 最近研究不同FTP的基站数据 xff0c 发现它们坐标系都不一致 xff0c 因此研究了下GNSS定位结果的坐标系 参考了一些文
  • detrend去趋势函数的Matlab、Python与C实现

    文章目录 趋势分量对频域分析的影响detrend去趋势函数 xff08 Matlab Python xff09 detrend的C语言实现 趋势分量对频域分析的影响 在对信号做频域分析时 xff0c 如果有趋势项的存在 xff0c 会对分析
  • AHRS互补滤波(Mahony)算法及开源代码

    文章目录 一 前言二 算法流程三 算法步骤四 算法难点五 开源源码参考文献 欢迎关注个人公众号 xff1a 导航员学习札记 一 前言 AHRS Attitude and heading reference system xff0c 也就是航
  • RTKLIB 中的天线相位缠绕误差修正

    之前一直没有细看精密定位 xff08 PPP xff09 中的相位缠绕 xff0c 不过我觉得还是应该至少从应用层面理解PPP中每项修正 因此抱着不求甚解的心情 xff08 没有仔细去研究右旋极化信号 偶极等概念 xff09 xff0c 只
  • 关于PPP-RTK技术优势的一些思考与总结

    文章目录 一 前言二 SSR修正与PPP三 RTK与PPP RTK的对比四 PPP RTK的技术优势五 总结参考文章 欢迎关注个人公众号 xff1a 导航员学习札记 一 前言 感觉近几年PPP和PPP RTK一直都是GNSS比较火的方向 x
  • 【论文阅读笔记】里程计ODO/INS不同融合方式的性能比较

    文章目录 一 里程计的工作原理二 论文中的主要结论三 总结四 参考文献 欢迎关注个人公众号 xff1a 导航员学习札记 关于里程计的融合一般用 距离增量修正 和 速度修正 两种方式 我最近在想这两种方式在性能上有什么不同 xff0c 因此找
  • 惯性器件的零偏稳定性与零偏不稳定性

    文章目录 一 零偏稳定性和不稳定性概念二 测算方法参考文献 关于惯性器件的 零偏稳定性 和 零偏不稳定 的概念 xff0c 我一直都觉得有点混乱 xff0c 因此查找和整理了一些资料理清楚这两个概念 本文主要参考了武汉大学iNav团队的文章
  • 在Ubuntu 18.04上安装不同版本的python及选择默认Python

    文章目录 一 Python安装方法一 从Deadsnakes PPA安装deb软件包1 更新软件包列表并安装必备组件2 将deadsnakes PPA添加到系统的来源列表中 xff1a 3 安装Python4 验证 方法二 从源代码在Ubu

随机推荐