机器人开发--SLAM详细介绍

news2024/11/24 23:03:28

机器人开发--SLAM介绍

  • 1 介绍
    • 1.1 概述
    • 1.2 发展历程
      • 三个时代
      • 重要时间节点
      • 视觉SLAM分类及里程碑技术发展
    • 1.3 SLAM与各模块关系
    • 1.5 SLAM分类
    • 1.4 应用领域
  • 2 SLAM框架
    • 视觉/惯性SLAM系统框架结构
    • 经典框架
  • 3 常见方案
    • 3.1 常见激光雷达方案
    • 3.2 常见视觉方案
    • 3.3 多传感器融合方案
  • 4 地图类型
    • 各类地图优缺点
    • 视觉SLAM构建地图类型
  • 5 各传感器优缺点
  • 6 应用
  • 参考

1 介绍

1.1 概述

  • SLAM (Simultaneous Localization and Mapping),也称为CML (Concurrent Mapping and Localization), 即时定位与地图构建,或并发建图与定位。
  • 同步定位和建图( SLAM ) 是构建或更新未知环境的地图,同时跟踪代理在其中的位置的计算问题。虽然这最初看起来是一个先有鸡还是先有蛋的问题,但有几种已知的算法可以在某些环境下至少在大约可处理的时间内解决这个问题。流行的近似求解方法包括粒子滤波器、扩展卡尔曼滤波器、协方差交集和 GraphSLAM。

1.2 发展历程

三个时代

SLAM技术历经的三个时代。

  • 1986~2004:传统时代,提出SLAM概念,作为状态估计问题进行求解;
  • 2004~2015:算法分析时代,研究其基本特性;
  • 2015~至今:预测性-鲁棒性时代。
    在这里插入图片描述

重要时间节点

  • 1986年,ICRA会议上首次提出SLAM,先应用在军事机器人领域
  • 1987年,EKF-SLAM
  • 1993年,PF-SLAM,粒子滤波算法兴起
  • 1997年,LU等最早提出基于图优化理论的SLAM方案
  • 2000年,RBPF-SLAM具有划时代意义
  • 2002年,FastSLAM
  • 2003年,MonoSLAM第一个纯视觉方案
  • 2007年,Cmapping应用广泛、PTAM(视觉)、MSCKF,首个VIO算法
  • 2010年,Optimal-RBPF,Karto-SLAM首个基于图优化框架的开源方案
  • 2011年,Hector-SLAM、DTAM(视觉)、KinectFusion, 第一个基于kinect的算法
  • 2014年,LSD-SLAM(视觉)、SVO(视觉),LOAM,首个3D激光SLAM、OKVIS(VIO)
  • 2015年,RB-SLAM、V-LOAM(视觉+激光+IMU),最早将视觉与3D激光融合的SLAm
  • 2016年,DSO(视觉)、Cartographer(建图效果最好,应用广泛)、VELO(视觉+激光)
  • 2017年,ROVIO(VIO)
  • 2018年,IMIS-SLAM、LeGO-LOAM、LVIO(视觉+激光+IMU)、LIMO(视觉+激光)、VIMS-Mono(VIO)
  • 2019年,HDL_Graph_SLAM
  • 2020年,LIO-SAM、GP-SLAM
  • 2021年,ORB-SLAM3、T-LOAM
    在这里插入图片描述

视觉SLAM分类及里程碑技术发展

在这里插入图片描述

1.3 SLAM与各模块关系

  • 机器人自主定位导航技术中包括:定位和地图创建(SLAM)与路径规划和运动控制两个部分,而SLAM本身只是完成机器人的定位和地图创建,二者有所区别。
  • 自主导航的解决方案:SLAM + 路径规划 + 运动控制;

在这里插入图片描述

1.5 SLAM分类

在这里插入图片描述

1.4 应用领域

  • 机器人定位导航:SLAM 可用于生成移动机器人所处环境的地图。基于这个地图,机器人执行路径规划、自主定位、导航等任务。
  • 无人驾驶领域:SLAM 技术可以提供视觉里程计功能,然后与GPS等其他定位方式相融合。
  • 无人机领域:SLAM可以构建局部地图,辅助无人机进行自主避障、规划路径。
  • VR/AR 方面:根据 SLAM 得到地图和当前视角对叠加虚拟物体做相应渲染,这样做可以使得叠加的虚拟物体看起来比较真实,没有违和感。

在这里插入图片描述

2 SLAM框架

在这里插入图片描述

视觉/惯性SLAM系统框架结构

在这里插入图片描述

经典框架

在这里插入图片描述

3 常见方案

from 马志艳,邵长松,杨光友,李辉.同步定位与建图技术研究进展 [J].中国光学期刊2023, 30(3):78-85

3.1 常见激光雷达方案

