Ros 中的launch文件

在ROS中,每个节点通常有许多参数需要设置,为了方便高效操作多个节点,可以编写launch文件,然后用roslaunch命令运行

使用方式:

roslaunch [options] [package]<filename>[arg_name:=value...]

roslaunch [options] <filename>[<filename>...][arg_name:=value...]

launch文件的一般格式,参数

<launch>
    <node .../>
    <rosparam .../>
    <param .../>
    <include .../>
    <env .../>
    <remap .../>
    <arg.../>
</launch>

任何一个launch文件的重点都是,节点node元素的集合,启动的每一个节点node都要有自己独一无二的名字name,如果node节点元素有children,就需要显式标签来定义,children比如是:remap元素或者是param元素。显式关闭标签的形式:

<node pkg="" type="" name=""></node>
<launch>
    <include file="$(find region_cover_start)/launch/amcl.launch.xml" />
    <node pkg="mapfile_genrate" name="mapfile_genrate_node" type="main.py" respawn="false" output="screen">
        <rosparam file="$(find common_param)/param/$(env VIEW_ROBOT)_track_footprint.yaml" command="load" />
        <remap from="scan" to="base_scan"/>
        <param name="/use_sim_time" value="true" />#node的children, param元素
        <rosparam file="$(find cleaning_info_catch)/param/cleaning_info_catch.yaml" command="load" />
        
    </node> #显示关闭标签node
 
</launch>

pkg为节点的功能包,程序包名字

type为需要运行的那个节点,可执行文件的名字

name为节点的名字,

拓展属性:

1.output="screen"输出结果显示在屏幕上, 一般在node元素中使用output属性

2。 respawn="true",启动完所有请求的节点之后,roslaunch监测每一个节点,让他们保持正常的运行状态,对于每一个节点,当它终止时,可以要求roslaunch重新启动它。

-remap标签

在launch文件中重新命名,使用remap元素

<remap from="original-name" to="new-name" />

-include标签

1.file属性


<include file="path-to-launch-file" />

包含其他文件,这个file属性期望我们添加想要包含的文件的完整路径。但是大多数时候,include元素使用一个find命令来搜索一个程序包,代替一个明确的完整路径

<include file="$(find package-name)/launch-file-name" /> 

这样做是正确的

<include file = "find learning_tutrols"/launch/start_demo.launch" / > 

这样做是错误的

<include file = "find learning_tutrols"/start_demo.launch" />

rosparam

rosparam命令一次性的将多个参数加载到参数服务器。

猜你喜欢

转载自blog.csdn.net/weixin_38145317/article/details/84024990
今日推荐