ros中launch主要是用于将rosrun 的包进行一个集成从而不需要run这么多结点
launch文件内的语法为xml
<launch>
\ <machine>
\ <node>
\ …,这些叫做标签。
name
\ address
\ type
\ …,这些叫做属性。
1.roslaunch 的一般用法是
<launch>
<node name="aubo" pkg="aubo_simulation" type="simulate" output="screen">
<launch/>
node name 结点运行的时候的名字name后面跟的字符串 跟程序里面运行的ros::init(argc,argv,"node_name")是同一个
pkg是包的名字
type是可执行文件的名称
output是消息输出方式
2.<param>
/<rosparam>
设置ROS系统运行中的参数,存储在参数服务器中。<param name="output_frame" value="odom"/>
其中:name为参数名,value是参数值
param 指令可以设置单个参数,而rosparam 指令可以一次性操作多个文件。
加载参数文件中的多个参数:
<rosparam file="params.yaml" command="load" ns="params"/>
参数存放在.yaml文件中,ns 是namespace的简写。
除了param可以设置ros参数,arg指令也是可以的
但是arg只能操作launch文件内部的局部变量,仅限于launch文件使用
<arg name="name" value="value"/>
arg作为launch内部参数可以在launch文件初始化时使用
<launch>
<param name="foo" value="arg arg-name"/>
<node name="aubo" pkg="aubo_simulation" type="arg arg-name"/>
<launch/>
重映射remap 主要是将发布的话题进行重新命名
<remap from ="/turtlebot/cmd_vel" to="/cmd_vel"/>