当前位置:网站首页>ORB_SLAM2视觉惯性紧耦合定位技术路线与代码详解3——紧耦合优化模型
ORB_SLAM2视觉惯性紧耦合定位技术路线与代码详解3——紧耦合优化模型
2022-06-10 15:08:00 【知易行难wangshuailpp】
4.紧耦合优化模型
视觉惯性紧耦合优化部分分为三个部分,分别是Tracking、LocalMapping和Loopclosing,我只是学习了前两个部分,所以就简单的介绍下这两个内容
(1)Tracking线程中帧间紧耦合优化
论文中说的也比较清楚,分为两中情况,分别是有地图更新和无地图更新。Tracking线程中一开始是没有地图更新的,地图更新是在LocalMapping和LoopClosing中完成。因此这两种方式是随机切换的。首先讲一下优化方法和边缘化策略 
红色虚框是固定的状态量(fix),不会进行优化但是会在优化的时候作为约束项优化其他状态量,浅灰色实框是将要进行边缘化的状态量(marginalize),蓝色实框是视觉重投影误差方程,深灰色实框是无地图更新时候的先验数据(prior),绿色实框是IMU测量误差方程。
(a)是出现地图更新的状态,一开始j是当前帧,i是上一帧,通过视觉重投影误差和IMU测量误差优化当前帧的状态量(pj,vj,bj),上一帧的状态量和Map Points不会进行优化而是作为约束项优化当前状态量。
(b)是(a)优化后的结果(估计值和海塞矩阵H),同时将优化结果
(c)是无地图更新状态,当前帧变成了j+1,此时通过重投影误差和IMU测量误差优化当前帧和上一帧j的状态量(pj,vj,bj, pj+1,vj+1,bj+1),Map Points不会进行优化而是作为约束项优化j和j+1时刻的状态量,同时j时刻的优化结果作为先验数据优化,然后将j时刻的状态量边缘化掉。
(d)边缘化掉j时刻的j+1时刻优化量(估计值和海塞矩阵H)作为下一时刻优化的先验数据。
(e)和(c)的过程一模一样。
(f)和(d)的过程一模一样。
然后一直循环(c)(d)过程,直到LocalMapping和LoopClosing中发生地图更新会回到(a)处重复过程。下面给出两种优化方式的误差方程:
①出现地图更新
首先构建整体优化状态向量,包含当前时刻j的旋转,平移速度,位移,加速度计偏置和陀螺仪偏置。整体误差方程包含视觉重投影误差和IMU测量误差。 
视觉重投影方程就是简单的针孔相机重投影方程,并没有什么特别其残差,雅可比计算和信息矩阵与一般视觉无异。 
IMU测量误差方程包含两部分,分别是P,V,R和ba,bg偏置。其残差,残差雅可比矩阵和信息矩阵在IMU预积分过程已经结算完成,直接代入即可。 
②没出现地图更新
按照前面所说,首先构建整体优化状态向量,包含当前时刻j+1和上一时刻j的旋转,平移速度,位移,加速度计偏置和陀螺仪偏置。整体误差方程包含视觉重投影误差、IMU测量误差和先验误差。 
视觉和IMU的误差方程和前面相同,下面看一下先验误差,是j时刻的状态量。 
(2)LocalMapping线程
整个BA优化的只优化固定的N帧,而且这N帧是共视程度最高的N个关键帧,在局部窗口中(Local Windows),地图中所有的点都是这些N个关键帧产生,其他的关键帧是在固定窗口中(Fixed Window),只提供与局部地图点的观测值,不进行优化。当然局部地图路标点也需要优化。需要优化的关键帧包含有视觉重投影误差和IMU测量误差。需要优化的特征点包含Local和Fixed Window的重投影误差。 
边栏推荐
- 几种方式可以实现 JMeter 参数化?
- AUTOCAD——设置文字间距与行距
- One-way hash function
- How the WordPress administrator user name was leaked
- Applet to realize global data sharing
- Wechat applet slides to the top
- Golang []byte 转 File
- 反“内卷”,消息称 360 企业安全云将上线“一键强制下班”功能,电脑自动关闭办公软件
- The power of insight
- How the autorunner automated test tool creates a project -alltesting | Zezhong cloud test
猜你喜欢

This awesome low code generator is now open source!

One-way hash function

As a programmer, is it really that important for the underlying principles?
![[logodetection data set processing] (2) draw the label box of the training set picture](/img/66/6c19b80b99d1e3ce50bac439e0e903.jpg)
[logodetection data set processing] (2) draw the label box of the training set picture

Using GDB to quickly read the kernel code of PostgreSQL

How can JMeter parameterization be implemented?

2022 the 14th Nanjing International artificial intelligence product exhibition

Insight technology was selected into the "Aijian · privacy computing manufacturer panorama report" and was rated as a representative manufacturer of financial solutions

2022第十四届南京国际人工智能产品展会

2022 the 15th Nanjing International Digital Industry Expo
随机推荐
远程监控及数据采集解决方案
rk3399_9.0去掉设置的一级菜单network & internet
How to implement the association between interfaces in JMeter?
如何实现erp外网连接?
Data Lake (VI): Hudi and Flink integration
产品开发的早期阶段,是选择开发app还是小程序?
Kubernetes 1.24: preventing unauthorized volume mode switching
Li Kou daily question - day 18 -350 Intersection of two data Ⅱ
New exploration of meta company | reduce Presto latency by using alluxio data cache
Notes on the second test of C language
Kubernetes 1.24:StatefulSet引进了maxUnavailable副本数
[cloud native | kubernetes] in depth RC, RS, daemonset, statefulset (VII)
Consumption mode of Message Oriented Middleware
Remote monitoring and data acquisition solution
产品设计软件Figma用不了,国内有哪些相似功能的软件
One-way hash function
几种方式可以实现 JMeter 参数化?
Explain the opencv function filter2d() in detail and remind you that the operation it does is not convolution but correlation operation
小程序实现全局数据共享
4. Meet panuon again UI. Title bar of silver form