通过能观性分析理解SLAM系统的可观维度。

2023-05-16

目录

  • 1 能观性分析大体理解
  • 2 可观性定义
  • 3 可观性矩阵

1 能观性分析大体理解

什么是能观性分析
能观性分析通过计算可观性矩阵,分析它的零空间的秩,来分析系统哪些状态维度可观/不可观。可观性矩阵对应系统可观测的维度,零空间对应系统不可观的维度。
为什么要做能观性分析
举个例子:真实VIO系统不能观的维度是4(位置和yaw角),而实际MSCKF不能观的维度变成了3,绕重力轴的旋转(yaw角)被错误地能观了,从而产生了不一致性(Inconsistency),系统误认为yaw角具有更多的信息从而将yaw对应的协方差设得比较小(Under Estimate),最终导致VIO估计精度的下降。能观性分析就是为了能让MSCKF系统不可观的维度与真实系统一致,从而提高VIO精度。

2 可观性定义

如果没有两个点x0, x1,∈M是不可区分的,或者对于所有可能的控制输入都共享相同的输入-输出映射,那么从全局意义上说,一个系统是可观察的
在这里插入图片描述
直观地,这个定义表达了这样一个事实,即状态空间中的一个点与它的相邻点是可以瞬间区分的。总而言之,“如果状态不同,测量值也不同。”
在这里插入图片描述
SLAM系统不是一个完全可观的系统,它是一个局部弱可观的系统,对于这个局部弱可观的系统,系统状态可以从测量的输出和已知的控制输入估计出来。
在这里插入图片描述
现在,考虑一个系统S,设O为S的可观性矩阵,其行由h(x)的李代数导数的梯度构成。当O在x0处列秩满时,系统S在x0处是局部弱可观的;我们说S在x0处满足可观秩条件(Hermann &Krener 1977))。如果O对所有x, M具有全列秩,则S一般满足可观秩条件,且是局部弱可观的(Isidori 1995)。关于可观性矩阵后面用一个简单的例子来看。
在这里插入图片描述
在这里插入图片描述
以上参考文献: V i s u a l − I n e r t i a l S e n s o r F u s i o n : L o c a l i z a t i o n , M a p p i n g a n d S e n s o r − t o − S e n s o r S e l f − C a l i b r a t i o n 。 Visual-Inertial Sensor Fusion: Localization,Mapping and Sensor-to-Sensor Self-Calibration。 VisualInertialSensorFusion:Localization,MappingandSensortoSensorSelfCalibration

后面知道:可观性是系统固有属性,只和状态量观测量的定义有关,不受优化滤波等估计算法的影响,不受相机激光雷达等传感器类型的影响,当系统模型确定时,系统状态量的可观测性也就随之确定,无法变更

对于 SLAM 系统而言(如单目 VO),当我们改变状态量时,测量不变意味着损失函数不会改变,更意味着求解最小二乘时对应的信息矩阵 Λ Λ Λ 存在着零空间。也就是局部是弱可观的。

①单目 SLAM 系统 7 自由度不可观:6 自由度姿态 + 尺度。
②单目 + IMU 系统是 4 自由度不可观:yaw 角 + 3 自由度位置不可观。
roll 和 pitch 由于重力的存在而可观,尺度因子由于加速度计的存在而
可观。

3 可观性矩阵

考虑最简单的情况,对于线性定常离散系统来说,有状态方程和观测方程:
在这里插入图片描述
其中, u ( t ) u(t) u(t)是输入量, Y ( t ) Y(t) Y(t) 是输出量(观测量)。 X ( t ) X(t) X(t) 是系统状态量,即待估计的未知量。
定义经过 k k k 时刻的状态转移矩阵, Φ ( k ) = F k \Phi(k) =F^k Φ(k)=Fk , 即 X ( t + k ) = Φ ( k ) X ( t ) X(t+k)=\Phi(k)X(t) X(t+k)=Φ(k)X(t)
t 0 t_0 t0 时刻状态 X ( t 0 ) = X 0 X(t_0)=X_0 X(t0)=X0,那么就能够得到一系列的状态值和观测值:
在这里插入图片描述
将状态量和输入量分开,可得:
在这里插入图片描述
可见,该问题为 A x = b Ax=b Ax=b 的最小二乘问题。
可观性矩阵为:
在这里插入图片描述
R a n k ( M ) = n Rank(M)=n Rank(M)=n 时, X 0 X_0 X0 各方向均有约束,全状态可观。当 R a n k ( M ) < n Rank(M)<n Rank(M)<n 时,则 X 0 X_0 X0 存在不受约束的方向,这些方向构成了可观性矩阵 M M M 的零空间。从上面可以也看出,系统的可观性与输入量无关。

