https://cafe.naver.com/openrt/24422
주요 패키지 파일들은 아래와 같다.
-package.xml(패키지 설정 파일)
-CMakeLists.txt(빌드 설정 파일)
-setup.py(파이썬 패키지 설정 파일)
-setup.cfg(파이썬 패키지 환경 설정 파일)
-plugin.xml(RQt 플러그인 설정 파일)
-CHANGELOG.rst(패키지 변경로그 파일)
-LICENSE(라이선스 파일)
-README.md(패키지 설명 파일)
-패키지 이름, 저작자, 라이선스, 의존성 패키지, 빌드 툴 등 패키지 정보를 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>등
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(설치 옵션)
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: 콘솔 스크립트 이름과 호출 함수(플랫폼별로 콘솔 스크립트를 설치하도록)
setup.py의 setup함수에서 설정하지 못하는 기타 옵션을 기술하는 파일.
develop, install: 스크립트 저장 위치 설정
RQT 플러그인으로 패키지 작성 시 필수 파일
패키지의 업데이트 내역을 기술하는 파일.
example_rqt_package
부분에 패키지명을 적고, 버전과 날짜 밑에 변경된 내용을 기술하면 된다.
패키지의 코드에 사용된 라이선스를 기술하는 파일.
ROS 2의 기본 라이선스는 Apache 2.0이다.
패키지의 부가 설명을 기술하는 파일