激光雷达SLAM算法综述

大家好呀,我是一个SLAM方向的在读博士,深知SLAM学习过程一路走来的坎坷,也十分感谢各位大佬的优质文章和源码。随着知识的越来越多,越来越细,我准备整理一个自己的激光SLAM学习笔记专栏,从0带大家快速上手激光SLAM,也方便想入门SLAM的同学和小白学习参考,相信看完会有一定的收获。如有不对的地方欢迎指出,欢迎各位大佬交流讨论,一起进步。博主创建了一个科研互助群Q:772356582,欢迎大家加入讨论。

激光雷达SLAM算法综述
单位:陆军工程大学
doi:10.3778/j.issn.1002-8331.2308-0455

一、文章概述

1.1 摘 要

即时定位与地图构建(simultaneous localization and mapping,SLAM)是自主移动机器人和自动驾驶的关键 技术之一,而激光雷达则是支撑SLAM算法运行的重要传感器。基于激光雷达的SLAM算法,对激光雷达SLAM总体框架进行介绍,详细阐述前端里程计、后端优化、回环检测、地图构建模块的作用并总结所使用的算法;按由2D到 3D,单传感器到多传感器融合的顺序,对经典的具有代表性的开源算法进行描述和梳理归纳;介绍常用的开源数据集,以及精度评价指标和测评工具;从深度学习、多传感器融合、多机协同和鲁棒性研究四个维度对激光雷达SLAM 技术的发展趋势进行展望。

1.2问题导向

SLAM最早是由Smith和Cheeseman于1986提出,发展至今已有30多年。激光雷达可 以直接测量距离,对环境的感知更加准确,可以获取物 体的空间位置和形状信息,构建高精地图进行精确定 位,对长时间运行的SLAM系统也更加可靠和稳定。激 光SLAM被广泛应用于室内导航、三维重建和自动驾驶。本文将系统地对激光SLAM进行综述,对相关的激光SLAM算法进 行分析总结。

二、SLAM系统框架

传感器数据采集处理、前端里程计、后端优化、回环检测和地图构建。

2.1前端里程计

2.1.1点云去畸变

激光SLAM中的点云畸变是指点云的运动畸变:激光雷达在扫描过程中,载体机器人是在不断运动的,这就会导致同一帧中的点云数据,是由在不同位置下的激光雷达坐标系测量得到的。常见的点云运动畸变去除方法有纯估计法和传感器辅助法。

  • 三、激光SLAM方案

    3.1 2D激光SLAM

  • Fast-SLAM:采用粒子滤波技术, 可以处理非线性系统。大环境下或者在里程计误差较大时需要更多的粒子才能得到较好的估计,这可能会造成内存 爆炸,而粒子的重采样会导致粒子耗散。
  • GMapping:通过降低粒子数量的 方法大幅度缓解内存爆炸;采用选择性重采样方法,对粒子进行重要性权重排序,对权值低的粒子进行重采样,解决RBPF算法中粒子耗散问题。基于滤波的算法且无 回环检测,长时间运行存在较大累计误差,无法在室外 构建大环境地图。
  • Karto:第一个基于图优化的开源SLAM算法
  • Hector-SLAM:创新性地采用高斯牛顿法直接进行帧-图匹配(scan-to-map)优化,构建栅格地图。缺少闭环检测,没有修正能力
  • Cartographer:是目前精度最高、实时性、鲁棒性最好、二次开发最为便捷的开源SLAM算法之一。引入子图(submap)概念,使用 CSM和梯度优化相结合的方法使帧与子图进行匹配。后端基于图优化算法,将当前激 光帧和之前建立的所有子图都加入闭环检测模块,采用分支定界法提升搜索速度。

详情请见...

激光雷达SLAM算法综述 - 古月居 (guyuehome.com)

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

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

相关文章

BEVFusion的相机工作流中,图像编码之后FPN+ADP网络的作用

