常用地图
机器人导航模块应用最广泛的则是占据栅格地图(Occupancy Grid Map)与代价地图(CostMap)
1.3.1 Occupancy Grid Map (占据栅格地图)
占据栅格地图是把环境划分成一系列栅格,其中每一栅格给定一个可能值,表示该栅格被占据的概率。占据栅格的构建主要是基于二值贝叶斯滤波原理利用多传感器(激光雷达,相机等)的输入判断地图内每个栅格的障碍物占据概率。
由于占据栅格地图通常是单层结构,更适用于简单的路径规划功能,当机器人或无人车对于环境信息精确度要求不高时可以利用此地图进行规划,当规划模块对精度与安全性要求较高时,更好的选择是利用代价地图(CostMap)进行规划。
1.3.2 CostMap (代价地图)
Costmap是无人车或者机器人融合多传感器信息后建立维护的二维或三维栅格地图,在地图中障碍物信息会被转换到对应的栅格中并且利用相应的规则对障碍物进行膨胀。ROS的官方Navigation库中最早利用costmap进行障碍物的位置判断以及在此基础上利用DWA(原理可参见我之前的系列博客)算法进行了局部规划,后来在日本的开源框架Autoware中也基于costmap实现了乘用车的局部规划功能(HybridAstar算法)。
ROS官方Navigation库中对于costmap说明文档如下:http://wiki.ros.org/costmap_2d/
源码解读在ROS源码学习笔记。
https://blog.csdn.net/m0_53316604/category_12266825.html
costmap_2d这个包更偏向工程,在清楚了整个大框架的基础上,重点抓住它是如何使用的,一步一步往下走,搞清楚整个的流程以便以后改写。
参考链接:
https://blog.csdn.net/weixin_40884570/article/details/104054544
http://wiki.ros.org/costmap_2d/