介绍ROS 2launch [待校准@7541]

Goal目标: Use使用命令行工具一次launch多个节点。 [待校准@7542]

Tutorial教程级别: Beginner初学者 [待校准@7543]

时间: 5分钟 [Alyssa@6714]

背景

在大多数入门教程中,您一直在为运行的每个新节点打开新的终端。随着您创建越来越多的节点同时运行的更复杂的系统,打开终端和重新输入配置细节变得乏味。 [待校准@7544]

[需手动修复的语法]Launch文件允许您同时启动和配置许多包含ROS 2节点的可执行文件。 [待校准@7545]

使用 ros2 launch 命令运行单个launch文件将立即启动整个系统-所有节点及其配置。 [待校准@7546]

先决条件

在开始这些教程之前,请按照ROS 2 安装 页面上的说明安装ROS 2。 [待校准@7547]

本教程中使用的命令是假设你跟着二进制包安装指南为操作系统完成ros2的安装 (Linux系统下安装Debian包)。如果你由源文件编译安装你也可以跟着操作,但设置文件的路径可能会不同。您也无法使用 sudo apt install ros-<distro>-<package> 命令 (常用初学者级别教程) ,如果你是从源文件安装。 [Alyssa@7093]

如果您使用的是Linux,但还不熟悉外壳, this tutorial 将会有所帮助。 [待校准@7548]

任务

运行Launch文件 [待校准@7549]

打开新终端并运行: [待校准@7339]

ros2 launch turtlesim multisim.launch.py

此命令将运行以下launch文件: [待校准@7550]

# turtlesim/launch/multisim.launch.py

from launch import LaunchDescription
import launch_ros.actions

def generate_launch_description():
    return LaunchDescription([
        launch_ros.actions.Node(
            namespace= "turtlesim1", package='turtlesim', executable='turtlesim_node', output='screen'),
        launch_ros.actions.Node(
            namespace= "turtlesim2", package='turtlesim', executable='turtlesim_node', output='screen'),
    ])

注解

上面的launch文件是用Python编写的,但是您也可以使用XML和YAML创建launch文件。您可以在以下文档中看到这些不同的ROS 2launch格式的比较: doc:'/操作指南/Launch文件不同格式'。 [待校准@7551]

这将运行两个turtlesim节点: [待校准@7552]

../../_images/turtlesim_multisim.png

现在,不要担心这个launch文件的内容。你可以在 ROS 2 launch tutorials 找到更多关于ROS 2launch的信息。 [待校准@7553]

(可选) 控制Turtlesim节点 [待校准@7554]

现在这些节点正在运行,您可以像其他任何ROS 2节点一样控制它们。例如,您可以通过打开两个附加终端并运行以下命令,使海龟向相反的方向行驶: [待校准@7555]

在第二个终端: [待校准@7556]

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}}"

在第三个终端: [待校准@7557]

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}}"

运行这些命令后,您应该会看到如下内容: [待校准@7558]

../../_images/turtlesim_multisim_spin.png

总结

意义你've done so far is that you'已经运行两个turtlesim节点一个命令。一旦你学会编写你自己的launch文件,你将能够使用 ros2 launch 命令以类似的方式运行多个节点并设置它们的配置。 [待校准@7559]

有关ROS 2launch文件的更多教程,请参见 main launch file tutorial page[待校准@7560]

下一步

在下一个教程中: doc:'//Ros2bag/记录和回放数据',您将了解另一个有用的工具, ros2bag[待校准@7561]