slam是什么意思?一文带你读懂SLAM

2023-05-16

 

SLAM是Simultaneous localization and mapping缩写,意为“同步定位与建图”,主要用于解决机器人在未知环境运动时的定位与地图构建问题,为了让大家更多的了解SLAM,以下将从SLAM的应用领域、SLAM框架、SLAM分类(基于传感器的SLAM分类)来进行全面阐述,本文仅对没有接触过SLAM的新人进行的科普。

 

一、SLAM的典型应用领域

机器人定位导航领域:地图建模。SLAM可以辅助机器人执行路径规划、自主探索、导航等任务。国内的科沃斯、塔米以及最新面世的岚豹扫地机器人都可以通过用SLAM算法结合激光雷达或者摄像头的方法,让扫地机高效绘制室内地图,智能分析和规划扫地环境,从而成功让自己步入了智能导航的阵列。国内思岚科技(SLAMTEC)为这方面技术的主要提供商,SLAMTEC的命名就是取自SLAM的谐音,其主要业务就是研究服务机器人自主定位导航的解决方案。目前思岚科技已经让关键的二维激光雷达部件售价降至百元,这在一定程度上无疑进一步拓展了SLAM技术的应用前景。

 

VR/AR方面:辅助增强视觉效果。SLAM技术能够构建视觉效果更为真实的地图,从而针对当前视角渲染虚拟物体的叠加效果,使之更真实没有违和感。VR/AR代表性产品中微软Hololens、谷歌ProjectTango以及MagicLeap都应用了SLAM作为视觉增强手段。

 

无人机领域:地图建模。SLAM可以快速构建局部3D地图,并与地理信息系统(GIS)、视觉对象识别技术相结合,可以辅助无人机识别路障并自动避障规划路径,曾经刷爆美国朋友圈的Hovercamera无人机,就应用到了SLAM技术。

 

无人驾驶领域:视觉里程计。SLAM技术可以提供视觉里程计功能,并与GPS等其他定位方式相融合,从而满足无人驾驶精准定位的需求。例如,应用了基于激光雷达技术Google无人驾驶车以及牛津大学MobileRoboticsGroup11年改装的无人驾驶汽车野猫(Wildcat)均已成功路测。

 

二、SLAM框架

SLAM系统框架如图所示,一般分为五个模块,包括传感器数据、视觉里程计、后端、建图及回环检测。

SLAM是什么

传感器数据:主要用于采集实际环境中的各类型原始数据。包括激光扫描数据、视频图像数据、点云数据等。

视觉里程计:主要用于不同时刻间移动目标相对位置的估算。包括特征匹配、直接配准等算法的应用。

后端:主要用于优化视觉里程计带来的累计误差。包括滤波器、图优化等算法应用。

建图:用于三维地图构建。

回环检测:主要用于空间累积误差消除

 

其工作流程大致为:

传感器读取数据后,视觉里程计估计两个时刻的相对运动(Ego-motion),后端处理视觉里程计估计结果的累积误差,建图则根据前端与后端得到的运动轨迹来建立地图,回环检测考虑了同一场景不同时刻的图像,提供了空间上约束来消除累积误差。

 

三、SLAM分类(基于传感器的SLAM分类)

目前用在SLAM上的传感器主要分为这两类,一种是基于激光雷达的激光SLAM(Lidar SLAM)和基于视觉的VSLAM(Visual SLAM)。

1.激光SLAM

激光SLAM采用2D或3D激光雷达(也叫单线或多线激光雷达),2D激光雷达一般用于室内机器人上(如扫地机器人),而3D激光雷达一般使用于无人驾驶领域。激光雷达的出现和普及使得测量更快更准,信息更丰富。激光雷达采集到的物体信息呈现出一系列分散的、具有准确角度和距离信息的点,被称为点云。通常,激光SLAM系统通过对不同时刻两片点云的匹配与比对,计算激光雷达相对运动的距离和姿态的改变,也就完成了对机器人自身的定位。

激光雷达测距比较准确,误差模型简单,在强光直射以外的环境中运行稳定,点云的处理也比较容易。同时,点云信息本身包含直接的几何关系,使得机器人的路径规划和导航变得直观。激光SLAM理论研究也相对成熟,落地产品更丰富。

 

