IMU和视觉融合学习笔记

利用纯视觉信息进行位姿估计,对运动物体、光照干扰、场景纹理缺失等情况,定位效果不够鲁棒。当下,视觉与IMU融合(VI-SLAM)逐渐成为常见的多传感器融合方式。视觉信息与IMU 数据进行融合,根据融合方式同样可分为基于滤波器和基于优化两类。按照是否把图像特征信息加入状态向量,又可以分为松融合与紧融合两类。

双目相机加入imu模块的的好处,是解决了高速运动中间数据处理的问题。相机运动过程中间出现模糊,两帧之间重叠区域太少,因此很难做特征点匹配。相机自己又能在慢速运动中间解决 imu的漂移问题,这两者是互补的。在之前研究视觉和IMU的基础上,开展IMU和视觉融合学习,并做记录。

在这里插入图片描述

一、IMU和视觉融合的方法

1、IMU
IMU以高频率(100HZ或200HZ)输出载体的角速度w和线加速度a,解算出高频率(100HZ或200HZ)的载体速度V、位置P以及旋转R
2、相机
零偏和噪声会比较大,以至于长时间使用后偏移的就很快,但是如果使用高精惯导,这个漂移误差会降低些,因为它是一种积分状态,从开始时间一直在持续积分,积分到不再使用为止,也就是它的V、P、R,他们分别每一个时刻都有一个误差,这个误差会产生迭代,所以长时间使用后就会漂移,

相机以30Hz或20Hz获得场景中的图像信息,利用图像中的特征信息,解算载体的旋转和平移
相机可以获得丰富的环境信息,并在长时间内的漂移误差较小,但在快速运动或旋转的环境中容易发生跟踪丢失的情况,且在面对挑战环境时定位精度会明显下降
3、融合的目标
融合的目标就是进行一个相互的补偿,主要有三个目标可以进行相互的补偿

  • 利用视觉里程计对IMU的累积漂移进行补偿,降低惯导的漂移误差
  • 对于单目视觉传感器,可以利用IMU进行场景深度的校正,缓解单目相机尺度不确定性问题
  • IMU的输出与环境无关,不受环境变化的约束,利用IMU与视觉进行补偿可以提高视觉里程计位姿估计的鲁棒性

二、IMU和视觉的初始化及参数估计方法

三、总结

相机标定
Kalibr 是这些工具中,唯一一个可以标定camToImu的,是vio必不可少的工具,其他的都有替代品。所以学习多种开源算法进行相机标定,并记录学习相机标定的过程。
一、相机标定
1、在场景中放置一个已知的物体
(1)识别图像和场景之间的对应关系
(2)计算从场景到图像的映射

相机的标定在最简单的情况下可以用这样一个方案:假定场景里面有一个已知物体,而且假定建立已知物体的一些点到图像中点的一些关系,接下来要做的就是寻找相机矩阵,把一些三维点映射到平面的两维点上面来,假定平面上的三维点的坐标是已知的,非常精确的,而且知道三维坐标而且知道图像中的点和三维模型的点之间的对应关系,利用这种3D到2D的对应关系,可以来做相机的标定

问题:必须非常精确地了解几何
必须知道3D - 2D对应关系
2、摄像机参数估计Resectioning
利用这种3D到2D的对应关系,可以来做相机的标定这种方案称之为Resectioning。
画成图像来看,就是三维点在这里,有一个两维照片,而且知道黑色的点有对应关系,那么要求的就是相机矩阵,就是3X4的相机矩阵,包含内参、外参所有的参数都在里面,直观上可以认为把这一张照片,在三维空间中摆到一个恰当的位置,使得从相机中心发出去的光线刚刚好要通过三维空间中的这些已知点,所以要解决的问题是:这个相机要放到三维空间中的什么位置才能让这个几何关系得以成立。

在做这样的方法的时候,假定这些三维点的坐标是非常精确已知的,然而在实际应用中是比较难做到的,很早以前会使用标定物,通过专业设备制作的过程中保证三维点的位置,然后有精确标定物之后标定相机矩阵。

3、基本方程(Basic Equations)
算法实现其实蛮简单的,任何的一个三维点,经过相机的投影矩阵之后,会投影到图像中的一个两维点,

二、两张图几何约束

三、三维重建

