Skip to content

踩坑Robotics Stack Exchange2019-01-24

ROS Python节点如何订阅多个Topic ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:How to get a python node in ROS subscribe to multiple topics?(Robotics Stack Exchange #6652)

状态:已解决

问题 ​

提问者不清楚 Python 编写的 ROS 节点是否能同时订阅多个 Topic、发布到多个 Topic,担心只能像循环一样一次监听一个来源。

环境 ​

Linux / ROS 机器人软件与控制通用开发环境

解决办法 ​

  1. 在 rospy.init_node('node_name') 后,为每个 Topic 分别添加订阅,例如 rospy.Subscriber("chatter1", String, callback1) 和 rospy.Subscriber("chatter2", String, callback2)。
  2. 为不同 Topic 定义对应回调,例如 callback1(data)、callback2(data),在回调中处理 data.data。
  3. 调用 rospy.spin() 防止节点退出;原文说明 ROS Python 节点回调会在独立线程中执行,属于事件驱动模型。

原问题作者:Zoltan Fedor;采纳答案作者:Ben。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。

来源

本页事实对应的公开页面,以原文为准。

  1. Robotics Stack Exchange #6652:How to get a python node in ROS subscribe to multiple topics?访问 2026-10-22