ROS | launch启动文件的使用

  • 1. launch文件功能
  • 2. launch文件语法
    • 2.1 <launch>标签
    • 2.2 <node>标签
    • 2.3 <param>标签
    • 2.4 <rosparam>标签
    • 2.5 <arg>标签
    • 2.6 <remap>标签
    • 2.7 <include>标签
  • 3. launch文件使用
    • 3.1 创建launch文件
    • 3.2 编译launch文件
    • 3.3 启动launch文件
    • 3.4 节点通信可视化

1. launch文件功能

之前运行ROS节点都需要先使用roscore命令启动ROS Master,并且单独rosrun命令启动各个ROS节点,而使用launch文件可以大大地简化这些步骤,只需要一个roslaunch命令,就可以同时启动ROS Master和多个节点程序。

2. launch文件语法

2.1 <launch>标签

<launch>是launch文件的文件标签,是必须要有的。其中<launch>表示文件的起始,</launch>表示文件的结束。
例如:

<launch><node pkg="turtlesim" type="turtlesim_node" name="sim"/><node pkg="turtlesim" type="turtle_teleop_key" name="teleop" output="screen"/>
</launch>

2.2 <node>标签

<node>是节点标签,用来启动某个ROS节点,其中包含了如下几个主要的属性。

  • pkg:表示节点所在的功能包名称,使用方式如pkg = “tf_lidar_task”;
  • type:表示节点的可执行文件名称,使用方式如type = “lidar_broadcaster”;
  • name:表示该节点在ROS系统中运行时的节点名,与节点编程时ros::init(argc, argv, “robot_tf_publisher”)中命名的节点名是同一概念,如果两者不同,launch文件中定义的name将覆盖程序中命名的节点名,可理解为重命名。因为ROS中节点名称是唯一的,name的使用是为了重复利用节点,比如发布广播t1和发布广播t2都使用发布广播节点,但运行时名称不同。使用方式如name = “broadcaster_t1”;
  • output:用于控制某个节点是否将日志信息打印在终端界面上,默认输出到日志文档,使用方式如output = “screen”;
  • respawn:表示在该节点突然停止时,是否会自动重启,默认为false,使用方式如respawn = “true”;
  • required:表示该节点是否必须要启动,当该节点终止时,launch文件中的其他节点也被终止,使用方式如required = “true”;
  • ns:表示namespace(命名空间),为节点内的相对名称添加命名空间前缀,避免命名冲突,使用方式如ns = “foo”;
  • args:表示节点需要的输入参数,类似于之前ROS服务编程中实现整数加法时rosrun命令后面所跟着的参数,使用方式为args = “10 20”;

2.3 <param>标签

<param>用于设置和修改ROS系统运行中的单个参数,存储在参数服务器中,类似于修改变量,例如可以设置turtlesim海龟界面背景的RGB值。使用方式如:

<param name="output_frame" value="odom"/>

其中,name是参数名,value是参数值。

2.4 <rosparam>标签

<rosparam>用于加载参数文件中的多个参数,可以将参数文件中的所有参数都保存到参数服务器中。使用方式如:

<rosparam file="params.yaml" command="load" ns="local_costmap" />

其中,command属性可以设置为加载command=“load”,或设置为卸载command=“delete”。

2.5 <arg>标签

<arg>与<param>、<rosparam>虽然都用于参数设置,但<arg>的区别在于它表示launch文件内部的局部变量,存储在launch文件中并且仅限于launch文件中使用。使用方式如:

<arg name="arg-name" value="arg-value" />

<arg name="arg-name" value="$(arg arg-name)" />

其中name是参数名,value是参数值。另外还可以为参数设置默认值。

<arg name="arg-name" default="1" />

2.6 <remap>标签

<remap>表示重映射ROS计算图资源的命名,可近似理解为重命名,使用方式如:

<remap from="/turtlebot/cmd_vel"to"/cmd_vel"/>

其中from为原命名,to为映射之后的命名。

2.7 <include>标签

<include>用于包含其他launch文件,类似于C语言中的头文件包含。使用方式如:

<include file="$(dirname)/turtle.launch" />

其中file是包含的其他launch文件路径。

更多资料可参考:http://wiki.ros.org/roslaunch/XML

3. launch文件使用

3.1 创建launch文件

以TF变换的功能包为例,在tf_lidar_task工作空间中创建一个空文件夹,命名为launch。

在launch文件夹中创建一个空文件,命名为tf_lidar.launch。

3.2 编译launch文件

在/ROS_ws文件夹路径下打开一个新的终端,输入以下代码进行编译。

$ catkin_make

3.3 启动launch文件

在/ROS_ws路径下配置环境,再输入以下代码进行编译。

$ roslaunch tf_lidar_task tf_lidar.launch

3.4 节点通信可视化

打开一个新的终端,输入以下代码。

