购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.4 创建启动文件

ROS中的启动(launch)文件在启动多个节点时非常有用。在前面的示例中,我们看到最多有两个ROS节点,但想象一下,如果我们需要为一个机器人启动10个或20个节点的情形。如果我们在终端中逐个启动每个节点将是很麻烦的事。相反,我们可以在一个launch文件中基于XML格式编写所有的节点,可以使用roslaunch命令解析此文件,然后启动其中的所有节点。

roslaunch命令将自动启动ROS的节点管理器和参数服务器。因此,我们不需要再单独启动roscore命令和单个节点了。如果我们使用launch文件,那么所有的操作都将在一个命令中完成。请注意,如果使用roslaunch命令启动节点,终止或重启该命令的效果与重启roscore相同。

下面我们开始创建launch文件。进入软件包的文件夹中并创建一个名为demo_topic.launch的新启动文件,它将启动两个节点,分别是发布和订阅整型数值的ROS节点。我们需要将launch文件保存在软件包内的launch文件夹中:

将以下内容粘贴到文件中:

我们讨论一下代码中的内容:

这一行非常有用,因为它可以让文本编辑器将此启动文件识别为标记语言文件,从而实现文本高亮显示。<launch></launch>标签是launch文件中的根元素。所有的定义都在这对标签的内部。

<node>标签指明了要启动的节点:

<node>中的name标签表示节点的名称,pkg是软件包的名称,type是我们要启动的可执行文件的名称。

在创建了demo_topic.launch启动文件后,我们就可以使用下面的命令来启动它:

如果启动成功,我们将获得如图2.8所示的输出。

图2.8 启动demo_topic.launch文件时的终端消息

我们可以使用以下命令检查节点列表:

我们还可以使用名为rqt_console的GUI工具来查看日志消息并调试节点:

通过这样做,我们可以在这个工具中看到由两个节点生成的日志,如图2.9所示。

图2.9 用rqt_console工具进行日志记录

在本章中,我们讨论了ROS的三个要素:主题、服务和actionlib(它们都可以在特定的情况下使用)。现在,让我们讨论如何正确应用这些ROS功能。 jfCtC4ERrFP8FlURWdbwEQqpI7QdNfAlXKFcDF4KwGAAzQ+OWC2acFG8aM96iQkX

点击中间区域
呼出菜单
上一章
目录
下一章
×