一 tf /Tutorials /Introduction to tf

原文地址:http://wiki.ros.org/tf/Tutorials/Introduction to tf
##Introduction to tf
描述:本教程将给您一个关于tf可以为您做什么的好主意。它展示了使用turtlesim的多机器人示例中的一些tf能力。本文还介绍了如何使用tf_echo、view_frame、rqt_tf_tree和rviz。

1 Set Up the Demo

The nodes for this tutorial are released for Ubuntu, so go ahead and install them:

$ sudo apt-get install ros-kinetic-ros-tutorials ros-kinetic-geometry-tutorials ros-kinetic-rviz ros-kinetic-rosbash ros-kinetic-rqt-tf-tree

2 Running the Demo

Now that we’re done getting the turtle_tf tutorial package, let’s run the demo.

$ roslaunch turtle_tf turtle_tf_demo.launch

你会看到turtlesim是从两只海龟开始的。
在这里插入图片描述一旦启动了turtlesim,您可以使用键盘箭头键驱动center turtle四处移动,选择roslaunch终端窗口,以便捕获您的击键来驱动turtle。
在这里插入图片描述
正如你所看到的,一只乌龟会一直跟着你驾驶的乌龟移动。

3 What is Happening

这个演示使用tf库创建三个坐标系:一个世界坐标系、一个turtle1坐标系和一个turtle2坐标系。本教程使用tf广播器发布乌龟坐标帧,使用tf监听器计算乌龟帧中的差异,并移动一只乌龟跟随另一只乌龟。

4 tf Tools

现在让我们看看如何使用tf创建这个演示。我们可以使用tf工具来查看tf在幕后做什么。

4.1 Using view_frames

view_frames creates a diagram of the frames being broadcast by tf over ROS.

$ rosrun tf view_frames

你将看到:

Transform Listener initing
Listening to /tf for 5.000000 seconds
Done Listening
dot - Graphviz version 2.16 (Fri Feb  8 12:52:03 UTC 2008)

Detected dot version 2.16
frames.pdf generated

这里,tf侦听器正在监听通过ROS广播的帧,并绘制帧如何连接的树。查看树:

$ evince frames.pdf

在这里插入图片描述
在这里,我们可以看到tf广播的三个坐标系:world、turtle1和turtle2。我们还可以看到,世界坐标系是turtle1和turtle2的母体。为了调试,view_frames还报告一些诊断信息,这些信息是关于何时接收到最老和最近的帧转换,以及tf帧发布到tf的速度。

4.2 Using rqt_tf_tree

rqt_tf_tree是一个runtime tool,用于可视化正在ROS上广播的坐标系树。您可以简单地通过图表左上角的刷新底部来刷新树。
用法:

rosrun rqt_tf_tree rqt_tf_tree

Or simply:

rqt &

然后从Plugins选项卡中选择rqt_tf_tree。
在这里插入图片描述

4.3 Using tf_echo

tf_echo报告通过ROS广播的任何两个坐标系之间的转换。
用法:

rosrun tf tf_echo [reference_frame] [target_frame]

让我们来看看turtle2坐标系相对于turtle1坐标系的转换,它等价于
在这里插入图片描述

$ rosrun tf tf_echo turtle1 turtle2

您将看到当tf_echo侦听器接收到通过ROS广播的坐标系时显示的转换。

At time 1416409795.450
- Translation: [0.000, 0.000, 0.000]
- Rotation: in Quaternion [0.000, 0.000, 0.914, 0.405]
            in RPY [0.000, -0.000, 2.308]
At time 1416409796.441
- Translation: [0.000, 0.000, 0.000]
- Rotation: in Quaternion [0.000, 0.000, 0.914, 0.405]
            in RPY [0.000, -0.000, 2.308]
At time 1416409797.450
- Translation: [0.000, 0.000, 0.000]
- Rotation: in Quaternion [0.000, 0.000, 0.914, 0.405]
            in RPY [0.000, -0.000, 2.308]
At time 1416409798.441
- Translation: [0.000, 0.000, 0.000]
- Rotation: in Quaternion [0.000, 0.000, 0.914, 0.405]
            in RPY [0.000, -0.000, 2.308]
At time 1416409799.433
- Translation: [0.000, 0.000, 0.000]
- Rotation: in Quaternion [0.000, 0.000, 0.691, 0.723]
            in RPY [0.000, -0.000, 1.526]

当你驱动turtle四处走动时,你会看到当两只乌龟相对移动时transform的变化。

5 rviz and tf

rviz是一个可视化工具,可用于检查tf坐标系。让我们使用rviz查看我们的turtle 坐标系。Let’s start rviz with the turtle_tf configuration file using the -d option for rviz:

$ rosrun rviz rviz -d `rospack find turtle_tf`/rviz/turtle_rviz.rviz

在这里插入图片描述在侧边栏你会看到tf广播的坐标系。当你驱动turtle四处走动时,你会看到坐标系在旋转。
现在我们已经检查了turtle_tf_demo,让我们看看如何为这个演示程序编写广播程序(Python)(C++)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值