ROS(Robot Operating System)是一个用于编写机器人软件的框架。在ROS中,launch文件是用来启动一个或多个节点(node)的XML文件,节点是执行特定功能的程序。Launch文件允许你同时运行多个节点,并设置它们的参数。
在一个launch文件中,启动节点的方式是使用标签。以下是一个标签的示例,以及各个属性的解释:
<node pkg="package_name" type="node_type" name="node_name" args="arg1 arg2 ..." output="log" ns="namespace" respawn="true" respawn_delay="5" cwd="ROS_HOME" required="true" launch-prefix="prefix" />
- pkg:指定节点所在的软件包名称。这个参数是必须的。
- type:指定节点的类型,通常是可执行文件的名称。这个参数是必须的。
- name:指定节点的名称。它会覆盖在节点代码中指定的名称。这个参数是可选的,但推荐使用。
- args:用于传递给节点的命令行参数。这个参数是可选的。
- output:指定节点输出的目的地。默认值是"screen",也可以设置为"log"将输出记录到日志文件。这个参数是可选的。
- ns:为节点设置命名空间。命名空间可以用来组织和区分不同的节点。这个参数是可选的。
- respawn:设置为"true"时,如果节点意外停止,ROS将自动重启该节点。默认值为"false"。这个参数是可选的。
- respawn_delay:设置节点重启之间的延迟(单位:秒)。默认值为0。这个参数是可选的。
- cwd:设置节点的工作目录。默认值为"ROS_HOME"。这个参数是可选的。
- required:设置为"true"时,如果该节点意外停止,整个launch文件的其他节点也将被终止。默认值为"false"。这个参数是可选的。
- launch-prefix:为节点设置一个命令前缀,例如gdb或valgrind等。这对于调试和性能分析很有用。这个参数是可选的。
以下是一个简单的launch文件示例,它启动了两个节点:
<launch>
<node pkg="my_package" type="talker" name="talker_node" output="screen" />
<node pkg="my_package" type="listener" name="listener_node" output="screen" />
</launch>
在这个例子中,我们启动了两个节点:一个名为"talker_node"的talker节点和一个名为"listener_node"的listener节点。它们都位于名为"my_package"的软件包中。节点的输出将显示在屏幕上。