ROS : 로봇 운영체제 시스템(운영체제 아님)
1. ROS란?
The Robot Operating System (ROS) is a set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. And it’s all open source.
Robot Operating System의 약자
모바일 로봇 및 자율주행 관련 응용 프로그램 개발을 위한 오픈소스 플랫폼
- 운영체제가 아닌, 로봇 시스템에서 실행할 소프트웨어를 개발하기 위한 프레임 워크를 제공하는 오픈 소스 라이브러리 및 도구 세트
- 모바일 로봇 및 자율주행 분야에서 다양한 응용분야에서 사용됨
- 로봇 팔, 드론, 자동차, 로봇 진단, 로봇 감시 등
2. 개발 배경
- 스탠포드 대학에서 2007년 ROS의 첫번째 부분이 개발됨
- 로봇 공학 연구소에서 일하는 박사 과정 학생인 Eric Beger와 Keenan Wyrobek이 개발
- 로봇 개발에 많은 사람들이 어려움을 겪는것을 보고 개발
- 간단한 센서 하나를 제어하기 위해서 학습해야할 내용이 너무 많다
- PR1을 하드웨어 프로토타입으로 구축하고, 여기에 소프트웨어 작업을 시작함
- 2007년 1월에 시작되었으며 ROS 코드의 첫 번째 커밋은 2007년 11월 7일 SourceForge에 이루어짐
- 최초의 공식 ROS 배포판인 ROS Box Turtle은 2010년 3월 2일에 출시
- ROS가 공용 버전 패키지 세트와 함께 공식적으로 배포된 최초의 사례
3. ROS 장점 및 특징
- 오픈 소스
- 누구나 무료로 사용, 수정, 배포 가능
- 다양한 센서 지원
- LiDAR, 스테레오, 열 및 RGB 카메라, 힘/토크 센서, 모터 컨트롤러 등
- 크로스 플랫폼 지원
- 로봇 시스템을 빠르게 개발할 수 있도록 많은 도구와 라이브러리 제공
- 다양한 프로그래밍 언어 지원
- Python, C++ Matlab, Ruby 등
4. ROS 구성 요소
- 노드(Node), 토픽(Topic), 메시지(Message)등의 구성 요소로 이루어짐
- 노드는 ROS 시스템에서 실행되는 프로세스
- 토픽은 노드 사이에서 데이터를 전송하기 위한 방법
- 메시지는 토픽에서 전송되는 데이터의 형식을 정의
5. ROS의 단점
- 대규모 시스템에서 성능 문제
- ROS의 툴박스가 너무 방대하여 초기 설정에 대한 학습 곡선이 높다
- ROS 안정성 문제
- 모든 코드나 데이터들을 통신기반으로 커뮤니케이션하도록 하기 때문에,
태생적으로 엄청난 오버헤드를 부담해야 하는 치명적인 단점이 있다- 이를 극복하기 위해 직접 개발하는 회사들도 있음
6. 대체 프레임워크
- LCM
- ZeroMQ
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.