TF用于管理和查询机器人坐标系变换。通过TF,我们可以得到10秒之内任何机器人两个坐标系间的位置关系
TF使用广播/监听模型。各个节点的坐标构成TF树用以保存节点间坐标变换。如果一个节点要得到某一坐标系变换可以通过TF树进行查询
tf包中可视化tf树工具:
rosrun tf view_frames
监听tf树5秒并保存得到的结果,会生成一个pdf文件
rosrun tf tf_echo 坐标系1 坐标系2
获取到两个坐标系间的tf变换,可实时检测
tf广播和监听程序实现(基于官方海龟跟随案例)
tf广播器
#!/usr/bin/env python
import roslib
roslib.load_manifest('learning_tf')
import rospy
import tf
import turtlesim.msg
def handle_turtle_pose(msg, turtlename):
br = tf.TransformBroadcaster()
br.snedTransform((msg.x, msg.y, 0), tf.transformations.quaternion_from_euler(0, 0, msg.theta), rospy.Time.now(), turtlename, "world")
if __name__ == '__main__':
rospy.init_node('turtle_tf_broadcaster')
turtlena