热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【深蓝学院】手写VIO第1章第1节

0.引言完成了SLAM14讲的学习,来VIO进行进阶。1.概述与课程介绍Section1.课程介绍Section2.VIO概述为什么把视觉和IMU结合在一起&#




0. 引言

完成了SLAM14讲的学习,来VIO进行进阶。


1. 概述与课程介绍

Section1. 课程介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


Section2. VIO概述

在这里插入图片描述
为什么把视觉和IMU结合在一起?
因为这两个sensor是互补的,视觉测慢的,IMU测快的;视觉漂移小,IMU有漂移。

在这里插入图片描述
说VIO要明确是跟什么层次的IMU进行融合,各种层次的IMU的角速度普遍比较准确,但便宜的IMU加速度计精度差,基本上只能看个方向,贵的好的可以直接通过积分得到位姿。在飞机上用的很好的IMU,同样的算法在手机上可能就没那么好了。

手机的IMU可能几s就飞了,汽车级别的IMU可能估计个30s就飞了(在GPS,Lidar等失效的情况下)

在这里插入图片描述
VIO是在工业界用的较多的一种方案,主要在AR/VR, Robotic/无人机(drone),等,这些场景Lidar的功耗太高,不适合使用,比如VR眼镜,装个IMU是可以的。

而且在场景中要分清楚到底是基于地图的定位还是基于odometer的定位。基于odometer的定位是只要知道他的相对运动,而如果需要知道相对于真实物理世界的运动,则需要建图等,在地图中定位。

需要指出,相对运动无论多准都会有累积误差(VIO是估计相对位姿的),即使VIO很准还是会飘,就变成原来15s不能用,现在30s不能用的东西了。如果是基于地图定位就不用太过纠结odometry,AR/VR需要快速地知道短时间内物体的运动,VIO可用,手机防抖
在这里插入图片描述
视觉可以纠正IMU的零偏,IMU可以为视觉提供尺度信息,或者在视觉丢失的时候顶上去。

VIO可分为松耦合和紧耦合。


  • 松耦合: IMU和视觉自己算自己的,通过后处理的方法将两个结果融合(典型融合方法是Kalman滤波)。(因为后处理不会影响前面的结果,所以二者是相互独立的。)
    在这里插入图片描述

  • 紧耦合:IMU和视觉相互弥补。(视觉可能是一个BA,IMU是一组运动方程 )课程主要介绍紧耦合。
    在这里插入图片描述

在这里插入图片描述
GPS,RTK受场景约束,有些场景很好用,有些场景就不行。

在这里插入图片描述


Section 3. 预备知识回顾

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
默认以




T


w


i



Twi


Twi
表示IMU的定位信息,平移可以直接看作IMU在world中的坐标。

在这里插入图片描述
在这里插入图片描述
由四元数的叉乘可得,一个四元数




q



q


q
等于自身与




[


0


,


1



]


T




[0, \boldsymbol 1]^T


[0,1]T
做叉乘。

四元数求导:
在这里插入图片描述
对cos和sin进行泰勒展开即得四元数的变化量。

两个四元数叉乘就代表把右边的四元数按照左边的旋转转了一下。
参考:
在这里插入图片描述





δ


θ



\delta \theta


δθ








t



△t


t
趋近于0时即为角速度




ω



\omega


ω

当使用旋转矩阵表示旋转时(和四元数没有本质上的区别),导数可以用泊松公式表示:
在这里插入图片描述
因为





a






b


=


a


×


b



a ^\wedge b=a \times b


ab=a×b
,所以也可以写成





ω


×




\boldsymbol \omega_{\times}


ω×

左乘时









R


p







ϕ




=





(


R


p



)







\frac{\partial Rp}{\partial \phi}=-(Rp)^\wedge


ϕRp=(Rp)
,右乘是







R



p







-Rp^\wedge


Rp

导数算出来后,如果是按照左扰动模型求的,就左乘更新上去,右扰动就右乘更新上去。

SO(3)导数,比如对旋转的导数
在这里插入图片描述
本课程习惯使用右乘







推荐阅读
  • 地理信息、定位技术及其在物联网中的应用
    地理位置信息是物联网系统中不可或缺的关键要素,它不仅提供了物理世界的坐标,还增强了物联网应用的实用性和准确性。本文探讨了位置服务的基本概念、关键技术及其在物联网中的重要作用,特别介绍了定位技术的最新进展。 ... [详细]
  • 地球坐标、火星坐标及百度坐标间的转换算法 C# 实现
    本文介绍了WGS84坐标系统及其精度改进历程,探讨了火星坐标系统的安全性和应用背景,并详细解析了火星坐标与百度坐标之间的转换算法,提供了C#语言的实现代码。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文探讨了卷积神经网络(CNN)中感受野的概念及其与锚框(anchor box)的关系。感受野定义了特征图上每个像素点对应的输入图像区域大小,而锚框则是在每个像素中心生成的多个不同尺寸和宽高比的边界框。两者在目标检测任务中起到关键作用。 ... [详细]
  • 基于结构相似性的HOPC算法:多模态遥感影像配准方法及Matlab实现
    本文介绍了一种基于结构相似性的多模态遥感影像配准方法——HOPC算法,该算法通过相位一致性模型构建几何结构特征描述符,能够有效应对多模态影像间的非线性辐射差异。文章详细阐述了HOPC算法的原理、实验结果及其在多种遥感影像中的应用,并提供了相应的Matlab代码。 ... [详细]
  • 历经三十年的开发,Mathematica 已成为技术计算领域的标杆,为全球的技术创新者、教育工作者、学生及其他用户提供了一个领先的计算平台。最新版本 Mathematica 12.3.1 增加了多项核心语言、数学计算、可视化和图形处理的新功能。 ... [详细]
  • 车载T-BOX智能网联终端的设计与实现
    本文介绍了一款基于瑞萨RH850微控制器、TICC2640R2F蓝牙微控制器和高通MDM9628处理器的T-BOX车载终端的设计。该终端通过集成CAN总线、GPS定位、数据加密、蓝牙通信和LTE无线数据传输技术,实现了车辆信息的高效采集与云端通信,支持远程车辆控制和诊断等功能。 ... [详细]
  • 现代软件工程开发体验:结对编程
    距现代软件工程开课已经3周,按照课程安排,在最近的9天中,我们进行了极限编程模式的体验:pairwork(结对编程,具体见链接),对象是在academicsearchmap上添加一些新特性。经过选 ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 探讨一个显示数字的故障计算器,它支持两种操作:将当前数字乘以2或减去1。本文将详细介绍如何用最少的操作次数将初始值X转换为目标值Y。 ... [详细]
  • Android开发经验分享:优化用户体验的关键因素
    随着Android市场的不断扩展,用户对于移动应用的期望也在不断提高。本文探讨了在Android开发中如何优化用户体验,以及为何用户体验的重要性超过了技术本身。 ... [详细]
  • 探讨了生成时间敏感的一次性伪随机密码的方法,旨在通过加入时间因素防止重放攻击。 ... [详细]
  • 利用Python在DragonBoard 410c上解析GPS数据获取位置信息
    本文介绍了如何在DragonBoard 410c开发板上使用Python脚本来解析GPS报文,从而获取精确的位置信息。DragonBoard 410c集成了GPS、Wi-Fi和高性能GPU,非常适合用于各种物联网项目。 ... [详细]
author-avatar
knight
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有