1.SLAM问题

1.1建模

考虑某个状态 \(\xi\),以及一次与该变量相关的观测 \(r_{i}\)。由于噪声存在,观测服从概率分布 \(p(r_{i}|\xi)\)。多个观测时,各个测量值相互独立,则多个测量 \(r = (r_{1}, ..., r_{n})^{T}\)构成的似然概率为:

如果知道机器人状态的先验信息 \(p(\xi)\),如GPS,码盘信息等,则由贝叶斯法则,有后验概率:



通过最大后验估计,获得系统状态的最优估计:



意为在当前的观测下,什么样的系统状态出现的概率最大。

分母跟状态量无关,舍弃取log。即:



如果观测服从多元高斯分布:



则有:

该问题可由最小二乘求解:

零均值的多元高斯分布概率为:\(p(x) = \frac{1}{Z}exp(-\frac{1}{2}x^{T}\Sigma^{-1}x)\)

其中\(\Sigma\)是协方差矩阵。\(\Sigma^{-1}\)为协方差矩阵的逆,即信息矩阵。

2.边缘化信息矩阵

使用滑动窗口不可避免的要移除掉变量,当移除变量的时候,之前与之不相关的变量,有可能变得相关,所以要对信息矩阵进行维护。

这里使用舒尔补来对信息矩阵进行边缘化处理。

2.1舒尔补的定义:

给定任意的矩阵块M,如下所示:



如果,矩阵块D是可逆的,则 \(A-BD^{-1}C\)称之为D关于M的舒尔补

如果。矩阵块A是可你的,则 \(D-CA^{-1}B\)称之为A关于M的舒尔补

2.2使用舒尔补来去除变量:

假如一个系统三个变量x1,x2,x3。其信息矩阵为:



那么把x3去掉,也就是把蓝色部分去掉,利用舒尔补。



则去掉后的信息矩阵为:

3.滑动窗口算法



上述最小二乘问题,对应的高斯牛顿求解为:



注意:这里的H反应的是求解的方差,而\(\Sigma^{-1}\)反应的是残差的方差

公式中的雅可比矩阵为:



矩阵乘法公式可以写成连加:





使用边际概率移除变量\(\xi_{1}\),信息矩阵的变化过程:

