ROS 2 启动文件 Launch

ROS 2 启动文件 Launch

在 ROS 2 中,启动文件 (launch file) 是用来配置和管理多个节点的工具,可以在一次启动中启动多个节点、参数配置、配置环境变量和设置启动条件等。经典的小乌龟 (turtlesim) 是一个非常好的入门示例。它可以用于演示如何使用启动文件启动和控制多个节点。本文将以启动小乌龟仿真为例,展示如何编写 ROS 2 启动文件。

1. 创建项目与启动文件

首先,假设你已经安装了 ROS 2,并且创建了一个名为 my_turtle_launch 的 ROS 2 包:

ros2 pkg create my_turtle_launch --build-type ament_python

在这个包的 launch/ 目录下,创建一个名为 turtlesim_launch.py 的启动文件。

文件结构如下:

my_turtle_launch/
├── launch/
│   └── turtlesim_launch.py
├── setup.py
├── package.xml
└── ...

2. 启动文件内容

turtlesim_launch.py 中,编写以下内容:

# 文件路径: launch/multi_turtlesim_launch.py
from launch import LaunchDescription
from launch_ros.actions import Node

def generate_launch_description():
    return LaunchDescription([
        # 启动第一只小乌龟
        Node(
            package='turtlesim',
            executable='turtlesim_node',
            name='turtle1',
            output='screen',
            parameters=[{
    
    'background_r': 255, 'background_g': 255, 'background_b': 0}],  # 黄色背景
            remappings=[('/turtle1/cmd_vel', '/turtle1/cmd_vel')]
        ),
        # 启动第二只小乌龟
        Node(
            package='turtlesim',
            executable='turtlesim_node',
            name='turtle2',
            output='screen',
            parameters=[{
    
    'background_r': 0, 'background_g': 255, 'background_b': 255}],  # 青色背景
            remappings=[('/turtle1/cmd_vel', '/turtle2/cmd_vel')]
        )
    ])

3. setup.py设置

from setuptools import find_packages, setup
from glob import glob
package_name = 'my_turtle_launch'

setup(
    name=package_name,
    version='0.0.0',
    packages=find_packages(exclude=['test']),
    data_files=[
        ('share/ament_index/resource_index/packages',
            ['resource/' + package_name]),
        ('share/' + package_name, ['package.xml']),
        ('share/' + package_name, glob("launch/*launch.py")),
    ],
    install_requires=['setuptools'],
    zip_safe=True,
    maintainer='ipc',
    maintainer_email='[email protected]',
    description='TODO: Package description',
    license='TODO: License declaration',
    tests_require=['pytest'],
    entry_points={
    
    
        'console_scripts': [
        ],
    },
)

4. 启动

现在,你可以使用以下命令启动小乌龟仿真:

colcon build
source install/setup.bash
ros2 launch my_turtle_launch turtlesim_launch.py

在这个扩展示例中,我们启动了两只小乌龟,并分别设置了背景颜色。同时,通过 remappings 参数重映射了话题,以便两个节点的控制不冲突。

在这里插入图片描述

6. 总结

通过这个示例,我们学习了如何在 ROS 2 中使用启动文件启动和配置节点。使用启动文件,可以轻松管理和配置多个节点、参数和话题映射。这对于复杂系统的开发和调试极为有用。

希望这篇文章能够帮助你更好地理解和掌握 ROS 2 启动文件的使用技巧。

猜你喜欢

转载自blog.csdn.net/weixin_44318762/article/details/141218826