2.4.13 启动文件
启动(launch)文件是ROS中一个非常有用的功能,可以启动多个节点。在之前的小节中,我们已经学习了创建了节点,并且在不同的命令行窗口执行,想象一下,如果在每一个命令行窗口启动20个节点会是多么恐怖的一件事情!
通过启动文件我们可以在命令行窗口方便地实现以上任务,只需要运行后缀名为.launch的配置文件来启动多个节点。
为了练习这个例子,我们在功能包中创建一个新文件夹:
现在,在chapter2.launch文件中输入下面的代码:
这是个简单的例子,如果需要的话,也可以编写非常复杂的文件。例如,控制一个完整机器人,如PR2或Robonaut,包括真实的机器人和在ROS中仿真的机器人。
这个文件包括launch启动标签,在标签内部可以看到node节点标签。这个节点标签用于从功能包中启动节点,例如从chapter2_tutorials包中启动example1_a节点。
这个启动文件将执行两个节点,即这章最前的两个例子。如果你还记得,就是节点example1_a发送消息到节点example1_b。你可以通过如下命令启动这个文件:
你可以看到类似下图的显示:
运行的节点在上面的截图中列出,你可以通过下面命令查看运行的节点信息:
可以看到如右图所示的三个节点:
当执行启动文件时,并不需要在roscore命令前启动,roslaunch会启动它。
还记得节点example1_b会在屏幕输出从其他节点收到的消息,现在却看不到了,这是因为example1_b使用了ROS_INFO输出消息。当你在命令行只运行一个节点时,可以看到。但是当你运行启动文件时,则看不到。
现在,如果想看到信息,你可以运行rqt_console应用。在接下来的章节中,会做详细介绍。运行以下命令:
你从下面的截图中可以看到example1_b发送的消息:
在框中,你可以看到节点发送的消息以及来源文件。