2.视觉SLAM

眼睛是人类获取外界信息的主要来源。视觉SLAM也具有类似特点,它可以从环境中获取海量的、富于冗余的纹理信息,拥有超强的场景辨识能力。早期的视觉SLAM基于滤波理论,其非线性的误差模型和巨大的计算量成为了它实用落地的障碍。近年来,随着具有稀疏性的非线性优化理论(Bundle Adjustment)以及相机技术、计算性能的进步,实时运行的视觉SLAM已经不再是梦想。

视觉SLAM的优点是它所利用的丰富纹理信息。例如两块尺寸相同内容却不同的广告牌,基于点云的激光SLAM算法无法区别他们,而视觉则可以轻易分辨。这带来了重定位、场景分类上无可比拟的巨大优势。同时,视觉信息可以较为容易的被用来跟踪和预测场景中的动态目标,如行人、车辆等,对于在复杂动态场景中的应用这是至关重要的。

通过对比我们发现,激光SLAM和视觉SLAM各擅胜场,单独使用都有其局限性,而融合使用则可能具有巨大的取长补短的潜力。例如,视觉在纹理丰富的动态环境中稳定工作,并能为激光SLAM提供非常准确的点云匹配,而激光雷达提供的精确方向和距离信息在正确匹配的点云上会发挥更大的威力。而在光照严重不足或纹理缺失的环境中,激光SLAM的定位工作使得视觉可以借助不多的信息进行场景记录。

 

近年来,SLAM导航技术已取得了很大的发展,它将赋予机器人和其他智能体前所未有的行动能力,而激光SLAM与视觉SLAM必将在相互竞争和融合中发展,使机器人从实验室和展厅中走出来,做到真正的服务于人类。

相关阅读:

SLAM新人入门必备资料

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

slam是什么意思?一文带你读懂SLAM 的相关文章

