roslaunch 命令运行时首先会检测系统的rosmaster是否运行,如果已经启动,就用现有的rosmaster;
如果没有启动,会先启动rosmaster,然后再执行launch文件中的设置,
一次性把多个节点按照我们预先的配置启动起来。
<launch> <!--根标签-->
<node> <!--需要启动的node及其参数-->
<include> <!--包含其他launch-->
<machine> <!--指定运行的机器-->
<env-loader> <!--设置环境变量-->
<param> <!--定义参数到参数服务器-->
<rosparam> <!--加载yaml文件中的参数到参数服务器-->
<arg> <!--定义变量-->
<remap> <!--设定 topic 映射-->
<group> <!--设定分组-->
</launch> <!--根标签-->
launch, node这两个 tag 是 launch 文件的核心部分。基本格式如下:
<launch>
//type是 package 中的可执行文件,如果是 python 或者 Julia 编写的,就可能是 .py 或者 .jl 文件,
//如果是 c++ 编写的,就是源文件编译之后的可执行文件的名字。
<node name="xtark_driver" pkg="xtark_driver" type="xtark_driver" output="screen" respawn="true">
<node pkg="package_name" type="executable_file" name="node_name1"/>
...
</launch>
roslaunch 不能保证 node 的启动顺序,因此 launch 文件中所有的 node 都应该对启动顺序有鲁棒性。