【ROS2指南-8】入门Launch启动脚本

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

目标:创建launch文件以运行复杂的 ROS 2 系统。

教程级别:初学者

时间: 10分钟

内容

  • 背景

  • 先决条件

  • 任务

    • 1 设置

    • 2 编写启动文件

    • 3 ros2发射

    • 4 使用 rqt_graph 反省系统

  • 概括

  • 下一步

背景

在到目前为止的教程中,您一直在为您运行的每个新节点打开新终端。随着越来越多的节点同时运行,创建更复杂的系统,打开终端和重新输入配置细节变得乏味。

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

使用该命令运行单个launch文件将立即启动整个系统——所有节点及其配置。

ros2 launch

先决条件

本教程使用rqt_graph 和 turtlesim包。

您还需要使用您喜欢的文本编辑器。

任务

1 设置

创建一个新目录来存储您的启动文件:

mkdir launch

通过在终端中输入以下命令来创建一个名为 launch 的文件:

touch launch/turtlesim_mimic_launch.py

您还可以使用 GUI 进入系统的文件目录,并以此方式创建一个新文件。

在您喜欢的文本编辑器中打开新文件。

2 编写启动文件

turtlesim让我们使用包及其可执行文件将 ROS 2 启动文件放在一起。

将完整代码复制并粘贴到turtlesim_mimic_launch.py文件中:

from launch import LaunchDescription
from launch_ros.actions import Node

def generate_launch_description():
    return LaunchDescription([
        Node(
            package='turtlesim',
            node_namespace='turtlesim1',
            node_executable='turtlesim_node',
            node_name='sim'
        ),
        Node(
            package='turtlesim',
            node_namespace='turtlesim2',
            node_executable='turtlesim_node',
            node_name='sim'
        ),
        Node(
            package='turtlesim',
            node_executable='mimic',
            node_name='mimic',
            remappings=[
                ('/input/pose', '/turtlesim1/turtle1/pose'),
                ('/output/cmd_vel', '/turtlesim2/turtle1/cmd_vel'),
            ]
        )
    ])

2.1 检查launch文件

这些 import 语句引入了一些 Python launch模块。

from launch import LaunchDescription
from launch_ros.actions import Node

接下来,启动描述本身开始:

def generate_launch_description():
   return LaunchDescription([

   ])

内部LaunchDescription是一个由三个节点组成的系统,全部来自turtlesim包。该系统的目标是启动两个 turtlesim 窗口,让一只乌龟模仿另一只乌龟的动作。

启动描述中的前两个操作启动两个 turtlesim 窗口:

Node(
    package='turtlesim',
    node_namespace='turtlesim1',
    node_executable='turtlesim_node',
    node_name='sim'
),
Node(
    package='turtlesim',
    node_namespace='turtlesim2',
    node_executable='turtlesim_node',
    node_name='sim'
),

请注意,这两个节点之间的唯一区别是它们的名称空间值。独特的命名空间允许系统在没有节点名称或主题名称冲突的情况下启动两个模拟器。

该系统中的两只海龟都接收关于同一主题的命令,并在同一主题上发布它们的姿势。如果没有唯一的命名空间,就无法区分发送给一只乌龟或另一只乌龟的消息。

最后一个节点也来自turtlesim包,但是不同的可执行文件:mimic.

Node(
    package='turtlesim',
    node_executable='mimic',
    node_name='mimic',
    remappings=[
      ('/input/pose', '/turtlesim1/turtle1/pose'),
      ('/output/cmd_vel', '/turtlesim2/turtle1/cmd_vel'),
    ]
)

此节点以重新映射的形式添加了配置详细信息。

mimic/input/pose主题被重新映射到/turtlesim1/turtle1/pose,并且它的/output/cmd_vel主题是/turtlesim2/turtle1/cmd_vel。这意味着mimic将订阅/turtlesim1/simpose 主题,并将其重新发布为/turtlesim2/sim要订阅的 velocity command 主题。换句话说,turtlesim2会模仿turtlesim1的动作。

