4. Catkin - ROS의 빌드 시스템
페이지 정보
작성자 관리자 댓글 0건 조회 2,188회 작성일 21-01-14 16:16본문
ROS 의 빌드 시스템은 기본적으로 CMakeCross Platform Make 를 활용하고 있습니다.
ROS패키지 폴더를 확인하면 ‘CMakeLists.txt’ 라는 파일에 빌드 환경이 작성되어 있고 이를 통해 빌드를 진행하는 형태입니다.
이를 ROS 에서는 캐킨 catkin 이라고 부릅니다.
캐킨 빌드 시스템은 CMake 와 완전하게 동일하지는 않고 ROS 에 특화되어 약간 수정되어 있습니다.
캐킨 빌드 시스템은 ROS 와 관련된 패키지 빌드, 관리, 패키지간의 의존 관계등을 쉽게 사용할 수 있는 기능을 제공합니다.
물론 캐킨 빌드 시스템을 이용하지 않고 rosbuild 를 통한 빌드도 가능합니다.
다만 rosbuild 는 ROS 의 초창기 사용되던 빌드 시스템이고 현재 남아 있는 이유는 이전 버전과의 호환성을위해서 남겨져 있기 때문입니다.
catkin_make 실행시 필요한 패키지 설치
root@holdings:~# apt-get install qt4-dev-tools libqt4-dev
ROS melodic 환경 설정 bash shell 실행
root@holdings:/home# su - jklee
jklee@holdings:~$ source /opt/ros/melodic/setup.bash
작업 디렉토리 생성 및 초기화
jklee@holdings:~$ mkdir -p ~/catkin_ws/src -> 작업 디렉토리 생성
jklee@holdings:~$ cd ~/catkin_ws/src/
jklee@holdings:~/catkin_ws/src$ catkin_init_workspace -> catkin 작업 디렉토리 초기화
Creating symlink "/home/jklee/catkin_ws/src/CMakeLists.txt" pointing to "/opt/ros/melodic/share/catkin/cmake/toplevel.cmake"
컴파일 하기
jklee@holdings:~/catkin_ws/src$ cd ~/catkin_ws/
jklee@holdings:~/catkin_ws$ catkin_make -> build 명령어
Base path: /home/jklee/catkin_ws
Source space: /home/jklee/catkin_ws/src
Build space: /home/jklee/catkin_ws/build
Devel space: /home/jklee/catkin_ws/devel
Install space: /home/jklee/catkin_ws/install
####
#### Running command: "cmake /home/jklee/catkin_ws/src -DCATKIN_DEVEL_PREFIX=/home/jklee/catkin_ws/devel -DCMAKE_INSTALL_PREFIX=/home/jklee/catkin_ws/install -G Unix Makefiles" in "/home/jklee/catkin_ws/build"
####
-- The C compiler identification is GNU 7.4.0
-- The CXX compiler identification is GNU 7.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using CATKIN_DEVEL_PREFIX: /home/jklee/catkin_ws/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/melodic
-- This workspace overlays: /opt/ros/melodic
-- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.17", minimum required is "2")
-- Using PYTHON_EXECUTABLE: /usr/bin/python2
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/jklee/catkin_ws/build/test_results
-- Found gtest sources under '/usr/src/googletest': gtests will be built
-- Found gmock sources under '/usr/src/googletest': gmock will be built
-- Found PythonInterp: /usr/bin/python2 (found version "2.7.17")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.28
-- BUILD_SHARED_LIBS is on
-- BUILD_SHARED_LIBS is on
-- Configuring done
-- Generating done
-- Build files have been written to: /home/jklee/catkin_ws/build
####
#### Running command: "make -j4 -l4" in "/home/jklee/catkin_ws/build"
####
ls 명령어를 통해 build 결과 파일들이 생성된 것을 확인하실 수 있습니다.
~/catkin_ws 경로 내에 build, devel, src 세 가지 폴더가 있는 것을 확인 가능합니다.
jklee@holdings:~/catkin_ws$ ls
build devel src
다음은 build 폴더 내의 파일들입니다.
jklee@holdings:~/catkin_ws$ ls build/
atomic_configure catkin_make.cache CTestConfiguration.ini Makefile
catkin CMakeCache.txt CTestCustom.cmake test_results
catkin_generated CMakeFiles CTestTestfile.cmake
CATKIN_IGNORE cmake_install.cmake gtest
jklee@holdings:~/catkin_ws$
Catkin 명령어와 관련된 bash shell 실행은 아래와 같습니다.
jklee@holdings:~$ source ~/catkin_ws/devel/setup.bash
source 명령어는 bash shell을 실행시키는 기능을 합니다.
다음으로는 .bashrc를 수정하여 source 명령어가 터미널을 켤 때마다 자동적으로 실행되도록 설정하고, master 주소와 hostname 설정을 해 보겠습니다.
jklee@holdings:~$ vi ~/.bashrc
source /opt/ros/melodic/setup.bash # ROS 설정이 포함된 bash shell이 실행되도록 합니다.
source ~/catkin_ws/devel/setup.bash # catkin 명령어 관련 bash shell이 실행되도록 합니다.
export ROS_MASTER_URI=http://localhost:11311 # master 주소를 설정합니다. ip를 입력해도 됩니다.
export ROS_HOSTNAME=localhost # host ip를 입력합니다. Master와 host robot이 다른 경우엔 각각의 ip를, 같은 경우엔 master와 같은 ip를 입력합니다.
jklee@holdings:~$ source .bashrc
jklee@holdings:~$ env |grep ROS
ROS_ETC_DIR=/opt/ros/melodic/etc/ros
ROS_ROOT=/opt/ros/melodic/share/ros
ROS_MASTER_URI=http://localhost:11311
ROS_VERSION=1
ROS_PYTHON_VERSION=2
ROS_PACKAGE_PATH=/home/jklee/catkin_ws/src:/opt/ros/melodic/share
ROSLISP_PACKAGE_DIRECTORIES=/home/jklee/catkin_ws/devel/share/common-lisp
ROS_HOSTNAME=localhost
ROS_DISTRO=melodic
댓글목록
등록된 댓글이 없습니다.