zl程序教程

您现在的位置是:首页 >  其他

当前栏目

ROS机器人程序设计(原书第2版)2.4.13 启动文件

2023-03-14 22:27:02 时间

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发送的消息:

 

在框中,你可以看到节点发送的消息以及来源文件。