VINS中的观测性问题

news2024/11/25 16:27:22

文章目录

  • 一、背景
  • 二、BA problem的观测性问题
    • 1、不可观方向
    • 2、解决方案
    • 3、优化问题中信息矩阵物理意义
  • 三、Keyframe-based Visual-Inertial SLAM的观测性问题
    • 1、不可观问题
    • 2、解决方案
  • 四、MSCKF观测性分析
    • 1、观测性分析
    • 2、解决方案
    • 3、小结

一、背景

本文档分析以下VINS中的观测性问题,内容源自于前段时间自己的一次PPT分享,阅读观赏性不佳,后续优化

二、BA problem的观测性问题

1、不可观方向

在这里插入图片描述
边缘化过程可以表示为:
在这里插入图片描述
此时对应的因子图为:
在这里插入图片描述
对信息矩阵SVD分解,奇异值最后 7 维接近 0, 表明零空间的维度为 7.
在这里插入图片描述
这里的不可观问题会导致BA问题求解出现数值问题,下面介绍解决方案。

2、解决方案

方案一: 使用 LM 算法,加阻尼因子使得系统满秩,可求解,但是求得的结果可能会往零空间变化。
在这里插入图片描述
优化完成后,可以看到最终特征点的估计值与真值比较吻合,但第一帧相机的原点不再是( 0,0,0),说明向零空间发生了漂移。

方案二:添加先验约束,增加系统的可观性。实现方式:固定第一帧和第二帧位姿(fix 一个相机 pose 和一个特征点)
在这里插入图片描述
实验结果:
在这里插入图片描述
在这里插入图片描述
方案三:On the Comparison of Gauge Freedom Handling in Optimization-based Visual-Inertial State Estimation

以VIO系统为例,有4dof不可观
在这里插入图片描述
可以采用下面三种解决方案:
在这里插入图片描述
实验结果:
在这里插入图片描述

  • 这三种方法的准确度几乎相同。
  • 在prior gauge方法中,需要选择适当的先验权重以避免增加计算成本。
  • 在适当的权重值下,prior gauge方法与fixed gauge方法具有几乎相同的性能(精度和计算成本)。
  • free gauge略快于其他方法,因为它需要较少的迭代就能收敛

理论上按vins的做法需要在每一次滑窗ba中固定第一帧位姿,实际代码中vins-fusion没有固定第一帧的位姿,而且优化完,把第一帧的delta pose再乘回每一帧,保证第一帧不动,但又由于roll 和 pitch是全局能观的,所以乘delta pose的时候里面旋转只有yaw角。

3、优化问题中信息矩阵物理意义

the uncertainty in the free gauge case (Fig. .9a) is “distributed”over all the positions (cf. Fig. 1a). This is due to the fact that the free gauge approach is not fixed to any reference frame. Therefore, the uncertainties directly read from the free gauge covariance matrix are not interpretable in a geometrically-meaningful way.
简单讲,来自free gauge approach的参数协方差与其他方法不同,不能直接以有意义的方式解释。可以通过线性变换将free gauge approach的协方差转化为gauge fixation approach。下面是转换方法。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里颜色越深表示置信度越低,可以看到,相当于认为第一帧很准确,后面是局部窗口内每一帧的相对置信度。

三、Keyframe-based Visual-Inertial SLAM的观测性问题

1、不可观问题

在这里插入图片描述

这里对应为下图:能量函数为0的解由以前的一条曲线变成了一个点,不确定性的东西变得确定了,即不可观的状态变量变得可观了,说明我们人为的引入了错误的信息。
在这里插入图片描述

2、解决方案

这个问题的解决方案就是使用FEJ :

  • 边缘化时,被边缘化的变量的jacobian不再更新,但留在窗口内的而其他变量的jacobian需要使用和边缘化时一样的线性化点(最初线性点),即优化迭代过程中该jacobian不再进行更新, 这意味着,优化迭代过程中 H 矩阵一直不变,但b会改变。
  • 在这里插入图片描述

考虑到:
在这里插入图片描述
因此,FEJ实现时:
在这里插入图片描述
不可观的状态变量变得可观的问题解决之后,就是不可观的变量如何解决。
理论上vins按照gauge fixation的做法需要在每一次滑窗ba中固定第一帧位姿,实际代码中vins没有固定第一帧的位姿,而且优化完,把第一帧的delta pose再乘回每一帧,保证第一帧不动,但又由于roll 和 pitch是全局能观的,所以乘delta pose的时候里面旋转只有yaw角,使用的是free gauge的方法。

