TF是一个让用户随时间跟踪多个坐标系的功能包,它使用树形数据结构,根据时间缓冲并维护多个坐标系之间的坐标变换关系,可以帮助开发者在任意时间、在坐标系间完成点、向量等坐标的变换。
使用TF功能包,一般包括以下两个步骤:
(1)监听TF变换
接收并缓存系统中发布的所有坐标变换数据,并从中查询所需要的坐标变换关系。
(2)广播TF变换
向系统中广播坐标系之间的坐标变换关系。系统中可能会存在多个不同部分的TF变换广播,每个广播都可以直接将坐标变换关系插入TF树中,不需要再进行同步。
tf_monitor工具的功能是打印TF树中所有坐标系的发布状态,也可以通过输入参数来查看指定坐标系之间的发布状态。
tf_monitor
tf_monitor
tf_echo工具的功能是查看指定坐标系之间的变换关系。
tf_echo
static_transform_publisher工具的功能是发布两个坐标系之间的静态坐标变换,这两个坐标系不发生相对位置变化。
# 坐标xyz表示偏移参数,欧拉角yaw(围绕z轴旋转的偏航角)pitch(围绕y轴旋转的俯仰角)roll(围绕x轴旋转的翻滚角)表示旋转参数,period_in_ms为发布频率
static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_ms
# 坐标xyz表示偏移参数,四元数qx qy qz qw表示旋转参数,period_in_ms为发布频率
static_transform_publisher x y z yaw qx qy qz qw frame_id child_frame_id period_in_ms
view_frames是可视化的调试工具,可以生成pdf文件,显示整棵TF树的信息。
rosrun tf view_frames
C++:参考网站链接
Python:参考网站链接
C++:参考网站链接
Python:参考网站链接