【深蓝学院】手写VIO第7章--VINS初始化和VIO系统--笔记

news2024/11/15 23:47:19

0. 内容

在这里插入图片描述

1. VIO回顾

在这里插入图片描述
在这里插入图片描述
整个视觉前端pipeline回顾:

  1. 两帧图像,可提取特征点,特征匹配(描述子暴力匹配或者光流)
  2. 已知特征点匹配关系,利用几何约束计算relative pose([R|t]),translation只有方向,没有尺度
  3. 使用三角化获得3维坐标,即可完成vslam系统的初始化
  4. 有了3D特征点,后续可根据特征跟踪,使用PnP求解Camera Pose,无需再使用几何约束

在这里插入图片描述

  1. IMU的加速度要和世界系的重力进行对齐
    在这里插入图片描述
    世界系重力假设(0,0,-9.81),IMU第一帧估计出一个 c g = c R c b g b ^{c}g=^{c}R_{cb}g_b cg=cRcbgb,就可以求出第一帧camera在world下的pose(带头大哥)

  2. 视觉的尺度和IMU尺度要进行对齐

  3. VIO系统速度,传感器bias需要估计

  4. IMU和相机的外参Tic

知道了z轴的法向量就能估计roll和pitch(tilt),但是yaw不可观。

2. VINS鲁棒初始化

2.1 pipeline overview

在这里插入图片描述
IMU积分是米制单位,但是camera不是,camera存在一个缩放因子,标定出外参 [ R b c , t b c ] [R_{bc},t_{bc}] [Rbc,tbc]之后,可以求得尺度因子s,先对坐标系,R,t的数学表示做一下说明:
旋转脚标相连时相消,刚性连接在不同时刻的的观测相同,平移左上角是观测系,右下角从左到右;平移乘旋转后平移向量不变,但观测系改变。

式(4)第一行这样理解:
c 0 p ‾ c 0 b k = c 0 p ‾ c 0 c k − 1 s c 0 R c 0 b k b p b c ( 2.1 ) {^{c_0}\overline p_{c_0b_k}}={^{c_0}\overline p_{c_0c_k}}-\frac{1}{s}{^{c_0} R_{c_0b_k}} {^{b}p_{bc}} (2.1) c0pc0bk=c0pc0cks1c0Rc0bkbpbc(2.1)
左上角都是观测系,即在什么系下看这个量,由于刚性连接在不同观测系,不同时间下相同,且平移乘旋转后旋转向量不变,但观测系改变,所以 b p b c = b k p b k c k ( 2.2 ) {^{b}p_{bc}}={^{b_k}p_{b_kc_k}}(2.2) bpbc=bkpbkck(2.2)
所以将(2.2)带入式(2.1)可得:
c 0 p ‾ c 0 b k = c 0 p ‾ c 0 c k − c 0 p ‾ b k c k = c 0 p ‾ c 0 c k + c 0 p ‾ c k b k ( 2.3 ) {^{c_0}\overline p_{c_0b_k}}={^{c_0}\overline p_{c_0c_k}}-{^{c_0}\overline p_{b_kc_k}}={^{c_0}\overline p_{c_0c_k}}+{^{c_0}\overline p_{c_kb_k}}(2.3) c0pc0bk=c0pc0ckc0pbkck=c0pc0ck+c0pckbk(2.3)
即在 c 0 c_0 c0系下进行将 c 0 p ‾ c 0 c k + c 0 p ‾ c k b k {^{c_0}\overline p_{c_0c_k}}+{^{c_0}\overline p_{c_kb_k}} c0pc0ck+c0pckbk向量相加,不难理解。
标定出Camera和IMU外参之后,利用式(2.1)就可以求出尺度因子。

在这里插入图片描述
Tbc外参的Rotation很重要,而Translation由于可能离得比较近,所以相对来说没有Rotation重要

2.2 外参估计

旋转约束:两种路径求取的 q c k b k + 1 q_{c_kb_{k+1}} qckbk+1应该相同。

在这里插入图片描述
这里的未知量只有外参 q b c q_{bc} qbc,也可以简单地理解为一段时间内,camera出一段pose(trajectory),imu积分出一段pose(trajectory),这两段pose理想情况下只有外参的差异,(不考虑 t b c t_{bc} tbc的情况下)可以将这两段pose align起来,残差是两段pose align的残差,待估计量就是外参,做LSP的结果就是外参。

