参考文献:
1. docs.ros.org/en/humble/Tutorials/Tf2/Tf2-Main.html
2. github.com/ros/geometry_tutorials/tree/ros2
foxy/galactic/humble通用
tf2 在时间缓冲的树结构中维护坐标系之间的关系,并让用户在任何所需的时间点在任意两个坐标系之间变换点、向量等。
官网许多 tf2 教程可使用 C++ 和 Python。 这些教程经过精简,可以完成 C++ 系列或 Python 系列。 如果想同时学习 C++ 和 Python,应该学习一次 C++ 和一次 Python 的教程。
内容
工作空间配置属于ROS2基础教程,参考哦对应文档即可。
1.tf2 简介。
本教程将了解 tf2 可以做什么。它在使用 turtlesim 的多机器人示例中展示了 tf2 的一些功能。这也介绍了使用 tf2_echo、view_frames 和 rviz。
2. 编写一个 tf2 静态广播器 (Python) (C++)。
本教程关于如何将静态坐标帧广播到 tf2.
3. 编写一个 tf2 广播器 (Python) (C++)。
本教程关于如何将机器人的状态广播到 tf2。
4. 编写一个 tf2 监听器 (Python) (C++)。
本教程关于如何使用 tf2 访问坐标系转换。
5. 添加坐标系 (Python) (C++)。
本教程关系如何为 tf2.x 添加额外的固定坐标系。
6. 学习 tf2 和 time (Python) (C++)。
本教程关于使用 lookup_transform 函数中的超时来等待 tf2 树上可用的转换。
7. 使用 tf2 (Python) (C++) 进行时间旅行。
本教程关于介绍 tf2 的高级时间旅行功能。
1. 四元数基础。
本教程教关于 ROS 2 中使用四元数的基础知识。
2. 调试 tf2 问题。
本教程介绍了调试 tf2 相关问题的系统方法。
使用带有 tf2_ros::MessageFilter 的标记数据类型。
本教程关于如何使用 tf2_ros::MessageFilter 处理标记数据类型。
tf2 是第二代 tf 库。
这个库实现了 tf2::BufferCore 定义的接口。
还有一个具有相同 API 的 Python 包装器,该 API 使用 CPython 绑定对该库进行分类。
主接口是通过 tf2::BufferCore 接口。 它使用 exceptions.h 中的异常和 transform_datatypes.h 中的 Stamped 数据类型。
tf2 为外部库提供模板化转换接口,以指定 tf2 特定数据类型和用户定义数据类型之间的转换。 tf2_ros 中的各种模板化函数使用转换接口将 tf 服务器的转换应用于这些自定义数据类型。
转换接口在 tf2/convert.h 中定义。
一些实现这个接口的包,如下:
ROS Wiki 上提供了有关转换接口的更多文档。