ROS入门学习笔记|launch文件使用方法

环境:Ubuntu18.04,ROS版本:melodic
launch文件:通过xml文件实现多节点的配置和启动,可以自动启动ROS master,不用再输入roscore指令

文章目录

  • 一、launch文件语法
    • 1.语法
    • 2.示例
  • 二、参数设置
    • 1.< param >/< rosparam >和< arg >
    • 2.示例
    • 3.嵌套和重映射
    • 4.示例
  • 总结


一、launch文件语法

1.语法

launch文件中的根元素采用标签定义
:启动节点
常用的包括pkg、type、name等
pkg:节点功能包名称
type:节点的可执行文件名称
name:节点运行时的名称
例如:
此外还有output、respawn、required、ns、args
output:控制节点打印信息到终端
respawn:重启节点
required:要求某个节点启动
ns:namespace,避免命名冲突
args:给节点输入参数

2.示例

simple.launch文件:


    
     

这是我们之前学习的话题发布与订阅,现在使用launch文件启动两个节点来实现,前提是需要按照 ROS入门学习笔记|话题发布与订阅 运行成功,才能用launch文件来调用它。
首先在sor_ws工作空间src目录下新创建一个叫做learning_launch的功能包,因为launch文件主要是调用其他功能包,所以指令后面不需要跟依赖

cd ~/sor_ws/src
catkin_create_pkg learning_launch

在这里插入图片描述
再在learning_launch中创建一个文件夹命名为launch,拷贝simple.launch到文件夹下
ROS入门学习笔记|launch文件使用方法_第1张图片
ROS入门学习笔记|launch文件使用方法_第2张图片
编译工作空间

cd ~/sor_ws
catkin_make

ROS入门学习笔记|launch文件使用方法_第3张图片
编译成功

启动launch文件

source ~/sor_ws/devel/setup.bash
roslaunch learning_launch simple.launch

在这里插入图片描述
ROS入门学习笔记|launch文件使用方法_第4张图片

二、参数设置

1.< param >/< rosparam >和< arg >

/
设置ROS系统运行参数中的单个参数,保存在参数服务器中
例如:
把多个参数放到param.yaml,加载参数文件中的多个参数
例如:
主要区别是param只加载一个参数,rosparam可以加载多个参数
:给launch文件内部设置参数,仅限于launch文件使用

例如:

2.示例

使用launch文件运行两个海龟跟随实验
ROS入门学习笔记|tf坐标系广播与监听的编程实现
首先需要按照这篇文章中的步骤运行成功,才能使用launch指令

start_tf_demo_c++.launch文件
启动海龟仿真器

启动键盘控制节点,用上下左右键控制海龟移动

启动tf广播



启动tf监听,

完整代码如下



    
    
    

    
    

    

  
roslaunch learning_launch start_tf_demo_c++.launch

拷贝start_tf_demo_c++.launch到文件夹下
启动launch文件

source ~/sor_ws/devel/setup.bash
roslaunch learning_launch start_tf_demo_c++.launch

ROS入门学习笔记|launch文件使用方法_第5张图片

3.嵌套和重映射

嵌套::包含其他launch文件,类似C语言中的头文件
例如:
重映射::重映射ROS计算图资源的命名,from:原命名to:映射后的命名
例如:

4.示例

turtlesim_remap.launch文件



	

    
		
	


拷贝turtlesim_remap.launch到文件夹下
启动launch文件

source ~/sor_ws/devel/setup.bash
roslaunch learning_launch turtlesim_remap.launch

ROS入门学习笔记|launch文件使用方法_第6张图片
启动后可以看到出现了海龟仿真器和INFO,是因为include中包含了simple.launch文件
打开一个新终端,输入rostopic list(注意不要关闭之前的终端,否则会报错,ERROR: Unable to communicate with master!),可以看到
已经让"/cmd_vel"变成"/cmd_vel"了
ROS入门学习笔记|launch文件使用方法_第7张图片


总结

launch文件的作用主要是将多个node节点整合到一个文件,再启动文件就可以运行程序,而不需要打开很多个终端。
文章仅供学习使用,学习资料来自:【古月居】古月·ROS入门21讲

你可能感兴趣的:(ROS入门学习,ubuntu,c++)