[ROS 튜토리얼] 1.1.4 ROS 패키지 빌드하기

Note : 이 튜토리얼은 이전의 creating a ROS package 튜토리얼을 학습했다고 가정한 후 작성된 튜토리얼이다.

이 튜토리얼에 관련된 문제 및 질문은 answers.ros.org에서 확인할 것. 질문 작성시, 이 튜토리얼 페이지에 대한 링크, OS & ROS 버전 및 적절한 태그를 추가할 것.

Building a ROS Package

  • Description : 이 튜토리얼은 패키지 빌드에 필요한 툴체인에 관해 다룬다.
  • Tutorial Level : BEGINNER
  • Next Tutorial : Understanding ROS Nodes

1. Building Packages

패키지의 모든 시스템 의존성이 설치되면 새로운 패키지를 빌드할 수 있다.

Note : apt나 다른 패키지 매니저를 통해 ROS를 설치한 경우, 이미 모든 의존성을 가지고 있어야 한다.

계속 진행하기에 앞서, devel 디렉토리의 setup.bash 파일을 아래와 같이 홈 디렉토리의 .bashrc 파일에 소싱해야 한다는 것을 기억하자.

위치 : /home/$USER_NAME

 

1.1 Using catkin_make

catkin_make는 command-line tool로서 표준 catkin 워크플로우에 약간의 편리성을 더해준다. catkin_make는 표준 CMake 워크플로우에서 CMake와 make의 호출을 결합한 것이라고 유추해볼 수 있다.

사용법:

# In a catkin workspace
catkin_make [make_targets] [_DCMAKE_VARIABLES=...]

표준 Cmake 워크플로우에 익숙하지 않은 사용자는 다음과 같이 과정을 쪼개어 진행한다.

Note : 아래 명령은 CMake가 일반적으로 어떻게 동작하는지를 보여주는 예씨에 불과하기 때문에 실행해도 동작하지 않을 것이다.
# In a Cmake project
mkdir build
cd build
cmake ..
make
make install   # optionally

이러한 과정은 각각의 CMake 프로젝트에 대해 실행된다. 해당 과정과는 대조적으로 catkin 프로젝트들은 작업 공간에서 함께 빌드된다. 이 방법은 다음의 워크플로우를 참조한다.

# In a catkin workspace
catkin_make
catkin_make install   # optionally

위의 명령은 src 디렉토리에서 발견되는 모든 catkin 프로젝트를 빌드할 것이다. 이는 REP128에 의해 설정된 권장 사항을 따른다. 만약 소스 코드가 다른 위치에 있으면 my_src를 입력한 뒤 catkin_make를 다음과 같이 호출한다.

# In a catkin workspace
catkin_make --source my_src
catkin_make install --source my_src   # optionally

catkin_make의 고급 용도는 다음의 문서를 참조한다 : catkin/commands/catkin_make

 

1.2 Building Your Package

이 페이지를 통해 자신만의 자체 코드를 빌드하는 경우, CMakeLists.txt를 수정해야 할 수도 있으므로 이후의 튜토리얼 (C++)/(Python)을 참조하라.

 

이전의 튜토리얼에서 패키지 빌드 후 CMakeLists.txt 파일과 package.xml 파일이 생성되는 것을 이미 보았고, package.xml 파일의 내용을 살펴보았다. 아래의 본문에서는 패키지 빌드를 한번 더 수행하게 되는데 실제로 패키지가 변경된 내용은 없으므로, 빌드를 진행해도 아무일 없을 것이다. 따라서 다음부터의 내용은 스킵해도 되고 다음 튜토리얼로 넘어가도 무방하다.

 

위와 같이 beginner_tutorials 패키지와 CMakeLists.txt 파일이 있어야 한다. 이제 catkin_make 명령어를 사용하여 이 패키지를 빌드할 것이다.

catkin_make는 먼저 각 '공간(space)'에 대해 사용중인 경로를 표시한다는 저을 알아둔다. 여기서 말하는 '공간'들은 REP128과 wiki(catkin/workspace)에 있는 catkin 작업 공간에 대한 문서에 기술되어 있다. 주의할 점은 이러한 디폴트값으로 인해 여러 디렉토리가 이 작업 공간에 생성되었따는 것이다.

ls 명령어를 사용한다:

  • /build : build space의 기본 위치로, 패키지를 구성하거나 빌드하기 위해 cmake와 make를 호출하는 곳이다.
  • /devel : devel space의 기본 위치로, 패키지를 시스템에 설치하기 전, 개발 단계에서 사용될 실행 파일과 라이브러리들이 저장되는 곳이다.
  • /src : 초보자가 헷갈리기 쉬운 디렉토리인데, catkin 작업 공간 기준으로는 ROS 패키지가 저장되는 공간을 일컫는다. 이러한 ROS 패키지 내부에도 같은 이름의 src 디렉토리가 또 존재하는데, 패키지 내부의 src 디렉토리는 패키지의 소스 코드(특히 C/C++)를 저장하는 공간으로 사용될 것이다. (사용한 언어가 python의 경우 src가 아닌 script로 되어있을 것이다)

여기까지 ROS 패키지를 빌드하는 방법에 대해 배워보았다. 다음 튜토리얼인 ROS Nodes에 대해 더 알아볼 것이다.

댓글

Designed by JB FACTORY