new blog
Posts
Showing posts with label 자율주행. Show all posts
Showing posts with label 자율주행. Show all posts
Monday, 11 May 2020
Monday, 6 January 2020
자율주행기술 현황
국외 자율주행기술 현황
자율주행 기술 개발은 기술 R&D보다는 상용화 및 제품 생산에 초점을 맞추고 있어 새발 속도가 가속화되고 있다. 글로벌 시장업체인 네비갠트 리서치(Navigant Research)는 자율주행기술 및 플랫폼을 개발하고 있는 세계 주요 19개 업체를 대상으로 경쟁력을 조사한 보고서를 발간하였다. 비전과 시장진입 전략, 파트너십, 생산 전략, 기술, 매출/마케팅/유통, 제품 품질 및 신뢰성 등에 의해 경쟁력을 비교하여 선두, 경쟁, 도전, 하위 그룹으로 구분한다. GM, 구글 Waymo, Daimler, Ford 등이 선두 그룹을 형성하였고, PSA, Toyota, Volvo, Baidu, Navya, 현대 등은 경쟁그룹으로, Apple, Uber, 테슬라, 혼다 등은 도전그룹으로 평가되었다.구글 Waymo
구글 자회사 웨이모 (Waymo)는 운전자없이 완전한 자율주행을 할 수 있는 시스템을 만들기위해 운전자의 지속적인 관찰이 필요한 차선 유지 등과 같은 문제를 해결하려고 노력중이다. 현재는 특정 조건에서만 운전자의 관찰이 필요한 미국자동차공학회(SAE) 기준 레벨 4의 자율주행 시스템을 완성하였다. 웨이모는 라이다와 카메라, 레이더 그리고 기타 부수적인 센서를 이용해 자동차 주변의 장애물과 사건을 인식하고 반응하는 시스템을 구축하였다.웨이모의 자율주행 소프트웨어는 크게 3가지로 관찰 단계, 행동 예측 단계, 계획 단계로 나눌 수 있다. 관찰 단계에서는 도로 주변의 물체들을 인식하고 무엇인지 구분하며 그 물체들의 속력, 방향, 가속도를 측정한다. 행동 예측 단계에서는 인식한 물체들이 도로 주변에서 어떻게 행동할지 예측한다. 웨이모는 수백만 마일을 주행한 경험을 바탕으로 예측할 수 있다. 계획 단계에서는 앞 두 단계에서 얻은 정보를 바탕으로 자동차가 어떤 길로 가야할지 계획한다. 이들은 경험상 방어적이고 소심한 운전이 가장 안전하다고 생각한다.
웨이모 시스템은 도로 종류, 거리, 차원 등 물리적 환경에 대한 깊은 이해로 실시간 정보를 통해 지도를 만들고 차의 위치를 파악할 수 있다. 뿐만 아니라 시범 주행을 통해 얻는 데이터를 수집하고 해석하는 시스템도 갖추고 있다. 인터넷 연결로 인한 해킹을 방어하는 시스템도 개발하였다.
테슬라 Tesla Autopilot
테슬라 오토파일럿(Autopilot)은 차선 유지, 자동차 컨트롤, 자율 주차, 운전자의 확인을 전제한 차선 변경 등을 제공하는 테슬라의 자율주행 시스템 및 하드웨어이다. 테슬라는 완전 자율 자동차를 제공하는 것을 목표로 하고 있다.향상된(Advanced) 오토파일럿은 교통 상황에 속도를 맞추고 차선을 유지하며, 운전자의 개입 없이도 스스로 차선을 변경한다. 또 하나의 간선도로에서 다른 간선도로로 옮겨가고 목적지에 근접하면 스스로 간선도로를 빠져나가며 자율 주차가 가능하다.
국외 공개 자율주행플랫폼 현황
Baidu Apollo
바이두는 2018년 7월 자율주행플랫폼 '아폴로 3.0'을 공개했다. '아폴로 3.0'은 미국 자동차공학회(SAE) 기준 레벨4 수준이다. 레벨4는 운전자의 개입이 필요 없는 수준이지만 만일의 상황을 대비해 운전자가 탑승해야 한다. '아폴로 3.0'에는 개발자와 파트너가 3개월 이내 자율주행차량을 개발할 수 있는 프로그램이 탑재되었다. 이 프로그램은 자율주행 주차, 무인 자율주행 배달, 무인 자율주행 셔틀 서비스로 3가지이다.주차대행의 경우 카메라, 초음파 레이더만 추가하면 모든 차량이 약 1509달러(약 168만원)의 비용으로 자율주행 주차 서비스를 이용할 수 있다. 또 자동조종 키트, 보안시스템, 운영 스케줄링 솔루션을 활용할 수 있다. 여기에 바이두의 음성인식 소프트웨어와 얼굴인식 기술, 피로감 징후 모니터링 기술, 맞춤 서비스 등 흥미로운 기술도 탑재됐다.
이 기술을 바탕으로 바이두는 올해 소프트뱅크 자회사 SB드라이브와 협력해 일본과 중국의 베이징, 심천, 우한 등 일부 도시에서 14인승 자율주행 미니버스 '아폴롱' 10대를 시범 운행할 방침이다. 아폴롱에는 바이두의 자율주행플랫폼 아폴로가 탑재됐다.
Autoware Foundation Autoware
오토웨어(Autoware)는 일본 나고야 대학과 나가사키 대학이 공동으로 개발하여 2015년 8월에 공개되었으며 현재에도 활발히 개발되고 있다. 오토웨어는 로봇 소프트웨어 플랫폼인 ROS(Robot Operation System)을 기반으로 개발된 응용 소프트웨어이다. 오토웨어는 라이다를 이용하여 만들어진 3차원 점지도가 미리 주어질 때, 주행 중에 라이다로부터 얻어진 3차원 점군 데이터를 이와 비교하여 차의 위치를 실시간으로 파악할 수 있다. 위치가 파악되면 목적지까지의 주행 경로를 계획하고 조향 휠, 가속 페달, 브레이크 페달, 기어 스틱 등을 제어해 자율 주행을 수행할 수 있다.그림은 오토웨어의 동작과정을 개략적으로 보여준다. 첫째, 인식 단계에서는 라이다를 이용하여 3차원 점지도 상에서 자차 위치를 파악하고 카메라와 함께 장애물을 인식하다. 둘째, 판단 단계에서는 파악된 정보와 입력된 최종 목적지 정보를 기반으로 안전한 주행 경로를 계획하고 주행 차선, 교차로 진입 차선 등을 결정한다. 셋째, 주행 단계에서는 주어진 주행 경로에 따라 실시간으로 자동차의 목표 조향각과 목표 속도를 결정하고 차량 제어 컴퓨터에 전달한다. 마지막으로 차량 제어 컴퓨터는 전달받은 목표를 달성하기 위해서 휠, 가속 페달, 브레이크 페달 등을 조작한다.
국외 자율주행기술 검증 프로세스 현황
Mcity Test Facility 미국 미시간 대학
Mcity Test Facility는 도시 및 교외 환경에서 자율주행자동차와 기술을 테스트 및 시뮬레이션 하기위해 제작된 테스트 장소이다. Mcity는 미시간 교통부와 협력하여 도시 및 교외 환경에서 마주치는 복잡한 차량들을 모사하는 독특한 테스트 시설을 설계했다. Mcity는 약 16에이커의 도로와 교통 인프라를 갖춘 미시간 대학의 노스(North) 캠퍼스 부지에 자리하고 있다. 교차로, 교통 표지판, 신호, 보도, 건물, 가로등, 건설 장벽 등 장애물이 있는 약 5개의 차선을 갖추고 있다.Centre of Excellence for Testing & Research of AVs (CETRAN) 싱가폴
싱가폴의 난양공과대학교(Nanyang Technological Univercity)가 이끄는 CETRAN(Centre of Excellence for Testing & Research of AVs)은 자율주행기술을 직접 개발하지는 않지만 자율주행시스템이 어떻게 작동해야 하는지, 테스트는 어떻게 해야 하는지, 자율주행 자동차에 대한 국제 기준은 어떻게 만들어져야 하는지에 대해 연구한다. CETRAN은 자동차 승객의 안전을 가장 먼저 고려하며, 대중교통 등 사회가 자율주행자동차를 신뢰하게 만드는 것이 이들의 목표이다.American Center for Mobility (ACM) 미국 미시간
ACM(American Center for Mobility)은 500에이커가 넘는 다양한 자율주행 테스트 환경을 제공한다. ACM은 자율주행자동차에 대한 테스트, 검증, 교육, 제품 기준 개발 등을 위해 설립된 글로벌 센터이다. 모든 기업, 정부, 대학 등에서 사용할 수 있다.Monday, 8 July 2019
자율주행자동차의 결정, 계획, 제어
동작 결정 decision
모션 계획 motion planning
피드백 제어 control
모션 계획 motion planning
피드백 제어 control
- 동작 결정 behaviour decision
- 이 모듈은 자율주행 자동차의 계획 및 제어 모듈에서 '보조 운전자'역할을 한다.
- 데이터(위치, 속도, 가속도, 방향, 현재 차로 정보, 특정 반경 내의 인지 개체 정보 등)을 바탕으로 동작에 관련된 결정을 내릴 수 있도록 계산
- 경로 계획 모듈의 출력 값
- 원하는 출발 지점부터 목적 지점에 이르는 차로 시퀀스
- 자율 주행 자동차 자체에 대한 속성
- 주어진 차로, 속도, 방향에서의 상대적 위치, 현재 GPS 위치, 현재 차로, 현재 목표 차로에 대한 정보
- 자율 주행 자동차에 대한 히스토리 정보
- 동작 결정 모듈의 이전 프레임, 즉 이전 사이클의 출력값에 대한 정보
- 자율 주행 자동차 주위의 장애물 정보
- 주변의 모든 객체의 속도, 차로, 방향, 그리고 예측 궤도
- 트래픽 정보 및 맵 개체 정보
- HD 맵에 정의된 차로 및 차로의 관계
- 현재 구간의 교통 규칙
- 시내 제한 속도, 동작이 합법적인지 여부 등
- 목표: 모든 정보를 활용해 자동차의 안전하고 효과적인 동작을 결정하는 것
- 문제: 데이터 성격이 다 다르고, 지역별 교통 법규 또한 다 달라 하나의 수학모델로 판단하는 것이 어려움 -> 소프트웨어 공학 개념과 교통 규칙 기반 시스템을 설계하는 방식으로 해결!
- EXAMPLE) Baysian model, Morkov Decision Process, Partially Obsevable Markov Decision Process
- 마르코프 결정 과정 Markov Decision Process
- 5가지 요소로 구성된 튜플(S,A,Pa,Ra,𝛾)로 정의
- S: 자율 주행 자동차의 상태 공간 (자동차의 위치 & 맵 요소)
- A: 동작 결정 출력 공간. 자율 주행 자동차가 수행할 수 있는 모든 동작을 고정된 집합으로 표현한 것
- follow: 전방에 달리는 차를 추종하는 상태
- switch lane: 차로 변경
- turn left / right: 교차로에서 좌/우회전 하는 상태
- yield: 다른 자동차에게 양보
- overtake: 다른 차를 추월하는 상태
- stop: 신호등과 보행자 앞에서 정지하는 상태
- Pa(s, s') = Pa(s' | s, a)는 자율 주행 자동차가 현재 상태 s에서 동작 a를 수행할 때 상태 s'에 도달할 조건부 확률
- Ra(s, s')는 reward function으로 상태 s에서 동작 a를 수행함으로써 상태 s'로 변환할 때 보상. 여기서 보상이란 상태 변환을 종합적으로 평가. (안전성, 편안함, 목적지 도달, 난이도 등)
- 보상함수를 만들 때 고려해야 하는 것
- 목적지 도달: 경로에서 이탈하면 페널티, 경로를 잘 지키면 보상 지급
- 안전성 및 충돌 방지: 충돌을 발생시키면 페널티를 주고, 충돌 가능성이 낮거나 충돌 가능 지점과 거리가 멀수록 보상을 지급
- 편안함 및 부드러움: 비슷한 속도를 유지하며 가속 또는 감속하는 동작이 급격한 가속이나 감속을 하는 동작보다 더 높은 보상을 받아야 한다.
- 𝛾: decay factor 미래보다 현재가 더 가치있게
- 문제: S -> A로 표현되는 최적 정책을 찾는 것
- 시나리오 기반의 분할 정복 접근법
- divide and conquer개념을 적용해 자율 주행 자동차 주변을 여러가지 시나리오로 분할, 각 객체에 대한 individual decision을 계산 한 다음, 자동차 자체에 대한 synthetic decision을 계산해서 individual을 모두 취합
- Synthetic decision: 자동차 자체가 어떻게 동작해야 하는지에 대한 것. 최상위 동작 결정
- inidividual decision: 장애물, 신호등, 횡단보도, 정지선 등
- 시나리오 구성 및 시스템 설계
- 독립적인 작은 시나리오에 초점을 맞춰서 계산한 뒤 같은 계층의 독립 결정을 계산할 때, 경로 계획 의도와 이전 계층의 계산 결과를 공유
- 계산 후에는 합성 결정으로 통합 -> divide and conquer
2. 모션 계획 motion planning
- 궤적을 생성해서 실제 물리적으로 자동차를 제어하는피드백 제어 모듈로 보낸다.
- 2차원 평면에서 특정 공통 속성 및 제약 조건을 갖는 궤적에 대한 최적화 문제 optimization
- 최적화 개체 optimization object
- 보통 각기 다른 후보 솔루션에 대한 cost로 표현
- 동작 결정 모듈의 출력값을 반드시 따라야 함. 정확하게 도달하도록
- 도로를 자연스럽게 따라서 이동
- 제약조건 constraints
- 모션 계획 솔루션
- 시공간 궤적 계획 문제를 '경로 계획'과 '속도 계획' 두 가지로 나누어서 처리.
- 경로 계획: 주어진 동작 결정 모듈 출력 값과 비용 함수 정의로부터 2차원 평면상의 궤적 모양을 계산하는 문제만 해결
- 속도 계획: 경로 계획의 결과에 따라 자율 주행 자동차가 주어진 궤적을 따라가는 방식을 결정
- 시내 저속 주행에 적합
- 1처럼 나누지 않고 2개의 직교 방향에서 모션계획 처리
- SL coordinate system 을 따르는 s(종방향), l(횡방향)
- 계획한 궤적의 형태에 속도가 자연스럽게 반영된다는 것
- 고속도로 고속 주행에 적합
3. 피드백 제어
Thursday, 4 July 2019
자율주행을 위한 클라이언트 시스템
자율주행시스템 = 소프트웨어 + 하드웨어
다양한 컴포넌트들이 상호작용하려면 OS가 필요한데, 우리가 쓰는 ROS를 중심으로 알아보자.
< 복잡한 자율주행시스템 >
- 센싱 - GPS/ LiDAR/ Camera
- 센서는 주변 환경에서 데이터를 수집
- 인지와 동작 연산을 수행하는 컴퓨터 플랫폼으로 전달
- 인지 - 로컬라이제이션/ 개체 인식/ 개체 추적
- 의사결정 - 예측/ 경로 계획/ 장애물 회피
- 동작 계획 생성
- 제어 플랫폼으로 전달
이 전체를 통합하는 것은 클라이언트 시스템 위에서 이뤄지며, 클라이언트 시스템은 다시 OS와 하드웨어 플랫폼으로 구성된다. OS가 무엇을 하느냐? 데이터가 증가할 수록 시스템 자원을 할당하기 힘들어지는데 OS가 각 컴포넌트마다 사용할 수 있는 자원의 양을 제한해준다.
<자율 주행을 위한 OS>
- OS의 두 가지 핵심 기능
- 통신
- 자원할당
- ROS
- 노드 node: 노드는 어떤 일을 수행하는 과정이다. ex. 모터 제어 노드는 모터에 대한 정보를 읽어서 모터의 회전을 제어한다. 경로 계획 노드는 모바일 플랫폼의 동작 계획(motion planning)을 구현하는데 사용된다.
- 노드 관리자 node manager/ 마스터 master: 다른 노드를 관리한다. 각 노드마다 자신에 대한 정보를 노드 관리자에 등록해야 한다. 노드 관리자는 노드 운영에 관련된 설정 매개변수를 중앙에 저장.
- 매개변수 서버 parameter server: 매개변수 서버는 시스템에 있는 노드의 운영에 관련된 설정 매개변수를 중앙에 저장
- 메시지 message: 노드끼리 주고받는 정보
- 토픽 topic: 발행-구독 방식의 통신 메커니즘, 어떤 노드가 특정 토픽에 메시지를 발행하면 이 토픽을 구독하던 다른 노드는 그 노드가 발행한 메시지를 받게 됨.
- 서비스 service:1 대 1 통신 메커니즘, 노드가 서비스 노드에서 제공하는 서비스를 요청하면 두 노드 사이의 통신 채널을 만들어줌.
- 시스템 신뢰성
- 시스템의 견고성 robustness와 신뢰성을 높이도록 마스터 노드를 분산하는 것이 필요
- 어떻게? 주키퍼 ZooKeeper 활용
- 여러 개의 마스터 노드를 구동해 하나는 액티브 마스터 노드로 작동하고 나머지는 백업용으로 구동
- 액티브 마스터 노드가 뻗을 경우, 백업 마스터 노드 중 하나를 새로운 액티브 마스터 노드로 선정해서 작동시키면 됨! -> 견고성 확보
- 모든 노드의 상태를 감시하는 모니터 노드를 추가해야 함.
- 각 시스템에 있는 노드는 ZooKeeper에게 심박Heartbeat message를 주기적으로 보내는데, 일정 시간동안 심박 메시지를 받지 못했다면 그 노드는 죽었다고 간주
- 그러면 ZooKeeper는 모니터 노드에게 그 노드가 죽었으니 새로 구동하라고 알려줌
- 상태 / 무상태 두 경우가 있고, 상태를 저장하면 재구동 시 마지막 저장 상태를 이어서 시작 (-> 심박메시지를 보낼 때 상태 정보를 함께 보내기도 함)
- 자원 관리 및 보완
- 노드 중 하나가 공격을 당했다! ->
<컴퓨팅 플랫폼>
자율 주행 자동차에 장착된 센서들은 초당 2GB 이상의 데이터를 생성 및 전송
-> 컴퓨팅 플랫폼의 설계 방식이 실시간 성능뿐만 아니라 자율 주행 시스템의 견고성에 직접적인 영향을 미침
* 문제는: 비용, 전력 소비량, 방열heat dissipation
- 컴퓨팅 플랫폼 구현 [4]
- 기존 컴퓨팅 플랫폼
- 기존 컴퓨팅 솔루션
- 자율 주행을 위한 GPU 솔루션 중 가장 대표적인 엔비디아 PX 솔루션
- PX2에는 2개의 테그라 Tegra SoC와 2개의 파스칼 Pascal 그래픽스 프로세서 장착
- AlexNet을 구동할 때 초당 2800개 이미지 처리 가능
- DSP 기반 솔루션인 텍사스 인스트러먼츠 Texas Instuments의 TDA
- TPGA기반 솔루션
- ASIC 기반 솔루션
- 컴퓨터 아키텍쳐 설계 분석
- 부하 workload 종류에 따라 가장 적합한 컴퓨팅 장치
- 극단적인 경우 자율 주행에 관련된 태스크를 수행하는 데 있어 모바일 프로세서로도 충분한지 여부
- 자율 주행을 위한 효율적인 컴퓨팅 플랫폼을 설계하는 방법
이 세 가지를 고려해 컴퓨팅 플랫폼을 구성해야 한다.
- 부하 workload 종류에 따라 가장 적합한 컴퓨팅 장치
- = convolution과 feature extration에 적합한 장치
- CPU, GPU, DSP에서 convolution, feature extraction을 수행해보고 성능과 에너지 소비량을 비교해보겠음

- 컨볼루션) GPU가 가장 성능이 좋고(빠름), 에너지 소비량도 적음
- 특징 추출) DSP가 가장 성능이 좋고(빠름), 에너지 소비량도 적음
- 로컬라이제이션, 계획, 장애물 회피같은 자율 주행 관련 태스크에 대해서는 실험하지 않았는데, 이것들은 주로 제어 연산이라 CPU가 당연히 좋을 듯
- 모바일 프로세서 기반의 자율 주행
- 자율주행 시스템의 한계를 알아보자. ARM모바일 SoC에서 어느 정도 성능을 보여주는지

