SLAM回环及优化

简介: SLAM回环及优化

0. 前言


随着路径的不断延伸,机器人的建图过程会存在不断地累计误差。而传统的以gmapping为代表的使用粒子滤波进行定位的slam建图方式。以及ORB-SLAM为代表包含的局部优化和全局优化来调整外。但是这些处理方式只能减缓误差累计的程度,无法消除,而现在最为常用消除累计误差的方法就是利用回环检测来优化位姿。


当新的关键帧加入到优化模型时,在关键帧附近进行一次局部优化。


b6a800b32fa44d7a801fa3bd6f570574.png


在全局优化中,所有的关键帧(除了第一帧)和三维点都参与优化。


9b5da5bf5661492abece170df3206fbe.png


1. 回环检测


回环检测作为近年来slam行业必备的部分,是指机器人识别曾到达某场景,使得地图闭环的能力。


8ee259ad7fef476689446b1572740759.png


回环检测之所以能成为一个难点,是因为:如果回环检测成功,可以显著地减小累积误差,帮助机器人更精准、快速的进行避障导航工作。而错误的检测结果可能使地图变得很糟糕。因此,回环检测在大面积、大场景地图构建上是非常有必要的 。


词袋模型(bag of words,BoW)早期是一种文本表征方法,后引入到计算机视觉领域,逐渐成为一种很有效的图像特征建模方法。它通过提取图像特征,再将特征进行分类构建视觉字典,然后采用视觉字典中的单词集合可以表征任一幅图像。


换句话说,通过BOW可以把一张图片表示成一个向量。这对判断图像间的关联很有帮助,所以目前比较流行的回环解决方案都是采用的BoW及其基础上衍生的算法IAB-MAP、FAB-MAP是在滤波框架下计算回环概率,RTAB-MAP采用关键帧比较相似性,DLoopDetector(在DBoW2基础上开发的回环检测库)采用连续帧的相似性检测判断是否存在回环。


回环检测主要由BoW模块、算法模块、验证模块三部分组成。


词袋模型(BoW模块)


每一帧都可以用单词来描述,也就是这一帧中有哪些单词,这里只关心了有没有,而不必关心具体在哪里。只有两帧中单词种类相近才可能构成回环。


(a)图像预处理,假设训练集有M MM幅图像,将图像标准化为p a t c h patchpatch,统一格式和规格;

(b)特征提取,假设M MM幅图像,对每一幅图像提取特征,共提取出N NN个SIFT特征;

(c)特征聚类,采用K-means算法把N NN个对象分为K KK个簇 (视觉单词表),使簇内具有较高的相似度,而簇间相似度较低;


749391e7eecb40878c2196cc84bc3937.png


(d)统计得到图像的码本,每幅图像以单词表为规范对该幅图像的每一个SIFT特征点计算它与单词表中每个单词的距 离,最近的加1,便得到该幅图像的码本;还需要码本矢量归一化,因为每一幅图像的SIFT特征个数不定,所以需要归一化。


326ca2a3b7994eba8cd266122fc7ffc7.png


…详情请参照古月居


相关文章
|
存储 前端开发 数据可视化
3D激光SLAM:LeGO-LOAM---两步优化的帧间里程计及代码分析
**LeGO-LOAM**的全称是 Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain 其中LeGO就是轻量级和利用地面优化,轻量级的实现就是通过两步的优化方式,利用地面优化的部分也在两步优化的第一步中。 和原始LOAM一样,通过前后两帧点云来估计两帧之间的运动,从而累加得到前端里程计的输出,和上述方法使用线面约束同时优化六自由度帧间位姿不同,LeGO-LOAM的前端分成两个步骤,每个步骤估计三自由度的变量。 通过这种方式进行帧间里程计的运算,可以提供运算效率,使得可以在嵌入式平台
3D激光SLAM:LeGO-LOAM---两步优化的帧间里程计及代码分析
|
1月前
|
算法 安全 数据安全/隐私保护
Kongsberg康士伯 RL542A 无线电链路的功能特点有哪些?
Kongsberg康士伯 RL542A 无线电链路的功能特点有哪些?
|
9月前
|
传感器 算法 网络协议
基于LEACH和HEED的WSN路由协议研究与改进(Matlab代码实现)
基于LEACH和HEED的WSN路由协议研究与改进(Matlab代码实现)
|
7月前
|
机器学习/深度学习 传感器 算法
【具有路由 WSN 模拟器的随机方式移动】具有路由 WSN 模拟器的随机方式移动(Matlab代码实现)
【具有路由 WSN 模拟器的随机方式移动】具有路由 WSN 模拟器的随机方式移动(Matlab代码实现)
|
9月前
|
传感器 算法 数据挖掘
基于LEACH的随机网络生成无线传感器网络路由协议的仿真比较(Matlab代码实现)
基于LEACH的随机网络生成无线传感器网络路由协议的仿真比较(Matlab代码实现)
|
11月前
|
机器学习/深度学习 传感器 移动开发
【中继优化】基于高效局部地图搜索算法实现无人机通信中继位置优化附matlab代码和复现论文
【中继优化】基于高效局部地图搜索算法实现无人机通信中继位置优化附matlab代码和复现论文
|
11月前
|
传感器 机器学习/深度学习 算法
【WSN】基于蝴蝶优化算法的WSN安全分簇路由设计附matlab代码
【WSN】基于蝴蝶优化算法的WSN安全分簇路由设计附matlab代码
|
机器学习/深度学习 传感器 监控
【目标检测】基于帧间差法实现视频目标检测和轨迹分析附matlab代码和GUI界面
【目标检测】基于帧间差法实现视频目标检测和轨迹分析附matlab代码和GUI界面
|
传感器 机器学习/深度学习 算法
【WSN布局】基于粒子群算法优化无线传感器网络 WSN 节点的位置附matlab代码
【WSN布局】基于粒子群算法优化无线传感器网络 WSN 节点的位置附matlab代码
|
传感器 机器学习/深度学习 算法
【WSN协议】基于低能量自适应集群层次结构 (LEACH) 集群的路由协议附matlab代码
【WSN协议】基于低能量自适应集群层次结构 (LEACH) 集群的路由协议附matlab代码