ROS复习笔记之——roslaunch的应用

继博客《RO发布者S复习笔记之——系统框架及其编程规范》,本博文讲解一下roslaunch的调用

目录

创建launch文件并使用

Launch标签介绍

参考资料


创建launch文件并使用

首先创建一个*.launch文件。用于roslaunch的文件具有*.launch文件名,在对应功能包目录中创建一个launch 目录,并将launch文件放在该目录中。

roscd my_first_ros_pkg
mkdir launch
cd launch
gedit union.launch

launch文件的内容如下所示

<launch>
   <node pkg="my_first_ros_pkg" type="topic_publisher" name="topic_publisher1"/>
   <node pkg="my_first_ros_pkg" type="topic_subscriber" name="topic_subscriber1"/>
   <node pkg="my_first_ros_pkg" type="topic_publisher" name="topic_publisher2"/>
   <node pkg="my_first_ros_pkg" type="topic_subscriber" name="topic_subscriber2"/>
</launch>

在<launch>标签中,描述了使用roslaunch命令运行节点所需的标签。<node>描述了roslaunch运行的节点。选项包括pkg、type和name。

如果创建了roslaunch文件,可以如下运行union.launch。请注意,当用roslaunch命令运行多个节点时,运行中的节点的输出(info、error等)不会显示在终端屏幕上,这会使调试变得困难。如果此时添加了--screen选项,终端上运行的所有节点的输出将显示在终端屏幕上。

roslaunch my_first_ros_pkg union.launch --screen

加过如下图

可以看到,topic_publisher节点已被重命名为topic_publisher1和topic_publisher2,而topic_subscriber节点已被重命名为topic_subscriber1和topic_subscriber2。这四个节点均在运行中。

打开rqt如下图所示

两个订阅者都在订阅两个发布者的消息。这是因为我们只是改变了节点的名字,而没有改变要订阅的消息的名字。

修改前面所创建的union.launch

<launch>
   <group ns="ns1">
      <node pkg="my_first_ros_pkg" type="topic_publisher" name="topic_publisher"/>
      <node pkg="my_first_ros_pkg" type="topic_subscriber" name="topic_subscriber"/>
   </group>

   <group ns="ns2">
      <node pkg="my_first_ros_pkg" type="topic_publisher" name="topic_publisher"/>
      <node pkg="my_first_ros_pkg" type="topic_subscriber" name="topic_subscriber"/>
   </group>
</launch>

< g r o up>是对指定节点进行分组的标签。选项有ns。这是命名空间(name space),是组的名称,属于该组的节点和消息都包含在由ns指定的名称中。

再次打开rqt结果如下图所示

Launch标签介绍

在launch文件中根据XML的编写方式可以实现多种功能。launch中使用的标签如下所示。

参考资料

http://wiki.ros.org/Books/ROS_Robot_Programming_English

发布了237 篇原创文章 · 获赞 254 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/gwplovekimi/article/details/104380578
今日推荐