KR102399488B1 - 자율 주행 플랫폼의 센서 i/o 커버리지를 향상시키기 위한 플렉시블 테스트 보드 - Google Patents

자율 주행 플랫폼의 센서 i/o 커버리지를 향상시키기 위한 플렉시블 테스트 보드 Download PDF

Info

Publication number
KR102399488B1
KR102399488B1 KR1020200003916A KR20200003916A KR102399488B1 KR 102399488 B1 KR102399488 B1 KR 102399488B1 KR 1020200003916 A KR1020200003916 A KR 1020200003916A KR 20200003916 A KR20200003916 A KR 20200003916A KR 102399488 B1 KR102399488 B1 KR 102399488B1
Authority
KR
South Korea
Prior art keywords
sensor
emulated
sensor data
sensor unit
data
Prior art date
Application number
KR1020200003916A
Other languages
English (en)
Other versions
KR20210001873A (ko
Inventor
콴 오
티파니 장
만지앙 장
Original Assignee
바이두 유에스에이 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 바이두 유에스에이 엘엘씨 filed Critical 바이두 유에스에이 엘엘씨
Publication of KR20210001873A publication Critical patent/KR20210001873A/ko
Application granted granted Critical
Publication of KR102399488B1 publication Critical patent/KR102399488B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D18/00Testing or calibrating apparatus or arrangements provided for in groups G01D1/00 - G01D15/00
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C25/00Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2832Specific tests of electronic circuits not provided for elsewhere
    • G01R31/2836Fault-finding or characterising
    • G01R31/2846Fault-finding or characterising using hard- or software simulation or using knowledge-based systems, e.g. expert systems, artificial intelligence or interactive algorithms
    • G01R31/2848Fault-finding or characterising using hard- or software simulation or using knowledge-based systems, e.g. expert systems, artificial intelligence or interactive algorithms using simulation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/20Integrity monitoring, fault detection or fault isolation of space segment
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D3/00Indicating or recording apparatus with provision for the special purposes referred to in the subgroups
    • G01D3/08Indicating or recording apparatus with provision for the special purposes referred to in the subgroups with provision for safeguarding the apparatus, e.g. against abnormal operation, against breakdown
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/005Testing of electric installations on transport means
    • G01R31/006Testing of electric installations on transport means on road vehicles, e.g. automobiles or trucks
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/282Testing of electronic circuits specially adapted for particular applications not provided for elsewhere
    • G01R31/2829Testing of circuits in sensor or actuator systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0055Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots with safety arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D2218/00Indexing scheme relating to details of testing or calibration
    • G01D2218/10Testing of sensors or measuring arrangements
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/02Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S13/00
    • G01S7/40Means for monitoring or calibrating
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/497Means for monitoring or calibrating
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/52Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S15/00
    • G01S7/52004Means for monitoring or calibrating

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Electromagnetism (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Artificial Intelligence (AREA)
  • Chemical & Material Sciences (AREA)
  • Manufacturing & Machinery (AREA)
  • Combustion & Propulsion (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Traffic Control Systems (AREA)
  • Navigation (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 자율 주행 차량(ADV) 센서 유닛에 대해 제조 테스트를 수행하기 위한 시스템 및 방법을 개시한다. ADV의 센서 유닛은 ADV 감지 및 계획 모듈에 정보를 제공하여 ADV를 위해 내비게이트하는 복수의 센서 I/O 채널을 포함한다. 센서 어레이는 센서 유닛 테스트 보드에서 에뮬레이트된다. 센서 유닛은 테스트용 센서 유닛의 흐름에 대해 관리하는 소형 소프트웨어를 포함한다. 센서 유닛 테스트 보드는 GPS, LIDAR, RADAR, 관성 측정, 하나 또는 복수의 카메라, 습도, 온도 및 압력 및 스로틀, 브레이킹 및 스티어링 입력과 같은 에뮬레이티드 센서 데이터를 제공한다. 각각의 에뮬레이티드 센서는 센서 유닛의 각각의 센서 및 I/O 채널에 대한 테스트를 확보하기 위한 자체의 데이터 유효성 검사기를 포함한다. 센서 유닛 테스트 보드는 I/O 채널에 대한 테스트의 성공/실패 상태를 지시하는, 각각의 I/O 채널에 사용되는 LED를 포함할 수 있다.

Description

자율 주행 플랫폼의 센서 I/O 커버리지를 향상시키기 위한 플렉시블 테스트 보드{Flexible Test Board to Improve Sensor I/O Coverage for Autonomous Driving Platform}
본 발명의 실시형태는 대체적으로 자율 주행 차량 작동에 관한 것이다. 보다 구체적으로, 본 발명의 실시형태는 센서 제어 시스템의 테스트 및 구현에 관한 것이다.
자율 주행 모드로 동작(예를 들어, 무인 주행)하는 차량은 승객(특히 운전자)을 일부 운전과 관련된 태스크로부터 해방시킬 수 있다. 자율 주행 모드로 작동할 시, 차량은 탑재형 센서를 사용하여 각각의 위치까지 내비게이트(navigate)할 수 있음으로써 차량을 최소한의 인간-컴퓨터 상호 작용에서 또는 그 어떠한 승객도 없는 일부 경우에서도 주행할 수 있도록 한다.
운동 계획 및 제어는 자율 주행의 핵심 동작이다. 그러나, 일반 운동 계획 동작은 주로 상이한 유형의 차량의 특징 차이에 관계없이 그의 곡률 및 속도에 따라 주어진 경로를 완주함에 있어서의 난이도를 추정한다. 동일한 운동 계획 및 제어를 모든 유형의 차량에 적용하는 것은 일부 경우에 있어서 정확하지 않거나 불안정적일 수 있다.
운동 계획을 구현하기 위해, 센서 시스템은 자율 주행 차량(ADV, Autonomous Driving Vehicle) 주변 환경과 관련되는 정보를 수집한다. 센서 시스템은 글로벌 포지셔닝 시스템(GPS, Global Positioning System), 광 검출 및 거리 측정(LIDAR, LIght Detection And Ranging) 시스템, 무선 전신 검출 및 거리 측정(RADAR, RAdio Detection And Ranging) 시스템, 하나 또는 복수의 카메라, 초음파 시스템 및 기타 센서들을 포함할 수 있다. 센서는 ADV의 컴퓨팅 시스템 내의 센서 인터페이스에 접속될 수 있다. 센서 인터페이스는 컴퓨팅 시스템과 함께 사용되도록 제조된 전용 인쇄 회로 기판(PCB, Printed Circuit Board)을 포함할 수 있다.
공장 테스트에서, GPS 신호는 ADV를 테스트할 수 있는 센서 PCB에 사용될 수 없으며, 그 원인은 적어도, GPS 센서가 가격이 매우 높고, 또한 글로벌 포지셔닝 위성과 연결되어야 하는데, 글로벌 포지셔닝 위성은 공장 환경 내부에서 사용이 불가능할 수 있기 때문이다. 이밖에, 전체 센서 어레이(GPS, LIDAR, RADAR, 카메라, 관성 측정 유닛, 초음파 센서, 글로벌 위성 항법 시스템, 온도, 습도 및 압력센서 및 ADV에 사용되는 스로틀(throttle), 브레이킹 및 스티어링(steering)의 위치 센서를 포함함)는 물리적으로 매우 클 수 있으며, 센서 PCB를 ADV에 먼저 장착시키지 않으면 센서 PCB에 연결하기가 어려울 수 있다. 센서 PCB를 ADV에 설치하여 센서 PCB가 정확하게 제조되고 결함이 없는지 여부를 테스트하는 것은 센서 PCB를 테스트하는 저효율적인 방법이다.
제1 양태에 있어서, 본 출원은 테스트 대상 센서 유닛의 기능을 검증하는 컴퓨터 실행 방법을 제공하며, 상기 방법은, 제1 에뮬레이티드 센서와 대응되는 제1 채널에 의해 제1 에뮬레이티드 센서 데이터를 상기 테스트 대상 센서 유닛에 전송하는 단계 - 상기 센서 유닛은 자율 주행 차량(ADV)에 장착된 하나 또는 복수의 센서로부터 획득한 센서 데이터를 처리하기 위한 적어도 하나의 센서 처리 모듈을 포함하며, 처리된 센서 데이터는 상기 ADV 주변의 주행 환경을 감지하기 위한 것임 - ; 상기 제1 채널에 의해 상기 테스트 대상 센서 유닛으로부터 상기 제2 에뮬레이티드 센서 데이터를 수신하여, 상기 제1 에뮬레이티드 센서 데이터와 관련된 제1 시간값을 수신하는 단계; 및 수신된 제2 에뮬레이티드 센서 데이터 또는 상기 제1 시간값에서 하나 또는 복수의 오류가 검출된 것에 응답하여, 상기 테스트 대상 센서 유닛의 제1 채널 및 상기 제1 에뮬레이티드 센서 데이터와 관련된 적어도 하나의 제1 실패 지시를 디스플레이하는 단계를 포함한다.
제2 양태에 있어서, 본 출원은, 명령어가 저장된 비일시적 기계 판독 가능 매체를 제공하며, 상기 명령어는 프로세서에 의해 실행될 경우, 상기 프로세서가 테스트 대상 센서 유닛의 기능을 검증하는 동작을 수행하도록 하며, 상기 동작은, 제1 에뮬레이티드 센서와 대응되는 제1 채널에 의해 제1 에뮬레이티드 센서 데이터를 상기 테스트 대상 센서 유닛에 전송하는 단계 - 상기 센서 유닛은 자율 주행 차량(ADV)에 장착된 하나 또는 복수의 센서로부터 획득한 센서 데이터를 처리하기 위한 적어도 하나의 센서 처리 모듈을 포함하며, 처리된 센서 데이터는 상기 ADV 주변의 주행 환경을 감지하기 위한 것임 - ; 상기 제1 채널에 의해 상기 테스트 대상 센서 유닛으로부터 상기 제2 에뮬레이티드 센서 데이터를 수신하여, 상기 제1 에뮬레이티드 센서 데이터와 관련된 제1 시간값을 수신하는 단계; 및 수신된 제2 에뮬레이티드 센서 데이터 또는 상기 제1 시간값에서 하나 또는 복수의 오류가 검출된 것에 응답하여, 상기 테스트 대상 센서 유닛의 제1 채널 및 상기 제1 에뮬레이티드 센서 데이터와 관련된 적어도 하나의 제1 실패 지시를 디스플레이하는 단계를 포함한다.
제3 양태에 있어서, 본 출원은, 데이터 처리 시스템을 제공하며, 상기 데이터 처리 시스템은, 프로세서; 및 프로세서에 의해 실행될 경우, 상기 프로세서가 센서 유닛의 기능을 검증하는 동작을 수행하도록 하는 명령어를 저장하고 상기 프로세서에 접속되는 메모리를 포함하고, 상기 동작은, 제1 에뮬레이티드 센서와 대응되는 제1 채널에 의해 제1 에뮬레이티드 센서 데이터를 상기 테스트 대상 센서 유닛에 전송하는 단계 - 상기 센서 유닛은 자율 주행 차량(ADV)에 장착된 하나 또는 복수의 센서로부터 획득한 센서 데이터를 처리하기 위한 적어도 하나의 센서 처리 모듈을 포함하며, 처리된 센서 데이터는 상기 ADV 주변의 주행 환경을 감지하기 위한 것임 - ; 상기 제1 채널에 의해 상기 테스트 대상 센서 유닛으로부터 상기 제2 에뮬레이티드 센서 데이터를 수신하여, 상기 제1 에뮬레이티드 센서 데이터와 관련된 제1 시간값을 수신하는 단계; 및 수신된 제2 에뮬레이티드 센서 데이터 또는 상기 제1 시간값에서 하나 또는 복수의 오류가 검출된 것에 응답하여, 상기 테스트 대상 센서 유닛의 제1 채널 및 상기 제1 에뮬레이티드 센서 데이터와 관련된 적어도 하나의 제1 실패 지시를 디스플레이하는 단계를 포함한다.
본 발명의 실시형태는 예시로서 비제한적인 방식으로 첨부된 도면의 각 도면에 도시되며, 도면에서 유사한 부호는 유사한 구성 요소를 지시한다.
도 1은 일 실시형태에 따른 네트워크화 시스템을 나타내는 블록도이다.
도 2는 일 실시형태에 따른 자율 주행 차량의 예시를 나타내는 블록도이다.
도 3a 내지 도 3b는 일 실시형태에 따른 자율 주행 차량과 함께 사용되는 감지 및 계획 시스템의 예시를 나타내는 블록도이다.
도 4는 일 실시형태에 따른 자율 주행 시스템의 구조를 나타내는 블록도이다.
도 5a 및 도 5b는 일 실시형태에 따른 센서 유닛의 예시를 나타내는 블록도이며, 상기 센서 유닛은 센서 유닛 테스트 보드에 연결되어 자율 주행 차량의 센서 I/O 커버리지를 향상시킨다.
도 6은 실시형태에 따른 자율 주행 차량에서 사용되는 센서 유닛의 타임 모듈을 나타내는 블록도이며, 상기 타임 모듈은 센서 유닛 테스트 보드를 이용하여 테스트할 수 있다.
도 7은 일 실시형태에 따른 타임 제너레이터의 예시를 나타내는 블록도이다.
도 8은 실시형태에 따른 자율 주행 차량에서 사용되는 센서 유닛의 타임 스탬프 모듈을 나타내는 블록도이며, 상기 타임 스탬프 모듈은 센서 유닛 테스트 보드를 이용하여 테스트할 수 있다.
도 9는 실시형태에 따른 센서 유닛 테스트 보드를 사용하여 센서 유닛을 테스트하는 방법을 나타내는 블록도이다.
도 10은 실시형태에 따른 센서 유닛 테스트 보드를 사용하여 센서 유닛을 테스트하는 방법을 나타내는 블록도이다.
도 11은 본 명세서에서 설명된 기능을 구현할 수 있는 실시형태에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
아래에 기술되는 상세한 내용을 참조하여 본 발명의 다양한 실시형태 및 양태를 설명하며, 도면에서 상기 다양한 실시형태를 도시하였다. 아래 설명과 첨부된 도면은 본 발명에 대한 설명일 뿐, 본 발명을 한정하는 것으로 해석되어서는 안된다. 본 발명의 다양한 실시형태에 대한 전면적인 이해를 제공하기 위해 많은 특정된 세부 내용을 설명하였다. 그러나 일부 경우, 본 발명의 실시형태에 대해 간결하게 논의하기 위해, 이미 잘 알려진 또는 통상적인 세부 사항에 대해 설명하지 않는다.
본 명세서에서 “일 실시형태” 또는 “실시형태”에 대한 언급은 상기 실시형태를 참조하여 설명한 특정된 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시형태에 포함될 수 있다는 것을 의미한다. 본 명세서 각각에 기재된 단어 “일 실시형태에서”는 반드시 전부 동일한 실시형태를 가리켜야 하는 것은 아니다.
일부 실시형태에 따라, 센서 유닛의 기능에 대해 테스트하는 컴퓨터 실행 방법은, 센서 유닛 테스트 보드가 제1 에뮬레이티드 센서와 대응되는 제1 채널에 의해 제1 에뮬레이티드 센서 데이터를 센서 유닛 테스트 보드에 전송하는 단계를 포함한다. 센서 유닛이 정상적으로 작동하면, 센서 유닛은 센서 유닛의 타임 모듈로부터 시간값을 복원하여 제1 에뮬레이티드 센서 데이터를 시간값과 함께 센서 유닛 테스트 보드에 도로 전송한다. 실시형태에서, 센서 유닛은 미리 결정된 규칙에 따라 수신된 제1 에뮬레이티드 센서 데이터에 대해 변환을 진행할 수 있다. 예를 들어, 센서 유닛은 수신된 제1 에뮬레이티드 센서 데이터에 대해 포맷 전환 및/또는 오류 체크를 수행할 수 있다. 제2 에뮬레이티드 센서 데이터는 센서 유닛에서 수신된 제1 에뮬레이티드 센서 데이터에 대해 변환을 수행하지 않는 경우에서의 제1 에뮬레이티드 센서 데이터 또는 수신된 제1 에뮬레이티드 센서 데이터에 대해 변환을 수행하는 경우에서의 데이터를 나타낼 수 있다. 다음, 제2 에뮬레이티드 센서 데이터를 센서 유닛 테스트 보드로 도로 전송할 수 있다. 센서 유닛으로부터 다시 수신된 제2 에뮬레이티드 센서 데이터 또는 제1 시간값에서 하나 또는 복수의 오류가 검출된 것에 응답하여, 테스트 대상 센서 유닛의 제1 채널 및 제1 에뮬레이티드 센서 데이터와 관련된 적어도 하나의 제1 실패 지시를 디스플레이 및/또는 기록한다. 실시형태에서, 하나 또는 복수의 오류를 검출하는 단계는, 센서 유닛 테스트 보드의 검사기 모듈에 의해 센서 유닛으로부터 도로 수신된 제2 에뮬레이티드 센서 데이터가 센서 유닛 테스트 보드로부터 센서 유닛에 전송된 제1 에뮬레이티드 센서 데이터와 동일한 것임을 검증하는 단계를 포함할 수 있다. 실시형태에서, 하나 또는 복수의 오류를 검출하는 단계는, 센서 유닛으로부터 도로 수신된 제2 에뮬레이티드 센서 데이터의 포맷이 에뮬레이트된 제1 센서와 대응되는 실제 제1 센서(예를 들어, GPS, LIDAR, 카메라 등)의 데이터 포맷에 매칭되는지 여부를 결정하는 단계를 더 포함할 수 있다. 다른 일 실시형태에서, 하나 또는 복수의 오류를 검출하는 단계는, 센서 유닛에 의해 생성되고 센서 유닛 테스트 보드에 의해 수신된 시간값의 포맷 및 시간값의 범위 중 하나 또는 복수를 검증하는 단계를 더 포함할 수 있다. 센서 유닛 테스트 보드의 제1 에뮬레이티드 센서는 에뮬레이트된 글로벌 포지셔닝 위성(GPS) 센서일 수 있다. 기타 에뮬레이티드 센서는 LIDAR 센서, RADAR 센서, 관성 측정 유닛(IMU) 센서, 초음파 센서, 글로벌 위성 항법 시스템(GNSS), 롱 텀 에볼루션(LTE) 셀룰러 트랜시버, 카메라, 온도센서, 습도, 압력센서 및 스로틀 위치, 브레이킹 위치 및 스티어링 위치 중 어느 하나/전부에 사용되는 위치 센서를 포함할 수 있다. 실시형태에서, 제1 에뮬레이티드 센서 출력은 제2 센서 및 하나 또는 복수의 후속 센서에 전달될 수 있음으로써, 제2/후속 에뮬레이티드 센서로부터의 에뮬레이티드 출력이 제1 에뮬레이티드 센서 및/또는 제2 에뮬레이티드 센서 출력과 관련될 수 있도록 한다. 예를 들어, 에뮬레이티드 GPS 센서 출력은 에뮬레이티드 LIDAR 출력, 에뮬레이티드 카메라 출력 중의 하나 또는 복수와 관련될 수 있다. 제2/후속 에뮬레이티드 센서 출력은 적어도 제2 에뮬레이티드 센서 출력과 관련된 시간값에 의해 제1 에뮬레이티드 센서 또는 제2 에뮬레이티드 센서 출력과 관련될 수 있다. 실시형태에서, 제3 에뮬레이티드 센서 데이터는 센서 유닛 테스트 보드에 의해 생성되어 제2 에뮬레이티드 센서(예를 들어, LIDAR 센서)와 대응되는 제2 채널에 의해 테스트 대상 센서 유닛으로 전송될 수 있다. 테스트 대상 센서 유닛은 제2 채널에 의해 제3 에뮬레이티드 센서 데이터를 수신할 수 있으며, 또한 테스트 대상 센서 유닛은 제2 시간값을 수신된 제3 에뮬레이티드 센서 데이터와 관련될 수 있도록 한다. 실시형태에서, 제2 시간값은 제1 시간값일 수 있거나 테스트 대상 센서 유닛의 타임 모듈로부터 판독된 새로운 시간값일 수 있다. 실시형태에서, 센서 유닛은 미리 결정된 규칙에 따라 수신된 제3 에뮬레이티드 센서 데이터에 대해 변환을 수행할 수 있다. 예를 들어, 센서 유닛은 수신된 제3 에뮬레이티드 센서 데이터에 대해 포맷 전환 및/또는 오류 체크를 수행할 수 있다. 제4 에뮬레이티드 센서 데이터는 센서 유닛에 수신된 제3 에뮬레이티드 센서 데이터에 대해 변환을 수행하지 않는 경우에서의 제3 에뮬레이티드 센서 데이터 또는 수신된 제3 에뮬레이티드 센서 데이터에 대해 변환을 수행하는 경우에서의 데이터를 나타낼 수 있다. 다음, 제4 에뮬레이티드 센서 데이터를 센서 유닛 테스트 보드에 도로 전송할 수 있다. 테스트 대상 센서 유닛은 제4 에뮬레이티드 센서 데이터 및 제2 시간값을 센서 유닛 테스트 보드에 도로 전송할 수 있다. 센서 유닛 테스트 보드가 수신된 제4 에뮬레이티드 센서 데이터 또는 상기 제2 시간값에서 하나 또는 복수의 오류가 검출된 것에 응답하여, 센서 유닛 테스트 보드는 상기 테스트 대상 센서 유닛의 제2 채널 및 제3 에뮬레이티드 센서 데이터와 관련된 적어도 하나의 제2 실패 지시를 디스플레이할 수 있다. 테스트 대상 센서 유닛 및 센서 유닛 테스트 보드의 구성에 따라 구성될 수 있는 바와 같이, 임의의 수의 채널 및 에뮬레이티드 센서에 대해 제2 에뮬레이티드 센서에 대한 과정을 반복할 수 있다.
일부 실시형태에 따라, 테스트 대상 센서 유닛은 복수의 I/O 채널, 적어도 2개의 I/O 인터페이스 및 타임 모듈의 센서 유닛을 포함한다. 실시형태에서, 호스트 컴퓨팅 시스템은 테스트 대상 센서 유닛의 일부일 수 있다. 테스트 대상 센서 유닛의 제1 인터페이스는 호스트 컴퓨팅 시스템과 접합될 수 있다. 호스트 컴퓨팅 시스템은 사용자가 테스트 대상 센서에 대한 테스트를 작동, 모니터링 및 기록할 수 있도록 한다. 실시형태에서, 호스트 컴퓨팅 시스템은 테스트 대상 센서 유닛의 일부를 형성할 수 있다. 테스트 대상 센서 유닛의 제2 인터페이스는 센서 유닛 테스트 보드와 접합될 수 있다. 센서 유닛 테스트 보드는 다양한 유형의 센서에 사용되는 에뮬레이티드 센서 데이터를 생성하고 상기 에뮬레이티드 센서 데이터의 유효성을 체크하는 기능을 포함할 수 있다. 센서 유닛 테스트 보드의 각각의 센서 에뮬레이터에 대해, 센서 유닛 테스트 보드는 에뮬레이티드 센서 출력을 전송할 수 있고, 또한 센서 출력의 포맷 및 내용을 검증할 수 있다. 테스트 대상 센서 유닛 내의 테스트 소프트웨어는 테스트하기 위한 I/O 채널을 선택하기 위해 테스트 대상 센서 유닛을 구성할 수 있다. 실시형태에서, 센서 유닛은 특정 I/O 채널을 위한 에뮬레이티드 센서 출력을 제공하기 위해 센서 유닛 테스트 보드를 “테스트 핑(ping)”할 수 있다. 실시형태에서, 센서 유닛 테스트 보드는 에뮬레이티드 센서와 함께 사용되도록 구성된 I/O 채널에 의해 주기적 인터페이스에서 각각의 센서에 사용되는 에뮬레이티드 센서 데이터를 연속적으로 출력할 수 있다. 예를 들어, 에뮬레이티드 GPS 출력을 생성하여 I/O 채널1에 의해 이를 테스트 대상 센서 유닛에 전송할 수 있다. 에뮬레이티드 LIDAR 출력을 생성하여 I/O 채널2에 의해 이를 테스트 대상 센서 유닛에 전송할 수 있다. 예를 들어, 채널3에 의해 에뮬레이티드 RADAR, 채널4에 의해 에뮬레이티드 IMU, 채널5에 의해 에뮬레이티드 초음파 출력, 채널6에 의해 에뮬레이티드 GNSS 데이터, 채널7에 의해 에뮬레이티드 카메라의 데이터 및 각자 대응되는 지정된 I/O 채널 번호에 의해 온도, 습도, 압력 센서와 스로틀, 브레이킹 및 스티어링에 사용되는 차량 센서 중의 하나 또는 복수에 대해 동일한 작동을 수행할 수 있다. 테스트 대상 센서 유닛의 각각의 I/O 채널에 대해, 테스트 대상 센서 유닛은 센서 유닛 테스트 보드로부터 에뮬레이티드 센서 출력을 수신할 수 있고, 선택 가능하게, 예를 들어 에뮬레이티드 센서의 타임 모듈로부터 시간값을 복원하여 대응되는 I/O 채널에 의해 시간값 및 수신된 에뮬레이티드 센서 출력을 센서 유닛 테스트 보드로 도로 전송할 수 있다. 테스트 대상 센서 유닛은 호스트 컴퓨팅 시스템이 수신된, 에뮬레이티드 센서 및 I/O 채널의 에뮬레이티드 테스트에 사용되는 데이터를 기록할 수 있도록 데이터 사용자 인터페이스 중의 대응되는 I/O 채널에 의해 동일한 데이터를 호스트 컴퓨팅 시스템에 전송할 수 있다. 이미 구성된 임의의 수의 I/O 채널 및 센서 유닛 테스트 보드 에뮬레이터 및 유효성 검사기에 대해 상기 과정을 반복할 수 있다.
실시형태에서, 비일시적 컴퓨터 판독 가능 매체는 실행 가능한 명령어를 저장할 수 있으며, 상기 명령어는 적어도 하나의 하드웨어 프로세서를 갖는 처리 시스템에 의해 실행될 경우 상기 기능 중의 어느 하나를 수행할 수 있다.
다른 일 실시형태에서, 적어도 하나의 하드웨어 프로세서를 갖는 처리 시스템은 실행 가능한 명령어로 프로그래밍된 메모리에 연결되며, 상기 명령어는 처리 시스템에 의해 실행될 경우 상기 기능 중의 어느 하나를 수행할 수 있다.
본 명세서에서 설명되는 일부 실시형태는 해당 환경에서 하나 또는 복수의 응용 프로그래밍 인터페이스(API)를 포함할 수 있으며, 상기 환경은 하나 또는 복수의 인터페이스를 통해 호출되는 기타 프로그램 코드와 상호 작용하는 프로그램 코드를 호출한다. 다양한 유형의 파라미터를 더 포함할 수 있는 다양한 기능 호출, 메시지 또는 호출(invocation)은 API에 의해 호출 프로그램과 호출되는 코드 사이에서 전송될 수 있다. 이밖에, API는 호출된 프로그램 코드에 API에서 한정되고, 호출된 프로그램 코드로 구현된 데이터 유형 또는 클래스를 사용할 수 있는 기능을 제공할 수 있다.
도 1은 본 발명의 일 실시형태에 따른 자율 주행 차량의 네트워크 구성을 나타내는 블록도이다. 도 1을 참조하면, 네트워크 구성(100)은 네트워크(102)에 의해 하나 또는 복수의 서버(103 내지 104)에 통신 가능하게 연결될 수 있는 자율 주행 차량(101)을 포함한다. 비록 하나의 자율 주행 차량을 도시하였지만 복수의 자율 주행 차량은 네트워크(102)에 의해 서로 연결될 수 있고 및/또는 서버(103 내지 104)에 연결될 수 있다. 네트워크(102)는 유선 또는 무선의 근거리 통신망(LAN), 인터넷과 같은 광역 네트워크(WAN), 셀룰러 네트워크, 위성 네트워크 또는 이들의 조합과 같은 임의의 유형의 네트워크일 수 있다. 서버(103 내지 104)는 웹(Web) 또는 클라우드 서버, 애플리케이션 서버, 백엔드 서버 또는 이들의 조합과 같은 임의의 유형의 서버 또는 서버 클러스터일 수 있다. 서버(103 내지 104)는 데이터 분석 서버, 컨텐츠 서버, 교통 정보 서버, 지도 및 관심지점(MPOI) 서버 또는 위치 서버 등일 수 있다.
자율 주행 차량은 자율 주행 모드로 설정될 수 있는 차량을 가리키며, 상기 자율 주행 모드에서, 차량은 운전자로부터 입력이 거의 없거나 전혀없는 상황에서 내비게이트하여 환경을 통과한다. 이러한 자율 주행 차량은 차량 작동 환경과 관련되는 정보를 검출하도록 구성된 하나 또는 복수의 센서를 갖는 센서 시스템을 포함할 수 있다. 상기 차량 및 이와 관련된 컨트롤러는 검출된 정보를 사용하여 내비게이트하여 상기 환경을 통과한다. 자율 주행 차량(101)은 수동 모드, 완전 자율 모드 또는 부분 자율 모드에서 작동할 수 있다.
일 실시형태에서, 자율 주행 차량(101)은 감지 및 계획 시스템(110), 차량 제어 시스템(111), 무선 통신 시스템(112), 사용자 인터페이스 시스템(113), 정보 오락 시스템 및 센서 시스템(115)을 포함하나 이에 한정되지 않는다. 자율 주행 차량(101)은 일반 차량에 포함되는 엔진, 휠, 핸들, 변속기 등과 같은 일부 흔히 사용되는 구성 요소들을 더 포함할 수 있으며, 상기 구성 요소는 차량 제어 시스템(111) 및/또는 감지 및 계획 시스템(110)에 의해 가속 신호 또는 명령, 감속 신호 또는 명령, 스티어링 신호 또는 명령, 브레이킹 신호 또는 명령 등과 같은 다양한 통신 신호 및/또는 명령에 의해 제어될 수 있다.
구성 요소(110) 내지 구성 요소(115)는 인터커넥트, 버스, 네트워크 또는 이들의 조합에 의해 상호 통신 가능하게 연결될 수 있다. 예를 들어, 구성 요소(110) 내지 구성 요소(115)는 컨트롤러 영역 네트워크(CAN) 버스를 통하여 상호 통신 가능하게 연결될 수 있다. CAN 버스는 마이크로컨트롤러 및 장치가 호스트가 없는 응용환경에서 서로 통신할 수 있도록 설계된 차량 버스 표준이다. 이는 최초에 자동차 내부의 다중 전기 배선을 위해 설계된 메시지 기반 프로토콜이지만, 기타 다양한 환경에도 사용된다.
도 2를 참조하면, 일 실시형태에서, 센서 시스템(115)은 하나 또는 복수의 카메라(211), 글로벌 포지셔닝 시스템(GPS) 유닛(212), 관성 측정 유닛(IMU; 213), 레이더 유닛(214) 및 광 검출 및 거리 측정(LIDAR) 유닛(215)을 포함하나 이에 한정되지 않는다. GPS 시스템(212)은 자율 주행 차량의 위치에 관한 정보를 제공하도록 작동될 수 있는 트랜시버를 포함할 수 있다. IMU 유닛(213)은 관성 가속도에 기반하여 자율 주행 차량의 위치 및 방향의 변화를 감지할 수 있다. 레이더 유닛(214)은 무선 전기 신호를 이용하여 자율 주행 차량의 로컬 환경 내의 객체를 감지하는 시스템을 나타낼 수 있다. 일부 실시형태에서, 객체를 감지하는 것 외에, 레이더 유닛(214)은 객체의 속도 및/또는 전진 방향을 별도로 감지할 수 있다. LIDAR 유닛(215)은 레이저를 사용하여 자율 주행 차량이 위치한 환경 중의 객체를 감지할 수 있다. 기타 시스템 구성 요소 외에도, LIDAR 유닛(215)은 하나 또는 복수의 레이저 소스, 레이저 스캐너 및 하나 또는 복수의 검출기를 더 포함할 수 있다. 카메라(211)는 자율 주행 차량 주변 환경의 이미지를 수집하는 하나 또는 복수의 장치를 포함할 수 있다. 카메라(211)는 스틸 카메라 및/또는 비디오 카메라일 수 있다. 카메라는 예를 들어 카메라를 회전 및/또는 경사진 플랫폼에 장착함으로써 기계적으로 움직일 수 있다.
센서 시스템(115)은 소나 센서, 적외선 센서, 스티어링 센서, 스로틀 센서, 브레이킹 센서 및 오디오 센서(예를 들어, 마이크로폰)와 같은 기타 센서들을 더 포함할 수 있다. 오디오 센서는 자율 주행 차량 주변의 환경으로부터 소리를 수집하도록 구성될 수 있다. 스티어링 센서는 핸들, 차량의 휠 또는 이들의 조합의 스티어링 각도를 감지하도록 구성될 수 있다. 스로틀 센서 및 브레이킹 센서는 각각 차량의 스로틀 위치 및 브레이킹 위치를 감지한다. 일부 상황에서, 스로틀 센서 및 브레이킹 센서는 통합식 스로틀/브레이킹 센서로 통합될 수 있다.
일 실시형태에서, 차량 제어 시스템(111)은 스티어링 유닛(201), 스로틀 유닛(202)(가속 유닛으로 지칭되기도 함) 및 브레이킹 유닛(203)을 포함하나 이에 한정되지 않는다. 스티어링 유닛(201)은 차량의 방향 또는 전진 방향을 조정하기 위한 것이다. 스로틀 유닛(202)은 모터 또는 엔진의 속도를 제어하며 나아가 차량의 속도 및 가속도를 제어하기 위한 것이다. 브레이킹 유닛(203)은 마찰을 제공함으로써 차량의 휠 또는 타이어를 감속시키고 나아가 차량을 감속시킨다. 도 2에 도시된 구성 요소는 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있음을 유의해야 한다.
도 1을 다시 참조하면, 무선 통신 시스템(112)은 자율 주행 차량(101)과 장치, 센서, 기타 차량 등과 같은 외부 시스템 사이의 통신을 허용한다. 예를 들어, 무선 통신 시스템(112)은 하나 또는 복수의 장치와 직접 무선 통신될 수 있거나 통신 네트워크를 경유하여 무선 통신될 수 있는 바, 예를 들어, 네트워크(102)에 의해 서버(103 내지 104)와 통신된다. 무선 통신 시스템(112)은 임의의 셀룰러 통신 네트워크 또는 무선 근거리 통신망(WLAN)을 사용할 수 있으며, 예를 들어 WiFi를 사용하여 다른 일 구성 요소 또는 시스템과 통신한다. 무선 통신 시스템(112)은 예를 들어 적외선 링크, 블루투스 등을 사용하여 장치(예를 들어, 승객의 모바일 장치, 디스플레이 장치, 차량(101) 내의 스피커)와 직접 통신할 수 있다. 사용자 인터페이스 시스템(113)은 차량(101) 내에 구현된 주변 장치의 일부분일 수 있으며, 예를 들어 키보드, 터치 스크린 디스플레이 장치, 마이크로폰 및 스피커 등을 포함한다.
자율 주행 차량(101)의 일부 또는 모든 기능은 특히 자율 주행 모드에서 작동할 때 감지 및 계획 시스템(110)에 의해 제어 또는 관리될 수 있다. 감지 및 계획 시스템(110)은 센서 시스템(115), 제어 시스템(111), 무선 통신 시스템(112) 및/또는 사용자 인터페이스 시스템(113)으로부터 정보를 수신하고, 수신된 정보를 처리하며, 출발점으로부터 목적지까지의 루트 또는 경로를 계획하고, 이어서 계획 및 제어 정보에 의해 차량(101)을 주행하기 위해 필요한 하드웨어(예를 들어, 프로세서, 메모리, 저장 기기) 및 소프트웨어(예를 들어, 운영 체제, 계획 및 경로 배정 프로그램)를 포함한다. 대안적으로, 감지 및 계획 시스템(110)은 차량 제어 시스템(111)과 통합될 수 있다.
예를 들어, 사용자는 승객으로서 예를 들어 사용자 인터페이스를 통해 코스의 시작 위치 및 목적지를 지정할 수 있다. 감지 및 계획 시스템(110)은 코스 관련 데이터를 획득한다. 예를 들어, 감지 및 계획 시스템(110)은 MPOI 서버로부터 위치 및 루트 정보를 획득할 수 있고, 상기 MPOI 서버는 서버(103 내지 104)의 일부분일 수 있다. 위치 서버는 위치 서비스를 제공하며, MPOI 서버는 지도 서비스 및 특정된 위치의 POI를 제공한다. 대안적으로, 이러한 위치 및 MPOI 정보는 감지 및 계획 시스템(110)의 영구 저장 장치에 로컬로 캐싱될 수 있다.
자율 주행 차량(101)이 루트를 따라 이동할 경우, 감지 및 계획 시스템(110)은 교통 정보 시스템 또는 서버(TIS)로부터 실시간 교통 정보를 획득할 수도 있다. 서버(103 내지 104)는 제3 엔티티에 의해 작동될 수 있음을 유의해야 한다. 대안적으로, 서버(103 내지 104)의 기능은 감지 및 계획 시스템(110)과 통합될 수 있다. 실시간 교통 정보, MPOI 정보 및 위치 정보 및 센서 시스템(115)에 의해 검출 또는 감지된 실시간 로컬 환경 데이터(예를 들어, 장애물, 객체, 주변 차량)에 기반하여, 감지 및 계획 시스템(110)은 최적 루트를 계획하고 계획한 루트에 따라, 예를 들어 제어 시스템(111)을 경유하여 차량(101)을 운전하여 지정된 목적지에 안전하고 효율적으로 도착할 수 있다.
서버(103)는 다양한 클라이언트를 위해 데이터 분석 서비스를 수행하는 데이터 분석 시스템일 수 있다. 데이터 분석 시스템(103)은 데이터 컬렉터(121) 및 기계 학습 엔진(122)을 포함한다. 데이터 컬렉터(121)는 다양한 차량(자율 주행 차량 또는 인간 운전자가 운전하는 일반 차량임)으로부터 주행 카운팅 데이터(123)를 수집한다. 주행 카운팅 데이터(123)는 상이한 시점에서 송달된 운전 명령(예를 들어, 스로틀 명령, 브레이킹 명령, 스티어링 명령) 및 차량의 센서에 의해 포착된 차량의 응답(예를 들어, 속도, 가속, 감속, 방향)을 나타내는 정보를 포함한다. 주행 카운팅 데이터(123)는 예를 들어, 루트(시작 위치 및 목적지 위치를 포함함), MPOI, 도로 상황, 기상 조건 등과 같은 상이한 시점에서의 운전 환경을 설명하는 정보를 더 포함할 수 있다.
주행 카운팅 데이터(123)에 기반하여, 기계 학습 엔진(122)은 다양한 목적으로 일련의 규칙, 알고리즘 및/또는 예측 모델(124)을 생성하거나 트레이닝한다. 이어서 알고리즘(124)을 ADV에 업로딩함으로써 자율 주행 과정 기간에 실시간으로 이용할 수 있다.
도 3a 및 도 3b는 일 실시형태에 따른 자율 주행 차량과 함께 사용되는 감지 및 계획 시스템의 예시를 나타내는 블록도이다. 시스템(300)은 도 1의 자율 주행 차량(101)의 일부분으로 구현될 수 있으며, 감지 및 계획 시스템(110), 제어 시스템(111) 및 센서 시스템(115)을 포함하나 이에 한정되지 않는다. 도 3a 내지 도 3b를 참조하면, 감지 및 계획 시스템(110)은 위치결정 모듈(301), 감지 모듈(302), 예측 모듈(303), 의사결정 모듈(304), 계획 모듈(305), 제어 모듈(306), 경로배정 모듈(307)을 포함하나 이에 한정되지 않는다.
모듈(301) 내지 모듈(307) 중의 일부 또는 전부는 소프트웨어, 하드웨어 또는 이들의 조합에 의해 구현될 수 있다. 예를 들어, 이러한 모듈은 영구 저장 장치(352)에 실장되고, 메모리(351)에 로딩되며, 하나 또는 복수의 프로세서(미도시)에 의해 수행될 수 있다. 유의해야 할 것은, 이러한 모듈 중의 일부 또는 전부는 도 2의 차량 제어 시스템(111)의 일부 또는 전부 모듈에 통신 가능하게 연결될 수 있거나 이들과 통합될 수 있다. 모듈(301) 내지 모듈(307) 중의 일부는 집적 모듈로 함께 통합될 수 있다.
위치결정 모듈(301)(예를 들어, GPS 유닛(212)을 이용함)은 자율 주행 시스템(300)의 현재 위치를 결정하여 사용자의 코스 또는 루트와 관련된 임의의 데이터를 관리한다. 위치결정 모듈(301)(지도 및 루트 모듈로 지칭되기도 함)은 사용자의 코스 또는 루트와 관련된 임의의 데이터를 관리한다. 사용자는 예를 들어 사용자 인터페이스를 통해 로그인하여 코스의 시작 위치 및 목적지를 지정할 수 있다. 위치결정 모듈(301)은 코스 관련 데이터를 얻기 위해 지도 및 루트 정보(311)와 같은 자율 주행 시스템(300)의 기타 구성 요소들과 통신한다. 예를 들어, 위치결정 모듈(301)은 위치 서버 및 지도 및 POI(MPOI) 서버로부터 위치 및 루트 정보를 획득할 수 있다. 위치 서버는 위치 서비스를 제공하고, MPOI 서버는 지도 서비스 및 특정된 위치의 POI를 제공하며, 이러한 서비스 및 POI는 지도 및 루트 정보(311)의 일부분으로서 캐싱될 수 있다. 자율 주행 시스템(300)이 루트를 따라 이동할 경우, 위치결정 모듈(301)은 또한 교통 정보 시스템 또는 서버로부터 실시간 교통 정보를 획득할 수 있다.
센서 시스템(115)에 의해 제공된 센서 데이터 및 위치결정 모듈(301)에 의해 획득된 위치결정 정보에 기반하여, 감지 모듈(302)은 주변 환경에 대한 감지를 결정한다. 감지 정보는 운전자가 운전하고 있는 차량 주위에서 일반 운전자가 감지하는 물체를 나타낼 수 있다. 감지는 예를 들어, 객체 형태의 차선 구성, 신호등 신호, 기타 차량의 상대 위치, 보행자, 건축물, 횡단 보도 또는 기타 교통 관련 표지(예를 들어, 정지 표지, 양보운전 표지) 등을 포함할 수 있다. 차선 구성은 차선의 형상(예를 들어, 직선 또는 곡률), 차선의 폭, 도로 중의 차선 수, 단방향 또는 양방향 차선, 합류 차선 또는 분류 차선, 출구 차선 등과 같은 하나의 차선 또는 복수의 차선을 설명하는 정보를 포함한다.
감지 모듈(302)은 하나 또는 복수의 카메라에 의해 포착된 이미지를 처리하고 분석함으로써 자율 주행 차량 환경에서 객체 및/또는 특징을 식별하는 컴퓨터 시각 시스템 또는 컴퓨터 시각 시스템의 기능을 포함할 수 있다. 상기 객체는 교통 신호, 도로 경계, 기타 차량, 보행자 및/또는 장애물 등을 포함할 수 있다. 컴퓨터 시각 시스템은 객체 식별 알고리즘, 비디오 추적 및 기타 컴퓨터 시각 기술을 사용할 수 있다. 일부 실시형태에서, 컴퓨터 시각 시스템은 환경 지도를 제작하고, 객체를 추적하며, 객체의 속도를 추정할 수 있다. 감지 모듈(302)은 또한 레이더 및/또는 LIDAR와 같은 기타 센서에 의해 제공된 기타 센서 데이터에 기반하여 객체를 검출할 수 있다.
각각의 객체에 대해, 예측 모듈(303)은 상기 경우에서 상기 객체의 행위를 예측한다. 상기 예측은 특정 시점에서 감지된 주행 환경의 감지 데이터에 기반하여 지도/루트 정보(311)와 교통 규칙(312)의 집합에 따라 수행된다. 예를 들어, 객체가 반대 방향에 있는 차량이고 현재 주행 환경이 교차로를 포함할 경우, 예측 모듈(303)은 상기 차량이 직진할 것인지 아니면 회전할 것인지를 예측한다. 감지 데이터가 교차로에 신호등이 없음을 나타낼 경우, 예측 모듈(303)은 상기 차량이 교차로에 진입하기 전에 완전히 정지해야 함을 예측할 수 있다. 감지 데이터가 상기 차량이 현재 좌회전 전용 차선 또는 우회전 전용 차선에 있음을 나타낼 경우, 예측 모듈(303)은 각 경우에 상기 차량이 좌회전 또는 우회전 할 가능성이 더 높다고 예측할 수 있다.
각각의 객체에 대해, 의사결정 모듈(304)은 객체를 어떻게 처리할 것인지에 관해 결정한다. 예를 들어, 특정 객체(예를 들어, 교차 노선 중의 다른 하나의 차량) 및 객체를 표현한 메타데이터(예를 들어, 속도, 방향, 회전 각도)에 대해, 의사결정 모듈(304)은 상기 객체와 어떻게 마주(예를 들어, 추월, 양보, 정지, 경과)할 것인 지에 대해 결정한다. 의사결정 모듈(304)은 교통 규칙 또는 운전 규칙(312)과 같은 규칙 세트에 따라 해당 결정을 내릴 수 있으며, 상기 규칙 세트는 영구 저장 장치(352)에 저장될 수 있다.
경로배정 모듈(307)은 출발점으로부터 종점까지의 하나 또는 복수의 루트 또는 경로를 제공하도록 구성된다. 예를 들어, 사용자로부터 수신된 시작 위치로부터 목적지 위치까지의 주어진 코스에 대해, 경로배정 모듈(307)은 지도 및 루트 정보(311)를 획득하여 시작 위치로부터 목적지 위치에 도착할 수 있는 모든 가능한 루트 또는 경로를 결정한다. 경로배정 모듈(307)은 상기 결정한 시작 위치로부터 목적지 위치에 도착할 수 있는 루트 중의 각각에 대해 지형도의 형태로 기준 노선을 생성할 수 있다. 기준 노선은 기타 차량, 장애물 또는 교통 상황과 같은 임의의 간섭을 받지 않는 이상적인 루트 또는 이상적인 경로를 나타낸다. 즉, 도로에 기타 차량, 보행자 또는 장애물이 없을 경우, ADV는 기준 노선을 정확하게 또는 근접되게 준수해야 한다. 이어서, 의사결정 모듈(304) 및/또는 계획 모듈(305)에 지형도를 제공할 수 있다. 기타 모듈에 의해 제공된 기타 데이터(예를 들어, 위치결정 모듈(301)로부터의 교통 상황, 감지 모듈(302)에 의해 감지된 주행 환경 및 예측 모듈(303)에 의해 예측된 교통 상황)에 따라, 의사결정 모듈(304) 및/또는 계획 모듈(305)은 모든 가능한 루트를 검증하여 그중 하나의 최적 루트를 선택하고 수정한다. 특정된 시점에서의 특정된 주행 환경에 의하여, ADV를 제어하는 실제 경로 또는 루트는 경로배정 모듈(307)에 의해 제공된 기준 노선에 근접할 수 있거나 상이할 수 있다.
감지된 객체 중의 각각에 대한 결정에 기반하여, 계획 모듈(305)은 경로배정 모듈(307)이 제공한 기준 노선을 기준으로 사용하며, 자율 주행 차량을 위해 경로 또는 루트 및 주행 파라미터(예를 들어, 거리, 속도 및/또는 회전 각도)를 계획한다. 즉, 주어진 객체에 대해, 의사결정 모듈(304)은 객체에 대해 어떤 동작을 수행할 것인지를 결정하고, 계획 모듈(305)은 어떻게 수행할 것인지를 결정한다. 예를 들어, 주어진 객체에 대해, 의사결정 모듈(304)은 상기 객체를 경과할 것으로 결정할 수 있고, 계획 모듈(305)은 상기 객체의 좌측에서 경과할 것인지 아니면 우측에서 경과할 것인지를 결정할 수 있다. 계획 및 제어 데이터는 계획 모듈(305)에 의해 생성되며, 시스템(300)을 포함하는 차량이 다음 이동 주기(예를 들어, 다음 루트/경로 구간)에서 어떻게 이동할 것인지를 설명하는 정보를 포함한다. 예를 들어, 계획 및 제어 데이터는 시스템(300)을 포함하는 차량이 시간 당 30 마일(mph)의 속도로 10 미터를 이동한 다음 25 mph의 속도로 우측 차선으로 변경하도록 지시할 수 있다.
계획 및 제어 데이터에 기반하여, 제어 모듈(306)은 계획 및 제어 데이터에 의해 한정된 루트 또는 경로에 따라 적절한 명령 또는 신호를 차량 제어 시스템(111)에 발송함으로써 자율 주행 차량을 제어 및 주행한다. 상기 계획 및 제어 데이터는 경로 또는 루트를 따라 상이한 시간점에서 적절한 차량 설정 또는 운전 파라미터(예를 들어, 스로틀, 브레이킹 및 스티어링 명령)를 사용하여 차량을 루트 또는 경로의 제1 지점으로부터 제2 지점으로 주행시키기에 충분한 정보를 포함한다.
일 실시형태에서, 계획 단계는 복수의 계획 주기(주행 주기라고 지칭되기도 함)로 수행되는 바, 예를 들어, 100 밀리초(ms)의 시간 간격으로 수행된다. 각각의 계획 주기 또는 주행 주기에 대해, 계획 및 제어 데이터에 기반하여 하나 또는 복수의 제어 명령을 발송할 것이다. 즉 각각의 100 ms에 대해, 계획 모듈(305)은 다음 루트 구간 또는 경로 구간을 계획하며, 예를 들어, 목적 위치 및 ADV가 상기 목적 위치에 도착하는데 필요한 시간을 포함한다. 대안적으로, 계획 모듈(305)은 또한 구체적인 속도, 방향 및/또는 스티어링 각도 등을 지정할 수 있다. 일 실시형태에서, 계획 모듈(305)은 다음 기설정된 시간대(예를 들어, 5초)의 루트 구간 또는 경로 구간을 계획한다. 각각의 계획 주기에 대해, 계획 모듈(305)은 이전 주기에서 계획한 목적 위치에 기반하여 현재 주기(예를 들어, 다음번 5초)에 대한 목적 위치를 계획한다. 이어서, 제어 모듈(306)은 현재 주기의 계획 및 제어 데이터에 기반하여 하나 또는 복수의 제어 명령(예를 들어, 스로틀 제어 명령, 브레이킹 제어 명령, 스티어링 제어 명령)을 생성한다.
의사결정 모듈(304) 및 계획 모듈(305)은 집적 모듈로 통합될 수 있음을 유의해야 한다. 의사결정 모듈(304)/계획 모듈(305)은 자율 주행 차량의 주행 경로를 결정하기 위해 항법 시스템 또는 항법 시스템의 기능을 포함할 수 있다. 예를 들어, 항법 시스템은 자율 주행 차량이 하기와 같은 경로를 따라 이동되는 일련의 속도 및 전진 방향을 결정할 수 있다. 즉 상기 경로는 자율 주행 차량이 최종 목적지로 향하는 차선-기반 경로를 따라 전진하는 동시에 감지된 장애물을 실질적으로 피하도록 한다. 목적지는 사용자 인터페이스 시스템(113)을 통해 입력된 사용자 입력에 따라 설정될 수 있다. 항법 시스템은 자율 주행 차량이 작동하고 있는 동시에 주행 경로를 동적으로 업데이트할 수 있다. 항법 시스템은 GPS 시스템 및 하나 또는 복수의 지도에 의해 획득된 데이터를 병합하여 자율 주행 차량을 위한 주행 경로를 결정할 수 있다.
센서 시스템(115)은 하나 또는 복수의 입력/출력(I/O) 채널을 포함한 센서 유닛이 통합된 것일 수 있고, 상기 하나 또는 복수의 입력/출력(I/O) 채널을 사용하여 센서 시스템(115) 중의 복수의 센서의 센서 데이터를 수신한다. 센서 데이터는 감지 및 계획 모듈(110)로 제공될 수 있다. 실시형태에서, 일부 센서 데이터는 제어 시스템(111), 무선 통신 시스템(112) 및 사용자 인터페이스 시스템(113) 중의 하나 또는 복수로부터 수집될 수 있거나 제어 시스템(111), 무선 통신 시스템(112) 및 사용자 인터페이스 시스템(113) 중의 하나 또는 복수로 제공될 수 있다. 센서 유닛 테스트 보드를 사용하여 센서 유닛에 대해 테스트할 수 있으며, 상기 센서 유닛 테스트 보드는 적어도 이상에서 언급된 센서에 대해 에뮬레이트하여 에뮬레이트된 센서 데이터를 센서 유닛으로 전송하고, 센서 유닛은 시간값을 센서 데이터에 추가하여 센서 데이터를 도로 센서 유닛 테스트 보드에 발송하여 검증을 수행한다. 실시형태에서, 센서 유닛의 테스트 기간에, 센서 유닛은 또한 하나 또는 복수의 채널의 에뮬레이티드 센서 데이터를 자율 주행 차량의 호스트 컴퓨팅 시스템에 전송할 수 있다.
스티어링 유닛(201), 스로틀 유닛(202) 및 브레이킹 유닛(203)은 센서 시스템(115)에 센서 입력을 제공할 수 있으며, 상기 센서 입력은 센서 시스템(115)의 집적 회로판(“센서 유닛”)에 의해 수신될 수 있다. 센서 유닛은 센서 출력(스티어링 유닛(201), 스로틀 유닛(202) 및 브레이킹 유닛(203)의 위치 출력을 포함함)에 대해 에뮬레이트하도록 구성된 센서 유닛 테스트 보드를 사용하여 공장 테스트를 수행할 수 있다.
무선 통신 시스템(112)은 센서 시스템(115)에 센서 입력을 제공할 수 있으며, 상기 센서 입력은 센서 시스템(115)의 집적 회로판(“센서 유닛”)에 의해 수신될 수 있다. 센서 유닛은 센서 출력(무선 통신 시스템(112)의 통신 출력을 포함함)에 대해 에뮬레이트하도록 구성된 센서 유닛 테스트 보드를 사용하여 공장 테스트를 수행할 수 있다.
도 4는 일 실시형태에 따른 자율 주행을 위한 시스템 구조(400)를 나타내는 블록도이다. 시스템 구조(400)는 도 3a 및 도 3b에 도시된 바와 같은 자율 주행 시스템의 시스템 구조를 나타낼 수 있다. 도 4를 참조하면, 시스템 구조(400)는 응용 계층(401), 계획 및 제어(PNC) 계층(402), 감지 계층(403), 드라이버 계층(404), 펌웨어 계층(405) 및 하드웨어 계층(406)을 포함하나 이에 한정되지 않는다. 응용 계층(401)은 사용자 인터페이스 시스템(113)과 관련된 기능 등과 같은, 자율 주행 차량의 사용자 또는 승객과 상호 작용하는 사용자 인터페이스 또는 구성 애플리케이션을 포함할 수 있다. PNC 계층(402)은 적어도 계획 모듈(305) 및 제어 모듈(306)의 기능을 포함할 수 있다. 감지 계층(403)은 적어도 감지 모듈(302)의 기능을 포함할 수 있다. 일 실시형태에서, 예측 모듈(303) 및/또는 의사결정 모듈(304)의 기능을 포함한 부가 계층이 존재한다. 대안적으로, 이러한 기능은 PNC 계층(402) 및/또는 감지 계층(403)에 포함될 수 있다. 시스템 구조(400)는 드라이버 계층(404), 펌웨어 계층(405) 및 하드웨어 계층(406)을 더 포함할 수 있다. 펌웨어 계층(405)은 적어도 센서 시스템(115)의 기능을 대표할 수 있으며, 이는 필드 프로그래머블 게이트 어레이(FPGA)로 구현될 수 있다. 하드웨어 계층(406)은 제어 시스템(111)과 같은 자율 주행 차량의 하드웨어를 나타낼 수 있다. 계층(401) 내지 계층(403)은 장치 드라이버 계층(404)에 의해 펌웨어 계층(405) 및 하드웨어 계층(406)과 통신할 수 있다.
도 5a는 본 발명의 일 실시형태에 따른 센서 시스템의 예시를 나타내는 블록도이다. 도 5a를 참조하면, 센서 시스템(115)은 호스트 시스템(110)에 연결된 센서 유닛(500) 및 복수의 센서(미도시)를 포함한다. 센서 유닛(500)은 센서 유닛 테스트 보드(590)에 연결되어 센서 유닛(500)에 대한 제조 테스트를 도모할 수 있다. 호스트 시스템(110)은 상술한 바와 같이, 도 3a 및 도 3b에 도시된 바와 같은 모듈 중의 적어도 일부를 포함할 수 있는 계획 및 제어 시스템을 나타낸다. 실시형태에서, 호스트 시스템(110)은 센서 시스템(115)에 통합될 수 있다. 호스트 시스템(110)은 또한 제조 테스트 수행자가 센서 유닛 테스트 보드(590)를 사용하여 센서 유닛(500)의 제조 테스트를 실행하도록 제조될 수 있다. 대안적으로 또는 추가로, 모니터링 시스템(594)은 센서 유닛(500)의 제조 테스트의 수행을 도모하도록 사용될 수 있다. 호스트 시스템(110) 및 모니터링 시스템(594)은 아래 도 11을 참조하여 설명된 하드웨어를 포함할 수 있다. 센서 유닛(500)은 제조 테스트를 위해 센서 유닛(500)을 구성하는 센서 유닛 테스트 소프트웨어(593)를 포함할 수 있다.
센서 유닛(500)은 FPGA 장치 또는 주문형 집적 회로(ASIC) 장치의 형태로 구현될 수 있다. 일 실시형태에서, 센서 유닛(500)은 특히 하나 또는 복수의 센서 데이터 처리 모듈(501)(센서 처리 모듈로 약칭되기도 함), 데이터 전송 모듈(502) 및 센서제어 모듈 또는 논리(503)를 포함한다. 모듈(501) 내지 모듈(503)은 센서 인터페이스(504)를 통해 센서(510)와 통신할 수 있으며, 호스트 인터페이스(505)를 통해 호스트 시스템(110)과 통신할 수 있다. 선택 가능하게, 내부 또는 외부 버퍼(506)를 사용하여 처리하고자 하는 데이터를 버퍼링할 수 있다.
일 실시형태에서, 수신 경로 또는 업스트림 방향에 대해, 센서 처리 모듈(501)은 센서 인터페이스(504)를 통해 센서로부터 센서 데이터를 수신하고 센서 데이터(예를 들어, 포맷 전환, 오류 체크)를 처리하도록 구성되며, 여기서, 센서 데이터는 버퍼 영역(506)에 일시적으로 저장될 수 있다. 데이터 전송 모듈(502)은 호스트 인터페이스(505)와 호환되는 통신 프로토콜을 이용하여 처리된 데이터를 호스트 시스템(110)으로 전송하도록 구성된다. 유사하게, 전송 경로 또는 다운스트림 방향에 대해, 데이터 전송 모듈(502)은 호스트 시스템(110)으로부터 데이터 또는 명령을 수신하도록 구성된다. 다음, 센서 처리 모듈(501)에 의해 상기 데이터를 대응되는 센서와 호환 가능한 포맷으로 처리한다. 다음, 처리된 데이터를 센서에 전송한다.
일 실시형태에서, 센서제어 모듈 또는 논리(503)는 호스트 인터페이스(505)를 통해 호스트 시스템(예를 들어, 감지 모듈(302))으로부터 수신된 명령에 응답하여, 센서(510)의 센서 데이터 포착에 대한 활성화의 타이밍 등과 같은 특정 동작을 제어하도록 구성된다. 호스트 시스템(110)은 센서(510)를 협력적 및/또는 동기화된 방식으로 센서 데이터를 포착하도록 구성할 수 있음으로써, 임의의 시점에서 센서 데이터를 이용하여 차량 주변의 주행 환경을 감지할 수 있도록 한다.
센서 인터페이스(504)는 이더넷 인터페이스, 범용 직렬 버스(USB) 인터페이스, 엘티이(LTE) 또는 셀룰러 인터페이스, WiFi 인터페이스, GPS 인터페이스, 카메라 인터페이스, CAN 인터페이스, 직렬(예를 들어, 범용 비동기 송수신기/UART) 인터페이스, 사용자 식별 모듈(SIM) 카드 인터페이스 및 기타 통용 입력/출력(GPIO) 인터페이스 중 하나 또는 하나 이상을 포함할 수 있다. 호스트 인터페이스(505)는 PCIe(Peripheral Component Interconnect Express) 인터페이스와 같은 임의의 고속 또는 고대역폭 인터페이스일 수 있다. 센서(510)는 카메라, LIDAR 장치, RADAR 장치, GPS 수신기, IMU, 초음파 센서, 글로벌 위성 항법 시스템(GNSS) 수신기, LTE 또는 셀룰러 SIM 카드, 차량 센서(예를 들어, 스로틀 센서, 브레이킹 센서, 스티어링 센서) 및 시스템 센서(예를 들어, 온도 센서, 습도 센서, 압력 센서) 등과 같은 자율 주행 차량에 사용되는 다양한 센서들을 포함할 수 있다.
예를 들어, 카메라는 이더넷 인터페이스 또는 GPIO 인터페이스를 통해 연결될 수 있다. GPS 센서는 USB 인터페이스 또는 특정된 GPS 인터페이스를 통해 연결될 수 있다. 차량 센서는 CAN 인터페이스를 통해 연결될 수 있다. RADAR 센서 또는 초음파 센서는 GPIO 인터페이스를 통해 연결될 수 있다. LIDAR 장치는 이더넷 인터페이스를 통해 연결될 수 있다. 외부 SIM 모듈은 LTE 인터페이스를 통해 연결될 수 있다. 유사하게, 내부 SIM 모듈은 센서 유닛(500)의 SIM 슬롯에 삽입될 수 있다. 예를 들어, UART의 직렬 인터페이스는 디버깅을 목적으로 제어 시스템과 연결될 수 있다.
에뮬레이티드 센서(591)는 상기 도 2를 참조하여 설명된 센서 시스템(115)의 센서(211) 내지 센서(215)와 유사한 기능을 제공한다. 에뮬레이티드 센서(591)는 임의의 유형의 센서일 수 있고, 또한 다양한 판매 업체 또는 공급 업체에 의해 제공될 수 있음을 유의해야 한다. 센서 처리 모듈(501)은 상이한 유형의 센서 및 이와 대응되는 데이터 포맷 및 통신 프로토콜을 처리하도록 구성된다. 일 실시형태에 따르면, 에뮬레이티드 센서(591) 중의 각각은 센서 데이터를 처리하고 또한 호스트 시스템(110)과 대응되는 센서 사이에서 처리된 센서 데이터를 전송하기 위한 특정 채널과 연관된다. 도 5b에 도시된 바와 같이, 각각의 채널은 대응되는 센서 데이터 및 프로토콜을 처리하도록 구성 또는 인코딩되는 특정 센서 처리 모듈 및 특정 데이터 전송 모듈을 포함한다.
이어서 도 5b를 참조하면, 센서 처리 모듈(501A 내지 501C)은 구체적으로 제조 테스트 기간에 각각 센서 유닛 테스트 보드(590)의 에뮬레이티드 센서(591A 내지 591C)로부터 획득한 센서 데이터를 처리하도록 구성된다. 센서 유닛(500)이 ADV(100)에 통합되었을 경우, 상기 센서 유닛은 에뮬레이티드 센서(591A 내지 591C)와 대응되는 실제의 현실 세계 센서에 연결된다. 에뮬레이티드 센서(591A 내지 591C)는 동일하거나 상이한 유형의 센서일 수 있음을 유의해야 한다. 센서 처리 모듈(501A 내지 501C)은 상이한 유형의 센서에 대한 상이한 센서 처리에 대해 처리하도록 구성(예를 들어, 소프트웨어 구성 가능함)될 수 있다. 예를 들어, 에뮬레이티드 센서(591A)가 카메라일 경우, 센서 처리 모듈(501A)은 카메라(591A)에 의해 포착된 이미지를 나타내는 특정 픽셀 데이터에 대해 픽셀 처리 동작을 수행하도록 구성될 수 있다. 유사하게, 에뮬레이티드 센서(591A)가 LIDAR 장치일 경우, 센서 처리 모듈(501A)은 구체적으로 LIDAR 데이터를 처리하도록 구성된다. 다시 말해서, 일 실시형태에 따르면, 특정 유형의 특정 센서에 따라, 이의 대응되는 처리 모듈은 센서 데이터의 유형과 대응되는 특정 과정 또는 방법을 사용하여 대응되는 센서 데이터를 처리하도록 구성될 수 있다.
유사하게, 상이한 유형의 센서 데이터가 상이한 속도 또는 시간을 요구하는 상이한 크기 또는 민감도를 갖고 있을 수 있으므로, 데이터 전송 모듈(502A 내지 502C)은 상이한 모드로 동작되도록 구성될 수 있다. 일 실시형태에 따르면, 데이터 전송 모듈(502A 내지 502C) 중의 각각은 저지연 모드, 고대역폭 모드 및 메모리 모드(고정 메모리 모드로 지칭되기도 함) 중의 하나의 동작으로 구성될 수 있다.
일 실시형태에 따르면, 저지연 모드로 동작될 경우, 데이터 전송 모듈(예를 들어, 데이터 전송 모듈(502))은 지연이 없거나 지연을 최소화한 상황에서 센서로부터 수신된 센서 데이터를 최대한 빨리 호스트 시스템으로 발송하도록 구성된다. 센서 데이터 중의 일부는 시간적으로 매우 민감하여 최대한 빨리 처리해야 한다. 이러한 센서 데이터의 예시는 차량 속도, 가속도, 스티어링 각도 등과 같은 차량 상태를 포함한다.
일 실시형태에 따르면, 고대역폭 모드로 동작될 경우, 데이터 전송 모듈(예를 들어, 데이터 전송 모듈(502))은 센서로부터 수신된 센서 데이터가 미리 결정된 양으로 축적되는 한편 여전히 데이터 전송 모듈과 호스트 시스템(110) 사이의 연결 대역폭 내에 처해 있도록 구성된다. 다음, 데이터 전송 모듈과 호스트 시스템(110) 사이의 연결 대역폭을 최소화하는 배치(batch)로 축적된 센서 데이터를 호스트 시스템(110)으로 전송한다. 통상적으로, 고대역폭 모드는 대량 센서 데이터를 생성하는 센서에 사용된다. 이러한 센서 데이터의 예시로서 카메라 픽셀 데이터가 포함된다.
일 실시형태에 따르면, 메모리 모드로 동작될 경우, 데이터 전송 모듈은 센서로부터 수신된 센서 데이터를 호스트 시스템(110)의 매핑된 메모리의 메모리 위치(공유 메모리 페이지와 유사함)에 직접 입력하도록 구성된다. 메모리 모드로 전송된 센서 데이터의 예시로서 온도, 선풍기 속도 등과 같은 시스템 상태 데이터가 포함된다.
유사하게, 각각의 채널은 대응되는 센서의 동작을 제어하거나 트리거링하도록 구성된 특정 센서 제어 모듈(예를 들어, 센서제어 모듈(503))과 연관될 수 있다. 타임 모듈(520)은 채널 중의 각각의 구성 요소에 연결되어, 상기 채널의 센서 및 이에 대응되는 센서 처리 모듈, 센서제어 모듈 및/또는 데이터 전송 모듈에 타임 스탬프와 같은 시간 서비스를 제공한다.
일 실시형태에 따르면, 각각의 데이터 전송 모듈은 전송(TX) 모듈 및 수신(RX) 모듈을 포함한다. TX 모듈은 데이터 또는 명령을 호스트 시스템(110)으로부터 센서에 전송하도록 한다. RX 모듈은 센서로부터 센서 데이터를 수신하고 수신된 센서 데이터를 호스트 시스템(110)으로 발송하도록 한다. 일 실시형태에 따르면, 데이터 및/또는 명령을 센서에 발송하라는 요청에 응답하여, TX 모듈은 TX 기술어 버퍼(이는 호스트 시스템을 통해 설정됨)를 가리키는 포인터를 요청 및 수신하되, 상기 포인터는 TX 기술어 버퍼 정보의 일부분으로서 저장될 수 있다. 기술어 버퍼 정보는 호스트 시스템(110)의 호스트 시스템 메모리에 이미 매핑된 TX 버퍼를 설명하는 메타데이터를 포함한다. 매핑된 메모리 영역은 센서에 전송될 데이터 및/또는 명령을 저장하도록 구성된다. 일 실시형태에서, TX 기술어는 하나 또는 복수의 MBE(저장 블록 엔트리; Memory Block Entry)를 포함한다. 각각의 MBE는 저장 블록의 시작 주소 및 저장 블록의 크기를 지정하는 정보를 포함한다. 전송될 데이터는 버퍼(506)에 일시적으로 저장될 수 있으며, 여기서 상기 데이터는 대응되는 센서 처리 모듈에 의해 더 처리될 수 있다. 대안적으로, 센서 처리 모듈은 기술어 버퍼에 의해, 매핑된 호스트 메모리로부터의 데이터를 직접 처리할 수 있다.
일 실시형태에 따르면, 센서로부터 생성된 센서 데이터가 존재하고 또한 이런 데이터가 대응되는 센서 처리 모듈에 의해 처리될 수 있음을 지시하는 신호가 수신될 경우, RX 모듈은 호스트 시스템(110)에 메모리 페이지를 분배하도록 요청하여 센서로부터 생성된 데이터를 수신하도록 요청을 발송한다. 다음, RX 모듈은 호스트 시스템(110)으로부터 RX 버퍼 테이블을 수신한다. RX 버퍼 테이블은 다중 레벨(예를 들어, N 레벨) 매핑 테이블을 포함할 수 있다. 일 실시형태에서, 최고 레벨의 버퍼 테이블은 RX 페이지 디렉터리 테이블을 포함한다. 일 실시형태에서, RX 페이지 디렉터리 테이블은 하나 또는 복수의 페이지 테이블 엔트리를 포함한다. 각각의 페이지 테이블 엔트리는 특정 페이지 테이블(예를 들어, 다음 레벨 테이블)의 메모리 주소를 저장한다. 각각의 페이지 테이블 엔트리는 호스트 시스템(110)의 호스트 메모리의 메모리 페이지(예를 들어, 다음 레벨 테이블의 고정 메모리 페이지로 사용됨)의 시작 주소를 지정하는 정보를 포함한다. 호스트 시스템(110)의 호스트 메모리의 메모리 페이지와 최고 레벨 테이블 사이에는 N 레벨 링크 테이블이 있을 수 있다. 각각의 상위 레벨 테이블은 계층 구조로 하위 레벨 테이블을 참조하는 주소 또는 링크를 포함한다.
센서 유닛 테스트 소프트웨어(593)가 제조 테스트 모드에서 센서 유닛(500)을 구성할 경우, 센서 유닛(500)은 센서 인터페이스(504)의 I/O 채널을 선택하여 테스트할 수 있다. 선택된 I/O 채널(예를 들어, I/O 채널1)은 특정 에뮬레이티드 센서(예를 들어, 에뮬레이티드 센서(591A))와 연관될 수 있다. 실시형태에서, 에뮬레이티드 센서(591A)는 GPS 센서일 수 있다. 실시형태에서, 센서 유닛(500)은 선택된 I/O 채널과 연관된 에뮬레이티드 센서(591A 내지 591C)를 “연결 테스트(ping)”하여, 에뮬레이티드 센서(591A 내지 591C)가 에뮬레이티드 센서 출력 데이터를 생성하도록 하고 선택된 I/O 채널을 통해 상기 에뮬레이티드 센서 출력 데이터를 센서 유닛(500)으로 전송한다. 센서 유닛 테스트 보드(590)는 센서 유닛 테스트 보드(590)가 센서 유닛(500)이 선택된 I/O 채널에서 센서 유닛 테스트 보드(590)에 대해 응답을 할 수 없음을 결정하기 전에, 선택된 I/O 채널에서 센서 유닛(500)으로부터의 응답을 얼마 동안 대기(“감청”)해야 하는 지를 지시하는 타이머를 설정할 수 있다. 시간이 초과되면, 센서 유닛 테스트 보드(590)는 센서 유닛(500)이 선택된 채널 I/O의 테스트를 통과하지 못하였음을 지시하는 시각적 인디케이터(예를 들어, 센서 유닛 테스트 보드의 LED를 레드로 설정함)를 설치할 수 있다. 응답 시간 기간에, 센서 유닛(500)은 선택된 I/O 채널을 통해 에뮬레이티드 센서 출력을 수신할 수 있다. 실시형태에서, 센서 유닛은 타임 모듈(520)로부터 시간값을 복원할 수 있다. 다음, 센서 유닛(500)은 선택된 I/O 채널에 의해 센서 유닛 테스트 보드(590)로부터 수신된 에뮬레이티드 센서 데이터를 시간값과 함께 센서 유닛 테스트 보드(590)에 도로 전송할 수 있다. 실시형태에서, 센서 유닛(500)은 센서 유닛 테스트 보드로부터 수신된 에뮬레이티드 센서 데이터를 호스트 시스템(110) 및/또는 모니터 시스템(594)으로 전송하여 기록하도록 구성될 수 있다. 이어서, 센서 유닛 테스트 보드(590)는 선택된 I/O 채널에 의해 센서 유닛(500)으로부터 에뮬레이티드 센서 데이터 및 시간값을 수신할 수 있고, 또한 센서 유닛 테스트 보드(590)는 수신된 데이터에 대해 유효성 검사를 수행하여, 센서 유닛(500)이 유효 데이터를 전송하는지 여부를 결정함으로써 이로부터 센서 유닛(500)의 기능이 정상적으로 작동되는지 여부를 결정할 수 있다.
실시형태에서, 각각의 에뮬레이티드 센서는 에뮬레이트되는 센서 유형에 적합한 상이한 포맷의 데이터를 생성한다. 따라서, 각각의 에뮬레이티드 센서는 특정 에뮬레이티드 센서(591A 내지 591C)와 연관된 유효성 검사기를 갖고 있다. 예를 들어, GPS 신호를 에뮬레이트하는 유효성 검사기는 GPS 데이터의 유효 포맷, 서브 필드 중 GPS 데이터의 유효 범위, 유효 검증 및/또는 기타 데이터 전송의 유효성 검사 방법을 검사할 수 있다.
에뮬레이티드 LIDAR 센서의 경우, 데이터가 일반 레이저 레이더 데이터 교환 포맷(LAS, 예를 들어, LAS 규범 1.4-R13, 2013년 7월 15일)을 따르면, 데이터는 유효할 수 있다. 여기서, 일반 레이저 레이더 데이터 교환 포맷은 헤더 블록, 가변 길이 데이터 기록, 포인트 데이터 기록 및 확장된 가변 길이 기록을 포함할 수 있다. 초기 데이터로서의 LIDAR 센서 데이터는 제조 업체에 따라 상이할 수 있으며 비행 시간값을 포함할 수 있고, 피치각, 편주각(Yaw angle), 사이드라인 왜곡을 더 포함할 수 있다.
에뮬레이티드 RADAR 센서의 경우, 데이터가 Eurocontrol Asterix 포맷을 따르면, 상기 데이터는 유효할 수 있다. 센서 데이터의 서브 필드 중 유효 범위 값에 기반하여 유효성을 결정할 수도 있다.
에뮬레이티드 관성 측정 유닛(IMU) 센서의 경우, IMU 데이터의 서브 필드가 ADV(100)의 합리값(reasonable value)(피치각, 롤각 및 편주각을 포함하는 값) 이내에 속하면, 센서 데이터는 유효할 수 있다.
카메라 데이터를 생성하는 에뮬레이티드 센서의 경우, 데이터가 유효적인 카메라 이미지 파일 포맷(CIFF) 또는 CR2(예를 들어, 캐논®에 의해 얻음)를 따르면, 데이터는 유효할 수 있다. 에뮬레이티드 카메라 센서 데이터는 JPG, JPEG, TIFF, PNG 또는 다른 파일 포맷과 같은 식별 가능한 파일 포맷을 사용할 수도 있다. 에뮬레이티드 센서 데이터에 사용되는 유효성 검사기는 제조 업체에 특정될 수 있으며, 에뮬레이티드 센서 유효성 검사기 내에 구성될 수 있다.
에뮬레이티드 차량 센서 데이터(예를 들어, 스로틀 위치, 브레이크 위치 및 스티어링 위치)의 경우, 적용된 브레이킹 또는 스로틀의 백분율(0 내지 100 %), 적용된 스티어링 입력의 양(0 내지 100 %), 왼쪽으로 또는 오른쪽으로 또는 기타 포맷과 같은 특정 포맷에 따라 유효성을 검사할 수 있다.
에뮬레이티드 온도, 습도 및 압력 센서의 경우, 출력(예를 들어, 센서의 에뮬레이티드 출력값)으로부터 진실 세계로의 값의 임의의 이미 알려진 매핑을 통해 습도 백분율, 온도의 도수, 압력 파운드의 매핑을 사용하여 데이터를 검증할 수 있으며, 그 후 검사 범위가 합리적인지의 여부를 검사한다. 예를 들어, 100 %보다 큰 습도는 무효할 수 있다. 150 ℉보다 큰 온도는 무효할 수 있다. 평방인치 당 약 50 파운드(PSI)의 압력은 무효할 수 있다.
센서 유닛 테스트 보드(590)가 응답을 위한 타이밍 내에서 에뮬레이티드 센서 데이터를 수신하고 수신된 데이터가 유효하다면, 예를 들어 녹색 인디케이터를 나타내는 LED에 의해 시각 인디케이터를 설치하여 센서 유닛(500)이 선택된 I/O 채널에서 테스트에 성공하였음을 지시할 수 있다. 그렇지 않으면 예를 들어 레드를 나타내는 LED에 의해 시각 인디케이터의 실패를 지시할 수 있다. 실시형태에서, 예를 들어, 제1 에뮬레이티드 센서(예를 들어, 에뮬레이티드 GPS)와 대응되는 적어도 첫 번째로 선택된 I/O 채널에 대해, 센서 유닛 테스트 보드(590)는 첫 번째로 선택된 I/O 채널에 대한 에뮬레이티드 센서 출력 데이터 및 센서 유닛(500)으로부터 수신한 시간값을 하나 또는 복수의 다른 에뮬레이티드 센서(591B 내지 591C)에 복제할 수 있다. 에뮬레이티드 센서(591B 내지 591C)의 유효성 검사기는 에뮬레이티드 센서(591A)의 복제 데이터를 센서 유닛(500)으로부터 I/O 채널2 내지 I/O 채널N에 대해 수신한 에뮬레이티드 센서 데이터 및 시간값에 대한 추가 유효성 검사로 사용할 수 있으며, 여기서 N은 센서 유닛 테스트 보드(590)에 의해 테스트하도록 구성된 I/O 채널의 수이다. 센서 유닛 테스트 보드(590)에 구성된 모든 I/O 채널을 테스트한 이후, 센서 유닛(500)의 센서의 I/O 채널1 내지 I/O 채널N 중 임의의 하나가 실패하면, 시각적 인디케이터(예를 들어, 레드를 지시하는 LED)에 의해 센서 유닛(500)의 전체 실패를 지시할 수 있다. 센서 유닛(500)의 어느 하나의 I/O 채널도 실패하지 않으면, 시각적 인디케이터(예를 들어, 녹색을 지시하는 LED)에 의해 센서 유닛(500)의 테스트 전체가 성공하였음을 지시할 수 있다. 대안적으로 또는 추가로, 호스트 시스템(110) 및/또는 모니터링 시스템(594)에서 센서 유닛(500)의 테스트 전체가 성공하거나 전체가 실패하였음을 지시할 수 있다.
도 6은 일 실시형태에 따른 타임 모듈의 예시를 나타내는 블록도이다. 도 6을 참조하면, 타임 모듈(520)은 타임 제너레이터(601), 타임 스탬프 모듈(602), 타임 소스 선택기(603) 및 타임 복원 모듈(604)을 포함하나 이에 한정되지 않는다. 타임 제너레이터(601)는 타임 소스에 기반하여 시간을 생성하도록 구성되고, 여기서 상기 시간이 센서 처리 모듈 및 센서 제어 모듈과 같은 기타 구성 요소에 의해 이용될 수 있다. 타임 스탬프 모듈(602)은 타임 제너레이터(601)에 의해 제공된 시간에 기반하여 타임 스탬프를 생성하고 타임 스탬프를 다른 구성 요소에 제공하도록 구성된다. 주요 타임 소스가 이용 불가능할 경우, 타임 소스 선택기(603)는 시간을 생성하기 위해 대안적인 타임 소스를 선택하도록 구성된다. 이용 가능한 타임 소스가 없을 경우, 타임 복원 모듈(604)은 타임 소스가 이용 가능할 시 시간을 복원하도록 구성된다.
도 7은 일 실시형태에 따른 타임 제너레이터의 예시를 나타내는 블록도이다. 도 7을 참조하면, 타임 제너레이터(601)은 모니터링 모듈(755), 조정 모듈(757), 밀리초 제너레이터(703), 마이크로초 제너레이터(705), 나노초 제너레이터(707), 디멀티플렉서(709) 및 설정(configuration; 711)을 포함할 수 있다. 밀리초 제너레이터(703), 마이크로초 제너레이터(705) 및 나노초 제너레이터(707)는 로컬 타이머(753)의 오실레이터에 기반하여 밀리초, 마이크로초 및 나노초의 진동 주기(예를 들어, 3가지 상이한 입도의 오실레이터 계수기)를 각각 생성할 수 있다. 설정(711)은 밀리초 제너레이터(703), 마이크로초 제너레이터(705) 및 나노초 제너레이터(707)의 출력 중 어느 것이 모니터링 모듈(755)로 라우팅될 것인지를 선택하도록 선택 신호를 구성할 수 있다. 모니터링 모듈(755)은 생성된 진동 주기를 모니터링하여 이러한 주기에 대해 카운팅할 수 있다. 조정 모듈(757)은 로컬 타이머(753)를 GPS 센서(751)로부터의 PPS 신호와 동기화되도록 하기 위해 계수(또는 계수 표시를 수정함)를 조정할 수 있다. 일 실시형태에서, 설정(711)의 선택 신호는 센서 유닛(500)의 사용자 또는 피드백 루프에서의 모니터링 모듈(755)/조정 모듈(757)에 의해 프로그래밍될 수 있다. 예를 들어, 로컬 타이머(753)가 비교적 정확한 것으로 결정되면 사용자는 밀리초 제너레이터를 디스에이블하도록 구성할 수 있다.
사용된 결정체 오실레이터의 유형에 의해, 로컬 타이머(753)의 정확도는 0.1 ppm으로부터 100 ppm의 범위내에 있을 수 있으며, 예를 들어, 임의의 펄스는 0.1 마이크로초부터 100 마이크로초로 시프팅할 수 있고, GPS 센서(751)로부터의 초 당 펄스(PPS) 신호의 정확도는 0.1 ppm보다 작거나 각각의 초 당 펄스에 대한 편차는 0.1 마이크로초보다 작다. 0.1 ppm의 GPS PPS 신호의 경우, GPS 센서(751)로부터 수신된 PPS 신호는 초 당 연속 펄스가 999,999.9와 1,000,000.1 마이크로초 사이에 있도록 유지할 수 있으며, 전형적인 100 ppm 로컬 타이머(753)는 초 당 연속 펄스가 999,900과 1,000,100 마이크로초 사이에 있도록 유지할 수 있다. 이밖에, 로컬 타이머(753)에 의해 사용되는 결정체 오실레이터 IC의 환경 온도의 변화로 인해, 로컬 타이머(753)의 펄스 편차의 변화는 실시간으로 변경될 수 있다. 따라서, GPS 센서(751)와 매칭되도록 실시간으로 로컬 타이머(753)를 조정 또는 동기화하는 것을 목적으로 한다.
로컬 타이머(753)를 GPS 센서(751)와 동기화하기 위해, 일 실시형태에서, GPS 센서(751)는 GPS 펄스 신호(PPS)를 수신하며, 여기서 GPS 펄스 신호는 특정 정확도(예를 들어, < 0.1 ppm)로 공간에서 이의 신호를 브로드캐스트(broadcast)하기 위해 위성에 의해 전송되는 RF 신호이다. 일부 실시형태에서, GPS 센서(751)는 제1 GPS 위성으로부터 PPS 신호를 수신한 이후, 제1 GPS 위성이 범위를 초과하면, 제2 GPS 위성으로부터 PPS 신호를 수신한다. GPS 위성은 자체의 정확한 시간 측정을 사용하고 또한 각각의 위성 자체는 모두 온보드 원자 시계 세트를 가지므로, GPS 위성으로부터의 PPS 신호는 하나 또는 복수의 기준 타이머로서 보여질 수 있다. 그러나, 로컬 타이머(753)는 임의의 하나의 GPS PPS 신호와 매칭되도록 실시간으로 조정되기 때문에, 둘 또는 둘 이상의 상이한 GPS 위성의 GPS PPS 신호가 존재한다고 가정할 경우, 그 어떠한 시간차도 문제를 초래하지 않는다. 이는 아래 더 설명되는 바와 같이, 로컬 타이머(753)가 실시간으로 평활하게 동기화될 수 있기 때문이다.
GPS PPS 신호가 수신되면, 모니터링 모듈(755)은 PPS 신호의 시간 및 로컬 타이머(753)에 대한 시간의 임의의 오프셋을 결정할 수 있고, 결정된 오프셋에 기반하여 제2 로컬 실시간 클록/ 타이머를 생성할 수 있다. 예를 들어, PPS 신호에 기반하여, 초기에 GPS 미국국가해양전자협회(National Marine Electronics Association, NMEA) 데이터 정보에 의해 초까지 정확한 날짜 및 시간 정보(협정 세계시(UTC) 또는 UTC 포맷)를 제공할 수 있다. 이어서, 일 실시형태에서, 밀리초 제너레이터(703)는 로컬 타이머(753)를 사용하여 1밀리초에 가까운 진동 카운트(예를 들어, 제1 입도)를 생성할 수 있다. 주파수 분할기 회로를 사용하여 상기 1밀리초에 가까운 진동 카운트를 생성하여, 로컬 타이머(753)의 신호 주파수를 분할할 수 있다. 다음, 모니터링 모듈(755)은 1초의 GPS PPS 신호 시간 간격(예를 들어, 로컬 타이머(753)는 GPS PPS 신호보다 약 1 밀리초 지연됨) 동안 밀리초 제너레이터(703)로부터의 주기수(예를 들어, 999개의 주기)를 검출하거나 이에 대해 카운팅할 수 있다. 밀리초 제너레이터(703)가 GPS PPS보다 지체되므로, 일 실시형태에서, 조정 모듈(757)은 밀리초 제너레이터 출력을 진동 당 1.001 밀리초를 나타내도록 조정한다. 다음, 밀리초 제너레이터(703)는 초 당 0.000, 1.001, 2.002…999.999 및 1001 밀리초 등 1000개의 진동 표시를 생성한다. 따라서, 밀리초 제너레이터(703)의 제999개의 주기에는 999.999 밀리초까지 카운팅한다.
이어서, 마이크로초 제너레이터(705)는 로컬 타이머(753)를 사용하여 1 마이크로초에 가까운 진동 카운트를 생성할 수 있다. 제2 주파수 분할기 회로를 사용하여 1 마이크로초에 가까운 진동 카운트(예를 들어, 제2 입도)를 생성하여, 로컬 타이머(753)의 신호 주파수를 분할할 수 있다. 모니터링 모듈(755)은 마이크로초 제너레이터(705)로부터 998개의 주기를 카운팅할 수 있거나 1 밀리초의 GPS PPS 시간 간격 동안 2 마이크로초 오프셋을 카운팅할 수 있다. 마찬가지로, 마이크로초 제너레이터(705)가 GPS PPS보다 지체되므로, 조정 모듈(757)은 마이크로초 제너레이터 출력을 진동 당 1.002 마이크로초를 나타내도록 조정한다. 다음, 마이크로초 제너레이터(705)는 초 당 0.000, 1.002, 2.004…999.996, 1000.998 및 1002 마이크로초 등 1000개의 진동 표시를 생성한다. 따라서, 제998개 주기에는 999.996 마이크로초까지 카운팅한다.
이어서, 나노초 제너레이터(707)는 로컬 타이머(753)를 사용하여 1 나노초에 가까운 진동 카운트를 생성할 수 있다. 제3 주파수 분할기 회로를 사용하여 1 나노초에 가까운 진동 카운트(예를 들어, 제3 입도)를 생성하여, 로컬 타이머(753)의 신호 주파수를 분할할 수 있다. 모니터링 모듈(755)은 나노초 제너레이터(707)로부터 997개의 주기를 카운팅할 수 있거나 1 마이크로초의 GPS PPS 신호 시간 간격의 3 나노초 오프셋을 검출할 수 있다. 마찬가지로, 조정 모듈(757)은 나노초 제너레이터 출력을 진동 당 1.003 나노초를 나타내도록 조정한다. 다음, 나노초 제너레이터(707)는 마이크로초 당 0.000, 1.003, 2.006…999.991, 1000.994, 1001.997 및 1003 나노초 등 1000개의 진동 표시를 생성한다. 따라서, 나노초 제너레이터(707)의 제997개의 주기로부터 999.991 나노초까지 카운팅한다. 이렇게, 임의의 제너레이터 출력(예를 들어, 표시) 또는 이의 조합은 고정밀도 시간을 실시간으로 생성할 수 있다. 다음, 고정밀도 시간은 센서 유닛(500)의 센서에 제공될 수 있다. 이상 예시에서, 나노초 제너레이터(707)를 사용하여 생성된 시간은 최대로 1 나노초의 정밀도에 달할 수 있다. 3개의 제너레이터(예를 들어, 3개의 입도)를 설명하였으나 임의의 수의 제너레이터와 입도를 사용하여 고정밀도 시간을 생성할 수 있음을 유의해야 한다.
일부 실시형태에서, 설정(711)은 디멀티플렉서(709)에 의해 제너레이터(703 내지 707) 중의 어느 하나를 선택적으로 인에이블/디스에이블할 수 있다. 상기 선택은 임의의 제너레이터를 온/오프할 수 있다. 출력의 서브 세트만 필요한 경우, 상기 선택은 제너레이터 출력의 서브 세트(예를 들어, 단지 나노초 제너레이터)를 선택하도록 사용된다. 다른 일 실시형태에서, 모니터링 모듈(755)은 상이한 입도의 오프셋을 버퍼링(예를 들어, 보존)하고, GPS 센서 신호를 다시 획득할 때까지 GPS 센서 신호가 손실되면 제1 계수값, 제2 계수값 및 제3 계수값(예를 들어, 매번 진동하는 값 표시)을 유지한다.
도 8은 일 실시형태에 따른 타임 스탬프 모듈의 예시를 나타내는 블록도이다. 도 8을 참조하면, 타임 스탬프 모듈(602)(타임 스탬프 동기화 허브 유닛으로 지칭되기도 함)은 타임 생성 또는 GPS 펄스 유닛(801), 타임 스탬프 포맷 변환기(803), TX 타임 스탬프 제너레이터(811 내지 813) 및 RX 타임 스탬프 제너레이터(821 내지 823)를 포함한다. 이러한 모듈 또는 구성 요소 중의 일부 또는 전부는 보다 적은 수의 모듈로 통합될 수 있음을 유의해야 한다. 타임 스탬프 동기화 허브 유닛(602)은 복수의 센서(예를 들어, S1, S2 및 S3)에 연결되어 센서에 TX/RX 및/또는 트리거 타임 스탬프를 제공한다. 타임 생성 또는 GPS 펄스 유닛(801)은 시간을 생성할 수 있거나 센서(S1 내지 S3)에 GPS 펄스를 제공할 수 있다. 타임 스탬프 포맷 변환기(803)는 타임 스탬프 포맷을 다른 하나의 타임 스탬프 포맷으로 변환시킬 수 있으며, 예를 들어, 타임 스탬프는 ms:us:ns:mm:ss:hh:month:day:year 포맷으로부터 mm:ss:hh:month:day:year 포맷으로 변환될 수 있다. 타임 스탬프 포맷은 임의의 조합 및/또는 순서로 년, 월, 일, 시간, 분, 초, 밀리초, 마이크로초 및 나노초를 포함할 수 있다. 따라서, 타임 스탬프 포맷 변환기(803)는 일부 센서(예를 들어, 센서(S1 및 S3))의 시간 입력 파라미터의 요구에 따라 포맷을 다른 하나의 포맷으로 변환시킬 수 있다.
TX 타임 스탬프 제너레이터(811 내지 813)는 센서 유닛의 센서에 사용되는 전송 타임 스탬프를 생성할 수 있다. 일 실시형태에서, TX타임 스탬프 제너레이터는 GPS PPS를 간단하게 하나 또는 복수의 센서로 라우팅하여 GPS PPS 신호를 센서(예를 들어, S1)에 제공할 수 있다. S1센서의 예시는 GPS 시간 정보를 수신하여 입력으로 사용하는 벨로다인(Velodyne)의 LIDAR 센서를 포함한다. GPS 시간 입력 정보는 LIDAR 센서가 GPS 클록과 동기화되도록 한다, 센서가 동기화된 후, LIDAR 센서는 심층적 이미지를 트리거/포착할 수 있고, 또한 심층적 이미지를 갖는 트리거 타임 스탬프를 포함한다. 제2 타임 스탬프는 전송 타임 스탬프일 수 있고, 이는 센서(S1)가 센서 데이터를 S1로부터 센서 유닛(500)으로 전송하는 시간을 나타낸다. 여기서, 트리거 타임 스탬프 및/또는 전송 타임 스탬프는 메타 데이터로서 심층적 이미지와 함께 센서(S1)로부터 센서 유닛(500)으로 전송될 수 있다.
S1센서의 다른 일 예시는 mm:ss:hh:month:day:year 포맷을 수신하는 시간 정보를 입력 파라미터로 사용할 수 있는 카메라 센서를 포함한다. 이 경우, TX 타임 스탬프 제너레이터는 mm:ss:hh:month:day:year 포맷의 TX타임 스탬프(예를 들어, 타임 생성 유닛(801)에 의해 제공됨)를 생성하여 카메라 센서에 발송한다. 카메라 센서는 TX 타임 스탬프로부터 도출(예를 들어, 기간의 임의의 지연을 고려함)될 수 있는 트리거 타임 스탬프를 갖는 RGB 이미지를 트리거링/포착할 수 있다. 센서 데이터가 센서 유닛으로 전송되는 시간을 나타내는 제2 타임 스탬프(전송 타임 스탬프)는 시간 정보 메타 데이터로서 트리거 타임 스탬프를 포함할 수 있다. 다음, 센서 데이터는 시간 정보 메타 데이터와 함께 카메라 센서로부터 센서 유닛(500)으로 전송될 수 있다. S1 센서의 다른 예시는 RADAR 센서, SONAR 센서 및 시간 입력 파라미터를 수신하는 임의의 센서를 포함한다.
다른 일 실시형태에서, TX 타임 스탬프 제너레이터는 mm:ss:hh:month:day:year 포맷으로 타임 스탬프를 생성하여, 생성된 타임 스탬프를 하나 또는 복수의 센서에 제공하며, 여기서 mm:ss:hh:month:day:year 타임 스탬프는 GPS PPS 신호와 동기화된다. 이러한 센서(예를 들어, S3)는 센서 데이터 및 타임 스탬프 메타 데이터(변경되지 않음)를 호스트 시스템(110)에 직접 전송할 수 있다. 더이상 이용 가능한 통신 채널이 없거나 센서 데이터가 낮은 대역폭만을 요구하는 경우, 호스트 시스템(110)과 이더넷 연결과 같은 직접적인 연결을 구축할 수 있다. S3 센서의 예시는 이더넷, 카메라 및/또는 RADAR 센서 등을 포함할 수 있다.
RX 타임 스탬프 제너레이터(821 내지 823)는 센서 유닛(500)이 센서 데이터를 수신할 때에 수신 타임 스탬프를 생성할 수 있으며, 생성된 수신 타임 스탬프를 시간 메타 데이터로서 센서 데이터에 추가할 수 있다. 따라서, 센서 데이터가 호스트 시스템(110)에 발송되었을 경우, 센서 유닛(500)이 센서 데이터를 획득한 시간과 연관되는 이용 가능한 정보가 존재한다. RX 타임 스탬프 제너레이터를 사용한 센서의 예시는 S1 및 S2이다. S1과 S2 사이의 차이점은 S1은 전송(TX) 및/또는 트리거 타임 스탬프 정보를 더 제공하고, S2는 수신(RX) 타임 스탬프 정보만 제공하는 데 있다. S2센서의 예시는 LIDAR, 카메라 및/또는 RADAR 센서 등을 포함한다.
다른 일 실시형태에서, 타임 스탬프 동기화 허브 유닛(602)은 호스트 시스템(110)에 시간 정보(예를 들어, 시간 정보/타임 스탬프)를 제공하기 위해 (예를 들어, PCIe 버스를 통하여) 호스트 시스템(110)에 연결된다. 제공된 시간 정보는 호스트 시스템(110)이 호스트 시스템(110)의 RTC(예를 들어, CPU-RTC)가 제공된 시간과 동기화되도록 허용하여 센서 유닛(500)과 호스트 시스템(110) 사이에서 단일 글로벌 시간을 사용하도록 한다. 이후, ADV에 사용되는 호스트 시스템(110)의 계획 및 제어 모듈은 센서 유닛(500)과 동기화된 호스트 시스템(110)의 로컬 RTC를 사용하여 ADV를 자율적으로 계획 및 제어할 수 있다.
지하 주차장에서 ADV를 시동시킬 경우(예를 들어, GPS 신호가 없는 경우), ADV는 타임 소스 선택기(603)을 사용한다. 일 실시형태에서, 센서 유닛(500) 또는 호스트 시스템(110)은 타임 스탬프를 생성하기 위해 여전히 상대적으로 정확한 시간이 수요되므로, 센서 유닛(500) 또는 ADV의 이용 가능한 타임 소스의 정확도와 관련되는 정보가 누락될 경우 타임 소스의 디폴트 랭킹 리스트를 사용하여 바람직한 타임 소스를 결정할 수 있다. 디폴트 랭킹 리스트의 예시로서 GPS, FPGA RTC, WIFI, LTE 및 CPU RTC의 순서대로 다양한 타임 소스를 배열할 수 있다. 이 경우, 유일하게 이용 가능한 타임 소스가 FPGA RTC 및 WIFI 신호로부터 발생된 것이면, FPGA RTC 타임 소스는 우선권을 가지며, 로컬 타임(예를 들어, 도 7의 로컬 타이머(753)의 로컬 타임)을 구축하는 바람직한 타임 소스가 된다. 그러나, 일 실시형태에서, GPS 센서로부터 발생된 신호가 이용 가능하면, 타임 소스 선택기(603)은 랭킹 시스템에 기반하여 상이한 이용 가능 타임 소스의 정밀도를 결정한다.
일 실시형태에서, 타임 소스 선택기(603)은 랭킹 시스템에 의해, 대부분 이용 가능 타임 소스의 절대차이값에 기반하여 히스토그램을 생성한다. 히스토그램 또는 차이 히스토그램은 몇 라운드에 거쳐 생성될 수 있거나, 이러한 히스토그램은 미리 결정된 시간대에서 또는 GPS 신호가 이용 가능만 하면 평균화될 수 있다. 차이 히스토그램에 의해 결정된, GPS 센서와 가장 가까운 타임 소스(예를 들어, 최소 차이)가 GPS 신호가 이용 가능하지 않을 경우(예를 들어, 다음번에 지하 주차장에서 ADV를 시동시킬 경우)에 사용하기 가장 바람직한 타임 소스로 선택된다. 일 실시형태에서, CPU RTC는 바람직한 타임 소스로서 미리 구성된다. 이 경우, 로거(logger)는 CPU RTC의 차이 히스토그램, 증가 시간 또는 평균 증가 시간을 로그 파일 또는 로그 버퍼에 입력한다. 차이 히스토그램, 증가 시간 또는 평균 증가 시간은 CPU RTC 및 GPS 시간의 시간 차이를 기록한다. 다음번에 GPS 신호가 없는 경우에서 시동시킬 경우, 센서 유닛(500)은 증가 시간에 기반하여 CPU RTC를 조정하고 조정한 후의 CPU RTC를 로컬 시간으로 사용한다. 일 실시형태에서, GPS 신호가 이용 가능할 경우, CPU RTC의 임의의 편차를 반영시키기 위해 증가 시간을 업데이트할 수 있다.
상술한 설명에서 도시되고 설명된 구성 요소 중의 일부 또는 전부는 소프트웨어, 하드웨어 또는 이들의 조합으로 실시될 수 있음을 유의해야 한다. 예를 들어, 이러한 유형의 구성 요소는 영구 저장 장치에 장착 및 저장되는 소프트웨어로 구현될 수 있으며, 상기 소프트웨어는 메모리에 로딩되어 프로세서(미도시)에 의해 본원 발명 전체에서 서술한 과정 또는 동작을 구현하도록 실행될 수 있다. 대안적으로, 이러한 유형의 구성 요소는 전용 하드웨어(집적 회로(예를 들어, 전용 집적 회로 또는 ASIC), 디지털 신호 프로세서(digital signal processor, DSP) 또는 필드 프로그래머블 게이트 어레이(FPGA)와 같은)에 프로그래밍되거나 내장되는 실행 가능한 코드로서 구현될 수 있으며, 상기 실행 가능한 코드는 애플리케이션으로부터 대응되는 드라이버 및/또는 운영 체제를 통해 액세스될 수 있다. 이밖에, 이러한 유형의 구성 요소는 소프트웨어 구성 요소를 통해 하나 또는 복수의 특정 명령으로 액세스될 수 있는 명령 세트의 일부로서 프로세서 또는 프로세서 코어 중의 특정 하드웨어 로직으로 구현될 수 있다.
도 9는 센서 유닛 테스트 보드(590)(“테스트 보드”)를 사용하여 센서 유닛(500)을 테스트하는 방법(900)을 나타내는 블록도이다. 방법(900)은 호스트 컴퓨터(110) 또는 모니터링 컴퓨터(594)(“모니터링 컴퓨터”로 통칭 또는 독립적으로 지칭됨)가 방법(900)을 사용하여 테스트될 센서 유닛(500)에 연결되고 테스트될 센서 유닛(500)이 또한 센서 유닛 테스트 보드(590)에 연결되며, 또한 모든 장치의 전원이 켜져 있고 그에 대응되는 전원 자체 테스트를 수행하고 있다고 가정한다.
동작(905)에 있어서, 모니터링 컴퓨터는 예를 들어 호스트 인터페이스(505)를 통해 센서 유닛(500)의 센서 유닛 테스트 소프트웨어(593)에 메시지를 발송함으로써 센서 유닛(500)과 통신을 시도할 수 있다. 상기 메시지는 “ping”과 같이 간단할 수 있으며, 캐리지 리턴 또는 다른 명목(nominal) 메시지일 수 있고, 센서 유닛 테스트 소프트웨어(593)가 이 메시지에 응답을 제공할 것을 원한다. 상기 응답을 (“ACK”) 또는 명령줄 프롬프트 문자 부호(예를 들어, “: ”)를 확인하는 바와 같이 간단하게 모니터링 컴퓨터로 반송시켜, 모니터링 컴퓨터와 센서 유닛 테스트 소프트웨어(593) 사이에 상기 통신이 구축되고, 센서 유닛을 경과하는 호스트 인터페이스(505)가 정상적으로 작동되도록 한다. 모니터링 컴퓨터와 센서 유닛 테스트 소프트웨어(593) 사이에 통신을 구축할 수 없게 되면, 센서 유닛(500)의 테스트가 실패되어 방법(900)이 종료된다.
동작(910)에 있어서, 센서 유닛(500)의 센서 유닛 테스트 소프트웨어(593)는 센서 유닛(500)의 타임 모듈(520)에 대해 구성하도록 시도한다. 구성은 타임 모듈에 대해 초기에 구성하는 레지스터에 입력하는 것을 포함할 수 있으며, 이는 방법(900)을 사용하여 테스트한 모든 센서 유닛(500)에 대해 알려진 값일 수 있다. 타임 모듈에 대해 구성한 이후, 센서 유닛 테스트 소프트웨어(593)는 타임 모듈(520)이 액세스할 수 있는지 여부, 타임 모듈에 대해 구성할 수 있는지 여부 및 타임 모듈이 기대값을 센서 유닛 테스트 소프트웨어(593)에 다시 반송시키는지 여부를 결정하기 위해 타임 모듈(520)을 판독한다. 기대한 시간값이 센서 유닛 테스트 소프트웨어(593)에 다시 반송되지 않을 경우, 센서 유닛(500)의 테스트는 실패한 것이다. 센서 유닛 테스트 소프트웨어(593)는 실패 메시지를 모니터링 컴퓨터(예를 들어, “센서 유닛(500):타임 모듈(520) 구성 실패”)에 입력할 수 있고 방법(900)은 종료된다.
동작(915)에 있어서, 센서 유닛(500)은 센서 유닛 테스트 보드(590)와의 통신을 테스트한다. 실시형태에서, 이 테스트는 모니터 컴퓨터와 센서 유닛 테스트 소프트웨어(593) 사이의 동작(905) 테스트와 유사할 수 있다. 센서 유닛 테스트 소프트웨어(593)는 “ping”을 센서 유닛 테스트 보드(590)에 발송할 수 있다. 센서 유닛 테스트 보드(590)는 임의의 예정된 문자 부호(예를 들어, “>”)의 간단한 확인(“ACK”)으로 응답할 수 있다. 상기 테스트가 실패하면 센서 유닛 테스트 소프트웨어(593)는 모니터링 컴퓨터에 하기와 같은 통지를 발송할 수 있다. 즉 센서 유닛(500)과 센서 유닛 테스트 보드(590) 사이에서 센서 인터페이스(504)에 의한 통신이 실패하여 방법(900)은 종료된다. 그러지 않을 경우, 방법(900)은 동작(1000)에서 계속한다.
아래에 도 10에 대해 동작(1000)을 상세하게 설명한다. 동작(1000)은 센서 유닛 테스트 보드(590)에 의해 제공된 에뮬레이티드 센서 데이터를 사용하여 각각의 센서 채널(1 내지 N) 및 각각의 대응되는 센서 처리 모듈(501A 내지 501C) 및 데이터 전송 모듈(502A 내지 502C)을 테스트한다. 센서 인터페이스(504)에 의해 각각의 I/O 채널 및 각각의 에뮬레이티드 센서에 대해 테스트를 수행하는 기간에, 각각의 I/O 채널의 테스트 상태를 디스플레이한다. 실시형태에서, 상기 디스플레이는 각각의 실패한 센서 채널에 대해 레드 LED를 켜고, 각각의 검증에 성공한 센서 채널에 대해 녹색 LED를 켜고, 모든 센서 채널들이 모두 검증에 성공하면 녹색 LED를 켜며, 임의의 채널이 검증에 실패하면 레드 LED를 켠다.
동작(920)에 있어서, 센서 유닛 테스트 소프트웨어(593)는 모니터링 컴퓨터 및/또는 호스트 컴퓨터로 모든 센서 채널 및/또는 각각의 센서 채널의 성공 또는 실패를 통지할 수 있다.
도 10은 센서 유닛 테스트 보드(590)를 사용하여 센서 유닛(500)을 테스트하는 방법(1000)을 나타내는 블록도이다. 도 10의 왼쪽은 센서 유닛(500)의 테스트 기능을 나타내고, 오른쪽은 센서 유닛 테스트 보드(590)의 기능을 나타내며, 양자 사이에서 상호 작용이 발생하는 곳은 점선으로 나타낸다. 방법(1000)에서, 각각의 센서 채널에 대해 테스트하여(한번에 하나를 테스트함), 센서 채널이 정상적으로 작동하는지 여부를 결정한다.
동작(1005)에 있어서, 센서 유닛(500) 중의 테스트 소프트웨어(593)는 테스트될 I/O 채널을 선택한다. 실시형태에서, 테스트하기 위해 선택된 제1 I/O 채널은 GPS 센서 채널이다. 실시형태에서, 센서 유닛 테스트 보드(590)의 모든 센서 채널은 모두 대응되는 센서 에뮬레이터와 관련된 I/O 채널을 통해 그 대응되는 센서 에뮬레이터에 사용되는 에뮬레이티드 센서 데이터를 주기적으로 전송할 수 있으며, 또한 각각의 I/O 채널에 대해 평가(한번에 하나를 평가함)할 수 있다. 실시형태에서, 센서 유닛(500)의 센서 유닛 테스트 소프트웨어(593)는 선택될 I/O 채널에 대한 선택(한번에 하나를 선택함)을 관리한다. 이는 본 명세서에서 설명한 실시형태이다.
동작(1010)에 있어서, 선택 가능하게, 센서 유닛(500)은 센서 유닛 테스트 소프트웨어(593)에 의해, 선택한 I/O 채널의 식별을 센서 유닛 테스트 보드(590) 및 모니터링 컴퓨터 중 하나 또는 2개에 전송할 수 있다. 동작(1010)에 있어서, 센서 유닛 테스트 소프트웨어(593)는 센서 인터페이스(504)를 통해 선택된 I/O 채널을 선택 가능하게 “ping”하여, 선택된 I/O 채널과 대응되는 센서 유닛 테스트 보드(590)의 에뮬레이티드 센서(591A 내지 591C)를 제시함으로써 센서 인터페이스(504)를 통해 에뮬레이티드 센서 데이터를 그룹으로 나누어 센서 유닛(500)에 발송하도록 한다.
동작(1015)에 있어서, 센서 유닛 테스트 소프트웨어(593)는 선택된 I/O 채널과 대응되는 에뮬레이티드 센서(591A 내지 591C)로부터 응답을 기다리는 최대 시간으로 타이머를 설정할 수 있다.
동작(1020)에 있어서, 에뮬레이티드 센서에 대해 선택한 I/O 채널에서 응답을 수신하기 전에 타이머가 실효되었는지 여부를 결정할 수 있다. 실효되었다면, 방법(1000)은 동작(1040)에서 계속되고, 그렇지 않으면 방법(1000)은 동작(1025)에서 계속된다.
동작(1025)에 있어서, 선택된 I/O 채널과 대응되는 센서 처리 모듈(501A 내지 501C)이 선택된 I/O 채널에서 센서 유닛 테스트 보드(590)의 에뮬레이티드 센서(591A 내지 591C) 중 하나의 에뮬레이티드 센서 데이터를 수신한다. 동작(1025)과 대응되는 센서 유닛 테스트 보드(590) 기능에 대해서는 아래 설명되는 동작(1050)을 참조한다.
동작(1030)에 있어서, 센서 유닛 테스트 소프트웨어(593)는 타임 모듈(520)로부터 시간값을 획득할 수 있으며, 동작(1025)에서 수신된 에뮬레이티드 센서 데이터 및 타임 모듈(520)로부터 획득한 시간값을 선택된 I/O 채널에 사용되는 에뮬레이티드 센서(591A 내지 591C) 중 에뮬레이티드 센서 유효성 검사기에 전송할 수 있다. 실시형태에서, 전송은 체크섬(checksum), 패리티 비트, 해밍 코드 또는 기타 데이터 무결성 체크와 같은 무결성 체크를 포함할 수 있다. 동작(1030)과 대응되는 센서 유닛 테스트 보드(590) 기능에 대해서는 아래 설명되는 동작(1065)를 참조한다.
동작(1035)에 있어서, 선택 가능하게, 센서 유닛 테스트 소프트웨어(593)는 데이터 전송 모듈(502A 내지 502C)이 호스트 인터페이스를 통해 모니터링 컴퓨터로 에뮬레이티드 센서 데이터를 전송하도록 할 수 있다.
동작(1040)에 있어서, 테스트해야 할 더 많은 I/O 채널이 존재하는지 여부를 결정할 수 있다. 존재한다면, 방법(1000)은 동작(1005)에서 계속되고, 그렇지 않으면 아래 설명된 동작(1065)으로부터 동작(1090)까지 진행된 이후 방법(1000)이 종료된다.
지금 도 10의 오른쪽을 참조하면, 센서 유닛 테스트 보드(590)(“테스트 보드(590)”)의 기능을 설명하며, 동작(1050)에 있어서, 테스트 보드(590)는 선택된 I/O 채널에 사용되는 에뮬레이티드 센서 데이터를 센서 유닛(500)에 전송한다. 상기 에뮬레이티드 센서 데이터는 상기 동작(1025)에서 서술된 바와 같이, 센서 유닛(500)에 의해 수신된다.
동작(1055)에 있어서, 테스트 보드(590)가 에뮬레이티드 센서 데이터를 센서 유닛(500)으로 전송하는 것에 응답하여, 테스트 보드(590)는 센서 유닛(500)으로부터 에뮬레이티드 센서 데이터 및 시간값을 수신하는데 기다리는 시간을 설정한다.
동작(1060)에 있어서, 타이머가 실효되고 센서 유닛(500)으로부터 응답을 수신하지 못할 경우, 방법(1000)은 동작(1085)에서 계속되고, 그렇지 않으면 방법(1000)은 동작(1065)에서 계속된다.
동작(1065)에 있어서, 테스트 보드(590)는 선택된 I/O 채널에서 센서 유닛(500)으로부터 반송된 에뮬레이티드 센서 데이터 및 시간값을 수신한다. 선택된 I/O 채널에 사용되도록 구성된 에뮬레이티드 센서(591A 내지 591C)는 상기 동작(1030)에 서술된 바와 같이, 센서 유닛(500)에 의해 전송된 에뮬레이티드 센서 데이터, 시간값 및 선택 가능한 무결성 검사(예를 들어 패리티, 체크섬, 해밍 코드 등)를 수신한다.
동작(1070)에 있어서, 테스트 보드(590)는 수신된 에뮬레이티드 센서 데이터, 시간값 및 무결성 검사에 대해 유효성 검사를 수행한다. 상기 유효성 검사는 선택된 I/O 채널과 대응되는 에뮬레이티드 센서(591A 내지 591C)의 유효성 검사기에 의해 수행된다. 상술한 설명에서는 도 5a 및 도 5b를 참조하여 유효성 검사를 상세하게 설명하였다.
동작(1075)에 있어서, 선택 가능하게, 선택된 센서가 GPS이면, 테스트 보드(590)는 수신된 에뮬레이티드 GPS 센서 데이터 및/또는 시간값을 테스트될 후속의 I/O 채널과 대응되는 하나 또는 복수의 에뮬레이티드 센서(591B 내지 591C)에 제공할 수 있다.
동작(1080)에 있어서, 선택된 I/O 채널과 대응되는 에뮬레이티드 센서의 유효성 검사기에 의해 그 어떤 유효성 검사 오류가 발견되었는지를 판단할 수 있다. 발견되었다면, 방법(1000)은 동작(1085)에서 계속되고, 그렇지 않으면 방법(1000)은 동작(1090)에서 계속된다.
동작(1085)에 있어서, 예를 들어, 센서 유닛 테스트 보드(590)에서의 방금 테스트한 I/O 채널과 관련된 레드 LED를 켜는 것과 같이 실패 지시를 지시할 수 있다. 실시형태에서, 상기 I/O 채널의 실패 지시는 예를 들어 텍스트 형태로 모니터링 컴퓨터에 발송할 수 있다. 방법(1000)에서 테스트 보드(590)의 일부는 상기 I/O 채널에 의해 종료된다. 상기 동작(1040)에 있어서, 모든 I/O 채널을 하나씩 반복(interating)하기 위한 순환 제어는 센서 유닛(500)에 의해 제어된다.
동작(1090)에 있어서, 예를 들어, 센서 유닛 테스트 보드(590)에서의 방금 테스트한 I/O 채널과 관련된 녹색 LED를 켜는 것과 같이 성공 지시를 지시할 수 있다. 실시형태에서, 상기 I/O 채널의 성공 지시는 예를 들어 텍스트 형태로 모니터링 컴퓨터에 발송할 수 있다. 방법(1000)에서 테스트 보드(590)의 일부는 상기 I/O 채널에 의해 종료된다. 상기 동작(1040)에 있어서, 모든 I/O 채널을 하나씩 반복하기 위한 순환 제어는 센서 유닛(500)에 의해 제어된다.
도 11은 본 발명의 일 실시형태와 함께 사용할 수 있는 데이터 처리 시스템의 예시를 나타내는 블록도이다. 예를 들어, 시스템(1500)은 상술한 설명에서 상기 과정 또는 방법 중 어느 하나를 수행하는 임의의 데이터 처리 시스템, 예를 들어 도 1의 감지 및 계획 시스템(110) 또는 서버(103 내지 104) 중의 어느 하나를 나타낼 수 있다. 시스템(1500)은 많은 상이한 구성 요소들을 포함할 수 있다. 이러한 구성 요소들은 집적 회로(IC), 집적 회로의 일부분, 개별 전자 장치 또는 회로 기판(예를 들어, 컴퓨터 시스템의 마더보드 또는 애드인 카드)에 사용되는 다른 모듈로 구현될 수 있거나 다른 방식으로 컴퓨터 시스템의 섀시 내에 애드인(add-in)되는 구성 요소로 구현된다.
시스템(1500)은 컴퓨터 시스템의 많은 구성 요소들에 대한 높은 수준의 투시도를 나타내도록 의도됨을 유의해야 한다. 그러나, 일부 실시형태는 추가적인 구성 요소를 가질 수 있으며, 이밖에 다른 실시형태는 도시된 구성 요소의 상이한 배치를 가질 수 있음을 이해해야 할 것이다. 시스템(1500)은 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 PC, 서버, 휴대 전화, 미디어 플레이어, 개인 정보 단말기(Personal Digital Assistant, PDA), 스마트 워치, 개인 통신기, 게임 장치, 네트워크 라우터 또는 허브, 무선 액세스 포인트(AP) 또는 리피터, 셋톱 박스 또는 이들의 조합을 나타낼 수 있다. 이밖에, 단일 기계 또는 시스템만 도시되어 있으나, 용어 “기계” 또는 “시스템”은 본 명세서에서 논의된 어느 하나 또는 복수의 방법을 수행하기 위해, 하나(또는 복수)의 명령 세트를 개별적으로 또는 공동으로 실행하는 기계 또는 시스템의 임의의 세트를 포함하는 것으로 이해되어야 할 것이다.
일 실시형태에서, 시스템(1500)은 버스 또는 인터커넥트(1510)를 통해 연결되는 프로세서(1501), 메모리(1503) 및 장치(1505 내지 1508)를 포함한다. 프로세서(1501)는 그중에 단일 프로세서 코어 또는 복수의 프로세서 코어를 포함하는 단일 프로세서 또는 복수의 프로세서를 나타낼 수 있다. 프로세서(1501)는 마이크로 프로세서, 중앙 처리 유닛(CPU) 등과 같은 하나 또는 복수의 통용 프로세서를 나타낼 수 있다. 보다 구체적으로, 프로세서(1501)는 CISC (Complex Instruction Set Computer) 마이크로 프로세서, RISC (Reduced Instruction Set Computer) 마이크로 프로세서, VLIW(Very Long Instrunction Word) 마이크로 프로세서, 또는 기타 명령 집합을 구현하는 프로세서, 또는 명령 집합의 조합을 구현하는 프로세서일 수 있다. 프로세서(1501)는 전용 집적 회로(ASIC), 셀룰러 또는 기저 대역 프로세서, 필드 프로그램 가능 게이트 어레이(FPGA), 디지털 신호 프로세서(DSP), 네트워크 프로세서, 그래픽 프로세서, 통신 프로세서, 암호화 프로세서, 코프로세서, 임베디드 프로세서, 또는 명령을 처리할 수 있는 임의의 다른 유형의 로직과 같은 하나 또는 복수의 전용 프로세서일 수 있다.
프로세서(1501)(초 저전압 프로세서와 같은 저전력 멀티 코어 프로세서 소켓일 수 있음)는 상기 시스템의 다양한 구성 요소와 통신하기 위한 메인 프로세싱 유닛 및 중앙 허브로서 사용될 수 있다. 이러한 프로세서는 시스템 온 칩(SoC)으로 구현될 수 있다. 프로세서(1501)는 본 명세서에서 논의된 동작 및 단계를 수행하기 위한 명령을 실행하도록 구성된다. 시스템(1500)은 디스플레이 컨트롤러, 그래픽 프로세서 및/또는 디스플레이 장치를 포함할 수 있는 선택 가능한 그래픽 서브 시스템(1504)과 통신하는 그래픽 인터페이스를 더 포함할 수 있다.
프로세서(1501)는 메모리(1503)와 통신할 수 있으며, 일 실시형태에서 주어진 양의 시스템 메모리를 제공하기 위해 복수의 메모리 장치를 통해 구현될 수 있다. 메모리(1503)는 랜덤 액세스 메모리(RAM), 동적 RAM(DRAM), 동기식 DRAM(SDRAM), 정적 RAM(SRAM) 또는 기타 유형의 저장 장치와 같은 하나 또는 복수의 휘발성 저장 장치(또는 메모리)를 포함할 수 있다. 메모리(1503)는 프로세서(1501) 또는 임의의 기타 장치에 의해 실행되는 명령 서열을 포함하는 정보를 저장할 수 있다. 예를 들어, 다양한 운영 체제, 장치 드라이버, 펌웨어(예를 들어, 입력 출력 기본 시스템 또는 BIOS) 및/또는 애플리케이션의 실행 가능 코드 및/또는 데이터는 메모리(1503)에 로딩되어 프로세서(1501)에 의해 실행될 수 있다. 운영 체제는 로봇 운영 체제(ROS), Microsoft® 회사의 Windows® 운영 체제, 애플 회사의 Mac OS®/iOS®, Google® 회사의 Android®, LINUX, UNIX, 또는 기타 실시간 또는 임베디드 운영 체제와 같은 임의의 유형의 운영 체제일 수 있다.
시스템(1500)은 네트워크 인터페이스 장치(1505), 선택 가능한 입력 장치(1506) 및 다른 선택 가능한 I/O 장치(1507)를 포함하는 장치(1505 내지 1508)와 같은 I/O 장치를 더 포함할 수 있다. 네트워크 인터페이스 장치(1505)는 무선 트랜시버 및/또는 네트워크 인터페이스 카드(NIC)를 포함할 수 있다. 상기 무선 트랜시버는 WiFi 트랜시버, 적외선 트랜시버, 블루투스 트랜시버, WiMax 트랜시버, 무선 셀룰러 전화 트랜시버, 위성 트랜시버(예를 들어, 글로벌 포지셔닝 시스템(GPS) 트랜시버) 또는 기타 무선주파수(RF) 트랜시버 또는 이들의 조합일 수 있다. NIC는 이더넷 카드일 수 있다.
입력 장치(1506)는 마우스, 터치 패드, 터치 감지 스크린(디스플레이 장치(1504)와 통합될 수 있음), 포인팅 장치(스타일러스와 같음) 및/또는 키보드(예를 들어, 물리적 키보드 또는 터치 감지 스크린의 일부로서 디스플레이되는 가상 키보드)를 포함할 수 있다. 예를 들어, 입력 장치(1506)는 터치 스크린에 연결된 터치 스크린 컨트롤러를 포함할 수 있다. 터치 스크린 및 터치 스크린 컨트롤러는 예를 들어, 다양한 터치 감지 기술(전기 용량, 저항, 적외선 및 표면 탄성파 기술을 포함하나 이에 한정되지 않음) 중 어느 하나, 및 터치 스크린과의 접촉 포인트를 판단하기 위한 하나 또는 복수의 기타 근접 센서 어레이 또는 기타 구성을 사용하여 해당 접촉과 이동 또는 중단을 검출할 수 있다.
I/O 장치(1507)는 오디오 장치를 포함할 수 있다. 오디오 장치는 스피커 및/또는 마이크로폰을 포함하여 음성 식별, 음성 복제, 디지털 기록 및/또는 전화 기능과 같은 음성 지원 기능을 도모할 수 있다. 기타 I/O 장치(1507)는 범용 직렬 버스(USB) 포트, 병렬 포트, 직렬 포트, 프린터, 네트워크 인터페이스, 버스 브리지(예를 들어, PCI-PCI 브리지), 센서(예를 들어, 가속도계와 같은 운동 센서, 자이로스코프, 자력계, 광 센서, 나침반, 근접 센서 등) 또는 이들의 조합을 더 포함할 수 있다. 장치(1507)는 카메라 기능(예를 들어, 사진 및 비디오 클립을 기록함)을 도모하기 위한 전하 결합 소자(CCD; charge-coupled device) 또는 상보성 금속산화물 반도체(CMOS) 광학 센서와 같은 광학 센서를 포함할 수 있는 이미징 처리 서브 시스템(예를 들어, 카메라)을 더 포함할 수 있다. 시스템(1500)의 구체적인 구성 또는 설계에 따라, 일부 센서는 센서 허브(미도시)를 통해 인터커넥트(1510)에 연결될 수 있는 반면, 키보드 또는 열 센서와 같은 기타 장치는 임베디드 컨트롤러(미도시)에 의해 제어될 수 있다.
데이터, 애플리케이션, 하나 또는 복수의 운영 체제 등과 같은 정보에 대한 영구 저장을 제공하기 위해, 대용량 저장 장치(미도시)는 또한 프로세서(1501)에 연결될 수 있다. 다양한 실시형태에서, 보다 얇고 가벼운 시스템 설계를 구현하고 시스템 응답성을 개선하기 위해, 이러한 대용량 저장 장치는 솔리드 스테이트 장치(SSD)를 통해 구현될 수 있다. 그러나, 다른 실시형태에서, 대용량 저장 장치는 주로 하드 디스크 드라이브(HDD)를 사용하여 구현될 수 있으며, 여기서 비교적 적은 양의 SSD 저장 장치는 SSD 캐시로서 작용하여 정전 기간에 컨텍스트 상태 및 다른 해당 유형의 정보의 비휘발성 저장을 구현함으로써, 시스템 활동이 다시 시작될 때 빠른 전원 연결을 구현하도록 한다. 이밖에, 플래시 장치는 예컨대 직렬 주변 장치 인터페이스(SPI)를 통해 프로세서(1501)에 연결될 수 있다. 이러한 플래시 장치는 상기 시스템의 BIOS 및 다른 펌웨어를 포함하는 시스템 소프트웨어의 비휘발성 저장을 제공할 수 있다.
저장 장치(1508)는 본 명세서에서 기술된 어느 하나 또는 복수의 방법 또는 기능을 구현하는 하나 또는 복수의 명령 집합 또는 소프트웨어(예를 들어, 모듈, 유닛 및/또는 로직(1528))가 저장된 컴퓨터 액세스 가능 저장 매체(1509)(기계 판독 가능 저장 매체 또는 컴퓨터 판독 가능 매체로 지칭되기도 함)를 포함할 수 있다. 처리 모듈/유닛/로직(1528)은 상기 구성 요소 중 어느 하나, 예를 들어 감지 모듈(302), 계획 모듈(305), 제어 모듈(306) 및/또는 센서 유닛(500)을 나타낼 수 있다. 처리 모듈(1528)은 센서 유닛 테스트 소프트웨어(593), 다양한 유형의 에뮬레이티드 센서에 사용되는 에뮬레이티드 센서 데이터 유효성 검사기 및 본 명세서에서 설명된 기능을 구현하는 기타 로직들을 더 포함할 수 있다. 처리 모듈/유닛/로직(1528)은 또한 데이터 처리 시스템(1500), 메모리(1503) 및 프로세서(1501)에 의해 실행되는 동안에, 메모리(1503) 내 및/또는 프로세서(1501) 내에 완전히 또는 적어도 부분적으로 체류될 수 있으며, 데이터 처리 시스템(1500), 메모리(1503) 및 프로세서(1501)는 기계에 액세스 가능한 저장 매체를 더 구성한다. 처리 모듈/유닛/로직(1528)은 네트워크에 의해 네트워크 인터페이스 장치(1505)를 통해 전송되거나 수신될 수 있다.
컴퓨터 판독 가능 저장 매체(1509)는 이상에서 설명된 일부 소프트웨어 기능을 영구적으로 저장하도록 사용될 수도 있다. 컴퓨터 판독 가능 저장 매체(1509)는 예시적인 실시형태에서 단일 매체로서 도시되어 있지만, 용어 “컴퓨터 판독 가능 저장 매체”는 상기 하나 또는 복수의 명령 집합을 저장하는 단일 매체 또는 복수의 매체(예를 들어, 집중식 또는 분산식 데이터베이스 및/또는 관련 캐시 및 서버)를 포함하는 것으로 이해되어야 한다. 용어 “컴퓨터 판독 가능 저장 매체”는 또한 기계에 의해 실행되고, 상기 기계가 본 발명의 어느 하나 또는 복수의 방법을 수행하도록 사용되는 명령 집합을 저장하거나 프로그래밍할 수 있는 임의의 매체를 포함하는 것으로 이해되어야 한다. 따라서, 용어 “컴퓨터 판독 가능 저장 매체”는 고체 메모리 및 광학 매체 및 자기 매체, 또는 임의의 다른 비일시적 기계 판독 가능 매체를 포함하나 이에 한정되지 않는 것으로 이해되어야 한다.
본 명세서에 기술된 처리 모듈/유닛/로직(1528), 구성 요소 및 기타 특징들은 이산 하드웨어 구성 요소로서 구현되거나 하드웨어 구성 요소(ASICS, FPGA, DSP 또는 유사한 장치와 같음)의 기능에 통합될 수 있다. 이밖에, 처리 모듈/유닛/로직(1528)은 하드웨어 장치 내의 펌웨어 또는 기능 회로로 구현될 수 있다. 또한, 처리 모듈/유닛/로직(1528)은 하드웨어 장치 및 소프트웨어 구성 요소의 임의의 조합으로 구현될 수 있다.
유의해야 할 것은, 시스템(1500)이 데이터 처리 시스템의 다양한 구성 요소를 갖는 것으로 도시되어 있지만, 구성 요소를 상호 연결하는 임의의 특정 구조 또는 방식을 나타내도록 의도되지 않았다. 이는 이러한 세부 사항 및 본 발명의 실시형태가 밀접하게 관련되지 않기 때문이다. 또한, 보다 적은 구성 요소를 갖거나 더 많은 구성 요소를 가질 수 있는 네트워크 컴퓨터, 핸드 홀드 컴퓨터, 휴대 전화, 서버 및/또는 다른 데이터 처리 시스템도 본 발명의 실시형태와 함께 사용될 수 있음을 인식해야 한다.
전술한 상세한 설명의 일부 부분은 컴퓨터 메모리 내의 데이터 비트에 대한 연산의 알고리즘 및 부호 표시에 따라 제시된다. 이러한 알고리즘의 설명 및 표시는 데이터 처리 분야의 당업자가 그들의 작업의 내용을 다른 당업자에게 가장 효과적으로 전달하기 위해 사용하는 수단이다. 본 명세서에서, 알고리즘은 종종 원하는 결과를 초래하는 일련의 일관된 동작 서열로 인식된다. 이러한 동작들은 물리량에 대해 물리적으로 제어하는 동작들을 가리킨다.
그러나 모든 이러한 용어와 유사한 용어는 모두 적절한 물리량과 연관되며 단지 이러한 양에 적용되는 편리한 레이블이라는 점에 유의해야 한다. 상기 기술에서 달리 명시적으로 언급되지 않는 한, 본 명세서 전체에서, 용어(첨부된 청구 보호 범위에서 기술된 용어와 같음)를 사용하여 진행한 논의는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 장치의 동작 및 처리를 가리키며, 상기 컴퓨터 시스템 또는 전자 컴퓨팅 장치는 컴퓨터 시스템의 레지스터 및 메모리 내의 물리(전자)량으로 표시되는 데이터를 제어하고, 또한 상기 데이터는 컴퓨터 시스템 메모리 또는 레지스터 또는 다른 이러한 유형의 정보 저장 장치, 전송 또는 디스플레이 장치 내의 물리량으로 유사하게 표시되는 다른 데이터로 변환됨을 이해해야 할 것이다.
본 발명의 실시형태는 또한 본 명세서에서의 동작을 수행하기 위한 기기와 관련된다. 이러한 컴퓨터 프로그램은 비일시적 컴퓨터 판독 가능 매체에 저장된다. 기계 판독 가능 매체는 기계(예를 들어, 컴퓨터)가 판독 가능한 형태로 정보를 저장하는 임의의 기구를 포함한다. 예를 들어, 기계 판독 가능(예를 들어, 컴퓨터 판독 가능) 매체는 기계(예를 들어, 컴퓨터) 판독 가능 저장 매체(예를 들어, 읽기 전용 메모리(“ROM”), 랜덤 액세스 메모리(“RAM”), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 장치)를 포함한다.
전술한 도면에 도시된 과정 또는 방법은 하드웨어(예를 들어, 회로, 전용 로직 등), 소프트웨어(예를 들어, 비일시적 컴퓨터 판독 가능 매체에 구현됨) 또는 양자의 조합을 포함하는 처리 로직에 의해 수행될 수 있다. 비록 상기 과정 또는 방법이 상술한 설명에서 일부 순차적 작동에 의해 설명되었으나, 상기 작동 중 일부는 상이한 순서로 수행될 수 있음을 이해해야 할 것이다. 이밖에, 일부 작동은 순차적이 아닌 병행으로 수행될 수 있다.
본 발명의 실시형태는 임의의 특정적인 프로그래밍 언어를 참조하여 설명된 것이 아니다. 다양한 프로그래밍 언어를 사용하여 본 명세서에 설명된 본 발명의 실시형태와 같은 교시를 구현할 수 있음을 인식해야 한다.
이상 명세서에서, 본 발명의 구체적인 예시적 실시형태를 참조하여 본 발명의 실시형태에 대해 설명한다. 첨부된 청구보호 범위에 기술된 본 발명의 보다 넓은 의도와 범위를 벗어나지 않는 경우, 본 발명에 대해 다양한 수정을 진행할 수 있음은 자명한 것이다. 따라서, 본 명세서 및 첨부 도면은 제한적인 의미가 아니라 예시적인 의미로 이해되어야 한다.

Claims (24)

  1. 테스트 대상 센서 유닛의 기능을 검증하는 컴퓨터 실행 방법으로서,
    제1 에뮬레이티드 센서와 대응되는 제1 채널에 의해 제1 에뮬레이티드 센서 데이터를 상기 테스트 대상 센서 유닛에 전송하는 단계 - 상기 테스트 대상 센서 유닛은 자율 주행 차량에 장착된 하나 또는 복수의 센서로부터 획득한 센서 데이터를 처리하기 위한 적어도 하나의 센서 처리 모듈을 포함하며, 처리된 센서 데이터는 상기 자율 주행 차량의 주변의 주행 환경을 감지하기 위한 것임 - ;
    상기 제1 채널에 의해 상기 테스트 대상 센서 유닛으로부터 제2 에뮬레이티드 센서 데이터, 및 상기 제1 에뮬레이티드 센서 데이터와 관련된 제1 시간값을 수신하는 단계; 및
    수신된 제2 에뮬레이티드 센서 데이터 및 상기 제1 시간값에 대해 유효성 검사를 수행하고, 상기 제2 에뮬레이티드 센서 데이터 또는 상기 제1 시간값에서 하나 또는 복수의 오류가 검출된 것에 응답하여, 상기 테스트 대상 센서 유닛의 제1 채널 및 상기 제1 에뮬레이티드 센서 데이터와 관련된 적어도 하나의 제1 실패 지시를 디스플레이하는 단계를 포함하는 테스트 대상 센서 유닛의 기능을 검증하는 컴퓨터 실행 방법.
  2. 제1항에 있어서,
    상기 유효성 검사는,
    수신된 제2 에뮬레이티드 센서 데이터가 미리 결정된 규칙에 부합되는, 전송된 제1 에뮬레이티드 센서 데이터로부터의 변환임을 검증하는 단계를 포함하는 테스트 대상 센서 유닛의 기능을 검증하는 컴퓨터 실행 방법.
  3. 제1항에 있어서,
    상기 유효성 검사는,
    수신된 제2 에뮬레이티드 센서 데이터가 전송된 제1 에뮬레이티드 센서 데이터와 동일한 것임을 검증하는 단계를 포함하는 테스트 대상 센서 유닛의 기능을 검증하는 컴퓨터 실행 방법.
  4. 제1항에 있어서,
    상기 유효성 검사는,
    수신된 제2 에뮬레이티드 센서 데이터의 포맷이 상기 제1 에뮬레이티드 센서와 대응되는 실제 제1 센서의 데이터 포맷과 매칭되는지 여부를 결정하는 단계를 포함하는 테스트 대상 센서 유닛의 기능을 검증하는 컴퓨터 실행 방법.
  5. 제4항에 있어서,
    상기 유효성 검사는,
    상기 제1 시간값의 포맷; 및
    상기 제1 시간값의 범위 중 하나 또는 하나 이상을 검증하는 단계를 더 포함하는 테스트 대상 센서 유닛의 기능을 검증하는 컴퓨터 실행 방법.
  6. 제1항에 있어서,
    상기 제1 에뮬레이티드 센서는 에뮬레이트된 글로벌 포지셔닝 위성(GPS) 센서인 테스트 대상 센서 유닛의 기능을 검증하는 컴퓨터 실행 방법.
  7. 제6항에 있어서,
    에뮬레이티드 GPS 센서 데이터 및 제1 시간값을 상기 에뮬레이트된 GPS 센서로부터 제2 에뮬레이티드 센서로 전달하는 단계를 더 포함하는 테스트 대상 센서 유닛의 기능을 검증하는 컴퓨터 실행 방법.
  8. 제7항에 있어서,
    GPS 시간값을 포함하는 제3 에뮬레이티드 센서 데이터를 생성하고, 상기 제2 에뮬레이티드 센서와 대응되는 제2 채널에 의해 GPS 시간값을 포함하는 상기 제3 에뮬레이티드 센서 데이터를 상기 테스트 대상 센서 유닛으로 전송하는 단계 - 상기 제3 에뮬레이티드 센서 데이터는 적어도 부분적으로 상기 에뮬레이티드 GPS 센서 데이터 또는 상기 제1 시간값에 기반하여 생성됨 - ;
    상기 제2 채널에 의해 상기 테스트 대상 센서 유닛으로부터 제4 에뮬레이티드 센서 데이터를 수신하여, 상기 에뮬레이티드 GPS 센서 데이터와 관련된 제2 시간값을 수신하는 단계; 및
    수신된 제4 에뮬레이티드 센서 데이터 및 상기 제2 시간값에 대해 유효성 검사를 수행하고, 상기 제4 에뮬레이티드 센서 데이터 또는 상기 제2 시간값에서 하나 또는 복수의 오류가 검출된 것에 응답하여, 상기 테스트 대상 센서 유닛의 제2 채널 및 상기 제3 에뮬레이티드 센서 데이터와 관련된 적어도 하나의 제2 실패 지시를 디스플레이하는 단계를 더 포함하는 테스트 대상 센서 유닛의 기능을 검증하는 컴퓨터 실행 방법.
  9. 명령어가 저장된 비일시적 기계 판독 가능 매체로서,
    상기 명령어는 프로세서에 의해 실행될 경우, 상기 프로세서가 테스트 대상 센서 유닛의 기능을 검증하는 동작을 수행하도록 하며, 상기 동작은,
    제1 에뮬레이티드 센서와 대응되는 제1 채널에 의해 제1 에뮬레이티드 센서 데이터를 상기 테스트 대상 센서 유닛에 전송하는 단계 - 상기 테스트 대상 센서 유닛은 자율 주행 차량에 장착된 하나 또는 복수의 센서로부터 획득한 센서 데이터를 처리하기 위한 적어도 하나의 센서 처리 모듈을 포함하며, 처리된 센서 데이터는 상기 자율 주행 차량의 주변의 주행 환경을 감지하기 위한 것임 - ;
    상기 제1 채널에 의해 상기 테스트 대상 센서 유닛으로부터 제2 에뮬레이티드 센서 데이터, 및 상기 제1 에뮬레이티드 센서 데이터와 관련된 제1 시간값을 수신하는 단계; 및
    수신된 제2 에뮬레이티드 센서 데이터 및 상기 제1 시간값에 대해 유효성 검사를 수행하고, 상기 제2 에뮬레이티드 센서 데이터 또는 상기 제1 시간값에서 하나 또는 복수의 오류가 검출된 것에 응답하여, 상기 테스트 대상 센서 유닛의 제1 채널 및 상기 제1 에뮬레이티드 센서 데이터와 관련된 적어도 하나의 제1 실패 지시를 디스플레이하는 단계를 포함하는 비일시적 기계 판독 가능 매체.
  10. 제9항에 있어서,
    상기 유효성 검사는,
    수신된 제2 에뮬레이티드 센서 데이터가 미리 결정된 규칙에 부합되는, 전송된 제1 에뮬레이티드 센서 데이터로부터의 변환임을 검증하는 단계를 포함하는 비일시적 기계 판독 가능 매체.
  11. 제9항에 있어서,
    상기 유효성 검사는,
    수신된 제2 에뮬레이티드 센서 데이터가 전송된 제1 에뮬레이티드 센서 데이터와 동일한 것임을 검증하는 단계를 포함하는 비일시적 기계 판독 가능 매체.
  12. 제9항에 있어서,
    상기 유효성 검사는,
    수신된 제2 에뮬레이티드 센서 데이터의 포맷이 상기 제1 에뮬레이티드 센서와 대응되는 실제 제1 센서의 데이터 포맷과 매칭되는지 여부를 결정하는 단계를 포함하는 비일시적 기계 판독 가능 매체.
  13. 제12항에 있어서,
    상기 유효성 검사는,
    상기 제1 시간값의 포맷; 및
    상기 제1 시간값의 범위 중 하나 또는 하나 이상을 검증하는 단계를 더 포함하는 비일시적 기계 판독 가능 매체.
  14. 제9항에 있어서,
    상기 제1 에뮬레이티드 센서는 에뮬레이트된 글로벌 포지셔닝 위성(GPS) 센서인 비일시적 기계 판독 가능 매체.
  15. 제14항에 있어서,
    상기 동작은,
    에뮬레이티드 GPS 센서 데이터 및 제1 시간값을 상기 에뮬레이트된 GPS 센서로부터 제2 에뮬레이티드 센서로 전달하는 단계를 더 포함하는 비일시적 기계 판독 가능 매체.
  16. 제15항에 있어서,
    상기 동작은,
    GPS 시간값을 포함하는 제3 에뮬레이티드 센서 데이터를 생성하고, 상기 제2 에뮬레이티드 센서와 대응되는 제2 채널에 의해 GPS 시간값을 포함하는 상기 제3 에뮬레이티드 센서 데이터를 상기 테스트 대상 센서 유닛으로 전송하는 단계;
    상기 제2 채널에 의해 상기 테스트 대상 센서 유닛으로부터 제4 에뮬레이티드 센서 데이터를 수신하여, 상기 에뮬레이티드 GPS 센서 데이터와 관련된 제2 시간값을 수신하는 단계; 및
    수신된 제4 에뮬레이티드 센서 데이터 및 상기 제2 시간값에 대해 유효성 검사를 수행하고, 상기 제4 에뮬레이티드 센서 데이터 또는 상기 제2 시간값에서 하나 또는 복수의 오류가 검출된 것에 응답하여, 상기 테스트 대상 센서 유닛의 제2 채널 및 상기 제3 에뮬레이티드 센서 데이터와 관련된 적어도 하나의 제2 실패 지시를 디스플레이하는 단계를 더 포함하는 비일시적 기계 판독 가능 매체.
  17. 데이터 처리 시스템으로서,
    프로세서; 및
    프로세서에 의해 실행될 경우, 상기 프로세서가 테스트 대상 센서 유닛의 기능을 검증하는 동작을 수행하도록 하는 명령어를 저장하고 상기 프로세서에 접속되는 메모리를 포함하고, 상기 동작은,
    제1 에뮬레이티드 센서와 대응되는 제1 채널에 의해 제1 에뮬레이티드 센서 데이터를 상기 테스트 대상 센서 유닛에 전송하는 단계 - 상기 테스트 대상 센서 유닛은 자율 주행 차량에 장착된 하나 또는 복수의 센서로부터 획득한 센서 데이터를 처리하기 위한 적어도 하나의 센서 처리 모듈을 포함하며, 처리된 센서 데이터는 상기 자율 주행 차량 주변의 주행 환경을 감지하기 위한 것임 - ;
    상기 제1 채널에 의해 상기 테스트 대상 센서 유닛으로부터 제2 에뮬레이티드 센서 데이터, 및 상기 제1 에뮬레이티드 센서 데이터와 관련된 제1 시간값을 수신하는 단계; 및
    수신된 제2 에뮬레이티드 센서 데이터 및 상기 제1 시간값에 대해 유효성 검사를 수행하고, 상기 제2 에뮬레이티드 센서 데이터 또는 상기 제1 시간값에서 하나 또는 복수의 오류가 검출된 것에 응답하여, 상기 테스트 대상 센서 유닛의 제1 채널 및 상기 제1 에뮬레이티드 센서 데이터와 관련된 적어도 하나의 제1 실패 지시를 디스플레이하는 단계를 포함하는 데이터 처리 시스템.
  18. 제17항에 있어서,
    상기 유효성 검사는,
    수신된 제2 에뮬레이티드 센서 데이터가 미리 결정된 규칙에 부합되는, 전송된 제1 에뮬레이티드 센서 데이터로부터의 변환임을 검증하는 단계를 포함하는 데이터 처리 시스템.
  19. 제17항에 있어서,
    상기 유효성 검사는,
    수신된 제2 에뮬레이티드 센서 데이터가 전송된 제1 에뮬레이티드 센서 데이터와 동일한 것임을 검증하는 단계를 포함하는 데이터 처리 시스템.
  20. 제17항에 있어서,
    상기 유효성 검사는,
    수신된 제2 에뮬레이티드 센서 데이터의 포맷이 제1 에뮬레이티드 센서와 대응되는 실제 제1 센서의 데이터 포맷과 매칭되는지 여부를 결정하는 단계를 포함하는 데이터 처리 시스템.
  21. 제17항에 있어서,
    상기 유효성 검사는,
    상기 제1 시간값의 포맷; 및
    상기 제1 시간값의 범위 중 하나 또는 하나 이상을 검증하는 단계를 더 포함하는 데이터 처리 시스템.
  22. 제17항에 있어서,
    상기 제1 에뮬레이티드 센서는 에뮬레이트된 글로벌 포지셔닝 위성(GPS) 센서인 데이터 처리 시스템.
  23. 제22항에 있어서,
    상기 동작은,
    에뮬레이티드 GPS 센서 데이터를 상기 에뮬레이트된 GPS 센서로부터 제2 에뮬레이티드 센서로 전달하는 단계를 더 포함하는 데이터 처리 시스템.
  24. 제23항에 있어서,
    상기 동작은,
    GPS 시간값을 포함하는 제3 에뮬레이티드 센서 데이터를 생성하고, 상기 제2 에뮬레이티드 센서와 대응되는 제2 채널에 의해 GPS 시간값을 포함하는 상기 제3 에뮬레이티드 센서 데이터를 상기 테스트 대상 센서 유닛으로 전송하는 단계;
    상기 제2 채널에 의해 상기 테스트 대상 센서 유닛으로부터 제4 에뮬레이티드 센서 데이터를 수신하여, 상기 에뮬레이티드 GPS 센서 데이터와 관련된 제2 시간값을 수신하는 단계; 및
    수신된 제4 에뮬레이티드 센서 데이터 및 상기 제2 시간값에 대해 유효성 검사를 수행하고, 상기 제4 에뮬레이티드 센서 데이터 또는 상기 제2 시간값에서 하나 또는 복수의 오류가 검출된 것에 응답하여, 상기 테스트 대상 센서 유닛의 제2 채널 및 상기 제3 에뮬레이티드 센서 데이터와 관련된 적어도 하나의 제2 실패 지시를 디스플레이하는 단계를 더 포함하는 데이터 처리 시스템.
KR1020200003916A 2019-06-28 2020-01-10 자율 주행 플랫폼의 센서 i/o 커버리지를 향상시키기 위한 플렉시블 테스트 보드 KR102399488B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/457,315 US11269077B2 (en) 2019-06-28 2019-06-28 Flexible test board to improve sensor i/o coverage for autonomous driving platform
US16/457,315 2019-06-28

Publications (2)

Publication Number Publication Date
KR20210001873A KR20210001873A (ko) 2021-01-06
KR102399488B1 true KR102399488B1 (ko) 2022-05-17

Family

ID=68808169

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200003916A KR102399488B1 (ko) 2019-06-28 2020-01-10 자율 주행 플랫폼의 센서 i/o 커버리지를 향상시키기 위한 플렉시블 테스트 보드

Country Status (5)

Country Link
US (1) US11269077B2 (ko)
EP (1) EP3757587B1 (ko)
JP (1) JP7018975B2 (ko)
KR (1) KR102399488B1 (ko)
CN (1) CN112146679A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102498357B1 (ko) 2022-07-19 2023-02-10 아우토크립트 주식회사 자율 주행 차량의 모의 주행 시 보안 기능을 테스트하는 테스트 장치 및 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210255984A1 (en) * 2020-02-19 2021-08-19 Magna Electronics Inc. Vehicular sensor testing system with standardized i2c communication
KR102377233B1 (ko) * 2021-03-25 2022-03-22 (주)넥스트박스 실주행 환경의 모빌리티 데이터를 수집 및 시뮬레이션 하는 시스템
KR102493764B1 (ko) * 2021-08-31 2023-02-06 국방과학연구소 전자 장치의 시간 동기화 방법
CN113820965A (zh) * 2021-09-26 2021-12-21 上汽通用五菱汽车股份有限公司 Imu信号仿真方法、系统、设备和计算机可读存储介质
CN114356757A (zh) * 2021-12-22 2022-04-15 重庆长安汽车股份有限公司 一种基于有限自动驾驶仿真场景的测试条件配置方法
CN117434916A (zh) * 2022-07-15 2024-01-23 小米汽车科技有限公司 车辆功能测试系统、方法及存储介质
CN115158404A (zh) * 2022-08-12 2022-10-11 中车资阳机车有限公司 一种调车机车自动驾驶控制执行系统及方法
KR102540637B1 (ko) * 2022-10-27 2023-06-13 주식회사 모빌테크 다중 센서 동기화 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150346716A1 (en) * 2014-05-27 2015-12-03 Dspace Digital Signal Processing And Control Engineering Gmbh Method and device for testing a control unit
JP2016082403A (ja) * 2014-10-16 2016-05-16 日本電気株式会社 ネットワークシステム、データ誤り検証方法、情報処理装置、情報処理方法、情報処理プログラムおよび通信端末

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5410814A (en) 1977-06-27 1979-01-26 Toshiba Corp Testre for electronic controller of automobile
JPH0823336A (ja) 1994-07-06 1996-01-23 Oki Electric Ind Co Ltd Atmシステムの試験装置
KR101769281B1 (ko) * 2015-11-30 2017-08-22 (주)씽크포비엘 무인 항공기 자율비행 제어 검증 방법 및 장치
US9740944B2 (en) 2015-12-18 2017-08-22 Ford Global Technologies, Llc Virtual sensor data generation for wheel stop detection
US10386845B1 (en) * 2016-01-22 2019-08-20 State Farm Mutual Automobile Insurance Company Autonomous vehicle parking
KR20180034792A (ko) * 2016-09-28 2018-04-05 전자부품연구원 다중 센서 데이터 취득/리시뮬레이션 시스템 및 방법
CN108958066A (zh) * 2017-05-19 2018-12-07 百度在线网络技术(北京)有限公司 仿真测试方法和装置
US10732634B2 (en) 2017-07-03 2020-08-04 Baidu Us Llc Centralized scheduling system using event loop for operating autonomous driving vehicles
US10747228B2 (en) * 2017-07-03 2020-08-18 Baidu Usa Llc Centralized scheduling system for operating autonomous driving vehicles
US10635108B2 (en) * 2017-07-03 2020-04-28 Baidu Usa Llc Centralized scheduling system using global store for operating autonomous driving vehicles
US10031526B1 (en) * 2017-07-03 2018-07-24 Baidu Usa Llc Vision-based driving scenario generator for autonomous driving simulation
JP6811335B2 (ja) 2017-09-29 2021-01-13 日立オートモティブシステムズ株式会社 自動運転シミュレータ及び自動運転シミュレータ用地図生成方法
JP7035416B2 (ja) 2017-09-29 2022-03-15 凸版印刷株式会社 乾燥固形物および乾燥固形物の製造方法
US11640733B2 (en) * 2017-12-23 2023-05-02 Tesla, Inc. Autonomous driving system component fault prediction
CN109709824A (zh) * 2018-12-29 2019-05-03 百度在线网络技术(北京)有限公司 在环仿真方法、平台及系统、服务器、计算机可读介质
CN109765803A (zh) * 2019-01-24 2019-05-17 同济大学 一种自动驾驶汽车多icu共时空的硬件仿真测试系统及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150346716A1 (en) * 2014-05-27 2015-12-03 Dspace Digital Signal Processing And Control Engineering Gmbh Method and device for testing a control unit
JP2016082403A (ja) * 2014-10-16 2016-05-16 日本電気株式会社 ネットワークシステム、データ誤り検証方法、情報処理装置、情報処理方法、情報処理プログラムおよび通信端末

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
장봉주 외 2인, ‘다중 차량센서 기반 도로주변환경 분석 및 모니터링 플랫폼 연구’, Journal of Korea Multimedia Society, 2016.08., vol.19, no.8, pp.1505-1515.*

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102498357B1 (ko) 2022-07-19 2023-02-10 아우토크립트 주식회사 자율 주행 차량의 모의 주행 시 보안 기능을 테스트하는 테스트 장치 및 방법

Also Published As

Publication number Publication date
JP7018975B2 (ja) 2022-02-14
EP3757587A1 (en) 2020-12-30
CN112146679A (zh) 2020-12-29
US20200408921A1 (en) 2020-12-31
EP3757587B1 (en) 2023-09-13
US11269077B2 (en) 2022-03-08
JP2021009671A (ja) 2021-01-28
KR20210001873A (ko) 2021-01-06

Similar Documents

Publication Publication Date Title
KR102399488B1 (ko) 자율 주행 플랫폼의 센서 i/o 커버리지를 향상시키기 위한 플렉시블 테스트 보드
JP6998342B2 (ja) カメラを用いた画像データ取得のための自動運転車両の画像データ取得ロジック
US11299168B2 (en) Time synchronization scheme between different computation nodes in autonomous driving system
JP6799642B2 (ja) 自動運転車両用のハードウェア集中型時刻同期ハブ
US11029165B2 (en) Sensor integration and synchronization unit for an autonomous driving vehicle
JP6799643B2 (ja) 自動運転車両のデータ取得用センサをトリガするためのトリガロジック
JP6845896B2 (ja) 自動運転車両用のgpsに基づく高精度タイムスタンプ生成回路
EP3613648B1 (en) A time source recovery system for an autonomous driving vehicle
JP6907270B2 (ja) 自動運転車両用のタイムソースランキングシステム
EP3642684B1 (en) Data transfer logic for transferring data between sensors and planning and control of autonomous driving vehicle
US11288373B2 (en) Boot failure recovery scheme for hardware-based system of autonomous driving vehicles
US11175410B2 (en) Flexible GPS message decoder for decoding GPS messages during autonomous driving

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant