美文网首页
Ros.7 tf 坐标变换

Ros.7 tf 坐标变换

作者: proud2008 | 来源:发表于2020-07-15 16:27 被阅读0次

    官方demo在地图上显示两个乌龟

    roslaunch turtle_tf2 turtle_tf2_demo.launch
    rosrun turtlesim turtle_teleop_key # 方向键控制移动
    rosrun tf tf_monitor #查看坐标系的发布状态
    rosrun tf tf_echo <source> <target> #查看坐标系之间的关系
    rosrun tf static_transform_publisher # 发布坐标变换
    # x y z yaw pitch roll frame_id child_frame_id period_in_ms
    rosrun tf view_frames #显示tf树的信息,
    

    发布坐标变换

    使用tf

    import rospy
    import tf
    rospy.init_node('turtle_tf_broadcaster')
    br = tf.TransformBroadcaster()
    br.sendTransform((1000,100, 100),
                        tf.transformations.quaternion_from_euler(0, 0, 0),
                        rospy.Time.now(),
                        turtlename,
                        "world")
    

    使用tf2

    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    
    import rospy
    import tf2_ros
    import geometry_msgs
    import math
    
    if __name__ == '__main__':
    
        rospy.init_node('dynamic_tf2_broadcaster2')
        br = tf2_ros.TransformBroadcaster()
        t = geometry_msgs.msg.TransformStamped()
    
        t.header.frame_id = "turtle1"
        t.child_frame_id = "carrot1"
    
        rate = rospy.Rate(10.0)
        while not rospy.is_shutdown():
            x = rospy.Time.now().to_sec() * math.pi
    
            t.header.stamp = rospy.Time.now()
            t.transform.translation.x = 10 * math.sin(x)
            t.transform.translation.y = 10 * math.cos(x)
            t.transform.translation.z = 0.0
            t.transform.rotation.x = 0.0
            t.transform.rotation.y = 0.0
            t.transform.rotation.z = 0.0
            t.transform.rotation.w = 1.0
    
            br.sendTransform(t)
            rate.sleep()
    
    

    相关文章

      网友评论

          本文标题:Ros.7 tf 坐标变换

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