官方的参考文档地址: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