视觉SLAM:滑动窗口的更多相关文章

  1. 视觉SLAM算法框架解析(1) PTAM

    版权声明:本文为博主原创文章,未经博主允许不得转载. 本系列文章旨在总结主流视觉SLAM算法的框架,对比各个算法在子模块的差异,最终提炼出融合各个算法优点的架构. PTAM[1]是视觉SLAM领域里程 ...

  2. [LeetCode] Sliding Window Maximum 滑动窗口最大值

    Given an array nums, there is a sliding window of size k which is moving from the very left of the a ...

  3. TCP/IP 协议中的滑动窗口

    一个例子明白发送缓冲区.接受缓冲区.滑动窗口协议之间的关系. 在上面的几篇文章中简单介绍了上述几个概念在TCP网络编程中的关系,也对应了几个基本socket系统调用的几个行为,这里再列举一个例子,由于 ...

  4. Storm Windowing storm滑动窗口简介

    Storm Windowing 简介 Storm可同时处理窗口内的所有tuple.窗口可以从时间或数量上来划分,由如下两个因素决定: 窗口的长度,可以是时间间隔或Tuple数量: 滑动间隔(slidi ...

  5. lintcode 滑动窗口的最大值(双端队列)

    题目链接:http://www.lintcode.com/zh-cn/problem/sliding-window-maximum/# 滑动窗口的最大值 给出一个可能包含重复的整数数组,和一个大小为  ...

  6. TCP 三次握手四次挥手, ack 报文的大小.tcp和udp的不同之处、tcp如何保证可靠的、tcp滑动窗口解释

    一.TCP三次握手和四次挥手,ACK报文的大小 首先连接需要三次握手,释放连接需要四次挥手 然后看一下连接的具体请求: [注意]中断连接端可以是Client端,也可以是Server端. [注意] 在T ...

  7. tcp协议头窗口,滑动窗口,流控制,拥塞控制关系

    参考文章 TCP 的那些事儿(下) http://coolshell.cn/articles/11609.html tcp/ip详解--拥塞控制 & 慢启动 快恢复 拥塞避免 http://b ...

  8. CodeForces 701C They Are Everywhere (滑动窗口)

    题目链接:http://codeforces.com/problemset/problem/701/C 题意:找到字符串中能包含所有元素的最短字符串长度. 利用“滑动窗口”解题 解题思路: 1. 遍历 ...

  9. TCP协议总结--停止等待协议,连续ARQ协议,滑动窗口协议

    前言:在学习tcp三次握手的过程之中,由于一直无法解释tcpdump命令抓的包中seq和ack的含义,就将tcp协议往深入的了解了一下,了解到了几个协议,做一个小结. 先来看看我的问题: 这是用tcp ...

  10. uva 1606 amphiphilic carbon molecules【把缩写写出来,有惊喜】(滑动窗口)——yhx

    Shanghai Hypercomputers, the world's largest computer chip manufacturer, has invented a new classof ...

随机推荐

  1. (C++) C++ 中 shared_ptr weak_ptr

    shared_ptr std::shared_ptr<int> sp1 = new int(); // shared count = 1, weak count = 0 std::shar ...

  2. C温故补缺(二):volatile

    volatile 参考:CSDN volatile也是一个类型修饰符,被其修饰的变量意味着可以被某些编译器未知的因素修改,如操作系统,硬件,线程等. 当遇到volatile修饰的变量时,编译器对访问该 ...

  3. 第2-4-10章 规则引擎Drools实战(3)-保险产品准入规则

    目录 9.3 保险产品准入规则 9.3.1 决策表 9.3.2 规则介绍 9.3.3 实现步骤 9.3 保险产品准入规则 全套代码及资料全部完整提供,点此处下载 9.3.1 决策表 前面我们编写的规则 ...

  4. 如何5分钟上手使用PaddleSeg人像抠图

    随便打开一个Microsoft Visual Studio,新建一个WinForms项目,从下面列表中随便选择一个NET框架. net35;net40;net45;net451;net452;net4 ...

  5. Django重点及面试题

    Django 简述python三大主流web框架 """ django 大而全,类似于航空母舰 但是有时候过于笨重 flask 小而精,类似于游骑兵(单行代码就可以起一个 ...

  6. vivo 低代码平台【后羿】的探索与实践

    作者:vivo 互联网前端团队- Wang Ning 本文根据王宁老师在"2022 vivo开发者大会"现场演讲内容整理而成.公众号回复[2022 VDC]获取互联网技术分会场议题 ...

  7. 希腊字母表及latex代码

    希腊字母表及latex代码 字母大写 字母小写 英文名称 latex大写代码 latex小写代码 \(\Alpha\) \(\alpha\) alpha \Alpha \alpha \(\Beta\) ...

  8. Hadoop详解(04-1) - 基于hadoop3.1.3配置Windows10本地开发运行环境

    Hadoop详解(04-1) - 基于hadoop3.1.3配置Windows10本地开发运行环境 环境准备 安装jdk环境 安装idea 配置maven 搭建好的hadoop集群 配置hadoop ...

  9. Java学习笔记 :2021年12月31日 上午

    Java学习笔记 :2021年12月31日 上午 目录 Java学习笔记 :2021年12月31日 上午 关于计算机语言 1.关于语言的分类 2.小结 关于Java语言的基础语法 1.主方法 2.其他 ...

  10. pytest框架的简介

    概念:是一款基于python语言的单元测试框架 用途:用于发现测试用例.执行测试用例.判断测试结果.生成测试报告的一款框架 测试用例的规则: 测试文件必须与test开头,或_test结尾 类文件必须T ...