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

问题描述 投票:0回答:1

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

// 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。

我怎么解决这个问题?提前致谢。

c++ ros robotics robot
1个回答
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主题将可用于节点中的回调。

© www.soinside.com 2019 - 2024. All rights reserved.