우리가 만든 작업 공간 내의 구조에 대해서 간단히 보면 기본적으로 catkin_ws라는 작업공간 내에 src에 CMakeList.txt와 우리가 만든 패키지 디렉터리가 존재할 것이며 그 패키지 내부에는 또한 CMakeList.txt와 package.xml을 기본적으로 가진다.
CMakeList.txt는 cmake 및 catkin_make를 하기 위해 참조하는 텍스트 파일이며 package.xml은 그 패키지에 대한 정보가 담긴다.
이제, 패키지를 생성해보자.
1. 우선, 작업공간 내의 src 디렉터리 안으로 들어간다.
cd ~/catkin_ws/src
2. catkin_create_pkg를 이용해 std_msgs, roscpp, rospy를 의존시키는 beginner_tutorials라는 패키지를 만든다.
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
(catkin_create_pkg <패키지명> [의존 1] [의존 2] [의존 3])
3. 이제 패키지를 빌드해보자(기본적으로 catkin에서는 각각의 패키지가 아닌 workspace에서 빌드하는 것이 권장됨)
cd ~/catkin_ws
catkin_make
4. make를 하고 나면 /opt/ros/melodic에서 볼 수 있는 것과 같이 devel 하위 디렉터리에 유사한 구조가 생성된다.
작업 공간을 ROS 환경에 추가하려면 devel 내의 setup.bash 파일을 source 시켜주어야 한다.
source ~/catkin_ws/devel/setup.bash
5. 패키지를 만들 때 의존시켰던 패키지들을 rospack 명령어를 통해 확인 가능하다.
rospack depends1 beginner_tutorials
(depends1이 아닌 depends 옵션 사용 시 종속된 패키지들에 하위 종속된 것들까지 보여준다.)
6. 처음 작업공간을 만들 때 catkin_make를 해봤듯이 패키지를 만들었으니 다시 빌드를 해주어야 한다.
(단 앞서 말했듯이 저장소 단위로 make를 해주는게 좋다)
cd ~/catkin_ws
catkin_make
7. 마지막으로 패키지의 package.xml을 수정해보자.
package.xml에는 패키지 이름, 설명, 관리자, 라이선스 등의 정보를 적어 줄 수 있고
또한 의존성 태그를 통해 종속이 필요한 패키지들을 필요에 맞게 수정할 수 있다.
참고자료:
http://wiki.ros.org/ROS/Tutorials/CreatingPackage
'ROS' 카테고리의 다른 글
6. ROS 용어 정리2 (0) | 2020.01.24 |
---|---|
5. ROS 용어 정리 (0) | 2020.01.13 |
3. ROS 파일시스템 (0) | 2020.01.09 |
2. ROS 작업공간 만들기 (0) | 2020.01.09 |
1. ROS melodic 설치 (0) | 2020.01.08 |