remap标签介绍
remap标签”允许你以更结构化的方式将名称重新映射参数传递给ROS节点,而不是直接设置<节点>的参数属性。
作用
重命名一个已经存在的主题。
在自己的lanuch文件中,修改自己的发布的主题名字为别人要订阅的主题的名字。
(针对自己发布的主题:改变自己发布主题的名字)
- from=“original-name”: 你节点中原来发布的主题名字
- to=“new-name”: 重映射的目标名字
将别人发布的主题映射到自己订阅的主题上。
在自己的lanuch文件中,修改别人发布的主题为自己要订阅的主题的名字。
(针对别人发布的主题,和自己订阅的主题是同一个类型,但主题名字不同,这时候可以将别人发布的主题映射到自己要订阅的主题:相当于自己直接订阅了别人的主题、或者说改变别人发布主题的名字为自己要订阅的主题名字)
- from=“original-name”: 你节点中订阅的主题名字
- to=“des-name”: 别人发布的主题名字
举栗子说明其作用
下面是两个launch启动两个节点的例子:
一个节点叫pub_node,它发布一个topic名为/pub_data
一个节点叫sub_node,它订阅一个topic名为/sub_data
重命名一个已经存在的主题:
<!--pub_node.launch-->
<launch>
<node pkg="pub_node" type="pub_node" name="pub_node" output="screen">
<!--pub_node节点发布的topic为/pub_data-->
<!--将pub_node节点发布的话题/pub_node映射到/talker的名字上去:改名字-->
<remap from="/pub_data" to="/talker" />
</node>
</launch>
将别人发布的主题映射到自己订阅的主题上:
<!--sub_node.launch-->
<launch>
<node pkg="sub_node" type="sub_node" name="sub_node" output="screen">
<!--sub_node节点需要订阅话题为/sub_data-->
<!--将别人发布的/talker主题改为sub_node节点订阅的sub_data名字:映射别人给自己用-->
<remap from="/sub_data" to="/talker" />
</node>
</launch>
注意:
此时如果rostopic list 会发现
只有/talker主题,不再显示/sub_data、/pub_data 主题