乐于分享
好东西不私藏

机器人系统——ROS2文档—启动节点

机器人系统——ROS2文档—启动节点

目标:使用一个命令行工具同时启动多个节点。教程级别:入门级时间: 5 分钟

目录

  • 背景
  • 前置条件
  • 任务
    • 运行启动文件
    • (可选)控制 Turtlesim 节点
  • 总结
  • 后续步骤

本教程需要使用的命令如下:

$ ros2 launch turtlesim multisim.launch.py
$ 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}}"

背景

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

启动文件允许你同时启动和配置多个包含 ROS 2 节点的可执行文件。

使用ros2 launch命令运行一个启动文件,就可以一次性启动你的整个系统——包括所有节点及其配置

前置条件

在开始这些教程之前,请按照 ROS 2 安装页面上的说明安装 ROS 2。本教程中使用的命令假设你按照二进制包安装指南(Linux  deb 包)进行安装。如果你从源码构建,也可以继续学习,但设置文件的路径可能会不同。如果你从源码安装,也将无法使用sudo apt installros-<distro>-<package>命令(在初级教程中频繁使用)。

如果你使用的是 Linux 并且不熟悉 shell本教程会有所帮助。和往常一样,别忘了在打开的每个新终端中加载 ROS 2 环境

任务

运行启动文件,打开一个新终端并运行:

$ ros2 launch turtlesim 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'),
])

注意:上面的启动文件是用 Python 编写的,但你也可以使用 XML  YAML 来创建启动文件。你可以在使用 XMLYAML Python 编写 ROS 2 启动文件中,查看这些不同 ROS 2 启动格式的对比。

运行两个 turtlesim 节点:

现在,不必担心这个启动文件的内容。可以在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}}"

运行这些命令后,你应该会看到类似下面的结果:

总结

到目前为止你所做的事情的重要意义在于:你只用一个命令就运行了两个 turtlesim 节点。一旦你学会编写自己的启动文件,你就可以用类似的方式,通过ros2 launch命令运行多个节点并设置它们的配置。

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

后续步骤

在下一个教程记录和回放数据中,你将学习另一个有用的工具:ros2 bag

本文档完整翻译自 ROS 2 Lyrical 官方文档,仅用于学习交流。