在这里插入图片描述
VINS论文中将多个时刻的数据累计起来,并使用了鲁棒核函数对每一项进行了加权,权值计算方法:有 t r ( R ) = 1 + 2 c o s θ tr(R)=1+2cos\theta tr(R)=1+2cosθ(可以看wiki),式(9)中的那一大块矩阵就是式(5)移项而得,因为求的是相同的量(如 q c k b k + 1 q_{c_kb_{k+1}} qckbk+1),所以理想情况下连乘应该是Identity,但实际上,如果外参估的不准,这个角度会较大(>threshole),所以式(8)将大于threshold的部分的权值设的较小,进行了抑制。

最终对 q b c q_{bc} qbc的求解还是对式(7)使用SVD分解,取 V T V^T VT最后一列作为解。

(参考这篇博客参考这篇博客中使用Lanrange算子证明取 V T V^T VT最后一列是我们所求的解。)

论文中还对SVD分解的倒数第二小奇异值进行了判断,如果小于阈值则认为该次估计无效,重新采集数据进行估计。(这和增多数据来提升数据信噪比是一样的目的,都是为了提高数值稳定性)

2.3 gyro bias估计

在这里插入图片描述
式(10)就是将 b k b_k bk b k + 1 b_{k+1} bk+1时刻之间imu的rotation都转到 c 0 c_0 c0系下进行align:

  • 前两项四元数相乘代表求在 c 0 c_0 c0系下看imu在 b k b_k bk b k + 1 b_{k+1} bk+1时刻之间的relative rotation
  • 第3项 q b k b k + 1 q_{b_kb_{k+1}} qbkbk+1是IMU积分而来的两时刻间的relative rotation真值(会受到gyro bias的影响),对其进行一阶Taylor展开,带入(10),(10)即代表一阶项所代表的 θ e r r \theta_{err} θerr,可以求出gyro bias

这跟前面估计外参的是一样的,都是使用的旋转约束。

2.4 初始化速度,重力,尺度因子

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1083762.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年中国睡眠检测仪产量、销量及市场规模分析[图]

睡眠检测仪行业是指生产和销售用于监测和评估人类睡眠质量和睡眠相关指标的设备和工具的行业。睡眠检测仪可以通过监测人体的脑电图、心率、呼吸、体动等生理信号,来评估睡眠的深度、时长、睡眠阶段的分布等信息,帮助人们了解自己的睡眠状况,…

一款轻量级事件驱动型应用程序框架

QP™/C 实时嵌入式框架 (RTEF) 是专为实时嵌入式 (RTE) 系统量身定制的活动对象计算模型的轻量级实现。QP 既是用于构建由活动对象(参与者)组成的应用程序的软件基础结构,也是用于以确定性方式执…

有更新:2023华为HCIA+HCIP最全Datacom题库解析(附全套文档赠送)

2023华为数通Datacom认证考试题库更新,答案解析: 1、所示的BGP/MPLS IP VPN场景,CE和PE之间运行0SPF协议,且区域号为0,当PE1和PE2的域标识符都为NULL时,PE2将向CE2发 送以下哪一类型的LSA? A.Type2 B.T…

了解三层架构:表示层、业务逻辑层、数据访问层

目录 背景: 三层架构 什么是三层: 分层的目的: 三层的结构关系​编辑 三层表现形式:​编辑 三层的优缺点: 总结: 背景: 三层架构是一种软件设计模式,可称为客户端-服务器-架构,把各个功能模块划分…

第二证券:汇金增持有望催化银行板块 白酒企稳信号凸显

昨日,两市股指盘中震动上扬,创业板指、科创50指数一度涨超1%,但沪指午后涨幅逐渐回落。到收盘,沪指涨0.12%报3078.96点,深成指涨0.35%报10084.89点,创业板指涨0.8%报2003.9点,科创50指数涨1.29%…

3.3 数据定义

思维导图: 前言: **核心概念**: - 关系数据库支持**三级模式结构**:模式、外模式、内模式。 - 这些模式中包括了如:模式、表、视图和索引等基本对象。 - SQL的数据定义功能主要包括了模式定义、表定义、视图和索引的定…

AnolisOS升级SSH,不升级SSL

由于ssh有漏洞需要升级,但是为了最小化升级不影响ssl,因为ssl里面带了加密库,系统中很多核心服务的加密都是用ssl进行加密的(像网络服务,系统用户登录等),如果ssl升级出现不兼容,就可…

【Python语义分割】Segment Anything(SAM)模型全局语义分割代码+掩膜保存(二)

