Skip to content

踩坑Robotics Stack Exchange2015-01-14

ROS 启动时发布消息在 rostopic echo 中丢失 ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:ros send message on startup doesn't seem to work(Robotics Stack Exchange #6374)

状态:已解决

问题 ​

C++ ROS 节点启动时调用 askMath(),日志显示已发布到 /questions,但启动中的 rostopic echo /questions 看不到第一条消息;每轮循环发布则能看到但会重复发送。

环境 ​

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

解决办法 ​

  1. 若只验证或临时绕过,在 nc.init() 完成 topic advertise 后、nc.spin() 前加入较长 sleep,让 rostopic 有时间订阅,再发布首条消息。
  2. 更推荐不要用启动时一次性 topic 消息作为就绪触发;节点完成初始化后提供一个 ROS service,始终返回 true。
  3. 依赖该节点的其他节点轮询此 service;调用成功即认为节点已运行,再继续后续动作。

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

来源

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

  1. Robotics Stack Exchange #6374:ros send message on startup doesn't seem to work访问 2026-10-22