【ROS2指南-19】使用Launch启动/监控多个节点

这篇具有很好参考价值的文章主要介绍了【ROS2指南-19】使用Launch启动/监控多个节点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ROS 2 启动系统

ROS 2 中的启动系统负责帮助用户描述他们系统的配置,然后按照描述执行。系统的配置包括要运行的程序、运行它们的位置、传递给它们的参数以及 ROS 特定约定,这些约定通过为它们提供不同的配置,使得在整个系统中重用组件变得容易。它还负责监视已启动流程的状态,并报告和/或响应这些流程状态的变化。

用 Python 编写的启动文件可以启动和停止不同的节点以及触发和处理各种事件。提供此框架的包是launch_ros,它使用下面的非 ROS 特定launch框架。

设计文档详细说明了 ROS 2 的启动系统的设计目标(目前并非所有功能都可用)。

编写 ROS 2 启动文件

如果您还没有,请务必阅读有关如何创建 ROS 2 程序包的快速入门教程。在 ROS 2 中创建启动文件的一种方法是使用 Python 文件,该文件由 ROS 2 CLI 工具执行,. 我们首先在我们的工作区中使用创建一个 ROS 2 包并创建一个新目录。ros2 launchros2 pkg create <pkg-name> --dependencies [deps]launch

Python 包

对于 Python 包,您的目录应如下所示:

src/
    my_package/
        launch/
        setup.py
        setup.cfg
        package.xml

为了让 colcon 找到启动文件,我们需要data_files使用setup.

在我们的setup.py文件中:

import os
from glob import glob
from setuptools import setup

package_name = 'my_package'

setup(
    # Other parameters ...
    data_files=[
        # ... Other data files
        # Include all launch files. This is the most important line here!
        (os.path.join('share', package_name), glob('launch/*.launch.py'))
    ]
)

C++ 包

如果您正在创建 C++ 包,我们只会CMakeLists.txt通过添加以下内容来调整文件:

# Install launch files.
install(DIRECTORY
  launch
  DESTINATION share/${PROJECT_NAME}/
)

到文件末尾(但在 ament_package() 之前)。

编写启动文件

在您的启动目录中,创建一个新的启动文件,后缀为.launch.py. 例如my_script.launch.py

.launch.py不是特别要求作为启动文件的文件后缀。另一个流行的选项是_launch.py,用于初学者级别的启动文件教程。如果您确实更改了后缀,请确保相应地调整文件glob()中的参数setup.py

您的启动文件应该定义generate_launch_description()which returns alaunch.LaunchDescription()以供动词使用。ros2 launch

import launch
import launch.actions
import launch.substitutions
import launch_ros.actions


def generate_launch_description():
    return launch.LaunchDescription([
        launch.actions.DeclareLaunchArgument(
            'node_prefix',
            default_value=[launch.substitutions.EnvironmentVariable('USER'), '_'],
            description='Prefix for node names'),
        launch_ros.actions.Node(
            package='demo_nodes_cpp', node_executable='talker', output='screen',
            node_name=[launch.substitutions.LaunchConfiguration('node_prefix'), 'talker']),
    ])

用法

虽然启动文件可以作为独立脚本编写,但 ROS 中的典型用法是让 ROS 2 工具调用启动文件。

运行并采购您的工作区后,您应该能够按如下方式启动启动文件:colcon build

ros2 launch my_package script.launch.py

ROS 2 启动概念示例

此示例中的启动文件启动两个节点,其中一个是具有托管生命周期的节点(“生命周期节点”)。通过启动的生命周期节点在状态之间转换时launch_ros自动发出事件。然后可以通过启动框架对事件采取行动。例如,通过发出其他事件(例如请求另一个状态转换,通过其启动的生命周期节点launch_ros自动具有事件处理程序)或触发其他操作(例如启动另一个节点)。

在上述示例中,向生命周期节点请求各种转换请求talker,并且其转换事件通过例如listener在生命周期谈话者达到适当状态时启动节点来响应。

文档

启动文档提供了有关launch_ros.

其他文档/功能示例即将推出。同时查看三源代码。文章来源地址https://www.toymoban.com/news/detail-414495.html

