【ROS学习】launch文件的使用

我们都知道在使用ROS时,启动一个节点我们可以使用rosrun启动一个节点!但是如果要启动多个节点呢?是不是得一个个都得启动!是不是感觉特别麻烦和累赘!don’t worry!ROS已经帮我们考虑好了!那就是launch 文件,我们可以在launch文件编写多个node节点,然后只需启动launch文件,就可以实现一键启动!

目录

一、launch文件快速使用

二、launch文件一些配置

1、launch根标签设置

2、launch的node标签

3、launch文件的include标签(常用)

4、launch文件的remap标签(实用)

5、launch文件的param标签

6、launch文件的rosparam

①导入参数

②导出参数

③删除参数(用的少)

7、launch文件的group标签

8、launch文件的arg标签

一、launch文件快速使用

我们以turtlesim为例进行编写launch文件!

我们如果要启动一个turtle节点,如下:

rosrun turtlesim turtlesim_node

启动键盘节点,如下:

rosrun turtlesim turtle_teleop_key

需要两步!而launch文件如下:


node pkg:功能包名

type:节点名

name:自定义名称

output:输出到屏幕

运行只需:

roslaunch launch_learning start_turtle.launch

launch_learning:功能包名

start_turtle.launch:launch文件名

【ROS学习】launch文件的使用

注:启动launch文件就不需要启动roscore了!

二、launch文件一些配置

1、launch根标签设置

当我们的launch文件已经弃用或者过时,可以添加备注,让其他使用者知道弃用情况!


在launch根标签加入 deprecated=”该launch文件已经过时,建议不使用”

【ROS学习】launch文件的使用

2、launch的node标签

①属性

  • pkg:功能包名(常用)
  • type:node节点名(常用)
  • name:自定义节点名(常用)
  • args:参数(将参数传递给节点)
  • respawn:如果节点退出,是否自动重启(true/false)
  • respawn_delay=”N”(若respawn为true,那么延迟N秒后启动节点)

【ROS学习】launch文件的使用
  • required:(true/false)若为true,如果该节点退出,将结束整个roslaunch

【ROS学习】launch文件的使用

【ROS学习】launch文件的使用
  • ns=”xxx” 添加命名空间namespace(目的是防止重名)

【ROS学习】launch文件的使用

【ROS学习】launch文件的使用

3、launch文件的include标签 (常用)

我们都知道,不可能把所以launch代码都放在一块,显得十分臃肿,因此可以采用include标签进行代码复用!

  • file=”$(find 功能包名)/xxx/xxx.launch”

4、launch文件的remap标签 (实用)

我们可以看到下图,启动turtle节点和turtle的键盘控制节点,然后启动键盘控制节点,我们发现新启动的键盘控制节点并不能控制小乌龟,原因在于话题名称不对应,一个是/cmd_vel 另一个是/turtle1/cmd_vel ,如果想要新启动的键盘控制节点控制小乌龟移动,那就可以采用remap进行话题重命名!

【ROS学习】launch文件的使用

【ROS学习】launch文件的使用

5、launch文件的param标签


param放置的外置的区别是后者添加了命名空间

【ROS学习】launch文件的使用

【ROS学习】launch文件的使用

6、launch文件的rosparam


①导入参数

有点像param标签,但是区别在于rosparam可以导入yaml文件一次性导入参数!


【ROS学习】launch文件的使用

【ROS学习】launch文件的使用

②导出参数

③删除参数 (用的少)

7、launch文件的group标签

我们都知道如果启动两个相同的节点,后一个节点会把前一个节点干掉!但如何两个都启动呢!那就需要使用group这个标签了!


我们可以发现启动了两个小乌龟界面,话题也更新了两个不一样的命名空间的话题!这样就可以两个相同的节点同时启动了!

【ROS学习】launch文件的使用

8、launch文件的arg标签


如果在启动launch文件没有设置参数的话,就默认使用default的参数值

【ROS学习】launch文件的使用

也可以在启动launch文件时设置参数,如下:

roslaunch launch_learning arg.launch car_length:=0.9 car_width:=0.1 car_height:=0.99

【ROS学习】launch文件的使用

【ROS学习】launch文件的使用

Original: https://blog.csdn.net/qq_42108414/article/details/123520143
Author: Q小鑫
Title: 【ROS学习】launch文件的使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/559106/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球