<공부 주제>
ROS Noetic의 작업 공간(catkin_ws) 설정 및 빌드 프로세스 이해
<공부한 내용 정리>
ROS에서 소스코드를 작성하고 실행하려면, 단순히 폴더를 만드는 게 아니라 ROS 빌드 시스템이 인식할 수 있는 워크스페이스(Workspace) 형식을 갖춰야 한다. Noetic에서는 주로 catkin 빌드 시스템을 사용한다.
- 워크스페이스 구조
기본적으로 다음과 같은 3가지 주요 폴더로 구성된다.
- src/: 우리가 만든 패키지(소스코드)가 들어가는 곳. (가장 중요!)
- build/: 빌드 과정에서 생성되는 중간 파일들이 저장되는 곳.
- devel/: 빌드가 완료된 실행 파일과 환경 설정 파일(setup.bash)이 있는 곳.
- 워크스페이스 생성 과정
# 1. 폴더 생성 (반드시 src 폴더까지 한 번에!)
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
# 2. 초기 빌드 실행 (작업 공간 초기화)
catkin_make
- 환경 등록 (Overlay 설정)
우리가 만든 패키지를 ROS가 인식하게 하려면, 워크스페이스의 setup.bash를 불러와야 한다.
source ~/catkin_ws/devel/setup.bash
매번 입력하기 번거로우므로 ~/.bashrc에 추가해두는 것이 국룰이다.
<예제 / 실습 코드>
새로운 패키지를 하나 만들어서 빌드하는 과정을 실습
- 패키지 생성 (의존성 포함)
cd ~/catkin_ws/src
# catkin_create_pkg [패키지명] [의존성1] [의존성2]
catkin_create_pkg my_first_pkg std_msgs rospy roscpp
- std_msgs: 기본 데이터 타입 (문자열, 숫자 등)
- rospy: 파이썬용 ROS 라이브러리
- roscpp: C++용 ROS 라이브러리
- 빌드 실행
cd ~/catkin_ws
catkin_make
성공하면 build와 devel 폴더가 업데이트된다.
<헷갈렸던 점>
- catkin_make 위치: 반드시 catkin_ws의 루트(최상위) 폴더에서 실행해야 한다. src 안에서 실행하면 에러가 난다.
- 패키지 인식 문제: 패키지를 분명히 만들었는데 rospack find로 안 찾아진다면? source ~/catkin_ws/devel/setup.bash를 실행했는지 꼭 확인해야 한다. (이거 10년 차들도 가끔 까먹는다.)
<오늘의 정리>
- catkin_ws는 ROS 개발의 베이스캠프다.
- 소스코드는 반드시 src 폴더 안에 패키지 형태로 넣어야 한다.
- 빌드는 catkin_make 명령어로 수행하며, 빌드 후에는 devel/setup.bash를 로드해야 한다.