首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >室内场景常用SLAM算法对比介绍

室内场景常用SLAM算法对比介绍

作者头像
用户2423478
发布2025-10-28 13:27:27
发布2025-10-28 13:27:27
310
举报
文章被收录于专栏:具身小站具身小站

REF:室内移动机器人的SLAM 算法综述

aaab99fec255ba7797db8c0c2dea946c.png
aaab99fec255ba7797db8c0c2dea946c.png

1. 激光雷达SLAM算法

目前室内激光SLAM算法,基于滤波的激光SLAM采用GMapping算法,基于图优化的激光SLAM算法采用Cartographer算法

a5d37161442b8aa085530336a5e18cd8.png
a5d37161442b8aa085530336a5e18cd8.png

1.1 Gmapping算法:基于粒子滤波的二维算法

Gmapping算法适用于室内小场景和低特征环境下的定位与建图,精度较高且计算量小。初始化阶段对位姿进行初始化,搜索阶段随机分布粒子获得反馈的目标相似度信息,决策阶段利用一系列随机样本的加权和近似后验概率密度函数求和来获得近似积分,进行粒子的权值计算;重采样阶段按照粒子权值在整体粒子权值中的占比复制粒子,有目的地重新分布粒子

0b795e155e390fc66a4ac810c117f9fd.png
0b795e155e390fc66a4ac810c117f9fd.png

1.2 Cartographer算法:基于图优化的开源算法

建图过程中实时构建位姿图,机器人的位姿作为节点,各个节点之间的转换关系作为边,与基于滤波方法的SLAM不同的是,基于图优化的SLAM分为前端和后端两个模块,前端引入了子图概念,前端进行数据提取和数据关联时,每次扫描而得的数据帧会与上一次得到的子图进行比对并且插入上一次得到的子图中,子图的更新优化依赖于数据帧的不断插入,当没有数据帧插入时则形成完整优化的子图,此处主要应用非线性最小二乘法来进行求解;后端引入了闭环检测环节,对前端获得的若干个子图进行优化,通过全局计算得到优化后的位姿,可用来消除累计误差,图优化类算法可以适应面积较大的场景,利用闭环检测可以消除误差,避免误差累积造成的建图不准确。

5216a958125aec846efa5d325db566ad.png
5216a958125aec846efa5d325db566ad.png

1.3 Hector算法:基于高斯-牛顿法的图优化算法

在建图过程中,前端进行激光扫描,获得栅格地图,雷达获得新的数据时,将其与上一时刻的地图进行匹配,为使雷达数据映射到栅格地图中,采用双线性插值的方法来获得连续的栅格地图;后端采用高斯-牛顿法对邻近帧进行匹配,使地图数据误差最小,得到优化的地图;最后选用了3种分辨率的地图,其分辨率逐个增加,目的是为了避免匹配值局部最小。算法能估计6个自由度的位姿,可以胜任崎岖路面环境及空中的定位与建图工作,也可应用于无人机室内导航

2. 视觉SLAM算法

视觉SLAM算法拥有经典的框架,包含前端视觉里程计、后端优化、闭环检测和建图4个主要部分,相机获得环境信息,搭载不同的相机进行特征提取、选择关键帧获得不同的建图效果。单目相机、双目相机和 RGB-D相机在实际运用过程中应结合各自的特点。

f64bc23102542e052bc16371a0face3b.png
f64bc23102542e052bc16371a0face3b.png

2.1 ORB-SLAM算法:基于单目相机进行特征提取的算法 基于ORB描述量进行特征匹配和重定位,分3个线程运行,包括特征检测与跟踪、建立地图、闭环检测与校正:

  • 特征检测与跟踪线程:先从图像中提取ORB特征,通过相邻的地图点匹配更多的特征来进行位姿优化,选取出关键帧
  • 建立地图线程:完成局部地图的构建,通过加入关键帧来更新局部地图,同时剔除多余或重复的关键帧,以此对构建的局部地图进行优化
  • 闭环检测与校正线程:闭环检测使用词袋模型,将特征集合构建为字典,特征点描述用K-means或贝叶斯算法聚类,以树的方式表示字典
37c4e9545141c83172c69a8cb73d246a.png
37c4e9545141c83172c69a8cb73d246a.png

