TF基本概念

什么是TF

TFTransformations Frames的缩写。在ROS中,是一个工具包,提供了坐标转换等方面的功能。

tf工具包,底层实现采用的是一种树状数据结构,根据时间缓冲并维护多个参考系之间的坐标变换关系,可以帮助程序员在任意时间,将点、向量等数据的坐标,在两个参考系中完成坐标变换。

为什么需要坐标转换

坐标转换最主要要解决的是位置和姿态问题。

什么是位置? 我在哪里说的就是位置问题。

什么是姿态?我摆了个什么造型给你看,是横着的,竖着的,躺着的,这个就是姿态。

其实坐标转换解决的问题是 我在什么位置摆了个什么造型的问题。

其实描述一个物体的位置,我们有很多种方式。

例如我们描述一下月球的位置:

上图中,我们可以说月亮在地球的左上方xxx公里,也可以说在火星左下方xxx公里。

但是如果我们看看实时运行图时

我们不能简单的描述:月亮在地球的左上方xxx公里,在火星左下方xxx公里。

因为他是实时运动的,这个时候我们要采用一定规则对坐标进行描述,还要实时动态的计算出来。

坐标描述规则就是位置和姿态。

位置的描述也都是采用相对的策略。

实时计算就是将两两相对的位置,转换为另外两两相对的位置。

TF使用的场景

机器人每个关节的传感和运动都是参考自身 以上面的机器人烹饪为例, 头部的视觉传感器(摄像头)参考自己, 计算出煎饼和锅距离自己的距离.

机器人的左手右手的运动又是根据自己的当前位置来控制空间坐标的移动.

如果想让机器人各个部件能够协同工作, 就要建立一种世界坐标系统, 可以让各个node节点坐标系的点和向量可以互相转换.