官方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()
网友评论