• 十五、ROS的launch文件标签(一)


    1、launch文件实现步骤

    1.新建功能包

    • 注意:注意加入launch文件中的功能包依赖

    2.在功能包下创建launch文件夹

    3.在launch文件夹下创建launch文件

    <launch>
        <node pkg="turtlesim" type="turtlesim_node" name="myturtle" output="screen" />
        <node pkg="turtlesim" type="turtle_teleop_key" name="mykey" output="screen" />
    </launch>
    
    • 1
    • 2
    • 3
    • 4
    • pkg:功能包
    • type:节点名
    • name:自己定义的名字
    • output:输出位置

    4.调用launch文件

    roslaunch 包名 xxx.launch 
    
    • 1
    • 注意:roslaunch命令执行launch文件时,会首先判断是否启动了roscore,若启动了,则不再重复启动

    2、launch文件标签

    1.deprecated

    • 作用:弃用声明,告诉使用者该launch文件已过时,并进行警告
    • 注意:launch是根标签,其它标签都是launch的子级标签
    • 代码实现:
      <launch deprecated = "弃用声明">
      <!-- 弃用声明,会在运行的过程中进行警告 -->
          <node pkg="turtlesim" type="turtlesim_node" name="myturtle" output="screen" />
          <node pkg="turtlesim" type="turtle_teleop_key" name="mykey" output="screen" />
      </launch>
      
      • 1
      • 2
      • 3
      • 4
      • 5
    • 运行结果:
      NODES
      /
          mykey (turtlesim/turtle_teleop_key)
          myturtle (turtlesim/turtlesim_node)
      
      WARNING: [/media/d102/EPAN/Desktop/code_study_ubuntu/rosdemo_05/src/launch_test_01/launch/turtle_start.launch] DEPRECATED: 弃用声明
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

    2.node

    • 作用:用于指定ROS节点
    • 注意:roslaunch命令不能保证按照声明的顺序来启动相应的节点,因为节点的启动是多线程的
    • pkg=“包名”
      节点所属的包
    • type=“nodeType”
      要启动的节点名称
    • name=“nodeName”
      在ROS网络拓扑中节点的名称
    • args=“xxx xxx xxx”(可选)
      将参数传递给节点,参数中间用空格隔开
    • machine=“机器名”(可选)
      由于ROS是分布式控制,machine用来区分不同的机器
    • respawn=“true|false”(可选)
      如果节点退出,是否自动重启,当为true时,则自动重启,只有杀死整个进程(crtl+c),才能退出相应的节点
    • respawn_delay=“T”(可选)
      当respawn设为true时,那么延迟T秒后重启
    • required=“true|false”(可选)
      该节点是否必须,若设为true,那么该节点退出时,将杀死整个launch
    • clear_params=“true|false”(可选)
      在启动前,删除节点的私有空间的所有参数
    • output=“log|screen”(可选)
      日志发送目标,默认是log
    • ns=“xxx”(可选)
      在指定命名空间中启动节点,避免重名
      <launch deprecated = "弃用声明">
      <!-- 弃用声明,会在运行的过程中进行警告 -->
          <node pkg="turtlesim" type="turtlesim_node" name="myturtle" output="screen"  respawn="true" respawn_delay="10" ns="turtle"/>
          <node pkg="turtlesim" type="turtle_teleop_key" name="mykey" output="screen" />
      </launch>
      
      • 1
      • 2
      • 3
      • 4
      • 5

    3.include

    • 作用:当完成一个功能的时候,可能需要启动很多的节点,有些节点可能有关联,需要同时启动,这时,就可以引用已经编写好的launch文件,成为功能包复用
    • 代码实现:
      <launch>
          <include file="$(find launch_test_01)/launch/turtle_start.launch" />
          <!-- 再加入自己需要的节点 -->
      </launch>
      
      • 1
      • 2
      • 3
      • 4

      4.remap

      • 作用:给话题名重命名
      • 属性:
        • from=“xxx”:原话题名
        • to=“xxx”:目标话题名
      • 示例:通过ROS自己的键盘节点(/cmd_vel)代替小乌龟的键盘控制节点(/turtle1/cmd_vel)控制小乌龟运动
          1. 安装键盘控制包
          sudo apt-get install ros-noetic-teleop-twist-keyboard
          
          • 1
          1. 启动键盘控制节点
          rosrun teleop_twist_keyboard teleop_twist_keyboard.py 
          
          • 1
          1. 编写launch文件
          <launch deprecated = "弃用声明">
          <!-- 弃用声明,会在运行的过程中进行警告 -->
              <node pkg="turtlesim" type="turtlesim_node" name="myturtle" output="screen"  >
                  <remap from="/turtle1/cmd_vel" to="/cmd_vel" />
              </node>
              <node pkg="turtlesim" type="turtle_teleop_key" name="mykey" output="screen" />
          </launch>
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
        • 4.启动launch文件
          • 注意:启动后,小乌龟的键盘控制节点将不能再使用
  • 相关阅读:
    快速排序的按区间的三个版本及优化--友友们不一定了解
    Mysql根据经纬度查询半径多少以内的数据,画个圈圈查数据库
    安装与使用ChatTTS文本转语音模型
    JavaScript实现十六进制色差功能、十六进制颜色相减、replace、parseInt、max、toString、slice
    CP Autosar-ETH Driver配置
    js笔试面试题5道附答案
    python>>numpy(第二讲)
    微服务中的相关概念
    2019年1+X 证书 Web 前端开发中级理论考试题目原题+答案——第一套
    excel 指定行数据求和
  • 原文地址:https://blog.csdn.net/qq_43280851/article/details/125457429