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   gary_123  阅读(35)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
历史上的今天:
2019-06-04 IMU预积分
2016-06-04 在程序中利用信号量同步来模拟生产者与消费者
2016-06-04 信号量互斥编程
2016-06-04 信号通讯编程
2016-06-04 有名管道通讯编程

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示