자율 주행 자동차 만들기 [자율 주행 소프트웨어 시스템의 원리와 구현 방법]
- 원서명Creating Autonomous Vehicle Systems (ISBN 9781681730073)
- 지은이리우 샤오샨(Shaoshan Liu), 리 리윤(Liyun Li), 탕 지에(Jie Tang), 우 슈앙(Shuang Wu), 장 뤽 고디오(Jean-Luc Gaudiot)
- 옮긴이남기혁, 김은도, 서영빈
- ISBN : 9791161752518
- 30,000원
- 2018년 12월 31일 펴냄 (절판)
- 페이퍼백 | 268쪽 | 188*235mm
- 시리즈 : 임베디드 시스템
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
2019년 대한민국학술원 우수학술도서 선정도서
요약
컴퓨터 및 공학 배경지식을 갖춘 일반 독자를 대상으로 한 자율 주행 자동차에 관련된 기술을 전반적으로 소개하는 최초의 책이다. 자율 주행 자동차 시스템 개발하면서 얻은 저자의 실전 경험이 담겨 있다.
이 책에서 다루는 내용
컴퓨터 및 공학 배경지식을 갖춘 일반 독자를 대상으로 자율 주행 자동차에 관련된 기술을 전반적으로 소개하는 최초의 책으로, 자율 주행 자동차 시스템 개발하면서 얻은 저자의 실전 경험이 담겨 있다. 자율 주행 자동차를 위한 시스템은 크게 세 가지 서브시스템, (1) 로컬라이제이션, 인지, 계획, 제어를 위한 알고리즘, (2) 로보틱스 OS 및 하드웨어 플랫폼을 비롯한 클라이언트 시스템, (3) 데이터 스토리지, 시뮬레이션, HD 매핑, 딥러닝 모델 트레이닝을 위한 클라우드 플랫폼 등이 복잡하게 구성된다. 알고리즘 서브시스템은 센서에서 수집한 원본 데이터로부터 의미 있는 정보를 추출해, 환경을 파악해서 동작을 결정한다. 클라이언트 서브시스템은 실시간 및 신뢰성 요구 사항을 만족하도록 이러한 알고리즘을 통합한다. 클라우드 플랫폼은 자율 주행 차량을 위한 오프라인 컴퓨팅 및 스토리지 기능을 제공한다. 클라우드 플랫폼을 활용함으로써 새로운 알고리즘을 테스트하고 HD 맵을 업데이트할 수 있을 뿐만 아니라, 인식과 추적과 의사 결정 모델에 대한 트레이닝을 향상시킬 수 있다.
이 책의 대상 독자
학생이나 연구원뿐만 아니라 실전 개발자에게 도움되도록 집필했다. 자율 주행에 관심 있는 학부생이나 대학원생이라면 자율 주행을 구성하는 전반적인 기술을 모두 살펴볼 수 있다. 자율 주행 시스템을 개발하는 현업 개발자라면, 이 책에서 소개하는 여러 가지 실전 테크닉을 참조할 수 있을 것이다. 연구원들도 이 책에서 다양한 기술에 대한 효과적이면서 깊이 있게 다루는 방대한 참고 문헌을 참고할 수 있을 것이다.
이 책의 구성
1장은 IT의 간략한 역사와 자율 주행 시스템에 관련된 알고리즘을 전반적으로 소개하고, 이러한 시스템의 아키텍처와 이를 뒷받침하는 데 필요한 인프라스트럭처를 소개한다.
2장에서는 자율 주행에서 가장 중요한 작업인 로컬라이제이션의 개념과 이를 위해 가장 많이 사용하는 접근 방식을 설명한다. GNSS, INS, LiDAR, 휠 오도메트리에 관련된 원칙과 장단점에 대해 상세히 소개하고, 이러한 기법을 다양한 방식으로 통합하는 방법도 살펴본다.
3장에서는 센서 데이터를 통해 주변 환경을 파악하는 인지 기법에 대해 살펴본다. 이 과정에서 장면 이해, 이미지 플로우, 추적 등에 대해 현재 사용하고 있는 다양한 알고리즘을 소개한다. 이미지 분류, 개체 탐지, 의미 분할 등에 사용되는 대용량 데이터 세트와 굉장히 복잡한 연산은, 인지 작업에 널리 사용되는 딥러닝 기법으로 처리하는 것이 가장 효과적인데, 이를 이용해 탐지, 의미 분할, 이미지 플로우를 처리하는 방법에 대해서는 4장에서 자세히 다룬다. 자율 주행 자동차가 주변 환경을 파악했다면 향후 발생 가능한 이벤트(예: 주변에 있는 다른 차량의 움직임)를 어떻게든 예측해서 차량의 이동 경로를 계획해야 한다. 여기에 대해서는 5장에서 다룬다. 이어지는 6장에서는 동작 결정, 계획, 제어에 대해 좀 더 상세하게 소개한다. 상명하달식 의사결정뿐만 아니라, (한 모듈은 차로 변경을 추천하고, 다른 모듈은 그 차로에서 장애물을 감지한 경우처럼) 대립되는 결정사항을 조율하는 과정에서 모듈끼리 피드백을 주고받아야 하는데, 이를 위해 행위(동작) 기반 의사결정(예: 마르코프 결정 프로세스, 시나리오 기반 분할 정복)과 동작 계획에 대한 알고리즘이 중요하다.
이러한 처리 과정은 강화 학습 기반의 계획 및 제어 기법으로 보완할 수 있다. 7장은 다양한 상황에 대한 시나리오에 완벽히 대처하도록 강화 학습 기법을 자율 주행 시스템에 통합하는 방법에 대해 설명한다. 지금까지 설명한 기법은 모두 시스템 하부에 있는 온보드 컴퓨팅 플랫폼을 통해 실행되는데, 이 내용을 8장에서 소개한다.
ROS의 개요를 설명한 뒤, 실제 하드웨어에서 적용하는 방법에 대해 간략히 소개한다. 실시간 컴퓨팅 요구사항뿐만 아니라 온보드 고려사항(전력 소모 및 방열)을 충족시키는 데 굉장히 중요한 이종 컴퓨팅에 대해서도 설명한다. 다시 말해 범용 CPU부터 GPU, FPGA를 비롯한 다양한 프로세싱 유닛을 함께 사용해야 한다. 마지막 장인 9장은 지금까지 설명한 모든 기술을 하나로 엮는 데 필요한, 다시 말해 클라우드 플랫폼은 새로 배치할 알고리즘에 대한 분산 시뮬레이션 테스트나 오프라인 딥러닝 모델 트레이닝, 고정밀HD 맵 생성 등에 대한 서비스를 제공하는 데 필요한 클라우드 플랫폼용 인프라스트럭처에 대해 소개한다.
상세 이미지
목차
목차
- 1장. 자율 주행 개요
- 1.1 자율 주행 기술의 개요
- 1.2 자율 주행 알고리즘
- 1.2.1 센싱
- 1.2.2 인지
- 1.2.3 개체 인지 및 추적
- 1.2.4 동작
- 동작 예측
- 경로 계획
- 장애물 회피
- 1.3 자율 주행 클라이언트 시스템
- 1.3.1 ROS
- 신뢰성
- 성능
- 보안
- 1.3.2 하드웨어 플랫폼
- 1.3.1 ROS
- 1.4 자율 주행 클라우드 플랫폼
- 1.4.1 시뮬레이션
- 1.4.2 HD 맵 생성
- 1.4.3 딥러닝 모델 학습
- 1.5 시작에 불과하다
- 2장. 자율 주행을 위한 로컬라이제이션
- 2.1 GNSS를 이용한 로컬라이제이션
- 2.1.1 GNSS 개요
- 2.1.2 GNSS 오차 분석
- 2.1.3 위성 기반 오차 보정 시스템
- 2.1.4 RTK와 DGPS
- 2.1.5 PPP 알고리즘
- 2.1.6 GNSS INS 통합
- 2.2 HD 맵과 라이다를 이용한 로컬라이제이션
- 2.2.1 라이다 개요
- 2.2.2 HD 맵 개요
- 2.2.3 라이다와 HD 맵을 이용한 로컬라이제이션
- 2.3 비주얼 오도메트리
- 2.3.1 스테레오 비주얼 오도메트리
- 2.3.2 모노큘러 비주얼 오도메트리
- 2.3.3 관성 비주얼 오도메트리
- 2.4 추측 항법과 휠 오도메트리
- 2.4.1 휠 인코더
- 2.4.2 휠 오도메트리 오차
- 2.4.3 휠 오도메트리 오차의 경감
- 2.5 센서 융합
- 2.5.1 어반 챌린지의 CMU 보스
- 2.5.2 어반 챌린지의 스탠퍼드 주니어
- 2.5.3 메르세데스 벤츠의 버사
- 2.6 참고문헌
- 2.1 GNSS를 이용한 로컬라이제이션
- 3장. 자율주행을 위한 인지
- 3.1 개요
- 3.2 데이터 세트
- 3.3 탐지
- 3.4 분할
- 3.5 스테레오, 옵티컬 플로우, 씬 플로우
- 3.5.1 스테레오와 깊이
- 3.5.2 옵티컬 플로우
- 3.5.3 씬 플로우
- 3.6 추적
- 3.7 결론
- 3.8 참고문헌
- 4장. 딥러닝을 통한 자율 주행의 인지
- 4.1 컨볼루션 심층 신경망
- 4.2 탐지
- 4.3 의미 분할.
- 4.4 스테레오와 옵티컬 플로우
- 4.4.1 스테레오
- 4.4.2 옵티컬 플로우
- 4.5 결론
- 4.6 참고문헌
- 5장. 예측 및 경로 계획
- 5.1 계획 및 제어의 개요
- 5.1.1 아키텍처: 넓은 의미의 계획 및 제어
- 5.1.2 모듈의 범위: 여러 모듈의 협력을 통한 문제 해결
- 5.2 트래픽 예측
- 5.2.1 분류를 이용한 동작 예측
- 자동차 동작 예측을 위한 특징 설계
- 자동차 동작 예측을 위한 모델 선택
- 5.2.2 자동차 궤적 생성
- 5.2.1 분류를 이용한 동작 예측
- 5.3 차로 수준 경로 계획
- 5.3.1 경로 계획을 위한 가중치 방향성 그래프 구성 방법
- 5.3.2 경로 계획 알고리즘
- 데이크스트라 알고리즘을 적용한 자율 주행 자동차 경로 계획 알고리즘
- A* 알고리즘을 적용한 자율 주행 자동차 경로 계획 알고리즘
- 5.3.3 경로 계획 그래프 비용: 유연한 경로 계획 또는 엄격한 경로 계획
- 5.4 결론
- 5.5 참고문헌
- 5.1 계획 및 제어의 개요
- 6장. 결정, 계획, 제어
- 6.1 동작 결정
- 6.1.1 마르코프 결정 과정 접근법
- 6.1.2 시나리오 기반의 분할 정복 접근법
- 합성 결정
- 독자 결정
- 시나리오 구성 및 시스템 설계
- 6.2 모션 계획
- 6.2.1 자동차 모델, 도로 모델, SL 좌표계
- 6.2.2 경로 계획 및 속도 계획을 통한 모션 계획
- 동적 프로그래밍을 통한 최소 비용 경로 탐색
- ST 그래프를 통한 속도 계획
- 6.2.3 종방향 계획과 횡방향 계획을 통한 모션 계획
- 횡방향 계획
- 종방향 계획
- 추종
- 양보 및/또는 추월에 의한 차로 변경
- 정지
- 6.3 피드백 제어
- 6.3.1 자전거 모델
- 6.3.2 PID 제어
- 6.4 결론
- 6.5 참고문헌
- 6.1 동작 결정
- 7장. 강화 학습 기반의 계획 및 제어
- 7.1 서론
- 7.2 강화 학습
- 7.2.1 Q 학습
- 7.2.2 액터-크리틱 방법
- 7.3 자율 주행을 위한 학습 기반 계획 및 제어
- 7.3.1 동작 결정을 위한 강화 학습
- 7.3.2 계획 및 제어를 위한 강화 학습
- 특수한 경우
- 미해결 문제와 어려운 문제에 대한 몇 가지 견해
- 7.4 결론
- 7.5 참고문헌
- 8장. 자율 주행을 위한 클라이언트 시스템
- 8.1 복잡한 자율 주행 시스템
- 8.2 자율 주행을 위한 OS
- 8.2.1 ROS 개요
- ROS의 기초
- 8.2.2 시스템 신뢰성
- 8.2.3 성능 개선
- 8.2.4 자원 관리 및 보안
- 8.2.1 ROS 개요
- 8.3 컴퓨팅 플랫폼
- 8.3.1 컴퓨팅 플랫폼 구현
- 8.3.2 기존 컴퓨팅 솔루션
- GPU 기반 컴퓨팅 솔루션
- DSP 기반 솔루션
- FPGA 기반 솔루션
- ASIC 기반 솔루션
- 8.3.3 컴퓨터 아키텍처 설계 분석
- 부하의 종류에 최적화된 컴퓨팅 장치
- 모바일 프로세서 기반의 자율 주행
- 컴퓨팅 플랫폼 설계
- 8.4 참고문헌
- 9장. 자율 주행을 위한 클라우드 플랫폼
- 9.1 개요
- 9.2 인프라스트럭처
- 9.2.1 분산 컴퓨팅 프레임워크
- 9.2.2 분산 스토리지
- 9.2.3 이종 컴퓨팅
- 9.3 시뮬레이션
- 9.3.1 BinPipeRDD
- 9.3.2 스파크와 ROS 연동하기
- 9.3.3 성능
- 9.4 모델 트레이닝
- 9.4.1 스파크를 사용하는 이유
- 9.4.2 트레이닝 플랫폼 아키텍처
- 9.4.3 이종 컴퓨팅
- 9.5 HD 맵 생성
- 9.5.1 HD 맵
- 9.5.2 클라우드를 이용한 맵 생성
- 9.6 결론