如何在Gazebo中让两个slam_gmapping节点发布不同的map话题
操作方法共有3种,按推荐优先级排序如下:
启动节点时直接用ROS话题重映射(最便捷,无需修改任何文件)
启动第二个slam_gmapping节点时,在命令后增加重映射参数即可:rosrun gmapping slam_gmapping map:=/map2该命令会将节点原本默认发布的
map话题直接重定向为/map2,不会再向原/map话题推送数据。在launch文件中配置重映射(适合固定启动场景)
如果你是通过launch文件启动第二个slam_gmapping节点,直接在节点标签内插入重映射规则即可,示例配置如下:<node name="slam_gmapping" pkg="gmapping" type="slam_gmapping" output="screen"> <!-- 保留你原本配置的其他参数,比如odom_frame、base_frame等 --> <remap from="map" to="/map2" /> </node>修改源码默认配置(仅适合需要长期固定修改话题名的场景)
找到gmapping功能包源码中发布map话题的代码行,将话题名修改为/map2后重新编译工作空间即可,该方法灵活性低,非必要不推荐使用。
修改完成后可执行rostopic info /map2,确认话题的发布者为第二个slam_gmapping节点,即为配置成功。
内容的提问来源于stack exchange,提问作者AmirulJ
相关产品推荐
相关产品推荐