从这里可以看出,在SLAM系统优化问题中的可观性矩阵其实就是信息矩阵 H ( Λ ) H(Λ) HΛ,也可以进一步知道信息矩阵 H ( Λ ) H(Λ) HΛ不满秩。

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

通过能观性分析理解SLAM系统的可观维度。 的相关文章

  • 【01】初识ThreadX

    目录 简介 微内核 资料链接 入门索引 简介 ThreadX是一个成熟的商用硬实时嵌入式操作系统 xff0c 被广泛应用于消费电子 航空航天 通信 工业控制与医疗等应用领域中 xff0c 至今已服务超过62亿设备 它以轻量级的规模 xff0
  • [解决方案] VNC Viewer 连接灰屏问题 (能够连接上,但全是灰点,没有任何菜单、按钮,鼠标变为x)

    解决方案 VNC Viewer 连接灰屏问题 xff08 能够连接上 xff0c 但全是灰点 xff0c 没有任何菜单 按钮 xff0c 鼠标变为x xff09 情况1情况2情况3 情况1 登陆VNCviewer可能会发现服务器的mate桌
  • VNC Viewer 10061, connection refused

    在Windows系统下用VNC Viewer去连接Linux系统的VNC Server xff0c 双方都可ping通 xff0c 但是VNC Viewer连接不上 xff0c 显示connection refused 10061 xff0
  • 现代C++语言(C++11/14/17)特性总结和使用建议(一)

    C 43 43 语言在历史上经过了很多次的演进 最早的时候 xff0c C 43 43 语言没有模板 STL 异常等特性 xff0c 之后加入这些特性形成大多数人所熟悉的C 43 43 98 03标准 在此之后 xff0c C 43 43
  • 现代C++语言(C++11/14/17)特性总结和使用建议(二)

    override和final成员函数 以前C 43 43 中虚函数没有一个强制的机制来标识虚函数会在派生类里被改写 vitual关键字是可选的 xff0c 这使得阅读代码变得很费劲 因为可能需要追溯到继承体系的源头才能确定某个方法是否是虚函
  • 高通芯片方案的Wi-Fi6路由器汇总和推荐

    2017年 xff0c 高通宣布推出端到端的802 11ax产品组合 xff0c 其中包括用于网络基础设施的IPQ 8074 SoC 用于客户端设备的QCA 6290解决方案 xff0c 这让高通公司成为第一家宣布支持802 11ax的端到
  • (十)嵌入式:使用TCP协议实现图传

    这段时间做了通信相关的项目 xff0c 需要用到无线图传 xff0c 因此想到了用TCP协议实现 废话不多说 xff0c 直接上代码 xff1a 服务器端 xff1a include lt stdlib h gt include lt st
  • PnP 单目相机位姿估计(一):初识PnP问题

    简介理解更多 IDE xff1a visual studio 2013 使用库 xff1a Eigen opencv2 4 9 文档版本 xff1a 1 1 简介 PnP问题是求解3D 2D点对运动的方法 他描述了当知道n个三维空间点坐标及
  • 多传感器融合中的时间同步2-论文阅读

    文章目录 前言主要内容pps对于INS时间戳校准作用原理 测试结果参考文献 前言 阅读硕士论文 GPS INS组合导航系统研究及实现 xff0c 该论文第5章为时间同步系统设计 xff0c 为GPS INS系统设计的时间同步系统部分内容非常
  • PSINS源码阅读—STIM300/GNSS组合导航

    文章目录 前言代码解读主要框架代码阅读主要脚本sinsgps函数 结果测试 前言 严老师最近在PSINS网站上上传了一组STIM300 GNSS跑车数据 xff0c 并且有光纤惯导数据作为真值参考 xff0c 网站是一组STIM300 GN
  • mpu6500-gnss组合导航代码分析

    文章目录 前言代码分析调参P矩阵陀螺仪偏置P矩阵加速度计偏置P矩阵 前言 导航数据为如下链接 xff0c 数据集使用了低成本Mems器件MPU6500和GNSS做组合导航 代码运行需要严老师psins210406组合导航函数库的支持 xff
  • Java中数组元素的删除

    这是一个LeetCode的简单题 xff0c 在二刷做过的题时突然感觉这个题真的是非常的不错 xff0c 虽然是个简单题 xff0c 没有什么技巧 xff0c 但是写代码的过程中有很多要注意的点 xff0c 感觉还是很考验基本功 xff0c
  • 【视觉里程计】对极几何,三角测量,PnP,ICP原理

    老早就想写些东西 xff0c 但是介于个人懒惰 xff0c 一直没开这个头 xff0c 前几天才发现自己以前学的东西很容易忘记 xff0c 于是决定还是将学习做个总结 xff0c 以便后续回头查看 xff0c 温故而知新嘛 此文章为对相关知
  • Java泛型--泛型应用--泛型接口、泛型方法、泛型数组、泛型嵌套

    1 泛型接口 1 1泛型接口的基本概念 1 2泛型接口实现的两种方式 定义子类 xff1a 在子类的定义上也声明泛型类型 interface Info lt T gt 在接口上定义泛型 public T getVar 定义抽象方法 xff0
  • Linux下调试段错误的方法[Segmentation Fault]--GDB

    原文 1 段错误是什么 xff1f 段错误是指访问的内存超出了系统给这个程序所设定的内存空间 xff0c 例如访问了不存在的内存地址 访问了系统保护的内存地址 访问了只读的内存地址等等情况 A segmentation fault ofte
  • linux驱动开发--copy_to_user 、copy_from_user函数实现内核空间数据与用户空间数据的相互访问

    设备读操作 如果该操作为空 xff0c 将使得read系统调用返回负EINVAL失败 xff0c 正常返回实际读取的字节数 ssize t read struct file filp char user buf size t count l
  • 函数中的形式参数和实际参数

    1 举例 xff1a 使用函数交换两个整形变量的值 运行结果 xff1a 分析 xff1a c语言中实际参数和形式参数之间采用值传递的方式来传递数据 在被调函数中 xff0c 使用的是实际参数的一个拷贝数据 我们在swap函数中交换了a和b
  • Linux 线程挂起与唤醒功能 实例

    pthread cond wait 多线程的条件变量 条件变量是利用线程间共享的 全局变量进行同步的一种机制 xff0c 主要包括两个动作 xff1a 一个线程等待 34 条件变量的条件成立 34 而挂起 xff1b 另一个线程使 34 条
  • PnP 单目相机位姿估计(二):solvePnP利用二维码求解相机世界坐标

    前言原理简介输入参数准备 1 objectPoints特征点世界坐标2 imagePoints特征点在摄像头下的像素点坐标3cameraMatrixdistCoeffs内参矩阵和畸变矩阵 相机世界坐标的求解 1求世界坐标中的点在相机坐标系下
  • Linux下socket编程,附带tcp例子

    1 网络中进程之间如何通信 xff1f 本地的进程间通信 xff08 IPC xff09 有很多种方式 xff0c 但可以总结为下面4类 xff1a 消息传递 xff08 管道 FIFO 消息队列 xff09 同步 xff08 互斥量 条件

