tf坐标系转换(gmapping)

坐标系变换

上一节:slam_gmapping安装与测试

gmapping tf坐标变换

tf关系图是机器人坐标关系非常重要的一环,作为gmapping测试来说,它的关系图是这样的:

输入:

rosrun rqt_tf_tree rqt_tf_tree

tf坐标系转换(gmapping)

对于gmapping来说,一般坐标系就是map,odom,base_link,base_laser坐标系。

  • map:地图坐标系,顾名思义,一般设该坐标系为固定坐标系(fixed frame),一般与机器人所在的世界坐标系一致。

  • odom:里程计坐标系,这里要区分开odom topic,这是两个概念,一个是坐标系,一个是根据编码器(或者视觉等)计算的里程计。 但是两者也有关系,odom topic 转化得位姿矩阵是odom–>base_link的tf关系。这时可有会有疑问,odom和map坐标系是不是重合的?可以很肯定的告诉你,机器人运动开始是重合的。但是,随着时间的推移是不重合的,而出现的偏差就是里程计的累积误差。那map–>odom的tf怎么得到?就是在一些校正传感器合作校正的package比如gmapping会给出一个位置估计(localization),这可以得到map–>base_link的tf,所以估计位置和里程计位置的偏差也就是odom与map的坐标系偏差。所以,如果你的odom计算没有错误,那么map–>odom的tf就是0.

  • base_footprint:坐标系原点base_link在2d平面(一般为地面)的投影。

  • base_link:一般位于tf tree的最根部,物理语义原点,一般表示机器人中心,为相对机器人的本体的坐标系。

  • base_laser:激光雷达的坐标系,与激光雷达的安装点有关,其与base_link的tf为固定的。

激光雷达tf变换

一棵tf变换树定义了不同坐标系之间的平移与旋转变换关系。对激光雷达来说,我们有一个机器人,包括一个机器人移动平台和一个安装在平台之上的激光雷达,以这个机器人为例,定义两个坐标系,一个坐标系以机器人移动平台的中心为原点,称为base_link参考系,另一个坐标系以激光雷达的中心为原点,称为base_laser参考系。

tf坐标系转换(gmapping)

为了定义和存储base_link和base_laser两个参考系之间的关系,我们需要将他们添加到tf树中。从树的概念上来讲,tf树中的每个节点都对应一个参考系,而节点之间的边对应于参考系之间的变换关系。tf就是使用这样的树结构,保证每两个参考系之间只有一种遍历方式,而且所有变换关系,都是母节点到子节点的变换。

tf坐标系转换(gmapping)

——————————————————————————————————————————————————
内容整合自以下链接,并非原创

官方参考链接
其他参考链接
其他参考链接