ROS란 무엇인가

로봇과 대화하는 방법을 배운 기획

by 김호정

로봇은 어디에서부터 ‘로봇’이 될까?

로봇이 카메라를 보고, 바퀴를 굴리고, 사람에게 말을 거는 그 모든 순간 뒤에는 하나의 시스템이 있다.
그 시스템이 바로 ROS(Robot Operating System).
로봇을 ‘움직이는 존재’로 만드는 보이지 않는 언어다.


나는 기획자다. 코드를 짜진 않지만, 로봇 서비스와 사용자 경험을 설계한다.
그래서 이번엔 ROS가 무엇을 하고, 왜 중요한지를 내 언어로 정리해보고자 한다.




ROS, 간단히 말하면 ‘로봇용 미들웨어’

ROS는 리눅스 위에서 작동하는 로봇 전용 운영체제이자 통신 프레임워크다.
하지만 윈도우처럼 뭔가를 띄워주는 UI는 없다.
ROS는 각각의 기능을 ‘Node(노드)’라는 단위로 나누고, 이들 간 데이터를 주고받는 방식으로 작동한다.


ROS의 핵심 구조


· Node (노드):
로봇의 기능을 담당하는 단위.
예: ‘카메라’, ‘모터 제어’, ‘AI 대화’ 각각이 하나의 Node가 됨


·Message (메시지):
노드끼리 주고받는 데이터.
예: 카메라 → "사람 감지됨", 모터 → "좌회전 시작"


·Topic (토픽):
메시지를 실어 나르는 채널.
노드들은 이 Topic을 통해 데이터를 Publish(보내기) 하거나 Subscribe(받기) 한다.


예를 들어,

/camera/image_raw

라는 Topic에 카메라 노드가 이미지를 Publish 하고, 딥러닝 노드는 그걸 Subscribe 해서 사람을 인식한다.




RViz & Gazebo – 눈으로 보는 ROS

ROS는 추상적인 만큼, 시각화 도구가 중요하다.


RViz:
로봇이 지금 어디 있는지, 센서가 뭘 보고 있는지 등을 시각적으로 보여줌
→ UI/UX 기획 시 디버깅과 커뮤니케이션에 매우 유용함


Gazebo:
실제 로봇 없이도 ‘가상의 공간’에서 테스트 가능
→ 기능 테스트, 이동 경로 검증 등에 사용




기획자로서의 포인트

ROS는 '누가 무엇을 언제 어떻게 전달하는가'를 정리하는 시스템이다.
그 흐름을 이해하면, 기획자로서 다음과 같은 시야가 생긴다.

기능별 메시지 흐름 정의

사용자 행동 → 로봇 반응까지의 연결 고리 이해

UI 요소와 물리 시스템 간 인터페이스 구상


예컨대,


"사용자가 버튼을 누르면 3초 뒤에 로봇이 고개를 돌려야 해요."라는 요구사항은,

ROS 기준으론
UI → 명령 노드 → Publish → 모터 제어 노드 → 동작 수행
이런 흐름으로 해석된다.






왜 ROS를 공부했는가?

PO가 되려면 단순히 화면만 그려선 안 된다.
로봇이라는 하드웨어가 어떻게 움직이는지, 시스템이 어떤 방식으로 명령을 주고받는지 알아야 한다.
ROS는 그 핵심을 관통하는 언어였다.

나는 아직 이 시스템의 모든 것을 알진 못한다.

하지만, ‘어디서 무엇이 흐르고 있는가’를 그릴 수 있다는 것만으로도 큰 차이라고 느꼈다.




다음 학습 주제

실제 로봇에서 ROS가 어떻게 배포되고 운영되는가?