欢迎走进VSLAM

2023-05-16

1 开启新技术之门

SLAM,全称叫做Simultaneous Localization and Mapping,中文叫做同时定位与建图。SLAM技术发展到如今已经几十年,目前以激光雷达作为主传感器的SLAM技术比较稳定、可靠,仍然是主流的技术方案。但随着最近几年计算机视觉技术的快速发展,SLAM技术越来越多的应用于家用机器人、无人机、AR设备,基于视觉的Visual SLAM(简称VSLAM)逐渐开始崭露头角。因为对VSLAM的研究要求,我对这一块展开了一些情报搜索,接下来,对前段时间学习到的资料与心得进行一下整理与分享。

如果想深入学习SLAM,可以参考一些成熟的方案来学习,各个高校提高的素材是很多的,比如宾大、MIT、ETH、香港科技大学、帝国理工等等都有比较好的代表作品,还有一个比较有前景的就是三维的机器视觉,普林斯顿大学的肖剑雄教授结合SLAM和Deep Learning做一些三维物体的分类和识别, 实现了一个对场景深度理解的机器人感知引擎。

2 开门走进VSLAM

总的来说,就是通过摄像机对周围环境进行图像采集,并对图像进行滤波和计算,完成自身位置确定和路径识别,并做出导航决策的一种新的导航技术。视觉导航采用被动工作方式,设备简单,成本低廉,应用范围广。视觉导航最主要的特征是自主性和实时性,无需依靠外界任何设备,视觉导航只需对储存系统和环境中的信息进行计算就可以得出导航信息。

3 深度解剖VSLAM

整个SLAM大概可以分为前端和后端,前端相当于VO(视觉里程计),研究帧与帧之间变换关系。首先提取每帧图像特征点,利用相邻帧图像,进行特征点匹配,然后利用RANSAC去除大噪声,然后进行匹配,得到一个pose信息(位置和姿态),同时可以利用IMU(Inertial measurement unit惯性测量单元)提供的姿态信息进行滤波融合。

后端则主要是对前端出结果进行优化,利用滤波理论(EKF、UKF、PF)、或者优化理论TORO、G2O进行树或者图的优化。最终得到最优的位姿估计。

后端这边难点比较多,涉及到的数学知识也比较多,总的来说大家已经慢慢抛弃传统的滤波理论走向图优化去了,后面也会展开说明。

因为基于滤波的理论,滤波器稳度增长太快,这对于需要频繁求逆的EKF(扩展卡尔曼滤波器),PF压力很大。而基于图的SLAM,通常以keyframe(关键帧)为基础,建立多个节点和节点之间的相对变换关系,比如仿射变换矩阵,并不断地进行关键节点的维护,保证图的容量,在保证精度的同时,降低了计算量。

列举几个目前比较有名的SLAM算法:PTAM,MonoSLAM, ORB-SLAM,RGBD-SLAM,RTAB-SLAM,LSD-SLAM。

VSLAM的整体技术框架主要包括:传感器数据预处理前端后端回环检测建图
在这里插入图片描述

3.1 传感器数据

传感器数据预处理。这里的传感器包括摄像头、惯性测量单元(Inertial measurement unit,简称IMU)等,涉及传感器选型、标定、多传感器数据同步等技术。
在这里插入图片描述

3.2 前端

又称为视觉里程计(visual odometry,简称VO)。主要是研究如何根据相邻帧图像定量估算帧间相机的运动。通过把相邻帧的运动轨迹串起来,就构成了相机载体(如机器人)的运动轨迹,解决了定位的问题。然后根据估算的每个时刻相机的位置,计算出各像素的空间点的位置,就得到了地图。

VSLAM中,前端主要涉及计算机视觉相关的算法。典型做法一般是:首先提取每帧图像特征点,对相邻帧进行特征点粗匹配,然后利用RANSAC(随机抽样一致)算法去除不合理的匹配对,然后得到位置和姿态信息。整个过程涉及到特征提取、特征匹配、对极几何、PnP、刚体运动、李代数等多视图几何知识。
相邻图像特征点匹配

前面说视觉里程计只计算相邻帧的运动,进行局部估计,这会不可避免的出现累积漂移,这是因为每次估计两个图像间的运动时都有一定的误差,经过相邻帧多次传递,前面的误差会逐渐累积,这样,轨迹漂移(drift)会越来越厉害。

