ROS最常用的坐标系为map、odom、base_link、base_footprint、base_laser坐标系。
map
地图坐标系
一般设该坐标系为固定坐标系(fixed frame),一般与机器人所在的世界坐标系一致。
base_link
机器人本体(基座)坐标系
与机器人中心重合,坐标系原点一般为机器人的旋转中心。
base_footprint
坐标系
原点为base_link
原点在地面的投影,有些许区别(z值不同)。
odom
里程计坐标系
这里要区分开odom topic,这是两个概念。一个是坐标系,一个是根据编码器(或者视觉等)计算的里程计。但是两者也有关系,odom topic 转化的位姿矩阵是odom–>base_link的tf关系。
这时可有会有疑问,odom和map坐标系是不是重合的?可以很肯定的告诉你,机器人运动开始是重合的。但是,随着时间的推移是不重合的,而出现的偏差就是里程计的累积误差。那map–>odom的tf怎么得到?就是在一些校正传感器合作校正的package比如amcl会给出一个位置估计(localization),这可以得到map–>base_link的tf,所以估计位置和里程计位置的偏差也就是odom与map的坐标系偏差。所以,如果你的odom计算没有错误,那么map–>odom的tf就是:
base_laser
激光雷达坐标系
与激光雷达的安装点有关,其与base_link的tf为固定的。