VIO学习笔记一

article/2025/9/17 2:08:07

1. IMU(Inertial Measurement Unit,惯性测量单元)

      典型6轴IMU以较高频率(≥100Hz)返回被测量物体的角速度与加速度。受自身温度、零偏、振动等因素干扰,积分得到的平移和旋转容易漂移。IMU本身由一个陀螺仪和一个加速度计组成,分别测量自身的角速度和加速度。常用的6轴惯性测量单元类型为MEMS IMU,例如MPU 6050。

2. Visual Odometry(视觉里程计)

     以图像形式记录数据,频率较低(15−60Hz 居多),通过图像特征点或像素推断相机运动。

3. VIO (Visual-Inertial Odometry,视觉惯性里程计)

  (1)优劣势对比

    视觉和IMU定位方案存在一定互补性质:

    • IMU适合计算短时间、快速的运动; • 视觉适合计算长时间、慢速的运动;

    同时,可利用视觉定位信息来估计IMU的零偏,减少IMU由零偏导致的发散和累积误差;反之,IMU可以为视觉提供快速运动时的定位。

方案IMU视觉
优势

快速响应

不受成像质量影响

角速度普遍比较准确

可估计绝对尺度

不产生漂移

直接测量旋转与平移

劣势

存在零偏

低精度IMU积分位姿分散

高精度价格昂贵

受图像遮挡,运动物体干扰

单目视觉无法测量尺度

单目纯旋转运动无法估计

快速运动时易丢失

  (2)融合方案

    紧耦合

    融合过程本身会影响视觉和 IMU中的参数(如IMU的零偏和视觉的尺度)。典型方案为MSCKF和非线性优化。

    松耦合

    将 IMU 定位与视觉/GNSS 的位姿直接进行融合,融合过程对二者本身不产生影响,作为后处理方式输出。典型方案为卡尔曼滤波器。

     使用紧耦合原因

     • 单纯凭(单目)视觉或IMU都不具备估计Pose的能力:视觉存在尺度不确定性、IMU存在零偏导致漂移。

     • 松耦合中,视觉内部BA没有IMU的信息,在整体层面来看不是最优的。

     • 紧耦合可以一次性建模所有的运动和测量信息,更容易达到最优。

4. 其他

    由于SE(3)李代数性质复杂,在VIO中,我们通常使用SO(3)+t的形式表达旋转和平移。对平移部分使用矢量更新而非SE(3)上的更新。

以上博客内容为学习过程记录,如有错误,请各位指正。


http://chatgpt.dhexx.cn/article/4n2fhrrE.shtml

相关文章

VIO仿真

使用turtelbot3仿真,发现gazebo的imu没有重力加速度。放弃。还是使用公开数据集。 使用这个仿真​​​​​​vio_data_simulation/src at ros_version HeYijia/vio_data_simulation GitHub 看一下如何用这个仿真跑起来vio。 -- 将特征点反投回图像,…

3.4.1 VIO虚拟以太网原理

最后更新2021/08/12 VIO Server在此完全实现了一个标准的以太网交换机的功能,现在业界都有了高大上的名称:SDN(Software Defined Network),如果没有足够的网络知识(幸好只是网络链路层)&#x…

Vivado调用VIO核

文章目录 前言一、IP核的介绍二、VIO核1.作用2.调用方法 总结 前言 提示:本篇文章所使用的软件为Vivado2018.3: 以四选一数据选择器为例,使用verilog hdl语言以及Vivado自带的VIO,IP来实现功能 提示:以下是本篇文章正文内容&…

海思3519 VIO Sample例程讲解

海思VIO Sample例程讲解 海思SDK解压出来后,Sample包含各个功能模块的历程,本篇讲解VIO Sample历程。 进入VIO模块可以看到,VIO的main函数文件,先从main函数执行程序。 进入文件后首先看下VIO实现的功能,可以看到VIO…

PL-VIO论文阅读

PL-VIO: Tightly-Coupled Monocular Visual–Inertial Odometry Using Point and Line Features Yijia He 1,2,* , Ji Zhao 3, Yue Guo 1,2, Wenhao He 1 and Kui Yuan 1 2018 摘要 To address the problem of estimating camera trajectory and to build a structural 3D m…

DM-VIO简析

