02-TF-创建tf发布

0.创建工作包

$ cd %YOUR_CATKIN_WORKSPACE_HOME%/src
$ catkin_create_pkg learning_tf tf roscpp rospy turtlesim

配置工作环境

$ cd %YOUR_CATKIN_WORKSPACE_HOME%/
$ catkin_make
$ source ./devel/setup.bash

1.发布变换

此篇教程目的在与发布坐标系到tf,我们尝试将海龟的坐标系发布给tf,随着海龟行动,查看坐标系的变化。

$ roscd learning_tf
$ mkdir nodes
$ vim nodes/turtle_tf_broadcaster.py

#!/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.sendTransform((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')
    turtlename = rospy.get_param('~turtle')#传递参数名
    rospy.Subscriber('/%s/pose' % turtlename,
                     turtlesim.msg.Pose,
                     handle_turtle_pose,
                     turtlename)
    rospy.spin()

chmod +x nodes/turtle_tf_broadcaster.py

2.运行广播

$ roscd learning_tf
$ mkdir launch
$ vim launch/start_demo.launch

 
    
    
    

    
      
    
    
       
    

  

$ roslaunch learning_tf start_demo.launch

3.查看结果

rosrun tf tf_echo /world /turtle1

你可能感兴趣的:(02-TF-创建tf发布)