首页 > 其他分享 >launch文件详解

launch文件详解

时间:2024-05-07 19:12:51浏览次数:22  
标签:文件 name launch 标签 详解 参数 节点

学习参考文章:

ROS学习笔记-roslaunch文件的编写&用sh脚本控制launch文件启动顺序_launch文件怎么设置权限-CSDN博客

【ROS】从入门到急眼--launch文件详解_launch文件注释-CSDN博客

[ROS 系列学习教程] launch文件_roslaunch 教程-CSDN博客

4.2.6 launch文件标签之rosparam · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程

第三,四个比较直观理解,学习建议直接看第三,四条链接,下面只是自己学习总结加强记忆所书写,主要目的不是为了写给其他人看学习,是为了加强自己记忆;

 

 

launch文件在ROS中帮助一次性启动多个节点,节省了终端多次开启,下面是其中的一些书写格式:

先来看一个示例:

1.

在使用launch时注意写上<launch>,好像与python语言类似,通过缩进表示包含关系,初始打完这个之后下面就是调用的东西了;所有东西都调用完记得要输入</launch>表示关闭;                                                            ps:好像习惯把<>中的类型叫做标签下面也用标签来说明;

 

 

2.

在launch文件中注释的书写格式:
<!--注释内容-->

 

 

 3.标签

launch中开启调用的类型文件不同也有一些细微差别,下面是launch调用的几种常用标签:

①launch标签:父级标签

launch文件的所有内容都包含在<launch> </launch>之间。

②node标签:

格式:
<node 必选项,必选项,必须项,可选,可选  />

node标签也就是节点是ROS中最常见的,node标签里包含ROS图中的节点的名称属性name,该节点所在的包名pgk,以及节点的类型type。

必选:

1.name="NODE_NAME",用于指定节点名称,相当于给这个节点取一个名字,注册到Master的名称;

2.pkg=“package_name”             指定功能包,启动该功能包;

3.type=“file_name”       节点可执行文件的名称,执行该可执行文件;

 相当于启动该节点,这个节点名字被设置为name,执行功能包pkg中的type可执行文件;

可选:

 4.args=“arg1 arg2 arg3”   传递参数给节点;

5.machine=“machine_name”   在指定机器上启动节点,需要先使用 <machine> 指定机器;

 6.respawn=“true|false”    如果节点退出,是否自动重启,默认 false;

7.respawn_delay=“设置时间”  

 8.ns=“namespace_name”     将该组节点分配到指定的命名空间启动。

9.clear_params=“true|false”        在启动前删除节点的私有命名空间中的所有参数,默认为 false

 10.output=“log|screen”     日志发送目标,可以设置为 log 日志文件,或 screen 屏幕,默认是 log

 11.launch-prefix=“prefix arguments”   命令/参数,用于预置到节点的启动参数。这是一项强大的功能,使您能够启用 gdbvalgrindxtermnice 或其他方便的工具。工具具体信息:roslaunch/教程/Valgrind或GDB中的Roslaunch节点 - ROS Wiki

12.if=“true|false”     如果为“true”,则节点将照常启动。如果为 'false',则不会启动节点。可用于评估参数/参数并根据结果运行,而无需每次都修改启动文件。

node的子级标签:

 env标签:

不好解释直接上图:   /*现在还没看见过也不清楚具体干哈怎么样,碰到了再来完善吧*/

 remap标签:
节点的重映射,方便同一个 node 文件被应用到不同的环境中,用 remap 从外部修改一下 topic 即可,不需要改变源文件,感觉相当于节省搜索路径吧

如图:

 param标签:

param标签用于在参数服务器中定义一些参数。可以是bool值、文本文件、二进制文件等。

  • name="命名空间/参数名"

    参数名称,可以包含命名空间

  • value="xxx" (可选)

    定义参数值,如果此处省略,必须指定外部文件作为参数源

  • type="str | int | double | bool | yaml" (可选)

    指定参数类型,如果未指定,roslaunch 会尝试确定参数类型,规则如下:

    • 如果包含 '.' 的数字解析未浮点型,否则为整型

    • "true" 和 "false" 是 bool 值(不区分大小写)

    • 其他是字符串

 rosparam标签:

param与rosparam两个参数调用差不多,都是把launch文件中的一些参数直接设置到rosmaster(ros中的节点管理器)里面以便于各个节点的使用,主要不同在于param只对一个参数进行操作,rosparam可以对多个参数进行操作,前提时把这些参数放到.yaml文件中。

  • command="load | dump | delete" (可选,默认 load)

    加载、导出或删除参数

  • file="$(find xxxxx)/xxx/yyy...."

    加载或导出到的 yaml 文件

  • param="参数名称"

  • ns="命名空间" (可选)

 ③include标签:

<include> 标签将另一个 roslaunch 文件导入到当前文件中。

示例:

 必选:

1.file=“$(find pkg-name)/path/filename.xml”       要包含的文件的名称。

可选:

