视觉SLAM——视觉里程计解决方案分析(间接法)

2023-05-16

目录

  • 基本问题 分析
  • 各类求解方案
  • 优缺点分析

基本问题

  视觉里程计是视觉SLAM技术的起点,其核心问题同SLAM技术一样,主要是定位构图,但视觉里程计解决的核心是定位问题,也就是相机的位姿。通俗地讲就是利用多张图像信息还原相机的运动
在这里插入图片描述
  以两帧图像为例。设空间点 P P P为路标点, p 1 , p 2 p_1,p_2 p1,p2为图像上的投影点。其中 p 1 , p 2 p_1,p_2 p1,p2为两帧图像正确匹配的特征点, O 1 , O 2 O_1,O_2 O1,O2为图像的坐标系。
  在 O 1 O_1 O1中, P P P点坐标为 ( X 1 , Y 1 , Z 1 ) (X_1,Y_1,Z_1) (X1,Y1,Z1) p 1 p_1 p1的坐标为 ( u 1 , v 1 , z 1 ) (u_1,v_1,z_1) (u1,v1,z1)
  同理,在 O 2 O_2 O2中, P P P点坐标为 ( X 2 , Y 2 , Z 2 ) (X_2,Y_2,Z_2) (X2,Y2,Z2) p 1 p_1 p1的坐标为 ( u 2 , v 2 , z 2 ) (u_2,v_2,z_2) (u2,v2,z2)
  同时。坐标系 O 1 , O 2 O_1,O_2 O1,O2之间的欧式变换矩阵为 R R R(旋转), t t t(平移)。
  视觉里程计(直接法)的基本问题可描述为,在已知或部分已知上述坐标的情况下,求解 R R R t t t
根据不同的已知信息,分为以下不同的解决方案。

各类求解方案

方案一:仅仅采集二维图像(2D-2D)(单目相机)

已知条件 p 1 ( x 1 , y 1 ) , p 2 ( x 2 , y 2 ) p_1(x_1,y_1),p_2(x_2,y_2) p1(x1,y1)p2(x2,y2)。注意z未知.

求解方案:对极约束,求解 E = t ∧ R E=t^\wedge R E=tR,如何对 E E E进行SVD分析,还原出 t , R t,R t,R。利用三角测量(三角化)可得到 P P P点的深度信息。

方案二:已知部分三维图像(2D-3D)(双目相机 or D-RGB相机)

已知条件 p 1 ( x 1 , y 1 , z 1 ) , p 2 ( x 2 , y 2 ) p_1(x_1,y_1,z_1),p_2(x_2,y_2) p1(x1,y1,z1)p2(x2,y2)。注意 z 2 z_2 z2未知,此类问题称为 P n P PnP PnP问题

求解方案1:对于 P n P PnP PnP问题的求解方法有很多,如:直接线性变换,BA优化等。当总的来说都是直接求解 R , t R,t R,t

求解方案2:求解 z 2 z_2 z2,得到图像的全部三维信息,转换为ICP问题(3D-3D)。求解 z 2 z_2 z2的方法称为 P 3 P P3P P3P

方案三:已知全部三维图像(3D-3D)(双目相机 or D-RGB相机)

已知条件 p 1 ( x 1 , y 1 , z 1 ) , p 2 ( x 2 , y 2 , z 2 ) p_1(x_1,y_1,z_1),p_2(x_2,y_2,z_2) p1(x1,y1,z1)p2(x2,y2,z2)。此类问题称为 I C P ICP ICP问题。

解决方案:SVD分解,BA优化;

这里特意提一下BA优化,这是一种同用的非线性优化方法,在SLAM中应用非常广泛。

优缺点分析

  对极约束对于采集图像的硬件要求低,有着较低的成本,但是求解得到 R , t R,t R,t有着尺度问题,需要在一开始对 t t t进行归一化。与此同时,需要利用三角测量才能知道特征点的深度信息。

  PnP与ICP问题在SLAM中常常混合出现,因为采集的图像可能出现部分图像没有深度信息。因此,采用双目或RGB-D相机避免了尺度问题,但增加了硬件成本。

在这里插入图片描述

