ROS 학습 (1)-ROS 소개

참고 : 주로 Guyue 블로그의 학습 과정에서 기록되며 해당 열은 https://www.guyuehome.com/category/column/ros-exploring입니다.

1. ROS 소개

ROS (Robot Operating System)는 로봇을위한 보조 운영 체제로, 하드웨어 추상 설명, 기본 드라이버 관리, 공유 기능 실행, 프로그램 간 메시지 전송, 프로그램 릴리스 패키지 관리 및 기타 기능을 제공 할 수 있습니다. ROS의 설계 목표는 로봇 연구 및 개발에서 코드 재 사용률을 높이는 것입니다. 분산 처리 프레임 워크입니다. 실행 파일을 별도로 설계하고 런타임에 느슨하게 결합 할 수 있습니다. 이러한 프로세스는 공유 및 공유를 위해 데이터 패키지와 스택으로 패키징 할 수 있습니다. 배포..
ROS의 주요 기능은 다음과 같습니다.

  • 지점 간 설계 : ROS를 사용하는 시스템에는 여러 다른 호스트에 존재하고 작동 중에 종단 간 토폴로지와 연결되는 일련의 프로세스가 포함됩니다. 이러한 ROS의 포인트 투 포인트 설계와 서비스 및 노드 관리자의 극한 가치는 컴퓨터 비전 및 음성 인식과 같은 기능으로 인한 실시간 컴퓨팅 압력을 분산시키고 로봇 팔레 타이 징이 직면하는 문제에 적응할 수 있습니다.
    여기에 사진 설명 삽입

  • 다국어 지원 : (C ++, Python 등)을 포함한 다양한 언어를 지원합니다. ROS는 간단한 언어 독립적 인 인터페이스 정의 언어를 사용하여 모듈 간의 메시지 전송을 설명하고 다국어 사용을 지원합니다.

  • 간소화 및 통합

  • 풍부한 툴킷

  • 무료 및 오픈 소스

2. ROS 전체 프레임 워크

ROS는 세 가지 수준으로 나눌 수 있습니다.

  • 계산 그래프 수준 : 프로그램 실행 방법 설명
  • 파일 시스템 수준 : 프로그램 파일을 구성하고 구조화하는 방법
  • 커뮤니티 수준 : 프로그램의 분산 관리

2.1 계산 그래프 수준

계산 그래프는 데이터를 처리하는 ROS의 지점 간 네트워크 형태입니다. 프로그램이 실행 중일 때 모든 프로세스와 데이터 처리는 지점 간 네트워크를 통해 표현됩니다.이 수준에서 중요한 개념은 노드, 메시지, 주제 및 서비스입니다.

  • 노드 : 소프트웨어 모듈이라고 할 수있는 컴퓨팅 작업을 수행하는 일부 프로세스를 나타냅니다. 여러 노드가 동시에 실행되는 경우 종단 간 통신을 그래프로 그릴 수 있으며 프로세스는 그래프의 노드이며 종단 간 연결 관계는 그래프의 원호 연결입니다.
  • 메시지 : 노드는 메시지를 전달하여 통신하며 각 메시지는 엄격한 데이터 구조입니다.
  • 주제 : 메시지는 발행 / 구독 방식으로 전달되며 노드는 주어진 주제에 메시지를 발행 할 수 있습니다. 노드는 특정 주제에 대한 특정 유형의 데이터에주의를 기울이고 구독합니다. 여러 노드가 동일한 주제를 게시하거나 구독 할 수 있습니다. 일반적으로 게시자와 구독자는 서로의 존재를 이해하지 못합니다.
    여기에 사진 설명 삽입
  • ROS의 통신 메커니즘을 서비스라고합니다. 서비스는 웹 서버와 유사하게 문자열과 엄격하게 표준화 된 메시지 정의 쌍을 사용합니다. 하나는 요청 용이고 다른 하나는 응답 용입니다.

모든 노드가 순서대로 실행되도록하기 위해 ROS 컨트롤러 (ROS 마스터)에 의해 구현 될 수 있습니다. ROS Master는 RPC (Romote Procedure Call Protocol)를 통해 등록 목록을 제공하고 다른 계산 차트를 검색합니다. 컨트롤러가 없으면 노드는 다른 노드를 찾을 수 없습니다. 다음 그림은 ROS 제어 노드 구독 및 게시 메시지를 설명합니다.
여기에 사진 설명 삽입
ROS 컨트롤러는 ROS 노드의 주제 및 서비스에 대한 등록 정보를 저장하고 노드는 컨트롤러와 통신하여 등록 정보를보고합니다. 노드가 컨트롤러와 통신 할 때 다른 등록 된 노드에 대한 정보를 수신하고 다른 등록 된 노드와의 연결을 설정할 수 있습니다. 등록 정보가 변경되면 컨트롤러도 이러한 노드를 피드백하고 동료는 노드가 새 노드와 동적으로 연결을 만들 수 있도록합니다. 노드 간의 연결은 직접적이며 컨트롤러는 쿼리 정보 만 제공합니다.

2.2 파일 시스템 수준

파일 시스템 레벨은 주로 하드 디스크에서 보는 ROS 소스 코드의 구성을 나타냅니다. 이 수준의 개념에는 패키지 (패키지), 힙 (스택)이 포함됩니다.

  • 패키지 : ROS 소프트웨어는 노드, ROS 종속 라이브러리, 데이터 세트, 구성 파일, 타사 소프트웨어 및 기타 논리적 구성 요소를 포함한 패키지로 구성됩니다. 패키지는 ROS의 재사용을 용이하게하는 사용하기 쉬운 구조를 제공합니다.
  • 힙 : 힙은 패키지의 조합이며 탐색과 같은 완전한 기능을 제공합니다. 스택은 버전 번호와 연관됩니다.

2.3 커뮤니티 수준

주로 github의 프로젝트와 유사한 ROS 네트워크에 게시 된 표현 형식을 나타냅니다.

3. ROS 설치

인터넷에 ROS 설치에 대한 많은 자습서가 있습니다. 여기 Ubuntu 18.04에서 사용할 수있는 참조 자습서가 있습니다.
https://blog.csdn.net/haiyinshushe/article/details/84256137

ROS 위키 튜토리얼 http://wiki.ros.org/ 를 직접 참조 할 수도 있습니다 .

참조 :
[1] https://www.guyuehome.com/227
[2] https://www.guyuehome.com/229

추천

출처blog.csdn.net/space_dandy/article/details/114879932