为了跟上时代,仍然以最新版本的kinetic为例学习,主要是它命令行比较好看,不过,都用命令行了,要什么自行车
开始搬轮子
1 首先安装实例代码
输入以下代码:
sudo apt-get install ros-kinetic-ros-tutorials ros-kinetic-geometry-tutorials ros-kinetic-rviz ros-kinetic-rosbash ros-kinetic-rqt-tf-tree
2 运行例子
运行:
roslaunch turtle_tf turtle_tf_demo.launch
然后会看到这个:
选择刚才启动的命令行窗口,可以用键盘控制乌龟移动,另一只乌龟就会追上来。
3 发生了什么
这个例子使用tf库创建了3个坐标框架:一个world框架,一个乌龟1框架,一个乌龟2框架。这个教程使用了一个tf广播,推送小海龟坐标框架,还有一个tf收听者,计算坐标框架的差异,移动另一只乌龟跟随前一只。
4 tf 工具
4.1 使用view_frame
view_frames 创建了一个被tf广播的frame的图表
rosrun tf view_frames
将会看到:
qkingros@ubuntu:~$ rosrun tf view_frames
Listening to /tf for 5.000000 seconds
Done Listening
dot - graphviz version 2.38.0 (20140413.2041)
Detected dot version 2.38
frames.pdf generated
查看创建的图表:
evince frames.pdf
4.2 使用rqt_tf_tree
输入:
rosrun rqt_tf_tree rqt_tf_tree
或者
rqt &
然后点TAB
4.3 使用tf_echo
用法:
rosrun tf tf_echo [reference_frame] [target_frame]
看一下我们的例子:
rosrun tf tf_echo turtle1 turtle2
5 rviz和tf
运行:
rosrun rviz rviz -d
rospack find turtle_tf/rviz/turtle_rviz.rviz
用这个可以看到当乌龟在动的时候,坐标系也在动
下面就看一下它们是怎么写出来的。