launch文件
launch
在ROS应用中,每个节点通常有许多参数需要设置,为了方便高效操作多个节点,可以编写launch文件,然后用roslaunch命令运行
roslaunch: roslaunch [options] [package] <filename> [arg_name:=value...]
roslaunch [options] <filename> [<filename>...] [arg_name:=value...]
launch文件的一般格式,参数:
<launch>
<node .../>
<rosparam ..../>
<param .../>
<include .../>
<env .../>
<remap .../>
<arg.../>
</launch>
参数说明
<node >要启动的node参数
pkg=''mypackage''
type=''nodetype''
name=''nodename''
arg=''arg1 ....''(可选)
respawn=''ture''(可选)如果节点停止,自动重启节点
ns=''foo''(可选)在foo命名空间启动节点
output=''log|screen''(可选)
<rosparam>操作yaml文件参数
command=''load|dump|delete''(默认load)
file=''$(find pkg-name)/path/foo.yaml''(load或dump命令)yaml文件的名字
param=''param-name''参数名
<param>定义一个设置在参数服务器的参数,它可以添加到<node>中
name=''namespace/name''
value=''value''(可选)如果省略这个参数,则应指定一个文件(binfile/textfile)或命令
type=''str|int|double|boot''(可选)指定参数的类型
textfile=''$(find pkg-name)/path/file''(可选)
binfile=''$(find pkg-name)/path/file''()
command=''(find pkg-name)/exe '$(find pkg-name)/arg.txt' ''(可选)exe是可执行文件(cpp、py),arg.txt是参 数文件
<include>在当前launch文件中调用另一个launch文件
file=''$(find pkg-name)/path/launch-file.launch''
<env>设置节点的环境变量
name=''environment-variable-name''
value=''environment-variable-value''
<remap>将一个参数名映射为另一个名字
from=''original-name''
to=''new-name''
<arg>定义一个局部参数,该参数只能在一个launch文件中使用
<arg name=''foo''/>声明一个参数foo,后面需要给它赋值
<arg name=''foo'' default=''1''/>声明一个参数foo,如不赋值取默认值
<arg name=''foo'' value=''bar''/>声明一常量foo,它的值不能修改
首先新建一个测试功能包
catkin_create_pkg turtlesim_launch roscpp rospy
新建一个launch文件
vi turtlesim_launch.launch
<launch>
<node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node" respawn="true" output="screen"/> <node pkg="turtlesim" type = "turtle_teleop_key" name="turtle_teleop_key"
respawn="false" output="screen"/> </launch>
roslaunch turtlesim_launch.launch
j简单的键盘控制小乌龟
利用<include>在当前launch文件中调用另一个launch文件
file=''$(find pkg-name)/path/launch-file.launch''
运行子launch文件
turtlesim_launch.launch
<launch> <include file="$(find turtlesim_launch)/teleop.launch"/>
<node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node" respawn="true" output="screen"/> <param name="turte" value = "1"/>
<rosparam command="dump" file="$(find turtlesim_launch)/color.yaml"/>
<arg name="foo" value="2"/>
</launch>
vi teleop.launch
<launch> <node pkg="turtlesim" type = "turtle_teleop_key" name="turtle_teleop_key"
respawn="false" output="screen"/> </launch>
launch文件的更多相关文章
- 第三课3、ROS的launch文件
1.launch 参数说明: pkg为节点的功能包,type为需要运行的那个节点,name为节点的名字,后面的参数可选 举个例子: 在工作空间中新建一个包: 然后再回到工作空间中去编译: 再在包目录下 ...
- ROS启动多launch文件
在ROS工程中经常需要启动好几个launch文件,比较不方便,有下面两种方法可以更高效些: 重写一个大型的launch文件,将所有的节点的启动配置信息都包含进去. 通过bash写一个xxx.sh文件, ...
- ROS的launch文件
ROS中可以把很多的命令以描述的形式写成launch文件,然后用roslaunch命令执行launch文件.它的使用方法如下: roslaunch [package] [filename.launch ...
- launch 文件的写法
1. launch文件的写法 ❀标签 ☺<node> 启动一个节点 ☺ <param> 设置参数服务器的参数 ☺ < ...
- (八) .launch文件 ---编写简单的启动脚本文件
下面我们将介绍,如何编写一个启动脚本程序:(.launch文件) 还记得我们在 创建ROS软件包教程 中创建的第一个程序包(beginner_tutorials)吗,现在我们要使用它. 在 begin ...
- python ros 使用launch文件启动脚本
目录结构 在包里面新建scripts文件夹,里面放运行的脚本文件,记得设置执行权限 然后新建launch文件夹,新建launch文件按照如下格式写: <node pkg="initia ...
- ros 编译包含脚本文件以及launch文件
目录结构如下: 修改CMakeLists.txt文件 install(PROGRAMS scripts/initial_pos.py DESTINATION ${CATKIN_PACKAGE_BIN_ ...
- ros 使用python代码启动launch文件
在开发中我们经常会遇到使用python代码启动launch文件这样的问题.一般的做法是使用subprocess调用roslaunch.但是这种方法使用起来并不方便.要涉及到自己去控制进程的状态.由于r ...
- launch 文件解析
roslaunch工具是ros中python实现的程序启动工具,通过读取launch文件中的参数配置.属性配置等来启动一系列节点: 很多ROS包或源码包中都有launch文件,一般为该程序包能够运行起 ...
随机推荐
- Java集合---ArrayList的实现原理
目录: 一. ArrayList概述 二. ArrayList的实现 1) 私有属性 2) 构造方法 3) 元素存储 4) 元素读取 5) 元素删除 6) 调整数组容量 ...
- C#.Net 调用方法,给参数赋值的一种技巧
C#中可以给参数赋值默认值(其实这种写法有点不太好,有时会使方法的功能太复杂了)。 但是往往有多个默认参数时,有的参数需要使用默认值,有的不使用默认值,这时正常的写法就行不通了,解决方法可参照下边的代 ...
- pb数据窗口设置操作
1 使DataWindow列只能追加不能修改如何使DataWindow中的数据只能追加新记录而不能修改,利用 Column 的 Protect 属性可以很方便的做到这一点,方法如下:将每一列的 Pro ...
- AppleWatch___学习笔记(二)UI布局和UI控件
1.UI布局 直接开发,你会发现Apple Watch并不支持AutoLayout,WatchKit里有个类叫做WKInterfaceGroup,乍一看像是UIView,但是这货其实是用来布局的.从 ...
- java 字符串类型String
在本质上,字符串实际上一个char类型的数组,由java.lang.String类来表示,该类具有一系列的属性和方法,提供对字符串的一些操作.除此之外,java还提供了StringBuffer类来处理 ...
- (7) 深入了解Java Class文件格式(六)
转载:http://blog.csdn.net/zhangjg_blog/article/details/21888943 经过前几篇文章, 终于将常量池介绍完了, 之所以花这么大的功夫介绍常量池, ...
- CentOS 7下关于systemd的一些唠叨话二:systemd服务脚本的编写
CentOS 7继承了RHEL 7的新的特性,例如强大的systemd,而systemd的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变,也大幅提高了系统服务的运行效率.但服务 ...
- python 字符串 转 dict
比直接eval更好的方法>>>import ast >>>ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'k ...
- Python3基础 in 列表名 判断一个元素是否在列表中
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- Linux 执行ll命令时指定按文件时间或大小排序
按时间排序: $ ll -ht 按大小排序: $ ll -hS 使用--help查看命令的用法,如 $ ll --help