激光SLAM入门学习笔记[通俗易懂]
激光SLAM入门学习笔记
激光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
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172341.html原文链接:https://javaforall.cn
相关文章
- Python学习笔记(28)-Python读取word文本「建议收藏」
- Spring学习笔记(二十九)——SpringBoot Actuator指标监控
- RabbitMQ学习笔记(一)——消息中间件入门
- 操作系统概念 学习笔记
- 1.汇编语言零基础入门学习笔记(1)
- 3.Python3基础入门学习笔记(三)
- 负载均衡(SLB)基础入门学习笔记
- TypeScript学习笔记(四)—— TypeScript提高
- 清风数学建模学习笔记——层次分析法(AHP)
- python编程从入门到实践 学习笔记
- Vue.js 学习笔记 - 组件(Components)
- 学习笔记 | Android Studio安卓开发入门经验总结 干货
- 【RT-Thread学习笔记】如何使用scons 命令中buildlib的生成静态库?
- Rust学习笔记之Rust环境配置和入门指南
- 网络编程学习笔记4-Roundtrip代码分析
- 网络编程学习笔记8-对netcat压力测试
- 鸟哥的私房菜学习笔记 -- iptables防火墙设置
- 生信学习小组Day4笔记—Chocolate Ice
- Cat入门学习笔记整理
- Java学习笔记 (死锁)
- Java基础学习笔记九 Java基础语法之this和super详解编程语言
- Spark学习笔记2:RDD编程详解大数据
- Java8——快速入门手册(学习笔记)详解编程语言
- 学习笔记:Linux汇编语法入门(linux汇编语法)
- Oracle入门谨记这些笔记(oracle入门学习笔记)
- MySQL学习笔记写循环语句优化与技巧(mysql中写循环语句)
- PHP入门学习笔记之一
- SQL学习笔记一SQL基础知识
- javascript学习笔记(十一)正则表达式介绍
- JavaScript高级程序设计(第3版)学习笔记12js正则表达式
- Laravel框架学习笔记(二)项目实战之模型(Models)
- php学习笔记之面向对象
- JavaScript学习笔记之变量及其作用域