没有机器人/扫描事件[ROS]

时间:2019-03-20 19:33:33

标签: c++ ros robotics robot

我正在尝试获取机器人/扫描事件通知。 它对我有用:

// Subscribe to the simulated robot's laser scan topic
laserSub = nh.subscribe("/scan", 1, &MyObject::scanCallback, this);

但是当我将主题更改为my_robot_name / scan时,它不起作用:我的回调没有收到任何机器人扫描通知。

// Subscribe to the simulated robot's laser scan topic
laserSub = nh.subscribe(my_robot_name + "/scan", 1, &MyObject::scanCallback, this);

我运行“ rostopic info my_robot_name / scan”,并且看起来根本没有发布者发布到my_robot_name / scan。

我该如何解决? 提前致谢。

1 个答案:

答案 0 :(得分:0)

基于您的发言,没有人发表过该话题,这也就不足为奇了。如果要获取消息,则首先需要发布消息。

您遇到的问题是/scan全局命名空间(前缀/)中的一个主题。要将其发布到所需的名称空间,可以在发布者中对其进行更改:

  • 发布到所需的命名空间ros::Publisher publisher = n.advertise<topic>("my_robot_name/scan", 1);

  • 在启动文件中使用group

如果您对发布者没有任何影响,则可以使用remap并将其重新映射到所需的主题:

<node ...start your node...>
    <remap from="/scan" to="my_robot_name/scan" />
</node>

这样,my_robot_name/scan主题将可用于您在节点中的回调。