断更几天终于找到电脑。
launch文件又叫启动文件,launch文件的功能是同时执行多个node,本节我们将会掌握launch文件的使用及编写。
launch结构
I、代码及说明
在我们的代码中,launch文件一般存放在在功能包根目录下,存放在subpose功能包example.launch下的代码如下:
<launch>
<node pkg="turtlesim" type="turtlesim_node" name="turtlesim" respawn="true" />
<node pkg="turtlesim" type="turtle_teleop_key" name="teletop_key" respawn="true" launch-prefix="xterm -e" />
<node pkg="subpose" type="subb" name="pose_subcriber" output="screen" />
</launch>
该代码的功能是小乌龟节点,键盘控制节点和之前我们自己写的订阅乌龟位姿信息节点同时启动。
<launch></launch>
是根元素,所有代码包含在内。<node />
或者<node ></node>
启动节点,节点元素形式如下:
<node pkg="" type="" name=""/>
-
- pkg和name: 和rosrun后紧接的两个参数意义相同,包名和节点名(cmakelist中定义);
-
- name: 指定节点名称,覆盖掉ros::init的赋值;
-
- output=“screen”: 在控制台输出信息,不再记录在日志中,作用和命令行中的
roslaunch --screen 包名 文件名.launch
作用类似;
- output=“screen”: 在控制台输出信息,不再记录在日志中,作用和命令行中的
-
- respawn=“true”:被关闭后,自动重新启动该节点;
-
- required=“true”:必要节点,该节点故障,其他节点随之关闭;
-
- 为节点维护独立窗口:
launch-prefix="xterm -e"
,前缀launch-prefix属性,实际上相当于命令行输入xterm -e rosrun turtlesim turtle_teleop_key
- 为节点维护独立窗口:
II、代码执行
范例代码如下:
roslaunch 功能包名 launch文件名.launch
对应到本例:
roslaunch subpose example.launch
执行后结果如下:
加入参数-v既可执行launch,且可以查看更多关于该文件的信息。
rosrun -v 包名 文件名.launch
执行代码效果如下: