ROS 2 Iron 教程 第一章 CLI Tools 第九节 启动节点

前言

本系列文章是由笔者翻译自ROS 2 官方教程。笔者水平有限,如有错误,还请读者指正。
本节教程中部分代码为 Liunx下,请使用其他操作系统的读者前往原文查看。

背景

在先前的大多数介绍性教程中,我们几乎一直都在终端中运行节点。但当我们创建拥有更多节点同时运行的系统时,打开终端并重复输入配置信息将会变得冗杂。

启动文件允许我们同时配置并启动包含 ROS 2 节点的可执行文件。

使用ros2 launch命令运行一个启动文件将会启动整个系统,包括所有的节点以及它们的配置文件。

先决条件

在开始跟随后续教程之前,确保你的 ROS 2 已经安装完成,详见 ROS 2 安装教程页面。

后续教程中使用的命令假定你安装了二进制软件包。如果你使用源代码安装,你仍可以继续,但启动文件的路径可能有所不同。如果你从源代码安装,你将无法使用sudo apt install ros-<distro>-<package> 命令(这在初学者教程中会被频繁使用)。

任务

Running a Launch File (运行启动文件)

打开一个新终端并运行:

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

注意:
上方的启动文件是由 Python 编写的,但你也可以使用 XML 和 YAML 来编写启动文件。有关于它们的差别,详见Using Python, XML, and YAML for ROS 2 Launch Files

它将会运行两个 turtlesim 节点:

在这里插入图片描述

目前你可以不必关心启动文件的内容。关于启动文件的更多信息,详见:[ROS 2 launch tutorials](https://docs.ros.org/en/iron/Tutorials/Intermediate/Launch/Launch-Main.html)。

Control the Turtlesim Nodes (可选的 - 控制海龟节点)

既然这两个节点正在运行,你可以像其他 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命令配置并运行多个节点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值