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

3. 개발 PC 환경

3.1VirtualBox와 OVA 가상머신

왜 VM과 OVA인가

ROS2 Humble은 Ubuntu 22.04에서 가장 잘 지원됩니다. 수강생 PC가 Windows이므로 Windows 안에서 Ubuntu를 가상머신(VM) 으로 실행합니다. VM은 Windows를 건드리지 않고 지울 수 있고, 실수는 스냅샷으로 되돌립니다.

Ubuntu와 ROS2를 직접 설치하면 한두 시간이 걸리고 사람마다 결과가 조금씩 달라집니다. 그래서 이 교육은 Ubuntu 22.04, ROS2 Humble, 실습에 쓰는 패키지가 미리 설치된 OVA 파일을 나눠 줍니다. OVA는 가상머신을 파일 하나로 묶은 형식이라 가져오기만 하면 모두가 같은 환경에서 시작합니다. 이 교육의 모든 실습은 이 가상머신 안에서 합니다.

Windows PC 위에 가상머신이 얹히는 구조가상머신 (OVA로 가져옴)ROS2 Humble, tiki_slam, tiki_navigationUbuntu 22.04VirtualBoxVM 소프트웨어Windows호스트 운영체제PC 하드웨어CPU, 메모리, 디스크Windows를 건드리지 않고지우거나 스냅샷으로 되돌림OVA 파일을 가져와 가상 PC로 실행Ubuntu와 ROS2는 설치되어 있음수강생 PC의 원래 운영체제
실습 환경은 네 층으로 쌓입니다. Windows에 설치한 VirtualBox가 OVA로 가져온 가상머신을 띄우고, 그 안에 Ubuntu 22.04와 ROS2 Humble, TIKI-MINI의 slam과 navigation 패키지가 들어 있습니다.

OVA에 들어 있는 것

항목내용
파일.ova 하나, 약 6.8 GB
운영체제Ubuntu 22.04 LTS
ROSROS2 Humble, rviz2, rqt 계열, turtlesim, teleop_twist_keyboard
로봇 소프트웨어slam_toolbox, nav2_bringup, TIKI-MINI의 tiki_slam, tiki_navigation (~/ros2_ws에 빌드됨)
터미널Tilix (3.4장)
기본 설정CPU 4개, 메모리 4096 MB, 디스크 25 GB, 네트워크 NAT
계정사용자 ros2, 비밀번호 12345678 (자동 로그인)

VirtualBox 설치

https://www.virtualbox.org/wiki/Downloads에서 "Windows hosts"를 받아 설치합니다. 대부분 "다음"을 누르며 기본값으로 진행하면 됩니다. 설치 중 네트워크 어댑터가 잠깐 끊긴다는 안내가 나오면 정상입니다. 설치 후에는 PC 재부팅을 권장합니다.

PC에서 가상화가 켜져 있어야 합니다. 작업 관리자의 성능 탭에서 가상화가 "사용"으로 보이는지 확인하세요(0.2장).

OVA 가져오기

가져오면 디스크 25 GB를 쓰므로, 여유 공간이 충분한 드라이브를 쓰는 것이 좋습니다. 기본 저장 위치는 C:\Users\<사용자>\VirtualBox VMs입니다. 받은 USB나 폴더에서 OVA 파일은 02. BSP > 02. H-TIKI-MINI > 02. 가상환경 안의 ROS2.ova입니다(약 6.4 GiB).

화면은 Windows의 VirtualBox 한국어 화면입니다. 설치 직후에는 VM 목록이 비어 있습니다.

VirtualBox 관리자의 파일 메뉴에서 가상 시스템 가져오기 항목에 번호 표시
  1. ① 파일 메뉴를 엽니다.
  2. ② 가상 시스템 가져오기(Ctrl+I)를 고릅니다.
가상 시스템 가져오기 창에서 파일 칸 오른쪽 폴더 아이콘에 번호 표시
  1. ① 파일 칸 오른쪽의 폴더 아이콘을 눌러 OVA 파일을 고르는 창을 엽니다. 원본은 로컬 파일 시스템 그대로 둡니다.
파일 선택 창에서 ROS2.ova 파일과 열기 버튼에 번호 표시
  1. ① ROS2.ova를 선택합니다.
  2. ② 열기를 누르고 다음으로 넘어갑니다.
