如何为多机器人中的SLAM gmap包发布新的主题 [英] How to publish a new topic to slam gmapping package in multiple-robot

查看:10
本文介绍了如何为多机器人中的SLAM gmap包发布新的主题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经在终端中使用此命令将/can_new主题发布到tb3_0 botROS_NAMESPACE=tb3_0 rosrun gmapping slam_gmapping scan:=scan_new set_base_frame:=tb3_0/base_footprint set_odom_frame:=tb3_0/odom set_map_frame:=tb3_0/map中的gmap包,但Gamping包没有订阅/can_new主题。要确保tb3_0机械手的gmap包订阅了/can_new主题,正确的命令是什么?

*注:如图所示,red word是发布到/can_new的ann_Publisher节点和订阅/can_new主题的gmap包

推荐答案

这不能按预期工作,因为您为节点提供了命名空间。执行此操作时,未指定名称空间的主题重映射将缺省为节点的名称空间。这里是/tb3_0,意思是它实际上是在尝试订阅/tb3_0/scan_new。有几种不同的方法可以解决这个问题,第一种方法是只使用/指定全局名称空间,如下所示:scan:=/scan_new 。您也可以执行相同的操作,但在启动文件中:

<?xml version="1.0"?>
<launch>
    <node ns="tb3_0" name="slam_gmapping" pkg="gmapping" type="slam_gmapping" output="screen">
        <param name="base_frame" value="tb3_0/base_footprint" />
        <param name="odom_frame" value="tb3_0/odom" />
        <param name="map_frame" value="tb3_0/map" />
        <remap from="scan" to="/scan_new" />
    </node>
</launch>

我强烈建议使用启动文件方法。它更加干净,并且随着要运行的节点数量的增加而更容易扩展。

这篇关于如何为多机器人中的SLAM gmap包发布新的主题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