공부중

[ROS2] 패키지 만들기 및 setup.py 구성 본문

프로그래밍/ROS

[ROS2] 패키지 만들기 및 setup.py 구성

복습 2024. 7. 28. 11:26
728x90

사용 버전 : ros2 Foxy

우분투 20.04

python3.12

 

 

1. 패키지 만들기  

ros2 pkg create --build-type ament_python <package_name>



2. setup.py 구성 

 

패키지 이름 및 버전:

from setuptools import setup

package_name = 'my_package'
setup(
    name=package_name,
    version='0.0.1',
)

 

이 부분에서는 패키지의 이름과 버전을 정의합니다. 이 정보는 패키지 관리 및 배포에 사용됩니다.

 

 


패키지 데이터
:

data_files=[
    ('share/ament_index/resource_index/packages',
        ['resource/' + package_name]),
    ('share/' + package_name, ['package.xml']),
],

 

data_files은 패키지의 데이터 파일을 설치할 위치와 파일을 정의합니다. 이 예에서는 package.xml 파일과 다른 리소스 파일들을 ROS2의 share 디렉토리 하위에 설치하도록 설정되어 있습니다.

 

 

 

의존성 관리:

install_requires=['setuptools'],

 

install_requires 리스트는 이 패키지를 실행하기 위해 필요한 다른 패키지들을 정의합니다. 이 예에서는 setuptools만이 필요하다고 명시되어 있습니다.

 

 

패키지 정보:

setup(
    ...
    maintainer='Your Name',
    maintainer_email='your.email@example.com',
    description='A simple ROS2 package',
    license='Apache License 2.0',
    ...
)

 

여기서는 패키지의 유지보수 담당자, 이메일, 설명, 라이센스 등과 같은 추가적인 메타데이터를 제공합니다.

 

 

엔트리 포인트:

entry_points={
    'console_scripts': [
        'talker = my_package.publisher_member_function:main',
        'listener = my_package.subscriber_member_function:main',
    ],
}

 

entry_points는 패키지의 실행 가능한 스크립트를 정의합니다. 여기서는 talker와 listener라는 두 개의 실행 파일이 있으며, 각각 my_package 내의 특정 함수를 실행하도록 설정되어 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참고 자료 

https://docs.ros.org/en/foxy/Tutorials/Beginner-Client-Libraries/Creating-Your-First-ROS2-Package.html

 

Creating a package — ROS 2 Documentation: Foxy documentation

Inside ros2_ws/src/my_package, you will see the files and folders that ros2 pkg create automatically generated: CMakePython CMakeLists.txt include package.xml src my_node.cpp is inside the src directory. This is where all your custom C++ nodes will go in t

docs.ros.org

 

 

 

 

 

 

 

 

728x90