【ROS2】中级:tf2-编写静态广播器(Python)

目标:学习如何向 tf2 广播静态坐标系。

教程级别:中级

 时间:15 分钟

 目录

  •  背景

  •  先决条件

  •  任务

    • 1. 创建一个包

    • 2. 编写静态广播节点

    •  3. 构建

    •  4. 运行

  • 发布静态变换的正确方法

  •  摘要

 背景

发布静态变换对于定义机器人基座与其传感器或非移动部件之间的关系非常有用。例如,在激光扫描仪中心的框架内推理激光扫描测量数据是最简单的。

这是一个独立的教程,涵盖了静态变换的基础知识,包括两个部分。在第一部分中,我们将编写代码将静态变换发布到 tf2。在第二部分中,我们将解释如何在 tf2_ros 中使用命令行 static_transform_publisher 可执行工具

在接下来的两个教程中,我们将编写代码以复现《tf2 入门》教程中的演示 https://docs.ros.org/en/jazzy/Tutorials/Intermediate/Tf2/Introduction-To-Tf2.html 。之后,后续教程将专注于使用更高级的 tf2 功能扩展演示。

 先决条件

在之前的教程中,您学习了如何创建工作区 https://docs.ros.org/en/jazzy/Tutorials/Beginner-Client-Libraries/Creating-A-Workspace/Creating-A-Workspace.html 和创建包 https://docs.ros.org/en/jazzy/Tutorials/Beginner-Client-Libraries/Creating-Your-First-ROS2-Package.html 。

 任务

1. 创建一个包

首先,我们将创建一个包,用于本教程及后续教程。这个名为 learning_tf2_py 的包将依赖于 geometry_msgs 、 python3-numpy 、 rclpy 、 tf2_ros_py 和 turtlesim 。本教程的代码存储在这里 https://raw.githubusercontent.com/ros/geometry_tutorials/ros2/turtle_tf2_py/turtle_tf2_py/static_turtle_tf2_broadcaster.py 。

打开一个新的终端并且配置你的 ROS 2 安装 https://docs.ros.org/en/jazzy/Tutorials/Beginner-CLI-Tools/Configuring-ROS2-Environment.html ,以便 ros2 命令能够工作。导航到工作空间的 src 文件夹并创建一个新的包:

ros2 pkg create --build-type ament_python --license Apache-2.0 -- learning_tf2_py
cxy@ubuntu2404-cxy:~/ros2_ws/src$ ros2 pkg create --build-type ament_python --license Apache-2.0 -- learning_tf2_py
going to create a new package
package name: learning_tf2_py
destination directory: /home/cxy/ros2_ws/src
package format: 3
version: 0.0.0
description: TODO: Package description
maintainer: ['cxy <cxy@todo.todo>']
licenses: ['Apache-2.0']
build type: ament_python
dependencies: []
creating folder ./learning_tf2_py
creating ./learning_tf2_py/package.xml
creating source folder
creating folder ./learning_tf2_py/learning_tf2_py
creating ./learning_tf2_py/setup.py
creating ./learning_tf2_py/setup.cfg
creating folder ./learning_tf2_py/resource
creating ./learning_tf2_py/resource/learning_tf2_py
creating ./learning_tf2_py/learning_tf2_py/__init__.py
creating folder ./learning_tf2_py/test
creating ./learning_tf2_py/test/test_copyright.py
creating ./learning_tf2_py/test/test_flake8.py
creating ./learning_tf2_py/test/test_pep257.py

您的终端将返回一条消息,确认您的包 learning_tf2_py 及其所有必要的文件和文件夹已创建。

2. 编写静态广播器节点

让我们首先创建源文件。在 src/learning_tf2_py/learning_tf2_py 目录中,通过输入以下命令下载示例静态广播代码:

cxy@ubuntu2404-cxy:~/ros2_ws$ cd src/learning_tf2_py/learning_tf2_py
cxy@ubuntu2404-cxy:~/ros2_ws/src/learning_tf2_py/learning_tf2_py$ wget https://raw.githubusercontent.com/ros/geometry_tutorials/ros2/turtle_tf2_py/turtle_tf2_py/static_turtle_tf2_broadcaster.py
--2024-07-10 22:44:22--  https://raw.githubusercontent.com/ros/geometry_tutorials/ros2/turtle_tf2_py/turtle_tf2_py/static_turtle_tf2_broadcaster.py
正在连接 127.0.0.1:2334... 已连接。
已发出 Proxy 请求,正在等待回应... 200 OK
长度:3480 (3.4K) [text/plain]
正在保存至: ‘static_turtle_tf2_broadcaster.py’


static_turtle_tf2_b 100%[===================>]   3.40K  --.-KB/s    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值