论SLAM技术发展趋势

2023-05-16

2018年7月底,深蓝学院发起并承办了“第一届全国SLAM技术论坛”。浙江大学章国锋老师、香港科技大学沈劭劼老师、上海交通大学邹丹平老师、中科院自动化所申抒含老师在“圆桌论坛:SLAM技术发展趋势”上分享了SLAM技术的趋势,现将内容整理公布,希望更多SLAMer受益。

章国锋:由于我的研究方向更偏向于视觉SLAM,所以我会从我的角度来讲一讲SLAM技术的发展趋势。

首先,我认为无论是视觉SLAM、视觉惯导SLAM、还是其他多传感信息融合SLAM,相关理论目前都已经发展到了一定的成熟度。之所以近年来SLAM被广泛关注,也是因为它已经在某些领域得到了应用。比如AR领域,Google和苹果分别推出的ARCore和ARKit。另外,SLAM技术也被应用于自动驾驶领域。因此,我认为SLAM的相关理论已经发展得比较成熟但是,在实际应用中,问题还相当复杂。因此,我们做了很多工程实际中的系统优化和打磨的相关工作。

另外,从做研究角度来讲,很多老师和同学比较关心的是:“我做SLAM,那么论文该怎么发?”我认为目前有两个趋势可以把握,一个趋势是将SLAM与深度学习相结合。而且,我也认为将SLAM与深度学习结合更容易有创新性,同时也符合现在的发展趋势。因此,我认为结合深度学习和SLAM可以发表一些论文。另一个趋势是,要使用新的传感器,比如最近新出现的Event Camera。使用Event Camera做SLAM近年来也取得了很多成果。因此,我认为使用新型传感器或者是研究原来没有被用于SLAM的多传感器的融合,是一个很好的研究方向,也相对容易发论文。

最后,从产业应用的角度来讲,我认为还是存在很多问题的。因为,目前很多结合深度学习的SLAM系统仍然处于研究阶段,距离工程实际应用还有一定的距离,需要我们做更多的研究。

申抒含:我从我的角度出发来讲一讲SLAM技术的发展趋势。

首先,从做研究的角度出发,我认为做SLAM和三维重建这些几何视觉方向的研究是非常难入门的。相对于研究deep learning,研究几何视觉会比较难发论文。例如我们课题组的学生,一般要到博士三年级或四年级才能开始写论文,前面几年都是在打基础。从发表论文的角度来说,做三维视觉相对来说确实难一些、慢一些。但是,我认为这也是一个机遇。这意味着在这个领域,想要很深入的理解SLAM是有一定的门槛的,而一旦你通过了这个门槛,你就达到了一定的认知高度,你就拥有了自己的独门绝技,未来无论是就业还是做研究,都有比较强的竞争力。因此,既然大家今天来参加这个论坛,那么一定是对三维几何视觉这个论题感兴趣的,我建议大家执著地坚持下去,会有好的结果的。

其次,从应用角度出发,我们当然希望基于视觉的SLAM和三维重建可以尽快落地、尽快产品化。但是,基于视觉传感器的SLAM和三维重建有一个很大的问题,那就是视觉传感器相对于高精度IMU、差分GPS和高分辨率的激光雷达等传感器来说精度不够高。同时,随着无人驾驶汽车、智能机器人等应用的不断推进,使得高精度的IMU、差分GPS和高分辨率的激光雷达等以前价格昂贵、产量很小、很难商用推广的传感器,正逐渐变得越来越便宜、越来越容易获取。在这种情况下,视觉传感器所能起到的作用会被一定程度的压制。比如做无人车,用激光雷达加高精度的差分GPS来做构图和定位是最传统、最有效的方式,而基于视觉的方式只能作为一个补充。但是,反过来想,这也会促进视觉算法的发展,不断提高视觉算法的鲁棒性,例如运用deep learning来解决传统视觉上的一些瓶颈的问题。目前来讲,基于视觉传感器的SLAM,最大的特点是价格便宜。图像传感器相对于其他传感器来说,它的价格永远是最低的,因为相机是我们最常见的设备。在这个前提下,如果我们能够让图像传感器在某种程度上替代其它的昂贵设备或者是辅助昂贵的设备来完成工作,那么对于视觉来说也是在未来应用中值得突破的地方。当然,我们还是希望视觉传感器的性能最终能够接近昂贵的激光雷达或者是差分GPS的性能,从而使它能够商用推广。目前来看,这还是有一定距离的,还有很多本质的问题需要我们去努力克服。

