启动节点

目标 使用命令行工具一次启动多个节点。

教程级别: 初学者

时间 5 分钟

背景介绍

在大多数入门教程中,每运行一个新节点,都要打开新的终端。随着创建的系统越来越复杂,同时运行的节点也越来越多,打开终端并重新输入配置细节就变得非常繁琐。

通过启动文件,可以同时启动和配置多个包含 ROS 2 节点的可执行文件。

使用 玫瑰2 启动 命令将一次性启动整个系统,包括所有节点及其配置。

先决条件

在开始这些教程之前,请按照 ROS 2 上的说明安装 ROS 2。 安装 page.

本教程中使用的命令假定你遵循了操作系统的二进制软件包安装指南(Linux 为 Debian 软件包)。如果你是从源代码构建的,你仍然可以继续学习,但安装文件的路径可能会有所不同。您也无法使用 苏都 适切 安装 ros-<distro>-<package>; 命令(在初级教程中经常使用)。

如果您正在使用 Linux,而且还不熟悉 shell、 本教程 会有帮助。

任务

运行启动文件

打开一个新终端并运行

ros2 launch turtlesim multisim.launch.py

该命令将运行以下启动文件:

# turtlesim/launch/multisim.launch.py

 启动 舶来品 启动说明
舶来品 launch_ros.actions

捍卫 生成发射描述():
    返回 启动说明([
        发射.行动.节点(
            命名空间= "turtlesim1";, 包装='turtlesim';, 可执行='turtlesim_node', 产量='屏幕';),
        发射.行动.节点(
            命名空间= "turtlesim2";, 包装='turtlesim';, 可执行='turtlesim_node', 产量='屏幕';),
    ])

备注

上面的启动文件是用 Python 编写的,但你也可以使用 XML 和 YAML 来创建启动文件。关于这些不同的 ROS 2 启动格式的比较,请参见 使用 Python、XML 和 YAML 编写 ROS 2 启动文件.

这将运行两个 turtlesim 节点:

././././_images/turtlesim_multisim.png

现在,不用担心启动文件的内容。有关 ROS 2 启动的更多信息,请参阅 ROS 2 启动教程.

(可选)控制 Turtlesim 节点

现在这些节点已经运行,你可以像控制其他 ROS 2 节点一样控制它们。例如,您可以打开另外两个终端并运行以下命令,让乌龟朝相反的方向行驶:

在第二终端:

ros2 topic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y:0.0, z: 0.0}, angular:{x: 0.0, y:0.0, z: 1.8}}";

在第三航站楼

ros2 topic pub /turtlesim2/turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y:0.0, z: 0.0}, angular:{x: 0.0, y:0.0, z: -1.8}}";

运行这些命令后,您应该会看到类似下面的内容:

././././_images/turtlesim_multisim_spin.png

摘要

你目前所做工作的意义在于,你用一条命令运行了两个海龟模拟节点。一旦你学会了编写自己的启动文件,你就能以类似的方式运行多个节点,并设置它们的配置。 玫瑰2 启动 指挥。

有关 ROS 2 启动文件的更多教程,请参阅 主启动文件教程页面.

下一步工作

在下一个教程中 记录和播放数据您将了解到另一个有用的工具、 玫瑰2 背包.