参考文献:https://blog.csdn.net/u014709760/article/details/88059000

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

视觉SLAM——视觉里程计解决方案分析(间接法) 的相关文章

  • 微信小程序SLAM AR零基础入门教程

    鬼灭之刃花街篇 开播在即 今天带大家零基础使用Kivicube制作一个炭治郎的SLAM AR云手办 可以通过微信小程序将AR版的炭治郎放置在家中 提前感受鬼灭的氛围 先上个GIF大家看看动态的展示效果 在这里先科普一下本次教程使用到的AR技
  • 从0.3开始搭建LeGO-LOAM+VLP雷达+小车实时建图(保姆级教程,小白踩坑日记)

    背景 SLAM小白 因为项目需要花了两天时间编译代码 连接雷达实现了交互 踩了很多坑 简单记录一下 让后面感兴趣的朋友少走点弯路 肯定有很多不专业的 错误的地方 还请大家不吝赐教 噗通 也可以见知乎 https zhuanlan zhihu
  • Ubuntu18.04 安装速腾聚创最新驱动RSLidar_SDK采集XYZIRT格式的激光点云数据 --SLAM不学无术小问题

    Ubuntu18 04 安装速腾聚创最新驱动RSLidar SDK采集XYZIRT格式的激光点云数据 新款驱动支持RS16 RS32 RSBP RS128 RS80 RSM1 B3 RSHELIOS等型号 注意 该教程旨在引导安装 可能现在
  • 各向异性(anisotropic)浅提

    文章目录 各向异性 anisotropic 定义 哪种物体具有各向异性反射 什么导致各向异性反射 总结 各向异性 anisotropic 定义 它指一种存在方向依赖性 这意味着在不同的方向不同的特性 相对于该属性各向同性 当沿不同轴测量时
  • 激光SLAM直接线性方法里程计运动模型及标定

    原创作者 W Tortoise 原创作者文章 https blog csdn net learning tortosie article details 107763626 1 里程计运动模型 1 1 两轮差分底盘的运动模型 1 2 三轮全
  • 【大一立项】如何亲手搭建ROS小车:硬件和软件介绍

    本次博客将详细介绍上篇博客中提到的ROS小车的硬件和软件部分 由于十一实验室不开门 所以部分代码还没有上传到Github 下位机 下位机使用Arduino 因为大一上刚学完用Arduino做循迹小车 其实Arduino作为ROS小车的下位机
  • 速腾聚创雷达最新驱动安装(包含ring和timestamp)运行lio-sam

    记录一下搞slam的过程 ring和timestamp 最近想跑lio sam 需要用到ring和timestamp两个参数 lio sam作者用的velodyne雷达是带这两个参数的 但是rs雷达的老版驱动录制的点云包没有这两个参数 在g
  • Difference Between LiDAR and RADAR——LiDAR和RADAR的不同

    Difference Between LiDAR and RADAR 原文连接 https www differencebetween com difference between lidar and vs radar 翻译 RADAR和L
  • LeGO-LOAM论文翻译(内容精简)

    LeGO LOAM是一种在LOAM之上进行改进的激光雷达建图方法 建图效果比LOAM要好 但是建图较为稀疏 计算量也更小了 本文原地址 wykxwyc的博客 github注释后LeGO LOAM源码 LeGO LOAM NOTED 关于代码
  • 互转(经纬度、地心坐标、东北天坐标)

    Part1三种坐标系介绍 经纬度坐标 假设空间某点P 用经纬度表示的话 你们B代表纬度 L代表经度 H代表大地高 纬度B P点沿着地球法线方向与赤道面的夹角 向北为正称为北纬 0 90 向南为负称为南纬 0 90 实际表示可以用 90 90
  • IMU预积分的一些理解

    IMU预积分 算是比较简单的一个算法 无奈网上找到的资料都讲的晦涩难懂 看明白了也觉得不过如此 讲一下我的理解 整体流程 1 推导IMU离散运动方程 2 根据离散运动方程 进行预积分 并将预积分的误差项拆分出来 因为我们在定义误差的时候 有
  • PnP 问题

    欢迎访问我的博客首页 PnP 问题 1 DLT 2 P3P 3 G2O 求解 PnP 3 1 单目 3 2 双目 4 自定义顶点与边优化内参 4 1 二元边 4 2 三元边 4 3 总结 5 参考 PnP Perspective n Poi
  • docker dbus-x11

    本来想用terminator启动nvidia docker 显示出图形界面的 结果发现启动的时候出问题了 terminator 1 dbind WARNING 07 31 53 725 Couldn t connect to accessi
  • GMAPPING的参数设置

    二 运行gmapping 我总结了运行gmapping的两种方法 1 基于命令行 rosrun gmapping slam gmapping scan scan delta 0 1 maxUrange 4 99 xmin 5 0 ymin
  • 用Eigen库练习代数运算方式以便后续对刚体旋转和移动做基础

    include
  • 无人车

    1 无人车四大核心技术 自动驾驶实际包含三个问题 一是我在哪 二是我要去哪 三是如何去 第一个问题是环境感知和精确定位 无人车需要的是厘米级定位 厘米级定位是无人驾驶的难点之一 不光是车辆本身的语义级定位 还有一个绝对坐标定位 第二个问题是
  • Ubuntu18.04安装pcl(过程/坑记录式教程)

    Ubuntu18 04安装pcl 1 下载pcl 2 安装依赖项 3 编译 4 安装 5 网上教程说要安装QT5和VTK 但按照本文的 本文记录了安装时出现的问题 出错的安装命令也记录了 建议浏览一遍再参考 不要错用了错误的指令 1 下载p
  • LOAM算法详解

    激光SLAM 帧间匹配方法 Point to Plane ICP NDT Feature based Method 回环检测方法 Scan to Scan Scan to Map LOAM创新点 定位和建图的分离 里程计模块 高频低质量的帧
  • Object SLAM: An Object SLAM Framework for Association, Mapping, and High-Level Tasks 论文解读

    是一篇来自机器人顶刊T RO的文章 发表于2023 5 An Object SLAM Framework for Association Mapping and High Level Tasks 论文 An Object SLAM Fram
  • 高翔博士Faster-LIO论文和算法解析

    说明 题目 Faster LIO 快速激光IMU里程计 参考链接 Faster LIO 快速激光IMU里程计 iVox Faster Lio 智行者高博团队开源的增量式稀疏体素结构 Faster Lio是高翔博士在Fast系列的新作 对标基

