一个基于 ROS 2 Jazzy 的 TF 学习与演示工作空间,包含 C++ 和 Python 两套示例,用于练习和测试坐标变换(Transform)的发布与监听。
本仓库目前包含两个功能包:
demo_cpp_tf:使用rclcpp编写的 TF 示例demo_python_tf:使用rclpy编写的 TF 示例
项目主要涵盖以下内容:
- 静态坐标变换发布
- 动态坐标变换发布
- 坐标变换监听与查询
ros2-tf-demos/
├── src/
│ ├── demo_cpp_tf/
│ └── demo_python_tf/
└── .gitignore
C++ 功能包中包含以下节点:
static_tf_broadcasterdynamic_tf_broadcastertf_listener
主要用于演示:
- 发布静态坐标变换
- 发布动态坐标变换
- 监听并查询不同坐标系之间的变换关系
Python 功能包中包含以下节点:
static_tf_broadcasterdynamic_tf_broadcastertf_listener
主要用于演示:
- 使用 Python 发布静态 TF
- 使用 Python 发布动态 TF
- 周期性查询 TF 并输出位姿信息
- Ubuntu
- ROS 2 Jazzy
- colcon
- 已配置好的 ROS 2 C++ / Python 开发环境
将本仓库作为一个 ROS 2 工作空间使用,在仓库根目录执行:
colcon build
source install/setup.bash如果只想单独构建这两个功能包,也可以执行:
colcon build --packages-select demo_cpp_tf demo_python_tf
source install/setup.bashros2 run demo_cpp_tf static_tf_broadcasterros2 run demo_cpp_tf dynamic_tf_broadcasterros2 run demo_cpp_tf tf_listenerros2 run demo_python_tf static_tf_broadcasterros2 run demo_python_tf dynamic_tf_broadcasterros2 run demo_python_tf tf_listener可以使用以下命令查看当前 TF 树:
ros2 run tf2_tools view_frames如果系统中安装了对应工具,也可以使用图形界面方式查看 TF 关系。
这个仓库主要用于:
- 学习 ROS 2 中 TF 的基础用法
- 理解父坐标系与子坐标系之间的关系
- 对比 C++ 与 Python 两种实现方式
- 练习坐标变换的发布、监听与查询流程
这是一个用于学习和练手的演示项目,目前仍在持续完善中。
部分功能、依赖配置和说明文档后续还可以继续优化,但整体结构已经能够用于 TF 基础学习和代码整理。
Apache-2.0