Sensing
다양한 센서를 지원하고 주변 환경에 대한 정보를 수집하며 차량의 상태와 주변의 장애물, 도로 표시, 교통 신호등을 인식
여러 센서들을 이용해 데이터를 수집하고 처리한다
Computing
sensing을 통해 수집된 데이터를 기반으로 인지, 제어, 결정의 과정을 반복하며 계산 작업을 수행한다
Actuation
차량의 Actuator(스로틀, 브레이크, 스티어링 등)을 제어하기 위한 명령을 생성 전달
제어 알고리즘을 통해 제어 입력을 생성해 속도, 방향, 가속도 등을 조절하고 생성된 경로를 따라 움직이도록 조절
센싱(Sensing)
인지(Perception)
Localization 자기 위치 파악
GPS와 IMU를 조합해서 위치 측정(위치 예측과 업데이트 반복)
Stereo 카메라 영상으로 위치 측정
라이다, 포인트 클라우드, 파티클 필터로 위치 측정
여러 센서를 융합해 정확도 개선
Object Detection(인식)
CNN 딥러닝 기반의 인식모델 사용
Object Tracking(추적)
개체 이동궤적(trajectory)을 추적
차량, 보행자와의 충돌 회피에 활용
의사결정(Decision)
동작 예측
다른 차량의 동작을 예측
확률 모델 만들고 확률 분포 구하기
경로 계획
Cost function으로 최적 경로 탐색
계산량 줄이기 위해 확률 기법 적용
장애물 회피(충돌 방지)
1단계 능동형 충돌까지의 시간과 최소거리 추정치 뽑아 경로 다시 계획
2단계 반응형 이동경로상에 장애물이 있으면 주행제어 시스템에 개입
소프트웨어
실시간성과 신뢰성 확보 필요
ROS 문제점 해결 필요
Master가 죽으면 전체 시스템 다운되며 복구 용도의 모니터가 없음
메시지를 브로드캐스팅 하면서 성능이 저하, 멀티캐스팅 메커니즘 적용하면 좋음
노드가 해킹되기 쉽다 -> 리눅스 컨테이너, 샌드박스로 보안 기능 강화 가능하다
로컬에서는 TCP/IP 통신 대신 공유 메모리 통신 방식을 적용하면 좋다
하드웨어
분산 컴퓨팅
분산 스토리지