系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
TODO:写完再整理
文章目录
前言
机器人地图建立相关教程及博客请关注专栏:
https://blog.csdn.net/qq_35635374/article/details/138199063
本文先对机器人地图建立导读做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章
提示:以下是本篇文章正文内容
一、地图的理解及地图的类型介绍
在一个导航系统中,地图的主要作用是给决策规划提供先验的环境数据,在一个复杂的导航系统中,地图分为多个层级,包括高精度点云图层、语义图层、可视化图层、其他形式图层等。
不同层级的地图存储并更新不同类型的数据,因此不同层级的地图往往使用不同的地图格式,包括特征点云地图、矢量地图、语义地图、二维占据地图、二维代价地图、三维八叉树地图、ESDF Map欧氏距离场地图等等。
总的来说,我们可以认为地图就是一个巨大的数据结构,不同的地图格式本质就是使用不同数据结构存储和更新环境信息。本文先介绍常用的地图格式,了解不同地图格式的特性和功能。针对不同的地图格式,地图的建立和更新方法在下面章节进行介绍。
https://blog.csdn.net/qq_35635374/article/details/120960481
二、地图SLAM构建基础理解
介绍地图构建的相关知识,包括地图模块与感知模块、地图模块与定位模块、地图模块与决策模块、地图模块与路径规划模块的关系和交互,不同模块的交互方式决定了一个导航架构的基本构型,进而影响技术方案和业务效果,所以从地图模块出发理解导航是一个很不错的出发点。
作为引入,可从构建地图的过程比喻、SLAM的实现要解决的问题、SLAM的传感器选型等等方面进行介绍。
https://blog.csdn.net/qq_35635374/article/details/120978752
三、构建地图准备
构建地图需要感知与传感器的支持,简述激光传感器的选型与地图构建的选型问题、与点云数据的后处理问题
https://blog.csdn.net/qq_35635374/article/details/120979417
四、构建特征点云地图–2D激光雷达地图构建介绍
介绍2D激光雷达的构建特征点云地图的相关知识
首先,介绍2D激光SLAM建图算法的发展,依次经历了使用基于滤波器的方法建图、使用基于图优化的方法建图、使用基于已知位姿的方法建图、使用基于激光融合视觉的建图方法等等。
再介绍了SLAM的关键技术,如SLAM建图的输入数据与输出数据、SLAM的后端回环检测方法等等。
https://blog.csdn.net/qq_35635374/article/details/120979524
二维全局地图的开源方案及对比–gmapping、hector、karto、cartographer
依次介绍构建二维全局地图的开源算法方案,包括gmapping算法、hector算法、karto算法、cartographer算法。
分别从算法原理、算法流程、工程框架解析机部署三个方面对上述算法进行详细介绍,最后对2D的SLAM方案进行对比。
https://blog.csdn.net/qq_35635374/article/details/121000952
五、构建特征点云地图–3D激光雷达地图构建介绍
介绍3D激光雷达的构建特征点云地图的相关知识
首先,介绍3D激光SLAM建图算法的发展,依次经历了使用LOAM-纯激光,匀速运动假设,无回环(Lidar Odometry And Mapping(LOAM))的方法建图、使用V-LOAM-视觉激光融合、漂移匀速假设,无回环的方法建图、使用VELO-视觉激光融合,无运动畸变假设,有回环的方法建图方法等等。
再介绍了SLAM的关键技术,如SLAM建图的输入数据与输出数据、3D激光里程计(作为一个3d建图前端存在的)、3D激光SLAM的前端帧间匹配Tracking方法、3D激光SLAM的后端回环检测方法等等。
https://blog.csdn.net/qq_35635374/article/details/120981832
【依赖高精度点云地图和三维激光雷达的定位方案】正态分布变换(NDT)定位及建图
介绍正态分布变换(NDT)定位及建图的方法,包括正态分布变换(NDT)定位解决的主要问题、正态分布变换(NDT)定位的核心思想、NDT算法流程、NDT配准的C++源码实现。
https://blog.csdn.net/qq_35635374/article/details/121786885
三维全局地图的开源方案及对比–NDT、LOAM、LIO-SAM、ALOAM、FLOAM、Lego_loam、SC-Lego-LOAM
依次介绍构建三维全局地图的开源算法方案,包括NDT算法、LOAM算法、LIO-SAM算法、ALOAM算法、FLOAM算法、Lego_loam算法、SC-Lego-LOAM算法、V-LOAM算法等等,最后对2D的SLAM方案进行对比。
https://blog.csdn.net/qq_35635374/article/details/121002668
六、构建特征点云地图–视觉SLAM介绍
介绍的视觉SLAM构建特征点云地图的相关知识
首先,介绍了视觉SLAM的数学理论,如点与坐标系的位置关系表达的运动学基础、李群与李代数、相机观测模型与非线性优化等等
然后,介绍了视觉SLAM的关键技术,如前端里程计(Visual Odometry)、后端优化(Optimization)、回环检测(Loop Closing)、建图(Mapping)等等。
最后,列举SLAM众多的开源方案类型
https://blog.csdn.net/qq_35635374/article/details/121000052
视觉SLAM全局地图的开源方案及对比–rgbdslam、ORB_SLAM、RTAB SLAM
依次介绍常用的视觉SLAM的开源算法方案,包括rgbdslam算法、ORB_SLAM算法、RTAB SLAM算法
https://blog.csdn.net/qq_35635374/article/details/121003037
七、代价栅格地图costmap的介绍
代价栅格地图costmap是机器人常用与路径规划的地图,本文介绍costmap_2d代价地图生成理论及costmap_2d功能包源码工程解读
第一章:costmap_2d代价地图生成原理
https://blog.csdn.net/qq_35635374/article/details/120874817
第二章:二维占据栅格地图costmap生成方法及源码解析
https://blog.csdn.net/qq_35635374/article/details/120918847
八、vector_map矢量化地图的生成
vector_map矢量化地图常用于车道级的自动驾驶中,本文介绍vector_map矢量化地图的生成方法及步骤,包括传感器采集、vector_map地图构建及服务、地图信息的传递、地图数据包获取等等
https://blog.csdn.net/qq_35635374/article/details/120920983
九、通过栅格地图,目标路径(目标点)建立距离场地图
介绍一种地图转换的案例,把代价栅格地图转化成距离场地图,详细介绍了实现原理及源码实现
https://blog.csdn.net/qq_35635374/article/details/134653666
十、autoware高精度地图模块demo
autoware高精度地图模块为例,介绍导航中式如何构建和使用一个地图模块的。
地图就是一种数据结构,地图格式就是用不同的数据类型和数据结构把地图信息存储起来,所以解析地图必须由标准的地图格式(如把csv转换成ros_topic)
介绍构建高精度地图步骤,包括先通过上文介绍的SLAM方法建立特征点云地图(一般式稠密点云),再通过特征点云地图,标注制作语义信息,构建vector_map语义地图、通过点云地图建立栅格代价costmap地图、最后把特征点云地图、栅格代价costmap地图与vector_map语义地图作为不同层级生成高精度地图等等。
作为扩展,再介绍一些规划用到的地图格式、vector_map语义地图制作工具、栅格地图处理等等拓展
https://blog.csdn.net/qq_35635374/article/details/124539162
其他知识
【地图mapping】视觉SLAM–李群与李代数理论
介绍李群与李代数理论,包括群(集合+运算)、李群与李代数定义、指数映射与对数映射、李代数求导与扰动模型(SLAM的定位即位姿估计)、李群和李代数Sophus库的使用等等
https://blog.csdn.net/qq_35635374/article/details/121181552
【局部地图建立mapping】PCL点云处理建立局部占据及代价地图的方法
介绍通过点云数据建立栅格代价costmap地图的方法、ROS的map_server与自定义工具进行costmap地图的保存与加载。
https://blog.csdn.net/qq_35635374/article/details/122126236