文章目录
- 前言
- 第一部分:ROS中的launch
- 1.介绍
- 2.XML格式
- <launch>
- <node>
- <param>
- 3.使用
- 第二部分:ROS2中的launch
- 1.介绍
- 2.Python格式
- LaunchDescription
- Node
- DeclareLaunchArgument
- IncludeLaunchDescription
- GroupAction
- 3.使用
- 第三部分:区别
- 1.编程语言
- 2.参数和变量
- 3.动作和组
- 4.命名空间
- 5.重映射
- 总结
前言
以上就是今天要讲的内容,本文简单介绍了ROS和ROS2中的launch文件及其区别。
第一部分:ROS中的launch
1.介绍
ROS中的Launch文件
在ROS中,launch文件通常使用XML格式编写,用于启动和管理多个节点以及参数管理。以下是一些ROS中launch文件的关键点:
2.XML格式
: launch文件的根元素。
: 用于启动一个节点,可以包含name, pkg, type, args, output, respawn, required等属性。
: 用于**设置全局参数**,如name和value。 ### : **定义变量**,可以在launch文件中使用。 ### : **包含另一个launch文件。** ### : 将**节点组织在一起,可以设置命名空间和条件属性。** ### : **重映射ROS的话题和服务。** ### : 用于**加载YAML文件中的参数。**
示例:
<launch><node name="talker" pkg="rospy_tutorials" type="talker" /><node name="listener" pkg="rospy_tutorials" type="listener" /><param name="param_name" value="param_value" /><remap from="original_topic" to="new_topic" />
</launch>
3.使用
通过以下命令启动launch文件:
roslaunch package_name launch_file.launch
第二部分:ROS2中的launch
1.介绍
ROS2中的Launch文件
ROS2对launch文件系统进行了重大改进,包括对Python的支持以及一些新的概念。以下是ROS2中launch文件的关键点:
Python格式
ROS2推荐使用Python来编写launch文件,因为Python提供了更多的灵活性和编程能力。
2.Python格式
LaunchDescription
LaunchDescription: launch描述的入口点。
Node
Node: 启动一个节点。
DeclareLaunchArgument
DeclareLaunchArgument: 声明一个可以在命令行或另一个launch文件中设置的参数。
IncludeLaunchDescription
IncludeLaunchDescription: 包含另一个launch文件。
GroupAction
GroupAction: 将动作组合在一起,可以设置命名空间和条件。
示例
from launch import LaunchDescription
from launch_ros.actions import Nodedef generate_launch_description():return LaunchDescription([Node(package='demo_nodes_cpp',executable='talker',name='talker',output='screen',),Node(package='demo_nodes_cpp',executable='listener',name='listener',output='screen',),])
3.使用
通过以下命令启动launch文件:
ros2 launch package_name launch_file.py
第三部分:区别
1.编程语言
编程语言: ROS使用XML,而ROS2推荐使用Python。
2.参数和变量
参数和变量: ROS使用和,而ROS2使用LaunchConfiguration和DeclareLaunchArgument。
3.动作和组
动作和组: ROS2引入了Action和GroupAction的概念,这提供了更多的灵活性和控制。
4.命名空间
命名空间: ROS2中,节点和参数的命名空间更加灵活和明确。
5.重映射
重映射: ROS2的launch文件使用Python字典来处理重映射。
总的来说,ROS2的launch文件系统提供了更多的功能和灵活性,并且更加符合现代编程实践。然而,这两个版本的launch文件都允许用户自动化和简化节点的启动过程。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了ROS和ROS2中的launch文件及其区别。