3. 개발 PC 환경
3.4터미널(Tilix)과 환경 설정
ROS2 실습은 터미널을 3~5개 동시에 씁니다. 한 터미널에서 노드를 실행하고, 다른 터미널에서 ros2 topic echo로 값을 보고, 또 다른 터미널에서 명령을 입력하는 식입니다. 창을 여러 개 띄우면 겹쳐서 찾기 어렵습니다. 이 교육은 한 창 안에서 터미널을 나눠 쓸 수 있는 Tilix를 씁니다. OVA에 이미 설치되어 있습니다.
Tilix 열기
바탕화면 왼쪽 막대(독)에서 Tilix 아이콘 ①을 누릅니다. 몇 초 뒤 창이 뜹니다.
- ① 독의 Tilix 아이콘
Activities를 눌러 검색창에 tilix를 입력하고 Enter를 눌러도 열립니다. Ctrl+Alt+T는 Ubuntu 기본 터미널을 여는 단축키라 Tilix가 아닙니다. 독에 있는 터미널 아이콘(Tilix 바로 위)도 기본 터미널입니다.
화면 구성
처음에는 터미널이 한 칸입니다. 위쪽 막대의 단추는 다음과 같습니다.
- ① 세션 목록 (
1 / 1): 지금 열린 세션이 몇 개 중 몇 번째인지 보여 주고, 누르면 세션 목록이 나옵니다. - ② 새 세션 (
+): 새 세션(탭 같은 것)을 만듭니다. - ③ 오른쪽에 터미널 추가 (Add terminal right)
- ④ 아래에 터미널 추가 (Add terminal down)
- ⑤ 메뉴: 레이아웃 저장, 입력 동기화, 단축키 목록이 들어 있습니다.
Tilix는 터미널 하나를 칸, 칸 여러 개가 모인 화면 한 장을 세션이라고 부릅니다. 세션 하나 안에서 칸을 나누고, 세션이 여러 개면 ②로 전환합니다.
칸 나누기와 이동
③을 누르면 오른쪽에 새 칸이 생기고 입력 위치도 새 칸으로 옮겨 갑니다. 이어서 ④를 누르면 지금 입력 위치가 있는 칸(오른쪽 칸)이 위아래로 나뉩니다. 이 순서로 눌러서 칸 세 개를 만듭니다.
- ① 왼쪽 칸: 첫 칸 (노드를 실행하는 곳으로 씁니다)
- ② 오른쪽 위 칸: ③을 눌러 생긴 칸
- ③ 오른쪽 아래 칸: ④를 눌러 생긴 칸
칸 이름 앞의 번호가 같은 칸의 순서입니다. 칸 오른쪽 위의 ✕를 누르거나 그 칸에서 exit를 입력하면 칸이 닫힙니다.
마우스 없이도 단축키로 할 수 있습니다. 아래는 이 VM의 Tilix 단축키 목록(메뉴 → Keyboard Shortcuts)에서 확인한 것입니다.
| 하는 일 | 단축키 |
|---|---|
| 오른쪽에 칸 추가 | Ctrl+Alt+R |
| 아래에 칸 추가 | Ctrl+Alt+D (아래 주의 참고) |
| 알아서 칸 추가 | Ctrl+Alt+A |
| 칸 사이 이동 | Alt+방향키 |
| 칸 크기 조절 | Shift+Alt+방향키 |
| 새 세션 | Shift+Ctrl+T |
| 세션 전환 | Ctrl+PageUp, Ctrl+PageDown, 또는 Ctrl+Alt+숫자 |
| 복사, 붙여넣기 | Shift+Ctrl+C, Shift+Ctrl+V (터미널에서는 Ctrl+C가 실행 중단입니다) |
| 전체 화면 | F11 |
Alt+방향키로 칸을 옮길 때 글자는 입력 위치가 있는 칸에만 들어갑니다. 어느 칸에 입력하는지 헷갈리면 칸 이름 줄의 번호와 커서 모양(입력 중인 칸은 속이 찬 네모)을 보세요.
메뉴 쓰기
⑤ 메뉴를 열면 다음 항목이 있습니다.
- ① Save As…: 지금의 칸 배치를 파일(
.json)로 저장합니다. 다음에Open…으로 불러오면 같은 모양의 칸이 한 번에 만들어집니다. - ② Synchronize Input: 켜 두면 한 칸에서 입력한 글자가 모든 칸에 들어갑니다. 여러 칸에 같은 명령을 한꺼번에 입력할 때 씁니다. 켠 채로
rm같은 명령을 치면 모든 칸에서 실행되니 쓰고 나서 바로 끄세요. - ③ Keyboard Shortcuts: 단축키 목록을 보여 줍니다. 위쪽 목록에서 Application, Session, Terminal, Nautilus, Profile을 고를 수 있고, 칸을 나누는 키는 Session 쪽에 있습니다.
- ① Add terminal right:
Ctrl+Alt+R - ② Add terminal down:
Ctrl+Alt+D - ③ Add terminal automatically:
Ctrl+Alt+A - ④ Resize the terminal up/down/left/right:
Shift+Alt+방향키
이 교육에서 쓰는 배치
대부분의 실습은 세 칸이면 충분합니다.
| 칸 | 용도 | 예 |
|---|---|---|
| 1 (왼쪽, 큼) | 노드나 launch 실행. 로그가 계속 흐르는 곳 | ros2 launch ..., ros2 run ... |
| 2 (오른쪽 위) | 값을 지켜보는 곳 | ros2 topic echo /scan |
| 3 (오른쪽 아래) | 명령을 입력하는 곳 | ros2 topic list, colcon build |
노드를 끄려면 해당 칸에서 Ctrl+C를 누릅니다. 실습이 끝나면 칸을 닫지 말고 다음 장에서 그대로 쓰세요. 배치를 저장해 두면 매번 만들 필요가 없습니다.
source와 ~/.bashrc
왜 source가 필요한가
ROS2를 설치해도 터미널은 그 위치를 모릅니다. ros2 명령과 메시지 라이브러리를 찾으려면 환경변수(PATH, PYTHONPATH 등)가 설정되어야 합니다. 이 설정을 해 주는 스크립트가 setup.bash입니다. 공식 문서의 표준 명령은 다음과 같습니다.
source /opt/ros/humble/setup.bash
source는 스크립트를 지금 터미널 안에서 실행하는 명령이고 그 결과인 환경변수는 현재 터미널에 남습니다. 그래서 터미널을 새로 열 때마다 해야 합니다. 이것을 자동으로 해 주는 파일이 ~/.bashrc입니다. 터미널이 시작될 때마다 읽혀서, 여기에 source 줄을 넣어 두면 매번 입력하지 않아도 됩니다.
OVA에는 이미 등록되어 있습니다
OVA의 ~/.bashrc에는 두 줄이 이미 들어 있습니다. 확인하려면 이렇게 합니다.
grep -n "source" ~/.bashrc | tail -3
120:source /opt/ros/humble/setup.bash
121:source /home/ros2/ros2_ws/install/setup.bash
120번 줄이 ROS2 Humble, 121번 줄이 ~/ros2_ws에서 빌드한 패키지(tiki_slam, tiki_navigation)를 불러옵니다. 그래서 새 터미널에서 바로 ros2 명령과 tiki_* 패키지를 쓸 수 있습니다. 이 교육에서 직접 ~/.bashrc를 고칠 일은 없습니다. 다만 아래 함정은 알아 두세요.
내 워크스페이스를 직접 만들었다면 install/setup.bash는 빌드가 끝난 뒤에 source해야 합니다. 빌드 전에는 그 파일이 없어서 오류가 납니다. 안전하게 하려면 파일이 있을 때만 source하는 이 형태를 씁니다.
[ -f ~/ros2_ws/install/setup.bash ] && source ~/ros2_ws/install/setup.bash
colcon 탭 자동완성
colcon 탭 자동완성을 켜 두면 colcon build --pack까지 치고 Tab을 눌렀을 때 --packages-select로 완성해 줍니다. OVA에는 자동완성 파일이 설치되어 있지만 ~/.bashrc에는 아직 등록되어 있지 않습니다. 먼저 파일을 확인합니다.
ls /usr/share/colcon_argcomplete/hook/
colcon-argcomplete.bash가 보이면 등록합니다.
echo "source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash" >> ~/.bashrc
source ~/.bashrc
등록한 뒤 새 칸에서 colcon bu까지 치고 Tab을 누르면 build로 완성됩니다.
git 기본 (간단히)
OVA에는 git이 설치되어 있습니다. 코드의 변경 이력을 남기는 도구로, 이 교육에서 필수는 아니지만 다른 사람의 패키지를 내려받거나(git clone) 내 코드를 백업할 때 씁니다.
git config --global user.name "내 이름"
git config --global user.email "me@example.com"
패키지 폴더를 저장소로 만드는 최소 흐름입니다. (패키지는 3.7장에서 만듭니다.)
cd ~/ros2_ws/src/my_first_pkg
git init
git status # 변경된 파일 확인
git add . # 변경 사항을 커밋 대상에 추가
git commit -m "첫 커밋"
build/, install/, log/는 다시 만들 수 있는 폴더이므로, 워크스페이스 전체를 저장소로 만든다면 .gitignore에 build/, install/, log/ 세 줄을 넣어 제외합니다. 패키지 폴더만 저장소로 만들면 이런 걱정이 필요 없습니다.
막혔을 때
| 증상 | 확인할 것 |
|---|---|
| 독에 Tilix가 없다 | Activities에서 tilix를 검색해 열고, 실행 중인 아이콘을 우클릭해 독에 고정 |
Ctrl+Alt+D를 눌렀더니 창이 사라졌다 | 같은 키를 한 번 더 누르면 돌아옵니다. 아래 분할은 단추 ④나 Ctrl+Alt+A |
| 한 칸에 입력했는데 모든 칸에 글자가 들어간다 | 메뉴의 Synchronize Input이 켜져 있는지 확인하고 끈다 |
| 붙여넣기가 안 된다 | 터미널에서는 Ctrl+V가 아니라 Shift+Ctrl+V |
새 터미널에서 ros2를 찾지 못한다 | grep -n "source" ~/.bashrc로 120번 줄이 있는지, 새 칸을 열었는지 확인 |
한눈에 정리
- 터미널은 Tilix 한 창에서 칸을 나눠 쓴다. 독의 Tilix 아이콘으로 열고,
Ctrl+Alt+T는 기본 터미널이다. - 칸은 위쪽 단추 ③(오른쪽)과 ④(아래)로 나누고
Alt+방향키로 이동한다.Ctrl+Alt+D는 Ubuntu의 창 숨기기와 겹친다. - 메뉴에서 칸 배치를 저장하고, 입력 동기화는 쓴 뒤 바로 끈다.
source /opt/ros/humble/setup.bash는 터미널마다 필요하고 OVA의~/.bashrc120번 줄에 이미 들어 있다.- 빌드한 워크스페이스는 121번 줄이 불러온다.
>와>>를 헷갈리면.bashrc가 지워진다. - colcon 자동완성은
colcon-argcomplete.bash를~/.bashrc에서 source하면 켜진다.
확인 문제
Q1. Tilix에서 3칸 배치(왼쪽 한 칸, 오른쪽 위아래 두 칸)를 만들려면 단추를 어떤 순서로 누르나요?
③(오른쪽에 터미널 추가)을 먼저 누르면 오른쪽에 새 칸이 생기고 입력 위치가 그 칸으로 옮겨 갑니다. 이어서 ④(아래에 터미널 추가)를 누르면 오른쪽 칸이 위아래로 나뉩니다.
Q2. Tilix에서 `Ctrl+Alt+D`로 칸을 나눴더니 창이 모두 사라졌습니다. 왜 그런가요? 어떻게 되돌리고, 대신 무엇을 쓰나요?
Ubuntu에서 Ctrl+Alt+D는 열려 있는 창을 모두 숨기는 "바탕화면 보기" 단축키와 겹치기 때문입니다. 같은 키를 한 번 더 누르면 창이 돌아옵니다. 아래로 나눌 때는 위쪽 막대의 단추 ④나 Ctrl+Alt+A를 씁니다.
Q3. echo 'source /opt/ros/humble/setup.bash' > ~/.bashrc 처럼 > 하나로 실행하면 어떻게 되나요?
>는 파일 내용을 통째로 덮어씁니다. 기존 ~/.bashrc의 설정이 모두 사라지고 그 한 줄만 남습니다. 추가할 때는 반드시 >>를 써야 합니다. OVA에서는 이미 등록되어 있으므로 이 명령을 실행할 필요가 없습니다.
다음 장
3.5장에서는 방금 만든 세 칸 배치로 turtlesim을 실행하고 ros2 명령과 rqt를 써 봅니다.