首先看map消息里包含的信息
/map_server topic会发布 /map消息,map消息里可包含了非常多的信息
首先来看一下map的消息格式
分为了MapMetaData类型的info和data,其中data是当前地图的每一个像素被占用的可能性,再来看MapMetaData的消息格式
这里面其他都比较好理解:
origin是建图开始时机器人所在的位置和姿态,里面包括了position和orientation:
position是地图左下角相对于机器人初始位置的x,y值,单位是实际单位m。
而这里的orientation永远都是[x,y,z,w]=[0,0,0,1],也就是说map没有对初始位置进行orientation的变换
所以我们知道了重要的以下几点
0. 重要的是,我们要以现实坐标系作为我们的不变坐标系,而不是map坐标系,map坐标系也仅仅是现实坐标系中的一个。我们可以将这个现实坐标系认为是world坐标系
1. 在导航和建图过程中,机器人当前的姿态的orientation和position都是相对于建图时初始位姿的。即在world坐标系中的位置
2. 地图的原点是可以修改的,在map图片相应的yaml文件中有个origin可以修改
3.这个origin是地图左下角在world坐标系中的坐标