关心SLAM技术的人有两种。一是像我这样的研究者,为了了解其中各种方法和模块的原理。二是机器人技术的开发者,旨在将SLAM技术用到他们自己的机器人上。从数量上来说,第二类人数远多于第一类,他们的需求也日益迫切。SLAM是许多机器人技术的基础。没有预计的位姿和地图,大部分任务都无法完成。这种需求,也是我们研究者应当认真思考、正面对待的,也是SLAM从实验室走向市场应用的第一步。

  那么,阻碍这种应用的困难在哪儿呢?是SLAM原理还不够明确吗?是视觉里程计、特征匹配、回环检测的技术不够先进吗?事实上,有一个很重要的东西,是应用者们很关心,但研究者们经常忽视的:那就是SLAM方案的易用性。

  反观当前多数开源SLAM方案,它们几乎都是研究者提出的。研究者做这些方案的目的,往往是为了实现自己某些新颖(但不一定可靠)的想法。实现出来之后,做几个实验,挑一部分漂亮的结果放在论文里去。这当然是无可厚非,甚至可以说,做研究本来就是如此的。但从应用者的角度去考虑,他们会花大量的时间配置程序的运行环境,为了看看效果是否和论文里相符(但通常失望的居多)。然后,他们会发现各式各样的问题。摄像头一快,匹配就跟不上了;地图里重复的东西一多,回环就测不对了;走廊的长度往往比真实的要短,等等。许多开发者都有这种经历,然而怎么办呢?只好去看源代码。接着他们又发现,一个实际的工程项目代码很庞大,阅读一遍还不如自己从头实现一遍。

  这就是所谓的易用性问题。

  为何要单独提这个问题呢?SLAM是众多机器人技术的基础。基础是什么?简而言之,“没有它不行,光有它没用”。试问现在为什么大家都想用SLAM?他们有各种不同的目的:想要机器人在房里自主运动啦,想要按顺序清扫整个地图啦,想要听到人的命令就跑去某个屋啦。如果机器人是一幢楼,开发者们更关心的是,如何在SLAM这个地基上建出高楼大厦。

  对于地基,我们有什么要求?无非是:简单、有效、坚实。一个符合这样条件的SLAM方案是什么样子?它是不是像现在开源方案那样,应用一些先进的技术,(有时)跑出了华丽的效果?似乎不是这样的。我们应该把易用性加到设计SLAM方案的考虑中来。甚至,我们还应该设计一个极端强调易用性的方案:

  • 请问你有什么传感器?       ——激光/单目/双目/RGBD/IMU等等。更可能同时有多个。它们应该是一种优雅地方式集成起来,容易配置。
  • 你的位姿和地图需要什么形式?       ——2D/3D位姿,栅格图/拓扑图/路标图等。

  然后,SLAM程序就自动决定用什么图像特征、闭环检测方法等等的东西,哗啦哗啦地运行起来了。开发者可以直接使用这些结果,也可以更进一步地调整:

  • 偏向于速度还是精度?
  • 是否使用GPU?
  • 匹配丢失后如何处置?

  当然,这些应该是有预设的。至于这个SLAM里头的参数,应该是由研究者事先调节好的。应用开发人员不需要,也不应该关心它们的具体的值。

  如果做一个强调易用性的SLAM,会不会有吸引力呢?

