ROS学习笔记(六):TF坐标变换
ROS学习笔记(六):TF坐标变换
- TF的基本知识
- TF工具
- tf_monitor
- tf_echo
- static_transform_publisher
- view_frames
- 创建TF广播器
- 创建TF监听器
TF的基本知识
TF是一个让用户随时间跟踪多个坐标系的功能包,它使用树形数据结构,根据时间缓冲并维护多个坐标系之间的坐标变换关系,可以帮助开发者在任意时间、在坐标系间完成点、向量等坐标的变换。
使用TF功能包,一般包括以下两个步骤:
(1)监听TF变换
接收并缓存系统中发布的所有坐标变换数据,并从中查询所需要的坐标变换关系。
(2)广播TF变换
向系统中广播坐标系之间的坐标变换关系。系统中可能会存在多个不同部分的TF变换广播,每个广播都可以直接将坐标变换关系插入TF树中,不需要再进行同步。
TF工具
tf_monitor
tf_monitor工具的功能是打印TF树中所有坐标系的发布状态,也可以通过输入参数来查看指定坐标系之间的发布状态。
tf_monitor
tf_monitor <source_frame> <target_frame>
tf_echo
tf_echo工具的功能是查看指定坐标系之间的变换关系。
tf_echo <source_frame> <target_frame>
static_transform_publisher
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
view_frames是可视化的调试工具,可以生成pdf文件,显示整棵TF树的信息。
rosrun tf view_frames
创建TF广播器
C++:参考网站链接
Python:参考网站链接
创建TF监听器
C++:参考网站链接
Python:参考网站链接