2. 시작하기 전에
Ubuntu는 컴퓨터를 움직이는 기본 프로그램(운영체제) 중 하나입니다.
우리가 자주 사용하는 Windows나 MacOS도 운영체제이고, Ubuntu도 그 중 하나입니다.
하지만 로봇 분야에서는 Ubuntu가 표준으로 쓰입니다.
이유는?
쉽게 비교해보면
| 항목 | Windows | Ubuntu |
|---|---|---|
| 일반 사용자 | 문서, 게임, 유튜브 등 | 개발자, 연구자, 로봇 |
| 사용 목적 | 편리한 일상용 | 정확하고 자유로운 개발용 |
| 비용 | 대체로 유료 | 무료 |
즉, 로봇은 Ubuntu 위에서 움직이는 것이 가장 자연스럽습니다.
ROS는 Robot Operating System의 약자입니다.
이름은 "운영체제"지만, 사실은 로봇을 더 쉽게 만들 수 있게 도와주는 프로그램 묶음입니다.
왜 필요한가?
로봇은 여러 장치가 동시에 동작합니다.
이 모든 것들이 서로 데이터를 주고받으며 “협력”해야 로봇이 움직입니다.
ROS는 이 협력을 표준 방식으로 가능하게 해주는 “공용 언어” 역할을 합니다.
예시
같은 정보를 규칙에 맞게 주고받을 수 있게 해줍니다.
SLAM의 핵심 질문은 두 가지입니다.
“나는 지금 어디에 있는가?”
“주변 환경은 어떻게 생겼는가?”
SLAM은 이 두 가지를 동시에 해결하는 기술입니다.
왜 필요할까?
집이나 창고 같은 실내에서는 GPS가 잘 작동하지 않습니다.
그래서 로봇은 스스로 주변을 보면서 본인의 위치를 추정해야 합니다.
로봇이 사용하는 정보들:
이 데이터를 조합해서 로봇은 **“지도와 내 위치”**를 실시간으로 계산합니다.
쉽게 말하면:
“나침반 없이 지도 그리며 여행하는 탐험가” 와 같습니다.
Mapping은 지도를 만드는 과정입니다.
로봇이 돌아다니며 주변을 스캔하고, 컴퓨터는
“여기는 벽이다”
“여기는 지나갈 수 있는 통로다”
라고 기록합니다.
이렇게 만들어진 지도는 사진처럼 생긴 이미지로 저장됩니다.
예시:
██████ 벽 · · · · 통로(지나갈 수 있는 길)
Mapping은 나중에 자율주행을 하려면 반드시 먼저 해야 하는 과정입니다.
Navigation은 만들어진 지도 위에서 목적지까지 스스로 이동하는 과정입니다.
로봇이 하는 일:
하나의 예로 생각해보면:
내비게이션 앱(카카오/구글) 을 로봇이 스스로 켜고 길 찾아서 가는 것과 같습니다.
전체 개념 흐름 한 번에 보기
| 단계 | 설명 | 결과 |
|---|---|---|
| Mapping | 돌아다니면서 지도 만들기 | 주변 지형 정보 저장 |
| SLAM | 지도 + 내 위치를 동시에 계산 | "나는 지금 여기 있어." |
| Navigation | 지도 위에서 목적지까지 스스로 가기 | 자율주행 완료 |
이해를 돕는 직관적 비유 요약
| 개념 | 사람에 비유하면 | 로봇에서는 |
|---|---|---|
| Ubuntu | 우리가 살아가는 "기본 환경" | 로봇 소프트웨어를 실행하는 운영체제 |
| ROS | 공용 언어 및 소통 방식 | 센서-모터-제어가 협력하는 규칙 |
| SLAM | 지도 보며 길 찾는 Explorer | 이동하며 지도 생성 + 내 위치 추정 |
| Mapping | 주변 지역을 손으로 직접 그리는 지도 작업 | LiDAR로 벽·통로를 기록 |
| Navigation | 내비게이션 켜고 목적지까지 가기 | 지도 기반 자율주행 |