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