四、MSCKF观测性分析

1、观测性分析

在这里插入图片描述注:积分公式和离散化公式,带 yl和sl积分符号的是积分公式(Li Mingyang和Shelley论文前部分推导),而代码中实际用的不带积分符号的离散化公式

理想情况下的能观性矩阵:
在这里插入图片描述
具体计算结果为:
在这里插入图片描述
之所以称之为理想,是因为这里线性化点都是真值。

在理想情况下,能观性矩阵的零空间为:
在这里插入图片描述

实际情况下的能观性矩阵

在这里插入图片描述

在这里插入图片描述

2、解决方案

这里使用FEJ来解决观测性问题,具体实现而言
在这里插入图片描述
在这里插入图片描述

两个零空间并不相同,但物理意义一样:

  • 前三维影响IMU系的位置和特征点的位置,相当于把整个系统的位置shift起来了;
  • 最后一个维度影响以重力轴为旋转轴的旋转,也就是世界系的yaw方向,也相当于在yaw方向上shift了整个系统;

下面是为什么是这4个自由度的理论推导:
在这里插入图片描述

3、小结

  • 零空间:SLAM中的零空间其实是整个优化问题的零空间,而不是说是优化中某个节点的零空间。就是说整个优化问题存在不可观的维度,这个不可观的维度会通过优化问题进而影响到某个节点的优化,导致那个节点出现问题,常见的比如说纯视觉SLAM在转弯的时候,尺度会突然变化。

  • FEJ:FEJ通过固定节点的优化方向,来保证整个系统能观矩阵的零空间一直保持一致,换言之,如果k时刻的状态确定,则整个系统的pos和yaw不可观表现为当前状态和起点的状态是紧密相关的,如果不进行FEJ,yaw错误的变得可观,那么当前yaw和起点状态相关性变弱,此时所有状态的不确定性被低估了

  • 不可观的状态变量变得可观的问题解决之后,就是不可观的维度如何解决,OpenVINS采用的是gauge prior的方式。给定初始yaw和位置一个比较高的置信度,此时FEJ引起的协方差变化很小,对精度影响也很小,但协方差物理意义更加明确

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

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

相关文章

行业追踪,2023-09-22

自动复盘 2023-09-22 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…

