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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球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 有名管道通讯编程