ROS2 实战 | 手写 TF2 海龟实时坐标广播器(含完整避坑指南) ROS2 实战 | 手写 TF2 海龟实时坐标广播器(含完整避坑指南)摘要:本文从零实现一个 ROS2 Python 节点,实时订阅 turtlesim 海龟位姿并广播 TF 坐标变换。重点修正了官方教程中常见的 Odometry/Pose 混用、__name__入口错误、--symlink-install开发技巧等高频踩坑点,附完整可运行代码与调试命令。一、环境准备确保已安装 ROS2 Jazzy 及依赖:sudoaptupdatesudoaptinstallros-jazzy-turtlesim ros-jazzy-tf-transformations ros-jazzy-tf2-tools每次打开新终端需先 source 环境:source/opt/ros/jazzy/setup.bash二、创建功能包mkdir-p~/ros2_ws/srccd~/ros2_ws/src ros2 pkg create --build-type ament_python turtle_tf2_broadcaster\--dependenciesrclpy geometry_msgs tf2_ros tf2_ros_py tf_transformations避坑1:不需要nav_msgs。turtlesim 发布的是turtlesim.msg.Pose,不是Odometry。三、编写广播器节点cd~/ros2_ws/src/turtle_tf2_broadcaster/turtle_tf2_broadcasternanoturtle_tf2_broadcaster.py完整代码:importrclpyfromrclpy.nodeimportNodefromgeometry_msgs.msgimportTransformStampedfromturtlesim.msgimportPoseimporttf2_rosimportmathdefquaternion_from_euler(ai,aj,ak):ai/=2.0aj/=2.0ak/=2.0ci=math.cos(ai)si=math.sin(ai)cj=math.cos