美文网首页
02-TF-创建tf发布

02-TF-创建tf发布

作者: joey_zhou | 来源:发表于2016-08-04 18:58 被阅读104次

    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

     <launch>
        <!-- Turtlesim Node-->
        <node pkg="turtlesim" type="turtlesim_node" name="sim"/>
        <node pkg="turtlesim" type="turtle_teleop_key" name="teleop" output="screen"/>
    
        <node name="turtle1_tf_broadcaster" pkg="learning_tf" type="turtle_tf_broadcaster.py" respawn="false" output="screen" >
          <param name="turtle" type="string" value="turtle1" />
        </node>
        <node name="turtle2_tf_broadcaster" pkg="learning_tf" type="turtle_tf_broadcaster.py" respawn="false" output="screen" >
          <param name="turtle" type="string" value="turtle2" /> 
        </node>
    
      </launch>
    

    $ roslaunch learning_tf start_demo.launch

    3.查看结果

    rosrun tf tf_echo /world /turtle1

    相关文章

      网友评论

          本文标题:02-TF-创建tf发布

          本文链接:https://www.haomeiwen.com/subject/qbmmdttx.html