[ROS Catkin] ROS Package 튜토리얼

ROS Package Tutorial

1. Catkin package란?

Catkin 패키지는 package.xml, CMakeLists.txt 와 같은 파일을 포함한다. 이때, package.xml은 패키지의 메타 정보를 제공하며, CMakeLists.txt는 CMake라는 빌드시스템의 입력파일이다.

# Catkin package의 예시 구조
first_package/
├── CMakeLists.txt
└── package.xml

Catkin package와 관련된 작업들은 주로 catkin workspace에서 이루어지며, 보통 catkin_ws라는 이름으로 작업공간을 생성한다.

# Catkin Workspace 예시 구조
catkin_ws/ # 작업공간
└── src/ # 소스 폴더
    ├── CMakeLists.txt # 최상위 CMake 파일
    ├── package_1/
       ├── CMakeLists.txt # package_1의 CMake 파일
       └── package.xml # package_1에 대한 package 파일
    ...
    └── package_n/
        ├── CMakeLists.txt # package_n에 대한 CMake 파일
        └── package.xml # package_n에 대한 package 파일

2. Create Package

 2.1 Catkin Workspace 생성

아래 명령어를 통해 catkin workspace 생성하고 build할 수 있다. 이때, catkin_make는 일종의 tool로 cmake + make 정도로 이해하면 될 것 같다. src폴더를 생성해주지 않으면 “~/catkin_ws/src” does not exist와 같은 error가 발생한다.

src 폴더만 있던 catkin_ws상에서 catkin_make를 실행하면 build와 devel 폴더가 생성되는 것을 확인할 수 있다.

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws
$ catkin_make
# Catkin Workspace
catkin_ws/ # 작업공간
├── build/
├── devel/
└── src/

2.2 Catkin Package 생성

catkin_create_pkg를 통해서 package가 생성된다. 이때 생성 할 package 이름은 space없이 언더바를 사용하여 작성한다.

$ cd ~/catkin_ws/src
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

위의 명령어를 실행하면 아래와 같은 구조가 만들어짐을 확인할 수 있다.

# Catkin Workspace 구조
catkin_ws/ # 작업공간
└── src/ # 소스 폴더
    ├── CMakeLists.txt # 최상위 CMake 파일
    ├── beginner_tutorials/
        ├── include
        ├── src
        ├── CMakeLists.txt # first_pkg의 CMake 파일
        └── package.xml # first_pkg에 대한 package 파일

3. Reference

Leave a Reply

Your email address will not be published. Required fields are marked *