launch文件:脚本,可以把很多节点的启动写进去
Launch文件语法
1、<launch>
launch文件中的根元素采用<launch>
标签定义
2、<node>
• pkg:节点所在的功能包名称
• type:节点的可执行文件名称
• name:节点运行时的名称,运行同一个功能包节点,名字就可以不一样了
• output(是否打印) 、respawn(启动运行挂掉,是否重启) 、required(是否启动) 、ns(命名空间)、args
3、<param> / <rosparam>
设置ROS系统运行中的参数,存储在参数服务器中。 <param name="output_frame" value="odom"/>
• name:参数名
• value:参数值
加载参数文件中的多个参数:
<rosparam file="params.yaml" command="load" ns=“params" />
<arg>
launch文件内部的局部变量,仅限于launch文件使用
<arg name="arg-name" default="arg-value" />
• name:参数名
• value:参数值
调用
: <param name="foo" value="$(arg arg-name)" />
<node name="node" pkg="package" type="type " args="$(arg arg-name)" />
4、重映射
<remap >
重映射ROS计算图资源的命名。
• from:原命名
• to:映射之后的命名
5、嵌套
<include>
包含其他launch文件,类似C语言中的头文件包含。
<include file="$(dirname)/other.launch" />
• file:包含的其他launch文件路径
Launch示例
示例一:
catkin_create_pkg learning_launch
(不需要依赖什么东西)
创建一个launch文件夹
将simple.launch复制进去
catkin_make
roslaunch learning_launch simple.launch
示例二:
将config文件夹复制进来
param.yaml
A: 123
B: "hello"
group:
C: 456
D: "hello"
turtlesim_parameter_config.launch
param写在节点外和节点内的区别:
节点内的会自动加上节点的名字(看下图)
roslaunch learning_launch turtlesim_parameter_config.launch
查看文件刚加载进来的参数
rosparam list
对比文件查看A、B、C、D的表示
示例三:
start_tf_demo_c++.launch
roslaunch learning_launch start_tf_demo_c++.launch
(键盘使海龟移动,另一只跟随)
示例四:
turtlesim_remap.launch
“/turtle1/cmd_vel” 重命名为"/cmd_vel"
roslaunch learning_launch turtlesim_remap.launch
查看话题列表
rostopic pub /cmd_vel geometry_msgs/Twist "linear:
x: 1.0
y: 0.0
z: 0.0
按Tab键自动补全