关心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. ppt修改默认字体

      首先,在文本框中输入文字,选中文字设置为自己需要的效果,比如文字字体设置为微软雅黑,大小设置为24,颜色设置为水绿色.   鼠标移动到到输入文本框的边上,此时鼠标形状会变成十字形,单击右键,在弹出 ...

  2. Android - 传统蓝牙通信聊天

    Android -传统蓝牙通信聊天 技术:java+Android4.4+jdk1.8 运行环境:Android4.4.Android7.0 概述 Android 传统蓝牙的使用,包括开关蓝牙.搜索设 ...

  3. (判断)window.open()窗口被关闭后执行事件

    $(function() { // start ready var $article_share=$('#body .article').find('li.share'); // $article_s ...

  4. Linux学习系列之Nginx调优实战

    Nginx配置文件性能微调 全局的配置 user www-data; pid /var/run/nginx.pid; worker_processes auto; worker_rlimit_nofi ...

  5. c端用户体系实现方案

    问题: 同个用户的来源 有微信,脸书,浏览器 怎么鉴定他们为同一个人呢? 解决: 数据库2张表 c_user表 记录c端用户 信息 记录 唯一uuid ,平台来源 手机号码 浏览器进来是匿名用户 无手 ...

  6. [Java.web]EL表达式

    <%@page import="cn.itcast.domain.Address"%> <%@page import="cn.itcast.domain ...

  7. 1027代码审计平台 3 Java maven

    使用成熟的构建工具对maven工程进行分析 官网:SCAN/Analyzing+with+SonarQube+Scanner+for+Maven 1.如下图修改settings.xml文件 1.1查看 ...

  8. 【转载】Python ConfigParser的使用

    1.基本的读取配置文件-read(filename) 直接读取ini文件内容-sections() 得到所有的section,并以列表的形式返回-options(section) 得到该section ...

  9. sed你所不知道的语法

    测试内容

  10. Spring cloud Hystrix的配置属性优先级和详解

    Hystrix配置属性详解 Hystrix可以配置属性的有以下类型: Execution:控制HystrixCommand.run() 的如何执行 Fallback: 控制HystrixCommand ...