3 ros2发射

要启动turtlesim_mimic_launch.py,请进入您之前创建的目录并运行以下命令:

cd launch
ros2 launch turtlesim_mimic_launch.py

PS:可以直接启动一个launch文件(就像我们上面所做的那样),或者由一个包提供。当它由包提供时,语法是:

ros2 launch <package_name> <launch_file_name>

您将在后面的教程中了解有关创建包的更多信息。

将打开两个 turtlesim 窗口,您将看到以下[INFO]消息,告诉您启动文件启动了哪些节点:

[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [turtlesim_node-1]: process started with pid [11714]
[INFO] [turtlesim_node-2]: process started with pid [11715]
[INFO] [mimic-3]: process started with pid [11716]

要查看系统的运行情况,请打开一个新终端并运行有关主题的命令以使第一只乌龟移动:

ros2 topic pub/turtlesim1/turtle1/cmd_vel

ros2 topic pub -r 1 /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指南-8】入门Launch启动脚本,ROS2,机器人

4 使用 rqt_graph 反省系统

当系统仍在运行时,打开一个新终端并运行rqt_graph以更好地了解启动文件中节点之间的关系。

运行命令:

rqt_graph

隐藏节点(您运行的命令)正在向节点订阅的左侧主题发布数据。图表的其余部分显示了之前描述的内容:订阅了 的pose话题,并发布了速度命令话题。

ros2 topic pub /turtlesim1/turtle1/cmd_vel /turtlesim1/simmimic/turtlesim1/sim/turtlesim2/sim

概括

启动文件简化了运行具有许多节点和特定配置细节的复杂系统。您可以使用 Python 创建启动文件,并使用命令运行它们 :ros2 launch

下一步

在下一个教程“记录和回放数据”中,您将了解另一个有用的工具ros2bag文章来源地址https://www.toymoban.com/news/detail-614563.html

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

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

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

相关文章

  • 【ROS2机器人入门到实战】ROS2节点介绍

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

    2024年02月06日
    浏览(49)
  • 【ROS2机器人入门到实战】2.ROS与ROS2对比

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 经过上一节的学习,相信你已经对ROS和ROS2的发展有了一定的了解

    2024年02月04日
    浏览(44)
  • 【ROS2机器人入门到实战】3.动手安装ROS2

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 到了这一节,终于可以开始安装ROS2了。安装ROS2本来是一件比较麻

    2024年02月13日
    浏览(50)
  • 【ROS2机器人入门到实战】4.ROS2初体验

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 通过几个简单的小例子来体验ROS2软件库和工具集。 游戏内容:很

    2024年02月04日
    浏览(67)
  • 【ROS2机器人入门到实战】

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 第 1 章 ROS2介绍与安装 基础篇-Linux基础 1.Linux与Ubuntu系统介绍 2.在

    2024年02月16日
    浏览(48)
  • 【ROS2机器人入门到实战】2.ROS2功能包与工作空间

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 大家好,我是小鱼~上一节小鱼给大家介绍了一下节点,运行一个

    2024年01月23日
    浏览(51)
  • 【ROS2机器人入门到实战】地图保存与编辑

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 可以看到有下面的用法 我们的地图话题为map,文件名字我们用f

    2024年02月03日
    浏览(67)
  • 【ROS2机器人入门到实战】Colcon使用进阶

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 基础篇中小鱼带你用gcc编译了ROS2节点。对你来说,使用CMake(GC

    2024年02月02日
    浏览(52)
  • 【ROS2机器人入门到实战】话题之RCLCPP实现

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 本节我们学习使用ROS2的RCLCPP客户端库来实现话题通信。 RCLCPP为

    2024年02月07日
    浏览(49)
  • 【ROS2机器人入门到实战】使用API进行导航

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn Navigation 2 对外提供了动作服务用于导航调用。动作通信是 ROS 2 四

    2024年02月03日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包