launch文件的理解
来源:互联网 发布:淘宝客的链接怎么看 编辑:程序博客网 时间:2024/05/02 04:45
Launch中节点的添加与重映射:
<launch>
<groupns="turtlesim1">
<nodepkg="turtlesim"name="sim"type="turtlesim_node"/>
</group>
<groupns="turtlesim2">
<node pkg="turtlesim"name="sim"type="turtlesim_node"/>
</group>
<groupns="turtlesim3">
<nodepkg="turtlesim"name="sim"type="turtlesim_node"/>
</group>
<node pkg="turtlesim" name="turtle_mimic"type="mimic">
<remapfrom="input"to="turtlesim1/turtle1"/>
<remapfrom="output"to="turtlesim2/turtle1"/>
</node>
<node pkg="turtlesim"name="turtle_mimic1"type="mimic">
<remap from="input"to="turtlesim1/turtle1"/>
<remapfrom="output"to="turtlesim3/turtle1"/>
</node>
</launch>
<include> 包含其他文件,包含文件中定义的参数、变量、节点都会按深度优先遍历依次执行生效
<arg> 参数声明,arg_1通过命令行传递,arg_2 传递到included.launch, arg_3 默认值可以被重写覆盖,agr_4不能被重写
<argname="arg_1" />
<param name="param_1"value="$(arg arg_1)"/>
<launch>
<arg name="arg_2" />
<param name="param_2"value="$(arg arg_2)"/>
</launch>
<includefile="$(find pkg_name)/path-to/included.launch"ns="namespace">
<arg name="arg_2" value="value" />
</include>
<argname="arg_3" default="value" />
<arg name="arg_4" value="value" />
<node pkg="pkg_name"type="exe_name" name="node_name1" args="arg1 arg2arg3" respawn="true" output="screen">
<param name="name1"type="double" value="10.0"/>
<param name="name2"value="$(arg arg_1)"/>
<param name="name3" value="$(envENVIRONMENT_VARIABLE_NAME)"/>
<param name="name4"command="$(find pkg_name)/path-to/exe '$(findpkg_name)/path-to/arg.txt'"/>
<param>:设置变量到参数服务器,参数服务器的概念看ros wiki
<rosparam>:dump/load、delete parametersfrom/to Parameter Server,常用来加载程序的参数配置文件到参数服务器,然后程序从参数服务器取得参数值;
<remap>:名称映射 from:被映射名称to:目标名称,名称映射的概念看ros wiki
<remapfrom="laser_topic" to="/scan"/>
<remap from="base_link"to="$(arg arg_1)"/>
<rosparam command="load"file="$(find pkg_name)/example.yaml"/>
<paramname="frame_id" value="$(arg frame_id)"/>
<group if="$(arguse_rviz)">
<node pkg="rviz"type="rviz" name="rviz"
args="-d $(findpkg_name)/launch/VLP16_2D.rviz"/>
</group>
</launch>
上面的launch文件首先声明了一些参数,之后include另一个launch文件,included.launch文件中的节点会按深度优先执行配置和启动;
之后该launch文件启动3个节点,前两个节点来自同一个包的同一个可执行文件,节点命名不能相同,每个节点可以进行自己的参数配置;
之后该launch文件启动rviz节点,参数传递 rviz的配置文件,不同配置用于显示不同的信息
<group>可以作为一组标签的容器,从而使该组有独立的名称空间
所以标签可使用 if/unless属性,如果条件成立则包含标签
<node>常用属性tag:
pkg:"pkg_name" 包名
type:"exe_name" 节点类型,即编译生成的可执行文件
name:"node_name" 节点名称,自定义但不能重复
args:"arg1 ..." 传递节点的参数列表
respawn:"true" 如果节点退出自动重启 default:false
output:"screen" 标准输出/标准错误输出重定向屏幕,log重定向log文件,default:log
required:"true" 如果节点退出,杀死全部launch进程
launch-prefix:"prefix arguments" 前置的参数,可以使用其他工具如gdb,valgrind等
1. sys.exit(n) 退出程序引发SystemExit异常, 可以捕获异常执行些清理工作. n默认值为0, 表示正常退出. 其他都是非正常退出. 还可以sys.exit("sorry, goodbye!"); 一般主程序中使用此退出.
2. os._exit(n), 直接退出, 不抛异常, 不执行相关清理工作. 常用在子进程的退出.
3. exit()/quit(), 跑出SystemExit异常. 一般在交互式shell中退出时使用.
os._exit() 直接退出 Python 解释器,其后的代码都不执行。
sys.exit() 引发一个 SystemExit 异常,没有捕获这个异常,会直接退出;捕获这个异常可以做一些额外的清理工作。
exit() 跟 C 语言等其他语言的 exit() 应该是一样的。
一般来说os._exit()用于在线程中退出
sys.exit() 用于在主线程中退出。
exit(0)和exit(1)
exit(0):无错误退出
exit(1):有错误退出
退出代码是告诉解释器的(或操作系统)
- launch文件的理解
- ROS中launch启动文件的理解
- launch启动文件的理解与编写
- launch启动文件的理解与编写
- ROS launch启动文件的理解与编写
- ROS的launch文件
- Launch文件的学习:
- ROS的launch文件
- 由浅到深理解ROS- launch启动文件的理解与编写
- ros launch 文件的编写
- 关于Activity Launch mode 的理解
- Launch 文件
- Launch 文件
- ROS中launch启动文件理解与编写(一)
- Ros学习笔记(十):理解 launch文件
- 本地roslaunch远程机器的launch文件
- ROS launch文件的作用和编写
- Ctrix的文件launch.ica文件无法打开的解决办法
- Python--小甲鱼学习笔记--第29课:文件读写、文件对比、文件分割、内容显示
- 弘智教育-效果图-渲染1-渲染设置,vr灯光
- 计算机视觉之OpenCV教程 ---Mat类基础(一)
- windows 下安装redis集群
- 10.5、spring boot的web应用——更改服务器
- launch文件的理解
- 51nod 1001 数组中和等于K的数对
- bzoj3876 [Ahoi2014&Jsoi2014]支线剧情(有源汇有上下界最小费用流)
- 小白的机器学习:Numpy矩阵扫盲
- FZU
- SSH 环境搭建及注解实现登录功能 DEMO
- 同一地方组建多个 ZigBee 网络
- 使用jsp javabean 和jdbc实现一个个人信息提交页面
- exec 与 exec sp_executesql 的用法及比较