KR20200023600A - 센서 간의 데이터 전송을 위한 데이터 전송 로직과 자율 주행 차량의 계획 및 제어 - Google Patents

센서 간의 데이터 전송을 위한 데이터 전송 로직과 자율 주행 차량의 계획 및 제어 Download PDF

Info

Publication number
KR20200023600A
KR20200023600A KR1020197024648A KR20197024648A KR20200023600A KR 20200023600 A KR20200023600 A KR 20200023600A KR 1020197024648 A KR1020197024648 A KR 1020197024648A KR 20197024648 A KR20197024648 A KR 20197024648A KR 20200023600 A KR20200023600 A KR 20200023600A
Authority
KR
South Korea
Prior art keywords
data
sensor
module
host system
host
Prior art date
Application number
KR1020197024648A
Other languages
English (en)
Other versions
KR102211298B1 (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 KR20200023600A publication Critical patent/KR20200023600A/ko
Application granted granted Critical
Publication of KR102211298B1 publication Critical patent/KR102211298B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/02Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to ambient conditions
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/091Traffic information broadcasting
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/04Conjoint control of vehicle sub-units of different type or different function including control of propulsion units
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/18Conjoint control of vehicle sub-units of different type or different function including control of braking systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/20Conjoint control of vehicle sub-units of different type or different function including control of steering systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units, or advanced driver assistance systems for ensuring comfort, stability and safety or drive control systems for propelling or retarding the vehicle
    • B60W30/10Path keeping
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units, or advanced driver assistance systems for ensuring comfort, stability and safety or drive control systems for propelling or retarding the vehicle
    • B60W30/14Adaptive cruise control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • 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/38Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
    • G01S19/39Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/42Determining position
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/0088Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0238Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using obstacle or wall sensors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • G05D1/0285Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using signals transmitted via a public communication network, e.g. GSM network
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/20Monitoring the location of vehicles belonging to a group, e.g. fleet of vehicles, countable or determined number of vehicles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/40Photo or light sensitive means, e.g. infrared sensors
    • B60W2420/403Image sensing, e.g. optical camera
    • B60W2420/408
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/42Image sensing, e.g. optical camera
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/52Radar, Lidar
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2556/00Input parameters relating to data
    • B60W2556/45External transmission of data to or from the vehicle
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2556/00Input parameters relating to data
    • B60W2556/45External transmission of data to or from the vehicle
    • B60W2556/50External transmission of data to or from the vehicle for navigation systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60YINDEXING SCHEME RELATING TO ASPECTS CROSS-CUTTING VEHICLE TECHNOLOGY
    • B60Y2400/00Special features of vehicle units
    • B60Y2400/30Sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/48Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for in-vehicle communication

Abstract

일 실시예에서, 자율 주행 차량 (ADV)에 사용되는 센서 유닛은, ADV의 복수의 부동한 위치에 장착된 복수의 센서에 연결 가능한 센서 인터페이스를 포함한다. 센서 유닛은 또한 차량을 자동적으로 주행시키기 위한 계획 및 제어 시스템과 같은 호스트 시스템에 연결 가능한 호스트 인터페이스를 포함한다. 센서 유닛은 또한 센서와 서로 대응하는 복수의 데이터 전송 모듈을 포함한다. 데이터 전송 모듈 중 매개 모듈은 대응하는 센서의 유형에 따라 동작 모드 중의 하나로 동작하도록 구성될 수 있다. 동작 모드는 저지연 모드, 고대역폭 모드 및 저장 모드를 포함할 수 있다.

Description

센서 간의 데이터 전송을 위한 데이터 전송 로직과 자율 주행 차량의 계획 및 제어
본 발명의 실시예는 총체적으로 자율 주행 차량의 조작에 관한 것이다. 특히, 본 발명의 실시예는 자율 주행 차량의 센서 시스템에 관한 것이다.
자율 주행 모드(예컨대, 무인 주행)로 운행하는 차량은 탑승자, 특히는 운전자의 일부의 운전 관련 책임을 완화시켜 줄수 있다. 자율 주행 모드로 운행될 경우, 차량은 차량용 센서를 이용하여 여러 곳으로 유도될수 있어서, 차량이 최소한의 인간-기계 상호 작용으로 또는 일부의 경우에 아무런 탑승자가 없이 주행되는 것을 허용한다.
모션 계획 및 제어는 자율 주행에서 중요한 동작이다. 모션 계획 및 제어의 정확성 및 효율은 차량의 센서에 크게 좌우된다. 부동한 센서는 부동한 요구 사항이나 사양을 가질 수 있다. 하드웨어의 리소스가 제한적이라는 점을 감안하여, 부동한 유형의 센서를 효율적으로 처리할 수 있는 효과적인 센서 처리 유닛이 줄곧 부족하다.
[도면의 간단한 설명]
본 발명의 실시예들은 첨부된 도면들의 각 도면에 예시적이되 비한정적인 방식으로 도시되며, 도면 중의 동일한 도면 부호는 유사한 구성 요소를 지시한다.
도 1은 일 실시예에 따른 네트워크 시스템을 나타내는 블록도이다.
도 2는 일 실시예에 따른 자율 주행 차량의 예시를 나타내는 블록도이다.
도 3a 내지 도 3b는 일 실시예에 따른 자율 주행 차량과 함께 사용되는 감지 및 계획 시스템의 예시를 나타내는 블록도이다.
도 4는 일 실시예에 따른 자동 주행 시스템의 아키텍처를 나타내는 블록도이다.
도 5a 및 도 5b는 일 실시예에 따른 센서 유닛의 예시를 나타내는 블록도이다.
도 6은 일 실시예에 따른 데이터 전송 유닛의 예시를 나타내는 블록도이다.
도 7은 일 실시예에 따른 디스크립터 버퍼 전송의 예시를 나타내는 블록도이다.
도 8은 일 실시예에 따른 버퍼 테이블 수신의 예시를 나타내는 블록도이다.
도 9은 일 실시예에 따른 데이터 처리 시스템을 나타내는 블록도이다.
제1 양태에 있어서, 본 발명은 자율 주행 차량에 사용되는 센서 유닛을 제공하며, 상기 센서 유닛은, 자율 주행 차량 (ADV)의 복수의 위치에 장착된 복수의 센서에 연결되는 센서 인터페이스,호스트 시스템에 연결되는 호스트 인터페이스 - 상기 호스트 시스템은 상기 센서로부터 획득한 센서 데이터에 기초하여 상기 ADV 주위의 주행 환경을 감지하고, 상기 ADV를 자동적으로 주행시키는 경로를 계획하도록 구성됨 -, 및 상기 복수의 센서와 서로 대응하는 복수의 데이터 전송 모듈 - 상기 복수의 데이터 전송 모듈의 각 모듈은, 대응하는 센서와 상기 호스트 시스템 사이에서 데이터가 전송되도록, 대응하는 센서의 유형에 따라 복수의 동작 모드 중 하나로 동작하도록 구성되고, 상기 복수의 동작 모드는 저지연 모드 및 고대역폭 모드를 포함함 -, 을포함한다.
제2 양태에 있어서, 본 발명은 자율 주행 시스템을 제공하며, 상기 자동 주행 시스템은, 자율 주행 차량 (ADV)의 복수의 위치에 장착된 복수의 센서, 감지 모듈과 계획 및 제어 모듈을 구비하는 호스트 시스템 - 상기 감지 모듈은 상기 센서로부터 획득한 센서 데이터에 기초하여 상기 ADV 주위의 주행 환경을 감지하고, 상기 계획 및 제어 모듈은 상기 ADV를 자동적으로 주행시키는 경로를 계획함 -, 및 상기 복수의 센서 및 상기 호스트 시스템에 연결되는 센서 유닛을 포함하고, 상기 센서 유닛은, 상기 ADV에 장착된 상기 복수의 센서에 연결되는 센서 인터페이스, 상기 호스트 시스템에 연결되는 호스트 인터페이스, 및 상기 복수의 센서와 서로 대응하는 복수의 데이터 전송 모듈 - 상기 복수의 데이터 전송 모듈의 각 모듈은, 대응하는 센서와 상기 호스트 시스템 사이에서 데이터가 전송되도록, 대응하는 센서의 유형에 따라 복수의 동작 모드 중 하나로 동작하도록 구성되고, 상기 복수의 동작 모드는 저지연 모드 및 고대역폭 모드를 포함함 -, 을포함한다.
아래에 토론되는 세부 사항들을 참조하여 본 발명의 각종의 실시예들 및 방면들에 대한 설명을 진행하기로 하며, 첨부된 도면들은 상기 각종의 실시예들을 나타내기로 한다. 아래의 설명 및 도면들은 본 발명에 대한 설명일 뿐, 본 발명을 한정하는 것으로 이해하여서는 아니된다. 수많은 특정의 세부 사항들은 본 발명의 각종의 실시예들에 대한 전면적인 이해를 제공하기 위해 설명된다. 그러나, 어떠한 경우에, 본 발명의 실시예들에 대한 간결한 토론을 제공하기 위하여 잘 알려진 또는 전통적인 세부 사항들은 설명되지 않는다.
본 명세서에서 "일 실시예" 또는 "실시예"에 대한 언급은 해당 실시예를 결부하여 설명한 특정의 특징, 구조 또는 특성이 적어도 하나의 실시예에 포함될수 있음을 의미한다. 문구 "일 실시예에서"가 본 명세서 중의 각 위치에서의 출현은 반드시 모두 동일한 실시예를 지칭하는 것이 아니다.
본 발명에 따른 한 방면에 있어서, 자율 주행 차량 (ADV)에 사용되는 센서 유닛은 ADV의 복수의 부동한 위치에 장착되는 복수의 센서에 연결가능한 센서 인터페이스를 포함한다. 센서 유닛은 또한 차량을 자동적으로 주행시키기 위한 계획 및 제어 시스템과 같은 호스트 시스템에 연결가능한 호스트 인터페이스를 포함한다. 센서 유닛은 또한 센서와 서로 대응하는 복수의 데이터 전송 모듈을 포함한다. 데이터 전송 모듈 중 매개 모듈은 대응하는 센서의 유형에 따라 동작 모드 중의 하나로서 동작하도록 구성될 수 있다. 동작 모드는 저지연 모드, 고대역폭 모드 및 저장 모드를 포함할 수 있다.
일 실시예에서, 저지연 모드로 동작할 때, 데이터 전송 모듈은 지연없이 또는 최소 지연하에서 데이터를 전송하도록 구성된다. 고대역폭 모드로 동작할 때, 데이터 전송 모듈은 데이터를 소정 양이 될때까지 축적한 후, 축적된 데이터를 호스트 시스템에 대량으로 전송함으로써, 센서 유닛과 호스트 시스템 간의 연결의 대역폭을 최대화하도록 구성된다. 버스트 (burst)모드와 유사하다. 축적되는 데이터의 양은 단일 전송 사이클 또는 최소 전송 사이클 내에 전송될 수 있는 연결의 사용가능한 대역폭에 따라 결정된다. 예를 들어, 연결이 PCI (Peripheral Component Interconnect) 고속 (PCIe) 링크 인 경우, 축적되는 데이터 양은 PCIe 링크가 단일 PCI주기 또는 제한된 수량의 PCI주기에서 처리될 수 있는 양에 달한다. 다른 실시예에서, 데이터 전송 모듈은 호스트 시스템의 시스템 메모리로부터 매핑된 매핑 메모리에 직접 액세스하는 저장 모드 (고정 저장 모드라고도 함)로 동작하도록 구성될 수있다.
일 실시예에 따르면, 데이터가 저지연 모드 또는 고대역폭 모드로서 센서로부터 호스트 시스템으로 전송될 때, 데이터 전송 모듈은 페이지 디렉토리 테이블 (PDT)을 검색하기 위한 요구를 호스트 시스템에 수송하도록 구성되며, 페이지 디렉토리 테이블 (PDT)은 호스트 시스템에 의해 센서로부터 데이터를 수신하도록 구성되어 있다. PDT는 복수의 페이지 테이블 (PT) 엔트리들을 포함한다. 각 PT 엔트리는 페이지 테이블을 참조하는 메로리 어드레스를 저장한다. 각 페이지 테이블은 여러 메모리 페이지 엔트리들을 포함한다. 각 메모리 페이지 엔트리들은 호스트 시스템의 메모리 페이지의 메모리 어드레스를 저장하는데 사용된다. 호스트로부터 수신한 페이지 디렉토리 테이블에 기초하여, 데이터 전송 모듈은 페이지 디렉토리 테이블 및 페이지 테이블을 횡단하여 저장 페이지에 센서 데이터를 저장하도록 구성된다. 페이지 디렉토리 테이블과 페이지 테이블을 사용하여 맵핑하면 스토리지 페이지가 지속적이거나 연속적일 필요가 없다. 데이터 전송은 분산 수집의 방식으로 실행될 수 있다.
다른 실시예에 따르면, 데이터 또는 명령들이 저지연 모드 또는 고대역폭 모드로서 호스트 시스템으로부터 센서로 수송될 때, 데이터 전송 모듈은 디스크립터 버퍼를 검색하기 위해 요구을 호스트 시스템에 수송하도록 구성된다. 디스크립터 버퍼는 복수의 엔트리 또는 블록을 포함한다. 각 엔트리는 메모리 블록 또는 버퍼의 시작 메모리 어드레스 및 호스트 시스템의 호스트 메모리의 메모리 블록 크기를 지정하는 정보를 포함한다. 이어서, 데이터 전송 모듈은 디스크립터 버퍼를 횡단하여 호스트 시스템에 의해 저장된 메모리 블록으로부터 데이터 또는 명령을 검색하고 데이터 또는 명령을 대응하는 센서로 전송한다.
다른 양태에 따르면, 자율 주행 시스템은 ADV 및 호스트 시스템의 상이한 위치에 장착된 복수의 센서를 포함한다. 호스트 시스템은 감지 모듈과 계획 및 제어 모듈을 포함한다. 감지 모듈은 센서로부터 취득한 센서 데이터에 기초하여 ADV 주변의 주행 환경을 감지하도록 구성된다. 계획 및 제어 모듈은 감지 데이터 기초하여 ADV가 자동으로 주행하는 경로를 계획한다. 자동 주행 시스템은 또한 센서 및 호스트 시스템에 연결된 센서 유닛을 포함한다. 센서 유닛은 센서 인터페이스, 호스트 인터페이스 및 복수의 데이터 전송 모듈을 포함하고, 센서 인터페이스는 ADV에 장착된 센서에 연결되고, 호스트 인터페이스는 호스트 시스템에 연결되며, 복수의 데이터 전송 모듈은 센서에 대응한다. 데이터 전송 모듈 중 매개 모듈은 대응하는 센서와 호스트 시스템 사이에서 데이터를 전송하기 위해 대응하는 센서의 유형에 따라 동작 모드 중의 하나의 모드로서 동작하도록 구성될수 있다. 동작 모드는 저지연 모드 및 고대역폭 모드를 포함한다.
도 1은 본 발명의 일 실시예에 따른 자율 주행 차량 네트워크 구성을 나타내는 블록도이다. 도1을 참조하면, 네트워크 구성(100)은, 네트워크(102)를 통해 하나 또는 다수의 서버들(103 내지 104)에 통신 연결될 수 있는 자율 주행 차량(101)을 포함한다. 비록 하나의 자율 주행 차량이 도시되었으나, 다수의 자율 주행 차량들이 네트워크(102)를 통해 상호 연결되거나 및/또는 서버들(103 내지 104)에 연결될 수 있다. 네트워크(102)는 임의의 유형의 네트워크일 수 있으며, 예컨대, 유선 또는 무선의 근거리 통신망(LAN), 인터넷과 같은 광역 통신망(WAN), 셀룰러 통신망, 위성 통신망 또는 이들의 조합일 수 있다. 서버(103) 내지 (104)는 임의의 유형의 서버 또는 서버 클러스터일 수 있으며, 예컨대, 웹 또는 클라우드 서버, 응용 서버, 백엔드 서버 또는 이들의 조합일 수 있다. 서버(103) 내지 (104)는 데이터 분석 서버, 콘텐츠 서버, 교통 정보 서버, 지도 및 관심 지점(MPOI) 서버 또는 위치 서버 등일 수 있다.
자율 주행 차량은 자율 주행 모드에 처하도록 구축될 수 있는 차량을 가리키며, 상기 자율 주행 모드에서, 차량은 운전자로부터의 입력이 거의 또는 전혀 없이 주행 환경을 통과하게 항법된다. 이러한 자율 주행 차량은, 차량 운행 환경에 관련된 정보를 검출하도록 구축된 하나 또는 다수의 센서들을 구비하는 센서 시스템을 포함할 수 있다. 상기 차량 및 이에 관련된 제어 장치는 검출된 정보를 이용하여 상기 환경을 통과하게 항법을 진행한다. 자율 주행 차량(101)은 수동 모드, 완전 자율 주행 모드 또는 부분적 자율 주행 모드에서 운행된다.
일 실시예에 있어서, 자율 주행 차량(101)은, 감지 및 계획 시스템(110), 차량 제어 시스템(111), 무선 통신 시스템(112), 사용자 인터페이스 시스템(113), 인포테인먼트 시스템(114) 및 센서 시스템(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)은 프로세스를 감지, 예측, 결정, 계획 및 / 또는 제어하기 위한 규칙 또는 알고리즘을 포함할 수 있으며,이에 대해서는 이하에서 더 상세하게 설명될 것이다. 이어서, 알고리즘(124)은 자율 주행 기간 실시간으로 이용하기 위해 ADV 상에 업로드될 수 있다.
도 3a 및 도 3b는 일 실시예에 따른 자율 주행 차량과 함께 사용되는 감지 및 계획 시스템의 예시를 나타내는 블록도이다. 시스템(300)은, 도 1의 자율 주행 차량(101)의 일부로서 구현될 수 있으며, 감지 및 계획 시스템(110), 제어 시스템(111) 및 센서 시스템(115)을 포함하지만, 이에 한정되지 않는다. 도 3a 내지 도 3b을 참조하면, 감지 및 계획 시스템(110)은 로컬라이제이션(localization) 모듈(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 서버는 지도 서비스와 지도 및 루트 정보(311)의 일부로서 캐시될 수 있는 특정 위치들의 POI를 제공한다. 자율 주행 차량(300)이 루트를 따라 이동하는 동안, 로컬라이제이션 모듈(301)은 교통 정보 시스템 또는 서버로부터 실시간 교통 정보를 획득할 수도 있다.
센서 시스템(115)에 의해 제공되는 센서 데이터 및 로컬라이제이션 모듈(301)에 의해 획득되는 로컬라이제이션 정보에 기초하여, 감지 모듈(302)에 의해 주변 환경에 대한 감지가 확정된다. 감지 정보는 일반 운전자가 그가 주행하는 차량의 주위를 어떻게 감지하는지를 나타낼수 있다. 감지는 차선 구성, 신호등 신호, 다른 차량의 상대적 위치, 보행자, 건물, 횡단 보도 또는 기타 교통 관련 표지판(예를 들어, 정지 표지판, 양보 표지판) 등을, 예를 들어, 물체의 형태로 포함할 수 있다. 차선의 구성은 차선의 모양 (예를 들어, 직선 또는 곡선), 차선의 폭, 도로 중 차선 수량, 단방향 또는 양방향 차선, 병합 또는 분할 차선, 출구 차선 등과 같은 하나 이상의 차선을 설명하는 정보를 포함한다.
감지 모듈(302)은, 자율 주행 차량의 환경에서 물체 및/또는 특징을 식별하기 위해, 하나 이상의 카메라에 의해 캡쳐된 이미지를 처리 및 분석하는 컴퓨터 비전 시스템 또는 컴퓨터 비전 시스템의 기능을 포함할 수 있다. 상기 물체는 교통 신호, 도로 경계, 다른 차량, 보행자 및/또는 장애물 등을 포함할 수 있다. 컴퓨터 비전 시스템은 물체 인식 알고리즘, 비디오 추적 및 다른 컴퓨터 비전 기술을 사용할 수 있다. 일부 실시예에서, 컴퓨터 비전 시스템은, 환경을 매핑하고, 물체를 추적하고, 물체의 속력 추정 등을 할수 있다. 감지 모듈(302)은 레이더 및/또는 LIDAR와 같은 다른 센서에 의해 제공되는 다른 센서 데이터에 기초하여 물체를 검출할 수도 있다.
각 물체에 대해, 예측 모듈 (303)은 이런 상황하에서 물체가 어떤 행동을 할것인지를 예측한다. 예측은, 지도 / 루트 정보(311) 및 교통 규칙(312)의 세트를 고려하여, 그 시점에서의 주행 환경을 감지하는 감지 데이터에 기초하여 수행된다. 예를 들어, 물체가 반대 방향의 차량이고 현재의 주행 환경이 교차로를 포함하면, 예측 모듈(303)은 차량이 곧바로 전진할지 또는 회전할지를 예측할 것이다. 감지 데이터가, 교차로가 신호등을 갖지 않는다는 것을 나타내는 경우, 예측 모듈(303)은 차량이 교차로에 진입하기 전에 완전히 정지해야 할 필요가 있다고 예측할 수 있다. 감지 데이터가, 차량이 현재 좌회전 전용차로 또는 우회전 전용차로에 있음을 나타내면, 예측 모듈(303)은 차량이 각각 좌회전 또는 우회전을 할 가능성이 더 높을 것으로 예측할 수 있다.
매개 물체에 대해, 결정 모듈(304)은 물체를 어떻게 다룰지에 대한 결정을 한다. 예를 들어, 특정 물체(예를 들어, 교차 루트에 있는 다른 차량) 및 물체를 기술하는 메타 데이터(예를 들어, 속력, 방향, 선회 각도)에 대해서, 결정 모듈(304)은 상기 물체와 어떻게 대면할지를 결정한다(예를 들어, 추월, 양보, 정지, 통과). 결정 모듈(304)은, 영구 저장 장치(352)에 저장될 수 있는 교통 규칙 또는 운전 규칙(312)과 같은 규칙 세트에 따라 이러한 결정을 내릴 수 있다.
라우팅 모듈 (307)은 출발점으로부터 목적지점까지의 하나 또는 다수의 루트 또는 경로를 제공하도록 구성된다. 예를 들어, 출발 위치로부터 목적지 위치까지의 주어진 여정에 대해, 라우팅 모듈 (307)은 루트 및 지도 정보 (311)를 획득하고, 출발 위치로부터 목적지 위치까지의 모든 가능한 루트 또는 경로를 확정한다. 라우팅 모듈 (307)은 출발 위치로부터 목적지 위치까지 도달하는 루트들 각각에 대해, 지형도 형식의 기준 라인을 생성할 수 있다. 기준 라인은 기타 차량, 장애물 또는 교통 상황 동과 같은 임의의 간섭이 없는 이상적인 루트 또는 경로를 가리킨다. 즉, 도로에 기타의 차량, 보행자 또는 장애물이 없을 경우, ADV는 기준 라인을 정확하게 또는 가깝게 따라가야 한다. 이어서, 지형도는 결정 모듈 (304) 및/또는 계획 모듈 (305)에 제공된다. 결정 모듈(304) 및/또는 계획 모듈(305)은 기타의 모듈들로 제공한 기타의 데이터, 예컨대, 로컬라이제이션 모듈(301)로부터의 교통 상황, 감지 모듈(302)로 감지된 주행 환경 및 예측 모듈(303)로 예측된 교통 상황에 따라, 모든 가능한 루트들을 검사하여 최선의 루트들 중 하나를 선택하여 수정한다. ADV를 제어하기 위한 실제 경로 또는 루트는 해당 시점에서의 특정 주행 환경에 따라 라우팅 모듈(307)로 제공한 기준 라인에 가깝거나 이와 다를수 있다.
감지된 물체들 각각에 대한 결정에 기초하여, 계획 모듈(305)은 라우팅 모듈(307)에 의해 제공된 참조선을 기초로 이용하여, 자율 주행 차량을 위해 경로 또는 루트 및 주행 파라미터(예를 들어, 거리, 속력 및/또는 회전 각도)를 계획한다. 즉, 주어진 물체에 대해, 결정 모듈(304)은 상기 물체에 대한 처리를 결정하고, 계획 모듈(305)은 그것을 어떻게 수행할지를 결정한다. 예를 들어, 주어진 물체에 대해, 결정 모듈(304)은 상기 물체를 지나가는 것으로 결정할 수 있는 반면, 계획 모듈(305)은 상기 물체의 좌측 또는 우측으로 지나갈지를 결정수 있다. 계획 및 제어 데이터는 계획 모듈(305)에 의해 생성되고, 차량(300)이 다음 이동 사이클(예를 들어, 다음 루트/경로 세그먼트)에서 어떻게 움직일 것인지를 기술하는 정보를 포함한다. 예를 들어, 계획 및 제어 데이터는, 차량(300)이 시속 30마일(mph)의 속력으로 10m 이동한 다음, 25mph의 속력으로 우측 차선으로 변경하도록 지시할 수 있다.
계획 및 제어 데이터에 기초하여, 제어 모듈(306)은 계획 및 제어 데이터에 의해 정의된 루트 또는 경로에 따라, 차량 제어 시스템(111)에 적절한 명령 또는 신호를 전송함으로써 자율 주행 차량을 제어 및 주행한다. 상기 계획 및 제어 데이터에는, 경로 또는 루트 상의 시간에 따른 상이한 지점들에서 적절한 차량 설정 또는 주행 파라미터 (예를 들어, 스로틀, 제동 및 선회 명령)를 사용하여 루트 또는 경로의 제1 지점에서 제2 지점까지 차량을 주행할수 있는 충분한 정보가 포함되어 있다.
일 실시예에 있어서, 계획 단계는 다수의 계획 주기들(주행 주기로도 지칭됨)로, 예컨대 매 100 밀리 초(ms)의 시간 간격마다 수행된다. 계획 주기 또는 명령 주기들 각각에 대해, 하나 또는 다수의 제어 명령들은 계획 및 제어 데이터를 기반으로 내려지게 된다. 즉, 매 100ms마다, 계획 모듈(305)은 예컨대 목표 위치 및 ADV가 목표 위치에 도달하는데 필요한 시간을 포함하는 다음 루트 세그먼트 또는 경로 세그먼트를 계획한다. 선택 가능하게, 계획 모듈(305)은 특정 속도, 방향, 및/또는 조향 각도 등을 추가로 지정할수 있다. 일 실시예에 있어서, 계획 모듈(305)은 다음의 소정의 기간 (예컨대, 5초) 동안의 루트 세그먼트 또는 경로 세그먼트를 계획한다. 매 계획 주기마다, 계획 모듈(305)은 이전 주기에서 계획된 목표 위치를 기반으로 현재 주기(예컨대, 다음 5초)의 목표 위치를 계획한다. 이어서, 제어 모듈 (306)은 현재 주기의 계획 및 제어 데이터를 기반으로 하나 또는 다수의 제어 명령(예를 들어, 스로틀, 제동, 조향 제어 명령)을 생성한다.
결정 모듈(304)과 계획 모듈(305)은 집적 모듈로 집적될 수 있음을 유의하여야 한다. 결정 모듈(304)/계획 모듈(305)은 자율 주행 차량의 주행 경로를 결정하기 위한 항법 시스템 또는 항법 시스템의 기능들을 포함할수 있다. 예를 들어, 항법 시스템은, 자율 주행 차량을 최종 목적지로 이르는 차도로 기반의 경로를 따라 전진키면서 인식된 장애물들을 실질적으로 회피하게 하는 경로를 따라 자율 주행 차량의 이동을 유도시키기 위한 일련의 속도 및 전진 방향을 확정할수 있다. 목적지는 사용자 인터페이스 시스템 (113)을 통한 사용자 입력에 따라 설정될수 있다. 항법 시스템은 자율 주행 차량이 운행하는 동안에 주행 경로를 동적으로 업데이트할 수 있다. 항법 시스템은 자율 주행 차량의 주행 경로를 확정하기 위해 GPS 시스템 및 하나 또는 다수의 지도들로부터의 데이터를 병합시킬수 있다.
도 4는 일 실시예에 따른 자동 주행 시스템의 아키텍처를 나타내는 블록도이다. 시스템 아키텍처 (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)은 적어도 필드 프로그래머블 게이트 어레이 (FPGA)의 형식으로 구현될 수 있는 센서 시스템 (115)의 기능을 나타낼 수 있다. 하드웨어층 (406)은 제어 시스템 (111)과 같은 자율 주행 차량의 하드웨어를 나타낼 수 있다. 층(401) ~ 층(403)은 장치 드라이버층 (404)을 통해 펌웨어층 (405) 및 하드웨어층 (406)과 통신할 수 있다.
도 5a는 본 발명의 일 실시예에 따른 센서 시스템의 예시를 나타내는 블록도이다. 도 5a를 참조하면, 센서 시스템 (115)은 다수의 센서 (510) 및 호스트 시스템 (110)에 연결된 센서 유닛 (500)을 포함한다. 호스트 시스템 (110)은 전술한 바와 같은 계획 및 제어 시스템을 나타내며, 상기 계획 및 제어 시스템은 도 3a 및 3B에서 나타내는 것과 같은 모듈의 적어도 일부를 포함할 수 있다. 센서 유닛 (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 (universal serial bus), LTE (long term evolution) 또는 셀룰러, WiFi, GPS, 카메라, CAN, 직렬 (예를 들어, 범용 비동기 송수신기 또는 UART), SIM (사용자 식별 모듈) 카드 및 기타 범용 입력 / 출력 (GPIO) 인터페이스의 하나 이상을 포함할수 있다. 호스트 인터페이스 (505)는 PCIe (주변 장치 컴포넌트 상호 연결 또는 PCI 익스프레스) 인터페이스와 같은 임의의 고속 또는 고 대역폭 인터페이스일 수 있다. 센서 (510)는 자율 주행 차량에서 이용되는 다양한 센서, 예를 들어, 카메라, LIDAR 장치, 레이더 장치, GPS 수신기, IMU, 초음파 센서, GNSS (global navigation satellite system) 수신기, LTE 또는 셀룰러 SIM 카드, 차량 센서 (예를 들어, 스로틀, 브레이크, 조향 센서 ) 및 시스템 센서 (예를 들어, 온도, 습도, 압력 센서) 등과 같은 센서를 포함할수 있다.
예를 들어, 카메라는 이더넷 또는 GPIO 인터페이스를 통해 연결될수 있다. GPS 센서는 USB 또는 특정 GPS 인터페이스를 통해 연결될수 있다. 차량 센서는 CAN 인터페이스를 통해 연결될수 있다. RADAR 센서 또는 초음파 센서는 GPIO 인터페이스를 통해 연결될 수 있다. LIDAR 장치는 이더넷 인터페이스를 통해 연결될 수 있다. 외부 SIM 모듈은 LTE 인터페이스를 통해 연결될 수 있다. 유사하게, 내부 SIM 모듈은 센서 유닛 (500)의 SIM 소켓에 삽입될수 있다. 디버그 목적을 위해, UART와 같은 직렬 인터페이스는 콘솔 시스템과 연결될수 있다.
센서 (510)는 임의의 유형의 센서일 수 있고 다양한 벤더 또는 공급자에 의해 제공될 수 있음을 유의해야 한다. 센서 처리 모듈 (501)은 상이한 유형의 센서 및 그들의 각각의 데이터 격식 및 통신 프로토콜을 처리하도록 구성된다. 일 실시예에 따르면, 센서 (510) 각각은, 센서 데이터를 처리하고 처리된 센서 데이터를 호스트 시스템 (110)과 대응 센서 사이에서 전송하기 위한 특정 채널과 관련된다. 도 5b에 도시된 바와 같이, 각 채널은, 대응하는 센서 데이터 및 프로토콜을 처리하도록 구성되거나 프로그래밍된 특정 센서 처리 모듈 및 특정 데이터 전송 모듈을 포함한다.
도 5b를 참조하면, 센서 처리 모듈 (501A) ~ 센서 처리 모듈 (501C)은 센서 (510A) ~ 센서 (510C)로부터 각각 얻어진 센서 데이터를 처리하도록 구체적으로 구성된다. 센서 (510A) ~ 센서 (510C)는 동일하거나 상이한 유형의 센서일 수 있다. 센서 처리 모듈 (501A) ~ 센서 처리 모듈 (501C)은 상이한 유형의 센서에 사용되는 상이한 센서 프로세스를 처리하도록 구성 (예를 들어, 소프트웨어 구성 가능)될 수 있다. 예를 들어, 센서 (510A)가 카메라인 경우, 처리 모듈 (501A)은 카메라 (510A)에 의해 캡쳐된 이미지를 나타내는 특정 픽셀 데이터에 관한 픽셀 처리 동작을 처리하도록 구성될 수 있다. 유사하게, 센서 (510A)가 LIDAR 장치이면, 처리 모듈 (501A)은 LIDAR 데이터를 구체적으로 처리하도록 구성된다. 즉, 일 실시예에 따르면, 특정 센서의 구체적인 유형에 따라, 해당 처리 모듈은 센서 데이터의 유형에 대응하는 특정 프로세스 또는 방법을 사용하여 대응하는 센서 데이터를 처리하도록 구성될 수 있다.
유사하게, 데이터 전송 모듈 (502A) ~ 데이터 전송 모둘(502C)은 상이한 유형의 센서 데이터가 부동한 속도 또는 타이밍 조건을 필요로 하는 상이한 크기 또는 민감도를 가질수 있기 때문에 상이한 모드에서 동작하도록 구성될 수 있다. 일 실시예에 따르면, 데이터 전송 모듈 (502A) ~ 데이터 전송 모듈(502C) 각각은 저지연 모드, 고대역폭 모드 및 저장 모드 (고정 저장 모드라고도 함) 중 하나로 동작하도록 구성될 수 있다.
일 실시예에 따르면, 저지연 모드에서 동작할 때, 데이터 전송 모듈 (예를 들어, 데이터 전송 모듈 (502))은 센서로부터 수신된 센서 데이터를 가능한 빨리 호스트 시스템에 지연없이 또는 최소 지연으로 전송하도록 구성된다. 일부 센서 데이터는 타이밍 측면에서 매우 민감하므로 가능한 빨리 처리해야 한다. 이러한 센서 데이터의 예시로서 차량 속도, 가속도, 조향각 등과 같은 차량 상태를 포함한다.
일 실시예에 따르면, 고대역폭 모드로서 동작할 때, 데이터 전송 모듈 (예를 들어, 데이터 전송 모듈 (502))은 센서로부터 수신된 센서 데이터를 소정 양까지 누적시키도록 구성되지만, 여전히 데이터 전송 모듈과 호스트 시스템 (110) 사이의 접속의 대역폭 내에 있다. 그 다음, 누적된 센서 데이터는, 데이터 전송 모듈과 호스트 시스템 (110) 사이의 접속의 대역폭을 최대로하는 배치로 호스트 시스템 (110)에 전송된다. 일반적으로 고대역폭 모드는 대량의 센서 데이터를 생성하기 위한 센서에 사용된다. 이러한 센서 데이터의 예시로서 카메라 픽셀 데이터를 포함한다.
일 실시예에 따르면, 저장 모드로서 동작할 때, 데이터 전송 모듈은 센서로부터 수신된 센서 데이터를 공유 메모리 페이지와 유사하게 호스트 시스템 (110)의 매핑 메모리의 메모리 위치에 직접 기입하도록 구성된다. 저장 모드를 사용하여 전송되는 센서 데이터의 예시로서 온도, 팬 속도 등과 같은 시스템 상태 데이터가 포함된다.
도 6은 일 실시예에 따른 데이터 전송 모듈을 나타내는 블록도이다. 데이터 전송 모듈 (600)은 데이터 전송 모듈들 (502A~502C) 중 임의의 하나를 나타낼 수 있다. 도 6을 참조하면 일 실시예에 따라, 데이터 전송 모듈 (600)은 송신 (TX) 모듈 (601) 및 수신 (RX) 모듈 (602)을 포함한다. TX 모듈 (601)은 호스트 시스템 (110)으로부터의 데이터 또는 명령을 센서로 수송하는 역할을 한다. RX 모듈 (602)은 센서로부터 센서 데이터를 수신하고 수신된 센서 데이터를 호스트 시스템 (110)에 송신하는 역할을 한다.
일 실시예에 따르면, 센서로 데이터 및 / 또는 명령을 송신하라는 요구에 응답하여, TX 모듈 (601)은 호스트 시스템에 의해 설립된 TX 디스크립터 버퍼를 가리키는 포인터를 요구하고 수신하며, 상기 포인터는 TX 디스크립터 버퍼 정보 (611)의 일부로서 저장될 수 있다. 디스크립터 버퍼 정보는 호스트 시스템 (110)의 호스트 시스템 메모리에 매핑된 TX 버퍼를 기술하는 메타 데이터를 포함한다. 매핑된 메모리 영역은 센서로 전송될 데이터 및 / 또는 명령을 저장하도록 구성된다. 일 실시예에서, TX 디스크립터는 하나 이상의 메모리 블록 엔트리를 포함한다. 각 메모리 블록 엔트리는 메모리 블록의 시작 어드레스 및 메모리 블록의 크기를 지정하는 정보를 포함한다. 전송될 데이터는 버퍼 (506)에 일시적으로 저장될 수 있으며, 상기 버퍼 (506)에 있어서, 데이터는 대응하는 센서 처리 모듈에 의해 진일보 처리될수 있다. 대안적으로, 센서 처리 모듈은 디스크립터 버퍼 (611)를 통해 매핑된 호스트 메모리로부터의 데이터를 직접 처리할 수 있다.
도 7은 일 실시예에 따른 송신 디스크립터 버퍼의 일예를 나타내는 블록도이다. TX 디스크립터 버퍼 (700)는 도 6의 TX 디스크립터 버퍼 (611)를 나타낼 수 있다. 도 7을 참조하면, TX 디스크립터 버퍼 (TX 디스크립터라고도 함) (700)는 하나 이상의 메모리 블록 엔트리 (701~702)를 포함한다. 각 메모리 블록 엔트리는 (시작 어드레스 (721~722)와 같은) 호스트 시스템 (110)의 호스트 메모리 (710)의 메모리 블록의 시작 어드레스를 지정하는 정보를 포함한다. 각 메모리 블록 엔트리는 대응하는 메모리 블록의 크기 또는 길이 (예컨대, 길이 (723~724))를 더 포함한다. 해당 예시에서, 영역 (721)은 호스트 메모리 (710)의 메모리 블록 (711)의 시작 어드레스를 저장하고, 영역 (723)에서 메모리 블록 (711)의 크기 또는 길이가 지정된다. 유사하게, 영역 (722)은 호스트 메모리 (710)의 메모리 블록 (712)의 시작 어드레스를 저장하고, 영역 (724)에서 메모리 블록 (712)의 크기 또는 길이가 지정된다.
도 6 및 도 7을 참조하면, 데이터 전송을 시작하기 전에 TX 모듈 (601)은 호스트 시스템 (110)으로부터 TX 디스크립터 버퍼 (700)를 요구하고 수신한다. 이때, 호스트 시스템 (110)은 하나 이상의 메모리 블록들 (711-712)에서 전송될 데이터/명령들을 이미 저장하고, TX 디스크립터 버퍼 (700)의 영역들 (721~724)을 채운다. 응답으로서, TX 모듈 (601)은 TX 디스크립터 버퍼 (700)를 가로 질러 메모리 블록 (711) 및 메모리 블록 (712)을 식별한다. 그 다음, TX 모듈 (601)은 메모리 블록 (711~712)으로부터 데이터를 검색하고 대응하는 센서 처리 모듈로 데이터를 수송하고, 계속하여, 상기 센서 처리 모듈은 대응하는 센서와 호환되도록 상기 데이터를 처리한다.그 후, 데이터 및 / 또는 명령이 센서로 전송된다.
센서로 데이터를 송신하는 요구에 응답하여, 운행 타임시에 호스트 시스템 (110)으로부터 TX 디스크립터 버퍼 (700)를 동적으로 다운로드할 수 있음을 유의해야 한다. 대안적으로, TX 디스크립터 버퍼 (700)는 시스템의 시작시에 호스트 시스템 (110)으로부터 다운로드될 수 있으며, 임의의 데이터가 전송되기 전에 메모리 블록 (711~712)에 대해 정적으로 할당을 진행한다.
일 실시예에 따라,도 6을 다시 참조하면, 센서로부터 생성되고 대응하는 센서 처리 모듈에 의해 처리될 수 있는 센서 데이터가 있음을 나타내는 신호를 수신하면, RX 모듈 (602)은 호스트 시스템 (110)에 요구을 수송하고, 요구에 의해 메모리 페이지가 할당됨으로써, 센서로부터 생성된 데이터를 수신한다. 그 다음, RX 모듈 (602)은 호스트 시스템 (110)으로부터 RX 버퍼 테이블 (612)을 수신한다. RX 버퍼 테이블 (612)은 다수 레벨 (예컨대, N 레벨)의 매핑 테이블을 포함할 수 있다. 일 실시예에서, 최상위 레벨 버퍼 테이블은 RX 페이지 디렉토리 테이블을 포함한다. 일 실시예에서, RX 페이지 디렉토리 테이블은 하나 이상의 페이지 테이블 엔트리를 포함한다. 매개 페이지 테이블 엔트리는 특정 페이지 테이블 (예를 들어, 다음 레벨 테이블)의 메모리 어드레스를 저장한다. 매개 페이지 테이블 엔트리는 호스트 시스템 (110)의 호스트 메모리의 메모리 페이지 (예를 들어, 다음 레벨 테이블로서의 고정 메모리 페이지)의 시작 어드레스를 지정하는 정보를 포함한다. 호스트 시스템 (110)의 호스트 메모리의 최상위 레벨 테이블과 메모리 페이지 사이에 N 레벨의 링크 테이블이 존재할 수 있다. 각 상위 수준 테이블에는 계층 구조 중 하위 수준 테이블을 참조하는 어드레스 또는 링크가 포함된다.
도 8은 일 실시예에 따른 RX 버퍼 테이블 구조의 일례를 나타내는 블록도이다. 페이지 디렉토리 테이블 (801)은 도 6의 RX 버퍼 테이블 (612)의 최상위 레벨을 나타낼 수 있다. 도 8을 참조하면, 페이지 디렉토리 테이블 (801)은 PT 엔트리 (811~812)와 같은 하나 이상의 페이지 테이블 (PT) 엔트리를 포함한다. 각 PT 엔트리는 페이지 테이블들 (802~803) (예를 들어, 다음 레벨 테이블, 테이블 (801)의 서브 레벨 테이블)과 같은 특정 페이지 테이블과 링크되는 어드레스를 저장하는데 이용된다. 상기 예에서, PT 엔트리 (811)는 페이지 테이블 (802)을 가리키는 어드레스를 저장하고, PT 엔트리 (812)는 페이지 테이블 (803)을 참조하는 어드레스를 저장한다. 각 페이지 테이블은 하나 이상의 메모리 페이지 (MP) 엔트리들을 포함한다. 매개 MP 엔트리는 호스트 메모리 (810)의 메모리 페이지 (예를 들어, 다음 레벨 테이블)의 시작 위치를 가리키는 메모리 어드레스를 저장 또는 지정하는데 이용될 수 있다. 메모리 페이지는 고정된 크기 (예컨대, 4킬로바이트 또는 KB)의 메모리 페이지로 할당될 수 있다.
도 6 및 도 8을 참조하면, RX 모듈 (602)은 시스템의 초기화 동안 또는 센서 데이터를 수신하기 위한 요구에 동적으로 응답하여, 호스트 시스템 (110)으로부터 페이지 디렉토리 테이블 (801)을 수신한다. RX 모듈 (602)은 페이지 디렉토리 테이블 (801)을 횡단하여 페이지 테이블들 (802~803) 중 하나 이상을 위치 결정시키고, 페이지 테이블들 (802~803)로부터 RX 모듈 (602)은 메모리 페이지의 메모리 어드레스를 식별 및 검색한다. 센서 데이터의 크기에 의해, RX 모듈 (602)은 버퍼 (506)로부터 대응하는 센서 처리 모듈에 의해 처리된 센서 데이터를 검색할 수 있다. 그 다음, RX 모듈 (602)은 페이지 테이블 (802~803)으로부터 획득된 메모리 페이지의 시작 어드레스에 기초하여 호스트 메모리 (810)의 메모리 페이지에 센서 데이터를 저장한다.
일 실시예에서, 데이터 전송 모듈 (600)은 호스트 시스템 (110)에 의해 지정될 수 있는 임의의 구성 정보를 저장하기 위해, 하나 이상의 구성 레지스터 (615)의 세트를 더 포함할 수 있다. 예를 들어, 데이터가 메모리 페이지의 모든 공간을 채우지 않으면, 마지막 메모리 위치의 메모리 어드레스를 지정하여 구성 레지스터 (615)에 저장 할 수 있다. 이로하여, 데이터를 패딩하는 로직 또는 데이터를 읽는 로직은 랩 어라운드 또는 중지를 알 수 있다. 도 8에 도시된 테이블의 레벨은 단지 3가지 뿐이지만, 테이블 (801, 802 및 803)과 호스트 메모리 (810) 사이에는 하나 이상의 레벨의 테이블이 존재할 수 있다.
이상에 도시되고 설명된 바와 같은 부재들 중의 일부 또는 전부는 소프트웨어, 하드웨어 또는 이들의 조합으로 구현될 수 있음을 유의하여야 한다. 예를 들어, 이러한 부재들은 영구 저장 장치에 설치되고 저장된 소프트웨어로 구현될 수 있으며, 상기 소프트웨어는 본 출원의 전반에 걸쳐 설명된 과정 또는 조작들을 수행하기 위해 프로세서(미도시)에 의해 메모리 장치에 로딩되고 실행될 수 있다. 선택 가능하게, 이러한 부재들은 집적 회로(예를 들어, 주문형 집적 회로 또는 ASIC), 디지털 신호 처리 장치(DSP) 또는 현장 프로그램 가능한 게이트 어레이(FPGA)와 같은 전용 하드웨어에 프로그램되거나 내장된 실행 가능한 코드로 구현될 수 있으며, 상기 실행 가능한 코드는 애플리케이션으로부터 유래하는 대응되는 드라이버 및/또는 운영 시스템을 통해 액세스될 수 있다. 또한, 이러한 부재들은, 하나 또는 다수의 특정의 명령들을 통해 소프트웨어 부재에 의해 액세스 가능한 명령 세트 중의 일부로서, 프로세서 또는 프로세서 코어에서 특정의 하드웨어 로직으로 구현될 수 있다.
도 9는 본 발명의 일 실시예와 함께 사용될 수 있는 데이터 처리 시스템의 예시를 나타내는 블록도이다. 예를 들어, 시스템(1500)은 전술한 과정 또는 방법들 중의 임의의 하나를 수행하는 전술한 데이터 처리 시스템들 중의 임의의 하나를 표시할 수 있으며, 예를 들어, 도1의 감지 및 계획 시스템 (110) 또는 서버(103) 내지 서버(104) 중의 임의의 하나를 표시할 수 있다. 시스템(1500)은 수많은 상이한 부재들을 포함할 수 있다. 이러한 부재들은 집적회로(IC), 집적 회로의 부분들, 분리형 전자 장치, 또는 (컴퓨터 시스템의 마더 보드 또는 애드인 카드와 같은) 회로 보드에 적합한 기타의 모듈들로 구현되거나, 기타의 방식으로 컴퓨터 시스템의 섀시 내에 통합된 부재들로 구현될 수 있다.
또한, 시스템(1500)은 컴퓨터 시스템의 많은 부재들의 고레벨 도면을 나타내고자 하는 것임을 유의하여야 한다. 그러나, 일부의 실시형태에는 추가적인 부재들이 존재할 수 있고, 나아가, 다른 실시형태들에는 도시된 부재들의 부동한 배열이 구비할 수 있음을 이해하여야 한다. 시스템(1500)은 데스크탑형 컴퓨터, 랩탑형 컴퓨터, 태블릿PC, 서버, 모바일 폰, 미디어 플레이어, 개인 디지털 보조 장치(PDA), 스마트 워치, 개인용 통신기, 게임기, 네트워크 라우터 또는 허브, 무선 액세스 포인트(AP) 또는 중계기, 셋톱 박스, 또는 이들의 조합을 표시할 수 있다. 또한, 단 하나의 기계 또는 시스템이 도시되었으나, 용어 "기계" 또는 "시스템"은 본원에 설명된 방법들 중의 임의의 하나 또는 다수를 실행하기 위한 하나(또는 다수)의 세트의 명령들을 개별적으로 또는 공동으로 수행하는 기계 또는 시스템들의 임의의 집합을 포함하는 것으로 더 이해하여야 한다.
일 실시예에 있어서, 시스템(1500)은 버스 또는 인터커넥트(1510)를 통해 연결되는 프로세서(1501), 메모리 장치(1503) 및 장치(1505) 내지 장치(1508)을 포함한다. 프로세서(1501)는 내부에 단일 프로세서 코어 또는 다중의 프로세서 코어들을 구비하는 단일 프로세서 또는 다중 프로세서들을 표시할수 있다. 프로세서(1501)는 마이크로 프로세서, 중앙 처리 유닛(CPU) 등과 같은 하나 또는 다수의 범용 프로세서들을 표시할수 있다. 보다 구체적으로, 프로세서 (1501)는 복잡한 명령 세트 컴퓨팅(CISC) 마이크로 프로세서, 감소된 명령 세트 컴퓨팅(RISC) 마이크로 프로세서, 훨씬 긴 명령어(VLIW) 마이크로 프로세서 또는 다른 명령 세트들을 구현하는 프로세서 또는 명령 세트들의 조합을 구현하는 프로세서들일 수 있다. 프로세서 (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® 운영 시스템, Apple 사의 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)은 오디오 장치를 포함할 수 있다. 오디오 장치는 음성 인식, [0061] 음성 복제, 디지털 녹음 및/또는 전화 기능들과 같은 음성 작동 기능들에 편의를 도모하기 위한 스피커 및/또는 마이크를 포함할 수 있다. 기타의 I/O 장치들(1507)은 범용 직렬 버스(USB) 포트, 병렬 포트, 직렬 포트, 프린터, 네트워크 인터페이스, 버스 브릿지(예컨대, PCI-PCI 브릿지), 센서(예컨대, 가속도계와 같은 모션 센서, 자이로 스코프, 자력계, 광 센서, 나침반, 근접 센서 등) 또는 이들의 조합을 더 포함할 수 있다.장치 (1507)는 카메라 기능 (예컨대, 사진 및 비디오 클립 녹음)에 편의를 도모하도록 이용되는 광학 센서 (예컨대, 충전된 연결 장치(CCD) 또는 상보형 금속 산화물 반도체(CMOS) 광학 센서)를 포함할 수 있는 이미징 처리 서브 시스템(예컨대, 카메라)을 더 포함할 수 있다. 일부의 센서들은 센서 허브(미도시)를 통해 인터커넥트(1510)에 연결될 수 있으나, 키보드 또는 열 센서와 같은 다른 장치들은 시스템(1500)의 특정 구성 또는 설계에 따라 내장형 제어 장치(미도시)에 의해 제어될 수 있다.
데이터, 애플리케이션, 하나 또는 다수의 운영 시스템 등과 같은 정보의 영구 저장을 제공하기 위해, 대용량 저장 장치(미도시)가 프로세서(1501)에 연결될 수도 있다. 각종의 실시예들에 있어서, 보다 얇고 보다 가벼운 시스템 설계를 가능하게 할 뿐만 아니라, 시스템 응답성을 향상시키기 위해, 이러한 대용량 저장 장치는 고체 상태 장치(SSD)를 통해 구현될수 있다. 그러나, 다른 실시예들에 있어서, 대용량 저장 장치는 주로 상대적으로 작은 SSD 저장량을 구비하는 하드 디스크 드라이브(HDD)를 이용하여 구현됨으로써, 시스템 활동을 다시 시작할 때 전원이 빠르게 공급될 수 있도록 전원 차단 이벤트 기간에 문맥 상태 및 기타 이러한 정보의 비 휘발성 저장을 실현하는 SSD 캐시로 작용될수 있다. 또한, 플래시 장치는 예를 들어 직렬 주변 인터페이스(SPI)를 통해 프로세서(1501)에 연결될 수 있다. 이러한 플래시 장치는 BIOS 및 시스템의 다른 펌웨어를 포함하는 시스템 소프트웨어의 비휘발성 저장을 제공할 수 있다.
저장 장치(1508)는 본원에 설명된 방법 또는 기능들 중의 임의의 하나 또는 다수를 실시하는 하나 또는 다수의 명령 세트 또는 소프트웨어 (예컨대, 처리 모듈, 유닛 및/또는 로직(1528))가 저장되는 컴퓨터 액세스 가능한 저장 매체 (1509)(기계 판독 가능한 저장 매체 또는 컴퓨터 판독 가능한 매체로도 알려짐)를 포함할 수 있다. 처리 모듈/유닛/로직(1528)은 전술한 부재들 중 임의의 하나, 예컨대, 감지 모듈(302), 계획 모듈(305), 제어 모듈(306) 및 / 또는 센서 유닛(500)을 표시할 수 있다. 처리 모듈/유닛/로직(1528)은 기계-액세스 가능한 저장 매체를 구성하기도 하는 데이터 처리 시스템(1500), 메모리 장치(1503) 및 프로세서(1501)에 의해 실행되는 기간에 메모리 장치 (1503) 및/또는 프로세서(1501) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다. 처리 모듈/유닛/로직 (1528)은, 네트워크 인터페이스 장치(1505)를 경유하여 네트워크를 통해 송신되거나 수신될 수도 있다.
컴퓨터 판독 가능한 저장 매체(1509)는 전술한 소프트웨어 기능들 중의 일부를 영구적으로 저장하기에 이용될 수도 있다. 비록, 컴퓨터 판독 가능한 저장 매체(1509)는 예시적 실시예에서 단일의 매체로 도시되었으나, 용어 "컴퓨터 판독 가능한 저장 매체"는 하나 또는 다수의 명령 세트들을 저장하는 단일 매체 또는 다중 매체(예컨대, 중앙 집중식 또는 분산형 데이터 베이스 및/또는 연관된 캐시들 및 서버들)를 포함할 수 있다. 용어 "컴퓨터 판독 가능한 저장 매체"는 또한, 기계에 의해 실행되고 기계가 본 발명의 방법론들 중의 임의의 하나 또는 다수를 수행하도록 유도하는 명령 세트를 저장하거나 인코딩할 수 있는 임의의 매체를 포함하도록 고려되어야 한다. 따라서, 용어 "컴퓨터 판독 가능한 저장 매체"는 고체 상태 메모리 장치, 광학 및 자기 매체, 또는 임의의 기타 비 일시적 기계 판독 가능한 매체를 포함하나, 이에 한정되지 않는 것으로 고려되어야 한다.
본원에 설명된 처리 모듈/유닛/로직(1528), 부재들 및 기타 특징들은 분리형 하드웨어 부재들로 구현되거나, 하드웨어 부재들(예컨대, ASIC, FPGA, DSP 또는 유사한 장치들)의 기능에 집적될 수 있다. 또한, 처리 모듈/유닛/로직 (1528)은 하드웨어 장치 내의 펌웨어 또는 기능 회로로 구현될 수 있다. 또한, 처리 모듈/유닛/로직(1528)은 하드웨어 장치들과 소프트웨어 부재들의 임의의 조합으로 구현될 수 있다.
시스템(1500)은 데이터 처리 시스템의 각종의 부재들로 도시되었으나, 부재들을 상호 연결시키는 임의의 특정의 아키텍처 또는 방식을 표시하기 위한 것이 아니며, 이는 이러한 세부 사항들은 본 발명의 실시예들과 밀접한 관련이 없기 때문임을 유의하여야 한다. 네트워크 컴퓨터들, 핸드헬드 컴퓨터들, 모바일 폰들, 서버들, 및/또는 보다 적은 부재들 또는 보다 많은 부재들을 구비하는 기타의 데이터 처리 시스템들이 본 발명의 실시예들과 함께 이용될 수도 있음을 또한 이해할 것이다.
전술한 상세한 설명의 일부는 컴퓨터 메모리 장치 내의 데이터 비트에 대한 연산의 알고리즘 및 부호 표현에 따라 제시되었다. 이러한 알고리즘 설명 및 표현들은 데이터 처리 기술 분야의 당업자가 자신의 연구 내용을 해당 기술 분야의 당업자에게 가장 효과적으로 전달하기 위해 이용하는 방식들이다. 여기서, 알고리즘은 일반적으로 원하는 결과를 가져오는 자기 일관적인 조작 순서로 고려된다. 이러한 조작들은 물리량에 대한 물리적 통제를 요구하는 조작이다.
그러나, 이러한 용어들과 유사한 용어들 모두는 적절한 물리량과 관련되어 있으며, 이러한 물리량에 적용되기에 편리한 라벨일 뿐임을 자명하여야 한다. 상기 토론으로부터 명백히 알수 있듯이 특별히 다르게 언급하지 않는한, 명세서 전반에 있어서, 이하의 특허 청구 범위에 기재된 바와 같은 용어들을 이용하는 토론은 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 장치의 동작 및 처리를 가리키며, 상기 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 장치는 컴퓨터 시스템의 레지스터 및 메모리 장치 내의 물리(전자)량으로 표현 된 데이터를 통제하고, 상기 데이터를 컴퓨터 시스템 메모리 장치 또는 레지스터 또는 기타의 정보 저장 장치, 전송 장치 또는 표시 장치 내의 물리량으로 유사하게 표현되는 기타의 데이터로 변환시킴을 자명할 것이다.
본 발명의 실시예들은 또한 본원의 조작들을 수행하기 위한 장치에 관한 것이다. 이러한 컴퓨터 프로그램은 비일시적 컴퓨터 판독 가능한 매체에 저장된다. 기계 판독 가능한 매체는 기계(예컨대, 컴퓨터)에 의해 판독 가능한 형식으로 정보를 저장하기 위한 임의의 메커니즘을 포함한다. 예를 들어, 기계 판독 가능한(예컨대, 컴퓨터 판독 가능) 매체는 기계(예컨대, 컴퓨터) 판독 가능한 저장 매체(예컨대, 읽기 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 장치)를 포함한다.
앞에 도면들에 묘사된 과정 또는 방법은 처리 로직으로 실행되며, 상기 처리 로직은 하드웨어(예를 들어, 회로, 전용 로직 등), 소프트웨어(예를 들어, 비 일시적 컴퓨터 판독 가능한 매체 상에 구현됨) 또는 양자의 조합을 포함한다. 상기 과정 또는 방법은 위에서 일부의 순차적인 조작들에 관하여 설명되었으나, 설명된 조작들 중 일부는 상이한 순서에 따라 실행될 수 있음을 이해하여야 한다. 또한, 일부의 조작들은 순차적으로 실행되는 것이 아니라 병렬로 실행될 수도 있다.
본 발명의 실시예들은 임의의 특정된 프로그래밍 언어를 참조하여 설명되는 것이 아니다. 각종의 프로그래밍 언어들을 이용하여 본원에 설명된 바와 같은 본 발명의 실시예들의 교시들을 구현할 수 있음을 이해하여야 한다.
이상의 명세서에 있어서, 이미 본 발명의 구체적인 예시적 실시예들을 참조하여 본 발명의 실시예들에 대한 설명을 진행하였다. 첨부된 특허 청구 범위에 기재된 본 발명의 보다 넓은 사상 및 범위를 위배하지 않는 한, 본 발명에 대해 각종의 수정을 진행할 수 있음이 명백할 것이다. 따라서, 본 명세서와 도면들은 설명적인 의미로 이해하여야 하며, 한정적인 의미로 이해하여서는 아니된다.

Claims (20)

  1. 자율 주행 차량에 사용되는 센서 유닛에 있어서, 상기 센서 유닛은,
    자율 주행 차량 (ADV)의 복수의 위치에 장착된 복수의 센서에 연결되는 센서 인터페이스,
    호스트 시스템에 연결되는 호스트 인터페이스 - 상기 호스트 시스템은 상기 센서로부터 획득한 센서 데이터에 기초하여 상기 ADV 주위의 주행 환경을 감지하고, 상기 ADV를 자동적으로 주행시키는 경로를 계획하도록 구성됨 -, 및
    상기 복수의 센서와 서로 대응하는 복수의 데이터 전송 모듈 - 상기 복수의 데이터 전송 모듈의 각 모듈은, 대응하는 센서와 상기 호스트 시스템 사이에서 데이터가 전송되도록, 대응하는 센서의 유형에 따라 복수의 동작 모드 중 하나로 동작하도록 구성되고, 상기 복수의 동작 모드는 저지연 모드 및 고대역폭 모드를 포함함 -, 을 포함하는,
    자율 주행 차량에 사용되는 센서 유닛.
  2. 제1항에 있어서,
    상기 저지연 모드로 동작할 때, 매개 데이터 전송 모듈은 최소 지연으로 데이터를 전송하는 센서 유닛.
  3. 제1항에 있어서,
    상기 고대역폭 모드로 동작할 때, 상기 데이터 전송 모듈은 상기 데이터를 소정 양이 될때까지 누적한 후, 누적된 데이터를 그룹으로 상기 호스트 시스템에 수송하여, 상기 데이터 전송 모듈과 상기 호스트 시스템 간의 연결의 대역폭을 최대화하는 센서 유닛.
  4. 제1항에 있어서,
    상기 데이터 전송 유닛과 상기 호스트 시스템 간의 상기 연결은 PCIe (Peripheral Component Interconnect Express) 호환 가능한 연결(Compatible Connection)인 센서 유닛.
  5. 제1항에 있어서,
    상기 데이터 전송 모듈의 각 모듈은 또한 고정 저장 모드로 동작하도록 구성 가능한 센서 유닛.
  6. 제5항에 있어서,
    상기 고정 저장 모드로 동작할 때, 매개 데이터 모듈은 상기 호스트 시스템의 맵핑 메모리에 직접 액세스하도록 구성되는 센서 유닛.
  7. 제1항에 있어서,
    제1 센서에 대응하는 제1 데이터 전송 유닛은,
    상기 호스트 인터페이스를 통해 상기 호스트 시스템에 청구를 송신하여 페이지 디렉토리 테이블 (PDT)을 수신하고,
    상기 제1 센서로부터 수신된 센서 데이터에 응답하여, 상기 센서 데이터를 상기 PDT에 의해 기술된 복수의 메모리 페이지에 저장하여, 상기 센서를 상기 호스트 시스템에 전송하도록 구성되는 센서 유닛.
  8. 제7항에 있어서,
    상기 PDT는 복수의 페이지 테이블 (PT) 엔트리를 포함하며, 상기 페이지 테이블 엔트리의 각 엔트리는 복수의 페이지 테이블 중 하나에 대응하는 저장 어드레스를 저장하는 센서 유닛.
  9. 제8항에 있어서,
    매개 페이지 테이블은 복수의 저장 페이지 엔트리를 포함하며, 매개 저장 페이지 엔트리는 상기 호스트 시스템의 저장 페이지의 저장 어드레스를 저장하는 센서 유닛.
  10. 제9항에 있어서,
    상기 제1 데이터 전송 모듈은, 상기 호스트 시스템에 의해 구성된 상기 PDT 중 복수의 페이지 테이블 엔트리와 상기 호스트 시스템의 고정 크기의 저장 페이지를 수신하도록 하나 이상의 구성 레지스터를 더 포함하는 센서 유닛.
  11. 제1항에 있어서,
    제2 센서에 대응하는 제2 데이터 전송 유닛은,
    상기 제2 센서로 데이터를 수송하도록, 상기 호스트로부터의 디스크립터 버퍼를 포함하는 청구를 상기 호스트 인터페이스를 통해 상기 호스트 시스템으로부터 수신하고,
    상기 디스크립터 버퍼에 의해 기술된 데이터 버퍼로부터 데이터를 검색하고,
    검색된 데이터를 상기 센서 인터페이스를 통해 상기 제2 센서로 수송하도록 구성되는 센서 유닛.
  12. 제11항에 있어서,
    상기 디스크립터 버퍼는 복수의 데이터 블록 엔트리를 포함하며, 상기 복수의 데이터 블록 엔트리의 각 데이터 블록 엔트리는 상기 데이터 버퍼의 복수의 데이터 블록 중 하나에 대응되는 센서 유닛.
  13. 제12항에 있어서,
    각 데이터 블록 엔트리는, 대응하는 데이터 블록의 길이 및 상기 데이터 버퍼에서의 상기 대응하는 데이터 블록의 저장 어드레스를 포함하는 센서 유닛.
  14. 제1항에 있어서,
    상기 센서 인터페이스는, LIDAR 장치 또는 하나 이상의 카메라와 연결되도록 이더넷 인터페이스를 포함하는 센서 유닛.
  15. 제1항에 있어서,
    상기 센서 인터페이스는, GPS 수신기 및 IMU 장치 중 적어도 하나에 연결되도록 GPS (global positiㄹoning system) 인터페이스를 포함하는 센서 유닛.
  16. 제1항에 있어서,
    상기 센서 인터페이스는, 상기 ADV의 스로틀 제어 로직, 브레이크 제어 로직 및 조향 제어 로직에 연결되도록 제어 영역 네트워크 (CAN) 인터페이스를 포함하는 센서 유닛.
  17. 자율 주행 시스템에 있어서,
    자율 주행 차량 (ADV)의 복수의 위치에 장착된 복수의 센서,
    감지 모듈과 계획 및 제어 모듈을 구비하는 호스트 시스템 - 상기 감지 모듈은 상기 센서로부터 획득한 센서 데이터에 기초하여 상기 ADV 주위의 주행 환경을 감지하고, 상기 계획 및 제어 모듈은 상기 ADV를 자동적으로 주행시키는 경로를 계획함 -, 및
    상기 복수의 센서 및 상기 호스트 시스템에 연결되는 센서 유닛을 포함하고,
    상기 센서 유닛은,
    상기 ADV에 장착된 상기 복수의 센서에 연결되는 센서 인터페이스,
    상기 호스트 시스템에 연결되는 호스트 인터페이스, 및
    상기 복수의 센서와 서로 대응하는 복수의 데이터 전송 모듈 - 상기 복수의 데이터 전송 모듈의 각 모듈은, 대응하는 센서와 상기 호스트 시스템 사이에서 데이터가 전송되도록, 대응하는 센서의 유형에 따라 복수의 동작 모드 중 하나로 동작하도록 구성되고, 상기 복수의 동작 모드는 저지연 모드 및 고대역폭 모드를 포함함 -, 을포함하는,
    자율 주행 시스템.
  18. 제17항에 있어서,
    상기 저지연 모드로 동작할 때, 매개 데이터 전송 모듈은 최소 지연으로 데이터를 전송하는 시스템.
  19. 제17항에 있어서,
    상기 고대역폭 모드로 동작할 때, 상기 데이터 전송 모듈은 상기 데이터를 소정 양이 될때까지 누적한 후, 누적된 데이터를 그룹으로 상기 호스트 시스템에 수송하여, 상기 데이터 전송 모듈과 상기 호스트 시스템 간의 연결의 대역폭을 최대화하는 시스템.
  20. 제17항에 있어서,
    상기 데이터 전송 유닛과 상기 호스트 시스템 간의 상기 연결은 PCIe (Peripheral Component Interconnect Express) 호환 가능한 연결(Compatible Connection)인 시스템.
KR1020197024648A 2018-08-24 2018-08-24 센서 간의 데이터 전송을 위한 데이터 전송 로직과 자율 주행 차량의 계획 및 제어 KR102211298B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/102298 WO2020037663A1 (en) 2018-08-24 2018-08-24 Data transfer logic for transferring data between sensors and planning and control of autonomous driving vehicle

Publications (2)

Publication Number Publication Date
KR20200023600A true KR20200023600A (ko) 2020-03-05
KR102211298B1 KR102211298B1 (ko) 2021-02-04

Family

ID=69592130

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197024648A KR102211298B1 (ko) 2018-08-24 2018-08-24 센서 간의 데이터 전송을 위한 데이터 전송 로직과 자율 주행 차량의 계획 및 제어

Country Status (6)

Country Link
US (1) US11250701B2 (ko)
EP (1) EP3642684B1 (ko)
JP (1) JP6831474B2 (ko)
KR (1) KR102211298B1 (ko)
CN (1) CN111279280B (ko)
WO (1) WO2020037663A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220026983A (ko) * 2020-08-25 2022-03-07 모셔널 에이디 엘엘씨 자율주행 차량의 안전성 및 신뢰성을 개선하기 위한 자율주행 차량의 시뮬레이션

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527003B (zh) * 2021-02-18 2021-07-16 北京图森智途科技有限公司 数据传输装置和系统
CN112527002B (zh) * 2021-02-18 2021-06-18 北京图森智途科技有限公司 监控装置和监控方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5007042A (en) * 1989-09-08 1991-04-09 Santi Larry D Method and apparatus for transmitting analog data embedded in a digital pulse train
JPH07190894A (ja) * 1993-12-27 1995-07-28 Mazda Motor Corp 車両の診断装置
JP2013545393A (ja) * 2010-11-08 2013-12-19 コーニンクレッカ フィリップス エヌ ヴェ ワイヤレスネットワーク内でデューティサイクル情報を交換するシステム及び方法
US20150301968A1 (en) * 2011-10-05 2015-10-22 Analog Devices, Inc. Methods for discovery, configuration, and coordinating data communications between master and slave devices in a communication system
US20160352388A1 (en) * 2015-05-28 2016-12-01 Qualcomm Incorporated DC Power Line Synchronization for Automotive Sensors

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664139A (en) 1994-05-16 1997-09-02 Compaq Computer Corporation Method and a computer system for allocating and mapping frame buffers into expanded memory
US7944946B2 (en) * 2008-06-09 2011-05-17 Fortinet, Inc. Virtual memory protocol segmentation offloading
US8126642B2 (en) * 2008-10-24 2012-02-28 Gray & Company, Inc. Control and systems for autonomously driven vehicles
KR20100079624A (ko) * 2008-12-31 2010-07-08 장진수 모바일 로봇에서 지연 패턴과 교차 상관을 이용한 초음파 신호의 송신 센서 구분방법
US8898417B1 (en) * 2009-10-20 2014-11-25 Micron Technology, Inc. Block-based storage device with a memory-mapped interface
EP2523357B1 (en) * 2011-05-12 2013-09-18 Siemens Aktiengesellschaft Subsea data communication system and method
CN103260007B (zh) * 2012-02-21 2016-02-24 清华大学 基于片上多端口存储控制器的智能监控系统
US9857457B2 (en) * 2013-03-14 2018-01-02 University Of Windsor Ultrasonic sensor microarray and its method of manufacture
KR101551701B1 (ko) * 2013-12-18 2015-09-10 국방과학연구소 무인자율차량 및 이의 동적환경기반 자율주행방법
US9915950B2 (en) * 2013-12-31 2018-03-13 Polysync Technologies, Inc. Autonomous vehicle interface system
US10077109B2 (en) * 2014-01-24 2018-09-18 Maxlinear, Inc. First-person viewer for unmanned vehicles
US9843647B2 (en) * 2014-02-25 2017-12-12 Here Global B.V. Method and apparatus for providing selection and prioritization of sensor data
FR3020616B1 (fr) * 2014-04-30 2017-10-27 Renault Sas Dispositif de signalisation d'objets a un module de navigation de vehicule equipe de ce dispositif
CN105446338B (zh) * 2015-12-21 2017-04-05 福州华鹰重工机械有限公司 云辅助自动驾驶方法及系统
CN205940608U (zh) * 2016-04-29 2017-02-08 沈阳承泰科技有限公司 一种多传感器融合的汽车雷达系统
US10554901B2 (en) * 2016-08-09 2020-02-04 Contrast Inc. Real-time HDR video for vehicle control
US10054945B2 (en) * 2016-11-23 2018-08-21 Baidu Usa Llc Method for determining command delays of autonomous vehicles
US10846590B2 (en) * 2016-12-20 2020-11-24 Intel Corporation Autonomous navigation using spiking neuromorphic computers
US11584372B2 (en) * 2016-12-28 2023-02-21 Baidu Usa Llc Method to dynamically adjusting speed control rates of autonomous vehicles
KR20230009517A (ko) * 2016-12-30 2023-01-17 인텔 코포레이션 라디오 통신을 위한 방법 및 디바이스
US10348430B2 (en) * 2017-01-10 2019-07-09 Infineon Technologies Ag Synchronization mechanism for high speed sensor interface
US10445928B2 (en) * 2017-02-11 2019-10-15 Vayavision Ltd. Method and system for generating multidimensional maps of a scene using a plurality of sensors of various types
CN107707626B (zh) * 2017-09-05 2020-04-07 百度在线网络技术(北京)有限公司 基于fpga的数据采集卡、数据采集系统及数据采集方法
DE112019000049T5 (de) * 2018-02-18 2020-01-23 Nvidia Corporation Für autonomes fahren geeignete objekterfassung und erfassungssicherheit
US11966838B2 (en) * 2018-06-19 2024-04-23 Nvidia Corporation Behavior-guided path planning in autonomous machine applications
US10816979B2 (en) * 2018-08-24 2020-10-27 Baidu Usa Llc Image data acquisition logic of an autonomous driving vehicle for capturing image data using cameras
US10969783B2 (en) * 2018-08-24 2021-04-06 Baidu Usa Llc Time source ranking system for an autonomous driving vehicle
US10890914B2 (en) * 2018-08-24 2021-01-12 Baidu Usa Llc Trigger logic to trigger sensors of an autonomous driving vehicle for capturing data
US11520331B2 (en) * 2018-12-28 2022-12-06 Intel Corporation Methods and apparatus to update autonomous vehicle perspectives

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5007042A (en) * 1989-09-08 1991-04-09 Santi Larry D Method and apparatus for transmitting analog data embedded in a digital pulse train
JPH07190894A (ja) * 1993-12-27 1995-07-28 Mazda Motor Corp 車両の診断装置
JP2013545393A (ja) * 2010-11-08 2013-12-19 コーニンクレッカ フィリップス エヌ ヴェ ワイヤレスネットワーク内でデューティサイクル情報を交換するシステム及び方法
US20150301968A1 (en) * 2011-10-05 2015-10-22 Analog Devices, Inc. Methods for discovery, configuration, and coordinating data communications between master and slave devices in a communication system
US20160352388A1 (en) * 2015-05-28 2016-12-01 Qualcomm Incorporated DC Power Line Synchronization for Automotive Sensors

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220026983A (ko) * 2020-08-25 2022-03-07 모셔널 에이디 엘엘씨 자율주행 차량의 안전성 및 신뢰성을 개선하기 위한 자율주행 차량의 시뮬레이션
US11568688B2 (en) 2020-08-25 2023-01-31 Motional Ad Llc Simulation of autonomous vehicle to improve safety and reliability of autonomous vehicle

Also Published As

Publication number Publication date
JP6831474B2 (ja) 2021-02-17
KR102211298B1 (ko) 2021-02-04
EP3642684A4 (en) 2020-07-29
CN111279280A (zh) 2020-06-12
US11250701B2 (en) 2022-02-15
WO2020037663A1 (en) 2020-02-27
US20210225167A1 (en) 2021-07-22
CN111279280B (zh) 2023-08-04
EP3642684A1 (en) 2020-04-29
JP2020534195A (ja) 2020-11-26
EP3642684B1 (en) 2021-10-06

Similar Documents

Publication Publication Date Title
CN110727267B (zh) 具有冗余超声雷达的自动驾驶车辆
US11143513B2 (en) Labeling scheme for labeling and generating high-definition map based on trajectories driven by vehicles
US11073831B2 (en) Autonomous driving using a standard navigation map and lane configuration determined based on prior trajectories of vehicles
KR102033265B1 (ko) 자율 주행 차량 제어를 위한 시스템 지연 추정 방법
KR102126621B1 (ko) 자율 주행 차량을 위한 시스템 지연 보정 제어 방법
US11299168B2 (en) Time synchronization scheme between different computation nodes in autonomous driving system
JP6799643B2 (ja) 自動運転車両のデータ取得用センサをトリガするためのトリガロジック
CN110895147B (zh) 自动驾驶车辆的用相机捕获图像数据的图像数据获取逻辑
JP6517897B2 (ja) 自律走行車用のバネシステムに基づく車線変更方法
JP2020521191A (ja) 自動運転車両の高速道路における自動運転に用いる、地図及びポジショニングなしで車線に沿う走行方法
JP6908674B2 (ja) 自動運転車両を動作させるための所定のキャリブレーションテーブルに基づく車両制御システム
KR102211298B1 (ko) 센서 간의 데이터 전송을 위한 데이터 전송 로직과 자율 주행 차량의 계획 및 제어
US20200132830A1 (en) Extended perception based on radar communication of autonomous driving vehicles
JP2021511996A (ja) 自動運転車のトルクフィードバックに基づく車両縦方向自動キャリブレーションシステム
US11175410B2 (en) Flexible GPS message decoder for decoding GPS messages during autonomous driving
US11360483B2 (en) Method and system for generating reference lines for autonomous driving vehicles

Legal Events

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