SLAM初探(一)

#经典SLAM过程

什么是SLAM

SLAM (simultaneous localization and mapping),也称为CML (Concurrent Mapping and Localization), 即时定位与地图构建,或并发建图与定位。

SLAM技术的应用

1)室内机器人 国内的科沃斯、塔米扫地机通过用SLAM算法结合激光雷达或者摄像头的方法,让扫地机可以高效绘制室内地图,智能分析和规划扫地环境,从而成功让自己步入了智能导航的阵列。

2)AR 目前基于SLAM技术开发的代表性产品有微软的Hololens,谷歌的Project Tango以及同样有名的Magic Leap

经典SLAM框架

  • 传感器数据 (=>)回环检测 (=>) 后端非线性优化
  • 前端视觉里程设计(VO Visual Odometry)
  • 后端非线性优化(Optimization)
  • 建图(Mapping)

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

传感器类型

1. 码盘
2. 摄像头
   RGB-D 红外结构光摄像机
   双目摄像机
3. 惯性传感器

前端视觉里程设计(VO)

基本的VO:特征提取和匹配 根据输入的图像,计算相机运动和特征点位置。在两两帧间的位姿估计,仅凭两帧的估计是不够的。需要把征点缓存成一个小地图,计算当前帧与地图之间的位置关系。

后端非线性优化

优化过程主要使用在SLAM的噪声问题(传感器噪声,数据噪声,自然光,人为因素等)

  1. 无约束非线性最优化问题常用算法: 梯度法(最速下降法)、共轭梯度法、变尺度法和步长加速法.其中,前三个要用到函数的一阶导数或二阶导数,适用于函数表达式导数存在且求导简单的情况,而步长加速法则相反,适用于函数表达示复杂,甚至无解析表达式,或导数不存在情况.
  2. 约束非线性最优化问题常用算法: 按照是否化成无约束问题可分为 可行方向法、制约函数法(外点法和内点法),其中内点法适用于目标函数在可行域外性质复杂情况,外点法则相反.后者根据罚函数或障碍函数的构造不同,又有不同的变形.

建图

数据噪声的处理

单目视觉SLAM方法在是否引入概率框架方面分为基于概率框架的方法和基于非概率框架的方法。其中前者的代表方法是基于Kalman滤波(KF)的方法,基于粒子滤波(PF)的方法等;后者的代表方法是基于关键帧和稀疏捆绑调整优化的方法,基于图优化的方法等。
线性高斯系统(Liner Gaussian LG)中使用卡尔曼滤波器(Kalman Filter KF)来进行data的无偏最优估计。在非线性高斯系统中(Non-Liner Non-Gaussian,NLNG系统)将会使用拓展卡尔曼滤波器(Extended Kalman Filter EKF),后期的SLAM采用粒子滤波器(Particle Filter)进行数据的滤波处理。

参考资料 :
Probabilistic Robotics by Sebastian Thrun, Wolfram Burgard and Dieter Fox with a clear overview of SLAM.
SLAM For Dummies (A Tutorial Approach to Simultaneous Localization and Mapping). Andrew Davison research page at Imperial College London about SLAM using vision.
Autonomous and Perceptive Systems research page at University of Groningen about visual SLAM.
openslam.org A good collection of open source code and explanations of SLAM.
Matlab Toolbox of Kalman Filtering applied to Simultaneous Localization and Mapping Vehicle moving in 1D, 2D and 3D.
SLAM Example using Processing.js of Feature-Based Navigation. FootSLAM research page at DLR including the related Wifi SLAM and PlaceSLAM approaches.
SLAM lecture Online SLAM lecture based on Python.
SLAM in use for indoor positioning and navigation.

转载于:https://my.oschina.net/VenusV/blog/1361007

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值