文章目录
前言
机器人地图建立相关教程及博客请关注专栏:
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
点云数据处理
1、点云数据密度不规则需要平滑处理
2、去除因为遮挡等问题造成离群点
3、数据量较大,需要进行下采样( Downsample)
4、去除噪声数据。
直通滤波器
作用是在指定的维度方向上保留特定值域内的点,同时过滤掉不在这个范围内的点。这种方法特别适用于消除背景噪声或初步裁剪点云数据集,以限定在特定的感兴趣区域(ROI)内。
https://blog.csdn.net/qq_35635374/article/details/141361362
半径滤波器
用于识别并移除点云数据中离群点的一种有效方法
https://blog.csdn.net/qq_35635374/article/details/141363856
体素滤波器
体素滤波器是一种下采样的滤波器,它的作用是使用体素化方法减少点云数量,采用**体素格中接近中心点的点替代体素内的所有点云,是会移动点的位置。**这种方式即减少点云数据,并同时保存点云的形状特征,在提高配准,曲面重建,形状识别等算法速度中非常实用。
https://blog.csdn.net/qq_35635374/article/details/141333547
均匀采样滤波
相较于体素滤波,均匀采样滤波计算出的最终结果点云,不改变点云点的位置,保持其原始形态。均匀采样滤波因为有质心点复原到体素块这一步,因此速度会比体素滤波更慢些。
https://blog.csdn.net/qq_35635374/article/details/141362926
统计滤波器
统计滤波器用于去除点云数据中离群点的一种滤波方法。它通过统计分析技术来识别并移除那些与周围点距离较远的离群点,这些离群点可能是由于测量误差或其他原因产生的噪声点。
https://blog.csdn.net/qq_35635374/article/details/141363316
条件滤波器
用于根据特定条件筛选点云数据的一种方法。它通过设定一个或多个条件,对点云中的每个点进行评估,仅保留满足这些条件的点。
https://blog.csdn.net/qq_35635374/article/details/141364222
双边滤波器
双边滤波器的工作原理是基于空间邻近度和值相似度的加权平均。它对每个点的邻域内的点进行加权平均处理
https://blog.csdn.net/qq_35635374/article/details/141364500
四、构建特征点云地图–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
十一、【规控+slam】探索建图方案及代码分享
https://blog.csdn.net/qq_35635374/article/details/142532077
其他知识
【地图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
相关技术专栏推荐
(1)计算技术&硬软件开发工程篇
https://blog.csdn.net/qq_35635374/category_12821115.html
(2)计算机技术基础&开发经验
https://blog.csdn.net/qq_35635374/category_11471204.html
(3)嵌入式系统硬软件开发
https://blog.csdn.net/qq_35635374/category_11464543.html
(4)开发技术管理
https://blog.csdn.net/qq_35635374/category_12344669.html
(5)机器人/自动驾驶导航算法篇
https://blog.csdn.net/qq_35635374/category_12825966.html
(6)导航系统架构及业务模块组合策略
https://blog.csdn.net/qq_35635374/category_11464757.html
(7)运动学与动力学基础知识
https://blog.csdn.net/qq_35635374/category_11471199.html
(8)多传感器标定、数据融合与状态估计
https://blog.csdn.net/qq_35635374/category_11464733.html
(9)定位、地图建立、地图管理SLAM合集
https://blog.csdn.net/qq_35635374/category_12805256.html
(10)定位location
https://blog.csdn.net/qq_35635374/category_11464501.html
(11)地图mapping
https://blog.csdn.net/qq_35635374/category_11464370.html
(12)机器人决策规划控制合集
https://blog.csdn.net/qq_35635374/category_12804215.html
(13)任务决策规划mission_planner
https://blog.csdn.net/qq_35635374/category_12344770.html
(14)动作策略规划motion_planner
https://blog.csdn.net/qq_35635374/category_12176372.html
(15)全局路线规划global_planner
https://blog.csdn.net/qq_35635374/category_12176370.html
(16)局部路径规划local_planner
https://blog.csdn.net/qq_35635374/category_12176374.html
(17)轨迹跟踪控制模块Path_tracking
https://blog.csdn.net/qq_35635374/category_12176376.html
(18)机器人实战篇
https://blog.csdn.net/qq_35635374/category_12821111.html
(19)足式机器人&机械臂控制合集
https://blog.csdn.net/qq_35635374/category_11523332.html
(20)自动驾驶&无人机导航合集
https://blog.csdn.net/qq_35635374/category_12804317.html
(21)四足机器人MIT Cheetah mini
https://blog.csdn.net/qq_35635374/category_11523325.html
(22)自动驾驶Autoware
https://blog.csdn.net/qq_35635374/category_11523328.html
(23)无人机fast_planner
https://blog.csdn.net/qq_35635374/category_11523335.html