SLAM产品化的一些思考
这两年一直在做SLAM产品化的一些工作,有些感触,想和大家分享一下。很多想法只是个人浅见,不当之处还望大家指正。
我这两年分别做了AR眼镜和辅助驾驶方向的开发,说实话,挫折大于成果。SLAM产品化之难,超出了我的想象。
先说说我做项目的一般思路。
- 前期调研。分析项目的产品化需求,输入输出,软硬件平台,以及相关(开源)算法的初步测试和分析。
- 算法架构设计。根据调研结果,大致确定算法模块的功能和具体实现方法。
- 迭代开发。开发过程中必然会碰到很多预料之外的问题。如果有备案,那么尝试备案方案。如果遇到了原理性的问题,那么要修正和扩展架构。
- 技术储备。开发过程中要时刻注重新技术和新方法的储备。
实际开发过程中,有几个方面会特别影响SLAM的进程。这和SLAM技术的特点有关。
其一,SLAM是一个技术栈,而不是一个单一算法。无论在哪个应用领域,开发者都会面临很多单一开源算法解决不了的实际问题。SLAM算法本身又有多种实现方式,滤波VS优化,稀疏VS稠密,松耦合VS紧耦合,里程计VS回环优化,人工特征VS语义特征,等等等等。因此,SLAM的架构设计既需要SLAM理论的深度和广度,又需要大量的实践经验,还需要对上下游的算法和硬件有比较充分的理解和认知。
其二,SLAM强依赖于硬件。硬件不同,算法大大不同,整个系统的计算复杂度、鲁棒程度和可扩展性都会有差别。多传感器SLAM更是提高了系统设计的复杂度。
其三,SLAM的实用化还需要探索。SLAM算法的不同模块耦合程度高,当算法不能满足要求时,不能简单通过调参或者增减模块控制精度,有可能需要调整整个算法架构或者传感器设计,因此总是属于系统中风险较高的部分,不可控性强。SLAM需要软硬件和计算平台强有力的支撑,但SLAM本身在项目中的地位经常无法达到如此的高度,因此会有些尴尬。
要解决以上几个问题并不容易,有几点意见仅供参考吧。
- 除了提升自身水平以外,SLAM圈子需要更深入的交流。泡泡机器人在普及方面做的很好,但可能在交流方面做得还不够深入。
- SLAM的架构设计应当高度模块化,尽量解耦。将建图和定位分开算是一定程度上的解耦。语义SLAM可以看做是将前端特征提取和SLAM系统解耦。SLAM也许不应当大包大揽所有功能。
- 针对应用场景做微创新。譬如,减小问题自由度,利用各种已知信息(landmark/map),等等。
路漫漫其修远兮。
SLAM产品化的一些思考的更多相关文章
- SLAM前端技术选择思考
以前是专门做室内定位技术研究的,先后学习和分析了多种基于电磁的室内定位技术,如WiFi指纹定位(先后出现过RSSI.CTF.CIR多种指纹特征).WiFi ToF定位.低功耗蓝牙BLE以及iBeaco ...
- SLAM应用的一些思考
关心SLAM技术的人有两种.一是像我这样的研究者,为了了解其中各种方法和模块的原理.二是机器人技术的开发者,旨在将SLAM技术用到他们自己的机器人上.从数量上来说,第二类人数远多于第一类,他们的需求也 ...
- 分享| 语义SLAM的未来与思考(泡泡机器人)
相比典型的点云地图,语义地图能够很好的表示出机器人到的地方是什么,机器人“看”到的东西是什么.比如进入到一个房间,点云地图中,机器人并不能识别显示出来的一块块的点云到底是什么,但是语义地图的构建可以分 ...
- 面向服务体系架构(SOA)和数据仓库(DW)的思考基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台
面向服务体系架构(SOA)和数据仓库(DW)的思考 基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台 当前业界对面向服务体系架构(SOA)和数据仓库(Data Warehouse, ...
- SLAM for dummies中文翻译
1.简介 本文的主要目的是简单介绍移动机器人领域中广泛应用的技术SLAM(同步定位与地图绘制)的理论基础以及应用细节.虽然目前存在很多关于SLAM技术的方方面面的论文,但是对于一个新手来说,仍然需要花 ...
- 高翔《视觉SLAM十四讲》从理论到实践
目录 第1讲 前言:本书讲什么:如何使用本书: 第2讲 初始SLAM:引子-小萝卜的例子:经典视觉SLAM框架:SLAM问题的数学表述:实践-编程基础: 第3讲 三维空间刚体运动 旋转矩阵:实践-Ei ...
- 浅谈SLAM的回环检测技术
什么是回环检测? 在讲解回环检测前,我们先来了解下回环的概念.在视觉SLAM问题中,位姿的估计往往是一个递推的过程,即由上一帧位姿解算当前帧位姿,因此其中的误差便这样一帧一帧的传递下去,也就是我们所说 ...
- 学习Spring的思考框架
引子 很早之前听同事说:“要开会了.我都知道领导要问什么,就那几板斧.”其实领导之所以为领导,人家问的问题确实很合情合理,甚至可以说一针见血.而之所以能问出来这些合理的问题,就是因为头脑中有自己的思考 ...
- K2 BPM_北汽新能源业务流程管理信息系统建设思考_全球领先的工作流引擎
本文由CIO发展中心根据北汽新能源流程与IT总监刘伟霞在“亦庄CIO数字化转型探索——CIO发展中心亦庄分舵2019夏季论坛”活动中演讲整理. 在“亦庄CIO数字化转型探索——CIO发展中心亦庄分舵2 ...
随机推荐
- POJ 2771
#include <iostream> #include <string> #define MAXN 505 using namespace std; int _m[MAXN] ...
- POJ 2696
#include<iostream> #define MAXN 1005 #include<stdio.h> using namespace std; int _m[MAXN] ...
- 剑指offer七之斐波那契数列
一.题目 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项.n<=39. 二.思路 序号: 0 1 2 3 4 5 ...
- WebFlux基础之响应式编程
上篇文章,我们简单的了解了WebFlux的一些基础与背景,并通过示例来写了一个demo.我们知道WebFlux是响应式的web框架,其特点之一就是可以通过函数式编程方式配置route.另外究竟什么是响 ...
- asp.net core web 添加角色管理
新建asp.net core web应用 添加RolesAdminController [Authorize(Roles = "Admin")] public class Role ...
- JVM(一)JVM的概述与运行流程
1.基本概念 JVM和普通虚拟机: 大家常用的两种虚拟机是VMWare和Visual Box,用来操作cpu指令. JVM是程序自己独立的运行环境,对堆栈.寄存器.字符码指令等操作. Java.JRu ...
- vue框架之自定义组件中使用v-model
通常 vue在html常见表单空间支持v-model双向绑定例如 <input v-model="message" placeholder="edit me&quo ...
- tomcat 调优-生产环境必备
目录 1. tomcat 启动慢 1.1 tomcat 获取随机值阻塞 1.2 tomcat 需要部署的web应用程序太多 1.3 tomcat启动内存不足 2 Connector 调优 2.2 Co ...
- spring boot 与 filter
spring boot 里面用拦截器好像比用过滤器多一些. 在过滤器中, 并不能获取到action的相关信息, 会造成很多的麻烦和功能欠缺. 那, 这里就用过滤器做一个小栗子, 实际使用过程中, 不会 ...
- 【转】CSRF基本概念
本文转自:http://www.cnblogs.com/hyddd/ 一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one ...