ROS2 入门:用 RQT 工具查看小海龟节点名称与通信关系

📅 2026/7/11 2:33:04
ROS2 入门:用 RQT 工具查看小海龟节点名称与通信关系
步骤 1启动小海龟仿真节点打开第一个终端依次执行以下命令加载 ROS 2 环境并启动小海龟节点执行后会弹出小海龟仿真窗口。source /opt/ros/foxy/setup.bash # 加载ROS 2 Foxy环境ros2 run turtlesim turtlesim_node # 启动小海龟仿真节点步骤 2启动小海龟键盘控制节点保持小海龟窗口运行新开一个终端执行以下命令启动键盘控制节点启动后需要单击该终端窗口确保终端获得焦点之后才能通过方向键控制小海龟移动同时会新增对应的节点与话题通信方便在 RQT 中观察完整关系。source /opt/ros/foxy/setup.bash # 加载ROS 2 Foxy环境ros2 run turtlesim turtle_teleop_key # 启动键盘控制节点步骤 3启动 RQT 可视化工具继续新开一个终端执行以下命令启动 RQT 工具。source /opt/ros/foxy/setup.bash # 加载ROS 2 Foxy环境rqt # 启动RQT可视化工具步骤 4查看节点与通信关系在 RQT 界面顶部菜单栏中依次点击 Plugins → Introspection → Node Graph加载节点拓扑图插件即可直观看到小海龟相关的节点名称、话题名称以及节点间的通信连接关系。图中节点与通信关系完整说明这是 RQT 工具中 Node Graph节点拓扑图 的可视化结果完整展示了小海龟仿真系统中两个节点的交互逻辑所有箭头代表数据传输方向。一、两个核心节点左侧节点/turtlesim小海龟仿真的服务端节点是整个仿真的核心执行单元。负责渲染小海龟图形窗口、维护海龟的位置与姿态、接收运动指令并执行同时对外提供绝对角度旋转的动作服务。右侧节点/teleop_turtle键盘控制的客户端节点是用户操作的输入单元。负责捕获键盘按键方向键、R 键等将用户操作转换成速度指令或旋转动作请求发送给仿真节点执行。二、三条通信链路详解1. /turtle1/cmd_vel最下方链路传输方向/teleop_turtle → /turtlesim通信类型话题Topic通信单向发布 - 订阅模式作用用户按下方向键时键盘控制节点将生成的线速度、角速度指令通过该话题持续发送给仿真节点仿真节点收到指令后控制小海龟移动。这是 ROS 2 最基础、最常用的通信方式。2. /turtle1/rotate_absolute/_action/status中间链路3. /turtle1/rotate_absolute/_action/feedback最上方链路传输方向/turtlesim → /teleop_turtle通信类型动作Action通信的配套话题属于双向交互机制的一部分作用当用户按下 R 键触发「绝对角度旋转」这类耗时任务时仿真节点作为动作服务端会持续向控制客户端回传两类信息status任务当前状态执行中、执行成功、已取消等feedback任务实时进度当前已旋转的角度数值补充动作通信是 ROS 2 专为「耗时、可中断、需反馈」的任务设计的通信机制相比普通话题多了状态反馈、结果返回、主动取消的能力。三、整体逻辑总结整套系统的运行闭环为用户按下键盘 → /teleop_turtle 节点转换为指令 → 发送给 /turtlesim 节点驱动海龟运动如果是旋转类耗时任务/turtlesim 还会实时回传进度与状态形成完整的双向交互。RQT 的作用就是把这些底层看不见的通信链路以图形化方式直观呈现出来。本文部分文字内容由 AI 辅助优化