2.2 SVO-SLAM算法:半直接视觉里程计算法 对图像中特征点周围的小图像块进行直接匹配,主要分为前端运动估计和后端地图构建两个线程:

  • 运动估计线程:先根据相邻帧之间的像素灰度差异,建立优化函数来优化光度误差,然后优化特征点位姿,最后分别优化三维的空间点和相机的位置,构建像素重投影误差的优化函数
  • 后端地图构建线程:当出现新的关键帧时,选取若干特征点计算相应的极线,特征点的对应点使用三角测量方法计算深度;更新到深度估计收敛到一定的范围,在地图中融入该三维点坐标。
658edeba6a69caa92417a409aaa8a085.png
658edeba6a69caa92417a409aaa8a085.png

3. 多传感器融合的SLAM算法

基于多传感器融合的SLAM算法较单一传感器的SLAM算法在面对复杂特殊环境时更具灵活性和可靠性,系统更具鲁棒性,常见激光视觉融合、视觉IMU融合、激光视觉IMU融合等传感器融合,融合方法包括加权平均法、卡尔曼滤波法、贝叶斯估计法等

d68491597fb47cd02caf21ff17811bb4.png
d68491597fb47cd02caf21ff17811bb4.png

3.1 加权平均法:

加权平均法具有简便、直观的特点,适用于构建动态实时系统,直接对数据源进行操作,可将一组传感器提供的冗余信息进行加权平均,其结果作为融合值,确定各传感器输入数据的权重是加权平均法的核心问题

93888b3b57766b33979762aa196fb54c.png
93888b3b57766b33979762aa196fb54c.png

3.2 卡尔曼滤波法:

该方法用于融合低层次实时动态的多传感器数据,用测量模型的统计特性得到统计意义下的数据最优融合方式和数据估计,假设有n个观测方程,w 为噪声,则多传感器信息融合系统方程可定义如下,建立滤波所需的状态方程和观测方程是卡尔曼滤波法的核心问题

bfd4ed96ccca55299d0f8f5086e21677.png
bfd4ed96ccca55299d0f8f5086e21677.png

3.3 贝叶斯估计法: 贝叶斯估计用来描述两个条件概率之间的关系,是融合静态环境中的多传感器高层信息的常用方法,主要分为3个步骤:

  1. 引入置信距离,假设各传感器的输出数据噪声服从正态分布,通过置信距离理论对传感器输出数据进行判断
  2. 选择最佳融合数,选择一个临界值来划分置信距离,判断两个传感器输出的数据是否互相支持
  3. 采用贝叶斯估计融合计算,使传感器信息依据概率原则进行组合,用条件概率结果来表示传感器观测的不确定性。
2555e4ff8633f69de30057d2c1d378af.png
2555e4ff8633f69de30057d2c1d378af.png

4. 基于深度学习的SLAM算法

深度学习技术与SLAM的结合主要体现在3个方面:帧间估计、闭环检测和语义地图构建

4.1 帧间估计: 帧间估计即视觉里程计,作为SLAM前端的主要任务,其根据两个相邻帧的图像信息来判断相机的位姿,根据训练方法和数据集标签化程度的不同,将基于深度学习的帧间估计方法分为监督学习、无监督学习、半监督学习3类:

  • 监督学习:通过采集到的图像帧来估计位姿,然后通过卷积神经网络(CNN)学习图像帧的特征,再比对相邻帧间的信息,这种基于深度学习的数据训练方法避免了传统几何方法的大量计算
  • 无监督学习:可以在获得单帧图像的同时估计出图像深度和相机位姿
  • 半监督学习:需要人为干预来标记信息,在一些特定环境中改善了无监督学习的不适应性

4.2 闭环检测: 利用深度神经网络自发学习先前从大量关键帧中提取的特征,将当前的信息与之前的学习结果进行比对,判断是否存在闭环,基于神经网络的判断比人为设定特征阈值更加精确,可以得到信息更丰富的图像

6e444fe42b94c7de225a1ef1acebaac4.png
6e444fe42b94c7de225a1ef1acebaac4.png

4.3 语义地图构建:

语义SLAM的出现在SLAM实际运行过程中丰富了传统SLAM的内容,使地图信息更加全面,室内环境建图时,语义SLAM可以为物体建立标签信息,有助于机器人与环境进行交互

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 具身小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 激光雷达SLAM算法
  • 2. 视觉SLAM算法
  • 3. 多传感器融合的SLAM算法
  • 4. 基于深度学习的SLAM算法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档