一、机器人导航所使用的地图数据,就是ROS导航软件包里的map_server节点在话题 /map 中发布的消息数据,消息类型是nav_msgs消息包中的OccupancyGrid,它的中文意思的占据栅格,是一种正方形小格子组成的地图。 二、对障碍物进行俯视,在地面上画出大小一样的正方形栅格,没被障碍物占据的栅格涂上白色,被障碍物占据到的栅格涂上黑色。 三、将障碍物隐藏掉,就得到栅格地图。 四、栅格的尺寸划分的越小,黑色的区域越接近障碍物的轮廓;但栅格越小,栅格就越多,地图的数据量就越大。 五、栅格的边长,就是栅格地图的分辨率,ROS中的栅格边长默认为5CM 六、将栅格里的颜色用一个数字来表示,例如白色是数字0,黑色是数字100, 七、再将栅格地图自下而上,从左向右一行一行拼接起来,就得到一个数组,这个数组便描述了这个栅格地图的信息。 八、这个数组就是OccupancyGrid消息包的数据内容。 九、去ROS的官方网站查看一下这个消息包,首先浏览器搜索ROS index 十、然后搜索map_server节点。 十一、找到noetic的版本 十二、点击Website 十三、点击Published Topics 十四、可以看到这个map话题,消息类型是nav_msgs/OccupancyGrid,点击它 十五、可以看到这个消息类型的数据结构,里面有三个成员 十六、header里是时间戳和坐标系ID 十七、info里面是地图的描述信息 十八、data便是描述栅格地图的数组