启动多个节点

79 阅读1分钟

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

背景

当创建越来越多节点同时运行的更复杂的系统时,不必每次都重新打开终端和重新输入配置细节使其会变得乏味。 启动文件允许同时启动和配置包含ROS 2节点的许多可执行文件。

使用ros2-launch命令运行一个启动文件将同时启动整个系统——所有节点及其配置。

开始启动多个节点

运行启动文件

打开一个新的终端并运行:

ros2 launch turtlesim multisim.launch.py

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

# 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'),
    ])

image.png

(可选)控制Turtlesim节点

现在这些节点正在运行,可以像控制任何其他ROS2节点一样控制它们。例如,通过打开两个额外的终端并运行以下命令,可以使乌龟朝相反的方向行驶:

在第二个终端中:

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

image.png

在第三个终端中:

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

image.png

总结

到目前为止所做的工作的意义在于,已经用一个命令运行了两个turtlesim节点。一旦学会了编写自己的启动文件,就可以用ros2启动命令以类似的方式运行多个节点并设置它们的配置。