TIKI-MINI로 시작하는 ROS2 실무
목차

3. 개발 PC 환경

3.4터미널(Tilix)과 환경 설정

ROS2 실습은 터미널을 3~5개 동시에 씁니다. 한 터미널에서 노드를 실행하고, 다른 터미널에서 ros2 topic echo로 값을 보고, 또 다른 터미널에서 명령을 입력하는 식입니다. 창을 여러 개 띄우면 겹쳐서 찾기 어렵습니다. 이 교육은 한 창 안에서 터미널을 나눠 쓸 수 있는 Tilix를 씁니다. OVA에 이미 설치되어 있습니다.

Tilix 열기

바탕화면 왼쪽 막대(독)에서 Tilix 아이콘 ①을 누릅니다. 몇 초 뒤 창이 뜹니다.

Ubuntu 바탕화면 왼쪽 독에서 네 번째 아이콘인 Tilix에 빨간 원 1번이 표시되어 있다
  • ① 독의 Tilix 아이콘

Activities를 눌러 검색창에 tilix를 입력하고 Enter를 눌러도 열립니다. Ctrl+Alt+T는 Ubuntu 기본 터미널을 여는 단축키라 Tilix가 아닙니다. 독에 있는 터미널 아이콘(Tilix 바로 위)도 기본 터미널입니다.

화면 구성

처음에는 터미널이 한 칸입니다. 위쪽 막대의 단추는 다음과 같습니다.

Tilix 창 위쪽 막대. 세션 목록 1/1, 더하기, 오른쪽 칸 추가, 아래 칸 추가, 메뉴 단추에 번호 원이 표시되어 있다
  • ① 세션 목록 (1 / 1): 지금 열린 세션이 몇 개 중 몇 번째인지 보여 주고, 누르면 세션 목록이 나옵니다.
  • ② 새 세션 (+): 새 세션(탭 같은 것)을 만듭니다.
  • ③ 오른쪽에 터미널 추가 (Add terminal right)
  • ④ 아래에 터미널 추가 (Add terminal down)
  • ⑤ 메뉴: 레이아웃 저장, 입력 동기화, 단축키 목록이 들어 있습니다.

Tilix는 터미널 하나를 칸, 칸 여러 개가 모인 화면 한 장을 세션이라고 부릅니다. 세션 하나 안에서 칸을 나누고, 세션이 여러 개면 ②로 전환합니다.

칸 나누기와 이동

③을 누르면 오른쪽에 새 칸이 생기고 입력 위치도 새 칸으로 옮겨 갑니다. 이어서 ④를 누르면 지금 입력 위치가 있는 칸(오른쪽 칸)이 위아래로 나뉩니다. 이 순서로 눌러서 칸 세 개를 만듭니다.

Tilix가 세 칸으로 나뉘어 있다. 왼쪽 칸이 1번, 오른쪽 위가 2번, 오른쪽 아래가 3번으로 표시되어 있다
  • ① 왼쪽 칸: 첫 칸 (노드를 실행하는 곳으로 씁니다)
  • ② 오른쪽 위 칸: ③을 눌러 생긴 칸
  • ③ 오른쪽 아래 칸: ④를 눌러 생긴 칸

칸 이름 앞의 번호가 같은 칸의 순서입니다. 칸 오른쪽 위의 ✕를 누르거나 그 칸에서 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+방향키로 칸을 옮길 때 글자는 입력 위치가 있는 칸에만 들어갑니다. 어느 칸에 입력하는지 헷갈리면 칸 이름 줄의 번호와 커서 모양(입력 중인 칸은 속이 찬 네모)을 보세요.

메뉴 쓰기

⑤ 메뉴를 열면 다음 항목이 있습니다.

Tilix 메뉴. Save As, Synchronize Input, Keyboard Shortcuts 항목에 번호 원이 표시되어 있다
  • ① Save As…: 지금의 칸 배치를 파일(.json)로 저장합니다. 다음에 Open…으로 불러오면 같은 모양의 칸이 한 번에 만들어집니다.
  • ② Synchronize Input: 켜 두면 한 칸에서 입력한 글자가 모든 칸에 들어갑니다. 여러 칸에 같은 명령을 한꺼번에 입력할 때 씁니다. 켠 채로 rm 같은 명령을 치면 모든 칸에서 실행되니 쓰고 나서 바로 끄세요.
  • ③ Keyboard Shortcuts: 단축키 목록을 보여 줍니다. 위쪽 목록에서 Application, Session, Terminal, Nautilus, Profile을 고를 수 있고, 칸을 나누는 키는 Session 쪽에 있습니다.
Tilix 단축키 목록의 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 줄을 넣어 두면 매번 입력하지 않아도 됩니다.

터미널을 열 때 ROS2 환경이 잡히는 흐름새 터미널 열기Ctrl+Alt+T~/.bashrc 실행열 때마다 자동setup.bashsource /opt/ros/humble/setup.bash환경변수 설정PATH, PYTHONPATHROS_DISTRO=humblesource 줄은 >> 로 끝에 추가ros2, colcon명령을 찾음VS Codecode . 로 열면환경을 물려받음이미 열린 터미널적용 안 됨source ~/.bashrc 필요
새 터미널을 열면 ~/.bashrc가 setup.bash를 불러와 환경변수를 설정합니다. 이미 열려 있던 터미널은 바뀌지 않습니다.

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번 줄이 있는지, 새 칸을 열었는지 확인

한눈에 정리

  1. 터미널은 Tilix 한 창에서 칸을 나눠 쓴다. 독의 Tilix 아이콘으로 열고, Ctrl+Alt+T는 기본 터미널이다.
  2. 칸은 위쪽 단추 ③(오른쪽)과 ④(아래)로 나누고 Alt+방향키로 이동한다. Ctrl+Alt+D는 Ubuntu의 창 숨기기와 겹친다.
  3. 메뉴에서 칸 배치를 저장하고, 입력 동기화는 쓴 뒤 바로 끈다.
  4. source /opt/ros/humble/setup.bash는 터미널마다 필요하고 OVA의 ~/.bashrc 120번 줄에 이미 들어 있다.
  5. 빌드한 워크스페이스는 121번 줄이 불러온다. >와 >>를 헷갈리면 .bashrc가 지워진다.
  6. 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를 써 봅니다.