软考软件设计师-存储管理-文件管理-计算机网络(中

文章目录 一、存储管理页面置换算法 (最佳OPT)存储页面-先进先出置换算法(FIFO)最久未使用算法(最近最久未使用LRU) 二、文件管理初识文件管理文件目录-绝对路径文件管理-文件的结构文件管理-索引的分配 空闲存储空间的管理(位示图法)三、计算…

Spring | 事件监听器应用与最佳实践

引言 在复杂的软件开发环境中,组件之间的通信和信息交流显得尤为重要。Spring框架,作为Java世界中最受欢迎的开发框架之一,提供了一种强大的事件监听器模型,使得组件间的通信变得更加灵活和解耦。本文主要探讨Spring事件监听器的…

数据治理-组织触点

协调工作的一部分包括为数据治理工作制定组织接触点 采购和合同:首席数据官与供应商/合作伙伴的管理部门或者采购部门合作,制定和执行有关数据管理合同的标准文本。 预算和资金:如果首席数据官没有直接孔子所有与数据采购相关的预算&#xff…

sns.load_dataset(“iris“)报错原因探究+解决办法

问题描述 import seaborn as sns # 读取数据 iris sns.load_dataset("iris")在代码中使用了seaborn ,并加载iris数据,结果产生了报错信息如下所示 问题分析 原因很简单,我们使用了sns.load_dataset("iris")来加载数据…

在Python中创建相关系数矩阵的6种方法

相关系数矩阵(Correlation matrix)是数据分析的基本工具。它们让我们了解不同的变量是如何相互关联的。在Python中,有很多个方法可以计算相关系数矩阵,今天我们来对这些方法进行一个总结 Pandas Pandas的DataFrame对象可以使用c…

解决编译中遇到的问题:Please port gnulib freadahead.c to your platform

今天在编译旧版的gzip-1.7时遇到了一个错误: error: #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib." 在网上搜了一下解决方法&#xf…

C++核心编程——P39~P44-运算符重载

运算符重载的概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。 1.加号运算符重载 作用:实现两个自定义数据类型相加的运算。 例如:两个整型相加编译器知道该怎么进行运算,如果是两个自定义…

zabbix实现邮箱告

开启pop3/smtp/imap 安装mailx、sendmail、sendmail-cf yum install s-nail-14.9.22-6.el9.x86_64 sendmail sendmail-cf 修改配置文件 /etc/mail.rc、/etc/php.ini 注意 php.ini 里面sendmail值会影响发送邮件 [rootzabbix-server mail]# vim /etc/mail.rc set fromfcj_xun…

Mybatis 映射器与XML配置职责分离

之前我们介绍了使用XML配置方式完成对数据的增删改查操作,使用此方式在实际调用时需要使用【命名空间.标签编号】的方式执行,此方式在编写SQL语句时很方便,而在执行SQL语句环节就显得不太优雅;另外我们也介绍了使用映射器完成对数…

数据治理-数据资产估值

数据生命周期大多数阶段涉及成本。数据只有使用时才有价值,使用时数据还产生与风险相关的成本。因此,当使用数据的经济效益超过了上述成本时,就会显现其价值。 其他的度量价值的方式包括: 替换成本。数据替换或恢复的成本。包括组…

齿轮减速机设备类网站pbootcms模板(PC端+手机端自适应)

齿轮减速机设备类网站pbootcms模板-手机端自适应,优化SEO效果 模板介绍: 这是一款基于PbootCMS内核开发的模板,专为机械设备和加工机械类企业设计。该模板具有简洁简单的页面设计,易于管理,同时还附带测试数据。通过使…

操作系统:系统引导以及虚拟机

1.操作系统引导的过程 ①CPU从一个特定主存地址开始取指令,执行ROM中的引导程序(先进行硬件自检,再开机)②将磁盘的第一块:主引导记录读入内存,执行磁盘引导程序,扫描分区表③从活动分区(又称主…

在win10上格式化Linux启动盘

U盘制作Linux启动盘后无法在win10上格式化恢复原来的大小,可采取下面的方法: 在win10上进行操作:打开cmd输入:diskpart enter健会弹出一个新的对话框。 在新的对话框中输入:list disk,会列出计算机的磁盘列表。 List item选择u盘的序号:sele…

Levels - UE5中的建模相关

一些日常的笔记; 可以使用Shapes面板建立基础模型: 可以在PolyModel中继续细分模型: UE5中的建模有PolyGroups概念,可以在Attributes面板中直接编辑: 使用GrpPnt方式可以直接用笔刷设定新的PolyGroups,这样…

2-python:标识符命名

一、常量与变量 ①常量:程序中值不发生改变的元素。 PI3.1415926 ②变量:程序中值发生改变或者可以发生改变的元素。 A9 a4 aA print(a) 二、标识符命名 Python语言允许采用大写字母、小写字母、下划线(_)等字符及其组合给变量…

JUC第七讲:关键字final详解

JUC第七讲:关键字final详解 final 关键字看上去简单,但是真正深入理解的人可以说少之又少。本文是JUC第七讲:关键字final详解,将常规的用法简化,提出一些用法和深入的思考。 文章目录 JUC第七讲:关键字fina…

Nginx之gzip模块解读

目录 gzip基本介绍 gzip工作原理 Nginx中的gzip 不建议开启Nginx中的gzip场景 gzip基本介绍 gzip是GNUzip的缩写,最早用于UNIX系统的文件压缩。HTTP协议上的gzip编码是一种用来改进web应用程序性能的技术,web服务器和客户端(浏览器&…

diskGenius专业版使用:windows系统下加载ext4 linux系统分区并备份还原资源(文件的拷贝进、出)

前言 EXT4是第四代扩展文件系统(英语:Fourth extended filesystem,缩写为 ext4)是Linux系统下的日志文件系统,是ext3文件系统的后继版本。 所以我们在windows系统下是不能识别的,也不能对其写入、拷贝出文…

竞赛 基于深度学习的植物识别算法 - cnn opencv python

文章目录 0 前言1 课题背景2 具体实现3 数据收集和处理3 MobileNetV2网络4 损失函数softmax 交叉熵4.1 softmax函数4.2 交叉熵损失函数 5 优化器SGD6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习的植物识别算法 ** …