ROS는 무엇일까??
로봇 운영체제(ROS,Robot Operating System) 라는 뜻으로 우리가 컴퓨터에서 OS (Window, Linux 등등)을 다루 듯이 로봇의 운영체제는 ROS이다
로봇과 로봇 사이의 통신을 만들어주거나
로봇과 센서의 통신을 이어주거나
사람들의 코드(오픈소스)와 쉽게 연결(통신)시켜주는 도구
즉, 위와 같은 성질을 사용하고 싶어서 OpenCR를 사용한다고 생각하면 된다
<단점>
- 단일 로봇을 위한 솔루션이다 -> 애초에 디자인 타겟이 되었던 로봇이 존재한다
- 높은 PC 연산능력을 요구한다
- 높은 네트워크 의존성 -> 와이파이 꺼지면 망한다
- 보장되지 않는 실시간성
- 임베디드 시스템에서의 사용이 어렵다
- Linux 위주의 개발
- 그래서 ROS 2 가 개발되고 있다
<ROS의 목적>
Open source Robotics Foundation이 관리를 하는데
그래서 Robot을 다같이 개발을 하자는 취지로 만들어졌다
그래서
Node간 메시지 교환 방식으로 프로그램을 잘개 나누어 공동개발이 가능하다
여러가지 도구를 지원한다
모델링, 센싱, 인식, 내비게이션, 매니퓰레이션 기능을 지원한다
<ROS의 특징>
Meta OS 즉 OS의 상위개념 OS를 묶는 OS 이다
분산 컴퓨팅에서 프로그램과 컴퓨팅 자원을 가상화 레이어로 연결하여 분산된 컴퓨팀 자원을 스케쥴링 관리 한다
즉, window위에 OS 라고 생각을 하면 된다
이로써 OS가 설치된 여러 컴퓨터를 하나의 시스템으로 동작하도록 하는 시스템이다
window, linux, macOS 전부 라이브러리 형태로 사용할 수 있어서 여러 PC와 로봇을 효과적으로 통합이 가능하다
하지만 우분투가 짱짱이고 macOS는 그저 그렇고 window는 비추
스마트폰은 IOS 보단 Android를 추천한다
이런 느낌
또한 메시지 파싱 기능을 제공한다 Node간 메시지를 전달하기 위한 인터페이스를 제공
다양한 프로그래밍 언어에서 사용 가능한 메시지 라이브러리이다
C++, JAVA, Lisp, Python 등 다양한 프로그래밍 언어를 지원한다
분산 매개 변수 시스템 -> 시스템에서 사용하는 변수를 모든 기기가 실시간으로 공유 수정 가능
(OS위의 Global 변수라고 생각 가능)
로봇 기하학 라이브러리 제공
로봇, 센서, 모터 등 로봇 부품과 Map, 물체 등의 좌표표현을 해준다
다운로드 받을때는
ROS 버전을 고려해야한다
관련 강의
https://www.youtube.com/watch?v=1v8jXaSdSME
'Robotics > ROS' 카테고리의 다른 글
[Robotics] ROS에 대하여 (0) | 2023.03.23 |
---|---|
[Robotics] 아두이노 우분투 개발환경 설정 (0) | 2023.03.23 |
[Robotics] 라즈베리파이 원격 연결 (1) | 2023.03.13 |
[Robotics] OpenCR 보드 와 Dynamixel (0) | 2023.03.07 |
[아두이노] 기초문법 다지기 (0) | 2023.03.05 |