如何为多机器人中的SLAM gmap包发布新的主题 [英] How to publish a new topic to slam gmapping package in multiple-robot
本文介绍了如何为多机器人中的SLAM gmap包发布新的主题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
ROS_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屋!
查看全文