ROS-launch文件

eval函数

eval是ROS launch文件中的一种内置函数,它的作用是对一个表达式进行求值。在这个特定的标签中,eval函数用于对条件表达式进行求值,根据表达式的结果来确定是否应该在这个标签中启动节点。例如,在以下代码中:


eval函数被用于求解一个条件表达式,这个表达式使用了and和or逻辑运算符。if_usb_cam和括号内的多个camera_mode选项的值将被用于求解表达式,结果将被用于决定这个标签中的节点是否应该被启动。如果表达式求值为真,则这个标签中的节点将会被启动,否则将被跳过。

语法

运行 roslaunch 命令不需要运行 roscore,运行 roslaunch 命令时,会自动检测是否开启了 roscore,如果没有开启则自动开启 roscore。

launch 文件的语法如下:
XML 文件必须要包含一个根元素,launch 文件中的根元素采用
签定义,文件中的其他内容都必须包含在这个标签之中:

 
……
……

启动 ROS 系统的核心是启动 ROS 节点,采用标签定义,语法如下:

启动一个节点至少需要三个属性:name、pkg 和 type
name:属性定义节点运行的名称,可自定义;
pkg:属性定义节点所在的功能包名称;
type:属性定义节点的可执行文件名称(与源文件名称不一定相同),也可以是.py 文件;

参数设置标签

关于参数设置的标签元素有两个:分别代表 parameter 和argument。

param

param 和 arg 的作用都是写入参数,但是 param 是 ROS 系统运行中的参数,存储在参数服务器中。在 launch 文件中可以通过标签加载 param。launch 文件执行后,param 就加载到 ROS 的参数服务器上了。

arg

arg 标签用来在 launch 文件中定义参数,arg 和 param 在 ROS 里有根本性的区别,就像局部变量和全局变量的区别一样。arg 不储存在参数服务器中,不能提供给节点使用,只能在 launch 文件中使用。param 则是储存在参数服务器中,可以被节点使用

标签简写

在ROS(Robot Operating System)的Launch文件中,某些标记可以省略闭合标签。具体来说,在ROS Launch文件中,对于某些标记,可以使用单标记语法,类似于HTML或XML的单标记语法,即只需在开头的标记上加上斜杠和右尖括号即可,例如:


该写法与以下等价



版权声明:
作者:玉兰
链接:https://www.techfm.club/p/46570.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>