今天主要是针对DMVIO/DM-VIO的简析,中文网上有的东西都太少了,只能靠看完论文和组员们一起改代码。Lukas组这个东西在中文网被称为有史以来最好的VIO,但是实际过程中我们还是发现了许多不完美的地方。。。(比如ZUPT更新改造中该有的问题仍然在…

VIOSLAM 综述

文章目录 1.VIO 松耦合/紧耦合。2. 相机和IMU的缺点及互补性3. VIO融合算法流程及其模块分解:4. VIO 算法核心:5. 实验结果与总结:6. 参考文献: 1.VIO 松耦合/紧耦合。 Visual-Inertial Odometry(VIO)即视觉惯性里程计,有时也叫视觉惯性系统…

VIO系统介绍

VIO(visual-inertial odometry)即视觉惯性里程计,有时也叫视觉惯性系统(VINS,visual-inertial system),是融合相机和IMU数据实现SLAM的算法,根据融合框架的区别又分为紧耦合和松耦合…

vivado VIO (virtual input output)虚拟IO的使用

转自:https://blog.csdn.net/wordwarwordwar/article/details/77150930 一般情况下ILA和VIO都是用在chipscope上使用,VIO可以作为在chipscope时模拟IO。 譬如: 在使用chipscope时需要使用按键出发,但是没有设计按键或者板子不再身…

【Vivado那些事儿】-VIO原理及应用

虚拟输入输出(Virtual Input Output,VIO)核是一个可定制的IP核,它可用于实时监视和驱动内部FPGA的信号,如图所示。 可以定制VIO的输入和输出端口的数量与宽度,用于和FPGA设计进行连接。由于VIO核与被监视和驱动的设计同步&#xf…

python logger.exception_Python logging设置和logger解析

一、logging模块讲解 1.函数:logging.basicConfig() 参数讲解: (1)level代表高于或者等于这个值时,那么我们才会记录这条日志 (2)filename代表日志会写在这个文件之中,如果没有这个字段则会显示在控制台上 (3)format代表我们的日志显示的格式自定义,如果字段为空,那么默认…

Logger 基本用法

Logger 基本用法 简介 Simple, pretty and powerful logger for android 为Android提供的,简单、强大而且格式美观的工具 本质就是封装系统提供的Log类,加上一些分割线易于查找不同的Log;logcat中显示的信息可配置。最初的样子如下图 包含…

【Logback】<logger>、<root>标签详解

文章目录 背景一、\<logger>使用1.1、使用示例1.1、属性配置说明 & 演示1.1.1、name1.1.2、level1.1.3、additivity1.1.3.1、效果演示&#xff1a;additivitytrue1.1.3.1、效果演示&#xff1a;additivity"false" 1.2 appender-ref 二、\<root>使用2…

python之logger

import logging import os.path import time def test_log():"""指定保存日志的文件路径&#xff0c;日志级别&#xff0c;以及调用文件将日志存入到指定的文件中:paramlogger:"""# 创建一个loggerlogger logging.getLogger()logger.setLevel(l…

Python中logger日志模块详解

1 logging模块简介 logging模块是Python内置的标准模块&#xff0c;主要用于输出运行日志&#xff0c;可以设置输出日志的等级、日志保存路径、日志文件回滚等&#xff1b;相比print&#xff0c;具备如下优点&#xff1a; 可以通过设置不同的日志等级&#xff0c;在release版…

logger:一款管理日志的Python神器

最近要新开一个项目&#xff0c;需要配个 logger 来管理日志&#xff0c;今天分享一下&#xff0c;喜欢记得点赞、关注、收藏。 【注】文末提供交流互助群 import logging ori_logger logging.getLogger(custom_logger) ori_logger.setLevel(logging.INFO) ori_logger.addHa…

Tensorboard + Logger 日志记录

在Pytorch 训练模型的时候&#xff0c;需要日志帮助开发者记录些重要信息和参数&#xff0c;以方便开发者更好的调节模型及参数&#xff0c;常见的日志非 Tensorboard不可&#xff0c;但是Pytorch 对 Tensorboard 的支持不是十分完美&#xff0c;在记录模型重要参数时 Tensorbo…

深入理解 rootLogger、logLogger、qtLogger

作者: 一去、二三里个人微信号: iwaleon微信公众号: 高效程序员 在使用 Log4Qt 时,你会发现有一系列的 logger - rootLogger()、logLogger()、qtLogger(),简直傻傻分不清楚! 为什么会有这么多 logger? 各 logger 之间有什么关系? 它们均适用于哪种场景? 参考文档对这部…

logger 报错

logger 报错&#xff1a;&#xff08;log4j 起不来&#xff0c;log message打不出来&#xff09; No appenders could be found for logger (com.vip.qa.android.base.DriverFactory). log4j:WARN Please initialize the log4j system properly. 原因&#xff1a; log4j.prop…

java的logger_java.util.logging.Logger 使用详解

概述: 第1部分 创建Logger对象 要使用J2SE的日志功能,首先要取得java.util.logging.Logger实例,这可以通过Logger类的两个静态getLogger()方法来取得: staticLogger getLogger(String name) 查找或创建一个logger。staticLogger getLogger(String name, String resourceBun…