随机推荐

  • 程序员加班到深夜,你经历过没?

    我看到了自己的影子啊 虽然自己非科班出身 xff0c 学历也不高吧 xff0c 但是自认为还是很努力的 xff0c 但是为什么现在的工资水平却跟应届生差不多呢 xff1f xff08 xff09 仔细想想 xff0c 自己毕业3年了 xff
  • 【C/C++学院】(16)QT版:幸运大抽奖

    程序效果 xff1a ifndef DIALOG H define DIALOG H include lt QDialog gt include lt QLabel gt include lt QPushButton gt include
  • 【Python基础】--Pickle/函数默认参数/函数的参数*args/Bytes<=>str/32-64bit/bytes对象

    Pickle gt gt gt import pickle gt gt gt my list 61 1 2 3 39 haha 39 39 and 39 39 or 39 gt gt gt pickle file 61 open 39 my
  • Windows平台python操作串口示例,可以加工下,改写成方便的测试软件

    在 windows中 xff0c 使用 Python 进行串口编程需要安装一个 Serial 模块 pyserial xff1a 下载地址 https pypi python org pypi pyserial下载完成后得到一个 pyser
  • 告别csdn一年了

    原本坚持了4年的学习 xff0c 整理笔记 xff0c 在csdn平台上进行发表 xff0c 记录 同朋友们互动 xff0c 探讨进行学习 xff0c 自己也在不断地成长 今天再次进入博客页面 xff0c 发现界面来了个大改版 xff0c
  • php视频课程

    php视频课程 xff1a 下载地址 xff1a http php itcast cn php video shtml 注 xff1a 此系列视频 xff0c 韩顺平主讲 1 php入门到精通教程 2 第二版mysql视频教程 进行中 3
  • pixhawk ulg转csv

    ulg是目前最新版px4固件生成的log格式 xff0c 下载最新版的flightplot即可对内部数据进行预览分析 xff0c flightplot中支持部分函数和运算符操作 xff0c 但对带 数据的操作不支持 xff0c 如需要对某些
  • 将Kinetic中的Gazebo7升级为Gazebo9

    将Kinetic中的Gazebo7升级为Gazebo9 一 查看所有gazebo7的相关包二 卸载当前已安装的gazebo相关包三 添加源四 安装新版本gazebo五 安装gazebo ros pkgs六 后记 官方教程 http gaze
  • 你真的了解串口 (Serial)吗?

    一 串口的定义 串口 xff0c 全称串行通信接口或串行通讯接口 xff0c 是一种常用于电子设备间通讯的全双工扩展接口 xff1b 串行通信 xff0c 串口通讯的技术基础 xff0c 指一位一位地按顺序传送数据 其特点是线路简单 xff
  • PnP 单目相机位姿估计(三):二维码角点检测

    解PnP问题时用二维码的好处二维码识别的流程代码最后 IDE xff1a visual studio 2013 使用库 xff1a Eigen opencv2 4 9 文档版本 xff1a 1 0 解PnP问题时 xff0c 用二维码的好处
  • 2014年计算机求职总结--面试篇

    又一年实习招聘陆续开始了 xff0c 这里分享一下我在2013年实习招聘和秋季招聘中的一些面试经历 xff0c 希望能对找工作的同学有所帮助 2013年面试过的公司有蘑菇街 网易游戏 阿里巴巴 腾讯 百度 大众点评 人人网 雅虎 xff08
  • 用位运算实现两个整数的加减乘除运算

    位运算的思想可以应用到很多地方 xff0c 这里简单的总结一下用位运算来实现整数的四则运算 1 整数加法 int Add int a int b for int i 61 1 i i lt lt 61 1 if b amp i for in
  • 深入理解C/C++数组和指针

    版权所有 xff0c 转载请注明出处 xff0c 谢谢 xff01 http blog csdn net walkinginthewind article details 7044380 C语言中数组和指针是一种很特别的关系 xff0c 首
  • 轻松搞定面试中的链表题目

    版权所有 xff0c 转载请注明出处 xff0c 谢谢 xff01 http blog csdn net walkinginthewind article details 7393134 链表是最基本的数据结构 xff0c 面试官也常常用链
  • 轻松搞定面试中的二叉树题目

    版权所有 xff0c 转载请注明出处 xff0c 谢谢 xff01 http blog csdn net walkinginthewind article details 7518888 树是一种比较重要的数据结构 xff0c 尤其是二叉树
  • 动态内存分配(malloc/free)简单实现--隐式空闲链表

    本文使用隐式空闲链表实现简单的动态内存分配 动态内存分配器维护一个大块区域 xff0c 也就是堆 xff0c 处理动态的内存分配请求 分配器将堆视为一组不同大小的块的集合来维护 xff0c 每个块要么是已分配的 xff0c 要么是空闲的 实
  • 二分查找,你真的掌握了吗?

    版权所有 xff0c 转载请注明出处 xff0c 谢谢 xff01 http blog csdn net walkinginthewind article details 8937978 二分查找 xff0c 最基本的算法之一 xff0c
  • 【谷歌面试题】求数组中两个元素的最小距离

    一个数组 xff0c 含有重复元素 xff0c 给出两个数num1和num2 xff0c 求这两个数字在数组中出现的位置的最小距离 O n 时间复杂度 xff0c O 1 空间复杂度 int minDistance int A int si
  • 进程间通信

    原作者地址不详 摘 要 随着人们对应用程序的要求越来越高 xff0c 单进程应用在许多场合已不能满足人们的要求 编写多进程 多线程程序成为现代程序设计的一个重要特点 xff0c 在多进程程序设计中 xff0c 进程间的通信是不可避免的 Mi
  • 通过能观性分析理解SLAM系统的可观维度。

    目录 1 能观性分析大体理解2 可观性定义3 可观性矩阵 1 能观性分析大体理解 什么是能观性分析 xff1f 能观性分析通过计算可观性矩阵 xff0c 分析它的零空间的秩 xff0c 来分析系统哪些状态维度可观 不可观 可观性矩阵对应系统