[실습] ROS

Hyungseop Lee·2023년 5월 26일
0

[INU, 3-1] 센서공학

목록 보기
8/12

ROS

오픈소스

meta OS

meta OS : HW 위에 기존 OS가 있는 상태에서 그 위에 올라가는 OS.

이 기종 device 간의 통신 지원

Communication Infra

  1. Message Parsing 기능 : Sensor data protocol 제공
  2. Message 기록 및 재생 기능 : 같은 환경에서 반복 실험 가능
  3. 다양한 Programming Language 지원 : roscpp, rospy, roslisp, rosjava, ...
  4. 분산 매개 변수 system : 다시 빌드하지 않아도 외부에서 parameter를 조절 가능

로봇 관련 다양한 기능

  1. 로봇에 대한 표준 Message 정의 : camera, IMU, Lidar 등의 Sensor 표준 Message를 정의하여 모듈화, 협업 유도
  2. 로봇 기하학 Library : Robot, Sensor 등의 상대적 좌표를 트리화시키는 tf 제공
  3. 로봇 기술 언어 : 로봇의 물리적 특성 설명하는 XML 문서 기술(urdf 형식)
  4. 센싱 / 인식 : 센서 드라이버, 센싱/인식 레벨의 Library 제공
  5. Navigation : 로봇의 포즈 추정, 지도 내의 자기 위치 추정 제공 (SLAM, Navigation Library)
  6. Manipulation : 로봇 암에 사용되는 IK, FK를 포함한 다양한 Manipulation Library 제공

다양한 개발 도구

  1. Command-Line Tools : GUI 없이 명령어 만으로 거의 모든 ROS 기능 소화 가능
  2. RQT :
    • Node와 그들 사이의 연결정보 표시,
    • 시간이 지남에 따라 변화하는 숫자 plotting,
    • data를 message 형태로 기록하고 재생
  3. RViz
    • 강력한 3D 시각화 Tool 제공
    • Sensor data 시각화
  4. Gazebo
    • 물리 엔진 탑재, 3차원 Simulator
    • ROS와 매우 높은 호환성

ROS 기본 용어

Node

  • Node
    • 최소 단위의 실행 가능한 processor를 가리키는 용어.
      하나의 실행 가능한 Program으로 생각하면 된다.
    • ROS에서는 최소한의 실행단위로 Program으로 나누어 작업하게 된다.
    • 각 node는 message communication으로 data를 주고 받는다.

Package

  • Package : 하나 이상의 node, node 실행을 위한 정보 등을 묶어 놓은 것.

Message

  • Message
    • Messsage를 통해 Node간의 data를 주고받게 된다.
    • Message는 integer, floating point, boolean과 같은 변수 형태이다.
    • Lidar data의 경우 PointClound2와 같은 규격화된 message type을 주고 받을 수 있다.

Topic, Publisher, Subscriber

  • Topic
    • Message의 일종
    • Publisher Node(=Talker)가 하나의 Topic을 Master에 등록한 후,
      Topic에 대한 정보를 Message 형태로 발행한다.
      이 Topic을 수신하기 원하는 Subscriber Node(=Listener)는
      Master에 등록된 Topic의 이름에 해당되는
      Publisher Node의 정보를 받고, 이 정보를 기반으로
      Subscriber-Publisher가 직접 연결하여 Message를 송/수신하게 된다.
    • 1:1 뿐만 아니라 broadband로 한 node가 topic을 Publish하면, 공개적으로 ROS 상에 topic이 떠다니게 된다. 따라서 1:N 통신도 가능하다.

Service, Service Server, Service Client

  • Service
    • 경우에 따라 요청과 응답이 함께 사용되는 동기 방식의 Message 교환 방식도 필요하다.
    • Service는 Topic과 달리 1회성 Message 통신으로 Service의 요청과 응답이 완료되면,
      연결된 두 Node의 접속은 끊긴다.
  • Service Server : 요청을 입력으로 받고, 응답을 출력하는 Server 역할.
  • Service Client : 요청을 출력으로 하고, 응답을 입력으로 받는 Client 역할.

➡️ Sensor data는 Real Time이 중요한데,
Service는 요청과 응답에서 발생하는 Time Delay가 치명적이기 때문에
Service보다는 Topic 형태의 Message를 사용한다.

실습

profile
Efficient Deep Learning Model

0개의 댓글