본문 바로가기
자율주행소식

자율 주행을 위한 클라이언트 시스템

by xground 2020. 10. 13.
반응형

이 글은 자율 주행 자동차 만들기(에이콘)의 내용을 스터디 하면서 정리한 글이다.

구체적인 내용이 궁금하신 분은 해당 책을 확인하시기 바랍니다.

 

본 내용은 저자가 자율 주행 클라이언트 시스템을 구성한 아이디어를 설명하는 내용입니다.

 

ROS (Robot Operating System) 를 사용하여, 플랫폼 구성.

=> 다양한 환경 및 여러 센서로 부터의 실시간 처리를 위해서  ROS 를 고려.

 

자율주행 시스템의 주요한 프로세스 흐름

1) 센싱 :  GPS/IMU, LiDAR, Camera  등 =>

2) 인지 : Localization, object recognization, object tracking =>

3) 의사결정 : 예측, 경로 계획, 장애물 회피

 

ROS

주요 컴포넌트 :  ROS 마스터, ROS노드, ROS서비스

 

ROS 마스터 : 네임 서비스 제공

ROS 노드 : 다른 노드로부터 전달된 메시지를 처리하고, 새로운 메시지를 다운스트림 노드로 보낸다.

ROS 서비스 : 요청 받은 서비스를 처리하고, 결과를 전송

 

ROS 1 사용 => 아직  ROS2 안정성, 보안성 이슈 (아직 안정화가 되지 않음), ROS2의 DDS 비용(리소스) 이슈

 

주요 용어

  • 노드 : 태스크를 수행하는 프로세스
  • 노드 관리자, 마스터
  • 매개변수 서버 : 매겨변수 관리
  • 메시지 : 노드끼리 주고 받는 메시지
  • 토픽 : 통신 메커니즘 (publisher / subscriber)
  • 서비스 : 1 대 1 통신 채널

시스템의 신뢰성

시스템의 신뢰성(reliability), 견고성(robustness)를 위하여 주요한 마스트 노드를  주키퍼(ZooKeeper)를 활용하여 분산시킴 (active / standby)

노드가 죽어 있는지 판단하기 위한 health check용 heart beat 를 보냄

 

성능 개선 

통신 부하를 줄인다.

  • 로컬 통신시에 네트웍 전계층을 사용하지 않도록 보완
  • 브로드캐스트, 다중 점대점 전송방식 => 멀티캐스트로 변경
  • 직렬화/역직렬화 => 경량 직렬화/역직렬화로 변경

자원관리 및 보안

각각의 서비스를  LXC(리눅스 컨테이너)로 분리

 

하드웨어 구성 Example

  • 인텔 제온  E5 프로세서
  • 엔비디아 K80 GPU
  • DSP
  • FPGA
  • ASIC
반응형

댓글