1. Package File 이란?

파일 시스템과 빌드 시스템, 빌드 툴은 필수 지식.

파일이름 내용
package.xml 패키지 설정파일 setup.py 파이썬 패키지 설정 파일
CMakeLists.txt 빌드 설정 파일 setup.cfg 파이썬 패키지 환경 설정 파일
plugin.xml RQt 플러그인 설정 파일
CHANGELOG.rst 패키지 변경 로그 파일
LICENSE 라이선스 파일
README.md 패키지 설명 파일

2. Package File의 내용

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

2-2. CMakeList.txt (빌드 설정 파일)

ROS2의 빌드 시스템인 ament에서 C++ 언어를 사용한 패키지나 RQt Plugin의 경우 CMake(Cross Platform Make)를 이용하고 있고, 이를 패키지 폴더의 ‘CMakeLists.txt’라는 파일에 빌드 환경을 기술하여 사용하고 있다.

CMake를 이용하는 이유는 ROS 패키지를 Multi Platform(e.g. Windows, Linux, BSD)에서 빌드할 수 있도록 하기 위함.

Line 5 ~ 12

C언어와 C++ 언어를 사용할 때, 각 기준 버전을 기재함. 기본적으로 C는 99, C++은 14

find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(std_msgs REQUIRED)

find_package 항목은 ament 빌드를 할 때 요구되는 구성 요소 패키지. rclcpp를 사용하는 경우 ament_cmake와 rclcpp는 기본으로 포함 시켜야 하며, std_msgs와 같은 인터페이스 패키지나 의존성 패키지를 기술하게 된다. 여기에 입력된 패키지가 없을 경우, colcon build 시에 에러 발생 즉, 사용자가 만든 패키지가 의존하는 다른 패키지를 먼저 설치하게 만드는 옵션