ROS 发布、订阅话题自带node名前缀

ROS 发布、订阅话题自带node名前缀

ROS node主程序

ros::init(argc, argv, "laserMapping");
ros::NodeHandle nh("~");  //加上这个~
//注意topic名前没有/
ros::Subscriber sub_imu = nh.subscribe<sensor_msgs::Imu>("imu", 200000, imu_cbk);
ros::Publisher pubPath = nh.advertise<nav_msgs::Path> ("path", 100000); 

对应的launch中,可以修改node名字
pkg为node所在的package;type是可执行文件的本名,不可修改;name可以修改

<node pkg="multi_uav_lio" type="fastlio_mapping" name="laserMapping_quad1" output="screen" >
	    <rosparam command="load" file="$(find multi_uav_lio)/config/simulation.yaml" />
	    <param name="point_filter_num" type="int" value="5"/>
	    ......
</node>

这样订阅和接受的话题名称就会变成

/laserMapping_quad1/imu
/laserMapping_quad1/path

运行两个相同节点

只需修改launch文件,设置不同的name即可
需要将ros参数写在node内部,才会传递给对应的node,不会互相影响

<node pkg="multi_uav_lio" type="fastlio_mapping" name="laserMapping_quad1" output="screen" >
	    <rosparam command="load" file="$(find multi_uav_lio)/config/simulation.yaml" />
	    <param name="point_filter_num" type="int" value="5"/>
	    ......
</node>


<node pkg="multi_uav_lio" type="fastlio_mapping" name="laserMapping_quad2" output="screen" >
	    <rosparam command="load" file="$(find multi_uav_lio)/config/simulation.yaml" />
	    <param name="point_filter_num" type="int" value="5"/>
	    ......
</node>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值