Launching nodes:启动节点

简介: Launching nodes:启动节点

@[toc]
参考官方文档:Launching nodes

背景介绍

在大多数介绍性教程中,你一直在为你运行的每个新节点打开新终端。随着你创建的系统越来越复杂,同时运行的节点越来越多,打开终端和重新输入配置细节变得很乏味。

启动文件允许你同时启动和配置一些包含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'),
    ])
上面的启动文件是用Python写的,但你也可以用XML和YAML来创建启动文件。你可以在 Using Python, XML, and YAML for ROS 2 Launch Files中看到这些不同的ROS 2启动格式的比较。

这将运行两个turtlesim节点:
image.png
现在,不要担心这个启动文件的内容。你可以在ROS 2 launch tutorials中找到更多关于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}}"

效果如下:
image.png
关于ROS 2启动文件的更多教程,请参见启动文件教程主页面main launch file tutorial page

目录
相关文章
|
Kubernetes 容器
k8s集群—node节点的删除与添加
k8s集群—node节点的删除与添加
503 0
|
19天前
|
Docker 容器
|
3月前
|
存储 缓存 监控
|
3月前
|
存储 负载均衡 算法
|
3月前
|
存储 缓存 监控
|
Kubernetes 网络协议 API
node节点加入k8s集群时报错:no such host
node节点加入k8s集群时报错:no such host
336 0
|
存储 弹性计算 资源调度
阿里云E-MapReduce节点优雅下线-基于Yarn Node Labels特性
背景:阿里云E-MapReduce集群(简称EMR集群)部分节点需要下线迁移,但集群资源常年跑满,诉求是节点下线迁移过程中不影响任一任务执行。 本次方案基于Yarn Node Labels的特性进行资源隔离后下线。 下期对官网Graceful Decommission of YARN Nodes的方案进行验证,参考:https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/GracefulDecommission.html。
|
Kubernetes 容器
k8s集群添加删除node节点
k8s集群添加删除node节点
206 0
|
Kubernetes Perl 容器
node节点pod无法启动/节点删除网络重置“cni0“ already has an IP address different from
node节点pod无法启动/节点删除网络重置“cni0“ already has an IP address different from
471 0
|
Perl
k8s_node节点NotReady重新加入集群
k8s_node节点NotReady重新加入集群
307 0