沈劭劼:我非常同意申老师所说的做SLAM是非常苦的这个观点。大家可能也都是花了两三年时间来打基础。但是,我认为这是非常值得的。在我自己的研究组里面,每个新进来的学生,我都会让他先手写Bundle Adjustment,最多只能用Eigen库,其它的库都不能用。写了BA之后,再开始看其它的研究内容。总体来说,我认为这个锻炼对他们来说收获还是比较大的。因为在写Bundle Adjustment的过程中,像非线性优化、各种调参技巧、可观测性问题、前端后端的连接问题、工程实践技巧、多传感器同步标定等问题,他们都亲自解决过一遍。在此之后,当他们遇到真实的工程问题时才会比较游刃有余。但是,有这么多知识需要学习,不花这么多时间也比较难实现,所以基本上就是目前这种状态。

首先,关于技术方面,因为我是机器人背景,所以我更倾向于研究如何真实解决工程问题,而不是一定要用某一种传感器、研究某一个问题、或者是一定要基于某一种概念去解决问题。因此,从解决工程问题的角度出发,我更愿意把SLAM问题看作是一个多传感器融合的问题。本质上,我们需要做的就是把多种传感器的model写清楚,然后选用某种类型的最小二乘去求解。至于是用单目相机还是双目相机、还是加GPS、加轮子里程计、加IMU其实并没有问题,因为那些传感器的model都做出来了。

其次,我会倾向于跳出纯SLAM这种比较狭窄的定义,而把SLAM问题当成是一个机器人的环境感知问题。这个问题包括真正意义上的建图,并不是指稀疏建图,也包括对多种不同天气以及动态环境建立真实的model,也就是simulative model方面的问题,而不能直接去掉动态环境这个因素。

最后,在SLAM工程的实际应用中。我认为需要区分清楚我们需要的到底是SLAM,还是L+M。我们需要Localization和Mapping,很多地方都需要这两个内容,但是在很多情况下我们并不需要Simultaneous Localization and Mapping。特别是在自动驾驶领域,绝大多数情况下,我们不需要做到simultaneous。但是在某些应用中,比如在VIO中,我们做的是simultaneous localization and mapping in the local environment。但是,环境的scale的大小需要根据我们的实际应用来确定。总的来说,SLAM是一个跟实际应用连接非常紧密的一个领域。希望大家能够修炼好基本功,在能手写Bundle Adjustment之后,当真正遇到一些特别的问题时,见招拆招去解决问题,不要拘泥于用某种特定形式的方法或者用某种特定的传感器。

邹丹平:我从沈老师这里学到很好的一点,那就是让学生手写Bundle Adjustment。以前我都是让学生调用Ceres,以后我也要让他们手写一个Bundle Adjustment。

关于SLAM,我跟各位老师的观点也是一样的。正如沈老师所说,SLAM要跟实际应用相结合。因为SLAM本身只是一个方法,也是一种技术,虽然它现在可以被应用到各个领域,但是它必须跟具体的应用场景结合才能发挥它的价值。当我与一些同学和朋友讨论时,有些同学提出,当他把一套开源的SLAM代码下载下来后,他发现有的代码在无人机数据集上面表现得很好,但是在小车上面表现得就不好。出现这个问题,就是因为每一套SLAM系统都与它的应用场景特性有关。无人机的VIO算法非常适合无人机这样的应用场景,因为无人机的机动性强,在飞行中加速度变化较大,所以运用了这一特性的无人机VIO算法在这种场景下的表现非常好。但是,如果把这套VIO算法应用到运行非常缓慢、平稳的小车上面,你会面临一个问题,车子在匀速运动下的加速度为零,这就造成了它的尺度的不可观测性,也意味着它失去了加速计的支持。没了加速计的支持,这个SLAM也就只相当于一个纯粹的Visual SLAM。因此,它的性能表现就会很差。

举这样的一个例子,是想说明在具体应用场景里面,我们要先把目标应用搞清楚,然后把后面的问题挖掘好,再去研究如何改进这个SLAM系统,如何把挖掘到的问题解决好。以问题为导向,可以更好地解决工程实际的问题。