在BEVFusion的相机工作流中,图像编码之后会经过一个FPNADP的网络,那么这个结构的作用是什么呢 FPN大家都很熟悉,就是特征金字塔。但是这里还是贴一些来自GPT的废话 在Bird’s Eye View (BEV) 算法中使用的特征金字塔网络(FPN, Feature Pyrami…

Clean Code 阅读笔记

初期未记录,待二次阅读。。。 Concurrency Keep your concurrrency-related code separate from other code.Take data encapsulation to heart; severely limit the access of any data that may be shared.Attempt to partition data into independent subsets …

Redis 缓存失效策略及其应用场景

Redis,作为一款高性能的键值存储系统,广泛应用于缓存、消息队列、计数器等多种场景中。其高效的数据管理和过期策略是保证系统稳定运行的关键因素之一。本文将深入探讨Redis中缓存失效的几种策略——定时删除、惰性删除、定期删除,以及如何结…

三十岁,不能再需要依靠,因为你是所有人的依靠

在这个世界的某个角落,有一个被岁月轻抚过的门槛,跨过了它,便是三十岁的风景。人们常说,三十而立,仿佛在这一刻,生命被赋予了新的重量,不再是那片随风飘荡的云,而是成为了大地的一部…

视频监控管理平台LntonCVS监控视频汇聚融合云平台主要功能应用场景介绍

随着网络技术的不断发展和万物互联时代的到来,视频融合在一些系统集成项目及综合管理应用中变得日益重要。本文以LntonCVS视频融合云平台为案例,探讨视频融合的对象及其应用场景。 1. 视频监控设备 视频监控摄像设备是各种视频应用项目的基础部分。在视…

【Andoird开发】android获取蓝牙权限,beacon,android-beacon-library

iBeacon 最先是苹果的技术,使用android-beacon-library包可以在android上开发iBeacon 技术。 iBeacon的发明意义重大。它是一种基于蓝牙低功耗(Bluetooth Low Energy, BLE)技术的定位系统,通过向周围发送信号来标识其位置。这项技…

【NumPy】关于numpy.arange()函数,看这一篇文章就够了

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

AI--构建检索增强生成 (RAG) 应用程序

LLM 所实现的最强大的应用之一是复杂的问答 (Q&A) 聊天机器人。这些应用程序可以回答有关特定源信息的问题。这些应用程序使用一种称为检索增强生成 (RAG) 的技术。 典型的 RAG 应用程序有两个主要组件 索引:从源中提取数据并对其进行索引的管道。这通常在线下…

实时3D云渲染与汽车虚拟仿真的联系

汽车虚拟仿真是指利用计算机技术对汽车进行全方位的模拟,包括车身结构、发动机、转向系统、悬挂系统、制动系统等各个方面,以达到实现汽车设计验证、性能分析、安全评估和驾驶模拟等目的的一种技术手段。现如今,越来越多的汽车制造商采用虚拟…

K8s Service 背后是怎么工作的?

kube-proxy 是 Kubernetes 集群中负责服务发现和负载均衡的组件之一。它是一个网络代理,运行在每个节点上, 用于 service 资源的负载均衡。它有两种模式:iptables 和 ipvs。 iptables iptables 是 Linux 系统中的一个用户空间实用程序,用于…

为什么避免 v-if 和 v-for 一起用?

避免在 Vue 中将 v-if 和 v-for 一起使用在同一个元素上,主要是因为它们会导致一些潜在的性能问题和逻辑复杂性。以下是几个主要的原因: 性能问题:当 v-if 和 v-for 同时使用时,Vue 会在每次循环渲染时重新计算 v-if 指令的值。这…

Kroma宣布推出Spectrum:以太坊Layer-2的先进原生质押服务

Kroma宣布推出备受期待的Spectrum,这是一项先进的原生质押服务,旨在彻底改变以太坊 Layer-2格局。Spectrum将于2024年5月14日开始运营,为用户提供利用质押ETH、stETH和eETH的奖励机会,助力用户在去中心化金融(DeFi&…

爆火!开源多模态大模型在手机端进行本地部署!

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型& AIGC 技术趋势、大模型& AIGC 落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了…

二叉树遍历操作详解

目录 一、思路详解 1.1 递归思路 1.2 递归分支图 1.3 递归栈帧图 二、C语言实现 2.1 前序遍历 2.2 中序遍历 2.3 后序遍历 三、查找值为x的结点 3.1 递归思路 3.2 C语言代码 一、思路详解 采用递归的思想解决问题,以高度为3的满二叉树为例。 1.1 递归思…

mqtt flutter web项目websocket

mqtt flutter web项目websocket 在网上找相关的代码学习,太少了,自己借鉴研究了一个 pubspec.yaml添加引用包 dependencies: flutter: sdk: flutter fast_gbk: 1.0.0 mqtt_client: ^10.2.0 mqtt代码: import package:mqtt_client/mqtt…

ClickHouse 几年内数据查询及细节

在 ClickHouse 中,查询三年内的时间数据可以使用以下方法: 1. 使用日期函数 可以使用 ClickHouse 支持的日期函数来筛选出三年内的数据。例如,使用 today() 函数获取当天日期,使用 toDate() 函数将日期转换为指定格式&#xff0…

【C++】学习笔记——map和set

文章目录 十五、map和set1. 关联式容器2. set的介绍3. set的使用4. multiset5. map的介绍6. map的使用7. multimap8. map中重载的operator[] 未完待续 十五、map和set 1. 关联式容器 我们已经接触过STL中的部分容器,比如:vector 、list 、deque 等&…

Golang | Leetcode Golang题解之第99题恢复二叉搜索树

题目: 题解: func recoverTree(root *TreeNode) {var x, y, pred, predecessor *TreeNodefor root ! nil {if root.Left ! nil {// predecessor 节点就是当前 root 节点向左走一步,然后一直向右走至无法走为止predecessor root.Leftfor pr…

《数组逆序输出》

描述 编写程序,输入10个整数n存入,再按逆序重新存放后再输出。 输入描述 输入共10个数。 输出描述 输出共1行,每个数字用空格隔开。 样例输入 1 -5 -4 -3 -2 -1 0 1 2 3 4 样例输出 1 4 3 2 1 0 -1 -2 -3 -4 -5 提示 对于100%的数据…

OpenHarmony开发之MQTT讲解

相信MQTT这个名称大家都不陌生,物联网的开发必然会遇到MQTT相关知识的应用。那么什么是MQTT?它有什么特点?它能解决什么问题?它是如何工作的?OpenAtom OpenHarmony(以下简称“OpenHarmony”)的物…