본문 바로가기

Robot/Robot Program - ROS

ROS 팩키지 만들기 따라하기

사실 잘 되어 있는 공식 투토리얼이 이미 있는데 이를 따라하는 것을 하다보면 말 그대로 왜 따라하지? 뭐 이런 생각이 들 떄도 있습니다. 그러나 제 경우는 항상 어떤 기능을 공부할 때, 공식적인 투토리얼도 보면서 또 그걸 따라한 사람이 있는지 찾아 봅니다. 특이하게도 똑 같은 투토리얼을 따라하는데도 어떨 때는 안되고 뭔가 공부해야 할 때가 있더라구요. 그래서 저는 아마 그런 습관이 생긴 모양입니다. 뭐~ 이래나 저래나 오늘은 ROS의 투토리얼[바로가기]에서 이미 이야기하고 있는 팩키지를 만드는 기초 부분을 따라할까 합니다.^^

먼저 한 번도 ROS 팩키지를 만든 적이 없다면, home에서

mkdir -p ~/catkin_ws/src

를 실행해서 catkin_ws와 그 안에 src 폴더를 만듭니다. 여기서 -p 옵션을 쓰면 둘 다 만들어 집니다.^^.

여기서 catkin wortk space를 초기화합니다. 

catkin_make를 실행하면 Source, Build, Devel 공간이 만들어 지네요^^

뭐 당연하지만 catkin_ws안에 폴더들이 만들어 졌습니다.

그리고 devel/setup.bash를 실행합니다.

그리고 나면 ROS 팩키지 변수가 저장되어 있는 걸 확인할 수 있네요.

또한 많이 사용할 명령중 하나는 rospack find명령입니다. 팩키지의 경로를 찾아주는 명령이지요.^^

이제... 다시 본론으로 돌아가서.. cd ~/catkin_ws/src/를 이용해서 src 폴더로 이동한 다음음

catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

catkin_create_pkg명령으로 팩키지를 만듭니다. 지금은 투토리얼을 따라하고 있으니.. beginner_tutorials라는 이름대로 가지요. 그리고 std_msgs, rospy, roscpp에 depend되어 있다는 의미로 명령을 적어 줍니다. 

그러면 위 그림처럼 결과를 얻을 수 잇을 겁니다.

다시 catkin_ws로 돌아가서 catkin_make를 해보면

뭐.. 아무튼 뭔가 결과가 나오는군요...

source명령 대신 그냥 '.'하나 찍어줘도 됩니다. 아무튼 

. ~/catkin_ws/devel/setup.bash

워크스페이스를 등록합니다.

그리고 나서 rospack find beginner_tutorials로 방금 만든 팩키지를 찾아보면 찾아 집니다.^^

그리고, beginner_tutorials와 첫 번째 depend관계를 찾는 명령이 rospack depends1입니다.

이제 

roscd beginner_tutorials
subl package.xml

beginner_tutorials로 폴더를 이동하고(roscd) 그 안에 있는 package.xml을 열어보겠습니다. 저는 좋아하는 sublime text[바로가기]를 이용해서 열었습니다.^^

package.xml안에는 패키지의 이름과 버젼, 그리고 간략한 설명을 적을 수 있고고

팩키지 관리자의 연락처^^

license 종류도 명시할 수 있습니다.

그리고 아까 패키지를 생성할 때 지정했던 depend된 것들도 나타나 있네요^^

뭐 아무튼...

투토리얼 대로 팩키지가 잘 생성되었음을 알 수 있지요^^

여기서 catkin_make를 수행하면 빌드가 됩니다.^^

반응형