vSLAM在线课程

深蓝学院第四期『视觉SLAM理论与实践』课程正在报名中,课程由高翔博士主讲,优秀学员颁发证书,并评选5位优秀学员获得小觅智能设立的10000元奖学金。

添加学院工作人员-书哲(微信:shenlanflying),领取课程优惠码,咨询课程事宜。

 

注:文章由深蓝学院第二期视觉SLAM课程优秀学员郑浩整理,未经允许,禁止以任何形式转载。

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

论SLAM技术发展趋势 的相关文章

  • 大师兄!SLAM 为什么需要李群与李代数?

    from https mp weixin qq com s sVjy9kr 8qc9W9VN78JoDQ 作者 electech6 来源 计算机视觉life 编辑 Tony 很多刚刚接触SLAM的小伙伴在看到李群和李代数这部分的时候 都有点
  • 《视觉SLAM十四讲》学习笔记-第四讲部分习题的证明思路

    1 验证SO 3 SE 3 和Sim 3 关于乘法成群 证明 先看SO 3 定义为 SO 3 R R3 3 RR I det R 1 S O 3 R
  • vscode_c++_slambook 编译配置

    工作目录 配置文件 launch json version 0 2 0 configurations name slamBook程序调试 type cppdbg request launch program fileDirname buil
  • 微信小程序SLAM AR零基础入门教程

    鬼灭之刃花街篇 开播在即 今天带大家零基础使用Kivicube制作一个炭治郎的SLAM AR云手办 可以通过微信小程序将AR版的炭治郎放置在家中 提前感受鬼灭的氛围 先上个GIF大家看看动态的展示效果 在这里先科普一下本次教程使用到的AR技
  • Event-based Stereo Visual Odometry(双目事件相机里程计)论文学习

    本文详细介绍一篇双目事件相机里程计的论文 Event based Stereo Visual Odometry 港科大沈邵劼团队Yi Zhou和TU Berlin的Guillermo Gallego共同完成 并公布了代码 我准备在接下来一段
  • Sophus使用记录

    sophus库是一个基于Eigen的C 李群李代数库 可以用来方便地进行李群李代数的运算 头文件 主要用到以下两个头文件 include
  • 使用EKF融合odometry及imu数据

    整理资料发现早前学习robot pose ekf的笔记 大抵是一些原理基础的东西加一些自己的理解 可能有不太正确的地方 当时做工程遇到的情况为机器人在一些如光滑的地面上打滑的情形 期望使用EKF利用imu对odom数据进行校正 就结果来看
  • rtabmap安装与使用

    参考 ubuntu18 04安装Rtabmap 具体详细步骤 教你手把手运行基于ZED的rtab map ZED入门 利用RTAB MAP做SLAM ubuntu16 04 ROS Kinetic rtabmap 源码 非ros版本 安装运
  • SLAM评估工具evo的使用

    evo官方指南 参考博客 lt 官方手册 这篇参考博客 完全可以掌握evo的基本操作 gt Then 实践出真知 1 安装evo sudo apt install python pip pip install evo upgrade no
  • vscode配置eigen3

    目录 1 头文件包含 2 c cpp properties json 3 CMakeList txt 4 完整代码 1 头文件包含 Eigen 核心部分 include
  • lego-LOAM跑自己的数据包无法显示全局点云地图解决(速腾聚创RS-LiDAR-16 雷达 )---SLAM不学无术小问题

    LeGo LOAM跑自己的数据包无法显示全局地图问题 注意 本文笔者使用环境 Ubuntu18 04 ROS melodic 版本 背景 3D SLAM新手 在看到了各种狂拽炫酷的3D点云图的之后决定亲自上手一试 首先当然的是最为经典的LO
  • LeGO-LOAM代码详细注释版

    学习LeGO LOAM时 写的代码注释github代码链接 一部分注释来自github用户wykxwyc 一部分来自网上查阅 还有一部分是自己的理解 持续更新中
  • GMAPPING的参数设置

    二 运行gmapping 我总结了运行gmapping的两种方法 1 基于命令行 rosrun gmapping slam gmapping scan scan delta 0 1 maxUrange 4 99 xmin 5 0 ymin
  • Ceres Solver从零开始手把手教学使用

    目录 一 简介 二 安装 三 介绍 四 Hello Word 五 导数 1 数值导数 2解析求导 六 实践 Powell函数 一 简介 笔者已经半年没有更新新的内容了 最近学习视觉SLAM的过程中发现自己之前学习的库基础不够扎实 Ceres
  • LOAM算法详解

    激光SLAM 帧间匹配方法 Point to Plane ICP NDT Feature based Method 回环检测方法 Scan to Scan Scan to Map LOAM创新点 定位和建图的分离 里程计模块 高频低质量的帧
  • Eigen几何模块的使用方法

    include
  • 视觉SLAM漫谈

    视觉SLAM漫谈 1 前言 开始做SLAM 机器人同时定位与建图 研究已经近一年了 从一年级开始对这个方向产生兴趣 到现在为止 也算是对这个领域有了大致的了解 然而越了解 越觉得这个方向难度很大 总体来讲有以下几个原因 入门资料很少 虽然国
  • SLAM练习题(十一)—— G2O实战

    SLAM 学习笔记 写在前面的话 算是一点小小的感悟吧 估计位姿的方法有线性方法和非线性方法 线性方法就是特征点法中的2D 2D的对极约束 3D 2D的PnP问题 非线性方法有BA优化 它将位姿的估计问题转换成了一个误差关于优化量的最小二乘
  • LIO-SAM运行自己数据包遇到的问题解决--SLAM不学无数术小问题

    LIO SAM 成功适配自己数据集 注意本文测试环境 Ubuntu18 04 ROS melodic版本 笔者用到的硬件以简单参数 激光雷达 速腾聚创16线激光雷达 RS Lidar 16 IMU 超核电子CH110型 9轴惯导 使用频率1
  • 3.Open3D教程——点云数据操作

    点云数据 本教程阐述了基本的点云用法 随需要的文件链接 1 显示点云 import open3d as o3d import numpy as np print Load a ply point cloud print it and ren

