文章目录
- 0、引言
- 1、Launch文件语法
- 2、Launch示例
0、引言
笔者因研究课题涉及ROS开发,学习了古月居出品的ROS入门21讲,为巩固launch的知识,本文将ROS的launch启动文件制作一讲内容进行总结。launch文件通过XML文件实现多节点的配置和启动,可自动启动ROS Master,即自动运行roscore命令。
1、Launch文件语法
(1)<launch>节点;
launch文件中的根元素采用<launch>;标签定义。
(2)<node> 节点;
启动节点
<node pkg="package-name" type="executable-name" name="node-name" />;
pkg: 节点所在的功能包名称
type: 节点的可执行文件名称
name: 节点运行时的名称
**可选属性↓**
output: 指定输出方式,要在终端显示日志信息可用out="screen"
respawn: 当节点异常停止时,是否重启
required: 指定节点是否一定要启动
na: 命名空间
args: launch文件中的参数
(3)<param>节点;
设置ROS系统运行中的参数,存储在参数服务器中
<param name="output_frame" value="odom"/>;
name: 参数名
value: 参数值
(4)<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)"/>;
(5)<remap>节点;
重映射ROS计算图资源的命名
<remap from="/turtlebot/cmd_vel" to="/cmd_vel"/>;
from: 原命名
to: 映射之后的命名
更多标签可参见: http://wiki.ros.org/roslaunch/XML
2、Launch示例
①创建功能包;
cd ~/catkin_ws/src
catkin_create_pkg learning_launch roscpp rospy tf turtlesim
②发布者和订阅者代码见:ROS开发之如何使用发布者、订阅者和话题消息?;
③创建launch文件;
在新建的功能包下创建launch文件夹,并在该文件夹中打开新终端,并键入:gedit simple.launch,输入以下代码并保存。
<launch>;
<node pkg="learning_topic" type="person_subscriber" name="talker" output="screen" />;
<node pkg="learning_topic" type="person_publisher" name="listener" output="screen" />;
</launch>;
④编译并运行。
cd ~/catkin_ws
catkin_make
或
catkin_make_isolated
source devel/setup.bash
或
source devel_isolated/setup.bash
roslaunch learning_launch simple.launch
参考资料:
[1] 古月居GYH. 【古月居】古月·ROS入门21讲 | 一学就会的ROS机器人入门教程; 2019-07-16 [accessed 2023-04-11].
[2] ros官网. roslaunch/XML; [accessed 2023-04-11].
[3] cacrle. ROS开发之如何使用发布者、订阅者和话题消息?; 2023-04-09 [accessed 2023-04-11].