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融合同理。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rust vs Go:常用语法对比(八)

题目来自 Golang vs. Rust: Which Programming Language To Choose in 2023?[1] 141. Iterate in sequence over two lists Iterate in sequence over the elements of the list items1 then items2. For each iteration print the element. 依次迭代两个列表 依次迭代列表项1…

聊天机器人如何增加电子商务销售额

聊天机器人和自动化对企业和客户来说都是福音。自动对话和聊天机器人(以下统称为“自动化”)通过自动回答问题或分配会话信息来帮助用户浏览品牌网站或电商商店。即时答案对客户来说非常有用,使用自动化也可以让原本与客户聊天的客服员工专注…

MacDroid for Mac:在Mac上访问和传输Android文件的最简单方式

MacDroid for Mac是一款帮助用户在Mac和Android设备之间传输文件的软件。由于Mac OS X本身并不支持MTP协议,所以透过USB将Android设备连接到Mac电脑上是无法识别的,更别说读取里面的文件了。 MacDroid可以帮助您轻松搞定这个问题,您可以将An…

产业大数据应用:洞察企业全维数据,提升企业监、管、服水平

​在数字经济时代,数据已经成为重要的生产要素,数字化改革风生水起,在新一代科技革命、产业革命的背景下,产业大数据服务应运而生,为区域产业发展主导部门提供了企业洞察、监测、评估工具。能够助力区域全面了解企业经…

output delay 约束

output delay 约束 一、output delay约束概述二、output delay约束系统同步三、output delay约束源同步 一、output delay约束概述 特别注意:在源同步接口中,定义接口约束之前,需要用create_generated_clock 先定义送出的随路时钟。 二、out…

【优选算法题练习】day9

文章目录 一、DP35 【模板】二维前缀和1.题目简介2.解题思路3.代码4.运行结果 二、面试题 01.01. 判定字符是否唯一1.题目简介2.解题思路3.代码4.运行结果 三、724. 寻找数组的中心下标1.题目简介2.解题思路3.代码4.运行结果 总结 一、DP35 【模板】二维前缀和 1.题目简介 DP…

百度智能云连拿四年第一,为什么要深耕AI公有云市场

AI是过去几年云计算市场中的最大变量,而大模型的成熟,毫无疑问将指数级增强这个变量。 记得在2022年年底,生成式AI与大模型开始爆火的时候,我们就曾讨论过一个问题:这轮AI浪潮中,最先受到深刻影响的将是云计…

Oracle 多条记录根据某个字段获取相邻两条数据间的间隔天数,小于31天的记录都筛选出来

需求描述:在Oracle中 住院记录记录表为v_hospitalRecords,表中FIHDATE入院时间,FBIHID是住院号, 我想查询出每个患者在他们的所有住院记录中是否在一个月内再次入院(相邻的两条记录进行比较),并且住院记录大于一的患者…

qsort的使用及模拟实现

qsort函数是C语言库中提供的一种快速排序,头文件是stdlib.h qsort的使用 qsort函数需要四个参数: 1.排序的起始位置的地址(数组名): arr 2.排序元素的个数: sizeof(arr)/sizeof(arr[0]) 3.排序元素…

echarts 饼图中间添加文字

需求:饼图中间展示总量数据 方法一、设置series对应饼图的label属性 series: [{type: "pie",radius: [55%, 62%],center: ["67%", "50%"],itemStyle: {borderRadius: 10,borderColor: #fff,borderWidth: 2},// 主要代码在这里label: …

protobuf入门实践1

protobuf入门实践1 下载和安装 protobuf:https://github.com/google/protobuf 解压压缩包:unzip protobuf-master.zip 2、进入解压后的文件夹:cd protobuf-master 3、安装所需工具:sudo apt-get install autoconf automake libt…

PostgreSQL数据库动态共享内存管理器——Dynamic shared memory areas

dsm.c提供的功能允许创建后端进程间共享的共享内存段。DSA利用多个DSM段提供共享内存heap;DSA可以利用已经存在的共享内存(DSM段)也可以创建额外的DSM段。和系统heap使用指针不同的是,DSA提供伪指针,可以转换为backend…

python与深度学习(六):CNN和手写数字识别二

目录 1. 说明2. 手写数字识别的CNN模型测试2.1 导入相关库2.2 加载数据和模型2.3 设置保存图片的路径2.4 加载图片2.5 图片预处理2.6 对图片进行预测2.7 显示图片 3. 完整代码和显示结果4. 多张图片进行测试的完整代码以及结果 1. 说明 本篇文章是对上篇文章训练的模型进行测试…

工具推荐:Linux Busybox

文章首发地址 BusyBox是一个开源的、轻量级的、可嵌入式的、多个Unix工具的集合。BusyBox提供了各种Unix工具的实现,包括文件处理工具、网络工具、shell工具、系统管理工具、进程管理工具等等。它被设计为一个小巧、高效、可靠、易于维护的工具,适用于嵌…

微服务——服务异步通讯RabbitMQ

前置文章 消息队列——RabbitMQ基本概念容器化部署和简单工作模式程序_北岭山脚鼠鼠的博客-CSDN博客 消息队列——rabbitmq的不同工作模式_北岭山脚鼠鼠的博客-CSDN博客 消息队列——spring和springboot整合rabbitmq_北岭山脚鼠鼠的博客-CSDN博客 目录 Work queues 工作队列…

设计模式 - 工厂模式

一、 简单工厂(Simple Factory Pattern) 1、概念 一个工厂对象决定创建出哪一种产品类的实力,但不属于GOF23种设计模式。 简单工厂适用于工厂类负责创建的对象较少的场景,且客户端只需要传入工厂类的参数,对于如何创…

Andrew算法求凸包模板

前置知识 向量的叉乘: 设 a ⃗ ( x a , y a , z a ) , b ⃗ ( x b , y b , z b ) \vec a(x_a,y_a,z_a), \vec b(x_b, y_b,z_b) a (xa​,ya​,za​),b (xb​,yb​,zb​), 令 a ⃗ \vec a a 和 b ⃗ \vec b b 的叉乘为 c ⃗ \vec c c , 有: c ⃗ ∣ i j k x a y a z a x b y…

【深度学习】GPT-3

2020年5月,OpenAI在长达72页的论文《https://arxiv.org/pdf/2005.14165Language Models are Few-Shot Learners》中发布了GPT-3,共有1750亿参数量,需要700G的硬盘存储,(GPT-2有15亿个参数),它比GPT-2有了极大的改进。根…

钉钉返回:访问ip不在白名单之中,请参考FAQ

新版钉钉 在开发管理-服务器出口IP-配置返回错误信息返回给你的requestIp

k8s部署新版elasticsearch+kibana并配置快照备份

版本:es 7.17.6 kibana 7.17.6 k8s:1.19.16 一、介绍 Elasticsearch和Kibana是一对强大的开源工具,通常一起使用以构建实时数据分析和可视化解决方案。 Elasticsearch: Elasticsearch是一个分布式、高性能的实时搜索和分析引擎。它构建在开源搜索引擎库Lucene之上…