随机推荐

  • Kinect 获取深度图计算距离,并进行彩色图和深度图之间的映射

    Kinect 获取深度图计算距离 xff0c 并进行彩色图和深度图之间的映射 最近所进行的项目需要利用KINECT获取深度距离 xff0c 需要得到彩色图中某一点的位置 xff0c 在网上找了很多资料 xff0c 都不是很好 xff0c 碰
  • 十一个顶级的Git 客户端,绝对很实用!

    导读Git是一种免费开源的分布式版本控制系统 xff0c 可用于处理软件开发及另外几种版本控制任务 它旨在处理大大小小的各种项目 xff0c 并确保速度 效率和数据完整性 Linux用户主要可以通过命令行来管理Git xff0c 不过外面有
  • Windows USB串口接收GPS北斗模块数据和数据说明

    陈拓 2022 05 07 2022 05 09 1 简介 本文以GPS 43 北斗卫星定位授时导航模块HT1818Z3G5L为例 xff0c 在Win10下读数据 产品参数 引脚定义 2 连接PC机和HT1818Z3G5L模块 如图 xf
  • Linux也有全功能杀毒软件啦!

    导读近日 xff0c 瑞星公司推出瑞星杀毒软件Linux全功能版 xff0c 它是一款功能齐全 高性能的企业级安全产品软件 xff0c 并且新增国内首家 文件监控 与 网络监控 功能 xff0c 对Linux系统进行系统和网络双层防护 xf
  • 虚拟现实的起源、发展、爆发与沉淀

    虚拟现实的三生三世 闲来无事翻篇外文 xff0c 本博主并非故意蹭热点 xff08 奸笑 xff09 xff0c 结尾我会细说为何是三生三世 xff0c 不是五生五世 xff1a 虚拟现实远早于这个概念被创造和形式化之前 在这篇描写虚拟现实
  • UCOS消息队列的使用【转】

    UCOS消息队列的使用 转 收藏 消息队列的使用 1 需在以下文件中配置如下内容 OS CFG H OS MAX QS N 你需要的值 根据需要自己配置 define OS Q EN 1 Enable 1 or Disable 0 code
  • to_string函数的用法

    to string 函数 xff1a 将数字常量转换为字符串 xff0c 返回值为转换完毕的字符串 头文件 xff1a include lt string gt string s 61 to string i 将整数i转换为字符串表示形式
  • EKF2学习之控制融合模式

    By snowpang 2017 8 10 1 存储控制状态值 xff0c 并开启状态变化检测 control status value bitmask containing filter control status union filt
  • 经典算法 (四) 桶排序

    时隔一年 xff0c 小葵花课堂再次开课 xff0c 这次开课不会像之前那样很早就停课了 xff0c 在此给大家道个歉 xff1a 对不起 嘻嘻 又到了毕业季了 xff0c 废话不多说 xff0c 继续我们的算法学习 一丶算法描述 桶排序
  • 程序调试记录(纯自用)

    Stack类测试 xff1a 在测试Stck类型的变量内容是否正确时 xff0c 经常会通过把所有值pop出来输出的方法 xff0c 这样容易造成一个问题就是 xff0c 栈已经被弄空了 xff0c 以后再用的时候就会是一个空栈 所以 xf
  • vector详解

    引言 emmm 这篇博客写作的缘由其实就是我在日常使用vector的时候发现对vector并不怎么了解所以决定写这篇博客的 写这篇博客 xff0c 我参考了vector C 43 43 Reference中的内容 xff0c 及侯捷先生的
  • Eigen快速入门

    Eigen快速入门 一个简单的例子 span class hljs preprocessor include lt iostream gt span span class hljs preprocessor include 34 Eigen
  • PX4 的 ECL EKF 公式推导及代码解析

    原创作者 USRL所长 64 CSDN 文章来源 https blog csdn net u010307048 article details 100553475 如需转载联系联系原创作者 作者整理的内容如下 xff0c 干货很多 xff0
  • git fatal: The remote end hung up unexpectedly错误解决方法

    在使用git更新或提交项目时候出现 34 fatal The remote end hung up unexpectedly 34 原因是推送的文件太大 那就简单了 xff0c 要么是缓存不够 xff0c 要么是网络不行 xff0c 要么墙
  • 公开课精华|机器人的带约束轨迹规划

    本文章总结于大疆前技术总监 xff0c 目前在卡内基梅隆大学读博的杨硕博士在深蓝学院的关于机器人的带约束轨迹规划的公开课演讲内容 全文约5000字 笔者不是机器人领域的 xff0c 因此特地去了解了一下杨硕博士 xff0c 深感佩服 xff
  • 自动驾驶的重要一环:谈谈感知前沿技术

    本文总结于Waymo研发经理周寅于2021年8月29日在深蓝学院的讲座 讲座内容主要包括自动驾驶系统的总览 xff0c 自动驾驶感知的介绍 xff0c 以及感知的前沿动态和总结 1 自动驾驶系统总览 关于自动驾驶系统 目前主流的L4级别自动
  • 论文精读 | slam中姿态估计的图优化方法比较

    一 摘要 对于位置环境中的自主导航问题 xff0c 同步定位与建图 Simultaneous localization and mapping SLAM 是一个非常重要的工具框架 根据SLAM字面含义可以得知 xff0c 获取正确的环境表征
  • 自动驾驶中的多种卡尔曼滤波算法及推导详解,值得一读!

    鉴于卡尔曼滤波算在多传感器融合系统中使用的普遍性 xff0c 本文将单独就卡尔曼滤波算法及自动驾驶中常用的改进卡尔曼滤波算法进行详细介绍 首先介绍卡尔曼滤波的基本方法 xff0c 然后介绍针对非线性系统改进的扩展卡尔曼滤波 xff0c 最后
  • 入门ROS其实也没有那么难!

    作者 xff1a Tassel 相信提出这个问题的小伙伴已经对ROS有一定的了解 xff0c 但不管是出于工程应用还是理论学习 xff0c 我们都有必要谈谈ROS的概念 xff0c 从概念去理解ROS ROS xff08 机器人操作系统 x
  • 论SLAM技术发展趋势

    2018年7月底 xff0c 深蓝学院发起并承办了 第一届全国SLAM技术论坛 浙江大学章国锋老师 香港科技大学沈劭劼老师 上海交通大学邹丹平老师 中科院自动化所申抒含老师在 圆桌论坛 xff1a SLAM技术发展趋势 上分享了SLAM技术