ROS创建launch文件

01 launch文件启动

launch文件:通过XML文件实现多节点的配置和启动

  • launch文件可自动启动ROS Master,所以不用roscore

  • 编写或修改launch文件后不需要再catkin_make编译

  • 启动launch文件:

    roslaunch  pkg_name  launchfile_name.launch 
    

    也可以使用绝对路径启动launch文件:

    roslaunch path_to_launchfile
    
  • 添加参数的launch文件启动如下

    roslaunch   pkg_name  launchfile_name  model:=urdf/myfile.urdf  # launch file 中有参数 “model” 需要赋值
    # 或
    roslaunch  pkg_name  launchfile_name  model:='$(find urdf_pkg)/urdf/myfile.urdf' # 用 find 命令提供路径
    

    常见参数:

    • screen: 令 ros node 的信息(如果有的话)输出到屏幕上,而不是保存在某个 log 文件中,这样比较方便调试
    • arg:=value: 如果 launch 文件中有待赋值的变量,可以通过这种方式赋值

02 launch文件基本语法

<launch>:launch文件中的根元素采用标签定义

launch文件语法与xml相同,其常用标签如下:

<launch>                <!--根标签-->
<node>                  <!--需要启动的node及其参数-->
<include>               <!--包含其他launch-->
<machine>               <!--指定运行的机器-->
<env-loader>            <!--设置环境变量-->
<param>                 <!--定义参数到参数服务器-->
<rosparam>              <!--加载yaml文件中的参数到参数服务器-->
<arg>                   <!--定义变量-->
<remap>                 <!--设定 topic 映射-->
<group>                 <!--设定分组-->
</launch>               <!--根标签-->

2.1 node标签

<node>标签是launch文件最常使用的标签之一
在这里插入图片描述


<launch>
    <node pkg="package_name" type="executable_file" name="node_name1"/>
    <node pkg="another_package" type="another_executable" name="another_node"></node>
</launch>
  • pkg :是节点所在的 package 名称
  • type:是 package 中的可执行文件,如果是 python编写的,就需要写出.py后缀;如果是 c++ 编写的,则直接写可执行文件的名字就可以,不需要.cpp后缀。
  • name:是节点启动之后的名字, 每一个节点都要有自己独一无二的名字。如果想启动两个相同的文件,可以在这里写两个不同的名字,这样就可以启动两个原名字相同的节点了(比如启动两个小乌龟),这也是使用launch文件的优势之一。

 
注意: roslaunch 不能保证 node 的启动顺序,因此 launch 文件中所有的 node 都应该对启动顺序有鲁棒性。
所以这也是手眼标定时,很多博主都说最好不要在一个launch文件中启动,分开启动的原因。


 
<node> 中除了 pkgtypename 之外还可以设置更多参数,如下:

<launch>
    <node</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值