ROS란?
Personal Robot을 위해 만들어진 운영체제, 로봇 소프트웨어 개발을 위해 Tool Box를 제공하는 소프트웨어 프레임 워크.
로보틱스에서 많이 사용되는 모델링, 센싱, 인식, 네비게이션, 매니퓰레이션 기능 지원 -> 로봇 생태계 구성
ROS는 리눅스, 윈도우 같은 전통적인 운영체제를 기반으로 하는 메타운영체제이다. 메타운영체제의 최대 장점으로는 이기종 디바이스 간의 통신을 지원한다. 즉, 서로 다른 모듈로 구성되어 있는 로봇 내에서 데이터 교환을 제공한다.
ROS 특징
1. 노드간의 메시지 전달 인터페이스 지원 및 통신 인프라 제공
-메시지 파싱 가능
로봇 개발 시 빈번히 사용되는 통신 시스템 제공, 캡슐화 및 코드 재사용을 촉진하는 노드들 간의 메시지 전달 인터페이스 제공
-메시지 기록 및 재생
노드 간 송/수신되는 데이터인 메시지를 저장하고 필요시에 재사용 가능, 저장된 메시지를 기반으로 반복적인 실험가능, 알고리즘 개발에 용이
-메시지 사용으로 인한 다양한 프로그래밍 언어 사용 가능
노드 간의 데이터 교환이 메시지를 통해 이루어지기 때문에 각 노드는 서로 다른 언어로 작성 가능
-분산 매개 변수 시스템
시스템에서 사용되는 변수를 글로컬 키값으로 작성하여 공유 및 수정하여 실시간으로 반영
2. 로봇특화 기능 제공
-로봇에 대한 표준 메시지 정의
카메라, IMU, 레이저 등의 센서 / 오도메트리, 경로 및 지도 등의 내비게이션 데이터 등의 표준 메시지를 정의하여 모듈화, 협업 작업을 유도, 효율성 향상
-로봇 기하학 라이브러리 제공
로봇, 센서 등의 상대적 좌표를 트리화 시키는 TF(Transform)제공 -> 상대좌표계 변환
-진단 시스템
로봇의 상태를 한눈에 파악할 수 있는 진단 시스템 제공
-센싱/인식
센서 드라이버, 센싱/인식 레벨의 라이브러리 제공
-내비게이션
로봇에서 많이 사용되는 로봇의 포즈 추정, 지도내의 자기 위치 추정제공, 지도 작성에 필요한 SLAM, 작성된 지도 내에서
목적지를 찾아가는 Navigation 라이브러리를 제공
-매니퓰레이션
로봇 암에 사용되는 IK,FK는 물론 응용단의 Pick and Place를 지원하는 다양한 Manipulation 라이브러리 제공
3. 로봇 개발에 필요한 다양한 개발 도구를 제공
- Command Line Tools
GUI없이 ROS에서 제공되는 명령어로만 로봇 엑세스 및 거의 모든 ROS기능 소화 가능
-RViz -> 시각화 툴
강력한 3D 시각화 툴을 제공
레이저, 카메라 등의 센서 데이터를 시각화, 로봇 외형과 계획된 동작을 표현
-RQT
그래픽 인터페이스 개발을 위한 Qt기반 프레임 워크 제공
노드 사이의 연결 정보를 표시
인코더,전압 또는 시간이 지남에 따라 변화하는 숫자를 폴로팅 데이터 형태로 기록하고 재생
-Gazebo
물리 엔진을 탑재하여 로봇,센서, 환경 모델 등을 지원하는 3차원 시뮬레이터로 ROS와 높은 호환성을 가진다.
'FOSCAR-(Autonomous Driving) > ROS 스터디' 카테고리의 다른 글
[2025 ROS 스터디] 신채영 #1주차 - ROS 개요 및 설치 (0) | 2025.01.17 |
---|---|
[2025 ROS 스터디] 홍동형 #1주차 - ROS소개 (0) | 2025.01.16 |
[2025 ROS 스터디] 이동규 #1주차 : ROS 스터디 전 개요 (1) | 2025.01.16 |
[2025 ROS 스터디] 이승찬 #1주차 - 로봇 운영체제 ROS (0) | 2025.01.16 |
[2025 ROS 스터디] 이영상 #1주차 (1) | 2025.01.16 |