이 레슨과 관련된 학습 키워드
컴퓨터 과학 & 프로그래밍 — 문제 해결의 도구 → ROS 프로그래밍 — 로봇 소프트웨어의 표준 → ROS2 기초부터 배포까지 → ROS2 기초
ROS 탄생, ROS1 vs ROS2, DDS 미들웨어, 노드/토픽/서비스/액션, QoS, 설치, rclpy, CLI 도구, 패키지 생태계
로봇을 만들 때 가장 큰 장벽은 하드웨어가 아니라 소프트웨어예요.
그림 왼쪽을 보세요. 로스 없이 개발하면 어떤 일이 벌어지는지 나와 있어요.
카메라 드라이버를 처음부터 작성해야 하고, 모터 제어 프로토콜도 직접 만들어야 해요.
센서 데이터 동기화를 매번 새로 구현하고, 슬램과 경로 계획까지 전부 직접 개발해야 하죠.
대학원생 3명이 1년을 투자해도 데모 하나 겨우 만들어요.
졸업하면 코드 유지보수가 불가능해져서 다음 학생이 처음부터 다시 시작해야 해요.
결국 연구의 90%가 인프라 구축에 소모되고, 핵심 연구에는 10%만 쓰이게 돼요.
PC를 생각해보세요. 워드프로세서를 만들 때 하드디스크 드라이버부터 작성하진 않잖아요.
윈도우나 리눅스가 하드웨어 추상화를 제공해주기 때문이에요.
로봇에게도 이런 운영체제가 필요해요. 그게 바로 로스예요.
이제 그림 오른쪽을 보세요. 로스로 개발하면 완전히 달라져요.
내비투, 무브잇, 오픈시브이 같은 패키지를 바로 가져다 쓸 수 있어요.
토픽, 서비스, 액션이라는 표준 통신 방식으로 노드끼리 데이터를 주고받아요.
하드웨어 추상화 덕분에 센서와 액추에이터를 통합 인터페이스로 다뤄요.
가제보 시뮬레이터로 실제 로봇 없이도 알고리즘을 테스트할 수 있어요.
파이썬과 C++를 자유롭게 섞어 쓸 수 있고, 깃허브에 3000개 이상의 패키지가 있어요.
결과적으로 연구에 80%를 집중하고 인프라에는 20%만 쓰면 돼요.
그림 가운데 주황색 상자를 보세요. 로스가 이 변환의 핵심이에요.
정확히 말하면 로스는 진짜 운영체제가 아니라 미들웨어에 가까워요.
리눅스 위에서 동작하면서 로봇 소프트웨어 간 통신과 도구를 제공하는 프레임워크예요.
바퀴를 재발명하지 마라, 이것이 로스의 핵심 철학이에요.
이 강의에서 로스가 왜 세계 표준이 되었는지 하나씩 알아볼게요.
선생님: 만약 카메라 드라이버부터 슬램까지 전부 직접 만들어야 한다면, 연구에 얼마나 시간을 쓸 수 있을까요?
학생: 거의 못 쓰겠네요. 인프라 만드는 데만 1년은 걸릴 것 같아요.
선생님: 맞아요. 그래서 로스가 탄생한 거예요. 이미 검증된 패키지를 가져다 쓰면 연구에 집중할 수 있거든요.
학생: 아, 그래서 로봇의 운영체제라고 부르는 거군요!
선생님: 정확해요. 다만 진짜 오에스는 아니고 리눅스 위에서 돌아가는 미들웨어에 가까워요.
학생: 미들웨어라면 프로그램들 사이에서 통신을 중개해주는 역할이겠네요?
선생님: 바로 그거예요. 노드 간 통신, 하드웨어 추상화, 개발 도구까지 한 번에 제공하는 프레임워크라고 이해하면 돼요.