ROS 기초 이론

exp()
|2022. 8. 20. 00:20

ROS = 로봇 응용 프로그램 개발할 때 필요한 소프트웨어 제공 플랫폼

: 하드웨어 추상화 (같은 종류 하드웨어 공통 명령어 집합으로 묶는 것) & 하위 디바이스 제어 & 일반 사용 기능 구현

& 프로세스간 메시지 패싱 & 패키지 관리 & 개발 환경 필요한 라이브러리 & 다양한 개발 및 디버깅 도구 제공

 

장점 : 오픈 소스 = 누구나 사용 가능


목적 = 전 세계 레벨에서 공동작업가능한 환경 구축

(코드 재사용 극대화에 초점을 둠)


기능

분산 프로세스 = 여러 노드 독립 실행, 노드 형태 프로그램이 분산 움직임

패키지 단위 관리 = 여러 프로세스를 패키지 단위 관리 (배포, 공유, 수정)

공개 레파지토리 = Github 공개 & 라이센스 밝힘

API(application Programming Interface, 애플리케이션 프로그램 인터페이스, 컴퓨터 or 컴퓨터 프로그램 사이 연결)

     = API 불러와 자신이 사용하던 코드 쉽게 적용

복수 프로그래밍 지원 = Python, C++, Lisp, java, C#, lua, ruby ...


사용 버전 = Melodic


ROS = 리눅스 작동 (Window X)


http://wiki.ros.org

ROS 정보 사이트


중요 개념

● Node = 최소 프로그램 단위

     (sensor / actuator driver, map building, planner, UI ...)

     독립적 컴파일 & 실행 &관리

     roscpp = C++ client library

     rospy = python client library

     Topic => Publish(내보내기) Subscriber(받기)

Messages and Topics = 노드 사이 주고받는 정보

Services

     양방향 동기 통신

     서비스 서버, 서비스 클라이언트간 통신

     1 to 1 request response

     클라이언트 요청 있을 시만 서버 응답

     요청, 응답 끊김 = 노드 접속 끊김

Actions

ROS Master = 작동법: roscore

Parameters

Packages and Stacks

Topic = 노드 간 메시지 

     단방향 비동기 통신

     Publish(메시지 통신) Subscriber(메시지 수신)

 

'ROS' 카테고리의 다른 글

Gazebo 시뮬레이션 구동  (0) 2022.09.06
ROS 초음파 센서 프로그래밍  (0) 2022.08.23
ROS C++ 기초 3  (0) 2022.08.21
ROS C++ 기초 2  (0) 2022.08.21
ROS C++ 기초 1  (0) 2022.08.20