ROS | launch启动文件的使用
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启动文件的使用相关推荐
- ROS launch启动文件
ROS启动文件 launch启动文件 launch 文件语法 launch文件使用 例程代码 launch启动文件 launch启动文件可以同事启动多个节点: 通过XML文件实现多节点的配置和启动(可 ...
- 【RK3399Pro学习笔记】十五、ROS中launch启动文件的使用方法
目录 Launch文件语法 <launch><launch><launch> <node><node><node> 参数设置 & ...
- ROS开发之如何制作launch启动文件?
文章目录 0.引言 1.Launch文件语法 2.Launch示例 0.引言 笔者因研究课题涉及ROS开发,学习了古月居出品的ROS入门21讲,为巩固launch的知识,本文将ROS的launch ...
- Launch启动文件的使用方法
Launch启动文件的使用方法 案例一:运行两个节点 案例二:加载参数与命名空间 案例三:小海龟跟随的launch启动方法 案例四:remap修改节点名 Launch文件可以通过XML文件实现多节点的 ...
- ROS系统 launch启动文件的使用方法
launch文件:通过XML文件实现多节点的配置和启动(可以自动启动ROS Master) 使用步骤 选定功能包右击 -> 添加 launch 文件夹 选定 launch 文件夹右击 -> ...
- 【ROS学习笔记】(十一)launch启动文件的使用方法
一.Launch文件作用 通过XML文件实现多节点的配置和启动. 同时可以自动启动ROS Master(不需要单独roscore). 二.Launch文件语法 1. <launch> la ...
- ROS学习(八)launch启动文件的使用方法
前言 使用命令行输入代码需要不断打开终端比较繁琐,而且容易输入错误,那么有没有什么方法可以快速启动所需节点呢? 一.launch文件介绍 Launch文件:通过XML文件实现多节点的配置和启动(可自启 ...
- ROS2学习笔记(十)-- ROS2 launch启动文件
简介:接触过ROS1的同学对launch肯定不陌生,在ROS1中,我们常用launch实现node和master同时启动.多节点同时启动配置等功能,ROS2中的launch也是用于多节点启动.配置功能 ...
- ROS基础(十)——launch启动文件的使用方法
申明:ROS学习参考了古月居老师的Blibli视频,强烈推荐大家看视频学习,本博客仅记录自己的学习经历和心得,欢迎大家一起讨论! 1 launch文件介绍 Launch文件:通过XML文件实现多节点的 ...
最新文章
- 清华发布《中国AI发展报告2018》:中科院系统AI论文产出全球第一
- mysql 前后代表什么_MySQL的锁
- 每天AI资讯这么多,该看哪些?推荐一份优质AI内参!
- 5.4任务进展情况(整理——郑云飞)
- RabbitMQ安装及PHP扩展安装(最后的代码可以测试连接是否成功)
- linux/unix编程手册-61_64
- 面试官问发布订阅模式是在问什么?
- 创业 4 年获近 7000 万美元融资,53 岁老程序员 all in 开源
- 【Java】输入三角形的三边长,求三角形的面积
- php把数据生成mxl,php如何生成加密公钥以及加密私钥的代码案例分享
- 卡尔曼滤波估matlab算法,INS-matlab 利用卡尔曼滤波算法估计惯导系统状态量的源代码~谢谢分享 - 下载 - 搜珍网...
- selenium之滑块操作
- 曼切斯特编码波特率和比特率的关系
- 华为华三学习工具模拟器安装教 程(ENSP与HCL)
- 迷你迅雷,IE下载加速补丁(转)
- python爬取天眼查存入excel表格_python爬取企查查江苏企业信息生成excel表格
- VMBox CentOS安装记录
- 区块链行业报告浅见输出
- Mac安装Java反编译工具JD-GUI(解决打不开问题)
- Nucleo-64开发板笔记
热门文章
- NAACL 2022事件相关(事件抽取、事件关系抽取、事件预测等)论文汇总
- [读书][笔记]WINDOWS PE权威指南《零》PE基础
- Landsat Collection 2 T1一级数据详细介绍(数据处理过程和几何精度)
- linux下安装mariadb
- Codeforces Round #486 (Div. 3)
- 生存预测 : kaggle titanic 泰坦尼克号 逻辑回归(Logistic回归) tensorflow版
- Mozilla的架构(收集)
- 优秀课件笔记之视听巧记汉英成语2
- UE4.26 Niagara Initial Mesh Orientation使用方法
- 浙大 计算机 毕业论文格式,毕业论文格式