长沙外贸建站哪里好,网络规划设计师教程第二版 百度网盘,精准营销公司,php在电子商务网站建设中的应用研究 戴书浩1.概述
关于 launch 文件的使用已经不陌生了#xff0c;之前就曾经介绍到: 一个程序中可能需要启动多个节点#xff0c;比如:ROS 内置的小乌龟案例#xff0c;如果要控制乌龟运动#xff0c;要启动多个窗口#xff0c;分别启动 roscore、乌龟界面节点、键盘控制节点。如果…1.概述
关于 launch 文件的使用已经不陌生了之前就曾经介绍到: 一个程序中可能需要启动多个节点比如:ROS 内置的小乌龟案例如果要控制乌龟运动要启动多个窗口分别启动 roscore、乌龟界面节点、键盘控制节点。如果每次都调用 rosrun 逐一启动显然效率低下如何优化? 采用的优化策略便是使用roslaunch 命令集合 launch 文件启动管理节点并且在后续教程中也多次使用到了 launch 文件。
概念
launch 文件是一个 XML 格式的文件可以启动本地和远程的多个节点还可以在参数服务器中设置参数。
作用
简化节点的配置与启动提高ROS程序的启动效率。
使用
以 turtlesim 为例演示
2.基本操作
ROS学习第四节——launch文件_小明在考研的博客-CSDN博客
3.基础标签
3.1launch文件标签之launch
launch标签是所有 launch 文件的根标签充当其他标签的容器
1.属性 deprecated 弃用声明 告知用户当前 launch 文件已经弃用 2.子级标签
所有其它标签都是launch的子级
3.2launch文件标签之node
node标签用于指定 ROS 节点是最常见的标签需要注意的是: roslaunch 命令不能保证按照 node 的声明顺序来启动节点(节点的启动是多进程的)
1.属性 pkg包名 节点所属的包 typenodeType 节点类型(与之相同名称的可执行文件) namenodeName 节点名称(在 ROS 网络拓扑中节点的名称) argsxxx xxx xxx (可选) 将参数传递给节点 machine机器名 在指定机器上启动节点 respawntrue | false (可选) 如果节点退出是否自动重启 respawn_delay N (可选) 如果 respawn 为 true, 那么延迟 N 秒后启动节点 requiredtrue | false (可选) 该节点是否必须如果为 true,那么如果该节点退出将杀死整个 roslaunch nsxxx (可选) 在指定命名空间 xxx 中启动节点 clear_paramstrue | false (可选) 在启动前删除节点的私有空间的所有参数 outputlog | screen (可选) 日志发送目标可以设置为 log 日志文件或 screen 屏幕,默认是 log
2.子级标签 env 环境变量设置 remap 重映射节点名称 rosparam 参数设置 param 参数设置
3.3launch文件标签之include
include标签用于将另一个 xml 格式的 launch 文件导入到当前文件
1.属性 file$(find 包名)/xxx/xxx.launch 要包含的文件路径 nsxxx (可选) 在指定命名空间导入文件
2.子级标签 env 环境变量设置 arg 将参数传递给被包含的文件
3.4launch文件标签之remap
用于话题重命名
1.属性 fromxxx 原始话题名称 toyyy 目标名称
2.子级标签
无
列举一个案例解释该标签的使用
运行小乌龟程序以后使用teleop_twist_keyboard.py功能包并不能控制小乌龟是因为连个节点的话题是不一样的 此出就可以使用该标签解决这个问题
launch node pkgturtlesim typeturtlesim_node namet1remap from /turtle1/cmd_vel to/cmd_vel //nodenode pkgturtlesim typeturtle_teleop_key namekey1 /
/launch 3.5 launch文件标签之param
param标签主要用于在参数服务器上设置参数参数源可以在标签中通过 value 指定也可以通过外部文件加载在node标签中时相当于私有命名空间。
1.属性 name命名空间/参数名 参数名称可以包含命名空间 valuexxx (可选) 定义参数值如果此处省略必须指定外部文件作为参数源 typestr | int | double | bool | yaml (可选) 指定参数类型如果未指定roslaunch 会尝试确定参数类型规则如下: 如果包含 . 的数字解析未浮点型否则为整型 true 和 false 是 bool 值(不区分大小写) 其他是字符串
2.子级标签
无
3.6launch文件标签之rosparam
rosparam标签可以从 YAML 文件导入参数或将参数导出到 YAML 文件也可以用来删除参数rosparam标签在node标签中时被视为私有。
1.属性 commandload | dump | delete (可选默认 load) 加载、导出或删除参数 file$(find xxxxx)/xxx/yyy.... 加载或导出到的 yaml 文件 param参数名称 ns命名空间 (可选)
2.子级标签
无
3.7launch文件标签之group
group标签可以对节点分组具有 ns 属性可以让节点归属某个命名空间
1.属性 ns名称空间 (可选) clear_paramstrue | false (可选) 启动前是否删除组名称空间的所有参数(慎用....此功能危险)
2.子级标签 除了launch 标签外的其他标签
3.8 launch文件标签之arg
arg标签是用于动态传参类似于函数的参数可以增强launch文件的灵活性
1.属性 name参数名称 default默认值 (可选) value数值 (可选) 不可以与 default 并存 doc描述 参数说明
2.子级标签
无
3.示例 launch文件传参语法实现,hello.lcaunch launcharg namexxx /param nameparam value$(arg xxx) /
/launch命令行调用launch传参
roslaunch hello.launch xxx:值