IMU参数标定学习笔记
惯性处理单元
1、参数标定
如果IMU测量数据本身就存在很大的误差,即输入到系统的就是错误信息上层应用系统的算法做得再好也会输出错误结果
(1)内参标定
相对于IMU自身的坐标系而言,在这个坐标系里面,它的数据所出现的误差,尽量把系统内部产生的误差消除掉
①良率检测
内参数标定比较关键,因为外参数标定与实际应用是有关系的,内参标定之前首先进行良率检测,标定是把传感器尽量消除,如果传感器测量的数据偏移的程度过大,那么矫正毫无意义,所以首先保证IMU是正常的。
②内参标定过程
标定IMU,就需要对IMU误差的来源进行建模,其实IMU测量过程中的误差是由很多不同的方面所引起的,建模是对一些比较明显的误差,已知的原因把它构建成数学模型,一些我们不知道的误差源那么就无视它,因为把所有误差都考虑进来会很复杂,这个是没有必要的。我们主要关心三个方面的误差来源:
 零偏
比如我们日常生活中的秤,如果不称重的读数不是零,那么这个时候的偏差值就是零偏,IMU上的零偏也是类似的道理。也就是IMU静止放置在某个地方,如果角速度非零,那偏差值就是零偏。
 尺度偏差
不管测量加速度还是角速度,还是磁力,都是通过物理量转化成电学量,比如电压、电阻和电流等,转化过程中称之为尺度,每一个轴上转化的尺度是不一样的,比如在x轴上受到了1牛顿的力,那么x轴上的力学转换器转换出来的电压可能是1.5V,但是在y轴上,同样是1牛顿,那么转化出来的电学量可能是1.8V,这两个电压不一样,中间存在一个系数的差,这个系数的差,是由很多原因造成的。尺度可以看成斜率。尺度也是有三个值,x轴、y轴、z轴
(2)外参标定
相对于内参标定而言,假设把IMU装到载板上,载板本身也是有坐标系的,IMU在自身坐标系上测到的值,怎么去换算到载板的坐标系上去表示
坐标变换的关系用T来表示,变化的参数T就是外参,外参与IMU实际安装的过程中安装在不同的地方有关系的,同时与所要变换的目标坐标系是有关系的,外参是不唯一的。

外参有很多种的,如果IMU与相机之间进行融合,那么相机与IMU之间的坐标变换关系就是外参,雷达与IMU融合同理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/43076.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【《机器学习和深度学习:原理、算法、实战(使用Python和TensorFlow)》——以机器学习理论为基础并包含其在工业界的实践的一本书】

机器学习和深度学习已经成为从业人员在人工智能时代必备的技术,被广泛应用于图像识别、自然语言理解、推荐系统、语音识别等多个领域,并取得了丰硕的成果。目前,很多高校的人工智能、软件工程、计算机应用等专业均已开设了机器学习和深度学习…

「网络编程」传输层协议_ TCP协议学习_及原理深入理解(一)[万字详解]

「前言」文章内容大致是传输层协议,TCP协议讲解,续上篇UDP协议。 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、TCP协议介绍二、TCP协议2.1 解包与分用2.2 谈谈可靠性2.3 TCP的工作模式2.4 确认应答(ACK)机制2.5 16位序号与…

绘出「星辰大海」:华为云Astro轻应用新手指南-第二章

第2章 Astro轻应用奇遇——用鼠标「拖拽」的开发 不被编程所困,像玩拼图一样打造订购系统! 今天,我们用鼠标拖拽的方式开发订餐应用。 读过本章,你可以同理开发出各异的订购小程序。 继续Astro轻应用旅行吧! 第1站…

WebSocket笔记

1. websocket介绍 WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输。 HTTP协议和WebSocket协议对比: HTTP是短连接W…

【JavaWeb】Tomcat底层机制和Servlet运行原理

🎄欢迎来到dandelionl_的csdn博文,本文主要讲解Java web中Tomcat底层机制和Servlet的运行原理的相关知识🎄 🌈我是dandelionl_,一个正在为秋招和算法竞赛做准备的学生🌈 🎆喜欢的朋友可以关注一…

iNav开源代码之Filters

iNav开源代码之Filters 1. 源由2. 滤波器应用类型2.1 一般滤波2.1.1 pt1Filter2.1.2 pt2Filter2.1.3 pt3Filter2.1.4 biquadFilter2.2 kalman滤波2.3 动态gyro带通滤波2.3.1 dynamicGyroNotchFilters2.3.2 secondaryDynamicGyroNotchFilters 2.4 rpm滤波 3. 滤波器技术类型3.1 …

C# SolidWorks 二次开发 -从零开始创建一个插件(2)

上一篇我详细讲解了如何创建一个插件,但是无界面无按钮,这种插件适合配合事件偷偷的在后台做点什么事情。今天这篇讲一下如何增加一些按钮到工具栏、菜单上去。 先告诉大家这个东西注册表在哪,因为solidworks在这方面做的不太好,…

