1. ROS란?

 

1) 개념

 

- Robot Operation System의 약자로 로봇 운영체제를 말함

- 로봇이 사용자의 목적에 따라 움직이고 제어되도록 할 수 있는 플랫폼

- 사용자가 작성한 소스코드를 통해 사용자가 원하는 대로 움직이고 다른 기기로부터 값을 받아 제어 가능

 

2) 용어

 

- 패키지 : ROS 소프트웨어의 기본 단위로 패키지는 노드, 라이브러리, 환경설정 파일들을 통합하는 최소의 빌드 단위

- 패키지 매니페스트 : 패키지의 작성자, 라이선스, 의존성, 컨피그레이션 플레그 등을 포함하는 패키지 정보

- 메타 패키지 : 특수한 목적을 위한 패키지 그룹을 지칭 ex) 내비게이션 스택

- 메시지 : 한 ROS 프로세서에서 다른 ROS 프로세서로 정보를 전달하는 한 형태

- 서비스 : 프로세스간의 요청/응답 상호작용

- 노드

: 최소 단위의 실행 가능한 프로세서를 가리키는 용어로 하나의 실행 가능한 프로그램을 의미

: 각 노드는 메시지 통신으로 데이터를 주고 받음

: 메시지를 보내는 노드는 publisher(발행자), 메시지를 받는 노드는 subscriber(구독자)이라고 함

- 마스터 : 각 노드들의 정보를 가지고 있으며 어떤 노드가 어떤 토픽으로 메시지를 주고 받는지 관리하는 일종의 서버

 

 

2. ROS 동작 원리

 

1) ROS 동작 원리

 

 

① 마스터 실행

② 노드 실행

③ 마스터가 구독자에 발행자 정보 전달

④ 구독자가 발행자에 접속 요청

⑤ 발행자가 구독자에 접속 응답

⑥ 발행자가 구독자 노드에 TCP/IP 방식 접속

⑦ 발행자가 구독자에 메시지 전달

 

 

3. ROS 특성

 

1) 특성

 

- 하드웨어를 직접 구동하는 것보다 데이터와 알고리즘 처리를 통한 행동 결정이나 제어에 초점을 맞춤

- 사용자가 쉽게 개발을 하고 로봇을 만들 수 있도록 도와주는 역할이 부각된 개발 환경

- 노드 간의 메시지 교환 방법으로 복잡한 프로그램을 나눠 공동 개발 가능

- 명렁어 도구, 시각화 도구 Rviz, GUI 도구 모음 rqt, 3차원 시뮬레이터 Gazebo 지원

- 로보틱스에서 많이 사용되는 모델링, 센싱, 인식, 내비게이션, 매니퓰레이션 기능 지원

- 같은 디바이스 간의 통신(움직이거나 데이터를 주고받음) 지원 가능

- 유닉스 기반의 다양한 운영체제에서 사용 가능

 

2) 통신 인프라

 

- 노드 간 데이터 통신 제공

- 통상적 미들웨어로 지칭되는 메시지 전달 인터페이스 지원

- 메시지 파싱 기능

: 로봇 개발 시 사용되는 통신 시스템 제공

: 캡슐화 및 코드 재사용을 촉진하는 노드들 간의 메시지 전달 인터페이스

- 메시지의 기록 및 재생

: 노드 간 송/수신되는 데이터인 메시지를 저장하고 필요 시 재사용 가능

: 저장된 메시지를 기반으로 반복적인 실험 가능, 알고리즘 개발에 용이

- 메시지 사용으로 인한 다양한 프로그래밍 언어 사용 가능

: 노드 간의 데이터 교환이 메시지를 사용하기 때문에 각 노드는 서로 다른 언어로 작성 가능

- 분산 매개 변수 시스템

: 시스템에서 사용되는 변수를 글로벌 키 값으로 작성하여 공유 및 수정하여 실시간으로 반영 가능

 

3) 로봇 소프트웨어 플랫폼

 

- 하드웨어 플랫폼과 소프트웨어 플랫폼 간의 인터페이스 확립

- 모듈형 하드웨어 플랫폼 확산

- 하드웨어에 대한 지식 없이 응용 프로그램 작성 가능

- 더 많은 소프트웨어 인력들이 로봇 제품에 참여 가능

- 유저에게 제공할 서비스에 집중하여 유저 계층 형성 및 피드백 가능

- 로봇 개발 급속도 발전 가능

 

 

4. ROS 관련 명령어

 

- roscd : 지정한 ros 패키지의 디렉터리로 이동

- roscore : -master(ROS 네임서비스) -rosout(로그기록) -parameter server(파라미터관리)

- rosrun : 노드 실행

- roslaunch : 노드를 여러개 실행 및 실행 옵션 설정

- rostopic : ros 토픽 정보 확인

- rosservice : ros 서비스 정보 확인

- rosnode : ros 노드 정보 확인

- rosparam : ros 파라미터 정보 확인 및 수정

- rosbag : ros 메시지 기록 및 재생

- catkin_create_pkg : 패키지 자동 생성

- catkin_make : 캐킨 빌드 시스템에 기반을 둔 빌드

- rospack : ros 패키지와 관련된 정보 보기

'2021 INCOGNITO > ROS' 카테고리의 다른 글

Ubuntu 18.04 + Autoware 설치  (0) 2021.07.13
Week02_ROS_TOPIC  (0) 2021.06.27

+ Recent posts