우리가 만든 작업 공간 내의 구조에 대해서 간단히 보면 기본적으로 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

+ Recent posts