外观
踩坑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 机器人软件与控制通用开发环境
解决办法
- 在
rospy.init_node('node_name')后,为每个 Topic 分别添加订阅,例如rospy.Subscriber("chatter1", String, callback1)和rospy.Subscriber("chatter2", String, callback2)。 - 为不同 Topic 定义对应回调,例如
callback1(data)、callback2(data),在回调中处理data.data。 - 调用
rospy.spin()防止节点退出;原文说明 ROS Python 节点回调会在独立线程中执行,属于事件驱动模型。
原问题作者:Zoltan Fedor;采纳答案作者:Ben。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。
来源
本页事实对应的公开页面,以原文为准。