Intermediate-介绍tf2

目标:运行一个turtlesim演示,并在一个使用turtlesim的多机器人示例中看到tf2的一些功能。

安装demo

从源码安装

# Clone and build the geometry_tutorials repo using the branch that matches your installation
git clone https://github.com/ros/geometry_tutorials.git -b ros2

从二进制安装

sudo apt-get install ros-humble-turtle-tf2-py ros-humble-tf2-tools ros-humble-tf-transformations

运行demo

ros2 launch turtle_tf2_py turtle_tf2_demo.launch.py

可以看到两个turtles:

在另外一个窗口执行如下命令:

ros2 run turtlesim turtle_teleop_key

一旦启动了turtlesim,您可以使用键盘箭头键在turtlesim中驾驶中央乌龟,选择第二个终端窗口,这样您的按键将被捕获以驾驶乌龟。

你可以看到一只乌龟不断地跟着你驾驶的乌龟移动。

怎么回事儿呢?

这个demo用tf2库来创建了三个坐标系:world,turtle1以及turtle2.本教程使用tf2发布器来发布turtle的坐标系,一个tf2监听器来计算在turtle坐标系中的差异,然后让一个turtle跟随另一个运动。

 

tf2 工具

现在让我们看看tf2是如何被用来创建这个演示的。我们可以使用tf2_tools来了解tf2在幕后做了什么。

1.  使用可视化坐标系

view_frames创建一个坐标系的图表由tf2通过ROS来广播.

ros2 run tf2_tools view_frames

有一个tf2 listener监听ROS上广播的坐标系,然后画出一个连接的坐标系树。有三个坐标系,world,turtle1,turtle2.world是他们两个的父坐标系。

2.使用tf2_echo

tf2_echo报告了ROS上被广播的任何两个坐标系之间的transform

ros2 run tf2_ros tf2_echo [source_frame] [target_frame]

rviz和 tf2

rviz是一个用于检查tf2坐标系的可视化工具。

ros2 run rviz2 rviz2 -d $(ros2 pkg prefix --share turtle_tf2_py)/rviz/turtle_rviz.rviz

 

posted on 2023-06-04 20:33  gary_123  阅读(73)  评论(0)    收藏  举报

导航