年份方案原理优缺点其他
1987EKF-SLAM滤波器计算复杂,实时性较差,鲁棒性低适用于室内、小范围场景
2000RBPF滤波器解决了环境非高斯,降低了计算复杂度,提高了效率Rao-Blackwellized与 PF结合
2002FastSLAM滤波器降低了计算的复杂度,鲁棒性较好;内存消耗和粒子耗散问题严重融合EKF和PF优点
2007Gmapping滤波器优化了粒子耗散问题;依赖里程计信息适用于小尺度环境和低特征环境
2010Karto-SLAM图优化认识到稀疏性问题首个基于图优化框架的开源方案
2011Hector-SLAM图优化不需要里程计,对激光测量频率要求较高,依赖初值,缺少闭环检测可用于崎岖路面或空中无人机
2014LOAM图优化实时性高;缺少回环检测最早3D激光SLAM
2016Cartographer图优化累计误差较小,建图效果好,提速闭环检测,容易引起错误的闭环分为前端和后端;室内2D较为优越,室外3D建图效果不佳
2018IMLS-SLAM图优化仅基于激光雷达,不依赖相机、GPS,IMU核心思想是选择具有代表性的激光点进行匹配
2018LeGO-LOAM图优化计算轻量化,增加了闭环检测,降低了计算的复杂度,精度略有欠缺一种轻量级和地面优化的激光雷达里程计和建图方法
2019HDL_Graph_SLAM图优化降低计算复杂度,更好地构建全局一致性地图融合 GPS,IMU, Lidar 约束信息
2020LIO-SAM图优化实现紧密耦合激光雷达惯性测距,鲁棒性更好融合激光里程计、IMU、GPS和回环
2020GP-SLAM图优化存储消耗小,易于更新,效率、精度表现较好;GP地图边界的不连续性影响建图的效果位姿估计方法与地图更新方法相结合;适用于大尺度环境
2021T-LOAM图优化计算效率高、鲁棒性强,减轻异常值设计了一种新的特征提取模块

3.2 常见视觉方案

年份方案原理优缺点其他
2003MonoSLAM特征提取可达到实时;地图尺度与计算的复杂度成正比第一个纯视觉SLAM方案,基于滤波的单目SALM
2007PTAM特征提取提高了鲁棒性和准确性;需要强大的计算硬件第一个提出的多线程SLAM处理算法
2011DTAM直接法可在图片模糊、特征不明显的环境中直接跟踪;对GPU硬件要求较高依赖于密集的每像素方法
2011KinectFusionRGB-D相机解决光照敏感问题;成本高,有效探测距离短第一个基于 Kinect实时构建稠密三维地图的算法
2014LSD-SLAM直接法允许构建大规模、一致的环境地图一种直接单目SLAM算法
2014SVO直接法更精确、速度更快、鲁棒性更好一种半直接单目视觉里程计算法;适用于无人机系统
2015ORB-SLAM特征提取定位精度高、鲁棒性好,可以实时运行基于特征点的最完整单目视觉SLAM系统
2016DSO直接法考虑了镜头的曝光时间、渐晕效应和非线性响应函数一种基于新颖、高精度的稀疏直接结构和运动公式的视觉里程计方法
2017ORB-SLAM2特征提取精度更高,使用范围更广,保证实时性扩展了双目相机和深度相机
2021ORB-SLAM3特征提取实现实时鲁棒操作,比以前的方法精确两到十倍第一个能够使用单目、立体和RGB-D相机,使用针孔和鱼眼镜头模型执行视觉、视觉惯性和多图SLAM的系统

3.3 多传感器融合方案

年份方案原理优缺点其他
2007MSCKF视觉+IMU可运行复杂的环境中,速度快;精度略低紧耦合的滤波方法;提出VIO算法
2014OKVIS视觉+IMU建图效果较好;缺少闭环紧耦合的优化方法
2015V-LOAM视觉+激光+IMU鲁棒性较好,漂移较小最早视觉与3D激光融合的方案
2016VELO视觉+激光有闭环模块,低漂移误差利用位姿图的稀疏性优化位姿误差
2017ROVIO视觉+IMU计算量小;缺少闭环,需要调参数紧耦合的滤波方法
2018VINS-Mono视觉+IMU重定位计算量小,适用于高精度定位紧密耦合的非线性优化方法
2018LVIO视觉+激光+IMU可运行高度动态、黑暗、无纹理、无结构的环境中一个顺序的多层运行模块
2018LIMO视觉+激光递进式策略更加开放;精度略低于V-LOAM方案一种从激光雷达测量中提取相机特征轨迹的深度算法

4 地图类型

各类地图优缺点

