launch文件

文章目录

launch文件

launch文件的作用

launch文件可以用来同时启动多个节点。其基本思想是在一个XML格式的文件内将需要同时启动的一组节点罗列出来。

launch文件的基本组成

假设有如下 launch 文件:

<launch>
    <!-- Start tilt joint controller -->
    <rosparam file="$(find my_dynamixel_tutorial)/tilt.yaml" command="load"/>
    <node name="controller_spawner" pkg="dynamixel_controllers" type="controller_spawner.py"
          args="--manager=dxl_manager
                --port dxl_USB0
                joint3_controller
                joint4_controller
                joint5_controller
                "
          output="screen"/>

  <!-- Start joints trajectory controller controller -->
    <rosparam file="$(find my_dynamixel_tutorial)/joints_trajectory_controller.yaml" command="load"/>
    <node name="controller_spawner_meta" pkg="dynamixel_controllers" type="controller_spawner.py"
          args="--manager=dxl_manager
                --type=meta
                f_arm_controller
                joint3_controller
                joint4_controller
                joint5_controller
               "
          output="screen"/>
</launch>

上述 launch 文件中包含两个节点,每个节点包含很多属性参数,下面一一说明:


rosparam:一次性将多个参数加载到参数服务器中. 我们将需要设置的参数放到 .yaml 文件中。


必备的节点属性

  1. pkg: 表示该节点的package,相当于 rosrun 命令后面的第一个参数;
  2. type: 可执行文件的名字,rosrun 命令的第二个参数;是否可以理解为要执行的节点
  3. name: 该节点的名字,相当于代码中 ros::init() 中设置的信息,有了它代码中的名称会被覆盖。

其他属性

  • output: 将标准输出显示在屏幕上而不是记录在日志中;
  • respawn: 请求复位,当该属性的值为 respawn="true" 时,roslaunch 会在该节点崩溃时重新启动该节点;
  • required: 必要节点,当该值为 required="true" 时,roslaunch 会在该节点终止时终止其他活跃节点;
  • 启动前缀: 在启动命令加上前缀。例如当其设置为 launch-prefix="xterm -e" 时,效果类似于 xterm -e rosrun X X 。也就是为该节点保留独立的终端;
  • ns: 在命名空间中启动节点;
  • 重映射: 使用方法 remap from="original-name(turtle/pose)"to"new-name(tim)"
  • 包含其他文件include file=“path to launch file”: 在启动文件中包含其他启动文件的内容(包括所有的节点和参数),可使用如下命令使路径更为简单include file="($find package-name)/launch-file-name"
  • 启动参数(launch arguments): 为了使启动文件便于配置,roslaunch 还支持启动参数,有时也简称为参数甚至 args,其功能有点像可执行程序中的局部变量。 声明参数:arg name="arg-name", 然而这样的声明并不是必须的(除非你想要给它赋值或设置为默认值),但是这是一个好的做法,因为这样能使读者比较清楚启动文件需要哪些参数。
    参数赋值:
roslaunch package-name launch-file-name arg-name:=arg-value 
<arg name=”arg-name” default=”arg-value”/> 
<arg name=”arg-name” value=”arg-value”/> 

获取参数:一旦参数值被声明并且被赋值,你就可以利用下面的 arg 替换(arg substitution)语法来使用该参数值了:$(arg arg-name) 每个该替换出现的地方,roslaunch 都将它替换成参数值。

上一篇:万能的gitignore文件模版


下一篇:如何在Android中单击url启动应用程序