prometheus监控mysql8.x以及主从监控告警

mysql8.x主从部署请看下面文档 docker和yum安装的都有 Docker部署mysql8.x版本互为主从_争取不加班!的博客-CSDN博客 Mysql8.x版本主从加读写分离(一) mysql8.x主从_myswl8双主一从读写分离_争取不加班!的博客-CSDN博客 安装部署…

uniapp 微信小程序 placeholder字体、颜色自定义

效果图&#xff1a; 1、template <input type"text" placeholder"搜索标题" placeholder-class"placeholder-style"></input>2、style .placeholder-style{color: #2D94FF; }

通过nexus3部署公司内部的私有npm仓库

简介&#xff1a; 登录时使用默认用户admin&#xff0c;密码不知道就需要找默认的&#xff0c;点击Sign in时会提示你路径&#xff0c;这里我是这样查的&#xff0c;在linux服务器上输入以下命令 ​编辑 前言&#xff1a; 准备工作&#xff0c;可能需要一台linux服务器&#x…

讯为RK3568开发板入门之-tftpnfs的配置

基础条件 VMware虚拟机 Ubuntu18.04 【网络配置陈桥接模式】 RK3568开发板【我是用讯为的RK3568】 网线连接路由器或者和电脑直连 配置TFTP和NFS的作用 使用tftp和nfs网络挂载可以很方便的进行软件的调试&#xff0c;挂载成功后只要把Ubuntu下编译好的文件程序放到挂载的目录…

思科路由器交换机密码破解教程

1. 路由器密码的恢复. 2600、3600等新系列路由器步骤&#xff1a; 1、启动路由器&#xff0c;60秒内按下ctrlbreak键2、rommon>confreg 0x21423、rommon>reset4、router#copy startup-config running-config5、router(config)#no enable secrect //可以删除密码也可以更…

一键批量JSON标注转PNG图片工具V1.1,支持labelme快捷矩形、圆以及轮廓标注

上次发布了一个批量将labelme标注的json文件转换为png文件工具&#xff0c;但是当时只是想着自己用的&#xff0c;功能相当简单&#xff0c;一些网友使用之后跟我反馈这玩意真”垃圾“&#xff0c;很多情况都没有进行设想&#xff0c;所以在功能上很欠缺。由于小陶这几天在外地…

如何提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力

专题一、空间数据获取与制图 1.1 软件安装与应用讲解 1.2 空间数据介绍 1.3海量空间数据下载 1.4 ArcGIS软件快速入门 1.5 Geodatabase地理数据库 专题二、ArcGIS专题地图制作 2.1专题地图制作规范 2.2 空间数据的准备与处理 2.3 空间数据可视化&#xff1a;地图符号与…

HTTP超本文传输协议

HTTP超本文传输协议 HTTP简介HTTP请求与响应HTTP请求请求行请求头空行请求体 HTTP响应响应行响应头空行响应体 HTTP请求方法GET和POST之间的区别HTTP为什么是无状态的cookie原理session 原理cookie 和 session 的区别cookie如何设置cookie被禁止后如何使用session HTTP简介 HT…

Java基础之stream流最新版,stream流的基本操作

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精…

vue实现仿手写稿样式,可导出成png图片

文章目录 环境实现效果代码 环境 安装html2canvas&#xff0c;用于将指定标签下的全部子节点转换为图片 npm install html2canvas实现 <template><div class"handwrite"><div id"left" class"left"><div id"backImg…

C++ | set与map的用法指南

前言 前面我们学习了vector、list等容器&#xff0c;其实他们都属于序列式容器&#xff0c;因为其底层为线性结构&#xff1b;今天我们学习使用的set与map是属于关联式容器&#xff0c;关联式容器更注重于数据检索访问的效率&#xff1b;本文所有的资料均查阅于文档&#xff0c…

RocketMQ深入分析

RocketMQ深入分析 1. 消息存储 目前的MQ中间件从存储模型来&#xff0c;分为需要持久化和不需要持久化的两种模型&#xff0c;现在大多数的是支持持久化存储的&#xff0c;比如ActiveMQ、RabbitMQ、Kafka、RocketMQ&#xff0c;ZeroMQ却不需要支持持久化存储而业务系统也大多…

BART模型和 Electra模型对比

总结 Electra模型在使用较少的计算资源的情况下能够达到跟大语言模型相近的效果。但BART模型对于传统的BERT中加入了不同种制造noise的方式&#xff0c;是BERT和GPT的结合体。Electra模型主要是Generator模型和Discriminator模型的结合体。 未知参数设置&#xff0c;两个模型…