SLAM应用的一些思考的更多相关文章

  1. SLAM前端技术选择思考

    以前是专门做室内定位技术研究的,先后学习和分析了多种基于电磁的室内定位技术,如WiFi指纹定位(先后出现过RSSI.CTF.CIR多种指纹特征).WiFi ToF定位.低功耗蓝牙BLE以及iBeaco ...

  2. SLAM产品化的一些思考

    这两年一直在做SLAM产品化的一些工作,有些感触,想和大家分享一下.很多想法只是个人浅见,不当之处还望大家指正. 我这两年分别做了AR眼镜和辅助驾驶方向的开发,说实话,挫折大于成果.SLAM产品化之难 ...

  3. 分享| 语义SLAM的未来与思考(泡泡机器人)

    相比典型的点云地图,语义地图能够很好的表示出机器人到的地方是什么,机器人“看”到的东西是什么.比如进入到一个房间,点云地图中,机器人并不能识别显示出来的一块块的点云到底是什么,但是语义地图的构建可以分 ...

  4. SLAM for dummies中文翻译

    1.简介 本文的主要目的是简单介绍移动机器人领域中广泛应用的技术SLAM(同步定位与地图绘制)的理论基础以及应用细节.虽然目前存在很多关于SLAM技术的方方面面的论文,但是对于一个新手来说,仍然需要花 ...

  5. 高翔《视觉SLAM十四讲》从理论到实践

    目录 第1讲 前言:本书讲什么:如何使用本书: 第2讲 初始SLAM:引子-小萝卜的例子:经典视觉SLAM框架:SLAM问题的数学表述:实践-编程基础: 第3讲 三维空间刚体运动 旋转矩阵:实践-Ei ...

  6. 浅谈SLAM的回环检测技术

    什么是回环检测? 在讲解回环检测前,我们先来了解下回环的概念.在视觉SLAM问题中,位姿的估计往往是一个递推的过程,即由上一帧位姿解算当前帧位姿,因此其中的误差便这样一帧一帧的传递下去,也就是我们所说 ...

  7. 领域驱动和MVVM应用于UWP开发的一些思考

    领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...

  8. 关于面试题 Array.indexof() 方法的实现及思考

    这是我在面试大公司时碰到的一个笔试题,当时自己云里雾里的胡写了一番,回头也曾思考过,最终没实现也就不了了之了. 昨天看到有网友说面试中也碰到过这个问题,我就重新思考了这个问题的实现方法. 对于想进大公 ...

  9. 关于 CSS 反射倒影的研究思考

    原文地址:https://css-tricks.com/state-css-reflections 译者:nzbin 友情提示:由于演示 demo 的兼容性,推荐火狐浏览.该文章篇幅较长,内容庞杂,有 ...

随机推荐

  1. 文档内容类似项处理-Shingling

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jituotianxia2009/article/details/25339807 集合的Jaccar ...

  2. 建立dblink(database link)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/bisal/article/details/26730993 database linke是建立一个数 ...

  3. MSMQ向远程服务器发送消息----错误总结

    一:路径错误(Path)错误 如果向远程服务器发送消息,请使用格式名的形式,如: FormatName:Direct=TCP:121.0.0.1\\private$\\queueFormatName: ...

  4. TVS 选型

    TVS 选型 主要用于 IO 保护 TVS 的电压不要小于正常工作的电压,不然会影响正常工作. ESD 的电压很高,但是时间很短. TVS 有节电容,用于高速线路时要注意. 有双向的,也有单向的,还有 ...

  5. MySql 中的 FIND_IN_SET 的使用和相关问题

    MySql 中的 FIND_IN_SET 的使用和相关问题 QQ 群里有人讨论如果在 category_ids 中打开 12 的分类,而 category_ids 中的 ID 是以 逗号分开的. 使用 ...

  6. Http消息头中常用的请求头和响应头

    作为Web开发对常用http的请求头和响应头熟悉了解一下还是很有必要的.比如请求头中Content-type指定了请求的内容,若类型是application/x-www-form-urlencoded ...

  7. POJ2226Muddy Fields

    题目:http://poj.org/problem?id=2226 巧妙建图:以行或列上的联通块作为点,每个泥格子作为边,求最小点覆盖就可以了! 于是用匈牙利算法找最大匹配.注意要对右部点记录每一个左 ...

  8. Phonegap 通信原理

    下图为JavaScript调用本地代码的通信过程 Phonegap的核心API都是基于插件的,这些JavaScript API都会调用cordova.exec() 函数来完成操作.cordova.ex ...

  9. Haroopad安装与配置: Linux系统下最好用的Markdown编辑器

    1. Haroopad概述 Haroopad is a markdown enabled document processor for creating web-friendly documents. ...

  10. rabbitMQ应用,laravel生产广播消息,springboot消费消息

    最近做一个新需求,用户发布了动态,前台需要查询,为了用户读取信息响应速度更快(MySQL很难实现或者说实现起来很慢),所以在用户动态发布成功后,利用消息机制异步构建 redis缓存 和 elastic ...