ROS launch话题重映射

话题重映射

参考
首先看from后面第一个话题是订阅的话题,还是发布的话题

1、发布的话题

将节点发布的话题/pub_node映射到/talker的名字上去:把前面的改成后面的拿来用
<remap from="/pub_data" to="/talker" />

2、订阅的话题

将别人发布的/talker主题改为sub_node节点订阅的sub_data名字:把后面的改成前面的,映射别人给自己用
<remap from="/sub_data" to="/talker" />

launch中话题前面为什么加~?

    ros::init(argc, argv, "px4ctrl");
    ros::NodeHandle nh("~");
//创建一个位于私有命名空间的节点句柄,它可以让您使用私有名称("name”)来发布或订阅话题
 ros::Subscriber odom_sub =
        nh.subscribe<nav_msgs::Odometry>("odom",
                                         100,
                                         boost::bind(&Odom_Data_t::feed, &fsm.odom_data, _1),
                                         ros::VoidConstPtr(),
                                         ros::TransportHints().tcpNoDelay());
<launch>

	<node pkg="px4ctrl" type="px4ctrl_node" name="px4ctrl" output="screen">
        	<!-- <remap from="~odom" to="/vicon_imu_ekf_odom" /> -->
			<!-- odom是订阅的话题,这里将后面的改成前面的进行,拿odom来用 -->
			<!-- ~odom就相当于/odom_sub/odom。 odom_sub是节点名-->
			<!--这样做的好处是可以避免话题名称冲突,让每个节点都有自己独立的私有话题-->
			<remap from="~odom" to="/vins_fusion/imu_propagate" />

		<remap from="~cmd" to="/position_cmd" />

        <rosparam command="load" file="$(find px4ctrl)/config/ctrl_param_fpv.yaml" />
	</node>
 
</launch>

ros::NodeHandle nh(“波浪号”)这行代码的含义。这行代码的作用是创建一个位于私有命名空间的节点句柄,它可以让您使用私有名称(“波浪号name”)来发布或订阅话题。私有名称是一种特殊的相对名称,它以波浪号(波浪号)开头,表示该名称是相对于节点名称的。例如,如果您的节点名称是my_node,那么~my_topic就相当于/my_node/my_topic。这样做的好处是可以避免话题名称冲突,让每个节点都有自己独立的私有话题。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值