$ rqt_graph

可以看到广播器已经开始发布TF变换关系到监听者节点,并且节点名也按照launch文件中重新命名。

ROS | launch启动文件的使用相关推荐

  1. ROS launch启动文件

    ROS启动文件 launch启动文件 launch 文件语法 launch文件使用 例程代码 launch启动文件 launch启动文件可以同事启动多个节点: 通过XML文件实现多节点的配置和启动(可 ...

  2. 【RK3399Pro学习笔记】十五、ROS中launch启动文件的使用方法

    目录 Launch文件语法 <launch><launch><launch> <node><node><node> 参数设置 & ...

  3. ROS开发之如何制作launch启动文件?

    文章目录 0.引言 1.Launch文件语法 2.Launch示例 0.引言   笔者因研究课题涉及ROS开发,学习了古月居出品的ROS入门21讲,为巩固launch的知识,本文将ROS的launch ...

  4. Launch启动文件的使用方法

    Launch启动文件的使用方法 案例一:运行两个节点 案例二:加载参数与命名空间 案例三:小海龟跟随的launch启动方法 案例四:remap修改节点名 Launch文件可以通过XML文件实现多节点的 ...

  5. ROS系统 launch启动文件的使用方法

    launch文件:通过XML文件实现多节点的配置和启动(可以自动启动ROS Master) 使用步骤 选定功能包右击 -> 添加 launch 文件夹 选定 launch 文件夹右击 -> ...

  6. 【ROS学习笔记】(十一)launch启动文件的使用方法

    一.Launch文件作用 通过XML文件实现多节点的配置和启动. 同时可以自动启动ROS Master(不需要单独roscore). 二.Launch文件语法 1. <launch> la ...

  7. ROS学习(八)launch启动文件的使用方法

    前言 使用命令行输入代码需要不断打开终端比较繁琐,而且容易输入错误,那么有没有什么方法可以快速启动所需节点呢? 一.launch文件介绍 Launch文件:通过XML文件实现多节点的配置和启动(可自启 ...

  8. ROS2学习笔记(十)-- ROS2 launch启动文件

    简介:接触过ROS1的同学对launch肯定不陌生,在ROS1中,我们常用launch实现node和master同时启动.多节点同时启动配置等功能,ROS2中的launch也是用于多节点启动.配置功能 ...

  9. ROS基础(十)——launch启动文件的使用方法

    申明:ROS学习参考了古月居老师的Blibli视频,强烈推荐大家看视频学习,本博客仅记录自己的学习经历和心得,欢迎大家一起讨论! 1 launch文件介绍 Launch文件:通过XML文件实现多节点的 ...

最新文章

  1. 清华发布《中国AI发展报告2018》:中科院系统AI论文产出全球第一
  2. mysql 前后代表什么_MySQL的锁
  3. 每天AI资讯这么多,该看哪些?推荐一份优质AI内参!
  4. 5.4任务进展情况(整理——郑云飞)
  5. RabbitMQ安装及PHP扩展安装(最后的代码可以测试连接是否成功)
  6. linux/unix编程手册-61_64
  7. 面试官问发布订阅模式是在问什么?
  8. 创业 4 年获近 7000 万美元融资,53 岁老程序员 all in 开源
  9. 【Java】输入三角形的三边长,求三角形的面积
  10. php把数据生成mxl,php如何生成加密公钥以及加密私钥的代码案例分享
  11. 卡尔曼滤波估matlab算法,INS-matlab 利用卡尔曼滤波算法估计惯导系统状态量的源代码~谢谢分享 - 下载 - 搜珍网...
  12. selenium之滑块操作
  13. 曼切斯特编码波特率和比特率的关系
  14. 华为华三学习工具模拟器安装教 程(ENSP与HCL)
  15. 迷你迅雷,IE下载加速补丁(转)
  16. python爬取天眼查存入excel表格_python爬取企查查江苏企业信息生成excel表格
  17. VMBox CentOS安装记录
  18. 区块链行业报告浅见输出
  19. Mac安装Java反编译工具JD-GUI(解决打不开问题)
  20. Nucleo-64开发板笔记

热门文章

  1. NAACL 2022事件相关(事件抽取、事件关系抽取、事件预测等)论文汇总
  2. [读书][笔记]WINDOWS PE权威指南《零》PE基础
  3. Landsat Collection 2 T1一级数据详细介绍(数据处理过程和几何精度)
  4. linux下安装mariadb
  5. Codeforces Round #486 (Div. 3)
  6. 生存预测 : kaggle titanic 泰坦尼克号 逻辑回归(Logistic回归) tensorflow版
  7. Mozilla的架构(收集)
  8. 优秀课件笔记之视听巧记汉英成语2
  9. UE4.26 Niagara Initial Mesh Orientation使用方法
  10. 浙大 计算机 毕业论文格式,毕业论文格式