官网教程:
http://wiki.ros.org/roslaunch/XML
(1)ros系统launch文件出现的原因:一个功能的实现包括比较多的节点的运行,并且每个节点的启动是有顺序要求的。一步一步的启动一个个节点明显不是最佳的选择,为此出现了lunch文件的批量化操作。launch文件实际上是启动master和node,并且编写launch文件时已经制定好启动的规则、启动的过程控制。
(2)文件:×.launch
(3)运行的命令:roslaunch launch文件
(4)launch文件编写遵循着xml格式规范,是一种标签文本,它的格式包括以下标签:
launch:根标签,文件开始的标志XXXXXX
node: 需要启动的node及其参数XXX
include: 包含其他launch文件XXX,两个属性:file:包含包的完整路径。ns:将这个包的内容放到一个命名空间里面。类似C++里面的include,嵌套依赖的包。
machie: 指定运行的机器XXX
env-loader:设置环境变量
arg:定义变量,arg标签用来在launch文件中定义参数,arg和param在ROS里有根本性的区别,就像局部变量和全局变量的区别一样。arg不储存在参数服务器中,不能提供给节点使用,只能在launch文件中使用。param则是储存在参数服务器中,可以被节点使用。
remap:设定参数映射,在launch文件中重新命名<reap from “XXX” to “XXX” />
group:设置命名空间
一些相关的参数:
pkg:包的名字,这个节点是包含在这个包中
name:名字,节点的名字
type:类型,可执行文件的名字
default:初始化参数
parameter:设置参数,parameter是ROS系统运行中的参数,存储在参数服务器中。在launch文件中可以通过元素加载parameter。launch文件执行后,parameter就加载到ROS的参数服务器上了。每个活跃的节点都可以通过 ros::param::get()接口来获取parameter的值,用户也可以在终端中通过rosparam命令获得parameter的值。
(4) node属性(来源:https://www.cnblogs.com/yrm1160029237/p/10108161.html)
output = “screen” :将标准输出信息显示在终端(console)上
respawn=”true” :监测每一个启动完成的节点,当它终止时,我们可以要求 roslaunch 重新启动它.
required=”true” :当一个必需的节点终止时,roslaunch会做出响应,终止其他所有的节点并退出它自己。 (不要同时设置required 属性和 respawn 属性)
launch-prefix = “command-prefix” :依赖终端输入的节点,比如 turtle_teleop_key 节点,它可能要优先的保留在独立的终端上:launch-prefix=”xterm -e”(xterm 命令会开一个新的终端窗口。 -e 参数告诉 xterm :执行其命令行剩余部分(rosrun turtlesim turtle_teleop_key))
ns = “namespace” :turtlesim 话题名字(turtle1/cmd_vel、turtle1/color_sensor 和 turtle1/pose )被从全局命名空间移动 到 /sim1 和 /sim2 的单独命名空间里。
args:传递参数到节点. 个人理解,arg参数只在launch文件中合法(相当于局部变量),不直接传给节点,所以需 要通过node中的args属性进行传递.
(5)remap的意义:这是ROS提供一种重映射的机制,有时使用别人的包时,别人的包的接口与我们的系统不符合,那么只需要将接口名称重映射一下,取个别名,我们就能使用了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)