解决轨迹漂移的方法有两个:后端优化回环检测
轨迹漂移现象

3.3 后端

后端的作用主要是对前端的结果进行优化,得到最优的位姿估计。主要有两种方法:

一 基于滤波理论的优化
主要有 EKF, PF, RBPF, UKF等方法,其中EKF(扩展卡尔曼滤波)在早期是主流的方法。它的思路是将状态估计模型线性化,并用高斯分布近似其噪声,然后按照卡尔曼滤波进行预测来更新。

但是实际上,这种对噪声的高斯分布大部分情况下是不成立的,此外,线性化过程中丢失了高阶项

二 非线性优化(图优化)
它的基本思想是将优化的变量作为图的节点,误差项作为图的边,在给定初值后,就可以迭代优化更新。由于图优化的稀疏性,可以在保证精度的同时,降低计算量。

总结:
后端优化涉及到的数学知识比较多,具有较高的难度。总的来说,从状态估计的角度来讲,SLAM是一个非线性非高斯系统。因此传统的滤波理论已经逐渐被抛弃,而图优化已经成为主流方法。

3.4 回环检测

主要目的是让机器人能够认识自己曾经去过的地方,从而解决位置随时间漂移的问题。

视觉回环检测一般通过判断图像之间的相似性完成,这和我们人类用眼睛来判断两个相同的地点是一样的道理。因为图像信息丰富,因此VSLAM在回环检测中具有很大的优势。

当回环检测成功后,就会建立现在的图像和过去曾经见过图像的对应关系,后端优化算法可以根据这些信息来重新调整轨迹和地图,从而最大限度地消除累积误差。
回环检测效果

3.5 建立地图

SLAM根据不同的传感器类型和应用需求建立不同的地图。常见的有2D栅格地图、2D拓扑地图、3D点云地图等。

比如前面提到过的扫地机器人,它只需要知道房屋内部的简单二维地图就可以了,不需要知道房屋到底有多高;它只需要知道哪里可以通过,哪里是障碍物,而不需要知道这个障碍物到底是什么,长什么样子;因此目前大部分具有SLAM功能的扫地机器人几乎都是采用廉价的消费级激光雷达方案,很少采用视觉SLAM方案(VSLAM也不够稳定)。
扫地机器人建立的2D地图

2D拓扑地图更强调地图元素之间的连通关系,而对精确的位置要求不高,去掉了大量地图的细节,是一种非常紧凑的地图表达方式。如下所示:
2D拓扑地图

3D点云地图在VSLAM中用的比较多,主要用于真实场景的视觉重建,重建的地图非常直观漂亮。但是点云地图通常规模很大,比如一张VGA分辨率(640 x 480)的点云图像,就会产生30万个空间点,这会占据非常大的存储空间,而且存在很多冗余信息。
3D点云地图

4 做一个总结

前面介绍了VSLAM的典型技术框架。我们可以看到,将SLAM算法拆解后,用到的技术多是传统的计算机视觉算法,尤其是多视角几何相关知识。与当前大热的深度学习“黑箱模型”不同,SLAM的各个环节基本都是白箱,能够解释得非常清楚。但,SLAM算法并不是上述各种算法的简单叠加,而是一个需要相互折中、密切配合的复杂系统工程

5 展望一下未来

目前,依然存在着很多问题,制约着SLAM技术的未来发展,需要正在读文章的好朋友与辛苦的研究人员前来一起解决攻关!

多传感器融合、优化数据关联与回环检测、与前端异构处理器集成、提升鲁棒性和重定位精度都是SLAM技术接下来的发展方向。

SLAM在全面进入消费级市场的过程中,也面对着一些阻力和难题。比如Sensor精度不高、计算量大、Sensor应用场景不具有普适性等等问题。

从机器人的感知部分来说,传感器性能提升、前端处理(目前的sensor前端处理做的太少,给主CPU造成了很大的负担)、多传感器融合是一个很大的增长点。

现在人工智能也开始扬头,深度学习、神经网络专用的分布式异构处理器及其协处理器成为紧急需求,我个人很看好这一领域,也希望国内有公司能把这块做好。

