启动 Launch
ROS 2 启动文件允许您同时启动和配置多个包含 ROS 2 节点的可执行文件。
创建启动文件。
学习如何创建一个启动文件,可以一次性启动节点及其配置。
启动和监控多个节点。
获取如何启动文件工作的更高级概述。
使用替代品。
使用替代品在描述可重复使用的启动文件时提供更大的灵活性。
使用事件处理程序。
使用事件处理程序来监控进程状态或定义一组复杂的规则,这些规则可用于动态修改启动文件。
管理大型项目。
为大型项目结构化启动文件,以便在不同情况下尽可能重用。查看不同启动工具的使用示例,如参数、YAML 文件、重映射、命名空间、默认参数和 RViz 配置。
便条
如果您来自 ROS 1,您可以使用 ROS 启动迁移指南来帮助您将启动文件迁移到 ROS 2。
目标:创建一个启动文件来运行一个复杂的 ROS 2 系统。
教程级别:中级
时间:10 分钟
目录
先决条件
背景
任务
1. 设置
2. 编写启动文件
3 ros2 启动
4 使用 rqt_graph 内省系统
摘要
先决条件
本教程使用 rqt_graph 和 turtlesim 包。https://docs.ros.org/en/jazzy/Tutorials/Beginner-CLI-Tools/Introducing-Turtlesim/Introducing-Turtlesim.html
您还需要使用您喜欢的文本编辑器。
始终不要忘记在您打开的每个新终端中获取 ROS 2 的源。https://docs.ros.org/en/jazzy/Tutorials/Beginner-CLI-Tools/Configuring-ROS2-Environment.html
背景
ROS 2 中的启动系统负责帮助用户描述其系统的配置,然后按照描述执行。系统配置包括运行哪些程序,在哪里运行它们,传递给它们什么参数,以及 ROS 特定的约定,这些约定通过为系统中的每个组件提供不同的配置,使得重用组件变得容易。它还负责监控启动的进程的状态,并报告或/和对这些进程状态的变化做出反应。
使用 Python、XML 或 YAML 编写的启动文件可以启动和停止不同的节点,以及触发和响应各种事件。有关不同格式的描述,请参见 ROS 2 启动文件的 Python、XML 和 YAML 使用方法https://docs.ros.org/en/jazzy/How-To-Guides/Launch-file-different-formats.html 。提供此框架的软件包是 launch_ros
,它下面使用的是非 ROS 特定的 launch
框架。
设计文档https://design.ros2.org/articles/roslaunch.html 详细说明了 ROS 2 启动系统设计的目标(目前并非所有功能都可用)。
任务
1. 设置
创建一个新目录来存储您的启动文件:
mkdir launch
编写启动文件
让我们使用 turtlesim
包及其可执行文件,一起创建一个 ROS 2 启动文件。如上所述,这可以是 Python、XML 或 YAML。
将完整代码复制并粘贴到 launch/turtlesim_mimic_launch.py
文件中:
# 导入LaunchDescription模块,用于描述启动配置
from launch import La