1.launch启动文件简介

到目前为止,每当我们需要运行一个ROS节点或工具时,都需要打开一个新的终端运行一个命令。当系统中的节点数量不断增加时,“每个节点一个终端”的模式会变得非常麻烦。那么有没有一种方式可以一次性启动所有节点呢?答案当然是肯定的。

启动文件(Launch File)便是ROS中一种同时启动多个节点的途径,它还可以自动启动ROS Master节点管理器,并且可以实现每个节点的各种配置,为多个节点的操作提供很大便利。

2.文件的基本元素

首先来看一个简单的launch文件,对其产生初步的概念。



这是一个简单而完整的launch文件,采用XML的形式进行描述,包含一个根元素<launch>和两个节点元素<node>

2.1 <launch>

XML文件必须包含一个根元素,launch文件中中根元素采用<launch>标签定义,文件中的其他内容都必须包含在这个<launch>标签中。

2.2 <node>

启动文件的核心是启动ROS节点,采用<node>标签定义,语法如

下:

<node pkg="该节点所在的功能包名称" type="该节点的可执行文件名称" name="定义节点运行的名称" />

从上面的定义规则可以看出,在启动文件中启动一个节点需要三个属性:pkg、type和name。其中pkg定义节点所在的功能包名称,type定义节点的可执行文件名称,这两个属性等同于在终端中使用rosrun命令执行节点时的输入参数。name属性用来定义节点运行的名称,将覆盖节点中init()赋予节点的名称,这是三个最常用的属性.

在某些情况下,我们还有可能用到以下属性:

  • output="screen":将节点的标准输出打印到终端屏幕,默认输出为日志文档。
  • respawn="true":复位属性,该节点停止时,会自动重启,默认为false。
  • required="true":必要节点,当该节点终止时,launch文件中的其他节点也被终止。
  • ns="namespace":命名空间,为节点内的相对名称添加命名空间前缀。
  • args="arguments":节点需要的输入参数。

目前,我们只关注其中的标签元素,除了上面介绍的<launch><node>,这里还出现了<arg><param><remap>,这些都是常用的标签元素。launch是ROS框架中非常实用、灵活的功能,它类似于一种高级编程语言,可以帮助我们管理启动系统时的方方面面。在使用ROS的过程中,很多情况下我们并不需要编写大量代码,仅需要使用已有的功能包,编辑一下launch文件就可以完成很多机器人功能。

DAY3--launch文件编写的更多相关文章

  1. (八) .launch文件 ---编写简单的启动脚本文件

    下面我们将介绍,如何编写一个启动脚本程序:(.launch文件) 还记得我们在 创建ROS软件包教程 中创建的第一个程序包(beginner_tutorials)吗,现在我们要使用它. 在 begin ...

  2. ROS Learning-010 beginner_Tutorials 编写简单的启动脚本文件(.launch 文件)

    ROS Indigo beginner_Tutorials-09 编写简单的启动脚本文件 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.0 ...

  3. launch文件

    launch在ROS应用中,每个节点通常有许多参数需要设置,为了方便高效操作多个节点,可以编写launch文件,然后用roslaunch命令运行roslaunch: roslaunch [option ...

  4. launch 文件解析

    roslaunch工具是ros中python实现的程序启动工具,通过读取launch文件中的参数配置.属性配置等来启动一系列节点: 很多ROS包或源码包中都有launch文件,一般为该程序包能够运行起 ...

  5. ROS学习笔记六:xxx.launch文件详解

    每当我们需要运行一个ROS节点或工具时,都需要打开一个新的终端运行一个命令.当系统中的节点数量不断增加时,每个节点一个终端的模式会变得非常麻烦.那么有没有一种方式可以一次性启动所有节点呢?答案当然是肯 ...

  6. 网站 robots.txt 文件编写

    网站 robots.txt 文件编写 Intro robots.txt 是网站根目录下的一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的 ...

  7. 【OpenWRT】【RT5350】【三】MakeFile文件编写规则和OpenWRT驱动开发步骤

    一.Makefile文件编写 http://www.cnblogs.com/majiangjiang/articles/3218002.html 可以看下上面的博客,总结的比较全了,在此不再复述 二. ...

  8. linux库文件编写入门(笔记)

    linux库文件的编写 作者: laomai地址: http://blog.csdn.net/laomai 本文主要参考了如下资料⑴hcj写的"Linux静态/动态链接库的创建和使用&quo ...

  9. Linux Makefile文件编写详细步骤与实践

    Linux Makefile文件编写详细步骤与实践 1.makefile概述 Windows环境下IDE会帮你完成makefile文件的编写,但在UNIX环境下你就必须自己写makefile了,会不会 ...

  10. 第三课3、ROS的launch文件

    1.launch 参数说明: pkg为节点的功能包,type为需要运行的那个节点,name为节点的名字,后面的参数可选 举个例子: 在工作空间中新建一个包: 然后再回到工作空间中去编译: 再在包目录下 ...

随机推荐

  1. Robot Framework 自动化测试部署常见问题及处理方法(二)

    书接上文 4.使用Open Browser关键字打开浏览器报错"WebDriverException: Message: 'geckodriver' executable needs to ...

  2. ctfshow--web2 sql注入

    这题是考sql注入,我们先用个万能语句注入 发现它上面会出现 欢迎你,ctfshow 那么这就很明显了,这个用户的名字就是ctfshow 那么猜测flag会不会是在flag的用户里面呢我们提交一下 如 ...

  3. 某Websocket反爬逆向分析+请求加解密+还原html

    网址 aHR0cHM6Ly93d3cueWR4Zi5nb3YuY24vTmV3cy9zaG93TGlzdC80L3BhZ2VfMS5odG1s 前言 工作中遇到的某websocket反爬,比混淆网站还 ...

  4. 微信小程序安全开发、测试的一些记录

    目录 开发原则 漏洞类型--越权 漏洞类型--信息泄露 漏洞类型--爬虫遍历 漏洞类型--授权用户信息变更不跟进 漏洞类型--注入类 漏洞类型--上传.下载类 Reference 本文基于微信开发者平 ...

  5. 独立开发经验谈:如何借助 AI 辅助产品 UI 设计

    我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统.陆陆续续开发了几年,从一开始的偶有用户尝试,到如今线上环境和私有化部署均有了越来越多的稳定用户,在这个过程中,我也积累了不少如何开发运营 ...

  6. RocksDB 二级缓存

    本文分享自天翼云开发者社区<RocksDB 二级缓存>,作者:b****n RocksDB 团队正在实现对非易失性介质上的块缓存的支持.可以看作是 RocksDB 当前的易失性块缓存的扩展 ...

  7. 解决tsc编译器版本过低问题

    我们知道,tsc是TypeScript的编译器,可以将TypeScript脚本(.ts文件)编译为JavaScript脚本(.js文件).根据约定,TypeScript脚本文件使用.ts后缀名,Jav ...

  8. mysql之事务范例

    package com.yeyue.lesson04; import com.yeyue.lesson02.JdbcUtils; import java.sql.Connection; import ...

  9. go实现设计模式(1)——简介

    六大原则 开闭原则(Open Close Principle) 对扩展开放,对修改关闭.对程序进行拓展时,尽量不去修改原有的代码,应该通过扩展实体的行为来实现. 里氏替换原则(Liskov Subst ...

  10. 【COM3D2Mod 制作教程(3)】Mod 制作概要

    [COM3D2Mod 制作教程(3)]Mod 制作概要 制作工具整合包:https://mod.3dmgame.com/mod/205516 该工具包简单整合了些本章需要的小型工具.插件.以及其他一些 ...