ROS | launch启动文件的使用

ROS | launch启动文件的使用

  • 1. launch文件功能
  • 2. launch文件语法
    • 2.1 标签
    • 2.2 标签
    • 2.3 标签
    • 2.4 标签
    • 2.5 标签
    • 2.6 标签
    • 2.7 标签
  • 3. launch文件使用
    • 3.1 创建launch文件
    • 3.2 编译launch文件
    • 3.3 启动launch文件
    • 3.4 节点通信可视化

1. launch文件功能

之前运行ROS节点都需要先使用roscore命令启动ROS Master,并且单独rosrun命令启动各个ROS节点,而使用launch文件可以大大地简化这些步骤,只需要一个roslaunch命令,就可以同时启动ROS Master和多个节点程序。

2. launch文件语法

2.1 标签

是launch文件的文件标签,是必须要有的。其中表示文件的起始,表示文件的结束。
例如:


    
    

2.2 标签

是节点标签,用来启动某个ROS节点,其中包含了如下几个主要的属性。

  • pkg:表示节点所在的功能包名称,使用方式如pkg = “tf_lidar_task”;
  • type:表示节点的可执行文件名称,使用方式如type = “lidar_broadcaster”;
  • name:表示该节点在ROS系统中运行时的节点名,与节点编程时ros::init(argc, argv, “robot_tf_publisher”)中命名的节点名是同一概念,如果两者不同,launch文件中定义的name将覆盖程序中命名的节点名,可理解为重命名。因为ROS中节点名称是唯一的,name的使用是为了重复利用节点,比如发布广播t1和发布广播t2都使用发布广播节点,但运行时名称不同。使用方式如name = “broadcaster_t1”;
  • output:用于控制某个节点是否将日志信息打印在终端界面上,默认输出到日志文档,使用方式如output = “screen”;
  • respawn:表示在该节点突然停止时,是否会自动重启,默认为false,使用方式如respawn = “true”;
  • required:表示该节点是否必须要启动,当该节点终止时,launch文件中的其他节点也被终止,使用方式如required = “true”;
  • ns:表示namespace(命名空间),为节点内的相对名称添加命名空间前缀,避免命名冲突,使用方式如ns = “foo”;
  • args:表示节点需要的输入参数,类似于之前ROS服务编程中实现整数加法时rosrun命令后面所跟着的参数,使用方式为args = “10 20”;

2.3 标签

用于设置和修改ROS系统运行中的单个参数,存储在参数服务器中,类似于修改变量,例如可以设置turtlesim海龟界面背景的RGB值。使用方式如:


其中,name是参数名,value是参数值。

2.4 标签

用于加载参数文件中的多个参数,可以将参数文件中的所有参数都保存到参数服务器中。使用方式如:


其中,command属性可以设置为加载command=“load”,或设置为卸载command=“delete”。

2.5 标签

虽然都用于参数设置,但的区别在于它表示launch文件内部的局部变量,存储在launch文件中并且仅限于launch文件中使用。使用方式如:



其中name是参数名,value是参数值。另外还可以为参数设置默认值。


2.6 标签

表示重映射ROS计算图资源的命名,可近似理解为重命名,使用方式如:


其中from为原命名,to为映射之后的命名。

2.7 标签

用于包含其他launch文件,类似于C语言中的头文件包含。使用方式如:


其中file是包含的其他launch文件路径。

更多资料可参考:http://wiki.ros.org/roslaunch/XML

3. launch文件使用

3.1 创建launch文件

以TF变换的功能包为例,在tf_lidar_task工作空间中创建一个空文件夹,命名为launch。
ROS | launch启动文件的使用_第1张图片

在launch文件夹中创建一个空文件,命名为tf_lidar.launch。
ROS | launch启动文件的使用_第2张图片

3.2 编译launch文件

在/ROS_ws文件夹路径下打开一个新的终端,输入以下代码进行编译。

$ catkin_make

ROS | launch启动文件的使用_第3张图片

3.3 启动launch文件

在/ROS_ws路径下配置环境,再输入以下代码进行编译。

$ roslaunch tf_lidar_task tf_lidar.launch

ROS | launch启动文件的使用_第4张图片

3.4 节点通信可视化

打开一个新的终端,输入以下代码。

$ rqt_graph

可以看到广播器已经开始发布TF变换关系到监听者节点,并且节点名也按照launch文件中重新命名。
ROS | launch启动文件的使用_第5张图片

你可能感兴趣的:(ROS机器人操作系统,经验分享)