ROS:订阅不同命名空间中的主题

时间:2017-09-22 07:40:48

标签: ros

我今晚刚开始使用ROS。

我想要实现的目标是:

enter image description here

这就是我已经做过的事情:

  • 发布并订阅topic_b。

  • 发布到ns1 / topic_a(我使用rostopic echo /ns1/topic_a进行了检查)

  • 发布到ns2 / topic_a(我使用rostopic echo /ns2/topic_a进行了检查)

  • 订阅ns2 / topic_a(ros::Subscriber sub = n.subscribe("topic_a", 1000, callback);

我不知道该怎么做:

  • 从node_b订阅ns1 / topic_a。

阅读完本教程后,我尝试了这个:

1 /在node_b.cpp中,我订阅了/ topic_a_temp。

2 /在启动文件中,在node_b标签内,我添加了<remap from="topic_a_temp" to="ns1/topic_a">

但它没有用。

这可能是非常基础的,因为我是初学者,但我不知道如何从ns2节点读取ns1主题。

感谢您的帮助,

1 个答案:

答案 0 :(得分:0)

为主题重映射指令添加斜杠: <remap from="topic_a_temp" to="/ns1/topic_a">

然后,ROS会在编写时全局查找名称,而不是相对于节点正在启动的命名空间。有关更多信息,请参阅how names are resolved in ROS

rosnode info或其他内省工具来检查节点实际订阅的主题可能有助于解决此类问题