1.准备工作——安装一些工具包
$ sudo apt-get install ros-melodic-ros-tutorials ros-melodic-geometry-tutorials ros-melodic-rviz ros-melodic-rosbash ros-melodic-rqt-tf-tree
2.运行demo
roslaunch turtle_tf turtle_tf_demo.launch
会跳出一个窗口,一只小乌龟跟着另外一只小乌龟。此时可以用箭头控制乌龟走。后面的乌龟依然会跟着前面的乌龟。
3.解释
这个demo里面用tf library创造了三个坐标系:世界坐标系、一号乌龟坐标系和二号乌龟坐标系。乌龟一号用一个tf broadcaster一直发送乌龟坐标系,乌龟二号用一个tf接收器接收并计算坐标系位置差并且控制后面的乌龟跟着前面的乌龟。
4.介绍一些分析tf常用工具
现在我们来看看tf到底是如何工作的。
4.1使用view_frames
$ rosrun tf view_frames
此时输出
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190325173329687.png)
可以运行evince frames.pdf
来查看坐标系间的收听关系
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019032517343176.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poZWxpanVu,size_16,color_FFFFFF,t_70)
4.2 使用rqt_tf_tree
这是一个实时监控坐标系收听关系的工具,点击refersh来刷新。
rosrun rqt_tf_tree rqt_tf_tree
4.3 使用tf_echo
tf_echo则可以实时显示出坐标系间的关系rosrun tf tf_echo turtle1 turtle2
5 rviz 和 tf
可以用rviz来图像显示出坐标系之间的关系
$ rosrun rviz rviz -d `rospack find turtle_tf`/rviz/turtle_rviz.rviz
运行之后你控制小乌龟,会发现rviz里也有坐标系动来动去。(一开始看不到的原因是你跑到了很远的地方,把乌龟跑到左下角就ok了)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)