规划的路径都是建立在costmap之上的,所以先讲一下必须知道的costmap的知识,实际代价地图存储在这里unsigned char* costmap_;每个字符八位0~255即cost值。把实际地图根据分辨率映射成栅格地图,依次给栅格编号,如下图所示
维护工作是通过以下几个函数进行:
voidmapToWorld(unsigned int mx, unsigned int my, double& wx, double& wy)将map上的坐标(mx,my)转化成world上的坐标(wx,wy)
boolworldToMap(double wx, double wy, unsigned int& mx, unsigned int& my)const; 将world上的坐标(wx,wy)转化成map上的坐标(mx,my)
inline unsignedint getIndex(unsigned int mx, unsigned int my) const根据map上的坐标得到栅格编号index。
源码解读这篇文章讲的比较好