随机推荐

  • Odroid XU4学习笔记

    Odroid XU4学习笔记 xff08 一 xff09 20161127 写文档的最初目的是自己在学习过程中踩了很多坑 xff0c 只为记录下 xff0c 避免自己以后或者他人重蹈覆辙 一 相关资源 用户手册 xff1a http mag
  • Mac JetBrains工具 2018破解方法 PhpStorm 2018、 WebStorm 2018、DataGrip2018、PyCharm2018

    1 自行安装PhpStorm WebStorm DataGrip PyCharm 2 下载破解补丁 xff0c 2018版下载地址 链接 xff1a https pan baidu com s 1TZ kXvkgF2t3hKusQl5TDQ
  • 树莓派UPS供电(附图、视频、代码)

    通过XiaoJi UPS做供电 xff0c 通过Arduino做控制 通过XiaoJi UPS来感知车辆是否处于启动状态 xff08 电瓶供电 xff09 xff0c 如果在启动状态转为熄火状态 xff0c 则XiaoJi UPS指定针脚会
  • freeRtos源码解析(二)–任务调度

    freeRtos源码解析 二 任务调度 一 启动任务调度器 启动任务调度器之后 xff0c CPU正式进入任务模式调度各任务 xff08 CPU在中断模式和任务模式之间不断轮转 xff09 freeRtos任务调度依赖于内核的三个中断 xf
  • Ubuntu Windows双系统切换技巧

    平时在宿舍或者在家需要用到实验室的电脑 xff0c 远程的时候切换系统是个麻烦的事情 还要担心实验室断电之后 xff0c 电脑关机了 没人帮忙开机 所以有了此文 1 远程唤醒电脑 如果你的主板支持定时开机 xff0c 那么这个问题就比较简单
  • Ubuntu18.04+ZED SDK安装+ZED Python API+zed ros wrapper安装 手把手详细教程

    1 安装前准备 1 ubuntu显卡驱动要有 xff0c 没有的可以搜索如何安装ubuntu显卡驱动 xff0c 教程很多 xff0c 这里不再详细说明 2 ROS需要提前安装好 xff0c 可以搜索ubuntu如何安装ROS 我这里安装的
  • 五种常见的聚类算法总结

    目录 一 关于聚类的基础描述 1 1 聚类与分类的区别 1 2 聚类的概念 1 3 聚类的步骤 二 几种常见的聚类算法 2 1 K means聚类算法 1 K means算法的流程 xff1a 2 xff09 K means算法的优缺点及算
  • 非科班如何自学深度学习转行

    前言 xff1a 博主已经学废了 xff0c 代码代码不行 xff0c 理论理论不行 xff0c 所以想把走过的路给大家讲讲经验 xff0c 仅供参考 研一前 xff1a 编程基础 xff1a Python为主 xff0c 一般的深度学习代
  • Pointpillars三维点云实时检测

    目录 一 项目方案 二 项目准备工作 1 安装并配置好Openpcdet的环境 2 安装好ROS melodic 三 项目工作空间创建及代码配置 四 具体代码修改与讲解 launch pointpillars launch的修改 launc
  • 神经网络模型的过拟合和欠拟合问题

    一 过拟合和欠拟合问题 过拟合定义 xff1a 模型在训练集上表现良好 xff0c 但在测试集上表现不好 过拟合原因 xff1a 1 原始特征过多 xff0c 存在一些噪声特征 xff0c 而模型过于复杂 xff0c 学习能力过强 xff0
  • 如何读取或转换PCD点云文件

    目录 一 Python方式 1 Open3D 2 直接用python读取并保存成bin格式 3 pypcd 二 C 43 43 方式 一 Python方式 1 Open3D 读取pcd文件 因为我的点云是ZED相机获得的 xff0c 所以是
  • Ubuntu不同版本的python如何进行切换

    ubuntu系统自带的有python2 7和python3 6 xff0c 也可以下其他的 运行下面的程序 xff0c 为python赋予优先使用等级 sudo update alternatives install usr bin pyt
  • 如何计算旋转框的IOU

    一 先将两个框转换为角点形式 一般我们得到的是中心点 xff0c 宽高 xff0c 和旋转角度 通过矢量旋转公式得到角点形式 二 判断四个角点是否在对方的框里 xff0c 并保存在里面的角点 A的角点向B的相邻的两条边投影 任意的B的两条边
  • centerpoint论文和代码解读

    目录 一 序论 二 论文结构 三 代码 论文地址 xff1a https arxiv org pdf 2006 11275 pdf 代码地址 xff1a tianweiy CenterPoint github com 一 序论 centor
  • 关于严蔚敏教授的数据结构一书中return ok ,OK为1不为0的问题

    在主函数即Main 函数中的return 需要返回0 xff0c 表示成功完成本函数 但是在严教授的书中所写的多数函数 xff0c 是status函数类型 xff0c 也就是说并不是主函数 xff0c 是子函数 xff0c 原则上子函数的r
  • MTN模型LOSS均衡相关论文解读

    目录 一 综述 二 依据任务不确定性加权多任务损失 三 依据不同任务的梯度大小来动态修正其loss权重GradNorm 四 根据LOSS变化动态均衡任务权重Dynamic Weight Average xff08 DWA xff09 五 R
  • 安装ceres库的避坑指南(附官方文档)

    目录 写在前面 1 Failed to connect to ceres solver google com port 443 解决办法 xff1a 更换源 2 OpenSSL SSL read Connection was reset e
  • 一文搞清apt与apt-get的异同

    本文翻译自Difference Between apt and apt get Explained It 39 s FOSS 译者注 xff1a 本人尽量以通俗易懂的方式展现原文的内容 xff0c 限于经验和水平 xff0c 错误之处欢迎指
  • SLAM≠机器人自主定位导航

    SLAM技术作为机器人自主移动的关键技术 xff0c 让很多人都误解为 xff1a SLAM 61 机器人自主定位导航 其实 xff0c SLAM 机器人自主定位导航 xff0c 不解决行动问题 SLAM如其名一样 xff0c 主要解决的是
  • slam是什么意思?一文带你读懂SLAM

    SLAM是Simultaneous localization and mapping缩写 xff0c 意为 同步定位与建图 xff0c 主要用于解决机器人在未知环境运动时的定位与地图构建问题 xff0c 为了让大家更多的了解SLAM xff