Launch文件的学习:

来自参考书《ROS开源机器人控制基础》
在ROS应用中,一般涉及多个节点,每个节点又有多个参数,可以编写.launch文件,然后用roslaunch命令运行。
Launch文件名格式:

<launch></launch>

文件中一般包括以下几部分:
1.<node>是要启动的ROS节点,它包括以下几个参数:
Pkg=”mypackage”:节点的功能包
Type=”nodetype”:节点的类型
Name=”nodename”:节点的名字
Args=”arg1 arg2 arg3”:(可选)传递给节点的参数
Respawn=”true”: (可选)如果节点停止,自动终止节点
Ns=”foo”: (可选)在”foo”命名空间启动节点
Output=”log|screen”: (可选)如果选择screen,节点的stdout(标准输出)和stderr(标准错误)信息将显示在终端窗口上;如果选择log,stdout和stderr将发送到一个log文件,stderr也会显示在终端窗口上
下面是一个启动节点的例子:

`<node name=”gazebo” pkg=”gazebo” type=”gazebo” args=”$(find r2_gazebo)/gazebo/r2_grap.world”` `output=”screen” respawn=”false”/>`

解释:启动gazebo功能包中的gazebo节点,该节点的参数是r2_grap.world文件中的内容,节点的stdout和stderr会显示在终端窗口上。如果gazebo节点停止,不能重新启动。
2.<rosparam>
可以使用.yaml文件load/dump/delete参数,也可以添加到中使用,参数:
Command=”load|dump|delete”(默认load)
File=”$(find pkg-name)/path/foo.yaml”(yaml文件的名字)
Param=”param-name”:参数的名字
例子:

<rosparam file=”$(find r2_gazebo)/config/controllers/r2_impedance_controller.yamlcommand=”load”/>

解释:将r2_impedance_controller.yaml文件加载到parameter server(参数服务器)中,设置控制参数。
3.<param>
用来定义一个设置在parameter server的参数,可以添加到中。参数:
Name=”namespace/name”参数名字
Value=”value”(可选)定义参数的值,如果省略这个参数,则应该指定一个文件(binfile/textfile)或命令
Type=”str|int|double|boot”(可选)指定参数类型
Textfile=” (findpkgname)/path/filebinfile= (find pkg-name)/path/file” (可选)
command=” (find pkg-name)/exe’ $(find pkg-name)/arg.txt’” (可选)exe是可执行文件,arg.txt参数文件

4.<include>
可以在当前launch文件中调用另一个launch文件

<include file=”$(find pr2_controller_manager)/controller_manager.launch”/>

5.<env>
用来设置节点的环境变量,可用在,,
参数
Name=”environment-variable-name”设置环境变量名字
Value=” environment-variable-value”设置环境变量的值
6.<remap>
将一个参数名映射为另一个参数名,参数
From=”original-name”
To=”new-name”
例子:
<ramap from=”chatter” to=”hello”/>将接受的主题chatter换成hello
7.<arg>
定义一个局部参数,该参数只能在一个launch文件中使用,三种使用方法:
声明一个参数foo,之后需要赋值
< arg name=”foo” default=”1”/>声明一个参数foo,默认值1,该值可修改
< arg name=”foo” default=”bar”/>声明一个参数foo, 该值不可修改
例子:

<launch>
< arg name=”hoge” default=”false”/>
<param name=”param” value=”$(arg hoge)”/>
</launch>

定义局部参数hoge,hoge的值赋给了参数param,局部参数hoge可以在运行launch文件时修改,如

Roslaunch [package][filebname.launch] hoge: =true

猜你喜欢

转载自blog.csdn.net/qq_38402294/article/details/71512089
今日推荐