随机推荐

  • STM32f103时钟系统简介

    主要是讲解怎么看懂这个图 一 内置RC振荡器 xff08 HSI RC xff09 频率是约为8MHz xff0c 因为其频率不是很稳定 其可作为系统时钟的一个选项 二 晶振振荡器 xff08 HSE OSC xff09 从图中可以看到其是
  • Keil软件仿真

    首先就是配置上面图中的debug xff0c 选择软件仿真 然后是选择芯片 xff0c 根据自己的硬件芯片选择 8号标注是进入该图中的debyg模式 1号标注 xff1a 这个是一个RST按钮 xff0c 和硬件一样是复位的功能 2号标注
  • STM32F103系列NVIC中断优先级分组讲解

    一 简介 CM3内核支持256个中断 xff0c 16个内核中断 xff0c 240个外部中断 xff0c 并且拥有256级的可编程中断设置 但是STM32只用到了CM3内核的一部分 xff0c STM32有84个中断 xff0c 包括16
  • BOM详解

    1 BOM 什么是 Browser Object Model 专门操作浏览器窗口的API 没有标准 DHTML对象模型 window 2个角色 1 代替global作为全局作用域对象 所有全局函数和全局变量都是window的成员 2 封装所
  • ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied问题解决

    Windows Anaconda python3 6 安装依赖包发生错误如下 pip install i https pypi tuna tsinghua edu cn simple r requirements txt user ERRO
  • docker的深入浅出--3.Dockerfile介绍及保留字指令的使用run、entrypoint、onbuild、add和copy关键字以及自定义镜像

    目录 一 Dockerfile介绍 1 centos镜像来理解Dockerfile 2 docker的创建流程 二 Dockerfile的保留字指令 1 自定义centos镜像 xff08 run保留字 xff09 history指令 2
  • 通过MAVROS控制仿真无人机

    首先 xff0c 在目录中建立工作区 xff0c 并进行初始化操作 mkdir p catkin ws src cd catkin ws catkin init wstool init src rosinstall generator ro
  • Jetson nano+T265+PX4实现室内定点飞行

    目录 前言 一 MAVROS的安装 二 Realsense SDK和Realsense ROS的安装 四 给予串口权限 五 在QGC中修改PX4参数 六 启动VIO节点 七 参考文献 前言 1 硬件 飞控 xff1a Pixhawk 6C
  • ros通信之topic通信机制及基于topic的节点通信

    现在的我对于节点node和节点句柄nodehandle的粗俗的理解是 xff1a 节点 xff0c 就是一个进程 xff0c 在ros的环境中叫做节点node 在计算机的工作中叫做进程 xff0c 两者是同时的 xff0c 在ros中 xf
  • inter realsener D435 ROS驱动安装(非源码编译)

    1 安装公钥 sudo apt key adv keyserver keys gnupg net recv key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE sudo apt key adv keys
  • 斜率与倾斜角的关系

    k 61 tan 61 atan k k 斜率 倾斜角
  • NVIDIA JETSON TX2 安装扩展SATA硬盘

    安装扩展硬盘 在dash中搜素disk 进入磁盘管理工具 xff0c 可以看到我们的扩展硬盘 点击磁盘左下角设置按钮 xff0c 进入Format Partition 为硬盘起个名字 xff0c 比如JetsonSSD 250 xff0c
  • Qt——QMessageBox类详解

    QMessageBox类提供了一个模式对话框 xff0c 用于通知用户或询问用户问题并接收答案 我们先来看下QMessageBox information函数的使用 其原型 xff1a static int QMessageBox info
  • 【UWB定位】 - DWM1000模块调试简单心得 - 3

    UWB定位 DWM1000模块调试简单心得 1 UWB定位 DWM1000模块调试简单心得 2 前俩篇介绍了简单的一基站一标签TOF方式测距 xff0c 第三篇我们来搭建一个 一标签三基站 的定位demo 目的 标签与三个基站分别测距 xf
  • 51单片机——计数器与定时器的区别

    定时器和计数器是同一器件 计数器 其共同的特点是都有一个计数脉冲输入端 每输入一个脉冲 计数器就进行加1或减1计数 若计数器件的计数脉冲的频率固定 则可利用计数实现定时 这就是定时器 若计数器件的作用仅仅是记录输入脉冲的多少 则称为计数器
  • vue 中 如何修改【数组中】【对象的值】,解决步骤如下

    原创 https segmentfault com q 1010000012375354 a 1020000012377603 vue 中 如何修改 数组中 对象的值 通过数组的变异方法 xff08 Vue数组变异方法 xff09 我们可以
  • 英伟达Jetson TX2 资源贴

    NVIDIA JETSON TX2 install packages 原创博客 xff0c 欢迎转载 xff0c 请注明博客链接 xff1a 英伟达Jetson TX2 资源贴 资源汇总 jetson tx2 GPIO 解决方案汇总 Jet
  • 研究线程锁之RLock(一)

    死锁 xff1a 是指两个或两个以上的进程或线程在执行过程中 xff0c 因争夺资源而造成的一种互相等待的现象 xff0c 若无外力作用 xff0c 它们都将无法推进下去 此时称系统处于死锁状态或系统产生了死锁 xff0c 这些永远在互相等
  • 虚拟机中使用OpenGL遇到的错误总结

    由于VMware对OpenGL的支持有限 xff0c 目前最新版本的VMware workstation15 Pro只支持到OpenGL3 3的core profile xff08 核心模式 xff09 xff0c 在有条件的前提下建议安装
  • 视觉SLAM——视觉里程计解决方案分析(间接法)

    目录 基本问题 分析各类求解方案优缺点分析 基本问题 视觉里程计是视觉SLAM技术的起点 xff0c 其核心问题同SLAM技术一样 xff0c 主要是定位与构图 xff0c 但视觉里程计解决的核心是定位问题 xff0c 也就是相机的位姿 通