也有好多创业公司做底层工艺比如高推重比电机、高能量密度电池、复合材料,他们和机器人产业的对接,也会加速机器人行业的发展。整个机器人生态架构会越来越清晰,从硬件层到算法层到功能层到SDK 再到应用层,每一个细分领域都有公司切入,随着这些产业节点的完善,能看到机器人行业的前景还是很棒的,相信不久之后就会迎来堪比互联网的指数式增长!

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

欢迎走进VSLAM 的相关文章

  • VSLAM框架:ORB_SLAM2采用ROS Bag获取数据

    转载自 xff1a https blog csdn net weixin 45929038 article details 114240409 VSLAM框架 xff1a ORB SLAM2采用ROS Bag获取数据 JasonLi0012
  • vslam流程框架介绍

    平常扫地机产品上经常听说使用了vslam技术 xff0c 那么这个vslam到底是什么呢 xff0c 我们下面一起来看看 vslam是什么 xff1f VSLAM 即 Visual Simultaneous Localization and
  • VSLAM框架:ORB_SLAM2采用ROS Bag获取数据

    ORB SLAM2采用ROS Bag获取数据 前言一 ROS bag数据1 ROS bag简介2 获取数据集3 查看数据集信息 二 配置文件1 配置ros文件2 配置内参文件三 启动节点1 回放ROS bag数据集2 深度相机节点 前言 之
  • VIO/VINS/VSLAM问题定位流程与思路

    首先假设读者是了解基础VSLAM xff0c 了解VIO基础 至少要会标定 xff0c 调过几个开源系统的 先说一下双目的VINS FUSION xff0c 大部分问题都是基线造成的问题 xff0c 简单点说就是如果使用较短的基线如5cm
  • 车载VSLAM与激光雷达方案

    基于VSALM在计算机视觉领域的领先技术 xff0c 提供优异的视觉目标检测功能 提供前视视觉感知 xff0c 环视视觉感知以及APA系统的一站式ADAS功能解决方案 基于激光与视觉检测的融合结果 xff0c 覆盖更为广泛的应用场合 从特征
  • vslam

    目录 隐藏 1 SLAM 介绍 1 1 什么是SLAM 1 2 SLAM与视觉里程计 xff08 Visual Odometry xff09 1 3 SLAM和SfM 2 主流开源SLAM方案 2 1 视觉传感器 2 2 激光传感器 2 3
  • VSLAM框架对比

    xff08 一 xff09 单目VSLAM特点介绍 xff1a 1 ORB SLAM2 工作流程 xff1a 主要模块 xff1a 前端 xff1a ORB特征提取匹配 xff0c 估计相机位姿 xff1b 根据跟踪地图点数的减少选择关键帧
  • VSLAM综述

    传统SLAM算法及相关成果的介绍 根据传感器的分类可将VSLAM大致分为单目SLAM 双目SLAM xff08 立体 xff09 和RGB D SLAM 有根据对图像信息不同的处理方式可分为直接法SLAM和基于特征SLAM 直接法主要有直接
  • vslam: 扫盲之旅

    ICCV研讨会 xff1a 实时SLAM的未来以及深度学习与SLAM的比较 http blog csdn net qq 18661939 article details 51919329 The Future of Real time SL
  • vSLAM重读(4): OKVIS--KeyFrame-based Visual-Inertial SLAM

    1 摘要 视觉传感器与IMU传感器互补 61 61 gt VIO系统 xff1b 由最初的以滤波为主题 xff0c 现在逐渐转换为非线性优化来实现SLAM xff1b 提出一种方法将视觉信息与IMU测量数据紧密结合 xff0c 将IMU的误
  • vSLAM重读(5): vSLAM中对双目相机的数据处理及与单目相对比

    1 双目相机概述 双目立体视觉模型 双目模型求取深度 双目立体相机分别校准可参考 ROS 单目相机 分别校准 双目立体匹配算法案例 https www cnblogs com riddick p 8486223 html https www
  • 鱼眼+红外+IMU+VSLAM+SLAM

    一 目的 1 想知道 xff1a 二 参考 1 一分钟详解鱼眼镜头标定基本原理及实现 https mp weixin qq com s VyxoTaYtYPB Bfh3JCXl1A 三 注意 四 操作
  • Vslam方案+源码,轻松搞定视觉slam

    原创 xff1a 涛涛CV 涛涛CV 今天 关注涛涛CV xff0c 设为星标 xff0c 更新不错过 VSLAM方案 目前基于视觉的SLAM技术有多种组合形式 xff08 见下表 xff09 方案 特点 TOF 成本高 xff0c 分辨率
  • 欢迎走进VSLAM

    1 开启新技术之门 SLAM xff0c 全称叫做Simultaneous Localization and Mapping xff0c 中文叫做同时定位与建图 SLAM技术发展到如今已经几十年 xff0c 目前以激光雷达作为主传感器的SL
  • ORB-SLAM2:一种开源的VSLAM方案(译文)

    摘要 xff1a ORB SLAM2是基于单目 xff0c 双目和RGB D相机的一套完整的SLAM方案 它能够实现地图重用 xff0c 回环检测和重新定位的功能 无论是在室内的小型手持设备 xff0c 还是到工厂环境的无人机和城市里驾驶的
  • VSLAM与VIO的3D建图,重定位与世界观综述

    作者 紫川Purple River 编辑 汽车人 原文链接 xff1a zhuanlan zhihu com p 592225457 点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 点击进入 自
  • AirSim使用--vslam

    声明 xff1a 本文写于2020年7月 xff0c 只对当时的代码版本有效 0 下载zip 001 zip 002 zip 003等分卷文件时 xff0c 可以使用 xff1a ubuntu 如何解压 zip 001 zip 002 zi
  • ubuntu 安装Pangolin 过程

    前言 大家好 好久没有写技术博客了 在工作学习中遇到一些问题及解决方法 希望能帮助到大家 Pangolin 想必大家都非常熟悉了 这个是一款开源的OPENGL显示库 可以用来视频显示 而且开发容易 代码我们可以从Github 进行下载 ht
  • windows下编译、配置ceres库(保姆级教程)

    文章目录 前言 一 cmake安装 二 ceres 依赖库的下载 2 1 依赖库的下载 2 2 编译前准备工作 2 2 1 创建vs工程的输出文件夹 2 2 2 创建编译库的输出文件夹 2 3 编译Eigen库 2 3 1 编译Eigen3
  • 【语义】如何使用PointNet训练点云数据和点云分割(初探)

    大家好 今天给大家介绍下cvpr2017 一篇文章Pointnet 语义分割 该网络基于tensorflow 写的 非常轻巧方便 但是文章和代码有一定出入 在训练过程中出现过拟合现象 大概训练了10个小时多 1 需要准备的东东 1 Ubun