- 센서 데이터 처리 (특징 추출, 옵티컬 플로우) -> DSP
- 딥러닝 (개체 인식) -> GPU
- 로컬라이제이션 -> 2개의 CPU 스레드
- 1 -> 실시간 경로 계획
- 2 -> 장애물 회피
- ARM SoC에서 그럭저럭 잘 됨
- 로컬라이제이션 -> 25개 이미지/s
- 딥 러닝 -> 2~3개/s
- 계획 및 제어 -> 하나의 경로를 계획하는데 6ms 이내에 처리
- 전체 시스템의 평균 에너지 소비량 = 11W
- 컴퓨팅 플랫폼 설계
- 각 태스크마다 에너지 소비량과 성능 측면에서 가장 효율적인 컴퓨팅 장치를 적용하도록 이종 컴퓨팅 자원을 최대한 활용했기 때문에 >>>좋은 성능을 낼 수 있었다.<<<
- 컴퓨팅 플랫폼
- I/O 서브시스템: SoC 아키텍쳐와 프론트엔드 센서 상호작용
- DSP: 특징 추출을 위해 이미지 스트림을 전처리
- GPU: 개체 인식과 몇 가지 딥 러닝 태스크 수행
- CPU: 계획 및 제어와 상호작용 태스크를 수행하는 멀티코어
- FPGA: 데이터 압축과 업로드, 개체 추적, 트래픽 예측 등을 위한 동적 재설정/ 시분할 지원
Subscribe to:
Posts (Atom)
[ new blog ]
new blog https://jihyo-jeon.github.io/