地图类型优点缺点
拓扑地图适用于范围广且障碍物类型较少的场景、占用内存小、计算效率高、路径规划高效路径规划最优性差、相似物体分辨准确度低
几何地图简化环境信息、障碍物辨识更直观、目标提取更方便广域环境中数据精度低、计算量大
栅格地图不受环境地形影响、感知数据易保存与维护保存数据过多会导致信息更新难度加大、目标识别效果变差

视觉SLAM构建地图类型

在这里插入图片描述

5 各传感器优缺点

在这里插入图片描述

6 应用

  • 二维激光SLAM构建的二维栅格地图,可以用来做机器人的定位与导航。
  • 三维激光SLAM构建的三维点云地图,可以用来做无人车的定位与导航,也可以用来做三维建模。
    视觉SLAM构建的稀疏点云地图,可以用来做定位。
  • 视觉SLAM构建的半稠密与稠密的点云地图,可以用来做定位与导航,也可以用来做VR领域的交互场景,也可以用来做三维建模。
二维激光三维激光
在这里插入图片描述在这里插入图片描述

参考

1、wiki–Simultaneous localization and mapping
2、马志艳,邵长松,杨光友,李辉.同步定位与建图技术研究进展 [J].中国光学期刊2023, 30(3):78-85
3、高翔,张涛,刘毅,等.视觉SLAM十四讲[M].北京:电子工业出版社,2017:10-23.
4、曾庆化,罗怡雪,孙克诚,李一能,刘建业. 视觉及其融合惯性的SLAM技术发展综述 [J].南京航空航天大学学报2022
5、Past, Present, and Future of Simultaneous Localization And Mapping: Towards the Robust-Perception Age
6、EKF-SLAM A Very Quick Guide
7、吴建清,宋修广.同步定位与建图技术发展综述 [J].山东大学学报2021, 51(5):16-31
8、从零开始一起学习SLAM | 学习SLAM到底需要学什么?
9、如何学习SLAM(超全面)
10、机器人开发–二维激光SLAM介绍
11、机器人开发–Cartographer
12、近十年的VI-SLAM算法综述与发展
13、slam学习路线与心得总结
14、SLAM学习–2D激光SLAM–入门学习
15、仙知机器人|技术干货,带你了解SLAM技术的前世今生
16、gradslam(∇SLAM)开源:论文、代码全都有

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/685079.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python中同一变量多次赋值的探讨

Python中同一变量多次赋值的探讨 介绍 Python是一种非常流行的编程语言,具有易于学习和使用、强大的功能和可扩展性、广泛的应用领域等众多优点。在Python中,我们可以对同一变量多次进行赋值,这在某些情况下非常有用。本文将探讨在Python中…

2.3、Bean的管理