가져오기 설정 화면에서 MAC 주소 정책 드롭다운과 완료 버튼에 번호 표시
  1. ① MAC 주소 정책을 모든 네트워크 어댑터의 새 MAC 주소 생성으로 고릅니다. 여러 PC가 같은 OVA를 가져와도 같은 MAC 주소로 부딪히지 않게 하기 위한 설정입니다. 이름, CPU(4개), RAM(4096 MB)은 기본값으로도 실습이 됩니다. 화면에 보이듯 가져온 이름은 ROS2이고 같은 이름이 이미 있으면 ROS2 1처럼 번호가 붙습니다.
  2. ② 완료를 누르고 진행 막대가 끝날 때까지 기다립니다. 파일이 커서 몇 분 걸립니다.

명령으로도 가져올 수 있습니다. 이름을 정하고 싶을 때 편합니다.

# Windows PowerShell
& "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" import 파일경로.ova --vsys 0 --vmname "TIKI-ROS2"

처음 켜기

가져오기가 끝나면 목록에 VM이 나타납니다.

VirtualBox 관리자 목록에 가져온 VM과 시작 버튼에 번호 표시
  • ① 가져온 VM을 선택합니다. 전원 꺼짐 상태입니다.
  • ② 위쪽 시작을 누릅니다.

1~2분 뒤 Ubuntu 바탕화면이 나옵니다. 이 VM은 ros2 계정으로 자동 로그인되므로 비밀번호를 입력하지 않습니다. 비밀번호는 sudo처럼 관리자 권한이 필요한 명령에서 묻습니다.

바탕화면 왼쪽 막대(독)에서 터미널을 열어 아래 명령으로 환경을 확인합니다. 터미널은 Ctrl+Alt+T로도 열립니다.

lsb_release -d
echo $ROS_DISTRO
ls ~/ros2_ws/src
ros2 pkg list | grep tiki

정상이면 이렇게 나옵니다.

Description:    Ubuntu 22.04.5 LTS
humble
tiki_navigation  tiki_slam
tiki_navigation
tiki_slam

ROS_DISTRO가 비어 있거나 ros2 명령이 없다고 나오면 OVA가 제대로 가져와지지 않은 것입니다. 파일을 다시 받아 가져오세요.

디스크는 25 GB 중 약 15 GB가 쓰이고 8 GB 남짓 남아 있습니다. 빌드 결과물과 지도 파일이 쌓이면 부족해질 수 있으니 df -h /로 가끔 확인하세요.

로봇과 같은 네트워크에 연결하기 (브리지)

OVA의 기본 네트워크는 NAT입니다. NAT에서는 VM이 10.0.2.15 같은 사설 주소를 받아 인터넷은 되지만 로봇이 VM으로 들어오지 못합니다. TIKI-MINI와 ROS2 통신을 하려면 VM을 PC가 쓰는 Wi-Fi 망에 브리지로 붙입니다. 개념은 3.9장, 로봇을 켜고 연결하는 순서는 4.2장에서 다룹니다. 설정 방법만 먼저 봅니다. 먼저 PC가 로봇과 같은 Wi-Fi 망에 연결되어 있어야 합니다.

VM을 켠 상태에서 메뉴로 들어갑니다.

실행 중인 VM 창의 장치 메뉴에서 네트워크, 네트워크 설정 항목에 번호 표시
  1. ① 위쪽 장치 메뉴
  2. ② 네트워크
  3. ③ 네트워크 설정…
네트워크 설정에서 어댑터에 브리지와 이름 선택, 확인 버튼에 번호 표시
  1. ① 다음에 연결됨을 어댑터에 브리지로 바꿉니다.
  2. ② 이름에서 PC가 지금 Wi-Fi에 쓰는 네트워크 어댑터를 고릅니다. 예시는 802.11n USB Wireless LAN Card이고, 내 PC에서는 어댑터 이름이 다릅니다. VM이 실행 중이어도 바꿀 수 있습니다.
  3. ③ 확인을 누릅니다.

VM의 터미널에서 주소가 로봇과 같은 대역으로 받아졌는지 확인합니다.

