上QQ阅读APP看书,第一时间看更新
2.6 理解ROS启动(launch)文件
在2.5节中我们创建了多个节点,并在不同的shell中执行了这些节点。我们不妨设想一下,如果20个节点在各自的shell中执行,将会是一种多么糟糕的体验。好在我们可以使用启动(launch)文件来改变这种情形,通过使用扩展名为.launch的文件来加载配置,就可以实现在同一个命令行(shell)中执行多个节点。启动文件是在ROS中运行多个节点时非常有用的一个功能。
为了了解ROS启动文件,我们要在chapter2_tutorials包中创建一个新的文件夹,如下所示:
$ roscd chapter2_tutorials/ $ mkdir launch $ cd launch $ vim chapter2.launch
在启动文件chapter2.launch中添加以下代码:
<?xml version="1.0"?> <launch> <node name ="example1a" pkg="chapter2_tutorials" type="example1a" output="screen"/> <node name ="example1b" pkg="chapter2_tutorials" type="example1b" output="screen"/> </launch>
这个文件很简单,但是如果你愿意,也可以将其写成一个非常复杂的文件。例如控制一个完整的机器人,比如PR2。它们可以是真的机器人或者是可以在ROS模拟的机器人。
ROS启动文件是一个扩展名为.launch的XML文件,其中包含一个launch标签。在这个标签中,我们还可以找到node标签。它可以启动一个功能包中的节点。例如,chapter2_tutorials功能包中的example1a节点。
chapter2.launch文件将启动两个节点—— 本章的前两个示例:example1a和example1b。
使用如下所示的命令来启动这个文件:
$ roslaunch chapter2_tutorials chapter2.launch
我们将在屏幕上看到类似图2-18所示的内容。
图2-18 ROS启动
图2-18中列出了正在运行的节点。当我们要运行一个启动文件时,无须在roscore命令之前执行它,roslaunch可以替我们完成这个操作。