首页 > 其他分享 >ROS中的launch文件—批量启动ROS节点

ROS中的launch文件—批量启动ROS节点

时间:2025-01-15 12:29:34浏览次数:3  
标签:文件 name launch test ROS 节点

launch文件是一种遵循XML语法的文件,在ROS中我们用它来批量启动ROS节点。

以前面文章的话题通信为例,我们需要开启三个终端,分别运行:

roscore
rosrun test message_test_node
rosrun test_subscriber subscriber_node

如果一个项目有几十个节点,这样做肯定不行。

我们可以在随便一个软件包里新建一个launch。当我们使用指令启动launch文件时,会自动对指定的软件包的目录遍历搜索。所以launch文件放在子目录里也行。为方便管理,可以创建一个新的子目录用来放launch文件。

文件名称:test.launch,文件内容如下:

<launch>
  <node pkg="test" type="message_test_node" name="message_test_node"/>
  <node pkg="test_subscriber" type="subscriber_node" name="subscriber_node"/>
</launch>

按照上面代码的格式写就行。

pkg="包名" type="要执行节点的可执行文件的名称(catkin_make构建的结果)" name="运行时给节点起的名字"

我认为我们可以启动多个节点,这些节点运行的是同一份节点代码,只要name别重复就行。

这里有一个疑问,launch文件的name和节点的cpp文件里的ros::init函数的第三个参数我不知道有什么区别,我问chatgpt说的是它们都用于指定节点名称,但ros::init 更多地用于在代码内部指定,而 launch 文件中的 name 提供了一个更灵活的方式来在启动时配置节点的名称。

写好launch文件就可以使用roslaunch来启动多个节点了。

新开一个终端,执行:

效果如下:

标签:文件,name,launch,test,ROS,节点
From: https://blog.csdn.net/m0_74409155/article/details/145139655

相关文章

  • 算法面试准备 - 手撕系列第二期 - 交叉熵损失(Cross Entropy Loss)
    算法面试准备-手撕系列第二期-交叉熵损失(CrossEntropyLoss)目录算法面试准备-手撕系列第二期-交叉熵损失(CrossEntropyLoss)交叉熵原理图交叉熵损失实现代码-不同y_pre版本参考交叉熵原理图Softmax原理图交叉熵损失实现代码-不同y_pre版本......
  • 【Gossip 协议】Redis 集群中节点之间的通信方式?
    #分布式系统#Gossip协议在分布式系统中,不同的节点进行数据/信息共享是一个基本的需求。一种比较简单粗暴的方法就是集中式发散消息,简单来说就是一个主节点同时共享最新信息给其他所有节点,比较适合中心化系统。这种方法的缺陷也很明显,节点多的时候不光同步消息的效率低,还太......
  • 推荐一款超棒的 Minecraft 启动器:Voxelum/x-minecraft-launcher
    XMinecraftLauncher(XMCL)是一个便于你管理多种整合包、模组、资源包、光影包的现代化启动器。它还支持MinecraftForge、Fabric、Quilt、CurseForge和Modrinth它具有以下令人心动的特点:多版本兼容性:支持多个Minecraft版本,正式版和愚人节版本。自动化资源下载......
  • 解决生成图像质量和美学问题!《VMix: Improving Text-to-Image Diffusion Model with C
    为了解决扩散模型在文生图的质量和美学问题,字节跳动&中科大研究团队提出VMix美学条件注入方法,通过将抽象的图像美感拆分成不同维度的美学向量引入扩散模型,从而实现细粒度美学图像生成。论文基于提出的方法训练了一个即插即用的模块,无需再训练即可应用于不同的开源模型,提升模型......
  • JavaScript ——节点操作
    节点操作1.创建节点document.createElement('节点')参数:标签名字符串。说明:这些元素原先不存在,是根据需求动态生成的,因此也称为动态创建元素节点。该方法会将创建好的对象作为返回值返回。2.创建文本document.createTextNode() 可以用来创建一个文本节点对象。参数:文......
  • centos7 2节点搭建mha
    配置主从同步:创建用于同步的用户:createuserrepl@'%'identifiedby'Admin@123';grantREPLICATIONCLIENT,REPLICATIONSLAVEon*.*torep@'%';创建用户mha连接的用户:CREATEUSER'mha'@'%'IDENTIFIEDWITHmysql_native_passwordB......
  • .NET 9 new features-Microsoft.ML.Tokenizers 库
    在.NET9中,微软引入了Microsoft.ML.Tokenizers库,为.NET开发者提供了强大的文本标记化功能。一、什么是Microsoft.ML.TokenizersMicrosoft.ML.Tokenizers是一个用于文本标记化的库,是.NET生态系统中的一个强大库旨在将文本转换为令牌(tokens)      以便......
  • Microsoft Sql Server 2019 函数理解
    说到函数,首先和存储过程作个比较吧,两者有一个共同点都是预编译优化后存储在磁盘中,所以效率要比T-SQL高一点点。值得注意的是,存储过程可以创建或访问临时表,而函数不可以;同时函数不可以修改表中的数据,或调用产生副作用的函数,比如rand,newid,getdate(当然这并不是绝对的);但是函......
  • 【机器学习】Kaggle实战Rossmann商店销售预测(项目背景、数据介绍/加载/合并、特征工程
    文章目录1、项目背景2、数据介绍3、数据加载3.1查看数据3.2空数据处理3.2.1训练数据3.2.2测试数据3.3.3商店数据处理3.3.4销售时间关系4、合并数据5、特征工程6、构建训练数据和测试数据7、数据属性间相关性系数8、提取模型训练的数据集9、构建模型9.1定义评价......
  • 代码随想录:完全二叉树的节点个数
    拿到一个节点,先判断是不是等边三角形,若是直接返回2^n-1,位运算写在专题中/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*......