<aside> 💡 Launch 파일 생성 실습은 ROS 2 Humble 공식 Docs의 자료를 사용합니다. 보다 자세한 내용은 아래 링크를 참고해 주세요.

Creating a launch file — ROS 2 Documentation: Humble documentation

</aside>

Launch 파일 생성 (Python)

Launch 파일을 생성하기 위해 실습 - Package 및 Node 생성 에서 사용한 py_pubsub 패키지를 사용합니다. VSCode를 실행한 후 py_pubsub 패키지를 열어줍니다.

Screenshot from 2024-02-29 17-42-46.png

py_pubsub 폴더에 launch 폴더를 새로 만들어줍니다. 폴더를 우클릭하고 [New Folder…] 버튼을 누르거나 폴더를 클릭한 상태로 **New Folder 버튼(📁)**을 클릭하면 새로운 폴더를 생성할 수 있습니다.

Screenshot from 2024-02-29 17-43-21.png

Screenshot from 2024-02-29 17-43-29.png

새로 생성된 launch 폴더 안에 py_pubsub.launch.py 라는 이름의 파일을 새로 생성합니다.

Screenshot from 2024-02-29 17-43-46.png

Screenshot from 2024-02-29 17-45-44.png

새로 생성한 파일에 아래 코드를 붙여 넣고 저장합니다.

Screenshot from 2024-02-29 17-47-06.png

from launch import LaunchDescription
from launch_ros.actions import Node

def generate_launch_description():
    return LaunchDescription(
        [
            Node(
                package="py_pubsub",
                namespace="",
                executable="listener",
                name="listener",
            ),
            Node(package="py_pubsub",
                 namespace="",
                 executable="talker",
                 name="talker"
            )
        ]
    )

launch 파일 경로를 지정하기 위해 setup.py 파일을 열고 아래와 같이 수정합니다.

import os
from glob import glob
from setuptools import setup

package_name = "py_pubsub"

setup(
    name=package_name,
    version="0.0.0",
    packages=[package_name],
    data_files=[
        ("share/ament_index/resource_index/packages", ["resource/" + package_name]),
        ("share/" + package_name, ["package.xml"]),
        (os.path.join("share", package_name, "launch"), glob("launch/*.launch.py")),
    ],
    install_requires=["setuptools"],
    zip_safe=True,
    maintainer="ubuntu",
    maintainer_email="[email protected]",
    description="Examples of minimal publisher/subscriber using rclpy",
    license="Apache License 2.0",
    tests_require=["pytest"],
    entry_points={
        "console_scripts": [
            "talker = py_pubsub.publisher_member_function:main",
            "listener = py_pubsub.subscriber_member_function:main",
        ],
    },
)

Screenshot from 2024-02-29 17-54-47.png

터미널 창을 열고 cb 명령어를 입력해 빌드합니다.

Screenshot from 2024-02-29 17-56-01.png

빌드가 성공적으로 완료되었다면 터미널 창에 아래 명령어를 입력해 launch 파일을 실행할 수 있습니다.