ROS中的map

map与costmap都是以nav_msgs::OccupancyGrid类型发布其topic。其中整张地图的障碍物信息存放在data数据成员中,data是一个int8类型的vector向量,即一维数组。假设一张pgm的map地图,宽:width,高:height,单位为像素,分辨路为resolution,左下角像素点在世界坐标系下的位置为:(ox,oy),单位米,那么世界坐标系下一点(x,y)单位米,假设其在地图中,那么该点对应的data中的索引index为:

index = (x-ox)/resolution+(y-oy)/resolution*width

(注:index为int8类型,所以要将结果进行下类型转换),

那么该点在地图中的信息即为data[index]

即:data是按照那张地图图片的自底向上,自左至右逐个像素点存储的

map中data存储的格式如下:

0:空白区域

100:障碍物

-1:未知

1-99:根据像素的灰度值转换后的值,代表有障碍物的概率(不确定,猜测是这个含义,实际用的时候把这个值都当作无障碍物)

costmap中data存储格式如下:

0:空白区域

100:障碍物层

99:膨胀层

1-98:距离障碍物层的远近获得的代价值

-1:未知区域


打印nav_msgs::OccupancyGrid发现,data中只存有0,100,-1,三种信息,没有1-99



猜你喜欢

转载自blog.csdn.net/fantasysolo/article/details/80546172