slam小白版(1)-- 整体框架详解

本文是小白我学习slam的记录,方便自己以后看起来没有辣么凌乱,当记个工程日志嘛。

在这里要感谢高翔博士的书《视觉SLAM十四讲》,这本书很幽默地讲解了视觉SLAM 的方方面面的知识。同时本博文一部分是别人的思想,版权归原作者所有,在此向原作者表示感谢!

SLAM(simultaneous localization and mapping)也叫即时定位与导航,最早由Hugh Durrant-Whyte 和 John J.Leonard提出。SLAM主要用于解决移动机器人在未知环境中运行时定位导航地图构建的问题。

典型的slam系统硬件组成主要由测距传感器,odometry 里程计,处理器,IMU,运动机器人等。最简单的结构为可以移动的机器人平台并且至少包含一个测距单元。其过程包括特征提取,数据关联,状态估计,状态更新以及特征更新等。对于其中每个部分,均存在多种实现方法。

SLAM按照传感器来分,分为视觉SLAM(VSLAM)和激光SLAM。视觉SLAM基于摄像头返回的图像信息,激光SLAM基于激光雷达返回的点云信息。

总体框架如下:

可以看出,视觉slam从根本上其实就是为了回答两个问题:

1. 我在什么地方?——定位。

2. 周围环境是什么样?——建图。

整体视觉 SLAM 流程图如下:

整体视觉 SLAM 流程图

1. 传感器信息读取。在视觉 SLAM 中主要为相机图像信息的读取和预处理。如果在机器人中,还可能有码盘、惯性传感器等信息的读取和同步。
2. 视觉里程计 (Visual Odometry, VO)。视觉里程计任务是估算相邻图像间相机的运动, 以及局部地图的样子。VO 又称为前端(Front End)。简而言之,第一是要根据摄像头回传的图像计算相机帧间运动(旋转矩阵、平移矢量 、四元数、欧拉角 )的旋转矩阵R和平移向量t(相机是怎么运动的);第二就是估计路标点大致的空间位置坐标(深度信息)。
3. 后端优化(Optimization)。后端接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。由于接在 VO 之后, 又称为后端(Back End)。
4. 回环检测(Loop Closing)。回环检测判断机器人是否曾经到达过先前的位置。如果检测到回环,它会把信息提供给后端进行处理。当摄像头在环境中到达了自己曾经先前到达过的位置后,因为传感器和计算过程存在误差,所以通常建立出的点云图都不能做到曲线闭合。回环检测的功能便是判断相机是否回到过先前位置,从而修正误差,保证点云图与实际空间的理想。
5. 建图(Mapping)。它根据估计的轨迹,建立与任务要求对应的地图。 

可以把slam问题建模成一个状态估计问题,而状态估计问题的求解,与slam基本方程的具体形式,以及噪声服从哪种分布有关。

slam基本方程如下:

SLAM 过程可总结为两个基本方程:

xk :k时刻robot的位置,x1、x2...xk构成robot运动轨迹

uk :k时刻运动传感器读数

wk :k时刻噪声

yi   :假设地图由多个landmark(路标)组成,每时刻sensor会测量到一部分路标,yi表示第i个路标

v(k,j) :sensor在k时刻第j个路标观测的噪声

z(k,j) :当robot在 xk 位置上看到某个路标点 yj,产生了一个观测数据 z(k,j)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值