外观
踩坑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 机器人软件与控制通用开发环境
解决办法
- 若只验证或临时绕过,在
nc.init()完成 topicadvertise后、nc.spin()前加入较长 sleep,让rostopic有时间订阅,再发布首条消息。 - 更推荐不要用启动时一次性 topic 消息作为就绪触发;节点完成初始化后提供一个 ROS service,始终返回 true。
- 依赖该节点的其他节点轮询此 service;调用成功即认为节点已运行,再继续后续动作。
原问题作者:Thijser;采纳答案作者:Shahbaz。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。
来源
本页事实对应的公开页面,以原文为准。