VINS(五)非线性优化与在线标定调整
首先根据最大后验估计(Maximum a posteriori estimation,MAP)构建非线性优化的目标函数。
初始化过程通过线性求解直接会给出一个状态的初值,而非线性优化的过程关键在于求解增量方程,并不断迭代到最优点,需要在初值以及后续的迭代点附近线性化(泰勒展开保留一阶后平方构建高斯牛顿梯度下降的增量方程):
在初值x附近泰勒展开
$f(x+\Delta x) = f(x) + J\Delta x$
$costFunction = [f(x+\Delta x)]^{2}$
最小化costFunction的过程其实就是迭代求解增量方程
$H\Delta x = b$
其中$H = J^{T}J$,$b = -J^{T}f$
因此,首先需要定义状态的增量,主要因为旋转矩阵没有加法,无法迭代求解,因此在SO(3)流形的正切空间上定义四元数的加法,并表示成最小坐标的李代数(轴转角)形式

因此对应的error-state costFunction定义为:

注意该式求解的是迭代需要使用的增量,而不是初始化过程可以直接线性求解出的初值。这是优化过程和初始化过程中costFunction的主要不同点。
接下来还需要建立对应的观测方程去计算residual及其Jacobian,并且推到误差的传播方程。和初始化过程中对比,增加的有:
- IMU中的旋转矩阵;
 - 误差传播考虑旋转矩阵及其与translation之间的相关性;
 
对比初始化和非线性优化过程:
- 都是基于Sliding Window,但是初始化中每组Sliding Window只会计算一次,如果没有收敛到可以完成初始化,则扩大窗口大小,或者直接滑动窗口;
 - Nonlinear Optimization中Sliding Window则是在固定的Sliding Window中求解增量方程迭代优化到满足一定条件(residual收敛或者限制固定迭代次数保证计算量的平衡);
 
VINS(五)非线性优化与在线标定调整的更多相关文章
- 解放双手——相机与IMU外参的在线标定
		
本文作者 沈玥伶,公众号:计算机视觉life,编辑部成员 一.相机与IMU的融合 在SLAM的众多传感器解决方案中,相机与IMU的融合被认为具有很大的潜力实现低成本且高精度的定位与建图.这是因为这两个 ...
 - [Xcode 实际操作]五、使用表格-(11)调整UITableView的单元格顺序
		
目录:[Swift]Xcode实际操作 本文将演示如何调整单元格在表格中的位置. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //首先 ...
 - Oracle 物理结构(五) 文件-在线日志文件
		
一.什么是在线日志文件 默认情况下redo的块大小是磁盘的扇区大小,通常是512字节,但是现在很多磁盘开始支持4k的扇区,oracle能自动识别并使用4k的大小,但是使用4k的redo block会有 ...
 - 在线调整InnoDB Buffer Pool Size
		
InnoDB Buffer Pool主要是用来缓存数据表和索引数据的内存区域,它的默认值为134217728字节(128MB).最大值取决于CPU架构;32位系统上的最大值为4294967295(23 ...
 - Kafka(五)Kafka的API操作和拦截器
		
一 kafka的API操作 1.1 环境准备 1)在eclipse中创建一个java工程 2)在工程的根目录创建一个lib文件夹 3)解压kafka安装包,将安装包libs目录下的jar包拷贝到工程的 ...
 - 相机标定简介与MatLab相机标定工具箱的使用(未涉及原理公式推导)
		
相机标定 一.相机标定的目的 确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,建立摄像机成像的几何模型,这些几何模型参数就是摄像机参数. 二.通用摄像机模型 世界坐标系.摄像机坐标 ...
 - mysql在线修改表结构大数据表的风险与解决办法归纳
		
整理这篇文章的缘由: 互联网应用会频繁加功能,修改需求.那么表结构也会经常修改,加字段,加索引.在线直接在生产环境的表中修改表结构,对用户使用网站是有影响. 以前我一直为这个问题头痛.当然那个时候不需 ...
 - VIO系统的IMU与相机时间偏差标定
		
视觉里程计(VIO)作为一种空间定位方法,广泛应用于VR/AR.无人驾驶和移动机器人,比如近年火热的苹果 AR-Kit和谷歌AR-Core都使用了VIO技术进行空间定位.通常,VIO系统忽略IMU ...
 - 鸟哥的linux私房菜 - 第5/6/7/9章(在线求助 man page、Linux档案权限与目录配置、Linux档案与目录管理、压缩与打包)
		
第五章.在线求助 man page X window与文本模式的切换 Ctrl+Alt+F1~F6:文字接口登入tty1~tty6终端机: Ctrl+Alt+F7:图形接口桌面. 注销当前用户:exi ...
 
随机推荐
- Linux 查看所有登录用户的操作历史
			
在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台服务器多人登陆,一天因为某人误操作了删除了重要的数据.这时 ...
 - HDU 6370 Werewolf 【并查集】
			
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6370 Werewolf Time Limit: 2000/1000 MS (Java/Others) ...
 - Powershell应用
 - ASP.NET Core 程序发布到Linux(Centos7)爬坑实战
			
前言 前阶段弄了个Linux系统想倒腾倒腾.NET Core,结果看了下网上的资料,大部分都是过期的,走了不少弯路,不过还好,今下午总算捣鼓出来了.Linux命令太多了,唉.血的教训:安装一定要看官网 ...
 - logback配置详解和使用
			
最近知道一种打印日志的新方法,在此做一下学习总结. 转自:行走在云端的愚公 https://www.cnblogs.com/warking/p/5710303.html 一.logback的介绍 ...
 - jpa的修改更新操作
			
***指定id的保存就等于修改!!! save 指定id直接调用save()
 - AngularJS 表单验证小结
			
注:本文所述的表单验证即AngularJS自带的表单验证,无需引入第三方的插件 一.常用的验证特性标签 1.非空 为input加入一个required属性即可,例如: <input type=& ...
 - 对IIS7经典模式和集成模式的理解(转载)
			
从IIS6新增应用程序池的概念,到现在IIS7,对HTTP请求处理功能已经越来越精确化和不断改善,IIS7应用程序池新增了经典模式和集成模式可供选择,不管官方还是一些书籍或文章都有介绍,但多数过于官方 ...
 - c++构造函数详解(转)
			
c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++编程经验总结了一下c++中各种构造函数的特点,并附上例子,希望对初 ...
 - jsp页面运行的步骤以及原理
			
1.jsp页面在服务器端的执行步骤: 1)将jsp页面翻译成java文件 2)编译 java-class 3)执行返回结果(html页面)给客户端. 2.jsp页面运行的原理: jsp在服务器端运行 ...