官方的参考文档地址:http://wiki.ros.org/roslaunch/XML/remap
但是也只是很简单的几句话,让人理解的并不是那么深刻,我们还是结合ROS-Tutorials中的一个海龟模仿的实例来进行讲解,以便于理解。
首先是我们在beginner_tutorials功能包里面创建一个launch目录,然后在目录里面创建一个turtlemimic.launch文件,其内容如下:
<launch>
<group ns="turtlesim1">
<node pkg="turtlesim" name="sim" type="turtlesim_node"/>
</group>
<group ns="turtlesim2">
<node pkg="turtlesim" name="sim" type="turtlesim_node"/>
</group>
<node pkg="turtlesim" name="mimic" type="mimic">
<remap from="input" to="turtlesim1/turtle1"/>
<remap from="output" to="turtlesim2/turtle1"/>
</node>
</launch>
在这个例子中,我们会发现它正好应用了remap标签的这个功能:
<remap from="input" to="turtlesim1/turtle1"/>
<remap from="output" to="turtlesim2/turtle1"/>
为了方便理解这个remap到底是什么东西,作用是什么,我们可以结合节点和话题的图来进行说明:
参考之前的官方文档,我们可以大概理解为:
<remap from="input" to="turtlesim1/turtle1"/>
的意思就是将当前节点订阅的话题input
的映射到话题turtlesim1/turtle1
;而<remap from="output" to="turtlesim2/turtle1"/>
的意思就是将当前节点发布的话题映射到话题turtlesim2/turtle1