激光SLAM入门学习笔记[通俗易懂]

激光SLAM入门学习笔记[通俗易懂]激光SLAM入门学习笔记(持续更新)激光SLAM入门学习笔记(持续更新)一、推荐阅读书籍二、推荐公众号、知乎、博客1、公众号2、知乎3、博客三、推荐阅读论文&代码(参考泡泡机器人)2D激光SLAM3D激光SLAM1、LOAM(经典)2、A-LOAM(初学)3、LeGO-LOAM(进阶)4、Lio-mapping(进阶、LIO初学)5、hdl_graph_slam(入门)10、SC-LeGO-LOAM(应用推荐)激光SLAM入门学习笔记(持续更新)一、推荐阅读书籍视觉SLAM十四讲概率机器人

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

激光SLAM入门学习笔记

一、推荐阅读书籍

  • 视觉SLAM十四讲
  • 概率机器人
  • 机器人学中的状态估计
  • 计算机视觉中的多视图几何
  • 机器人感知:因子图在SLAM中的应用
  • 矩阵分析/MIT老爷子的线性代数课程也可
  • 点云库PCL从入门到精通

ROS

  • ROS机器人编程实践 [美] 摩根·奎格利(Morgan Quigley),布莱恩·格克(Brian,G )著

Linux

  • 鸟哥的Linux私房菜

C++

  • C++ Primer Plus
  • C++ Primer
  • 侯捷C++课程,b站有

二、推荐公众号、知乎、博客

1、公众号

  • 泡泡机器人:SLAM经典公众号
  • 计算机视觉life:分享计算机视觉类资料

2、知乎

  • 半闲居士:《视觉SLAM十四讲》作者高翔博士
  • hitcm:SLAM算法工程师,专注机器人与无人驾驶
  • 肖泽东Shon:腾讯计算机视觉(SLAM/VIO)算法工程师
  • David LEE:SLAM工程师
  • 游振兴:专注于机器人领域研究
  • bobin:专注于机器人、无人机、视觉SLAM等领域
  • 丁有爽:专注于机器人控制、SLAM、机器视觉等领域
  • Hengkai Guo:专注于计算机视觉、深度学习、SLAM领域
  • 无语西:专注于vSLAM研究
  • Encoder:专注于机器人、机器视觉等领域
  • fishmarch:专注于视觉SLAM研究
  • 原野寻踪:聚焦于移动机器人的视觉SLAM
  • 张珊珊:专注于语义SLAM研究
  • 范帝楷:专注于SLAM研究
  • 李阳阳:专注于SLAM研究
  • 杨小东:专注于SLAM、移动机器人领域

3、博客

  • 白巧克力亦唯心:CSDN博客专家,发布数十篇原创高质量博文,包含算法推导系列、SLAM、用ROS开发自己的机器人系列等
  • 半闲居士:高翔博士博客,主要包含了SLAM数学基础、基本理论以及SLAM实践
  • sylvester0510:包含OpenCV实践以及对ORB-SLAM2的详细解读等原创文章
  • 勿在浮砂筑高台:包含特征比配、图像处理、机器学习等相关原创文章
  • 冯兵的博客:专注于计算机视觉,主要包括三维重建和视觉定位
  • hitcm:包含了SLAM开源代码的解读,ROS实践
  • 李健:包含相机标定、DBoW原理介绍及应用等
  • 刘富强:关于深度滤波器的原理、实现以及对极约束进行了详细介绍
  • 五行缺帅:专注于计算机视觉、SLAM、深度学习等领域
  • 徐尚:分享OpenCV、SLAM开源框架、ROS等学习经验
  • 极品巧克力:分享SLMA数学基础、开源框架解读
  • 一索哥传奇:专注于机器人、SLAM领域的研究

三、推荐阅读论文&代码(参考泡泡机器人)

2D激光SLAM

1、Gmapping
简介
基于粒子滤波框架的激光SLAM,结合里程计和激光信息,每个粒子都携带一个地图,构建小场景地图所需的计算量较小,精度较高。可以结合《概率机器人》一起学习。
Github链接
https://github.com/ros-perception/openslam_gmapping
https://github.com/ros-perception/slam_gmapping
相关论文
Giorgio Grisetti, Cyrill Stachniss, and Wolfram Burgard: Improved Techniques for Grid Mapping with Rao-Blackwellized Particle Filters, IEEE Transactions on Robotics, Volume 23, pages 34-46, 2007.

Giorgio Grisetti, Cyrill Stachniss, and Wolfram Burgard: Improving Grid-based SLAM with Rao-Blackwellized Particle Filters by Adaptive Proposals and Selective Resampling, In Proc. of the IEEE International Conference on Robotics and Automation (ICRA), 2005.