到了这里,关于【ROS2指南-19】使用Launch启动/监控多个节点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ROS2机器人入门到实战】使用RCLCPP编写节点

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 节点需要存在于功能包当中、功能包需要存在于工作空间当中。所

    2024年02月02日
    浏览(100)
  • ROS学习(八)launch启动文件的使用方法

    使用命令行输入代码需要不断打开终端比较繁琐,而且容易输入错误,那么有没有什么方法可以快速启动所需节点呢? Launch文件 :通过XML文件实现多节点的配置和启动( 可自启动ROS Master ) 命令行语法: launch launch文件中的根元素采用 launch 标签定义 node 启动节点 注:laun

    2024年02月13日
    浏览(75)
  • ROS第 12 课 Launch 启动文件的使用方法

      我们在前面的教程里面通过命令行来尝试运行新的节点。但随着创建越来越复杂的机器人系统中,打开多个终端且重新输入设置就变得越来越麻烦。   因此我们可以通过创建一个Launch文件,可以同时启动并配置多个需执行的ROS节点,启动更多的功能,另外还可自动启动

    2024年01月21日
    浏览(50)
  • 【ROS2机器人入门到实战】ROS2节点介绍

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn ROS2中每一个节点也是只负责一个单独的模块化的功能(比如一个

    2024年02月06日
    浏览(57)
  • 【ROS学习】节点运行管理launch文件的基本操作

    launch文件的概念和作用 launch 文件是一个 XML 格式的文件,可以启动本地和远程的多个节点,还可以在参数服务器中设置参数。 launch文件的作用是:简化节点的配置与启动,提高ROS程序的启动效率。 使用场景 launch文件在ros中使用还是比较广泛的,比如:一个程序中可能需要启

    2024年02月06日
    浏览(42)
  • 【ROS2指南-4】理解ROS2话题

    目标: 使用 rqt_graph 和命令行工具来反思 ROS 2 主题。 教程级别: 初学者 时间: 20分钟 内容 背景 先决条件 任务 1 设置 2 rqt_graph 3 ros2主题列表 4 ros2主题回显 5 ros2 主题信息 6 ros2界面展示 7 ros2主题发布 8 ros2 主题赫兹 9 清理 概括 下一步 ROS 2 将复杂的系统分解为许多模块化节

    2023年04月19日
    浏览(47)
  • 【ROS2指南-11】创建ROS2功能包

    目标: 使用 CMake 或 Python 创建一个新包,并运行其可执行文件。 教程级别: 初学者 时间: 15分钟 内容 背景 1 什么是 ROS 2 包? 2 什么构成了 ROS 2 包? 3 工作区中的包 先决条件 任务 1 创建一个包 2 构建一个包 3 获取安装文件 4 使用包 5 检查包装内容 6 自定义 package.xml 概括

    2024年02月04日
    浏览(41)
  • 【ROS2指南-7】理解ROS2的Action

    目标: 理解并学习ROS 2 中的Action通信方式。 教程级别: 初学者 时间: 15分钟 内容 背景 先决条件 任务 1 设置 2 使用动作 3 ros2节点信息 4 ros2 动作列表 5 ros2 动作信息 6 ros2界面展示 7 ros2 动作 send_goal 概括 下一步 相关内容 动作是 ROS 2 中的一种通信类型,用于长时间运行的任

    2023年04月16日
    浏览(49)
  • ros2 foxy创建一个包和节点-ubuntu20.04

    我们创建了两个目录,ros2_ws和在他下面的子目录,运行编译的目录在ros2_ws目录下,src目录下是我们生成的ros的包,我们自己编写的代码也都早src目录下,colcon build编译之后会在ros2_ws目录下生成一下文件,运行程序也是在ros2_ws这个目录下。 使用 ros2 pkg create 来创建包和节点,

    2024年02月02日
    浏览(53)
  • 从ROS1到ROS2无人机编程实战指南

    亲爱的读者们,我今天非常荣幸地向大家推荐一本本人的全新力作——《从ROS1到ROS2无人机编程实战指南》。这本书站在初学者的角度,从入门到进阶,再到实战,循序渐进,是学习ROS1和ROS2的最佳选择。如今已在全国范围内上市,购书即可享受次日达的快捷服务! 本书的创

    2024年02月10日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包