随机推荐

  • nrm安装与使用

    一 什么是nrm nrm 是一个 npm 源管理器 xff0c 允许你快速地在 npm源间切换 什么意思呢 xff0c npm默认情况下是使用npm官方源 xff08 使用npm config ls命令可以查看 xff09 xff0c 在国
  • Docker中的Dockerfile命令详解FROM RUN COPY ADD ENTRYPOINT...

    Dockerfile指令 这些建议旨在帮助您创建高效且可维护的Dockerfile FROM FROM指令的Dockerfile引用 尽可能使用当前的官方图像作为图像的基础 我们推荐Alpine图像 xff0c 因为它是严格控制的并且尺寸小
  • 视觉单词模型、词袋模型BoW

    多用于图像检索 分类 3 2 1 4 视觉单词模型 视觉词袋 xff08 BoVW xff0c Bag of Visual Words xff09 模型 xff0c 是 词袋 xff08 BoW xff0c Bag of Words xff
  • 卡尔曼滤波器推导与解析 - 案例与图片

    在SLAM的后端优化中有存在这两大类优化方法 滤波器优化和非线性优化 目前大多数基于视觉的SLAM算法都是采用的非线性优化的相关方法 如应用较多的G2O图优化框架 但是滤波器的方法仍然在某些情况下有应用 且以前不少论文都是基于滤波器优化的方
  • Ubuntu下使用USB串口接收数据

    环境 xff1a VMware xff0c Ubuntu 14 xff0c uBlox EVK M8L 1 把包含USB接口的uBlox插入PC中 xff0c 确定虚拟机右下角uBlox连接到虚拟机中 xff1b 2 在Ubuntu的终端中
  • docker ubuntu桌面

    docker run it rm p 8080 80 dorowu ubuntu desktop lxde vnc 转载于 https www cnblogs com fengjian2016 p 11417340 html
  • 三种蓝牙架构实现方案(蓝牙协议栈方案)

    蓝牙架构实现方案有哪几种 xff1f 我们一般把整个蓝牙实现方案叫做蓝牙协议栈 xff0c 因此这个问题也可以这么阐述 xff1a 蓝牙协议栈有哪些具体的架构方案 xff1f 在蓝牙协议栈中 xff0c host是什么 xff1f cont
  • linux 与 单片机 串口通信

    本人最近在尝试在linux下用串口与单片机通信 xff0c 虽然说网上资料例程五花八门 xff0c 但是缺乏严格的注释或者完整的实例 xff0c 或许本人能力有限 xff0c 某些问题无法理解 xff0c 在实际过程中遇到不少问题 xff0
  • 【异常】postman能够请求成功获取到参数,前端请求的却请求不到

    1 前端联调的时候 xff0c 反馈自己的参数没有生效 xff0c 无论传递任何参数都是一样的结果 盯了一下日志发现 postman请求的是 34 getParameter 34 34 provinceCode 34 34 11 34 34
  • JavaScript自动播放背景音乐

    问题描述 js控制audio自动播放音乐时报错 xff1a Uncaught in promise DOMException 我的报错之前的代码 xff1a code lt audio id 61 34 myaudio 34 src 61
  • 创建实例报错 未找到主机

    删除nova服务 重新注册 转载于 https www cnblogs com lsw blogs p 11594602 html
  • 创建实例 报错 secret 密钥找不到

    lt secret ephemeral 61 39 no 39 private 61 39 no 39 gt lt uuid gt 0668cc5e 7145 4b27 8c83 6c28e1353e83 lt uuid gt lt usa
  • C语言求1-1/3+1/5-1/7+...——小程序,大道理

    问题 xff1a 用C语言编写程序求1 1 3 43 1 5 1 7 43 示例 xff1a 1 include lt stdio h gt 2 void main 3 int n 61 1 4 float sum 61 0 a 61 1
  • C程序设计 (第三版) 谭浩强著 中文高清PDF版下载

    C程序设计 第三版 谭浩强著 中文高清PDF版下载 转载于 https www cnblogs com gavinhughhu archive 2009 12 08 1619072 html
  • 浅谈OCR之Onenote 2010

    上一次我们讨论了Tesseract OCR引擎的用法 xff0c 作为一款老牌的OCR引擎 xff0c 目前已经开源 xff0c 最新版本3 0中更是加入了中文OCR功能 xff0c 再加上Google的更新 维护 xff0c 可以说是潜力
  • element-ui弹窗实现自定义宽度

    lt el dialog title 61 34 title 34 visible sync 61 34 hiddenDialogCommon 34 width 61 34 width 34 64 close 61 34 closeDilo
  • Linux内核设计与实现 原书第3版中文版pdf

    下载地址 xff1a 网盘下载 内容简介 编辑 Linux内核设计与实现 原书第3版 基于Linux 2 6 34内核详细介绍了 Linux内核系统 xff0c 覆盖了从核心内核系统的应用到内核设计与实现等各方面的内容 Linux内核设计与
  • STM32电路设计注意

    以后画STM32的电路板 VDDA一定要接 张JF说 VDDA是给内部的时钟电路供电的 还有一定要留 串口或者 下载调试口 xff08 串口 xff09 或者显示器接口 输入输出设备最好都留着 这样才能方便调试 转载于 https www
  • Kerloud vision 视觉无人机室内定位演示

    产品介绍 云讷科技 xff08 深圳 xff09 有限公司作为无人机之都的一家创业公司 xff0c 旨在立足智能技术 xff0c 传播科技文化 xff0c 可以提供以无人系统为主打的行业方案和教育方案 xff0c 包括无人机飞行控制器 视觉
  • 欢迎走进VSLAM

    1 开启新技术之门 SLAM xff0c 全称叫做Simultaneous Localization and Mapping xff0c 中文叫做同时定位与建图 SLAM技术发展到如今已经几十年 xff0c 目前以激光雷达作为主传感器的SL