[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