[ROS 튜토리얼] 1.1.4 ROS 패키지 빌드하기
- 취미/ROS
- 2021. 3. 24.
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
파일에 소싱해야 한다는 것을 기억하자.
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에 대해 더 알아볼 것이다.
'취미 > ROS' 카테고리의 다른 글
[ROS 튜토리얼] 1.1.6 ROS의 토픽(topic)에 대한 이해 (0) | 2021.05.30 |
---|---|
[ROS 튜토리얼] 1.1.5 ROS의 노드(node)에 대한 이해 (0) | 2021.03.31 |
[ROS 튜토리얼] 1.1.3 패키지 생성하기 (0) | 2021.03.22 |
[ROS 튜토리얼] 1.1.2 ROS 파일 시스템 활용 방법 (0) | 2021.03.16 |
[ROS 튜토리얼] 1.1.1 ROS 설치 및 환경 구축 (0) | 2021.03.14 |