TF是一个让用户随时间跟踪多个坐标系的功能包,它使用树型数据结构,根据时间缓冲并维护多个坐标系之间的坐标变换关系,可以帮助开发者在任意时间,在坐标系间完成点、向量等坐标的变换。
TF可以在分布式系统中进行操作,也就是说一个机器人系统中所有的坐标变换关系,对于所有节点组件都是可用的,所有订阅TF消息的节点都会缓冲一份所有坐标系的变换关系数据,所以这种结构不需要中心服务器来存储任何数据。
想要使用TF功能包,总体来讲需要以下两个步骤:
-
监听TF变换 接收并缓存系统中发布的所有坐标变换数据,并从中查询所需要的坐标变换关系。
-
广播TF变换 向系统中广播坐标系之间的坐标变换关系。系统中可能会存在多个不同部分的TF变换广播,每个广播都可以直接将坐标变换关系插入TF树中,不需要再进行同步。