一、Bean的装配(IOC应用实现) 创建应用组件之间的协作的行为通常称为装配(wiring)。Spring IOC通过应用上下文(ApplicationContext)装载Bean的定义并把他们组装起来。 Spring应用上下文(Applica…

yum安装LNMP

目录 前言 一、yum安装要用在线yum源 二、安装Nginx 1、搭建Nginx环境 2、安装yum 3、查看Nginx是否安装成功 4、设置开机自启 三、安装MySQL 1、除系统中所有以"mariadb"开头的软件包 2、安装MySQL 3、设置开机自启 4、查看MySQL初始密码 5、修改MySQL密码…

第 107 场LeetCode双周赛

A 最大字符串配对数目 显然各字符串对 间匹配的先后顺序不影响最大匹配数目, 可以从后往前遍历数组, 判断前面是否有和当前末尾构成匹配的. class Solution { public:int maximumNumberOfStringPairs(vector<string> &words) {int res 0; while (words.size…

Python基础五

目录 一、Ptyhon数据类型--元组 1.元组的注意事项 2.元组的下标 3.访问元组元素 4.拼接元组 5.删除元组 6.元组运算符 二、Python内置函数--元组相关 一、Ptyhon数据类型--元组 Python 的元组与列表类似&#xff0c;不同之处在于元组的元素不能修改&#xff0c;也不能…

chatgpt赋能python:Python编写预警系统——保障企业安全的得力工具

Python编写预警系统——保障企业安全的得力工具 随着互联网应用的发展&#xff0c;企业所要面对的风险和威胁也与日俱增&#xff0c;预警系统的作用在保障企业安全中越来越显著。Python编写预警系统&#xff0c;成为了许多企业和团队的首选&#xff0c;具有方便快捷、灵活多样…

【软考网络管理员】2023年软考网管初级常见知识考点(13)-ARP、ICMP、IPv6协议详解

#涉及知识点 ARP协议详解、ICMP协议详解、IPv6协议等软考内容详解 软考网络管理员常考知识点&#xff0c;软考网络管理员网络安全&#xff0c;网络管理员考点汇总。 原创于&#xff1a;CSDN博主-《拄杖盲学轻声码》&#xff0c;更多考点汇总可以去他主页查看 文章目录 前言一、…

浅析AI深度学习计算机视觉技术在智能监控领域的场景应用

计算机视觉技术是一种模拟人类视觉功能的技术&#xff0c;通过数字图像处理、模式识别、机器学习等方法&#xff0c;自动分析和理解图像和视频中的信息&#xff0c;从而实现图像和视频的自动理解、识别、分类、检测和跟踪等任务。 计算机视觉技术的使用场景非常广泛&#xff0…

第十四章 Vision Transformer网络详解

系列文章目录 第一章 AlexNet网络详解 第二章 VGG网络详解 第三章 GoogLeNet网络详解 第四章 ResNet网络详解 第五章 ResNeXt网络详解 第六章 MobileNetv1网络详解 第七章 MobileNetv2网络详解 第八章 MobileNetv3网络详解 第九章 ShuffleNetv1网络详解 第十章…

Presto 之Cross Join消除的实现

一. 前言 Cross Join是指无条件的join。因为Cross Join的代价为笛卡尔乘积&#xff0c;代价很大&#xff0c;因此在Presto的执行优化中&#xff0c;会尽量消除掉Cross Join。Presto Cross Join的消除原理主要是尽可能通过对Join表的重新排序实现将Cross Join转换为Inner Join。…

Python基础六

目录 一、Python数据类型--字典 1.访问字典里的值 2.修改字典 3.删除字典元素 4.字典键的特性 二、Python内置函数--字典相关 一、Python数据类型--字典 字典是另一种可变容器模型&#xff0c;且可存储任意类型对象。 字典的每个键值 key>value 对用冒号 : 分割&#…

Tesla EDI 项目数据库方案开源介绍

近期为了帮助广大用户更好地使用 EDI 系统&#xff0c;我们根据以往的项目实施经验&#xff0c;将成熟的 EDI 项目进行开源。用户安装好知行之桥EDI系统之后&#xff0c;只需要下载我们整理好的示例代码&#xff0c;并放置在知行之桥指定的工作区中&#xff0c;即可开始使用。 …

Centos下 ffmpeg Unknown encoder ‘libx264‘终极解决方法

目录 背景 原因分析 解决问题 1. 确认提前安装了X264以及相关依赖。

数据结构的三要素

1 三要素之逻辑结构&#xff1a;数据元素之间的逻辑关系 集合&#xff1a;各个元素同属同一集合&#xff0c;别无其他关系&#xff0c;比如全世界500强公司 线性结构&#xff1a;数据元素是一对一的关系&#xff0c;除了第一个元素&#xff0c;其他元素都有唯一前驱&#xff…

设计模式学习之工厂方法模式

设计模式系列往期文章 设计模式学习之策略模式设计模式学习之策略模式在前端的应用设计模式学习之简单工厂模式 在上一篇文章中我们学习了简单工厂模式——这是工厂模式中最简单的一种模式&#xff0c;通过工厂类提供的方法创建类&#xff08;可以类比为产品&#xff09;&…

【区块链 | GameFi】 - 传统游戏进军链游GameFi的探索之路

撰文:W Labs Kluxury,Cplus 【原文链接】 本文要点: 一,什么游戏类型最适合改为链游? 除了链游特有的质押挖矿型和纯 NFT 型,其余的类型都和传统游戏类型高度重合。所以不存在绝对的什么类型可以链改而什么类型不能链改的结论。 开发者立场上看,符合如下几个特性的游…

机器学习之LDA算法

目录 LDA算法 LDA目标 LDA原理推导 LDA除法模型 LDA减法模型 LDA除法正则模型 LDA减法正则模型 证明&#xff1a;StSwSb LDA算法流程 LDA优点 LDA缺点 基于LDA的人脸识别 LDA算法 线性判别分析&#xff08;linear discriminant analysis&#xff0c;LDA&#xff0…

chatgpt赋能python:Python编码转换:理解不同的编码方式

Python编码转换&#xff1a;理解不同的编码方式 Python是一种功能强大的编程语言&#xff0c;它广泛用于各种领域&#xff0c;包括Web开发、数据分析、人工智能等等。与其他编程语言类似&#xff0c;Python也需要进行编码转换以处理不同的字符集和文本编码。 本文将介绍Pytho…

Spark Local环境搭建及测试

&#x1f947;&#x1f947;【大数据学习记录篇】-持续更新中~&#x1f947;&#x1f947; 篇一&#xff1a;Linux系统下配置java环境 篇二&#xff1a;hadoop伪分布式搭建&#xff08;超详细&#xff09; 篇三&#xff1a;hadoop完全分布式集群搭建&#xff08;超详细&#xf…

TypeScript ~ TS 面向对象编程 ⑧

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; TypeScript ~ TS &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以点点关注 &…