ROS中Remap标签详解,举例说明其两种用法

1.< remap>标签:

  • < remap>标签”允许你以更结构化的方式将名称重新映射参数传递给ROS节点,而不是直接设置<节点>的参数属性。

2.作用:

2.1、重命名一个已经存在的主题。

在自己的lanuch文件中,修改自己的发布的主题名字为别人要订阅的主题的名字。

(针对自己发布的主题:改变自己发布主题的名字)

  • from=“original-name”: 你节点中原来发布的主题名字
  • to=“new-name”: 重映射的目标名字

2.2、将别人发布的主题映射到自己订阅的主题上。

在自己的lanuch文件中,修改别人发布的主题为自己要订阅的主题的名字。

(针对别人发布的主题,和自己订阅的主题是同一个类型,但主题名字不同,这时候可以将别人发布的主题映射到自己要订阅的主题:相当于自己直接订阅了别人的主题、或者说改变别人发布主题的名字为自己要订阅的主题名字)

  • from=“original-name”: 你节点中订阅的主题名字
  • to=“des-name”: 别人发布的主题名字

3.举栗子说明其作用

下面是两个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 主题。

  • 30
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值