# 导入ROS 2启动文件相关的模块
from launch import LaunchDescription  # LaunchDescription用于定义启动描述
from launch_ros.actions import Node  # Node用于定义节点启动的配置

# 定义生成启动描述的函数
def generate_launch_description():
    # 返回一个LaunchDescription对象，包含两个节点的配置
    return LaunchDescription([
        # 定义第一个节点（发布者节点）
        Node(
            package='example_topic',  # 指定节点所在的包名
            executable='pub_node',    # 指定节点的可执行文件名
            name='talker',            # 指定节点的名称
            output='screen'           # 指定节点的输出方式为在终端显示
        ),
        # 定义第二个节点（订阅者节点）
        Node(
            package='example_topic',  # 指定节点所在的包名
            executable='sub_node',    # 指定节点的可执行文件名
            name='listener',          # 指定节点的名称
            output='screen'           # 指定节点的输出方式为在终端显示
        ),
    ])

