前言
本系列博客参照《ROS机器人编程原理与应用》一书,搭载平台为冰达ROS小车,注释详细,持续更新,点个关注吧!
1.编写launch文件
在我们的上一讲中,我们运行了两个节点:一个发布器节点和一个订阅器节点。为了实现它,我们打开了两个独立的终端,并输人两次rosrun 命令。由于-一个复杂的系统会有数百个节点在运行,我们需要一个更方便的方式来启动系统。可以使用launch文件和roslaunch命令来完成。(参见http://ros.org/wiki/roslaunch了解更多细节和额外功能,比如参数设置。)
启动文件的后缀是.launch。通常,它的名字要和程序包的名字一样(尽管这不是必需的),它也通常位于程序包中以launch命名的(也不是必需的)子目录。一个启动文件同样可以调用其他启动文件,以从多个程序包中启动多个节点。
在工作空间下(bingda_practices)新建一个launch文件夹,用来保存launch文件,新建一个text.launch,同时启动talker和listener。
<launch>
<node pkg="bingda_practices" type="talker" name="talker" output="screen"/>
<node pkg="bingda_practices" type="listener.py" name="listener" output="screen"/>
</launch>
2.launch文件引用launch文件
另一种用法是,在launch文件下去包含另一个launch文件。
比如我们有talker.launch和listener.launch两个文件。
<launch>
<node pkg="bingda_practices" type="talker" name="talker" output="screen"/>
</launch>
<launch>
<node pkg="bingda_practices" type="listener" name="listener" output="screen"/>
</launch>
可以在写总的text2.launch启动两个节点。
<launch>
<include file="$(find bingda_practices)/launch/talker.launch"/>
<include file="$(find bingda_practices)/launch/listener.launch"/>
</launch>