2、Hector_slam
简介
利用优化方法进行帧间匹配的激光slam算法,不需要里程计信息,代码较短。缺点是在雷达频率不够的设备上,效果不佳。
GitHub链接
https://github.com/tu-darmstadt-ros-pkg/hector_slam
相关论文
Kohlbrecher, Stefan , et al. “A flexible and scalable slam system with full 3d motion estimation.” 2011 IEEE International Symposium on Safety, Security, and Rescue Robotics IEEE, 2011.

3、Karto
简介
图优化SLAM,包含回环,主要利用矩阵的稀疏化进行求解,在大范围环境下建图有优势。
Github链接
https://github.com/ros-perception/open_karto
https://github.com/ros-perception/slam_karto
相关论文
Olson, E. B. . “Real-time correlative scan matching.” Robotics and Automation, 2009. ICRA ’09. IEEE International Conference on IEEE, 2009.
Konolige, Kurt , et al. “Efficient sparse pose adjustment for 2D mapping.” 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems IEEE, 2010.

4、Cartographer
谷歌出品,必属佳品
简介
源自谷歌,代码优美,是非常完整的激光slam系统,包含相对鲁棒的前端,基于submap和node约束的独立的pose graph后端及各类评测工具。模块化、系统化、工程化程度很高, 封装很完善,初次学习需要一定的c++和算法基础。同时它的注释完善,各类资料与教程众多,很适合进阶学习。
Github链接
https://github.com/cartographer-project/cartographer
相关论文
Hess, Wolfgang , et al. “Real-Time Loop Closure in 2D LIDAR SLAM.” 2016 IEEE International Conference on Robotics and Automation (ICRA) IEEE, 2016.

3D激光SLAM

1、LOAM(经典)

经典之作,长期霸榜
简介
长期霸榜kitti odometry门类第一,分为前端和后端,提取线面特征进行匹配定位,很好的权衡了精度和效率。虽然原版代码已经闭源,但在该算法基础上,有多个改进的代码版本。
Github链接
loam中文注解版:https://github.com/cuitaixiang/LOAM_NOTED
相关论文:
Ji Zhang and Sanjiv Singh. “LOAM: Lidar Odometry and Mapping in Real-time.” Proceedings of Robotics: Science and Systems Conference, 2014.

2、A-LOAM(初学)

简介
将原版LOAM代码中的旋转从欧拉角改成了Eigen库中的四元数,优化使用ceres库,极大的简化了代码的复杂性,非常适合初学者进行学习。
Github链接
https://github.com/HKUST-Aerial-Robotics/A-LOAM

3、LeGO-LOAM(进阶)

简介
在LOAM的基础上细化了特征提取与优化,带有回环功能。可以在低功耗嵌入式系统上实现实时姿态估计。可以作为LOAM代码的进阶学习。
Github链接
https://github.com/RobustFieldAutonomyLab/LeGO-LOAM
相关论文
Shan T , Englot B . LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain[C]// 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2019.

4、Lio-mapping(进阶、LIO初学)

简介
使用imu预积分和LOAM融合进行SLAM,紧耦合优化框架。预积分门槛较高,适合作为LIO(激光惯性里程计)的初学者学习。
Github链接
https://github.com/hyye/lio-mapping
相关论文
Ye, Haoyang , Y. Chen , and M. Liu . “Tightly Coupled 3D Lidar Inertial Odometry and Mapping.” (2019).

5、hdl_graph_slam(入门)

简介:(hdl还有一个定位模块)
非常简单的图优化3D激光SLAM框架,前端可以使用并行处理的ICP或者NDT,带有回环,可以融合imu、GPS和路面约束等信息。论文不推荐读了,直接看代码最好。可以作为3D激光的入门代码学习。
Github链接
https://github.com/koide3/hdl_graph_slam

6、BLAM
简介
仅用激光的SLAM算法,前端使用GICP,后端使用GTSAM,效果还不错,回环速度快。
Github链接
https://github.com/erik-nelson/blam

7、SegMap
简介
利用3D CNN语义信息的3D激光SLAM框架,在某些场景比传统SLAM更具有优势。
Github链接
https://github.com/ethz-asl/segmap
相关论文
R. Dubé, A. Cramariuc, D. Dugas, J. Nieto, R. Siegwart, and C. Cadena. “SegMap: 3D Segment Mapping using Data-Driven Descriptors.” Robotics: Science and Systems (RSS), 2018.

R. Dubé, MG. Gollub, H. Sommer, I. Gilitschenski, R. Siegwart, C. Cadena and , J. Nieto. “Incremental Segment-Based Localization in 3D Point Clouds.” IEEE Robotics and Automation Letters, 2018.

R. Dubé, D. Dugas, E. Stumm, J. Nieto, R. Siegwart, and C. Cadena. “SegMatch: Segment Based Place Recognition in 3D Point Clouds.” IEEE International Conference on Robotics and Automation, 2017.

