激光SLAM学习之路(一、前言)

一、前言

        SLAM(Simultaneous Localization and Mapping) 同步定位与地图构建是本人在大二下学期在导师指导下开始接触,一直没有进行系统的梳理和学习,在课外时间跟老师学习中搭建了基于激光雷达的一台智能车,由于各种原因一直没有真正的完成,闲话不多说,开始正式的学习记录之旅。

        SLAM在各个行业都有应用,那么这篇文章主要记录学习各个工具的过程、教程。

        主要学习的系统/工具:Linux系统应用(Ubuntu 18.04)、Ros系统(Ros melodic)、激光雷达原理、SLAM相关理论与实践编程等。


二、SLAM(同步定位与地图构建)

2.1 激光SLAM算法简介

        SLAM(Simultaneous Localization and Mapping)是业界公认视觉领域空间定位技术的前沿方向,中文译名为[同步定位与地图构建],它主要用于解决机器人在未知环境运动时的定位与地图构建问题(即:一个机器人在未知环境中运动,如何通过对环境的观测确定自身的运动轨迹,同时构建出环境的地图)。在无人驾驶领域,可以使用SLAM技术提供视觉里程计功能,然后跟其他的定位方式融合,实现车辆在未知环境厘米级定位。机器人定位导航方面,SLAM可以用于生成环境的地图。基于这个地图,机器人/汽车等设备可执行路径规划、自主探索、导航等任务。

        广义上,SLAM(同步定位与地图构建)分为激光SLAM与视觉SLAM两大类。按照传感器的不同,可分为基于激光雷达的2D/3D SLAM基于深度相机的RGBD SLAM基于视觉传感器的 visual SLAM(以下简称vSLAM)、基于视觉传感器和惯性单元的visual inertial odometry(以下简称VIO)。

        基于激光雷达的SLAM以其准确测量障碍点的角度与距离、无须预先布置场景、可融合多传感器、在光线较差环境工作、能够生成便于导航的环境地图等优势,成为目前定位/建图方案中不可或缺的新技术。激光SLAM任务是搭载激光雷达的主体于运动中估计自身的位姿,同时建立周围的环境地图。

2.2 激光SLAM算法发展历程

年份 方案 传感器 优缺点
1988 EKF-SLAM 2D激光 构建特征地图,计算量复杂,鲁棒性差
2002 Fast-SLAM 2D激光 最早实时输出栅格地图;消耗内存,粒子耗散严重
2007 Gmapping 2D激光 缓解粒子耗散;非常依赖于里程计信息
2010 Optimal RBPF 2D激光 进一步减少粒子退化问题
2010 Karto-SLAM 2D激光 首个基于图优化框架开源方案,认识稀疏性;耗费时间
2011 Hector-SLAM 2D激光 不需要里程计信息;强旋转下漂移,初值敏感,难处理闭环
2014 LOAM 3D激光 实时性好;匀速运动假设,无闭环检测
2015 V-LOAM 3D激光、视觉 精度高、算法鲁棒性好;漂移匀速假设,无闭环检测
2016 Cartographer 2D激光 CSM与梯度优化的前端,图优化的后端,加速的闭环检测
2016 VELO 3D激光、视觉 有闭环检测模块,低漂移;无运动畸变假设
2018 IMLS 3D激光 不依赖于GPS、IMU、相机等传感器,低漂移
2018 LVIO 3D激光、视觉 低漂移,光照、旋转、结构退化环境下鲁棒性极好

三、主要工作

        安装Ubuntu 18.04系统,调试并换源

        安装Ros系统,调试,小乌龟试跑

        安装Vscode,调试环境,匹配Ros workspace

        学习雷达数据预处理(雷达畸变,里程计标定等)

        学习前端匹配(ICP、PI-ICP等)

        学习后端优化(手写)

        学习回环检测

        (更新ing)

下一篇文章:二、Linux系统安装(PC/虚拟机)

你可能感兴趣的:(SLAM学习之路,ubuntu)