ifconfig
VM 터미널의 ifconfig 출력에서 명령과 enp0s3의 inet 주소 줄에 번호 표시
  • ① ifconfig 실행. 이 명령이 없다고 나오면 ip a를 씁니다.
  • ② enp0s3의 inet 줄이 VM의 주소입니다. 위 화면은 주소를 가렸습니다. 로봇이 192.168.79.10이면 VM은 192.168.79.123처럼 앞 세 자리가 같아야 합니다. 앞 세 자리가 다르면 같은 망이 아닙니다(4.2장).

실습 중 인터넷만 쓰고 로봇은 쓰지 않을 때는 NAT로 되돌려도 됩니다.

스냅샷 만들기

VM을 끈 상태나 켠 상태에서 VirtualBox 관리자의 스냅샷(Snapshots) 탭을 열고 찍기(Take) 를 눌러 이름(예: 01-ova-clean)을 입력합니다. 실습 중 환경이 꼬이면 이 스냅샷으로 되돌려 처음 상태로 시작할 수 있습니다. 되돌리면 스냅샷 이후에 만든 파일이 사라지므로 중요한 파일은 먼저 따로 복사해 두세요.

막혔을 때

증상확인할 것
가져오기가 도중에 멈추거나 실패한다저장 위치 드라이브의 여유 공간(25 GB 이상), 파일이 끝까지 복사되었는지
VM이 시작되지 않고 가상화 오류가 난다BIOS의 가상화(Intel VT-x, AMD-V), Windows의 Hyper-V와 메모리 무결성(0.2장)
화면이 매우 느리거나 끊긴다VM의 비디오 메모리, CPU 개수, 호스트 PC의 여유 메모리. 3.2장의 3D 가속 절
로봇과 통신이 안 된다VM이 NAT로 되어 있음. 위의 브리지 설정과 ifconfig 주소 대역 확인
창 크기를 바꿔도 화면이 따라가지 않는다VM 메뉴 장치 → 게스트 확장 CD 이미지 삽입, 3.2장의 게스트 도구 절
한글 입력이 안 된다Ubuntu 설정의 입력 소스

한눈에 정리

  1. 이 교육은 VirtualBox와, Ubuntu 22.04와 ROS2 Humble이 미리 설치된 OVA를 쓴다.
  2. VM에는 tiki_slam과 tiki_navigation만 있고, 나머지 TIKI-MINI 패키지는 로봇에서 실행한다.
  3. 파일 → 가상 시스템 가져오기로 OVA를 가져오고 시작한다. 계정은 ros2이고 자동 로그인된다.
  4. echo $ROS_DISTRO가 humble이고 ros2 pkg list | grep tiki에 두 패키지가 보이면 정상이다.
  5. 가져온 직후 스냅샷을 찍어 두면 언제든 처음 상태로 돌아갈 수 있다.

확인 문제

Q1. 이 교육이 Ubuntu와 ROS2를 직접 설치하지 않고 OVA를 쓰는 이유는 무엇인가요?

설치에 시간이 오래 걸리고 사람마다 결과가 달라지기 때문입니다. OVA를 가져오면 모두가 같은 Ubuntu와 ROS2 환경에서 바로 시작할 수 있습니다. 직접 설치하는 방법은 3.2장과 3.3장에 남겨 두었습니다.

Q2. OVA 가상머신에서 `ros2 pkg list | grep tiki`를 실행하면 어떤 패키지가 보여야 하나요? 나머지 TIKI-MINI 패키지는 어디에 있나요?

tiki_slam과 tiki_navigation이 보입니다. tiki_bringup, tiki_control, tiki_description, tiki_base는 로봇 컴퓨터에 있고 로봇에서 실행됩니다. VM은 로봇이 발행하는 토픽을 받아서 지도 만들기와 길 찾기를 합니다.

Q3. OVA를 가져온 직후에 스냅샷을 찍어 두는 이유는?

실습 중 환경이 꼬이거나 설정을 잘못 바꿨을 때 처음 상태로 돌아가기 위해서입니다. 되돌리면 스냅샷 이후의 작업물이 사라지므로 중요한 파일은 따로 복사해 두어야 합니다.

다음 장

3.2장과 3.3장은 OVA 없이 Ubuntu와 ROS2를 직접 설치하는 방법이라 OVA를 쓴다면 건너뛰어도 됩니다. 3.4장에서 실습에 쓸 터미널(Tilix)과 환경 설정을 익힙니다.