[ROS] ROS Introduction

Updated:

ROS log

ROS의 목적

  • 로보틱스 소프트웨어 개발을 전세계 레벨에서 공동작업 가능하도록 생태계를 구축하는 것

ROS : Meta-Operating System

  • 전통적인 운영체제(Linux, Windows, OS-X, Android 등) 위에서 동작하는 운영체제
  • 로봇 응용 소프트웨어 개발을 위한 필수 기능들을 라이브러리 형태로 제공
    • 다수의 이기종 하드웨어 송수신, 스케쥴링, 에러 처리 등
  • 로봇 소프트웨어 프레임워크를 기반으로 다양한 목적의 응용프로그램 개발
  • 유저들이 개발한 패키지를 유통하는 생태계

특징

  1. 통신 기능
    • 노드 간 데이터 통신 제공
    • 메시지 전달 인터페이스 지원
    • 메시지 파싱 기능
    • 메시지의 기록 및 재생
    • 메시지 사용으로, 다양한 프로그래밍 언어 사용 가능 (각 노드는 서로 다른 언어로 작성 가능)
    • 분산 매개 변수 시스템
  2. 로봇 관련 다양한 기능
    • 로봇에 대한 표준 메시지 정의
    • 로봇 기하학 라이브러리
    • 로봇 기술 언어
  3. 다양한 개발 도구
    • 로봇 개발에 필요한 다양한 개발 도구 제공
    • 로봇 개발의 효율성 향상
    • Command-Line Tools (GUI 없이 명령어로만 로봇 억세스)
    • RViz (강력한 3D시각화 툴)
    • RQT (GUI 개발을 위한 Qt 기반 프레임워크)
    • Gazebo (물리 엔진을 탑재, 로봇, 센서, 환경 모델 등을 지원, 3차원 시뮬레이터)

ROS 용어

  • Master : 노드와 노드간 연결 및 메시지 통신을 위한 네임 서버. HTTP 기반 XMLPRC 통신. 포트 11311 사용
  • Node : 최소 단위의 실행 가능한 프로세스
  • Package : 하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은 것
  • Message : 노드간 전송되는 데이터
  • Topic : 단방향 통신일 때 Topic 사용. 퍼블리셔 노드가 토픽을 마스터에 등록
  • Publisher(Node) : 토픽 내용에 해당되는 메시지를 송신하는 노드
  • Subscriber(Node) : 토픽 내용에 해당되는 메시지를 수신하는 노드
  • Service : 요청이 있을 때만 응답하는 서버-클라이언트 동작 (일회성 메시지 통신)
  • Catkin : ROS 빌드 시스템. CMake를 이용하고 있어서 패키지 폴더에 CMakeList 파일에 빌드 환경 기술

ref
ROS.org
ROS 수업, 세미나, 강연, 강의 등의 보조 자료

Categories:

Updated:

Leave a comment