2.ns=“foo”  与上文中的ns作用大致相同,在指定命名空间导入文件。

3.clear_params=“true|false”    在启动之前删除 <include> 命名空间中的所有参数。此功能非常危险,应谨慎使用。必须指定ns。默认值:false

4.pass_all_args=“true|false”    如果为 true,则当前上下文中设置的所有参数,都将添加到为处理包含的文件而创建的子上下文中。可以执行此操作,而不是显式列出要传递的每个参数。

 include子级标签:

 <env>

 <arg>  ④remap标签:上面有对应格式忘记了就往上翻翻; 作用:可以对 topic 进行重映射,用于话题重命名。

⑤group标签:

设置命名空间,可以通过设置命名空间ns进行分组,避免调用冲突;

eg:分别将相同的话题放入不同的空间中调用;与remap中的ns感觉差不多;

⑥arg标签:

将参数传递给被包含的文件,标签是用于动态传参,类似于函数的参数,可以增强launch文件的灵活性

下图为其中格式:

 其中:

name="param_name"     定义参数名字

default=“default value”    设置参数的默认值。不能与 value 属性组合(可选)

 value="value"    设置参数值。不能与default属性组合使用  (可选)

doc="参数说明"  有点像注释的感觉。

 

 

 

标签:文件,name,launch,标签,详解,参数,节点
From: https://www.cnblogs.com/qianzhu/p/18176312

相关文章

  • NTFS、exFAT、FAT32、Ext4文件系统的区别
    V1.02024年5月7日发布于博客园NTFS、exFAT、FAT32、Ext4文件系统的区别FAT(FileAllocationTable)FAT(FileAllocationTable,文件分配表)是1977年微软为DOS开发的管理软盘的文件系统。FAT文件系统的最早版本是FAT12,由于其管理的容量非常有限,后来又陆续开发了FAT16文件系统和F......
  • Linux 下文件和目录的区别
    Linux下文件和目录的区别目录Linux下文件和目录的区别区别inode区别​ 在Linux和其他类Unix文件系统中,文件和目录本质上都是由inode和数据块组成的:​ 文件:文件的inode存储了元数据(如所有者、权限、文件大小、创建和修改时间等)以及指向数据块的指针。这些数据块存储......
  • 三类文件系统的区别
    什么是文件系统文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。举个通俗的比喻,一块硬盘就像一个块空地,文件就像不同的材料,我们首先得在空地上建起仓库(分区),并且指定好(格式化)仓库对材料的......
  • 文件上传
    服务器端packageprogramming;importjava.io.*;importjava.net.ServerSocket;importjava.net.Socket;publicclassTcpServer1{publicstaticvoidmain(String[]args)throwsIOException{//1.创建服务ServerSocketserverSocket=newServ......
  • Nginx配置中文详解
    Nginx配置文件nginx.conf中文详解参考:Nginx入门指南https://www.w3cschool.cn/nginx/######Nginx配置文件nginx.conf中文详解######定义Nginx运行的用户和用户组userwwwwww;#nginx进程数,建议设置为等于CPU总核心数。worker_processes8;#全局错误日志定义类......
  • python读取nc文件
    使用netCDF4库读取nc文件#***1数据读取与处理#打开NetCDF文件GA_id=nc.Dataset('taiwan_GA.nc','r')DOV_E_id=nc.Dataset('taiwan_DOV_E.nc','r')DOV_N_id=nc.Dataset('taiwan_DOV_N.nc','r')VGG_id=nc.Dat......
  • C#应用下的CSV文件写入和读出
    1.建立DataTable类型DataTablemy_accurdt;my_accurdt=newDataTable(DateTime.Now.ToString("yMMddHHmm")+"_AccurData");2.创建DataTable的列和行//列my_accurdt.Columns.Add(newDataColumn("Oder",typeof(int)));my_accurdt.Columns.Ad......
  • [网鼎杯 2020 白虎组]PicDown linux文件工作原理
    今天遇到个毫无头绪的题,记录一下过程。进入页面发现输入框,参数为url,那就试试文件读取。看看环境变量。其中PWD=/app,有可能存在app.py,试试吧。猜对了,运气吧~(做完后才发现的T-T)这里看其他wp说是在linux读取当前进程执行命令/proc/self/cmdline发现了看看app.py吧。点......
  • 加密压缩文件zip&tar
    加密一些机密的文件使用zip加密加密过程#zip-repackageTest.zippackageTest#或者写为明文密码zip-rPyourpasswordpackageTest.zippackageTestEnterpassword:Verifypassword:adding:packageTest/(stored0%)adding:packageTest/a.txt(stored0%)add......
  • linux 查看文件是否被占用
    在Linux系统中,若要查看一个文件或目录是否被占用(即是否被进程打开或正在使用),可以使用以下几个命令:方法一:使用lsof命令lsof+D/path/to/directory/or/file这条命令会显示指定目录及其子目录下所有被打开的文件。如果你想查看某个特定文件是否被占用,可以这样操作:lsof/path/......