8、SuMa
简介
使用Surfel地图去实现前端里程计和闭环检测,此前Surfel地图曾被用在RGBD-SLAM中,第一次见到被用在激光SLAM中,很值得大家去了解学习。
Github链接
https://github.com/jbehley/SuMa
相关论文
J. Behley, C. Stachniss. Efficient Surfel-Based SLAM using 3D Laser Range Data in Urban Environments, Proc. of Robotics: Science and Systems (RSS), 2018.

9、Suma++
简介
在SuMa基础上,利用RangeNet++过滤动态信息,提升定位建图精度。
Github链接
https://github.com/PRBonn/semantic_suma
相关论文
Chen, Xieyuanli & Milioto, Andres & Palazzolo, Emanuele & Giguère, Philippe & Behley, Jens & Stachniss, Cyrill. (2019). SuMa++: Efficient LiDAR-based Semantic SLAM. 4530-4537. 10.1109/IROS40897.2019.8967704.

——————————2020.06.22 更新——————————

10、SC-LeGO-LOAM(应用推荐)

简介
在LeGO-LOAM基础上,利用Scan Context做回环检测,改善建图回环效果。在TX2上也可运行。
Github链接
https://github.com/irapkaist/SC-LeGO-LOAM
相关论文
LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain
Scan Context: Egocentric Spatial Descriptor for Place Recognition within 3D Point Cloud Map

11、LeGO-LOAM-BOR
简介
LeGO-LOAM的软件优化版本。提高代码的质量和性能,使其更具可读性,一致性,并易于理解和修改。
Github链接
https://github.com/facontidavide/LeGO-LOAM-BOR/tree/speed_optimization
——————————2020.07.09 更新——————————

12、LIO-SAM(LiDAR、IMU、GPS耦合)

简介
LeGO-LOAM作者新作,在LeGO-LOAM基础上,加入了LiDAR、IMU、GPS紧耦合,用gtsam库优化。在其提供的手持设备数据集上效果很好。
Github链接
https://github.com/TixiaoShan/LIO-SAM
相关论文
LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping

13、LINS(LiDAR、IMU紧耦合,快速)

简介
Lio_mapping作者新作,用ESKF优化,比lio_mapping速度提高了一个数量级。
Github链接
https://github.com/ChaoqinRobotics/LINS—LiDAR-inertial-SLAM
相关论文
LINS: A Lidar-Inertial State Estimator for Robust and Efficient Navigation

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/172341.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 内存对齐宏的定义

    内存对齐宏的定义

  • 添加和共享打印机的方法是_按名称选择共享打印机输入什么

    添加和共享打印机的方法是_按名称选择共享打印机输入什么在Windows10中,可以将打印机共享给网络上的多台电脑。若要从连接到打印机的电脑(主要电脑)共享打印机至未连接到打印机的辅助电脑,你必须设置共享打印机设置、将打印机连接到主要电脑(或者以无线方式或使用USB电缆),然后打开打印机。另外,请确保主电脑已打开、连接到打印机并连接到网络。注意共享打印机时,请确保已在主要和辅助电脑上设置了共享设置。此外,请确保你知道主要电脑的名称。有关详细信…

  • win10中安装centos7双系统

    win10中安装centos7双系统不能识别ntfs盘怎么处理。./configuremakemakeinstall用fdisk-l查看下分区表里ntfs盘都是什么盘。为这里在win10下的ntfs盘分别为sda1、sda2、sda3、sda5、sda6添加挂载在计算机下mnt文件下中新建几个文件夹分别用来挂在你的ntfs硬盘。这里我在mnt文件夹下新建了study、work、funmoun…

  • arduino概述_arduino serial

    arduino概述_arduino serial[实践笔记]ArduinoのSerial.println()主要内容Arduino与其他元器件常用串口通信,本文章在主要通过实践方式介绍Serial.println()的同时,牵扯到一些常用的串口操作函数,一下会带领想入门Arduino的同学层层深入,如有错误还请不吝赐教。正文Serial.available()>0Serial.available()的意思是:返回串口缓冲区中当前剩余的字符个数。一般用这个函数来判断串口的缓冲区有无数据,当Serial.available()>0

  • 剑指Offer面试题:10.数值的整数次方

    一题目:数值的整数次方二实现思路(1)当指数为负数的时候:可以先对指数求绝对值,然后算出次方的结果之后再取倒数。(2)当底数(base)是零且指数是负数的时候:通过全局代码或异常告诉调用者参

    2021年12月19日
  • WPF中的布局方式

    WPF中的布局方式前言:WPF(WindowsPresentationFoundation)是微软推出的基于Windows的用户界面框架,属于.NETFramework3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面布局方式:1.Canvas2.Grid3.WarpPanel4.StackPanel5.ScrollViewer……

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号