我上篇博文分享了Segment Anything(SAM)模型的基本操作,这篇给大家分享下官方的整张图片的语义分割代码(全局),同时我还修改了一部分支持掩膜和叠加影像的保存。 1 Segment Anything介绍 1.1 概况 Meta A…

201、RabbitMQ 之 Exchange 典型应用模型 之 工作队列(Work Queue)

目录 ★ 工作队列介绍代码演示测试注意点1:注意点2: ★ 工作队列介绍 工作队列: 就是让多个消费者竞争消费同一个消息队列的消息,相当于多个消费者共享消息队列。 ▲ RabbitMQ可以让多个消费者竞争消费同一个消息队列 ▲ 消息队…

MS4344:24bit、192kHz 双通道数模转换电路

MS4344 是一款立体声数模转换芯片,内含插值滤波器、 multi-bit 数模转换器、输出模拟滤波器。 MS4344 支持大部分 的音频数据格式。 MS4344 基于一个带线性模拟低通滤波器的 四阶 multi-bit Δ-Σ 调制器,而且本芯片可以通过检测信号频率 和主时钟频…

【Axure高保真原型】冻结固定中继器表格首行+首尾列

今天和大家分享冻结固定中继器表格首行首尾列的原型模板,我们可以滚动或者拖动滚动条上下左右查看表格更多的数据,表格的首行和首尾两列都是固定的,鼠标移入对应行会有高亮显示的效果,点击操作列的删除按钮可以删除该行数据。那这…

智能油烟机 优化烹饪体验

如果说空调是夏天最伟大的发明,那么油烟机则是健康厨房的伟大推进者。随着科技的发展,智能化的油烟机逐渐走进了人们的日常生活。每当我们在爆炒、油炸食物的时候,油烟总能呛得人眼睛痛、鼻子难受,传统的油烟机面前我们还需要手动…

蒙自源荣登“2022年度中国快餐TOP100”榜单!

2023年9月26日,由中国烹饪协会主办的第27届中国快餐产业大会在浙江宁波盛大召开。 对于行业而言,这是一次至关重要的聚会。本次大会以“增量博弈,智造无限机遇”为主题,聚集了众多餐饮业的意见领袖,共同探讨行业发展焦…

第二证券:市净率高好还是低好?

市净率是一个衡量公司股票投资价值的指标,通过比较公司股票价格和公司每股净资产的比值来评估公司股票的估值水平。市净率高好还是低好这个问题并没有一个简单的答案,取决于具体的市场环境和投资者的需求。本文将从多个角度分析市净率高好还是低好。 首…

云HIS医院信息化管理平台源码,SaaS模式、springboot框架

HIS系统作为医院信息化的核心业务系统,如今已成为各个医疗机构的必备品了。大到三级二级医院,小到社区卫生服务中心,门诊(门诊管理系统也可以理解为门诊的his系统,只是功能简单,模块较少)。随着…

STM32F103C8T6一些集成模块(ADC)

ADC ADC,Analog-to-Digital Converter的缩写,指模/数转换器或者模数转换器 [1] 。是指将连续变化的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的…

Git 速通以及常用指令!!

参考视频 01 - Git - 教程简介_哔哩哔哩_bilibili 在需要使用git的文件夹打开git bash,指令如下↓ 当然图形化界面也很香!github desktop也很舒服! 查看文件 版本号 git cat-file -p 版本号 仓库操作 在当前文件夹下创建git仓库 git ini…

轻量级Composition

MEF,全称Managed Extensibility Framework(托管可扩展框架)。MEF是专门致力于解决扩展性问题的框架。MEF 位于 ComponentModel.Composition 程序集中,添加 System.ComponentModel.Composition 和 System.ComponentModel.Compositi…

是谁制造了TikTok的商业化困境?

随着社交媒体的崭露头角,TikTok已成为数字营销界备受瞩目的新星。这款以短视频为特色的应用程序在全球范围内拥有数亿用户,吸引了众多品牌和创业者的关注。 然而,尽管TikTok拥有巨大的用户基础和潜力,但它也面临着商业化方面的一…

如何在会计面试中展现自己的优势?

在会计面试中展现自己的优势是非常重要的,因为这将决定你是否能够脱颖而出并获得这个职位。下面是一些可以帮助你展示自己优势的方法: 1. 准备充分:在面试前,确保你对公司的背景和业务有所了解。研究公司的财务报告和新闻&#xf…