ROS机器人的开发过程中,经常需要用到tf坐标变换。简单来讲,tf定义了两个不同坐标系之间的旋转变换关系。
1. 一个简单的demo
$ roslaunch turtle_tf turtle_tf_demo.launch这时候屏幕中会出现两个turtle, 可以通过控制前面的turtle来引导后面的turtle
$ rosrun turtlesim turtle_teleop_key
$ evince frames.pdf
从上面我们可以清楚地看到三个坐标系之间的关系。
我们还可以使用tf_echo来看两个坐标系之间是如何变换的
rosrun tf tf_echo [reference_frame] [target_frame]
$ rosrun rviz rviz -d `rospack find turtle_tf`/rviz/turtle_rviz.rviz
2.写一个简单的tf broadcaster程序
$ catkin_create_pkg learning_tf tf roscpp rospy turtlesim
$ catkin_make $ source ./devel/setup.bash
$ roscd learning_tfsrc/turtle_tf_broadcaster.cpp
https://raw.githubusercontent.com/ros/geometry_tutorials/hydro-devel/turtle_tf/src/turtle_tf_broadcaster.cpp
16 br.