[ROS2]022: 패키지 파일(환경 설정, 빌드 설정)

maroo·2022년 7월 23일
0

ROS2

목록 보기
12/39

https://cafe.naver.com/openrt/24422

1. 패키지 파일(Package file)

주요 패키지 파일들은 아래와 같다.
-package.xml(패키지 설정 파일)
-CMakeLists.txt(빌드 설정 파일)
-setup.py(파이썬 패키지 설정 파일)
-setup.cfg(파이썬 패키지 환경 설정 파일)
-plugin.xml(RQt 플러그인 설정 파일)
-CHANGELOG.rst(패키지 변경로그 파일)
-LICENSE(라이선스 파일)
-README.md(패키지 설명 파일)

2. package.xml(패키지 설정 파일)

-패키지 이름, 저작자, 라이선스, 의존성 패키지, 빌드 툴 등 패키지 정보를 XML 형식으로 기술하는 파일
-package.xml의 주요 태그를 살펴보면 다음과 같다.

<?xml>: 문서 문법 정의
<package> </package>: ROS 패키지 설정 부분. format="3"은 패키지 설정 파일 버전이 3이라는 뜻.
<name>: 패키지 이름
<version>: 패키지 버전
<description>: 패키지 설명
<maintainer>: 패키지 관리자의 이름과 메일주소
<license>
<url>: 패키지를 설명하는 웹 페이지/소스코드 저장소 등의 주소 기재
<author>: 패키지 개발에 차여한 개발자의 이름과 메일주소
<buildtool_depend>
<build_depend>: 패키지 빌드 시 필요한 의존 패키지 이름
<exec_depend>: 패키지 실행 시 필요한 의존 패키지 이름
<test_depend>: 패키지 테스트 시 필요한 의존 패키지 이름
<export>: 위에 없는 태그명을 여기에 다 씀. <build_type>,<rviz>,<rqt_gui>,<deprecated>

3.CMakeLists.txt(빌드 설정 파일)

ROS 2의 빌드 시스템인 ament에서는 C++패키지의 경우 CMake를 이용하며, CMakeLists.txt에 그 빌드 환경을 기술해 사용한다.
CMake는 다양한 OS를 지원하며, VS, Eclipes등 여러 IDE에서 지원하기 때문에 ROS에서 이용한다.
CMakeLists.txt의 옵션을 살펴보면 다음과 같다.

-cmake_minimum_required(운영체제에 설치된 cmake의 최소 요구 버전)
-project(vozlwl dlfma)
-if()
  set(언어 사용시 기준이 되는 버전)
endif()
-if()
  add_compile_options(컴파일 시 옵션)
endif()
-find_package(ament빌드를 할 때 요구되므로 먼저 설치할 패키지)
-rosidl_generate_interfaces(추가할 자신만의 인터페이스 파일)
-include_directories(빌드 옵션: 헤더파일 폴더 지정)
-add_executable(빌드 옵션: 빌드할 때 참조할 코드와 실행파일 이름 지정)
-ament_target_dependencies(빌드에 앞서 우선적으로 생성할 의존성 있는 인터페이스)
-install(설치 옵션)

4.setup.py(파이썬 패키지 설정 파일)

ROS 2 Python에서 CMakeLists.txt와 package.xml와 같은 역할을 하는 파일이다.

name: 패키지 이름
version: 패키지 버전
package: 의존하는 패키지. find_packages()로 찾아 주는 경우가 많다
data_files: 패키지에서 사용되는 파일들(package.xml, .launch.py등)
install_requires: 의존하는 패키지를 설치할 때 함께 설치하게 되는 패키지들
tests_require: 테스트에 필요한 패키지(pytest)
zip_safe: 설치 시 zip파일로 아카이브할지 여부 설정
keywords: 검색하여 이 패키지를 찾을 수 있도록 하는 패키지의 키워드
classifiers: PyPI에 등록될 메타 데이터 설정
entry_points: 콘솔 스크립트 이름과 호출 함수(플랫폼별로 콘솔 스크립트를 설치하도록)

5. setup.cfg(파이썬 패키지 환경 설정 파일)

setup.py의 setup함수에서 설정하지 못하는 기타 옵션을 기술하는 파일.
develop, install: 스크립트 저장 위치 설정

6. plugin.xml(RQt 플러그인 설정 파일)

RQT 플러그인으로 패키지 작성 시 필수 파일

7. CHANGELOG.rst(패키지 변경로그 파일)

패키지의 업데이트 내역을 기술하는 파일.
example_rqt_package 부분에 패키지명을 적고, 버전과 날짜 밑에 변경된 내용을 기술하면 된다.

8. LICENSE(라이선스 파일)

패키지의 코드에 사용된 라이선스를 기술하는 파일.
ROS 2의 기본 라이선스는 Apache 2.0이다.

9. README.md(패키지 설명 파일)

패키지의 부가 설명을 기술하는 파일

profile
할수이따 ~

0개의 댓글