KR20200134313A - 자율주행 차량을 위한 상대적인 아틀라스 및 그 생성 - Google Patents

자율주행 차량을 위한 상대적인 아틀라스 및 그 생성 Download PDF

Info

Publication number
KR20200134313A
KR20200134313A KR1020207031075A KR20207031075A KR20200134313A KR 20200134313 A KR20200134313 A KR 20200134313A KR 1020207031075 A KR1020207031075 A KR 1020207031075A KR 20207031075 A KR20207031075 A KR 20207031075A KR 20200134313 A KR20200134313 A KR 20200134313A
Authority
KR
South Korea
Prior art keywords
nodes
node
tile
edges
relative
Prior art date
Application number
KR1020207031075A
Other languages
English (en)
Other versions
KR102454408B1 (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 오로라 이노베이션, 인크.
Priority to KR1020227034792A priority Critical patent/KR102493094B1/ko
Publication of KR20200134313A publication Critical patent/KR20200134313A/ko
Application granted granted Critical
Publication of KR102454408B1 publication Critical patent/KR102454408B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/387Organisation of map data, e.g. version management or database structures
    • G01C21/3881Tile-based structures
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • G01C21/30Map- or contour-matching
    • G01C21/32Structuring or formatting of map data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • G01C21/3815Road data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • G01C21/3815Road data
    • G01C21/3819Road shape data, e.g. outline of a route
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3807Creation or updating of map data characterised by the type of data
    • G01C21/3815Road data
    • G01C21/3822Road feature data, e.g. slope data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3841Data obtained from two or more sources, e.g. probe vehicles
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3833Creation or updating of map data characterised by the source of data
    • G01C21/3848Data obtained from both position sensors and additional sensors
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3859Differential updating map data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/3867Geometry of map features, e.g. shape points, polygons or for simplified maps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/162Segmentation; Edge detection involving graph-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20128Atlas-based segmentation

Abstract

상대적인 아틀라스 그래프가 생성되어 자율주행 차량에 의해 사용되는 매핑 데이터를 저장한다. 상대적인 아틀라스 그래프는 지리적 영역에 대해 지리적 영역으로부터 수집된 관측들에 기반하여 생성되고, 엘리먼트 노드들 쌍을 연결하고, 연결된 엘리먼트 노드들 쌍에 대한 엘리먼트들 사이의 상대적인 포즈들을 정의하는 에지들을 따라 관측들로부터 검출된 엘리먼트들에 대응하는 엘리먼트 노드들을 포함할 수 있다.

Description

자율주행 차량을 위한 상대적인 아틀라스 및 그 생성
컴퓨팅 및 차량 기술이 계속 진화하면서, 자율성 관련 특징들은 더욱 강력하고 광범위하게 사용될 수 있게 되었고, 보다 다양한 환경에서 차량을 제어할 수 있게 되었다. 예를 들어, 자동차의 경우, 자동차 산업은 일반적으로 자율성을 6 레벨로 지정하는 SAE 국제 표준 J3016을 채용한다. 자율성이 없는 차량은 레벨 0으로 지정되고, 레벨 1의 자율성을 갖는 차량은 조향(steering) 또는 속도 (그러나 둘 다는 아님)를 제어하고, 운영자(operator)가 대부분의 차량 기능들을 수행하게 한다. 레벨 2의 자율성을 갖는 차량은 제한된 환경에서 (예를 들어, 고속도로를 따라 주행하는 동안) 조향, 속도 및 브레이크를 제어할 수 있지만, 운영자는 아직 깨어 있는 상태여야 하고, 차선을 바꾸거나 선회(turning)하는 것과 같은 조작을 해야 할 뿐만 아니라 어느 순간에서도 운영을 이어서 할 준비가 되어야 한다. 레벨 3의 자율성을 갖는 차량은 주위환경의 모니터링을 포함한 대부분의 운영 변수들을 관리할 수 있지만, 운영자는 아직 깨어 있는 상태여야 하고 차량이 다룰 수 없는 시나리오를 맞닥뜨리면 운영을 이어서 해야 한다. 레벨 4의 자율성은 운영자의 입력이 없이도 운영할 수 있지만, 일정 도로 상태 (예를 들어 고속도로) 또는 일정 지리적인 지역들 (예를 들어, 적절한 지도 데이터가 존재하는 특정 도시들)과 같은 특정 조건들에서만 동작하는 능력을 제공한다. 마지막으로, 레벨 5의 자율성은 인간 운영자도 운영할 수 있는 임의의 환경하에서 차량이 운영자의 제어가 없이 운영할 수 있는 자율성 레벨을 나타낸다.
자율성 관련 기술에 대한 기본적인 도전은, 차량이 동작하고 있는 현재 환경이 주어졌을 때 차량을 적절하게 제어하도록 결정 및 실시하면서, 차량의 주위 환경에 대한 정보를 수집 및 해석하는 것과 관련된다. 따라서, 이러한 양상들 각각을 개선하는 노력이 계속되고 있고, 그렇게 함으로써 자율주행 차량들은 보다 다양한 상황을 신뢰성 있게 처리할 수 있고, 어떤 환경 내에서 예상하거나 예상하지 않은 조건들을 수용할 수 있다.
본 개시가 이루고자 하는 기술적 과제 중 일부는 자율주행 차량의 제어에 사용된 매핑 데이터를 저장하기 위한 상대적인 아틀라스 그래프를 생성하는 것이다. 상기 상대적인 아틀라스 그래프는 지리적 영역에 대해 지리적 영역으로부터 수집된 관측들에 기반하여 생성될 수 있고, 엘리먼트 노드들 쌍을 연결하고, 연결된 엘리먼트 노드들 쌍에 대한 엘리먼트들 사이의 상대적인 포즈들을 정의하는 에지들을 따라 관측들로부터 검출된 엘리먼트들에 대응하는 엘리먼트 노드들을 포함할 수 있다.
따라서, 본 발명의 일 양태에 따른, 자율주행 차량에 의한 사용을 위한 매핑 데이터를 생성하는 방법은 지리적 영역에 대한 복수의 관측을 수신하는 단계, 및 상기 지리적 영역에 대한 상기 복수의 관측에 기반하여 상기 지리적 영역에 대한 상대적인 아틀라스 그래프를 생성하는 단계를 포함할 수 있다. 상기 상대적인 아틀라스 그래프를 생성하는 단계는 복수의 관측들로부터 검출된 복수의 엘리먼트들에 대한 복수의 엘리먼트 노드들을 생성하고, 각 엘리먼트 노드는 상기 복수의 엘리먼트들 중에서 연관된 엘리먼트를 갖는 단계, 복수의 에지들을 생성하고, 각 에지는 상기 복수의 엘리먼트 노드들 중 한 쌍의 엘리먼트 노드들을 연결하고 상기 한 쌍의 엘리먼트 노드들에 대한 상기 연관된 엘리먼트들 사이의 상대적인 포즈를 정의하는 단계, 및 상기 복수의 엘리먼트 노드들 및 상기 복수의 에지들을 상기 상대적인 아틀라스 그래프 내에 저장하는 단계를 포함할 수 있다.
일부 구현에서, 각 에지는 상기 연결된 엘리먼트 노드 쌍의 상기 연관된 엘리먼트들 사이의 상기 상대적 포즈를 정의하는 변환 필드를 포함한다. 일부 구현에서, 상기 복수의 엘리먼트 노드들 및 상기 복수의 에지들을 상기 상대적인 아틀라스 그래프 내에 저장하는 단계는 상기 복수의 엘리먼트 노드들을 노드 테이블 내 레코드로 저장하는 단계 및 상기 복수의 에지들을 에지 테이블 내 레코드로 저장하는 단계를 포함한다.
또한, 일부 구현에서, 상기 노드 테이블 및 상기 에지 테이블은 관계형 데이터베이스에 유지된다.
일부 구현에서, 상기 복수의 엘리먼트 노드들 각각은 그 연관된 엘리먼트에 대한 식별자를 포함하는 식별자 필드를 포함하고, 상기 복수의 에지들 각각은 그에 따라 연결된 상기 엘리먼트 노드 쌍에 대한 상기 연관 엘리먼트들에 대한 식별자들을 포함하는 제1 및 제2 식별자 필드들을 포함한다. 또한 일부 구현에서, 상기 복수의 엘리먼트 노드들 각각은 각 엘리먼트 노드를 특징짓는 타입을 특정하는 타입 필드를 포함하고, 상기 복수의 에지들 각각은 각 에지를 특징짓는 타입을 특정하는 타입 필드를 포함한다.
일부 구현에서, 상기 복수의 엘리먼트 노드들 각각은 엘리먼트 특정 데이터를 포함하는 페이로드 필드를 포함하고, 상기 복수의 에지들 각각은 에지 특정 데이터를 포함하는 페이로드 필드를 포함한다. 또한, 일부 구현에서, 상기 복수의 엘리먼트 노드들 중 제1 엘리먼트 노드에 대한 상기 페이로드 필드 내 상기 엘리먼트 특정 데이터는 상기 제1 엘리먼트 노드의 상기 타입 필드에 특정된 상기 타입에 기반하여 구조가 결정되고, 상기 복수의 에지들 중 제1 에지에 대한 상기 페이로드 필드 내 상기 에지 특정 데이터는 상기 제1 에지의 상기 타입 필드에 특정된 상기 타입에 기반하여 구조가 결정된다.
또한 일부 구현에서, 상기 상대적인 아틀라스 그래프를 생성하는 단계는 상기 지리적 영역에 대한 복수의 타일 노드들를 생성하고, 각 타일 노드는 상기 지리적 영역의 일 지역을 나타내는 단계, 및 제2 복수의 에지들을 생성하고, 상기 제2 복수의 에지들의 각 에지는 상기 복수의 엘리먼트 노드들 중 하나의 엘리먼트 노드를 상기 복수의 타일 노드들 중 하나의 타일 노드에 연결하고, 상기 연결된 타일 노드에 대한 참조 프레임 내 상기 연결된 엘리먼트 노드에 대한 상기 연관된 엘리먼트의 상대적인 포즈를 정의하는 단계를 더 포함한다.
일부 구현에서, 상기 제2 복수의 에지들은 제1 및 제2 에지들을 포함하고, 상기 제1 에지는 상기 복수의 엘리먼트 노드들 중 제1 엘리먼트 노드를 상기 복수의 타일 노드들 중 제1 타일 노드로 연결하고 상기 제1 타일 노드용 상기 참조 프레임 내 상기 제1 엘리먼트 노드에 대한 상기 연관 엘리먼트의 상대적인 포즈를 정의하고, 상기 제2 에지는 상기 제1 엘리먼트 노드를 상기 복수의 타일 노드들 중 제2 타일 노드로 연결하고 상기 제2 타일 노드에 대한 상기 참조 프레임 내 상기 제1 엘리먼트 노드에 대한 상기 연관 엘리먼트의 상대적인 포즈를 정의한다, 일부 구현은 또한 상기 제1 및 제2 타일 노드들을 연결하고, 상기 제1 및 제2 타일들 사이의 상대적인 포즈를 정의하는 타일-타일 에지를 생성하는 단계를 포함할 수 있다.
일부 구현은 또한 상기 제1 및 제2 타일 노드들을 상기 고정된 참조 노드로 연결하고, 각각 상기 제1 및 제2 타일들 및 상기 고정된 참조 포인트 사이의 상대적인 포즈들을 각각 정의하는 제1 및 제2 고정 참조 에지들을 생성하는 단계를 더 포함할 수 있다. 일부 구현에서, 상기 고정된 참조 포인트는 지구중심고정좌표계 (ECEF) 참조 포인트이다. 또한 일부 구현에서, 상기 복수의 엘리먼트 노드들은 상대적인 포즈들이 상기 복수의 엘리먼트들 및 상기 고정된 참조 포인트 사이에서 정의되지 않도록 에지들에 의해 상기 고정된 참조 노드로 직접 연결되지 않는다.
일부 구현은 또한 상기 제1 타일 노드로 나타내진 상기 지리적 영역의 상기 지역의 적어도 일부에 대한 표면 모델을 정의하는 기하 데이터를 상기 제1 타일 노드에 저장하는 단계를 더 포함할 수 있다. 또한, 일부 구현에서, 상기 복수의 엘리먼트 노드들은 복수의 게이트 노드들을 포함하고, 각 게이트 노드는 지리적 영역 내 허용가능한 차량 포즈를 나타내는 게이트를 정의한다. 또한, 일부 구현에서, 상기 복수의 엘리먼트 노드들을 생성하는 단계는 상기 지리적 영역을 횡단하는 하나 이상의 차량들에 의해 수집된 하나 이상의 차량 로그들 내 하나 이상의 횡단 경로들에 기반하여 상기 복수의 게이트 노드들을 생성하는 단계를 포함한다.
일부 구현에서, 상기 복수의 에지들은 상기 복수의 에지들 중 게이트 노드 쌍들을 연결하는 복수의 게이트-게이트 에지들을 포함하고, 각 게이트-게이트 에지는 상기 게이트 노드 쌍들 각각에 의해 정의된 게이트 쌍 사이의 허용가능한 차량 경로를 정의한다. 또한 일부 구현에서, 상기 복수의 게이트-게이트 에지들 중 제1 게이트-게이트 에지는 도로의 동일 차선을 나타내는 상기 복수의 게이트 노드들 중 제1 및 제2 게이트 노드들을 연결한다. 또한, 일부 구현에서, 상기 복수의 게이트-게이트 에지들 중 제1 게이트-게이트 에지는 하나 이상의 도로의 서로 다른 차선들을 나타내는 상기 복수의 게이트 노드들 중 제1 및 제2 게이트 노드들을 연결한다.
또한 일부 구현에서, 상기 복수의 엘리먼트 노드들은 복수의 경계 노드들을 더 포함하고, 각 경계 노드는 지리적 영역 내 차량 이동을 제한하는 물리적 또는 가상의 경계를 정의한다. 또한 일부 구현에서, 상기 복수의 엘리먼트 노드들을 생성하는 단계는 상기 지리적 영역을 횡단하는 하나 이상의 차량들에 의해 수집된 하나 이상의 차량 로그들 내 관측들에 기반하여 상기 복수의 경계 노드들을 생성하는 단계를 포함한다. 또한 일부 구현에서, 상기 복수의 에지들은 상기 복수의 경계 노드들 중 경계 노드 쌍을 연결하는 복수의 경계-경계 에지들을 포함하고, 각 경계-경계 에지는 상기 경계 노드 쌍들 각각에 의해 정의된 경계 쌍 사이의 상대적인 포즈를 정의한다. 또한, 일부 구현에서, 상기 복수의 에지들은 복수의 경계-게이트 에지들을 포함하고, 각각은 상기 복수의 게이트 노드들 중 하나의 게이트 노드를 상기 복수의 경계 노드들 중 하나의 경계 노드와 연결하고, 그에 따라 연결된 상기 게이트 노드 및 경계 노드에 의해 각각 정의된 게이트 및 경계 사이의 상대적인 포즈를 정의한다.
일부 구현에서, 상기 복수의 노드들은 복수의 교통 노드들을 포함하고, 각 교통 노드는 지리적 영역 내 교통 제어기와 연관된다. 또한 일부 구현에서, 상기 복수의 엘리먼트 노드들을 생성하는 단계는 상기 지리적 영역을 횡단하는 하나 이상의 차량들에 의해 수집된 하나 이상의 차량 로그들 내 관측들에 기반하여 상기 복수의 교통 노드들을 생성하는 단계를 포함한다. 일부 구현에서, 상기 복수의 교통노드들을 생성하는 단계는 상기 지리적 영역의 이미지들 내에서 검출된 교통 장치들을 바운딩하는 바운딩 박스들을 생성하는 단계, 상기 지리적 영역 내 상기 바운딩 박스들에 의해 바운드된 교통 장치들의 위치들을 삼각측량하는 단계, 및 상기 교통 장치들의 상기 삼각측량된 위치들에 대응하는 상대적인 포즈들을 하나 이상의 교통 노드들에 연결된 에지들에 저장하는 단계를 포함한다.
또한 일부 구현에서, 상기 복수의 교통 노드들은 조절된 지리적 영역에 대한 교통 제어를 정의하는 제어 노드, 각 교통 장치 노드가 상기 조절된 지리적 영역 내 교통 장치를 정의하는 복수의 교통 장치 노드들, 및 상기 조절된 지리적 영역의 통로들을 정의하는 복수의 통로 노드들을 포함하고, 상기 복수의 에지들은 상기 복수의 교통 장치 노드들을 상기 제어 노드로 연결하는 교통 장치-제어 에지들 및 상기 복수의 통로 노드들을 상기 제어 노드로 연결하는 제어-통로 에지들을 포함한다. 일부 구현에서, 상기 복수의 에지들은 상기 복수의 교통 장치 노드들 중 교통 장치 노드들을 상기 복수의 노드들 중 하나 이상의 타일 노드들로 연결하고, 각각은 교통 노드들에 의해 정의된 교통 장치들과 상기 하나 이상의 타일 노드들 각각에 의해 정의된 하나 이상의 타일들 사이의 상대적인 포즈들을 각각 정의하는 교통 장치-타일 에지들을 더 포함한다. 또한 일부 구현에서, 상기 복수의 에지들은 상기 복수의 통로 노드들 중 통로 노드들을 상기 복수의 엘리먼트 노드들 중 하나 이상의 게이트 노드들로 연결하여 상기 교통 제어기에 의해 제어되는 게이트들을 정의하는 통로-게이트 에지들을 더 포함한다.
또한 일부 구현에서, 상기 생성된 상대적인 아틀라스 그래프를 제2 지리적 영역에 대한 다른 상대적인 아틀라스 그래프와 융합하는 단계를 더 포함할 수 있다. 또한 일부 구현에서, 상기 복수의 관측들 중 하나 이상의 관측들에 기반하여 상기 지리적 영역 내 제1 엘리먼트를 검출하는 단계, 상기 복수의 엘리먼트 노드들 중 제1 엘리먼트 노드는 상기 제1 엘리먼트에 대한 것으로 판단하는 단계, 및 상기 복수의 관측들 중 하나 이상의 관측들에 기반하여 제2 엘리먼트에 대한 제2 엘리먼트 노드로 상기 제1 엘리먼트 노드를 연결하는 제1 에지에 의해 정의된 상대적인 포즈를 변경하여 상기 제2 엘리먼트에 대해 상기 제1 엘리먼트를 배치하는 단계를 더 포함할 수 있다. 일부 구현에서, 상기 제2 엘리먼트 노드는 제2 에지에 의해 제3 엘리먼트에 대한 제3 엘리먼트 노드에 연결되고, 상기 제1 에지에 의해 정의된 상기 상대적인 포즈를 변경하는 것은, 상기 제1 에지에 의해 정의된 상기 상대적인 포즈의 변경이 상기 제2 에지에 의해 정의된 상기 상대적인 포즈를 변경하지 않고 상기 제3 엘리먼트에 대해 상기 제1 엘리먼트를 재배치하도록 상기 제2 에지에 의해 정의된 상대적인 포즈를 변경하지 않고 수행된다.
일부 구현에서, 하나 이상의 자율주행 차량들 내 상기 복수의 관측들을 수집하는 단계를 더 포함할 수 있다. 또한 일부 구현에서, 상기 상대적인 아틀라스 그래프를 생성하는 단계는 자율주행 차량에 의해 수행된다. 또한 일부 구현에서, 상기 상대적인 아틀라스 그래프를 생성하는 단계는 하나 이상의 자율주행 차량들과 떨어져서 통신하는 컴퓨터 시스템에 의해 수행된다. 또한 일부 구현은 상기 상대적인 아틀라스 그래프의 적어도 일부를 무선 통신 네트워크를 통해 상기 하나 이상의 자율주행 차량들 중 적어도 하나에 배치하는 단계도 포함한다.
일부 구현은 또한 하나 이상의 관측들에 응답하여 상기 상대적인 아틀라스 그래프를 변경하는 단계, 및 상기 변경된 상대적인 아틀라스 그래프에서 하나 이상의 변경들을 상기 복수의 자율주행 차량들 중 하나 이상에게 전파하는 단계도 포함한다.
일부 구현은 외부 데이터를 상기 상대적인 아틀라스 그래프에 불러오는 단계를 더 포함할 수 있고, 상기 불러오는 단계는 상기 외부 데이터를 고정된 참조 프레임으로 변환하는 단계, 상기 고정된 참조 프레임 내 상기 외부 데이터에 근접한 하나 이상의 타일들을 각각 정의하는 상기 상대적인 아틀라스 그래프 내 하나 이상의 타일 노드들을 식별하는 단계, 상기 외부 데이터를 상기 하나 이상의 타일들 각각에 대한 참조 프레임에 투영하는 단계, 상기 외부 데이터로 나타내진 하나 이상의 엘리먼트들에 대한 하나 이상의 엘리먼트 노드들을 생성하는 단계, 상기 하나 이상의 엘리먼트 노드들을 상기 하나 이상의 타일 노드들에 연결하는 하나 이상의 에지들을 생성하고, 상기 하나 이상의 에지들 각각은 상기 하나 이상의 타일들 중 하나의 타일에 대한 참조 프레임 내에서 상기 하나 이상의 엘리먼트들 중 하나의 엘리먼트에 대한 상대적인 포즈를 정의하는 단계, 상기 생성된 하나 이상의 엘리먼트 노드들 및 하나 이상의 에지들을 상기 상대적인 아틀라스 그래프에 추가하는 단계에 의해 수행된다. 또한 일부 구현에서, 상기 외부 데이터를 불러오는 단계는 상기 외부 데이터 및 상기 상대적인 아틀라스 그래프에서 정의된 하나 이상의 기존 엘리먼트들 사이의 희소 대응관계에 기반하여 상기 외부 데이터에 대한 수정 와프를 수행하는 단계를 더 포함한다.
본 발명의 다른 양태에 따르면, 장치는 메모리, 상기 메모리에 결합된 하나 이상의 프로세서들, 및 자율주행 차량에 의한 사용을 위한 매핑 데이터를 생성하도록 상기 하나 이상의 프로세스들에 의해 실행가능한 컴퓨터 명령들을 포함하고, 상기 컴퓨터 명령들은 지리적 영역에 대한 복수의 관측들에 기반하여 상기 메모리 내에서 상기 지리적 영역에 대한 상대적인 아틀라스 그래프를 생성하도록 구성되고, 상기 상대적인 아틀라스 그래프는, 상기 복수의 관측들로부터 검출된 복수의 엘리먼트들에 대한 복수의 엘리먼트 노드들을 생성하고, 각 엘리먼트 노드는 상기 복수의 엘리먼트들 중에서 연관된 엘리먼트를 갖는 것, 복수의 에지들을 생성하고, 상기 각 에지는 상기 복수의 엘리먼트 노드들 중 한 쌍의 엘리먼트 노드들을 연결하고 상기 한 쌍의 엘리먼트 노드들에 대한 상기 연관된 엘리먼트들 사이의 상대적인 포즈를 정의하는 것, 및 상기 복수의 엘리먼트 노드들 및 상기 복수의 에지들을 상기 메모리 내 상기 상대적인 아틀라스 그래프 내에 저장하는 것에 의해 생성된다.
또한 일부 구현에서, 상기 장치는 자율주행 차량을 포함한다. 또한 일부 구현에서, 상기 장치는 하나 이상의 자율주행 차량들과 떨어져서 통신하는 컴퓨터 시스템을 포함한다.
본 발명의 다른 양태에 따르면, 자율주행 차량에 의한 사용을 위해 매핑 데이터를 생성하는 방법은 지리적 영역에 대한 복수의 관측을 수신하는 단계, 및 상기 지리적 영역에 대한 상기 복수의 관측에 기반하여 상기 지리적 영역에 대한 상대적인 아틀라스 그래프를 생성하는 단계를 포함하고, 상기 생성하는 단계는 상기 복수의 관측들로부터 검출된 복수의 엘리먼트들에 대한 복수의 엘리먼트 노드들을 생성하고, 각 엘리먼트 노드는 상기 복수의 엘리먼트들 중에서 연관된 엘리먼트를 갖는 것, 복수의 에지들을 생성하고, 각 에지는 상기 복수의 엘리먼트 노드들 중 한 쌍의 엘리먼트 노드들을 연결하고 상기 한 쌍의 엘리먼트 노드들에 대한 상기 연관된 엘리먼트들 사이의 상대적인 포즈를 정의하는 것, 및 상기 복수의 엘리먼트 노드들 및 상기 복수의 에지들을 상기 상대적인 아틀라스 그래프 내에 저장하는 것을 포함한다.
본 발명의 다른 양태에 따르면, 매핑 데이터의 변화를 자율주행 차량에 전파하는 방법은 지리적 영역에 대한 복수의 관측들을 수신하는 단계, 상기 지리적 영역에 대한 상기 복수의 관측들에 기반하여 상기 지리적 영역에 대한 상대적인 아틀라스 그래프를 변경하고, 상기 상대적인 아틀라스 그래프는 복수의 엘리먼트들에 대한 복수의 엘리먼트 노드들 및 복수의 에지들을 포함하고, 각 에지는 상기 복수의 엘리먼트 노드들 중 한 쌍의 엘리먼트 노드들을 연결하고, 상기 한 쌍의 엘리먼트 노드들에 대한 연관 엘리먼트들 사이의 상대적인 포즈를 정의하는 단계를 포함하고, 상기 복수의 관측들로부터 상기 지리적 영역 내 변경된 엘리먼트들 검출하는 단계, 및 상기 변화된 엘리먼트에 대한 제1 엘리먼트 노드를 상기 상대적인 아틀라스 그래프 내 다른 엘리먼트에 대한 제2 엘리먼트 노드로 연결하는 제1 에지에 의해 정의된 상대적인 포즈를 변경하여 상기 다른 엘리먼트에 대해 상기 변화된 엘리먼트를 재배치하는 단계, 및 상기 상대적인 포즈의 상기 변경을 상기 자율주행 차량으로 전파하는 단계를 포함한다.
또한, 일부 구현에서 상기 상대적인 아틀라스 그래프를 변경하는 단계는 상기 복수의 관측들로부터 상기 지리적 영역 내 신규 엘리먼트들 검출하는 단계, 상기 신규 엘리먼트에 대한 신규 엘리먼트 노드를 생성하는 단계, 상기 신규 엘리먼트 노드를 상기 상대적인 아틀라스 그래프 내 기존 엘리먼트 노드로 연결하는 제2 에지를 생성하고, 상기 제2 에지는 상기 신규 엘리먼트 및 상기 기존 엘리먼트 노드에 의해 정의된 기존 엘리먼트 사이의 상대적인 포즈를 정의하는 단계, 상기 신규 엘리먼트 노드 및 상기 제2 에지를 상기 상대적인 아틀라스 그래프 내에 저장하는 단계; 및 상기 신규 엘리먼트 노드 및 상기 제2 에지를 상기 자율주행 차량으로 전파하는 단계를 더 포함한다.
본 발명의 다른 양태에 따르면, 자율주행 차량에 의한 사용을 위한 매핑 데이터를 생성하는 방법은, 지리적 영역에 대한 비디오 로그를 수신하는 단계, 상기 비디오 로그 내 복수의 관심 엘리먼트들 주위의 바운딩 박스들을 판단하는 단계, 상기 결정된 바운딩 박스들을 사용하여 상기 복수의 엘리먼트들 중 각 관심 엘리먼트의 위치를 삼각측량하는 단계, 상대적인 아틀라스 그래프 내에 상기 복수의 관심 엘리먼트들을 정의하는 복수의 엘리먼트 노드들을 생성하는 단계, 및 상대적인 아틀라스 그래프 내에 복수의 에지들을 생성하고, 각 에지는 상기 복수의 엘리먼트 노드들 중 하나의 엘리먼트 노드에 연결되고, 상기 삼각측량된 위치에 기반하여 그에 따라 정의된 관심 엘리먼트에 대한 상대적인 포즈를 정의하는 단계를 포함한다.
일부 구현에서, 상기 바운딩 박스들을 판단하는 단계는 자동으로 인간의 지원을 받아 수작업으로 수행된다. 또한, 일부 구현에서, 상기 관심 엘리먼트들은 교통 장치들이다. 일부 구현은 상기 지리적 영역의 지역들을 나타내는 타일들을 정의하는 복수의 타일 노드들을 상기 상대적인 아틀라스 그래프에서 생성하는 단계를 더 포함하고, 상기 복수의 에지들을 생성하는 단계는 제1 교통 장치에 대한 제1 엘리먼트 노드를 상기 복수의 타일 노드들 중 제1 및 제2 타일 노드들로 각각 연결하는 제1 및 제2 에지들을 생성하는 단계를 포함하고, 상기 제1 및 제2 에지들은 각각 상기 제1 교통 장치에 대한 제1 및 제2 상대적인 포즈들을 정의한다.
본 발명의 다른 양태에 따르면, 매핑 데이터를 자율주행 차량에 배치하는 방법이 제공될 수 있다. 상기 매핑 데이터는 상대적인 아틀라스 그래프에 저장되고, 상기 상대적인 아틀라스 그래프는, 복수의 엘리먼트들에 대한 복수의 엘리먼트 노드들, 제1 복수의 에지들, 상기 복수의 에지들 중 각 에지는 상기 복수의 엘리먼트 노드들 중 한 쌍의 엘리먼트 노드들을 연결하고 상기 한 쌍의 엘리먼트 노드들에 대한 연관된 엘리먼트들 사이의 상대적인 포즈를 정의, 지리적 영역에 대한 복수의 타일 노드들, 각 타일 노드는 상기 지리적 영역의 지역에 해당하는 타일을 나타냄, 복수의 제2 에지들, 상기 복수의 제2 에지들 중 각 에지는 상기 복수의 엘리먼트 노드들 중 하나의 엘리먼트 노드를 상기 복수의 타일 노드들 중 하나의 타일 노드에 연결하고 상기 연결된 타일 노드에 대한 참조 프레임 내 상기 연결된 엘리먼트 노드에 대한 상기 연관 엘리먼트의 상대적인 포즈를 정의, 및 복수의 제3 에지들, 상기 복수의 제3 에지들 중 각 에지는 상기 복수의 타일 노드들 중 한 쌍의 타일 노드들을 연결하고 상기 한 쌍의 타일 노드들에 대한 상기 연관된 타일들 사이의 상대적인 포즈를 정의,를 포함한다. 상기 방법은 상기 자율 차량의 위치를 결정하는 단계, 상기 상대적인 아틀라스 그래프에 접속하여 상기 자율주행 차량의 상기 위치에 근접한 상기 복수의 타일 노드들로 나타낸 상기 타일들 중 루트 타일을 식별하는 단계, 상기 복수의 제3 에지들 중 하나 이상의 에지들에 접속하여 상기 루트 타일에 근접한 하나 이상의 추가 타일들을 식별하는 단계, 상기 상대적인 아틀라스 그래프의 일부를 추출하고, 상기 일부는 상기 루트 타일에 대한 루트 타일 노드, 상기 하나 이상의 추가 타일들에 대한 하나 이상의 추가 타일 노드들, 상기 복수의 엘리먼트 노드들 중 엘리먼트 노드들의 서브세트, 각 엘리먼트 노드는 에지에 의해 상기 복수의 제2 에지들로부터 상기 루트 타일 또는 상기 하나 이상의 추가 타일 노드들 중 하나에 연결됨, 및 상기 루트 타일 노드, 하나 이상의 추가 타일 노드들, 및 엘리먼트 노드들의 서브세트 중 어느 것에 연결된 상기 복수의 제1, 제2, 및 제3 에지들 중 각 에지를 포함하는 단계, 및 상기 상대적인 아틀라스 그래프의 상기 일부를 상기 자율주행 차량과 통신하게 하는 단계를 포함한다.
본 발명의 다른 양태에 따르면, 외부 데이터를 자율주행 차량에 의해 사용된 상대적인 아틀라스 그래프로 불러오는 방법에 있어서, 상기 상대적인 아틀라스 그래프는, 복수의 엘리먼트들에 대한 복수의 엘리먼트 노드들, 제1 복수의 에지들, 상기 복수의 에지들 중 각 에지는 상기 복수의 엘리먼트 노드들 중 한 쌍의 엘리먼트 노드들을 연결하고 상기 한 쌍의 엘리먼트 노드들에 대한 연관된 엘리먼트들 사이의 상대적인 포즈를 정의, 지리적 영역에 대한 복수의 타일 노드들, 각 타일 노드는 상기 지리적 영역의 지역에 해당하는 타일을 나타냄, 및 복수의 제2 에지들, 상기 복수의 제2 에지들 중 각 에지는 상기 복수의 엘리먼트 노드들 중 하나의 엘리먼트 노드를 상기 복수의 타일 노드들 중 하나의 타일 노드에 연결하고 상기 연결된 타일 노드에 대한 참조 프레임 내 상기 연결된 엘리먼트 노드에 대한 상기 연관 엘리먼트의 상대적인 포즈를 정의,를 포함한다. 상기 방법은 상기 외부 데이터를 고정된 참조 프레임으로 변환하는 단계, 상기 고정된 참조 프레임 내 상기 외부 데이터에 근접한 하나 이상의 타일들을 나타내는 상기 상대적인 아틀라스 그래프 내 상기 복수의 타일 노드들 중 하나 이상의 타일 노드들을 식별하는 단계, 상기 외부 데이터를 상기 하나 이상의 타일들 각각에 대한 참조 프레임으로 투영하는 단계, 상기 외부 데이터로 나타내진 하나 이상의 엘리먼트들에 대한 하나 이상의 엘리먼트 노드들을 생성하는 단계, 상기 하나 이상의 엘리먼트 노드들을 상기 하나 이상의 타일 노드들에 연결하는 하나 이상의 에지들을 생성하고, 상기 하나 이상의 에지들 각각은 상기 하나 이상의 타일들 중 하나의 타일에 대한 참조 프레임 내에서 상기 하나 이상의 엘리먼트들 중 하나의 엘리먼트에 대한 상대적인 포즈를 정의하는 단계, 상기 생성된 하나 이상의 엘리먼트 노느들 및 하나 이상의 에지들을 상기 상대적인 아틀라스 그래프에 추가하는 단계를 포함할 수 있다.
상술한 개념과 더 자세히 후술되는 추가 개념의 모든 조합이 본 명세서에 개시되는 구성 요소의 일부로 고려된다. 예를 들어, 본 개시의 끝에 나타나는 청구되는 구성 요소의 모든 조합이 여기에서 개시된 구성 요소의 일부로 고려된다.
도 1은 자율주행 차량에 대한 하드웨어 및 소프트웨어 환경의 예를 도시한 것이다.
도 2는 도 1에서 참조된 1차 차량 제어 시스템의 구현 예를 도시한 블록도이다.
도 3은 도 2에서 참조된 상대적인 아틀라스 시스템의 구현 예를 도시한 블록도이다.
도 4는 도 3의 상대적인 아틀라스 시스템으로부터 두 노드를 함께 연결한 에지를 도시한 블록도이다.
도 5는 도 3의 상대적인 아틀라스 시스템에서 타일들을 정의하는데 적합한 노드 및 에지 타입들의 예를 도시한 블록도이다.
도 6은 도 3의 상대적인 아틀라스 시스템에서 게이트들과 경계들을 정의하는데 적합한 노드 및 에지 타입들의 예를 도시한 블록도이다.
도 7은 도 3의 상대적인 아틀라스 시스템에서 교통 장치들을 정의하는데 적합한 노드 및 에지 타입들의 예를 도시한 블록도이다.
도 8은 도 3의 상대적인 아틀라스 시스템에 의해 정의된 타일 세트의 예를 도시한 기능도이다.
도 9는 도 8의 타일 세트 예 안에서 관계들을 나타내는데 적합한 노드 및 에지 타입들의 예를 도시한 블록도이다.
도 10은 도 3의 상대적인 아틀라스 시스템에 의해 정의된 게이트들 및 경계들 세트의 예를 도시한 기능 평면도이다.
도 11은 도 10의 게이트 및 경계의 세트 예 안에서 관계들을 나타내는데 적합한 노드 및 에지 타입들의 예를 도시한 블록도이다.
도 12는 도 3의 상대적인 아틀라스 시스템에 의해 정의된 게이트들 및 교통 장치들 세트의 예를 도시한 기능 평면도이다.
도 13은 도 12의 게이트 및 교통 장치들 세트 예 안에서 관계들을 나타내는데 적합한 노드 및 에지 타입들의 예를 도시한 블록도이다.
도 14는 두 인접 타일들 내 교통 장치의 상대적인 자세를 도시한 기능 사시도이다.
도 15는 도 3의 상대적인 아틀라스 시스템 내에서 지리적 영역에 대한 서브그래프를 생성하는 동작 시퀀스를 도시한 흐름도이다.
도 16은 도 3의 상대적인 아틀라스 시스템에서 사용하기 위해 관측 결과들을 기존 그래프에 통합하는 동작 시퀀스의 다른 예를 도시한 흐름도이다.
도 17은 도 3의 상대적인 아틀라스 시스템에서 사용하기 위해 엘리먼트들을 그래프에 도입하는 동작 시퀀스의 예를 도시한 흐름도이다.
도 18은 도 3의 상대적인 아틀라스 시스템에서 사용하기 위해 서브 그래프를 배치하는 동작 시퀀스의 예를 도시한 흐름도이다.
도 19는 도 3의 상대적인 아틀라스 시스템에서 사용하기 위해 외부 데이터를 그래프에 도입하는 동작 시퀀스의 예를 도시한 흐름도이다.
도 20은 도 3의 상대적인 아틀라스 시스템으로 차량 궤적을 계획하는 동작 시퀀스의 예를 도시한 흐름도이다.
도 21은 도 3의 상대적인 아틀라스 시스템에 의해 생성된 예시적인 디지털 맵의 일부에 대한 기능 평면도이다.
도 22는 도 2에서 참조된 위치추적(localization) 서브시스템을 부트스트랩(bootstrap)하는 동작 시퀀스의 예를 도시한 흐름도이다..
도 23은 도 3의 상대적인 아틀라스 시스템으로 차량의 포즈 (pose) 를 결정하는 동작 시퀀스의 예를 도시한 흐름도이다.
도 24는 도 3의 상대적인 아틀라스 시스템으로 차량 포즈를 결정하는 동작 시퀀스의 다른 예를 도시한 흐름도이다.
도 25는 도 3의 상대적인 아틀라스 시스템으로 교통 통제 상태를 결정하는 동작 시퀀스의 예를 도시한 흐름도이다.
이후에서 논의되는 다양한 구현들은 대체로 자율주행 차량을 위한 상대적인 아틀라스 시스템의 생성 및 사용에 관한 것이다. 그러나, 이 구현에 대한 논의에 앞서, 여기에서 개시된 다양한 기술들이 구현될 수 있는 예시적인 하드웨어 및 소프트웨어 환경이 논의될 것이다.
하드웨어 및 소프트웨어 환경
도면으로 돌아가서, 일부 도면에서 유사한 번호는 유사한 엘리먼트를 나타내고, 도 1은 여기에서 개시된 다양한 기술들이 구현된 예시적인 자율주행 차량(100)을 도시한 것이다. 예를 들어, 차량(100)은 도로 (101)에서 주행하는 것으로 도시되고, 차량(100)은 에너지 소스(106)가 동력을 공급하는 원동기(104)를 포함한 동력계(102)를 포함하고, 동력을 방향제어기(direction control, 112), 동력계 제어기(114) 및 브레이크 제어기(116)를 포함한 제어 시스템(110) 뿐만 아니라 구동계(drivetrain, 108)로도 공급할 수 있다. 차량(100)은 사람 및/또는 화물을 수송할 수 있고, 육지, 바다, 하늘, 지하, 해저 및/또는 공간을 주행할 수 있는 차량들을 포함해 여러 다양한 형태로 구현될 수 있고, 상술한 콤포넌트들 (102 내지 116)은 이 컴포넌트들이 사용되는 차량 타입에 기반하여 다양하게 변할 수 있음이 이해될 것이다.
이후 논의될 구현들은, 예를 들어, 자동차, 밴(van), 트럭, 버스 등 차륜 육상 차량을 중심으로 이뤄질 것이다. 그러한 구현에서, 원동기(104)는 하나 이상의 전기 모터들 및/또는 (다른 것들 중) 내연 기관을 포함할 수 있고, 에너지 소스(106)는 연료 계통(예를 들어, 휘발유, 디젤, 소스 등을 제공), 배터리 계통, 태양전지 페널(solar panels) 또는 다른 재생 가능한 에너지 소스, 연료 전지 계통 등을 포함할 수 있으며, 구동계(108)는 트랜스미션 및/또는 원동기 (104)의 출력을 차량 움직임으로 변환하는 다른 기계 구동 콤포넌트들에 따른 바퀴들 및/또는 타이어들을 포함할 수 있다. 차량을 제어가능하게 정지 또는 속도를 늦추게 하는 하나 이상의 브레이크들 및 차량의 궤적을 제어하는데 적합한 방향 또는 조향 콤포넌트들(예를 들어, 차량(100)의 하나 이상의 바퀴들이 대체로 수직축에 대해 회전하게 하여 차량의 종축에 상대적인 바퀴들의 회전 평면의 각도를 변하게 하는 랙 앤 피니언(rack and pinion) 조향 링키지(linkage))를 포함한다. 일부 구현에서, 동력계 및 에너지 스소들의 결합이, 예를 들어, 전기/가스 하이브리드 차량들의 경우에 사용될 수 있고, 일부 예에서(예를 들어 개별 바퀴들 또는 축들 전용의) 다수의 전기 모터들이 원동기로 사용될 수 있다. 수소 연료 전지 구현의 경우, 원동기는 하나 이상의 전기 모터들을 포함할 수 있고, 에너지 소스는 수소 연료로 동력을 얻는 연료 전지 계통을 포함한다.
방향 제어기(112)는 방향 또는 조타 콤포넌트들로부터의 피드백을 제어 및 수신하여 차량이 원하는 궤적을 따르도록 하는 하나 이상의 액츄에이터들 및/또는 센서들을 포함할 수 있다. 동력계 제어기(114)는 동력계(102)의 출력을 제어하도록, 예를 들어, 원동기의 출력 파워를 제어하여 구동계(108) 내 트랜스미션의 기어 등을 제어하도록 구성되어 차량의 속도 및/또는 방향을 제어한다. 브레이크 제어기(116)는 차량의 속도를 늦추거나 정지시키는 하나 이상의 브레이크들, 예를 들어, 차량 바퀴들과 결합된 디스크 또는 드럼 브레이크들을 제어하도록 구성될 수 있다.
비행기, 우주선, 헬리콥터, 드론, 군용 차량, 전지형 또는 궤도 차량(all-terrain or tracked vehicles), 선박, 잠수함, 건설 장비 등을 포함하지만 그에 제한되지 않는 다른 차량 타입들은, 본 개시의 이익을 갖는 당업자라면 이해하는 것처럼, 필수적으로 서로 다른 동력계, 구동계, 에너지 소스들, 방향 제어기, 동력계 제어기 및 브레이크 제어기를 사용할 것이다. 또한, 일부 구현에서 콤포넌트들의 일부가 결합될 수 있고, 예를 들어, 차량의 방향 제어기는 하나 이상의 원동기들의 출력을 변화시켜 일차적으로 처리된다. 따라서 본 발명은 자율주행 차륜 육상 차량에서 여기에 기술된 기법들의 특별 애플리케이션에 제한되지 않는다.
도시된 구현에서, (선택적인 자율 기능들뿐만 아니라 다양한 자율성 정도를 포함할 수 있는) 차량(100)에 대한 자율주행 제어는 1차 차량 제어 시스템(120)에서 구현되고, 1차 차량 제어 시스템(120)은 하나 이상의 프로세서들(122) 및 하나 이상의 메모리들(124)을 포함할 수 있고, 각 프로세서(122)는 메모리(124)에 저장된 프로그램 코드 명령들(126)을 실행하도록 구성된다.
1차 센서 시스템(130)은 차량 동작을 제어하는데 사용되는 차량의 주위 환경으로부터 정보 수집에 적합한 다양한 센서들을 포함할 수 있다. 예를 들어, GPS, GLONASS, Galileo, Compass 등과 같은 다양한 위성 항법 시스템들 중 어느 것과 양립할 수 있는 위성 항법(SATNAV) 센서(132)가 위성 신호를 사용하여 대지 위 차량의 위치를 결정하는데 사용될 수 있다. (정지 및/또는 동영상을 캡쳐할 수 있는 다양한 타입의 영상 촬영 장치를 포함할 수 있는) 디지털 카메라(138)뿐만 아니라 RADAR(Radio Detection And Ranging) 및 LIDAR(Light Detection and Ranging) 센서들 (134, 136)이 차량의 바로 근처에서 정지 및 이동하는 객체의 감지에 사용될 수 있다. 관성 측정 유닛 (IMU, 140)은 세 방향으로 차량의 선형 및 회전 움직임을 감지할 수 있는 다수의 자이로스코프 및 가속도계를 포함할 수 있고, 하나 이상의 휠 인코더(142)는 차량(100)의 하나 이상의 바퀴들의 회전 모니터링에 사용될 수 있다.
센서들(132 내지 142)의 출력들은 위치추적 서브시스템(152), 계획 서브시스템(154), 인식 서브시스템(156) 및 제어 서브시스템(158)을 포함하는 1차 제어 서브 시스템 세트에 제공될 수 있다. 위치추적 서브시스템(152)은 주로 주변 환경 내에서, 그리고 대체로 일부 참조 프레임 내에서 차량(100)의 위치와 방향 (또는 "포즈"라고 불리고, 일부 예에서 하나 이상의 속도 및/또는 가속도를 포함할 수 있슴)을 정확하게 결정한다. 계획 서브시스템(154)은 주로 환경 내에서 정지 및 이동하는 객체 뿐만 아니라 원하는 목적지가 주어진 일부 타임 프레임(timeframe)에 대해 차량(100)의 이동 경로를 계획하고, 인식 서브시스템(156)은 주로 차량(100) 주변 환경 내에서 엘리먼트들을 검출, 추적 및/또는 식별한다. 제어 서브시스템(158)은 주로 차량의 계획된 경로를 구현하기 위해 제어 시스템(110)에서 다양한 제어기들을 제어하는 적절한 제어 신호들을 생성한다.
또한 상대적인 아틀라스 서브시스템(RAS, 160)은 도시된 구현에서 제공되어 환경 내 엘리먼트들 및 그들 사이의 관계를 설명한다. 이하에서 상세하게 설명되는 것처럼, RAS(160)는 위치추적, 계획 및 인식 서브시스템들(152 내지 156)에 의해 접속되어 개별 기능들의 수행에 사용되는 환경에 대한 다양한 정보를 얻을 수 있다.
1차 차량 제어 시스템(120)에 대한 도 1에 도시된 콤포넌트들의 수집은 본질적으로 단지 예시적인 것임이 이해될 것이다. 개별 센서들은 일부 구현에서 생략될 수 있고, 도 1에 도시된 다양한 타입의 센서들은 중복으로 및/또는 차량 주변의 서로 다른 영역들을 커버하기 위해 사용될 수 있고, 다른 센서 타입들이 사용될 수 있다. 유사하게, 제어 서브시스템들의 서로 다른 타입들 및/또는 결합들이 다른 구현에서 사용될 수 있다. 또한, 서브시스템들(152 내지 160)이 프로세스들(122) 및 메모리(124)와 분리된 것으로 도시 되었지만, 일부 구현에서 서브시스템들(152 내지 160)의 일부 또는 모든 기능이 하나 이상의 메모리들(124)에 상주한 프로그램 코드 명령들(126)로 구현되어 하나 이상의 프로세서들(122)에 의해 실행되고, 일부 예에서 이 서브시스템들(152 내지 160)이 동일한 프로세서들 및/또는 메모리를 사용하여 구현될 수 있음이 이해될 것이다. 일부 구현에서 서브시스템들은 부분적으로 다양한 전용 회로 로직, 다양한 프로세서들, 다양한 필드 프로그래머블 게이트 어레이들(“FPGA"), 다양한 주문형 반도체("ASIC"), 다양한 실시간 제어기들 등을 사용하여 구현될 수 있고, 상술한 대로 다수의 서브시스템들은 공통 회로, 프로세서들, 센서들 및/또는 다른 콤포넌트들을 사용할 수 있다. 또한, 1차 차량 제어 시스템(120)에서 다양한 콤포넌트들이 다양한 방식으로 네트워크에 연결될 수 있다.
일부 구현에서 차량(100)은 또한 차량(100)용 중복 또는 백업 제어 시스템으로 사용될 수 있는 2차 차량 제어 시스템(170)을 포함할 수 있다. 일부 구현에서, 2차 차량 제어 시스템(170)은 1차 차량 제어 시스템(120)에서 이상 반응(adverse event)에 응답하여 자율주행 차량(100)을 전체 동작시킬 수 있는 반면, 다른 구현에서, 2차 차량 제어 시스템(170)은, 예를 들어, 1차 차량 제어 시스템(120)에서 검출된 이상 반응에 응답하여 차량(100)의 정지 제어를 수행하는 제한된 기능만을 가질 수 있다. 다른 구현에서, 2차 차량 제어 시스템(170)은 생략될 수 있다.
대체로, 소프트웨어, 하드웨어, 회로 로직, 센서들, 네트워크들 등의 다양한 결합을 포함한 무수히 서로 다른 아키텍쳐들이 도 1에 도시된 다양한 콤포넌트들의 구현에 사용될 수 있다. 각 프로세서는 예를 들어 마이크로프로세서로 구현될 수 있고, 각 메모리는, 예를 들어, 캐시 메모리들, 비휘발성 또는 백업 메모리들 (예를 들어, 프로그래머블 또는 플래시 메모리들), 롬(ROM, read only memory) 등 보충 수준의 메모리뿐만 아니라 메인 스토리지를 포함하는 램(RAM, random access memory) 장치들을 나타낼 수 있다. 또한 각 메모리는, 가상 메모리, 예를 들어, 대량 스토리지 장치 또는 다른 컴퓨터 또는 제어기에 저장되어 사용된 스토리지 용량뿐 만 아니라, 차량(100) 내 어느 곳에 물리적으로 위치한 메모리 스토리지, 예를 들어, 프로세서 내 임의의 캐시 메모리를 포함하는 것으로 고려될 수 있다. 도 1에 도시된 하나 이상의 프로세스들 또는 전체적으로 분리된 프로세서들이 자율주행 제어의 목적을 벗어나 차량(100) 내 추가 기능, 예를 들어, 오락 시스템의 제어, 문, 조명, 편의 특징들 등의 제어의 구현에 사용될 수 있다.
또한, 추가 스토리지의 경우, 차량(100)은 또한 하나 이상의 대량 스토리지 장치들, 예를 들어, 다른 것들 중에서 플로피 또는 다른 착탈가능 디스크 드라이브, 하드 디스크 드라이브, 직접 접근 스토리지 장치 (DASD), 광 드라이브(예를 들어, CD 드라이브, DVD 드라이브 등), SSD(solid state storage drive), 네트워크 부착 스토리지, 스토리지 영역 네트워크(storage area network) 및/또는 태입 드라이브 등을 포함할 수 있다. 또한 차량(100)은 사용자 인터페이스(172)를 포함하여 차량(100)이 사용자 또는 운전자들로부터 다수의 입력들을 수신할 수 있게 하고, 사용자 또는 운전자를 위한 출력들, 예를 들어, 하나 이상의 디스플레이들, 터치 스크린들, 음성 및/또는 제스처 인터페이스들, 버튼들, 및 다른 촉각 제어 등을 생성할 수 있게 한다. 또한, 사용자 입력은 다른 컴퓨터 또는 전자 장치, 예를 들어, 이동 장치들의 앱을 통해 또는 원격 운전자로부터의 웹 인터페이스를 통해 수신될 수 있다.
또한, 차량(100)은 하나 이상의 네트워크들(176) (예를 들어, 다른 것들 중 LAN, WAN, 무선 네트워크 및/또는 인터넷)과 통신에 적합한 하나 이상의 네트워크 인터페이스들, 예를 들어, 네트워크 인터페이스(174)를 포함하여, 예를 들어, 차량(100)이 자율주행 제어에 사용하기 위한 환경 및 다른 데이터를 수신하는 클라우드 서비스와 같은 중앙 서비스를 포함하는, 다른 차량들, 컴퓨터들 및/또는 전자 장치들과의 정보의 송수신을 허용한다. 도시된 구현에서, 예를 들어, 차량(100)은 적어도 여기에 기술된 다양한 기능들을 구현하기 위해 상대적인 아틀라스 서비스(180) 및 로그 수집 서비스(182)를 포함하는 클라우드 기반 원격 차량 서비스(178)와 통신할 수 있다. 상대적인 아틀라스 서비스 (180)는, 예를 들어, 하나 이상의 자율주행 차량에 대한 글로벌 저장소의 일부를 배치하는 것뿐만 아니라 세계의 하나 이상의 지리적 영역들을 설명하는 글로벌 저장소를 유지하는데 사용되어, 하나 이상의 자율주행 차량들로부터 수신된 정보에 기반한 글로벌 저장소를 갱신하고 글로벌 저장소를 관리할 수 있다. 로그 서비스(182)는, 다른 목적뿐만 아니라, 예를 들어, 동작하는 동안 하나 이상의 자율주행 차량들에 의한 관측들을 수집 및/또는 분석하여 글로벌 저장소의 갱신을 가능하게 할 수 있다.
여기에서 기술된 다양한 추가 제어기들 및 서브시스템들뿐만 아니라, 도 1에 도시된 각 프로세서는, 이하에서 상세하게 설명되는 것과 같이, 대체로 운영체제의 제어 하에서 동작하고 다양한 컴퓨터 소프트웨어 애플리케이션들, 콤포넌트들, 프로그램들, 객체들, 모듈들, 데이터 구조들 등을 실행 또는 그들에 의존한다. 또한 다양한 애플리케이션들, 콤포넌트들, 프로그램들, 객체들, 모듈들 등은 또한, 예를 들어, 분산 클라우드 기반, 또는 클라이언트-서버 컴퓨팅 환경에서 네트워크를 통해 차량(100)에 결합된 다른 컴퓨터에서 하나 이상의 프로세서상에서 실행할 수 있고, 그에 따라 컴퓨터 프로그램 기능들의 구현에 필요한 프로세싱이 네트워크를 통해 다수의 컴퓨터들 및/또는 서비스들에 할당될 수 있다. 또한 일부 구현에서, 차량에 의해 기록 또는 수집된 데이터는 수작업으로 검색되어 분석을 위해 다른 컴퓨터 또는 서비스에 업로드될 수 있다.
대체로, 본 명세서에 기술된 다양한 구현들을 위해 실행되는 루틴들은, 운영체제 또는 특정 애플리케이션, 콤포넌트, 프로그램, 객체, 모듈 또는 명령 시퀀스, 혹은 그 서브세트의 일부로 구현되는지 여부에 따라 본 명세서에서는 "프로그램 코드"로 지칭될 것이다. 프로그램 코드는 다양한 시각에서 컴퓨터의 다양한 메모리 및 저장 장치에 상주하는 하나 이상의 명령을 포함하며, 컴퓨터의 하나 이상의 프로세서에 의해 판독 및 처리되면, 컴퓨터로 하여금 본 발명의 다양한 양태를 실시하는 단계 또는 엘리먼트를 실행하는 데 필요한 단계를 수행하게 한다. 또한, 완전히 기능하는 컴퓨터 및 컴퓨터 시스템의 관점에서 본 발명을 후술하겠지만, 당업자는 본 발명의 다양한 실시예가 다양한 형태의 프로그램 제품으로서 분산될 수 있으며, 실제로 이 분산을 수행하는 데 이용되는 매체를 포함하는 특정 종류의 신호에 관계없이 본 발명이 마찬가지로 적용된다는 점을 인식할 것이다. 컴퓨터로 독출가능한 매체의 예는 휘발성 및 비휘발성 메모리 장치들, 다른 착탈가능한 디스크, 고체 상태 드라이브(solid state drive), 하드 디스크 드라이브, 자기 테이프 및 광 디스크 (예를 들어, CD-ROM, DVD 등)과 같이 만질 수 있고, 비일시적인 매체를 포함한다.
또한, 후술할 다양한 프로그램 코드는 본 발명의 특정 실시예에서 구현되는 애플리케이션에 기초하여 식별될 수 있다. 그러나, 후술할 임의의 특정 프로그램 명칭은 단순히 편의를 위한 것이므로, 이러한 명칭에 의해 식별 및/또는 암시되는 임의의 특정 애플리케이션에 제한되어서는 안된다. 또한, 컴퓨터 프로그램이 루틴, 프로시져, 방법, 모듈, 객체 등으로 조직화되는 전형적으로 무수한 방식뿐만 아니라, 프로그램 기능성이 전형적인 컴퓨터 내에 상주하는 다양한 소프트웨어 계층(예를 들어, 운영 체제, 라이브러리, API, 애플리케이션, 애플릿 등) 사이에 할당되는 다양한 방식이 주어지면, 본 발명이 여기에서 설명된 프로그램 기능의 특정 조직 및 할당에 제한되지 않는다는 것이 이해되어야 한다.
당업자는 도 1에 설명된 예시적인 환경이 본 발명을 제한하고자 한 것이 아님을 인식할 것이다. 확실히, 당업자는 다른 대안적인 하드웨어 및/또는 소프트웨어 환경이 본 발명의 범위를 벗어나지 않고 사용될 수 있음을 인식할 것이다.
상대적인 아틀라스 시스템
후술되는 구현에서, 상대적인 아틀라스 시스템은 데이터를 자율주행 차량 제어 시스템에 매핑하는데 사용된다. 매핑 데이터는 여러 다른 목적 중에서 위치추적, 계획 및 인식을 포함해 자율주행 차량에서 다양한 목적에 사용될 수 있다. 여러 다른 타입의 자율주행 차량들, 예를 들어, 포장도로 차량, 비포장 도로 차량, 공중 차량, 수상 차량, 잠수 차량, 공간 차량 등에 대해서는, 이들 차량에 대한 특별 요구조건들을 기반으로 한, 서로 다른 타입의 매핑 데이터가 적합하다는 것이 이해될 것이다. 이후 논의는 승용차, 밴, 트럭, 버스 등과 같은 도로상의 바퀴 차량에 상대적인 아틀라스 시스템을 사용하는 것에 초점이 맞춰질 것이다; 그러나 서로 다른 타입의 자율주행 차량에 대해 여기에서 설명된 기법들을 적용하는 것은 본 개시의 이익을 얻는 당업자의 능력 안에서 잘 이뤄질 것이다.
도로상의 차량들의 관점에서, 매핑 데이터는, 예를 들어, 일부 예에서는 전 세계를 포함할 수 있고, 다른 예에서는 전 세계의 서브세트로 제한될 수 있는 특정 지리적 영역 내에 엘리먼트들을 배치 또는 위치시키는데 사용될 수 있다. 일부 구현에서, 엘리먼트들은 차도, 경계 (예를 들어, 장벽, 차선 분리기, 중앙 분리대 등), 건물, 교통 장치 (예를 들어, 교통 신호, 조명 등) 및 환경 내 다른 정적 및 고정된 장애물과 같은 실세계 객체들을 나타내는 엘리먼트들을 포함할 수 있다. 또한, 일부 구현에서, 엘리먼트들은 사실상 본질적으로 보다 논리적 또는 가상적인 엘리먼트들, 예를 들어, 환경 내에서 차량이 달릴 수 있는 유효 차도 (이후에 "게이트들(gates)로 지칭)", 차선 표시와 같은 "가상" 경계, 또는 다른 엘리먼트들의 논리적인 수집 또는 세트를 나타내는 엘리먼트들을 포함할 수 있다.
다른 구현들에서 매핑 데이터는 또한 환경에서 엘리먼트들을 특징짓거나 달리 설명하는 데이터를 포함할 수 있다. 실세계 객체들에 대해, 예를 들어, 그러한 객체들의 기하, 치수, 형태 등을 설명하는 데이터가 포함될 수 있다. 또한, 환경에서 엘리먼트들의 종류, 기능, 동작, 목적 등을 설명하는 데이터가 일부 구현에 포함될 수 있다. 예를 들어, 속도 제한, 차선 제한, 교통 장치 동작 또는 논리 등을 설명하는 데이터가 일부 구현에서 매핑 데이터로 포함될 수 있다. 요컨대, 자율 차량이 환경 내에서 동작할 수 있게 하는 환경의 일부 양태를 설명할 수 있는 임의의 데이터가 매핑 데이터로 채용될 수 있고, 따라서 본 발명은 여기에서 기술된 매핑 데이터의 특정 타입들로 제한되지 않는다.
상술한 것처럼, 매핑 데이터는 엘리먼트들을 지리적 영역에 배치 또는 위치시키는데 사용될 수 있고, 그런 디지털 맵 내에서 엘리먼트들의 포지셔닝(positioning)에 적합한 위치 데이터를 더 포함한다. 이점에서, 디지털 맵은 차량이 위치한 지리적 영역에 대한 임의의 디지털 표현, 그 지리적 영역 내 다양한 엘리먼트들의 위치 및/또는 방향들을 정의하는 정보, 및 많은 예에서 그 엘리먼트들을 설명하는 추가 정보를 포함하는 것으로 간주될 수 있다. 자율주행 차량 제어 시스템은 자율주행 차량을 제어하는 과정에서 다양한 종류의 디지털 맵을 생성할 수 있고, 본 발명에 따른 상대적인 아틀라스 시스템은 일부 구현에서 그러한 디지털 맵 생성에 사용될 수 있다.
종래, 디지털 맵에서 엘리먼트들의 포지셔닝 (여기에서 엘리먼트를 배치 또는 위치시키는 것으로도 지칭될 수 있는 과정)은 절대 포지셔닝에 종속되고, 그럼으로써 엘리먼트들은 일부 특정 영역 또는 체적의 참조 프레임 내, 예를 들어 지구의 관점에서 본 글로벌 좌표계(global coordinate system)에 기반한 절대 좌표에서 정의된다. 일부 예에서, 그리드(grids)로 지칭될 수도 있는 타일이 지구의 특정 지리적 영역 표현에 사용될 수도 있고, 각 타일은 타일 내 특정 좌표를 글로벌 좌표계로 매핑하는 특정 참조 프레임을 정의할 수 있다. 따라서 타일 내 엘리먼트의 배치는 일반적으로 엘리먼트의 절대 좌표로 매핑하는 타일 내 좌표를 찾는 것을 포함한다. 그러한 배치를 돕기 위해, 타일은, 엘리먼트의 절대 좌표로부터 타일의 기준 프레임 내 좌표를 수학적으로 계산, 혹은 그 반대로의 계산에 사용될 수 있는, 연관된 변환 함수, 또는 변환을 가질 수 있다. 그 결과, 타일 내에 위치한 다수의 엘리먼트들이 일반적으로 타일의 기준 프레임 내에서 같은 간격으로 절대 위치에 배치될 수 있다.
그러나, 실세계에서 갭쳐된 측정들에 기반한 임의의 시스템으로서, 어느 정도의 에러가 항상 위치 데이터에 포함될 것이다. 어떤 환경에서 일부 시스템은 미터 단위 이하의 정밀성을 갖기도 하지만, 일부 위성 네비게이션 시스템들은 10 내지 20 미터의 오차를 갖는다. 또한, 지리적 영역에서 관측값 수집에 사용되는 센서들은 상당히 정밀한 해상도를 가질 수 있지만, 이 센서들은 대체로 이동 차량들에 장착되고 따라서 본질적으로 차량 자체의 위치 파악에 사용되는 센서들의 정밀도에 의해 제한된다.
종래 접근법은 엘리먼트의 절대 포지셔닝을 사용해 맵 내에서 표현된 엘리먼트들 사이의 글로벌 일관성(global consistency)을 찾았다. 그러나 글로벌 일관성은 종종 지역 충실도(local fidelity)를 훼손하면서 이뤄진다. 특히 상대적으로 짧은 시간동안 (예를 들어, 그 다음의 수 초동안) 그리고 정지 및 이동하는 장애물이 있는 동적 환경에서 차량의 저수준 자율주행 제어에 대해서, 차량으로부터 수십 미터 반경 내에서 차량의 위치와 정지 및 이동 장애물의 위치를 정확히 아는 것은 차량에서 수 킬로미터 이상 떨어져 있을 수 있는 랜드마크들로부터의 차량 거리를 아는 것보다 훨씬 중요도가 높다.
한편, 본 발명에 따른 구현에서, 상대적인 아틀라스 시스템은 지리적 영역 내 엘리먼트들의 위치가 글로벌 좌표계 내 절대 포지셔닝 보다 엘리먼트들간 상대적인 포지셔닝에 주로 기반하여 정의된다는 포맷으로 매핑 데이터 제공에 사용된다. 달리 말하면, 지리적 영역 내 두 엘리먼트는 본 발명에 따른 상대적인 아틀라스 시스템에서, 다른 엘리먼트의 위치에 상대적인 적어도 하나의 엘리먼트의 위치를 정의하는 상대적인 포즈만큼 서로 관련되어 있을 수 있고, 일부 예에서는 공통 또는 글로벌 기준 프레임과 상관없이 서로 관련되어 있을 수 있다. 따라서, 예를 들어, 디지털 맵에서 하나의 엘리먼트 위치가 주어졌다면, 엘리먼트와 다른 엘리먼트 사이에 수립된 상대적인 포즈는 다른 엘리먼트가 디지털 맵에 배치되어야 하는 위치를 결정하는데 사용될 수 있고, 일부 예에서는 두 엘리먼트들의 위치가 정의될 수 있는 공통 또는 글로벌 참조 프레임에 종속되지 않고, 사용될 수 있다. 일부 구현에서 상대적인 포즈는 상대적인 위치 외에 두 엘리먼트들 사이의 상대적인 방향, 상대적인 속도 및/또는 상대적인 가속도를 정의할 수도 있음이 이해될 것이다.
이하에서 보다 명확해지는 것처럼, 상대적인 포즈는 한 쌍의 엘리먼트와 조합되고, 엘리먼트들의 참조 프레임들 사이의 일방향 또는 양방향 변환을 허용하는 변환 함수로 정의될 수 있다. 일부 구현에서 변환 함수는 강체 변환(rigid transformation) (즉, 형상과 크기를 보존하는 변환)일 수 있다. 이 점에서 참조 프레임은, 예를 들어, 둘 이상의 축들에 의해 정의된 임의의 무작위 좌표계로 간주될 수 있고, 그 안에서 그 참조 프레임에 정의된 객체들의 위치 및 거리가 설명될 수 있다.
따라서, 예시적으로, 변환 함수는 하나의 엘리먼트가 다른 엘리먼트와 4.34도 방향으로 1.323 미터 떨어져 있고, 방향은 0.87도 벌어진 두 엘리먼트들 사이의 상대적인 포즈를 정의할 수 있다. 그 결과, 두 엘리먼트 중 하나가 디지털 맵에 배치된 위치와 무관하게, 다른 엘리먼트는 변환 함수로 정의된 값들만큼 제1 엘리먼트에 상대적인 위치에 배치될 수 있다. 따라서, 제1 엘리먼트의 위치가 (예를 들어, 센서 에러, 맵 에러 등에 의해) 다소 일부 글로벌 참조 프레임과 벌어져 있더라도, 제1 엘리먼트의 위치에 상대적인 다른 엘리먼트의 위치는 아직 제1 엘리먼트에 상대적으로 유지될 것이다.
이하에서 보다 명확해지는 것과 같이, 지리적 영역 내 두 엘리먼트들간 상대적인 위치 설정을 통해, 자율주행 차량의 바로 근처에서 지역 충실도가 개선될 수 있고, 그에 따라 자율주행 차량을 둘러싼 환경 및 그 환경 내 차량의 위치 및 방향에 대한 보다 정밀하고 정확한 표현을 제공한다. 또한, 글로벌 일관성을 덜 강조함으로써, 상대적인 아틀라스 시스템에서 엘리먼트들의 추가 및 변경은, 일부 엘리먼트들의 위치에 대한 변화 또는 수정이 일반적으로 상대적인 아틀라스 시스템을 통해 전파될 필요가 없다는 사실에 의해 낮은 처리 오버헤드로 구현될 수 있다.
도 2는, 예를 들어, 도 1의 1차 차량 제어 시스템(120)의 구현 예로, 본 발명에 따른 상대적인 아틀라스 시스템을 사용할 수 있는 예를 도시한 것이다. 도 2는 특히 다양한 서브시스템들(152 내지 158)의 작업 및 상대적인 아틀라스 시스템 (160)을 포함한 서로 간의 상호작용을 도시한 것이다.
위치추적 서브시스템(152)은 일반적으로 환경 내에서 차량의 위치 파악에 적합한 위치추적 데이터를 제공한다. 위치추적 서브시스템(152)은, 예를 들어, 주위 환경 내 자율주행 차량의 맵 포즈(200, 일반적으로 위치, 일부 예에서는 방향 및/또는 속도)를 결정할 수 있다. 이하에서 보다 명확해지는 것과 같이, 맵 포즈(200)는 상대적인 아틀라스 시스템(160)에 의해 제공된 매핑 데이터의 사용 뿐만 아니라 LIDAR(136)의 사용을 통해 부분적으로 결정될 수 있다. 또한, 맵 포즈(200)는 위치추적 서브시스템(152)에 의해 결정된 추가 포즈에 따라 부분적으로 결정될 수 있다. IMU(140) 및 휠 인코더(142)의 사용을 통해, 예를 들어, 차량의 국부 포즈(202)는 일반적으로, 속력, 가속/감속, 및 제한된 시간 프레임에 대한 차량의 주행 방향을 포함하여 결정될 수 있지만, 글로벌 좌표계 내의 위치는 포함하지 않는다. 월드 포즈(204)는, 예를 들어, SATNAV(132)를 사용하여 결정되어 글로벌 좌표계 내 차량의 일반 위치를 제공할 수 있다. 위치추적 서브시스템(152)은 또한 부트스트랩(bootstrapping) 함수를 포함하여, 예를 들어, 차량의 최종 알려진 위치 및 방향에 기반해, 그리고 일부 예에서는 임의의 국부 또는 월드 포즈와 무관하게 시동시 차량의 초기 포즈를 결정할 수 있고, 그에 따라 미래 포즈가 결정될 수 있는 시작점을 제공한다.
위치추적 데이터는 위치추적 서브시스템(152)에 의해 인식, 계획 및 제어 서브시스템들(154, 156, 및 158) 각각에 제공된다. 인식 서브시스템(154)은 예를 들어, 주로 환경 내 보행자 및 다른 차량들과 같은 동적 객체들을 인지하고, LIDAR 추적 기능(208), RADAR 추적 기능(210) 및 카메라 추적 기능(212)을 사용하여 각각 LIDAR(136), RADAR(134) 및 카메라(138)를 통해 동적 객체들을 식별 및 추적한다. 상술한 바와 같이, 환경 내 정적 객체들은 상대적인 아틀라스 시스템(160)에서 표현될 수 있고, 그러한 경우, 인식 서브시스템(154)은 감지된 객체들이 정적인지 동적인지 여부를 결정하기 위해 상대적인 아틀라스 시스템(160)에 접속한다. 또한 인식 서브시스템(154)은 카메라(138)에 의해 갭쳐된 이미지들을 처리할 수 있는 교통 장치 추정 기능(214)을 포함하여 상대적인 아틀라스 시스템(160)에서 표현된 교통 장치들의 현재 상태를 판단한다 (예를 들어, 신호등이 녹색, 황색 또는 빨강색인지 판단한다).
계획 서브시스템(156)은 주로 일부 시간 프레임(예를 들어, 수 초) 동안 차량의 궤적을 계획하고, 위치추적 서브시스템(152) 및 인식 서브시스템(154)으로부터 입력을 수신할 수 있다. 루트(route) 계획 기능(216)은 인접 환경 및 원하는 목적지 내 정적 또는 동적 객체에 기반하여 차량의 하이 레벨 루트 계획에 사용될 수 있고, 중간 레벨 최적화 기능(218)은 교통 제어 및 장면(scene) 내 다른 연기자들의 유사 움직임에 기반한 결정에 사용될 수 있고, 이 두 기능은 상대적인 아틀라스 시스템(160)의 매핑 데이터를 사용하여 수행할 수 있다. 궤적 계획 기능(220)은 일부 시간 프레임(예를 들어, 수 초)동안 차량의 궤적을 생성하고, 그런 다음 이 궤적은 제어 서브 시스템(158)로 전달되어 원하는 궤적을 제어 시스템에서 다양한 차량 제어들(112 내지 116)의 제어에 적합한 궤적 명령들(222)로 변환한다. 위치추적 데이터도 제어 서브시스템(158)으로 제공되어 제어 서브시스템이 적절한 명령을 내려서 시간 프레임 동안 차량의 위치가 변할 때 원하는 궤적을 구현한다.
도 3을 보면, 상대적인 아틀라스 시스템(160)의 예시적인 구현이 상세하게 도시되어 있다. 이 구현에서, 매핑 데이터는 논리적으로 에지들과 상호 연결되어 있는 노드 그룹들에 편성된다. 데이터는, 복수의 노드 레코드들을 저장하는 노드 테이블(232) 및 복수의 에지 레코드들을 저장하는 에지 테이블(234)을 포함하는 데이터베이스(230)에 저장되어 있고, 상대적인 아틀라스 그래프 층(236)은 데이터베이스(230)로의 접근에 사용되어, 예를 들어, 질의(query) 및 갱신 API들(238 및 240)을 통해, 기능에 대한 질의 및 갱신을 제공한다. 상대적인 아틀라스 그래프 층(236)은 상대적인 아틀라스 그래프용 데이터 모델을 구현하고, 적절한 데이터베이스 호출을 구현하여 상대적인 아틀라스 그래프에 대한 생성, 변경, 질의, 데이터 검색, 데이터 저장 및 접속을 수행한다.
일부 구현에서, 데이터베이스(230)는 SQL 또는 관계형 데이터베이스로 구현될 수 있다. 그러나, 상대적인 아틀라스 시스템(160)에 사용된 특별 타입의 데이터베이스는 구현마다 달라질 수 있다. 다른 데이터베이스 타입들, 예를 들어, 객체 지향 또는 비 관계형(non-relational) 데이터베이스가 다른 구현에 사용될 수 있다.
데이터베이스(230)에 적합한 데이터베이스 스키마(schema)가 도 4에 상세하게 도시되어 있고, 도 4에서 노드 테이블(232)의 노드 레코드들(250)은 식별자(ID) 필드(252), 타입 필드(254) 및 페이로드 필드(256)로 통합되고, 에지 테이블(234)의 에지 레코드들(260)은 제1 노드 식별자(노드 1 ID) 필드 (262), 제2 노드 식별자 (노드 2 ID) 필드 (264), 타입 필드(266), 변환 필드(268) 및 페이로드 필드(270)를 포함한다. 도시된 데이터베이스(230)용 스키마는 단지 예시일 뿐이고, 그러한 경우, 본 발명은 이 특별 스키마에 제한되지 않음이 이해될 것이다.
각 노드 레코드(250)는 해당 노드를 유일하게 식별하는 유니크 식별자 필드(252)를 포함하고, 그 경우 각 에지 레코드(260)는 필드들(262 및 274) 내 해당 에지로 연결된 각 노드들에 대한 노드 식별자들을 저장할 수 있다. 그렇게 함으로써, 그래프는 노드들을 서로 연결하는 에지들을 사용하여 노드에서 노드로 "워크하여(walking)" 횡단될 수 있다.
각 타입 필드(254 및 266)는 해당 노드 또는 에지에 대한 타입을 정의한다. 서로 다른 구현에서, 다양한 타입들이 노드들 및/또는 에지들에 대해 정의될 수 있고, 하나의 구현에 사용하기 적합한 비제한적인 타입 예들이 도 5 내지 7을 참조하여 이후에 설명된다. 노드 타입들은, 예를 들어, 지리적 영역들을 정의하는 엔터티(entities)들 및/또는 논리적으로 관련된 엘리먼트들을 함께 그루핑하는 엔터티들을 포함하여 상대적인 아틀라스 그래프 내에서 표현된 다른 엔터티들의 서로 다른 타입들뿐만 아니라 상대적인 아틀라스 그래프 내에서 표현된 엘리먼트들의 서로 다른 타입들도 표현하도록 정의될 수 있는 반면, 에지 타입들은 노드들 사이에 수립된 서로 다른 관계 타입들을 표현하도록 정의될 수 있다. 타입들의 입도(granularity)는 서로 다른 구현에서 달라질 수 있고, 예를 들어, 타입 또는 서브 타입을 정의하는 멀티레벨 타입 정의들이 일부 구현에서 사용될 수 있다.
각 페이로드 필드(256 및 270)는 일반적으로 각 노드/에지의 특별 타입에 적합한 추가 데이터를 포함한다. 페이로드 필드(256 및 270)에 저장된 데이터의 구조 또는 스키마는 일부 구현에서 노드 또는 에지에 할당된 연관 타입들로 정의될 수 있는 반면, 다른 구현에서 페이로드 필드에 저장된 데이터는 구조를 갖지 않거나, 또는 그 구조 또는 스키마가 페이로드 필드 자체 내에서, 예를 들어, XML 포맷을 사용해 정의될 수 있다. 이하에서 더욱 명확하게 되는 것처럼, 페이로드 필드는, 예를 들어, 플래그, 또는 데이터 값만큼 적은 최소 데이터를 포함할 수 있고, 실질적인 데이터량 (예를 들어 전체 지리적 영역의 포인트 클라우드 표면 모델(surface model))을 포함할 수 있으며, 따라서 본 발명은 노드 또는 에지의 페이로드 필드 내에서 특별 타입 또는 양의 데이터를 저장하는 것으로 제한되지 않는다.
상술한 바와 같이 각 에지 레코드(260)는 추가로 변환 필드(268)를 포함하고, 변환 필드는 연관 에지에 의해 연결된 노드들 사이의 상대적인 포즈를 정의하는 변환의 저장에 사용된다. 변환은, 예를 들어, 연결된 노드들에 의해 표현된 엘리먼트들 사이의 거리 및 방향의 판단, 또는 한 노드에 연결된 다른 노드의 참조 프레임 또는 좌표계 내에서 그 한 노드로 표현된 엘리먼트의 위치 판단에 사용될 수 있다. 변환은 일부 예에서 일방향이지만, 많은 경우, 변환은 각 노드로부터 시작된 상대적인 포즈를 결정하기 위해 양방향일 수 있다. 많은 경우, 변환은 두 노드에 의해 표현된 엘리먼트들 사이의 거리 및 방향을 설명하는 벡터를 사용하여, 예를 들어, 극 또는 직교 좌표계를 사용하여 구현될 수 있지만, 적절하다면 (예를 들어, 참조 프레임들 사이의 스케일링이 적당한) 일부 구현에서 수학적 함수를 포함할 수 있다. 또한, 변환은 두 노드들로 표현된 엘리먼트들 사이의 상대적인 방향을 정의할 수 있다. 실제로, 한 노드로 표현된 엔터티의 상대적인 위치를 다른 노드로 표현된 다른 엔터티와의 관계로 정의하는데 적합한 표현이 다른 구현들에서 사용될 수 있다.
노드 또는 에지 상의 타입 필드 제공이 노드 서브세트 및/또는 특별 타입의 에지들에 대한 데이터베이스 검색을 용이하게 한다는 것이 이해될 것이다. 그럼에도 불구하고, 타입 필드들은 일부 구현에서 생략될 수 있고, 타입들은 페이로드로 인코딩될 수 있거나, 또는 다른 타입들은 다른 객체 타입들 및/또는 다른 타입의 노드 및/또는 에지용 데이터베이스 테이블을 사용하여 표현될 수 있다. 또한, 변환 필드들(268)에 대해, 이 필드들은 일부 구현들에게 유사하게 생략될 수 있고, 이 때 페이로드 필드(270)에 정의되거나, 변환이 필요하지 않는 에지들의 경우 전체적으로 생략된다.
대체로, 엘리먼트들을 설명 및/또는 분류하는데 적합한 다른 데이터 및 자율주행 차량 제어 시스템에 의한 매핑 데이터로 사용에 적합한 다른 엔터티들에 대한 인코딩뿐만 아니라 지리적 영역 내 엘리먼트들간 상대적인 포즈들의 인코딩에는 부지기수의 서로 다른 방식들이 존재한다. 따라서, 본 발명은 특별한 데이터베이스 스키마 및 여기에서 설명되고 도시된 상대적인 아틀라스 시스템 (160)의 그래프 기반 조직화에 제한되지 않는다.
도 5 내지 7을 보면, 상술한 바와 같이, 본 발명에 따른 상대적인 아틀라스 시스템은 자율주행 차량의 제어와 관계된 다양한 엔터티들 및 다른 매핑 데이터와 그들 사이의 관계를 표현하는데 사용될 수 있다. 노드 및 에지 타입의 비제한적인 표현 세트가 이 도면들에 도시되어, 다양한 노드 타입들 (300, 304, 310, 312, 330, 334 및 338)은 사각형으로 표현되었고, 다양한 에지 타입들(302, 306, 314, 316, 318, 320, 322, 324, 326, 332, 336, 340 및 342)은 둥근 모서리 사각형들(rounded rectangles)로 표현되었다. 다른 모드 및/또는 에지 타입들이 다른 구현들에 사용되었고, 따라서 본 발명은 이 노드 및 에지 타입 표현들에 제한되지 않는다는 것이 이해될 것이다.
도 5는 예를 들어, 위치추적 서브시스템(152)에 사용되기 적합할 수 있는 많은 다른 노드 및 에지 타입들을 도시한다. 타일 노드 (300)는 지리적 영역의 지역 또는 일부 (즉, 타일) 표현에 사용될 수 있다. 따라서, 타일 노드는 지리적 영역에서 엘리먼트를 표현하는 것이라기 보다는 여기에서 영역 또는 체적 차제를 표현하는 공간 노드로 지칭된 노드 타입으로 간주될 것이고, 그 경우, 타일 노드는 도시된 구현에서 엘리먼트 노드와는 다른 노드 타입인 것으로 간주될 수 있다. 또한, 타일 노드는 특정 면적 또는 체적용 공통 참조 프레임 또는 좌표계를 정의하고, 타일노드와 다양한 엘리먼트 노드들 사이의 에지들에서 정의된 변환 함수들은 그 타일에 대한 공통 참조 프레임 내 위치 및/또는 방향에서 연결된 엘리먼트 노드들로 표현된 엘리먼트들을 위치시키는데 사용될 수 있다. 일부 구현에서, 예를 들어, 타일 노드는 크기가 대략 200 평방미터의 정사각 표면을 갖고 있지만, 보다 크고 작은 타일 크기들이 다른 형상과 함께 다른 구현에 사용될 수 있다.
타일 노드들(300)은, 인접 타일들 및/또는 비인접한 근접 타일들의 결합에 사용될 수 있는 타일-타일 에지들(302)에 의해 서로 연결될 수 있다. 에지들(302)은 타일들간 상대적인 거리 및 타일들간 상대적인 방향이 확인될 수 있도록 타일들간 상대적인 포즈들을 정의한다. 일부 구현들에서, 인접 타일들은 (예를 들어, 약 25%로) 중첩하여 타일 경계에서 보다 큰 커버리지와 보다 작은 불연속성을 제공한다.
또한, 타일 노드들(300)은 지구중심고정좌표계(Earth-Centered Earth-Fixed, ECEF) 노드 (304)와 같은 고정 참조 노드에 타일-ECEF 에지(306)를 통해 연결될 수 있다. ECEF 노드(304)는 지구의 무게중심에서 교차하는 직교 X, Y, Z 축을 갖는 직교좌표계 내 한 점을 표현하고, Z-축은 진북을 통과하고, X축은 경도 (본초 자오선) 및 위도(적도) 0도를 통과한다. 일부 구현에서, 모든 타일 노드들의 위치 및 방향은 공통 고정 참조점에 대해 정의될 수 있도록 단일 ECEF 노드(304) 만이 지원된다. 따라서, 각 타일 및 ECEF 에지(306)는 ECEF 참조점에 연결된 타일의 위치 및 방향을 정의하는 변환을 포함한다. 이후에서 명확해지는 것처럼, 타일들과 단일 참조점 사이의 상대적인 포즈들을 정의하는 것은 특별 SATNAV 위치에 근접한 하나 이상의 타일들이 위치추적 목적을 위해 식별될 수 있게 하고, 추가로 외부 매핑 데이터를 상대적인 아틀라스 그래프로 불러오도록 지원할 수 있다. 또한, 일부 구현에서, ECEF 노드(304)는 경로들이 달리 연결되지 않는 지리적 영역들을 횡단하게 할 수 있다. 따라서, 예를 들어, 매핑 데이터가 플로리다 내 지리적 영역들에 대한 상대적인 아틀라스 그래프에 통합되고, 다른 매핑 데이터가 아리조나 내 지리적 영역들에 대한 상대적인 아틀라스 그래프에 통합된다면, 두 상대적인 아틀라스 그래프들의 노드들을 공통 ECEF 노드에 연결하는 에지들 및 개별 그래프들에 정의된 임의의 엘리먼트들은, 두 상대적인 아틀라스 그래프들의 타일 노드들 및/또는 엘리먼트 노드들을 직접 연결하는 에지들이 존재하지 않더라도, 상대적인 포즈들이 두 상대적인 아틀라스 그래프들의 타일들 사이에서 결정될 수 있게 한다. 다른 고정 참조 포인트들이 다른 구현에 사용될 수 있고, 용어 ECEF 노드는 당연히 이 다른 참조 포인트들을 설명하는 것으로 간주할 수 이다.
타일들이 상대적인 아틀라스 시스템(160)에서 표현될 수 있는 방식에 대한 추가 도면으로서, 도 8은 고정 참조 포인트들에 대해 정렬된 9개의 타일(352) 세트로 분할된 지리적 영역(350)의 예가, ECEF 참조 포인트(354)(이해하기 쉽게 교번하는 타일들이 교차 해칭되어 도시되었다) 등과 같이 도시되었다. 타일들(352)은 규칙적인 배열로 배치되었고, 약 25%가 서로 중첩되어 도시되었으며, 타일들(352)과 ECEF 참조 포인트(354) 사이의 상대적인 포즈들은 파선으로 표현되었다.
도 9는 차례로 9개의 타일 노드들(358) 및 도 8의 타일들(352)과 ECEF 참조 포인트(354) 에 해당하는 하나의 ECEF 노드(360)를 포함하는 상대적인 아틀라스 그래프 또는 서브 그래프(356) 의 예를 도시한 것이다. 이와 관련하여, 용어 "서브그래프"는 보다 큰 상대적인 아틀라스 그래프의 일부를 지칭하는데 사용될 수 있다; 그러나 서브그래프가 추출된 상대적인 아틀라스 그래프 내에 유지된 매핑 데이터의 서브세트만을 커버하지만, 서브그래프 자체는 그래프로 간주될 수도 있음이 이해될 것이다.
이 예를 간단하게 하기 위해, (타일(0,0)로 지정되고, 도 8의 중앙에 있는 타일(352)에 해당하는) 중앙 타일 노드(358)에 연결된 에지들만이 도시되었다. 상세하게, 도 9는 타일(0,0)에 대한 타일 노드(358)를 타일(9,0)에 인접한 타일들을 표현하는 다른 타일 노드들(358) 각각으로 연결하는 8개의 타일-타일 에지들(362)을 포함하고, 각각은 타일(-1,-1), 타일(0,-1), 타일(1,-1), 타일(-1,0), 타일(1,0), 타일(-1,1), 타일(0,1), 및 타일(1,1)로 인덱싱된다. 또한, 타일-ECEF 에지(364)는 타일(0,0)에 대한 타일 노드(358)를 ECEF 노드(306)로 연결한다. 각 에지(362 및 364)에서, 변환 함수 Tr()은 에지들(362)에서 연결된 타일 노드들(358)에 해당하는 타일들 사이의 상대적인 포즈를 표현하도록 저장된다(변환 함수 Tr(x,y)는 타일(0,0) 밍 타일(x,y) 사이의 상대적인 포즈를 설명하고, 변환 함수 Tr(ECEF) 를 통해) 에지(364) 에서 타일 (0,0)과 ECEF 참조 포인트 사이의 상대적인 포즈를 설명한다.
추가 에지들이 다른 인접 타일 노드들(358)을 서로 연결하고, ECEF 노드(360)로도 연결할 수 있음이 이해될 것이다. 또한, 일부 구현에서, 에지들은 적절하다면 비인접 타일들용 타일 노드들을 함께 연결하는데 사용될 수 있다.
도 6으로 돌아가서, 이 도면은 계획 서브시스템(156)에 사용되기 적합할 수 있는 많은 서로 다른 노드 및 에지 타입들을 도시한다. 계획 시스템(156)은 특히 게이트 노드들(310) 및 경계 노드들(312)에 의존하여 자율주행 차량이 사용하기 적합한 잠재 경로들을 결정하고, 이 잠재 경로들 중에서 적당한 경로를 선택할 수 있다.
게이드 노드(310)는 특히 지리적 영역 내에서 허용가능한 차량 포즈, 즉, 지리적 영역 내에서 자율주행 차량의 유효하거나 허용된 포즈 또는 위치의 표현에 사용될 수 있고, 일부 예에서는, 일련의 게이트들이 차량이 지리적 영역을 통과할 수 있는 잠재 경로를 정의하는데 사용될 수 있도록, 스키 활강에 사용된 게이트로 유추될 수 있다. 일부 예에서, 게이트 노드는 단순히 위치를 정의하는 반면, 다른 예에서 방향은 차량이 게이트를 지날 때 주행할 방향을 나타내도록 정의될 수 있다. 게이트 노드는 또한 원한다면, 도시된 구현에서 아무런 치수가 포함되지 않았더라도, 일부 구현에서는 게이트의 치수(예를 들어, 폭)을 정의할 수 있다. 게이트 노드들 (또는 거기에 연결된 에지들)은 또한 일부 구현에서 일시적인 또는 다른 조건 정보를 인코딩할 수 있다. 예를 들어, 하루 중 서로 다른 시간, 일주일 중 서로 다른 요일과 같이 서로 다른 상황하에서 그러한 게이트들의 본질을 변화시킬 수 있다.
경계 노드(312)는 차량 운동을 제한하는 지리적 영역 내에서 물리적인 또는 가상의 경계를 나타낼 수 있다. 물리적 경계는, 예를 들어, 도로 에지, 커브, 중앙, 장벽, 울타리, 벽, 바리케이드, 가드레일 등 및 차량 움직임을 제한하는 임의의 다른 물리적 객체를 포함할 수 있는 반면, 가상 경계는, 예를 들어, 다중 차선의 고속도로에서 교통 차선을 분리하는 차선 경계 또는 파티션들, 노견과 분리된 운전 차선, 회전 차선 또는 반대(oncoming) 차량용 차선과 분리된 운전 차선을 포함할 수 있다. 따라서, 지리적 영역 내에서 허용된 차량 위치들을 정의하는 게이트 노드들과 대조하여, 경계 노드들은, 물리적인 장애물 또는 가상 장애물(예를 들어, 이중 황색선의 횡단은 일반적으로 금지되어 있다)에 의해, 일반적으로 차량이 허용되지 않을 수 있는 위치 또는 지역을 정의한다. 경계 노드들(또는 거기에 연결된 에지들)은 또한 일부 구현에서 일시적인 또는 다른 조건 정보를 인코딩할 수 있다. 예를 들어, 하루 중 서로 다른 시간, 일주일 중 서로 다른 요일과 같이 서로 다른 상황하에서 그러한 게이트들의 본질을 변화시킬 수 있다.
서로 다른 많은 에지 타입들이 게이트 및 경계 노드로 정의된다. 예를 들어, 타일-게이트 및 타일-경계 에지들(314 및 316)은 각각 게이트 및 경계 에지들을 타일 노드(300)에 연결하는데 사용될 수 있고, 여기서 그 에지들에 포함된 변환들은 연결된 타일의 각 게이트 및 경계의 상대적인 포즈를 정의한다.
게이트 노드들(310)은 게이트-게이트(조인트) 에지들(318) 및 게이트-게이트(차선 변경) 에지들(320)을 통해 각 게이트 노드들(310)로 연결될 수 있다. 게이트-게이트(조인트) 에지들(318)은, 예를 들어, 도로의 차선을 따라 확장되어 도로 차선을 따르는 연속 경로를 나타내는 게이트 노드들(310)을 함께 연결하는데 사용될 수 있다. 이런 타입의 관계들이 여기에서는 조인트 타입 관계로 지칭된다. 게이트-게이트(차선 변경) 에지들(320)은, 예를 들어, 동일 차선에 있지 않은 게이트들용 게이트 노드들(310)을 함께 연결하는데 사용될 수 있고, 따라서 하나 이상의 도로에서 서로 다른 차선을 나타낼 수 있지만, 게이트들 사이에서 자율주행 차량의 주행은, 예를 들어, 차선 변경, 통과, 다른 길로 변경, 도로 진입 또는 진출, 원형 교차로 진입 또는 진출 등과 같은, 적어도 일부 환경에서 아직 허용된다. 이 뒤쪽 형태의 관계가 여기에서는 논-조인트 타입(non-joint-type) 관계로 지칭된다. 도시된 구현에서, 단일 게이트-게이트(차선 변경) 에지 타입은 이 허용된 논-조인트 차량 경로 타입 각각을 나타내는데 사용된다. 다른 구현에서, 서로 다른 에지 타입은 논-조인트 게이트들 사이의 서로 다른 관계들(예를 들어, 동일 도로에서 인접 차선용, 다른 도로로 회전용, 램프(ramp) 진입 또는 진출용 등) 의 정의에 사용될 수 있다. 다른 구현에서, 단일 게이트-게이트 에지 타입은 모든 조인트 타입 관계들 및 모든 논-조인트 타입 관계들을 포함한 모든 게이트-게이트 연결을 나타내는데 사용될 수 있고, 데이터는 연결된 게이트들 사이의 특정 관계를 정의하는 에지의 페이로드 내에 유지된다. 그러나 서로 다른 타입을 정의함으로써, 일부 구현에서 상대적인 아틀라스 시스템에 대한 질의가 간단해져서, 예를 들어, 차량이 주행하고 있는 현재의 차선에 해당하는 게이트들의 리스트만을 검색, 특정 차량 위치에 근접한 진출 램프들에 해당하는 게이트들의 리스트를 검색할 수 있다.
경계 노드들(312)은 경계-경계(조인트) 에지들(322) 및 경계-경계(근접) 에지들(324)을 통해 다른 경계 노드들(312)로 연결될 수 있다. 예를 들어, 경계-경계 (조인트) 에지들(322)은 연속 경계를 나타내는 경계 노드들(312)를 함께 연결하는데 사용될 수 있다. 경계-경계 (근접) 에지들(324)은 서로 일정 거리 내에 있는 경계 노드들(312)을 함께 연결하는데 사용될 수 있지만, 이와 달리, 분명한 경계들을 나타내, 일부 예에서 차량의 일정 반경 내 모든 경계들이 상대적인 아틀라스 그래프 내 다양한 연결 경계 노드들 사이를 워크하여 결정될 수 있게 한다. 경계 노드들(312) 및 게이트 노드들(310)은 또한 경계-게이트 에지들(326)을 통해 서로 연결될 수 있고, 이는 경계들과 게이트들 사이의 상대적인 포즈들을 정의하여 주어진 게이트에 근접한 경계들 및 주어진 경계에 근접한 게이트들 모두가 식별될 수 있게 한다.
일부 구현에서, 게이트 및/또는 경계 노드들(310, 312)은 연관된 게이트들 또는 경계들의 치수, 체적, 면적, 위치, 방향 등을 정의한 (예를 들어, 그 페이로드 내에서 인코딩된) 기하 정보를 포함할 수 있는 반면, 일부 구현에서, 게이트들 및/또는 경계들은 치수가 없을 수 있고(dimesionless), 치수들은 연결 에지에 저장된 정보 및/또는 간단하게 연결 에지에서 정의된 상대적인 포즈에 기반하여 생성될 수 있다. 예를 들어, 일부 구현에서, 경계-경계(조인트) 에지들(322)에 의해 연결된 다수의 경계 노드들(312)의 경우, 곡선 접합(curve fitting)은 연결된 경계 노드들로 나타낸 경계들의 위치 및 방향들에 기반하여 연속 경계 곡선의 생성에 사용될 수 있다.
게이트 및 경계들이 상대적인 아틀라스 시스템 (160)에서 표현될 수 있는 방식에 대한 추가 도면으로서, 도 10은 단일 타일(372)에 의해 커버되고 각 방향으로 두 차선(374)을 포함하고, 중앙 분리대(376)로 분리된 4차선 도로를 포함하고, 노견(378)은 각 차선 쌍(374)의 양측면을 따라 확장된다. 또한 노견이 양 측면으로 확장된 단일 차선 진출 램프(380)도 도시되어 있다. 이 지리 영역 내 경로와 장애물을 나타내기 위해, 복수의 게이트들(382) 및 경계들(384)이 정의될 수 있고, 게이트들은 파선으로 서로 연결된 굵은 화살표로 나타나 있고, 경계들은 다이아몬드 끝점을 갖는 선분으로 나타나 있다. 지리 영역(370)의 일부만에 해당하는 게이트와 경계가 도 10 에 도시되어 도면을 단순화 했고, 추가 게이트들 및 경계들이 유사하게 지리 영역(370)의 나머지를 커버하도록 정의될 수 있다. 게이트들이 진출 램프(380) 뿐만 아니라 각 차선(374)을 따라 정의될 수 있고, 또한 경계들도 지리 영역 내에 존재할 수 있는 다른 물리적 장애물들을 따라서 뿐만 아니라 차선들 사이, 각 차선과 노견 사이, 각 노견의 에지, 중앙 분리대를 따라서 정의될 수 있음을 알 수 있다.
도 11은 차례로 도 10의 지리 영역(370)의 일부를 나타낸 상대적인 아틀라스 그래프 또는 서브그래프(400)의 예를 도시한 것으로, 특히 도면에서 굵게 도시된 게이트 G 및 경계 B에 연결된 경계들 및 게이트들을 커버한다. 서브그래프(400)는 (게이트 G를 보다 굵은 윤곽으로 나타낸 게이트 노드(402)를 포함한) 다수의 게이트 노드들(402) 및 (경계 B를 보다 굵은 윤곽으로 나타낸 경계 노드(404)를 포함한) 다수의 경계 노드들(402)을 포함하고, 게이트 G의 경우 게이트-게이트(조인트) 에지(406)가 도 10에서 GN 및 GP 로 레이블된 다음과 이전 조인트 게이트들에 해당하는 게이트 노드들(402)을 연결한 것을 보여준다. 게이트-게이트(차선 변경) 에지들(408)은 유사하게 도 10의 차선 변경 게이트 GC 및 차선 변경(진출) 게이트 GE 에 해당하는 게이트 노드들(402)에 연결된 것을 보여준다. 게이트 G용 게이트 노드(402)는 또한 타일-게이트 에지(410)를 통해 도 10의 타일 (372)에 해당하는 타일 노드(412)에 연결되고, 경계-게이트 에지(414)는 게이트 G용 게이트 노드(402)를 경계 B에 대응하는 경계 노드(404)에 연결한다.
경계 B용 경계 노드(404)는 비슷하게 타일-경계 에지(416)를 통해 타일 노드(412)로 연결된다. 경계-경계 (조인트) 에지(418)는 경계 B용 경계 노드(404)를 도 10에서 BN 및 BP 로 레이블된 다음과 이전 경계들에 해당하는 경계 노드들(404)에 연결하는 반면, 경계-경계 (근접) 에지(420)는 경계 B용 경계 노드(404)를 도 10에서 차선 경계 B L 및 노견 경계 BS 에 해당하는 경계 노드들(404)에 연결한다.
각 에지 (406, 408, 410, 414, 416, 418 및 420)는 연결된 노드들로 나타낸 엔터디들 사이의 상대적인 포즈를 정의하는 적당한 변환 함수 Tr()를 포함한다. 게이트-게이트(조인트) 에지들(406)의 경우, 변환들 Tr(NJG) 및 Tr(PJG)는 각각 게이트 G 및 그 다음과 이전 조인트 게이트들 GN 및 GP.사이의 변환 함수들을 나타내도록 정의된다. 게이트-게이트(차선 변경) 에지들(408)의 경우, 변환들 Tr(LCGC) 및 Tr(LCGE)는 각각 게이트 G 및 차선 변경 게이트 GC 및 차선 변경 (진출) 게이트 G E 사이의 변환 함수들을 나타내도록 정의된다. 타일-게이트 에지(410)의 경우, 변환 함수 Tr(TileG)는 타일 및 게이트 G 사이의 변환 함수를 나타내도록 정의된다. 경계-게이트 에지(414)의 경우, 변환 함수 Tr(G2B)는 게이트 G 및 경계 B 사이의 변환 함수를 나타내도록 정의되는 반면, 타일-경계 에지(416)의 경우, 변환 함수 Tr(TileB)는 타일 및 경계 B 사이의 변환 함수를 나타내도록 정의된다. 경계-경계(조인트) 에지(418)의 경우, 변환 함수 Tr(NJB) 및 Tr(PJB)는 경계 B 및 그 다음과 이전 조인트 경계들 BN 및 BP 사이의 변환 함수를 나타내도록 정의된다. 경계-경계(근접) 에지(420)의 경우, 변환 함수 Tr(B2L) 및 Tr(B2S)는 각각 경계 B 및 차선 경계 BL 및 노견 경계 BS 사이의 변환 함수를 나타내도록 정의된다.
또한 추가 에지들이 다른 인접 게이트 및 경계 노드들을 도 11에 도시된 임의의 노드들로 연결할 수 있음이 이해될 것이다. 그러나, 이 에지들의 다수는 도 11을 단순화하도록 생략될 수 있다.
도 7로 돌아가서, 이 도면은, 예를 들어, 인식 서브시스템(154)에 사용하기 위해, 교통 제어를 정의하는데 적합할 수 있는 많은 서로 다른 노드 및 에지 타입들을 도시한다. 도시된 구현에서, 예를 들어, 교통 장치 노드들(330), 제어 노드들(332), 및 통로 (passage) 노드들(334)이 교통 제어 및 그에 따라 제어된 주위 환경의 정의에 사용될 수 있고, 서로 다른 타입의 교통 노드들의 예로 간주될 수 있다. 일 구현에서, 예를 들어, 교통 장치 노드(330)는 교통신호(예를 들어, 도로에서 특정 차선을 제어하는 교통신호의 모든 빛), 신호 표지, 기차길 횡단, 또는 교통 흐름을 지시할 수 있는 다른 교통 지시자(indicator)의 일면과 같은 교통 장치를 나타낼 수 있다. 교통 장치 노드(330)는 연관된 교통 장치의 가변 상태를 정의 하거나 연관된 교통 장치의 가변 상태가 인식될 수 있는 조건을 정의할 수 있고, 추가로, 장치를 특징짓는 데이터, 예를 들어, 교통 장치로 구현된 로직, 교통 장치에 지원된 가용 전등 결합들/상태들, 교통 장치의 상태를 신뢰성 있게 인식하는데 사용 가능한 콘텍스트 (예를 들어, 명목상의 형상 또는 면 배치로부터의 변화) 등을 포함할 수 있다, 교통 장치 노드(330)는 또한 타일에 대해 상대적인 교통 장치의 포즈를 정의하는 타일-교통 장치 에지(336)를 통해 타일 노드(300)에 연결될 수 있다. 이하에서 명확히 알 수 있듯이, 교통 장치의 상대적인 포즈는 또한 고도(altitude) 또는 높이(elevation) 정보를 포함할 수 있고, 에지 또는 교통 장치 노드는 기하 정보(예를 들어, 바운딩 박스(bounding box)의 크기 및/또는 위치)를 포함하여, 자율주행 차량이 교통 장치 근처에 있을 때 교통 장치의 상태가 모니터링될 수 있도록, 자율주행 차량의 카메라로 캡쳐된 이미지 데이터에서 교통 장치의 위치 파악을 지원하는 안내를 제공할 수 있다.
각 교통 장치 노드(330)는 또한 교통 장치-제어 로직(338)을 통해 제어 노드(332)로 연결될 수 있다. 제어 노드(332)는 다수의 교통 장치들을 함께 그루핑하여 교통 흐름을 지리적 영역으로 조절하는, 예를 들어, 주어진 접근과 조합된 교통 장치들이 주어진 교차로로의 흐름을 조절하도록 교통 제어를 나타내는데 사용될 수 있고, 따라서, 공통 "상태"는 조절된 지리적 영역에 대해 정의될 수 있고, 그에 따라 자율주행 차량이 조절된 지리적 영역으로 접근할 때 자율주행 차량 근처에서 현재의 교통 제어 상태에 기반하여 궤적을 계획할 수 있게 한다. 달리 설명하면, 제어 노드(332)는 동일 가변 상태를 알리는 하나 이상의 교통 장치들에 대한 논리적인 집합 포인트로 간주될 수 있다. 모든 그러한 교통 장치들이 그 위치에서 가상 운전자에게 알릴 때, 그 노드는, 예를 들어, 가시적인 교통 장치들 모두가 교차로 또는 다른 조절된 지리적 영역으로 접근하고 있는 모든 가시적인 교통 장치들에 결합될 수 있다. 도시된 구현에서, 제어 노드는 교통 차선과 반대되거나 교통 차선을 가로지르는 교통 장치들 또는 동일하게 조절된 지리적 영역으로의 다른 접근과 결합되지 않는다. 대신 이 다른 교통 장치들은 다른 접근을 위해 그들 자신의 연관된 제어 노드들과 결합될 수 있다. 그러나, 다른 구현에서 제어 노드는 교차로로 향하는 다수의 접근들과 연관된 교통 장치들을 나타내는데 사용될 수 있다.
제어 노드(332)는 또한 제어-통로 에지(340)를 통해 하나 이상의 통로 노드들(334)에 연결될 수 있다. 이 점에서, 통로는 특별 제어 (및 또는 연관 교통 장치들)에 의해 조절된 지리적 영역을 통과하는 주어진 경로를 지칭할 수 있다. 예를 들어, 2차선 도로의 표준 교차로의 경우, 교차로에 4개의 접근 각각에 대해, 분리된 통로들은 교차로를 통해 직선 주행, 교차로에서 좌회전 또는 우회전을 나타내도록 정의될 수 있고, 따라서 전체 12개의 통로가 그 교차로와 연관된 특별 제어를 위해 정의될 수 있다.
각 통로 노드(334)는 또한 통로-게이트 에지(342)를 통해 하나 이상의 순차 게이트 노드들(310)로 연결될 수 있고, 그에 따라 통로들을 교통 제어에 의해 조절된 지리적 영역에서 차량에 대한 수용 가능한 포즈를 정의하는 특별 게이트 시퀀스로 연결한다.
교통 장치, 제어, 통로, 및 게이트 노드들 사이의 관계들이 도 12 및 13을 참조하여 추가 설명될 것이다. 도 12는 특히 단일 타일(432)로 커버된 예시적인 조절된 지리 영역 (여기에서는 교차로)를 도시한 것으로, 지리 영역은 한 쌍의 유예된 신호등 유닛들(440)을 포함한 교통 제어(438)에 의해 조절된 한 쌍의 2차선 도로(434 및 436) 를 포함하고, 신호등 유닛들 각각은 상대적인 아틀라스 시스템(160) 내에서 서로 다른 교통 장치들을 나타내는 여러 면을 갖는다. 신호등 유닛(442)은, 예를 들어, 두 면(446 및 448)에 형성된 복수의 지시자들(444)을 포함하는 확대된 사시도로 보여진다. 북쪽을 향한 (도 12의 상부에서 북쪽) 교통을 제어하는 면(446)은 빨간색, 황색, 녹색 지시자들(444)을 포함하고 따라서, 세 가지 상태: 정지, 주의, 및 진행을 정의한다. 그러나, 면(448)에 도시된 대로, 교통 장치들은 다른 구현에서 다수의 추가 형태들을 가질 수 있고, 예를 들어, 예시적인 개시에서 이익을 얻는 당업자가 알 수 있는 회전, 보행자, 자전거, 및 다른 교차로 특정 환경들을 지원할 수 있다.
또한, 상술한 바와 같이, 다수의 통로들이 조절된 지리적 영역(430)을 통해 가능한 경로들 각각을 목적지로 하도록 정의될 수 있다. 북쪽을 향한 교통의 경우, 예를 들어, 세 통로(450, 452, 및 452)가 정의될 수 있고, 각각은 교차로를 통과하는 직선 경로, 우회전 및 좌회전을 나타낸다. 또한, 상술한 바와 같이, 각 통로는 논리적으로 교차로를 통한 허용가능한 경로들에서 차량의 포즈를 정의하는 다양한 게이트들(456)과 논리적으로 결합될 수 있다.
도 13은 차례로 도 12의 지리영역(430)의 일부를 나타낸 상대적인 아틀라스 그래프 또는 서브그래프(460)의 예를 차례로 도시한 것으로, 지리적 영역을 조절하는 교통 장치들을 상세하게 커버한다. 서브그래프(460)는 교통 장치-제어 에지들(466)을 통해 논리적으로 연결된 교통 장치들 (예를 들어, 신호등 유닛(440)의 면들(446 및 448))을 나타내는 복수의 차량 장치 노드들(464)에 연결된 교통 제어기(438)를 나타내는 제어 노드(462)를 포함한다. 각 교통 장치 노드(464)는 타일-교통 장치 에지들(470)에 의해 (도 12의 타일(432)에 해당하는) 타일 노드(468)에 연결되고, 도면에서 이해될 수 있는 것처럼, 각 에지(470)는 타일 노드(468)와 연관된 타일 내에서 교통 장치에 대한 상대적인 포즈를 정의한다.
제어 노드(462)는 또한 (예를 들어, 도 12의 통로(450)를 나타내는) 제어-통로 에지(474)를 통해 통로 노드(472)에 연결된 것으로 도시되어 있고, 이는 차례로 해당 통로-게이트 에지들(478)을 통해 복수의 게이트 노드들(476)로 연결된다. 흥미롭게도, 어느 에지들(466, 474, 또는 478)도 여기에서 설명된 예시적인 그래프 스키마에서처럼 의미있는 변환 함수들을 포함하지 않고, (변환 필드가 여전히 각 에지에 존재할 수 있더라도) 제어기와 교통 장치, 제어기와 통로, 또는 통로와 게이트들 사이에 어떠한 상대적인 포즈도 정의될 필요가 없다. 게이트 노드들(476)은 상술한 방식으로 다른 게이트들, 경계들 및/또는 타일들과 연결되어 게이트들이 적절하게 디지털 맵에 배치될 수 있게 하는 반면, 타일-교통 장치 에지들(470)에 정의된 변환들은 디지털 맵 내에 교통 장치들을 배치하는 것에 사용될 수 있다. 그러나, 다른 구현들에서 교통 장치들, 제어들, 통로들 및/또는 게이트들 사이의 상대적인 포즈가 정의될 수 있다.
도 13은 또한 일부 구현들에서 일부 엘리먼트 노드들이 어떻게 다수의 타일 노드들에 연결될 수 있는지, 즉, 엘리먼트 노드들이 어떻게 단일 타일에 대한 배치에 제한되지 않을 수 있는지를 도시한 것이다. 특히, 하나의 교통 장치 노드(464)는 인접 타일 내에서 다른 변환 혹은 교통 장치의 상대적인 포즈를 정의하는 타일-교통 장치 에지(482)를 통해 인접 타일 노드(480)로 추가 연결되는 것이 도시되었다. 따라서 동일 엘리먼트, 즉, 교통 장치는 다수의 타일들에 대해 다른 상대적인 포즈를 갖는 것으로 정의된다. 도 14는 그러한 관계를 추가로 도시한 것으로, 그에 따라 교통 장치(490)는 타일(492) (타일 T1) 내에서 다른 타일(494) (타일 T2)이 그에 인접한 상태에서 고정된 위치에 있는 것으로 도시되었다. 교통 장치(490)용 바운딩 박스가 타일들 T1 및 T2 에 대해 정의된 서로 다른 두 상대적인 포즈들을 갖고, 자율주행 차량의 현재 위치에 따라 (예를 들어, 위치 P1에서와 같은 타일 T1의 경계 내 또는 위치 P2에서와 같은 타일 T2의 경계 내) 두 상대적인 포즈들 중 하나만이 교통 장치의 배치에 사용될 수 있다.
교통 장치의 관점 안에서, 상대적 포즈들을 다수의 타일들로 정의하는 것은, 예를 들어, 자율주행 차량 제어 시스템에서 교통 장치를 교통신호 추정 기능으로 식별하는 것을 용이하게 할 수 있다. 교통 장치들은 멀리 떨어져서도 보일 수 있고, 교통 장치의 상태에 대한 판단을 시도하는 자율주행 차량과 상대적인 아틀라스를 생성 또는 갱신할 목적으로 지리적 영역 내에서 관측들을 캡쳐하는 차량 모두, 교통 장치가 차량이 위치한 타일로부터 하나 이상의 타일만큼 떨어져 있을 때 교통 장치의 위치 파악을 시도할 수 있음이 이해될 것이다. 교통 장치에 대한 분리된 상대적인 포즈들을 결정하여 교통 장치와 교통 장치를 볼 수 있는 다수의 서로 다른 타일들 사이의 위치 관계를 정의함으로써, 자율주행 차량이 그 타일에 위치할 때 특별 타일에 특정된 상대적인 포즈가 사용될 수 있고, 그렇게 하는 것은, 이미지 데이터가 캡쳐되었을 때의 자율주행 차량의 위치 및 방향이 교통 장치에 대응하는 관측을 원래 캡쳐한 차량의 위치 및 방향과 유사하기 때문에, 자율주행 차량에 의해 캡쳐된 이미지 데이터 내에서 교통 장치의 식별을 용이하게 할 것이다. 달리 말하면, 제1 차량이 제1 타일에서 주행하는 동안 이미지 데이터를 캡쳐하고, 그 이미지 데이터가 제1 타일에서 볼 수 있지만 물리적으로 세 개의 타일 밖에 있는 제2 타일에 위치하는 특별 교통 장치를 포함한다면, 일부 구현에서 제1 타일에 상대적인 교통 장치에 대해 계산된 상대적인 포즈는 일부 구현에서 나중에 제1 타일을 주행하는 제2 차량에 의해 캡쳐된 이미지 데이터 내 교통 장치 식별에 사용되는 것이 바람직하다.
다른 엘리먼트 노드 타입들 또한 다수의 다른 엘리먼트 노드들에 대해서 뿐만 아니라 다수의 타일 노드들에 대해 정의된 상대적인 포즈들을 가질 수 있고, 많은 구현에서, 상대적인 아틀라스 그래프 내에 나타내진 주어진 엘리먼트는 동일한 상대적인 아틀라스 그래프에 나타내진 다수의 타일들 및/또는 엘리먼트들에 대해 다수의 상대적인 포즈들을 정의한 다수의 변환들을 갖는 다수의 에지들을 통해 연결될 것이다. 또한, 다수의 에지들의 준비는 디지털 맵 내에 엘리먼트들을 배치하도록 다수의 배치 전략들이 채용되게 할 수 있고, 그러한 경우, 하나의 목적에 가장 잘 맞는 배치 전략이 그 목적을 위한 배치 엘리먼트들에 사용될 수 있는 반면, 다른 목적에 보다 잘 맞는 다른 배치 전략은 그 다른 목적을 위한 배치 엘리먼트들에 사용될 수 있음이 이해될 것이다. 그러한 배치 전략들은, 예를 들어, 특별 엘리먼트에 대한 엘리먼트 노드에서 시작해서 엘리먼트 노드로부터 각 연결 에지에 정의된 변환들을 수행하는 엘리먼트 노드로 워크하여 시작 엘리먼트에 상대적인 다른 엘리먼트들의 포즈들을 결정하는 반면, 다른 배치 전략들은 엘리먼트 노드들을 타일 노드들로 연결하는 에지들에 정의된 변환들을 사용하여 엘리먼트들을 배치할 수 있고, 따라서 모든 엘리먼트들은 상대적인 포즈에 기반하여 주어진 타일의 기준 프레임에 배치된다. 또 다른 전략들은 타일 노드들을 ECEF 노드에 연결하는 에지들에 정의된 변환들을 사용하여 엘리먼트들을 배치할 수 있고, 그에 따라 모든 엘리먼트들은 상대적인 포즈에 기반하여 글로벌 기준 프레임에 배치된다. 또 다른 배치 전략들은 엘리먼트들간, 엘리먼트들과 타일들 사이, 및/또는 타일과 기준 참조 포인트 사이와 같은 접근들의 결합을 사용할 수 있다. 따라서 여기에서 설명된 상대적인 아틀라스 그래프 구조에 의해 제공된 유연성은 서로 다른 구현들에서 다양한 배치 접근을 지원할 수 있다.
상대적인 아틀라스 생성 및 관리
자율주행 차량용 상대적인 아틀라스의 생성은 일부 구현에서 그래픽 영역에서 수집된 관측들에 기반할 수 있다. 관측들은 하나 이상의 차량들에 의해 수집되고, 일부 구현에서 차량들은 자율 차량일 수 있고, 다른 구현에서는 인간이 유도하는 (human-guided) 차량들이 관측 수집에 사용될 수도 있다. 관측들은 또한 다른 구현에서는 다른 방식으로 수집될 수 있고, 이하에서 상세하게 논의되는 것처럼, 매핑 데이터는 일부 구현에서 외부 소스들로부터 상대적인 아틀라스로 입수될 것이다.
이 점에서, 관측은 지리적 영역으로부터 감지된 데이터, 예를 들어, 감지된 데이터로부터 도출된 데이터, 예를 들어, 차량이 지리적 영역을 주행할 때 차량의 경로, 위치 및/또는 방향들 뿐만 아니라 차량에 장착된 카메라로 캡쳐된 이미지 데이터, LIDAR 데이터, RADAR 데이터, SANTAV 데이터, IMU 데이터, 인코딩 데이터 등을 포함하는 것으로 간주될 수 있다. 관측은 또한 머리 위 인공위성, 비행기, 드론 등, 지리적 영역 내에 배치된 고정된 센서들, 또는 지리적 영역에 대한 정보가 실제로 수집될 수 있는 다른 형태의 센서들로부터 수신된 데이터를 포함할 수 있다.
도시된 구현에서, 관측들은 지리적 영역 내 엘리먼트들을 나타내는 엘리먼트 노드들 생성에 사용될 수 있고, 그런 다음 연결된 엘리먼트 노드들의 엘리먼트들 사이의 상대적인 포즈를 정의하는 에지들에 의해 연결될 수 있다. 이 엘리먼트 노드들 및 에지들은, 상대적인 아틀라스에 의해 나타내진 지리적 영역의 최소한의 일부 안에서 엘리먼트들을 배치하도록 시도할 때, 이후 검색을 위해 상대적인 아틀라스, 예를 들어, 상대적인 아틀라스 그래프에 저장될 수 있다.
도 15는, 예를 들어, 새로운 지리적 영역 (즉, 상대적인 아틀라스로 통합되지 않았던 지리적 영역)에서 단일 차량에 의해 수집된 관측들에 기반하여 상대적인 아틀라스를 생성 또는 갱신하는 동작 시퀀스들의 예를 도시한 것이다. 동작 시퀀스들은 관측들을 수집한 (자율주행 또는 다른) 차량, 자율주행 차량(그 자율주행 차량이 관측들을 수집했는지 여부), 임의의 차량과 분리된 다른 컴퓨터 시스템(예를 들어, 도 1의 원격 차량 서비스(178)와 같은 클라우드 기반 서비스), 또는 이들의 결합에 의해 수행될 수 있다. 또한, 그 시퀀스는 "온라인" (즉, 관측들이 수집되면서)으로 수행되거나, 다른 구현들에서 오프라인 또는 다른 배치(batch) 프로세스로 수행될 수 있다. 또한, 일부 구현에서 동작 시퀀스는 완전 자동화되었을 수 있는 반면, 다른 구현에서는 일부 단계들이 인간의 중재를 통해 수행 및/또는 가이드될 수 있다. 또한, 시퀀스내 동작 순서가 바뀔 수 있고, 일부 구현에서 일부 동작들은 병렬로 및/또는 반복적으로 수행될 수 있으며, 따라서 도 15에 도시된 시퀀스는 단지 설명을 위한 예이다.
시퀀스는 502 블록에서 차량이 새로운 지리적 영역을 주행하는 동안 수집된 관측들을 포함하는 차량 로그(log)를 수신하면서 시작된다. 이 점에서, 차량 로그는 동일 또는 다른 시간에 하나 이상의 차량 및/또는 다른 데이터 소스들로부터 수집한 관측 세트를 나타내는 것으로 간주될 수 있다. 차량 로그는 다수의 파일들, 데이터 구조들 등을 통합할 수 있고, 일부 구현에서는 다수의 위치들로 배포될 수 있다.
다음으로, 504 블록은, 예를 들어, 차량 로그 내 관측들에 기반하여 생성될 서브그래프의 노드들 및 에지들을 저장 및 구조화하는데 사용될 데이터 구조를 초기화함으로써 서브그래프를 초기화한다. 다음으로, 506 블록은 하나 이상의 타일들을 생성하여 지리적 영역을 표시한다. 상술한 것처럼, 타일들은 일부 구현에서는 중첩하고, 일부 구현에서는 생성될 타일들의 개수가 지리적 영역의 크기에 종속되도록 표준 치수로 정의될 수 있는 반면, 타일들의 배치는 일정한 간격을 따라 미리 정의된다.
506 블록에서 타일 생성시, 해당 타일 노드들이 구축되어 서브그래프로 통합되고, 적절한 타일-ECEF 에지들이 구축되고 서브 그래프로 통합되어 각각의 새로운 타일과 글로벌 기준점 사이의 상대적인 포즈들을 정의한다.
또한, 일부 구현에서, 페이로드 데이터가 각 타일 노드에 추가되어, 수집된 관측들 또는 다른 정보에 기반하여 각 타일에 의해 표시되는 지리적 영역에 대한 지식에 통합될 수 있다. 예를 들어, 일부 구현에서 해당 타일 노드의 페이로드로서 타일로 표현된 지리적 영역의 표면 모델을 통합하는 것이 필요할 수 있다. 이하에서 명확해지는 것과 같이, 표면 모델은 위치파악 시스템에 의해 사용되어, 예를 들어, 차량으로부터의 센서 관측에 대한 포인트 클라우드를 타일에 대해 저장된 표면 모델을 비교함으로써, 타일 내 차량의 현재 포즈를 결정할 수 있다. 표면 모델은 차량 로그 내 센서 데이터(예를 들어, LIDAR, RADAR 및/또는 이미지 데이터)로부터 도출 및/또는 위성 관측들 또는 다른 매칭 데이터 소스들로부터 도출될 수 있고, 본 개시의 이익을 갖는 당업자에 의해 이해되는 바와 같이 다양한 방식으로 나타낼 수 있다.
다음으로, 508 블록에서, 게이트들은 관측들을 수집하는 동안 차량의 횡단 경로에 기반하여 지리적 영역에 대해 생성되고, 게이트 및 타일들 사이뿐만 아니라 근처 게이트들 사이의 변환이 결정된다. 예를 들어, 차량이 지리적 영역을 주행하는 동안, 차량의 주행 경로를 따라 미리 결정된 간격으로 게이트들이 결정될 수 있다. 새로운 게이트들에 해당하는 게이트 노드들이 구축되고 서브그래프에 통합되어, 게이트-게이트 및 타일-게이트 에지들이 구축되어 서브그래프에 통합되고, 결정된 변환들은 에지들의 변환 필드 내에 저장된다. 페이로드 데이터는 또한 게이트 노드들 및/또는 에지들에 적절하게 통합되어, 예를 들어, 속도 제한을 부가하거나 게이트-게이트 천이(transition)가 허용되는 조건을 정의하는 것 등을 수행한다.
다음으로, 510 블록에서, 경계들이 차량 로그 내 관측들에 기반하여, 예를 들어, 카메라, LIDAR 및/또는 RADAR 데이터의 이미지 처리에 기반하여 지리적 영역에 대해 생성되고, 경계들 및 타일들 사이 뿐만 아니라 근처 게이트들 및 경계들 사이의 변환이 결정된다. 새로운 경계들에 해당하는 경계 노드들이 구축되고 서브그래프에 통합되어,경계-경계, 경계-게이트, 및 타일-경계 에지들이 구축되어 서브그래프에 통합되고, 결정된 변환들은 에지들의 변환 필드 내에 저장된다. 페이로드 데이터는 또한 경계 노드들 및/또는 에지들에 적절하게 통합되어, 예를 들어, 경계의 타입, (있다면) 경계가 교차할 수 있는 조건, 등을 정의할 수 있다.
다음으로, 512 및 514 블록에서 하나 이상의 도로들을 통제하고 서브그래프로 통합되는 교통 제어들이 수행된다. 512 블록에서, 교통 장치들이 차량 로그 내 관측들에 기반하여, 예를 들어, 카메라, LIDAR 및/또는 RADAR 데이터의 이미지 처리에 기반하여 지리적 영역에 대해 생성되고, 교통 장치들 및 하나 이상의 타일들 사이의 상대적인 포즈들을 정의하는 변환들이 결정된다. 새로운 교통 장치들에 해당하는 교통 장치 노드들이 구축되어 서브그래프에 통합되고, 타일-교통 장치 에지들이 구축되어 서브그래프에 통합되고, 결정된 변환들은 에지들의 변환 필드 내에 저장된다. 페이로드 데이터는 또한 교통 장치 노드들 및/또는 에지들에 적절하게 통합되어, 예를 들어, 교통 장치 상태를 결정할 때 분석 대상 바운딩 박스를 정의하고, 교통 장치의 타입 및/또는 동작을 분류한다 (예를 들어, 신호 또는 빛, 빛의 구성, 빛의 시퀀스 등).
다음으로 514 블록에서, 제어 및 통로가 생성되어 교통 장치들을 논리적 교통 제어들로 연결하고, 교통 제어의 동작을 나타내는 로직을 수립하는 것뿐만 아니라 조절된 영역을 통해 다양한 통로를 정의하는 게이트 세트를 수립할 수 있다. 연관 제어 및 통로 노드들이 구축되어 적절한 교통 장치-제어, 제어-통로, 및 통로-게이트 에지들과 함께 서브그래프로 통합될 수 있다. 페이로드 데이터는 또한 제어 및 통로 노드들로 통합되고 에지들과 적절하게 조합되어, 예를 들어, 각 교통 제어의 로직을 정의할 수 있다.
다음으로, 516 블록에서 새로 생성된 서브그래프가 기존 상대적인 아틀라스 그래프와, 예를 들어, 글로벌 상대적인 아틀라스 그래프로 융합될 수 있다. 또한 518블록에서, 일부 구현에서 상대적인 아틀라스 시스템에 대한 변화들, 예를 들어, 새로운 서브그래프를, 상대적인 아틀라스 시스템을 사용하는 차량 인구들에게 전파하는 것이 바람직할 수 있다. 전파는 일부 예에서는 상대적인 아틀라스의 새 버전을 배치하여 구현될 수 있는 반면, 다른 예에서는 필요한 데이터 볼륨을 줄이기 위해 갱신사항들은 차이점으로서 전파될 수 있다. 일부 예에서 전파는 자동일 수 있는 반면, 다른 예에서 전파는 주문형일 수 있다. 본 개시의 이익을 갖는 당업자들이 이해하는 바와 같이, 변화를 상대적인 아틀라스와 같은 공유 매핑 리소스로 전파하는 다양한 방식이 여러 구현에서 사용될 수 있다.
게이트들, 경계들, 교통 장치들 및 다른 엘리먼트들이 관측 데이터로부터 결정될 수 있는 방식은 구현에 따라 달라질 수 있다. 예를 들어, 개별 엘리먼트들은 다수의 관측들로 표현될 수 있고, 따라서 그러한 엘리먼트에 대한 식별과 포지셔닝은 다수의 관측들에 대한 처리를 포함할 수 있다. 예를 들어, 지리적 영역을 주행하는 차량에서 캡쳐된 비디오를 고려하자. 차량이 지리적 영역을 주행하면서, 경계 및 교통 장치들과 같은 엘리먼트들은 캡쳐된 비디오의 각 프레임에서 관측될 수 있고, 따라서 각 엘리먼트의 위치파악 처리가 다수 관측들을 통해, 예를 들어, 각 관측에 대한 엘리먼트의 위치에 대한 삼각측량, 평균, 아니면, 다른 다수의 삼각측량 위치들을 결합함으로써 수행될 수 있다. 또한, 엘리먼트와 그 엘리먼트에 대한 관측이 이뤄진 위치 사이의 근접성이 강조되어, 예를 들어, 멀리서 수집된 관측들보다 근접 관측들로부터의 엘리먼트들에 대한 위치 계산이 더 비중있게 가중된다. 일부 구현에서 엘리먼트들이 배치된 경우, 자율주행 차량의 현재 위치에 보다 가까이 있을 것 같은 위치로부터 계산된 관측을 우선하여 엘리먼트의 상대적인 포즈들이 결정되었기 때문에, 그러한 강조는 자율주행 차량 주변에 배치된 엘리먼트들에 대한 국부 충실도를 개선할 수 있음에 주의해야 한다.
또한 서로 다른 엘리먼트들 사이 및/또는 다양한 엘리먼트들 및 타일들 사이의 상대적인 포즈들이 다양한 방식으로 그래프에 인코딩될 수 있음이 이해될 것이다. 상술한 바와 같이, 예를 들어, 일부 엘리먼트들은 다른 타일 내 관측점들에서 가시적일 수 있고, 그러한 경우, 이러한 및 다른 이유로, 에지들이 생성되어 일부 엘리먼트들에 대한 엘리먼트 노드들을 연결하여 일부 엘리먼트들 및 그 엘리먼트 근처의 다수의 타일들 사이의 상대적인 포즈를 정의할 수 있다. 또한, 일부 구현에서 임의의 두 엘리먼트들 사이의 상대적인 포즈가 그래프 내 노드들 및 에지들의 서로 다른 결합을 횡단하여 다양한 방식으로 얻어질 수 있도록, 상대적인 포즈들이 동일한 근처에 있는 모든 또는 일부 엘리먼트들 사이에서 결정되어 에지들로 인코딩될 수 있다. 따라서, 예를 들어, 게이트 노드들은 에지들에 의해 바로 인접한 게이트들에 대한 게이트 노드들 뿐만 아니라 바로 인접하지는 않지만 아직 서로의 일정 반경 내에 있는 추가 게이트들에 대한 게이트 노드로 연결될 수 있다. 유사하게, 경계 노드들이 에지들에 의해 다른 경계들 및/또는 일정 반경 내의 게이트들에 대응하는 노드들로 연결될 수 있다.
또한, 일부 구현에서 특별한 지리적 영역을 통과하는 하나 이상의 차량들에 의해 다수의 차량들 및/또는 다수의 통과들로부터의 관찰들을 결합함이 바람직하다는 것이 이해될 것이다. 또한, 지리적 영역에 대해 수행된 매핑은 반복해서 갱신 및 개선되어 지리적 영역 내 변화에 적응하거나 또는 상대적인 아틀라스를 최근 관측과 보다 잘 매칭할 수 있음이 이해될 것이다. 따라서 도 15의 동작 시퀀스(500)는 이전에 상대적인 아틀라스에 통합되지 않았던 지리적 영역의 서브그래프 구축에 초점을 맞춘 반면, 보다 일반적인 동작 시퀀스는 새로운 매핑 데이터를 상대적인 아틀라스로 통합하는 것과 기존 매핑 데이터의 개선을 처리하도록 수행되어 보다 최근의 관측들을 통합할 수 있다.
도 16은, 예를 들어, 새로운 관측들을 기존 상대적인 아틀라스 그래프에 통합하는 동작 시퀀스(530)를 도시한 것이다. 시퀀스는 532 블록에서 다수의 차량들로부터 차량 로그를 수신하여 시작할 수 있다. 534 블록은 차량 로그들로부터 관측들을 추출할 수 있고, 536 블록은 관측들에 의해 나타내진 횡단된 지리적 영역에 기반하여, 예를 들어, 횡단된 지리적 영역에 대한 타일 노드가 이미 존재하는지 여부에 기반하여 필요한 하나 이상의 타일들을 생성할 수 있다.
다음으로, 538 블록은 차량 로그들로부터의 횡단 경로에 기반하여 게이트들을 생성할 수 있고, 540 및 542 블록은, 도 15의 블록들(508 내지 512)과 연결하여 상술한 해당 동작들과 유사하고, 차량 로그로부터의 관측에 기반한 경계 및 교통 장치들을 생성할 수 있다. 일부 구현에서, 서브 그래프는 생성된 게이트, 경계들, 및 교통 장치들에 대응하여 생성될 수 있는 반면, 다른 구현에서는 생성된 게이트들, 경계들 및 교통 장치들, 및 그에 대해 결정된 상대적인 위치들이 다른 적절한 방식으로 유지될 수 있다.
다음으로 블록들(555 내지 548)은 블록들(538 내지 542)에서 생성된 게이트들, 경계들, 및 교통 장치들을 기존의 상대적인 아틀라스 그래프에 통합한다. 예를 들어, 블록 (544)은 신규 게이트들을 상대적인 아틀라스 그래프 내 기존 게이트들과 융합하고, 상대적인 아틀라스 그래프 내에 신규 게이트 노드들 및 에지들을 생성하거나, 기존 게이트 노드들 및 에지들을 적절하게 변경할 수 있다. 일부 구현에서, 예를 들어, 기존 상대적인 아틀라스 그래프는 각 생성된 게이트에 잠재적으로 매칭하는 게이트 노드를 찾도록 질의받을 수 있고, 그러한 게이트 노드가 없다면, 신규 게이트 노드와 그 게이트 노드를 하나 이상의 타일 노드들 및/또는 하나 이상의 인접 게이트 노드들 및/또는 경계 노드들로 연결할 에지들이 상대적인 아틀라스 그래프에 추가될 수 있다.
한편, 매칭 게이트 노드가 있다면, 그 게이트 노드 및/또는 해당 게이트와 다른 엘리먼트들 및/또는 타일들 사이의 상대적인 포즈들을 정의하는 에지들이 변경되어 보다 최근의 관측들을 반영할 수 있다. 맵 엘리먼트들을 개선하는 다양한 매핑 기법들이 다른 구현에서 사용되어 기존 노드들 및 에지들로 인코딩된 이전 관측들을 적절하게 보류하고, 신규 관측들이 이전 관측들과 매칭되지 않으면, 당업자들이 이해하는 것과 같이 개선이 계속 일어날 수 있게 한다.
그러나 이전 관측과 신규 관측 사이의 미스매치가 상대적인 아틀라스 그래프에서 계속된다면, 본 발명에서는 일반적으로 그래프 단위의 조정은 필요하지 않다. 따라서, 예를 들어, 이전의 포지셔닝이 부정확하다고 판단되면, 위치 갱신이 전체 지리적 영역의 모든 매핑된 엘리먼트들에게 전파될 필요가 있을 수 있는 절대 포지셔닝 접근법과 대조적으로, 도시된 구현에서는, 임의의 조정된 엘리먼트의 엘리먼트 노드에 직접 연결된 에지들의 상대적인 포즈 변환으로만 개별 엘리먼트에 대한 위치 조정 갱신이 이뤄질 필요가 있을 수 있다.
신규 경계들 및 교통 장치들을 기존의 상대적인 아틀라스 그래프에 융합하기 위해, 신규 경계 및 교통 장치 노드들 및 에지들이 생성되고 및/또는 기존 경계 및 교통 장치 노드들 및 에지들이 적절하게 변경되도록 546 및 548 블록들은 544 블록과 연결하여 상술한 유사 기법을 채용한다. 550 블록은 신규 제어 및 통로 노드들을 생성 및/또는 기존 제어 및 통로 노드들을 변경하고, 신규 교통 장치들 및 게이트들을 생성 및/또는 기존 교통 장치들 및 게이트들을 변경하여 제어 및 통과들을 생성 및/또는 변경한다. 이후, 552블록에서, 일부 구현에서 상대적인 아틀라스 시스템에 대한 변화들, 예를 들어, 신규 서브그래프를, 상대적인 아틀라스 시스템을 사용하는 차량 인구들에게 전파하는 것이 바람직할 수 있다. 그런 다음, 그 동작 시퀀스는 완료된다.
도 17을 보면, 상술한 바와 같이, 엘리먼트들은 지리적 영역으로부터 수집된 관측들로부터 검출되어 상대적인 아틀라스 그래프 내 엘리먼트 노드들 및 에지들 생성에 사용될 수 있다. 도 17은 다양한 타입의 관심 엘리먼트(element of interest)를 상대적인 아틀라스 그래프로 입수하는데 사용될 수 있는, 예를 들어, 상술한 500, 530 시퀀스들에서 수행된 것과 같은 일반화된 동작 시퀀스(560)의 예를 도시한 것이다. 560 시퀀스에서, 관심 엘리먼트를 갖는 것으로 기대된 차량 로그의 세그먼트들이 562 블록에서 차량 로그로부터 추출될 수 있고, 564 블록에서 차량 로그의 센서 데이터 내 관심 엘리먼트 주변에 바운딩 박스들이 구축될 수 있다. 일부 구현에서 바운딩 박스들은, 예를 들어, 센서 데이터의 이미지 처리에 기반하여 자동으로 구축될 수 있거나, 센서 데이터를 본 사람이 바운딩 박스에 수작업으로 입력한 것에 기반하여 사람의 도움을 받아 수행될 수 있다. 다음으로, 566 블록에서, 각 관심 엘리먼트의 위치가 삼각법으로, 예를 들어, 센서 데이터 내 다수의 관측들에 기반하여 (예를 들어, 다수 프레임 내 다수의 유리한 포인트에서 캡쳐된 거리에 기반하여) 측정된다. 그런 다음, 568 블록에서, 주위 엘리먼트들 및 타일들과의 상대적인 포즈들이 결정되고, 연관 엘리먼트 노드들 및 에지들이 각 관심 엘리먼트별로 생성 및/또는 적절하게 변경된다.
실질적이나 제한되지 않은 동작 시퀀스(560)의 예는 차량에 장착된 카메라에 의한 이미지 캡쳐로부터 교통 장치를 획득하는 것과 관련된다. 동작 시퀀스(560)의 한 구현에서, 신호등을 포함할 것으로 기대되는 차량 로그 내 비디오 파일 세그먼트들이 추출되고, 바운딩 박스들이 수작업으로 또는 (예를 들어, 패턴 인식을 통해) 자동으로 각 이미지에서 볼 수 있는 각 교통 장치들 주변에 생성된다. 각 스냅샷 이미지가 캡쳐되었을 때 차량 위치에 대한 위치 데이터 및 각 교통 장치의 상대적인 거리가 컴파일(compile) 되어, 본 개시의 이익을 얻는 당업자의 능력 내에서 잘 알려진 방식으로, 노면 위 높이를 포함한 교통 장치 위치의 삼각 측량에 사용된다. 예를 들어, 카메라 교정(calibration) 데이터 및 로그 위치 파악 데이터가 일부 공통 참조 프레임 (예를 들어 타일) 내 바운딩 박스의 위치결정에 사용될 수 있다. 그런 다음, 교통 장치에 해당하는 노드들이 (기존 교통 장치 노드와 매칭된다고 판단되면) 변경되거나 (매칭되지 않는다고 판단되면) 생성되고, 에지들이 근처 타일들 및 다른 엘리먼트들과 상대적인 포즈를 구축하기 위해 필요한대로 생성 및 변경될 수 있다.
당업자에 의해 시퀀스(560)의 다른 적용 또는 변경이 이뤄질 수 있고, 따라서 본 발명은 여기에서 논의된 특별한 시퀀스에 제한되지 않는다.
도 18을 보면, 이 도면은 자율주행 차량이 서브그래프를 배치하는 동작 시퀀스(580)의 예를 도시한다. 동작 시퀀스(580)는 예를 들어, 자율주행 차량의 초기 시작, 또는 자율주행 차량이 해당 자율주행 차량에 저장된 상대적인 아틀라스의 국부 부본 범위를 넘어선 지리적 영역에 진입했다고 판단했을 때, 수행될 수 있다. 동작 시퀀스(580)는 또한 상대적인 아틀라스 그래프의 일부를 갱신할 때도 수행될 수 있다.
시퀀스는 582 블록에서 차량의 SATNAV 좌표를 수신하여 시작되고, 차량의 현재 위치에 대한 대략적인 추정을 제공한다. 또는, 다른 구현에서, 현재 위치는 사람 운영자의 수작업 입력(예를 들어, 우편번호, 위도/경도, 도시 및 주, 및/또는 거리 주소 등) 또는 다른 적당한 방식에 기반할 수 있다. 그런 다음 584 블록에서, 차량에 대한 루트(root) 타일이, 예를 들어, 차량의 현재 위치에 가장 가깝게 근사된 타일을 기반으로 결정될 수 있다. 예를 들어, 루트 타일은 ECEF 노드로부터 상대적인 아틀라스 그래프를 워크하여, 또는 타일 노드로부터 타일 노드까지 워크하여 차량의 현재 위치를 중복한 타일의 위치를 파악할 수 있다. 그런 다음, 586 블록에서, 루트 타일이 현재 위치로 사용되고, 상대적인 아틀라스 그래프가 미리 정해진 타일 수 만큼 중앙 위치로부터 밖으로 워크하여 차량에 배치될 타일 세트를 결정할 수 있다. 예를 들어, 일부 구현에서 루트 타일의 X 킬로미터 이내의 모든 타일들이 배치될 타일 세트에 통합될 수 있다. 그런 다음, 588 블록에서, 서브그래프가 상대적인 아틀라스 그래프로부터 추출되어 차량에 배치될 수 있고, 예를 들어, 다른 파일 또는 완전한 데이터 구조로 다운로드될 수 있다. 일부 구현에서, 서브그래프는 타일 노드들을 ECEF 노드들과 결합시키는 모든 타일 노드들 및 에지들을, 그 타일 노드들에 연결된 모든 엘리먼트 노드들 및 에지들 또는 선택된 타일 노드들로부터 미리 정해진 개수의 노드들 및 단계들 내 최소한의 엘리먼트 노드들과 함께 포함할 수 있다. 도시된 구현에서, 이 추출은 상대적인 아틀라스 그래프에 대한 마스터 상관 데이터베이스 내 노드 및 에지 테이블로부터 노드 레코드 및 에지 레코드 세트를 검색하도록 데이터베이스에 질의하여 구현될 수 있고, 배치는 간단히 추출된 레코드를 차량 내 국부 관계 데이터베이스 내 국부 노드 및 에지 테이블에 추가하는 것을 포함할 수 있다.
도 19를 보면, 이 도면은 외부 데이터를 상대적인 아틀라스 그래프에 불러오는 동작 시퀀스(600)의 예를 도시한 것이다. 외부 데이터는, 예를 들어, 외부 데이터 소스로부터 수집된 매핑 데이터, 예를 들어, 위성 사진, 구축 스케줄 및/또는 도로 변화, 거리 주소에 대한 위치 ("정문"), 혼잡 모델들, 명명된 관심 위치들, 폐쇄 스케줄 등을 포함한다. 외부 데이터는, 예를 들어, SAYNAV 좌표를 사용해 국지화될 수 있고, 그러한 경우, 동작 시퀀스는 602 블록에서 외부 데이터의 좌표를 ECEF 좌표로 변환하여 상대적인 아틀라스 그래프에 사용된 참조 프레임에 대한 대략적인 대응관계를 생성하여 시작할 수 있다. 그런 다음 604 블록은 미리 정해진 좌표 반경 내에서 하나 이상의 타일들을 식별하고, 606 블록은 외부 데이터로 나타내진 하나 이상의 엘리먼트들을 미리 정해진 반경 내에서 각 식별된 타일의 참조 프레임으로 투영할 수 있다. 투영은, 예를 들어, 타일-ECEF 에지에서 엘리먼트(들)의 ECEF 기반 좌표로의 변환을 외부 데이터에 적용하는 것에 기반할 수 있다.
660 블록은 또한 외부 데이터 내 엘리먼트들에 대한 하나 이상의 노드들 및/또는 에지들을 생성하거나 또는 하나 이상의 기존 노드들 및/또는 에지들에 데이터를 추가 또는 변경할 수 있다. 외부 데이터 내 엘리먼트들이 상대적인 아틀라스 시스템의 관점에서 새로운 엘리먼트들을 나타내면, 예를 들어, 신규 엘리먼트 노드들이 추가될 수 있고, 신규 에지들이 추가되어 신규 엘리먼트를 기존의 상대적인 아틀라스 그래프에 연결할 수 있다. 한편, 외부 데이터 내 엘리먼트들이 상대적인 아틀라스 그래프에 존재하는 엘리먼트에 해당하면, 거기에 연결된 기존 엘리먼트 노드들 및/또는 에지들이 적절하게 변경될 수 있다. 예를 들어, 외부 데이터가 지리적 영역에 대한 구축 관련 정보를 제공한다면, 기존 게이트에 대한 노드들은, 어떻게 구축이 차량의 게이트 주행을 변경할 수 있는지 (예를 들어, 감소된 속도 제한, 차선 폐쇄 등)를 설명하는 페이로드 데이터를 통합하도록 변경될 수 있고, 그에 따라 신규 노드들 또는 에지들은 요구되지 않을 것이다.
다음으로, 608 블록에 도시된 것처럼, 다른 예에서는 수정 와프(corrective warp)가 수행될 수 없더라도, 일부 예에서는 수정 와프가 수행되어 보다 정확하게 외부 데이터를 상대적인 아틀라스 그래프에 위치시킬 수 있다. 본질적으로 공간적인 외부 데이터로부터의 엘리먼트들은 상대적인 아틀라스 시스템 밖에서 생성되기 때문에, 예를 들어, 일정 정도의 포지션닝 및/또는 스케일링 오차를 포함할 수 있고, 그런 경우, 엘리먼트 세트를 상대적인 아틀라스 그래프에 덮어씌우고 상대적인 아틀라스 그래프에서 기존 엘리먼트들과 희소 대응관계(sparse correspondences) 구축을 시도할 수 있다. 그런 다음 희소 대응관계는, 모든 신규 엘리먼트 세트에 대한 비강체 변환을 생성하고 수정 와프를 그 엘리먼트 세트에 적용하는데 사용될 수 있고, 그에 따라 엘리먼트 세트 내 엘리먼트들의 상대적인 위치들을 조정하여 상대적인 아틀라스 그래프의 참조 프레임 내에 보다 잘 피팅(fitting)할 수 있다.
대체로, 상대적인 아틀라스 시스템은, 자율주행 차량들, 비자율주행 차량들 및 다양한 외부 데이터 소스들을 포함한 다양한 소스들의 데이터를 통합하고, 자율주행 차량의 제어와 연관된 많은 동작 기능들의 수행을 지원하는 다른 매핑 데이터와 함께 하나 이상의 지리적 영역들 내 엘리먼트들 사이의 상대적인 포즈를 정의하는 상대적인 아틀라스 그래프를 구축할 수 있음이 이해될 것이다. 또한, 주어진 동적 실세계의 본성 및 지리적 영역 내에서 동작하는 자율주행 차량들이 계속적으로 지리적 영역과 연관된 신규 매핑 데이터를 제공할 수 있다는 사실에서, 상대적인 아틀라스 시스템은 계속해서 시간에 따라 조절되고 적응되어 지리적 영역 내에서 발생하는 변화들을 반영할 수 있다. 또한, 엘리먼트들 사이에 상대적인 포즈들을 구축함으로써, 국부 충실도는 상대적인 포즈가 결정된 센서들 (예를 들어, 차량에 장착된 센서들)과 근접한 것뿐만 아니라 서로간에도 근접하는 엘리먼트들 사이의 상대적인 포즈들로 최적화될 수 있다.
당업자들이 이해하는 바와 같이, 상대적인 아틀라스의 생성 및 갱신을 위한 다른 변화들이 다른 구현에서 사용될 수 있다. 따라서 본 발명은 여기에서 설명된 특정 동작 시퀀스들로 제한되지 않는다.
상대적인 아틀라스 사용법
상술한 바와 같이, 상대적인 아틀라스 시스템은 자율주행 차량의 다수의 제어 서브시스템들에 의해 그 동작의 제어와 연결되어 사용될 수 있다. 특히, 상대적인 아틀라스 시스템에서 표현된 엘리먼트들 사이에서 정의된 상대적인 포즈들의 사용을 통해, 다양한 엘리먼트들이 자율주행 차량 제어에 사용하기 적합한 다양한 디지털 맵 형태로, 대체로 그 차량에 가까운 국부 충실도를 강조하는 방식으로 배치될 수 있다. 대체로, 엘리먼트들은 상대적인 아틀라스에 접속하여 차량에 근접한 지리적 영역에서 엘리먼트들을 식별하고, 상대적인 아틀라스에 접속하여 식별된 엘리먼트들 사이의 상대적인 포즈들을 판단하며, 그런 다음 결정된 상대적인 포즈들을 사용하여 디지털 맵 내에서 식별된 엘리먼트들을 배치함으로써 디지털 맵에 배치될 수 있다.
또한, 많은 예에서, 디지털 아틀라스 그래프가 사용되고, 엘리먼트들은 엘리먼트 노드들 사이를 워크하여 및 상대적인 포즈들 또는 엘리먼트 노드들을 연결하는 에지에 정의된 변환 함수들에 기반해 엘리먼트들을 배치하여 디지털 맵에 배치될 수 있다. 그런 다음, 예를 들어, 디지털 맵에 배치된 한 엘리먼트의 위치 또는 포즈가 주어지면, 다른 엘리먼트의 위치 또는 포즈는 그 한 엘리먼트의 위치 및 포즈로부터 두 엘리먼트에 대응하는 두 엘리먼트 노드들을 함께 연결하는 에지에 의해 정의된 상대적인 포즈를 사용하여 결정될 수 있다.
상술한 것처럼, 여기에서 설명된 기법들은 자율주행 차량의 제어와 연관된 다양한 동작 타입들과 연결하여 사용하는데 적합한 디지털 맵 생성에 사용될 수 있다. 도 20은, 예를 들어, 도 2의 1차 차량 제어 시스템 (120)을 사용하여 차량 궤적을 계획하고, 차량에 대한 궤적을 계획할 때 차량이 택할 수 있는 잠재 경로를 계획하는 디지털 맵을 사용하는 동작 시퀀스의 예를 도시한 것이다. 시퀀스(620)에서 수행된 최소한의 일부 동작들이 자율주행 차량으로부터 원격에서 (예를 들어, 도 1의 원격 차량 서비스(178)과 같은 원격 차량 서비스) 수행될 수 있음이 이해될 것이다. 많은 구현에서 동작 시퀀스(620)는 자율 차량에 대한 제어가 자율 차량의 외부 시스템과의 연결에 의존하지 않도록 자율 차량에 국한되는 것이 바람직할 수 있다.
시퀀스(620)는, 예를 들어, 자율주행 차량의 1차 제어 루프로 사용될 수 있고, 향후 일정 시간 프레임 (예를 들어, 다음 20초) 동안 차량에 대한 계획된 궤적을 계속 리프레시하도록 초당 수 차례 (초당 5 내지 10회 이상) 수행될 수 있다. 일부 구현에서, 수행 대상의 제어 정지가 자율주행 차량 또는 그 제어 시스템들 중 어느 것에 일어난 부정적인 이벤트가 되도록 제어된 정지 궤적이 계속해서 생성 및 리프레시될 수 있다.
620 시퀀스는 622 블록에서 차량 포즈를 액티브(active) 타일에서 결정하여 시작할 수 있다. 특히, 이 구현에서, 임의의 주어진 예에서, 액티브 타일로 지정된 단일 타일이 있고, 액티브 타일은 자율주행 차량의 바로 근처의 디지털 맵이 생성되고, 디지털 맵 내 차량의 위치 및 방향 (즉, 포즈)이 구축되는 기저 기준 프레임으로서 시작한다. 액티브 타일은 차량이 지리적 영역을 통과하면서 변할 수 있고, 로직은 시퀀스(620) 내 다른 액티브 타일로 동적으로 스위칭하는데 사용되어 이후에 명확해지는 것과 같이 일부 구현에 통합될 수 있다.
(도 22 및 23을 참조하여 후술된 과정에서) 액티브 타일의 기준 프레임 내 차량의 포즈가 구축된다면, 624 블록에서, 상대적인 아틀라스 그래프는, 예를 들어 타일 내 차량의 상대적인 포즈와 가장 가깝게 매칭하는 상대적인 포즈를 갖는 게이트에 기반하여, "워크하여" (즉, 노드들 사이의 에지들이 노드에서 노드로 횡단 이동된다) 최근접 게이트를 현재의 차량 포즈로 위치시킨다. 일부 구현에서, 예를 들어, 액티브 타일에 연결된 (즉, 타일에 연결된 타일-게이트 에지들에 저장된 것처럼) 모든 게이트 노드들에 대한 변환이 해석되어 현재 차량의 포즈에 가장 가까운 위치를 참조하는 변환을 찾을 수 있다.
가장 가까운 게이트의 위치가 파악된다면, 626 블록은 가장 가까운 게이트로부터 밖으로 워크하여 일부 또는 모든 인접 게이트들의 게이트 노드들 및 게이트-투-게이트(gate-to-gate)에지들을 통과하는 차량용 잠재 경로를 계획한다. 잠재 경로 계획에서, 게이트 노드들을 함께 연결하는 에지들 내 변환들에 의해 정의된 상대적인 포즈들이 맵 내의 각 게이트를 차량 포즈 주위에 배치하는 데 사용될 수 있고, 많은 구현에서 액티브 타일의 참조 프레임 또는 임의의 글로벌 참조 프레임은 고려되지 않는다.
도 21은, 예를 들어, 도 20의 622 내지 626 블록들을 사용하여 구축될 수 있는 2차원 디지털 맵(640)의 일부 예를 도시한 것이다. 2차원 디지털 맵의 사용은 단지 설명을 단순화하기 위한 것으로, 많은 구현에서 3차원 디지털 맵도 구축될 수 있음이 이해될 것이다. 이 도면에서 타일 T의 참조 프레임의 원점 (642)이 다양한 게이트들 (644) (게이트들 G0 내지 G4로 분리 표시) 및 경계들 (646)(경계들 B0 및 B1 로 분리 표시) 을 따라 도시되어 있다. 예를 들어, 622 블록에서 타일 T가 액티브 타일로 식별되어 있고, 변환 함수 Tr(T,V)를 갖는 차량 포즈 V가 참조번호 648로 식별된 위치에서 결정된다. 블록 (624)은 상대적인 아틀라스 그래프를 워크하여, 예를 들어 타일에 연결된 게이트들의 상대적인 포즈들을 분석하여, 다양한 게이트들 중 어느 것이 차량 포즈에 가장 가까운지를 식별할 수 있다. 그렇게 함으로써 변환 함수 Tr(T,G0) 를 갖는 게이트 G0 가 차량 포즈에 가장 가까운 것으로 결정될 수 있고, 변환 함수 Tr(V,G0) 는 게이트 G0의 참조 프레임 내 차량의 상대적인 포즈를 결정할 수 있다.
일부 구현에서, 예를 들어, 가장 가까운 게이트, 여기에서는 게이트 G0는 (도 21에 도시된 x, y축으로 나타내진) 상대적인 아틀라스 그래프로부터 생성된 디지털 맵에 대한 참조 프레임으로 사용될 수 있고, 모든 엘리먼트들은 가장 가까운 게이트에 상대적인 디지털 맵에 배치된다. 그러나 다른 구현에서, 차량 포즈는 참조 프레임으로 사용될 수 있고, 그에 따라 모든 엘리먼트들은 디지털 맵 내 차량 포즈에 상대적으로 배치된다. 다른 구현에서, 다른 참조 프레임이 사용될 수 있다.
참조 프레임이 구축된다면, 626 블록은 가장 가까운 게이트로부터 밖으로 워크하여 가장 가까운 게이트에 근접한 다른 엘리먼트들을 배치할 수 있다. 따라서, 예를 들어, 다음 조인트 게이트 G1 은 게이트들 G0 및 G1용 노드들을 연결하는 게이트-to-게이트 (조인트) 에지에 저장된 변환 Tr(G0,G1) 를 적용하여 디지털 맵에 포지셔닝될 수 있다. 게이트 G1 이 게이트들 G2 및 G4 에 연결된다고 가정하면, 이 게이트들은 게이트들 G2 및 G4용 노드들을 게이트 G1용 노드로 연결하는 에지들에 저장된 변환들 Tr(G1,G2) 및 Tr(G1,G4) 을 적용하여 디지털 맵에 포지셔닝될 수 있다. 변환들은 게이트 G1에 대해 계산된 위치로부터 적용될 수 있고, 또는 변환들 Tr(G0,G1) 을 (기능적으로 동일한) 게이트 G0 의 원점에 적용하는 것과 결합하여 각 변환을 적용할 수 있다.
유사하게, 게이트 G1이 경계 B0에 연결되고, 차례로 경계 B1에 연결되고, 게이트 G2도 다른 게이트 G3에 연결된다. 이 다른 엘리먼트들 각각에 대해, 해당 노드들을, 예를 들어, 변환들 Tr(G0, G1) 및 Tr(G1,B0)을 적용하여 경계 B0가 포지셔닝될 수 있고, 변환들 Tr(G0, G1) , Tr(G1,B0) 및 Tr(B0,B1)을 적용하여 경계 B1이 포지셔닝될 수 있고, 변환들 Tr(G0, G1) , Tr(G1,G2) 및 Tr(G2,G3)을 적용하여 게이트 G3이 포지셔닝될 수 있도록 해당 노드들을 연결하는 에지들에 변환들이 저장된다.
각 게이트 및 경계는 또한 타일 T에 연결된 타일-게이트 또는 타일-경계 에지들을 가질 수 있고, 그러한 각 에지는 타일의 참조 프레임 (예를 들어, 도 21에서 변환 Tr(T,G4)이 게이트 G4에 대해 도시된 경우에서 처럼) 내에서 해당 게이트 또는 에지의 상대적인 포즈를 정의하는 적절한 변환을 포함할 수 있다. 엘리먼트들과 타일들 사이의 변환들이 일부 구현들 및/또는 예에서 엘리먼트들의 배치에 사용될 수 있고, 여기에서 설명된 구현은 임의의 공통 또는 절대 참조 프레임보다는 엘리먼트들 자체 사이의 상대적인 포즈 및 변환들에 기반하여 엘리먼트들을 대부분 배치할 수 있음이 이해될 것이다. 그렇게 함으로써, 근처 엘리먼트들이 정확하게 서로에 대해 포지션닝되는 한, 서로 가장 가까운 엘리먼트들 사이의 상대적인 포즈들이 글로벌하게 일치할 필요가 없기 때문에 국부 충실도가 최척화될 수 있다. 임의의 글로벌 또는 절대 참조 프레임에 에 배해 가까이 포지셔닝된 엘리먼트들 세트에 일부 오차가 존재할 수 있다는 사실은, 그 양태들이 비교적 짧은 시간 프레임 동안 차량 차체에 대해 상대적인 엘리먼트들의 위치와 대부분 관련되어 있기 때문에, 자율주행 차량의 많은 양태에서는 다소 중요하지 않다. 또한, 상대적인 포즈의 오차가 누적되더라도, 직접 서로 연결되지 않지만 다른 엘리먼트들 체인을 통해 연결된 엘리먼트들 사이에서 다수의 변환들을 수행하는 경우, 이 오차들은 일반적으로 차량으로부터 비교적 멀리 떨어져 있는 엘리먼트들의 상대적인 포지셔닝에 영향을 미칠 것이고, 따라서 자율주행 차량 제어 시스템에게는 다소 중요성이 떨어진다. 비전문가의 용어로 말하지만, 하나의 물리적 경계가 차량으로부터 정확히 0.4576 미터 떨어진 것을 알 수 있음을 보증하는 것은 다른 물리적 경계가 차량으로부터 200 또는 202 미터에 있는지 여부보다는 자율주행 차량의 제어에 더 관련이 있다.
그럼에도 불구하고, 여기에서 설명된 상대적인 아틀라스 그래프 구조는 다양한 배치 방식을 지원함이 이해될 것이다. 일부 엘리먼트들의 상대적인 포즈들은 게이트들, 경계들, 타일들 및 다른 노드들의 높은 상호연결 특성에 의해 다수의 서로 다른 변환들의 결합을 사용해 결정될 수 있고, 그러한 경우, 여기에서 설명된 구조는 다수의 서로 다른 배치 전략과 연결되어 사용될 수 있다. 예를 들어, 모든 엘리먼트들이 최종적으로 단일 참조 프레임(예를 들어, ECEF 노드)으로 연결되고, 따라서 서로 다른 배치 전략들이 타일들과 ECEF 노드 사이, 서로 다른 타일들 사이, 엘리먼트들과 타일들 사이, 동일 타입의 엘리먼트들 사이, 및/또는 서로 다른 타입의 엘리먼트들 사이, 및 이들의 임의의 결합 사이의 변환들을 통해 포즈들을 결정할 수 있다. 따라서 본 발명은 여기에서 설명된 특정 배치 전략들로 제한되지 않는다.
도 20의 626 블록으로 돌아가서, 잠재적 경로 배치에서, 디지털 맵에 배치된 경계들은 또한 모든 잠재 경로들이 임의의 물리적, 또는 논리적 제한사항들을 위반하지 않음을 보증하는 것으로 간주된다. 또한, 게이트들 사이의 서로 다른 에지 타입들이, 예를 들어, 동일 차선을 따라 확장되는 경로들 사이, 차선변경을 나타내는 경로들 사이, 회전, 램프 진출, 램프 진입 등의 구분에 사용될 수 있다. 따라서 626 블록에 배치된 잠재 경로들은 차량이 특정 시간 프레임 내에서 추종하도록 허용될 수 있는 차량의 궤적 세트를 나타낼 수 있다.
일부 구현에서, 각 게이트는 게이트를 통과할 때 허용 가능한 차량의 위치 및 방향의 대표적인 위치와 방향을 포함할 수 있다. 그러나, 게이트들은 일부 구현에서 서로 약 3 내지 약 10미터 떨어져 있어 지리적 영역 내 경로들을 나타내는데 필요한 게이트 수를 적절하게 제한할 수 있다. 따라서, 잠재 경로 세트가 배치되었다면, 628 블록이 실행되어 경로를 업샘플(upsample)하여 경로 해상도를 증가시킨다. 일부 구현에서, 예를 들어, 게이트들의 위치 및 방향들이 배치될 수 있고, 커브들이 인접 게이트들 사이에 피팅되어 게이트들의 위치와 방향을 매칭하고, (연관 위치 및 방향들을 포함한) 추가 포인트들이 각 커브를 따라 추가될 수 있다. 그러나 다른 구현에서 업샘플링은 수행되지 않을 수 있다.
다음으로 630블록은, (예를 들어, 인식 서브시스템의 추적을 받을 수 있는) 차량 근처의 다양한 동적 객체들뿐만 아니라, 차량의 원하는 목적지, 교통 정보, 교통 통제 상태와 같은 추가 정보 외에 사용가능한 경로들에 기반하여 자율주행 차량용 궤적을 계획한다. 예를 들어, 일부 구현에서, 서로 다른 경로들이, 예를 들어, 동일 차선 내 주행이 차선 변경으로 편향되고, 동일 거리 또는 도로상의 주행이 다른 거리 또는 도로로 회전함으로써 편향되고, 보다 짧은 및/또는 보다 빠른 경로를 따른 주행이 보다 짧은 및/또는 보다 빠른 경로를 따라 편향되도록 가중치 또는 비용을 할당할 수 있다. 또한, 차량 속도 제어, 예를 들어, 정지신호, 또는 빨간 신호등에 정지하는 것, 다가오는 교통에 양보, 보행자 또는 다른 차량을 회피하는 것 또한 궤적에 적절하게 통합될 수 있다. 따라서 630 블록이 완료되면, 가까운 시간 안에 차량에 대한 궤적이 결정되고, 예를 들어, 도 1의 제어 서브시스템(158)에 대한 궤적 명령 시퀀스로 전달되어 제어 서브시스템이 차량 제어기를 사용하여 궤적을 구현하게 할 수 있다.
도 22 및 23을 보면, 이 도면들은, 예를 들어, 도 20의 622 블록을 참조하여 상술한 차량 포즈 결정에 사용될 수 있는 두 동작 시퀀스들 (660 및 680)을 도시한 것이다. 20. 특히 660 시퀀스는 부트스트랩 동작을 수행하여 차량 포즈를 결정할 액티브 파일을 선택한다. 그러한 경우, 660 시퀀스는 차량 궤적을 반복해서 계산하는 1차 제어 루프 내에서 실행되지 않고, 차량 시작 또는 차량이 특별 타일에 국지화되지 않는 임의의 시간에 실행될 수 있다. 예를 들어, 660 시퀀스는 도 2의 위치추적 서브시스템(152)의 부트스트랩 기능(206)에 해당할 수 있다.
660 시퀀스는, 예를 들어 도 1의 SATNAV 센서(132)에 기반하여, 차량에 대한 SATNAV 좌표를 결정하여 662 블록을 시작할 수 있다. 다음으로, 664 블록에서, SATNAV 좌표가 ECEF 노드로부터 변환되어 상대적인 아틀라스 그래프 내 하나 이상의 근처 타일들을 식별한다. 식별된 타일들로부터, 666 블록은 타일 하나를 차량 포즈 결정이 이뤄질 수 있는 액티브 타일로 선택한다. 예를 들어, 다른 요인들, 예를 들면, 차량이 인접 타일과 연결된 엘리먼트들에 기반하여 다른 인접 타일에 있을 가능성이 더 많은 지 여부 (예를 들어, 가장 가까운 타일이 차량 좌표에 해당하는 영역에 게이트들을 포함하지 않지만 인접 타일은 포함하는지 여부)가 다른 구현에서 액티브 타일을 선택하는데 사용될 수 있더라도, 액티브 타일은 차량에 대해 SATNAV 좌표에 가장 가까운 중심을 갖는 타일로 선택될 수 있다.
도 23의 680 시퀀스는 예를 들어 도 20의 622 블록에서 차량의 제1 제어 루프에서 실행될 수 있고, 일반적으로 도 2의 위치추적 서브시스템(152)의 맵 포즈 기능(200)에 해당할 수 있다. 이 구현에서, 각 타일 노드는 페이로드 데이터로서 타일로 나타내진 지리적 영역의 표면 모델을 포함한다고 가정한다. 표면 모델은, 예를 들어, 차량 로그로부터 센서 데이터 (예를 들어, LIDAR 데이터)를 수집하고, 차량이 타일을 주행할 때 서로 다른 포즈로부터 수집된 측정들을 함께 조합하여 생성될 수 있다. 표면 모델의 대표 기하 데이터를 저장하는 다양한 방법들이 서로 다른 구현에서 사용될 수 있고, 그 결과로 나온 표면 모델이 차량이 타일 내 특정 위치 이내에 정렬될 수 있게 충분히 보여주는 해상도로 저장 공간의 균형을 이룰 수 있다. 또한, 일부 구현에서, 표면 모델의 대표 기하 데이터는 타일 노드의 페이로드 내에서 보다는 상대적인 아틀라스 그래프 내에서 서로 다른 노드로 표현될 수 있고, 그에 따라 타일용 표면 모델은 최소한 부분적으로 상대적인 아틀라스 그래프 내 복수의 노드들 사이에 배포된 기하 데이터에 기반하여 구축될 수 있다.
따라서 도 23의 680 시퀀스는 682 블록에서 센서 데이터 (예를 들어, LIDAR 데이터)를 포인트 클라우드에 조합하여 차량으로부터 현재 볼 수 있는 표면들을 나타내어 시작된다. 다음의 684 블록은 정렬용 타일을 선택한다. 예를 들어, 많은 예에서, 도 22의 660 시퀀스로부터 선택된 액티브 타일이 선택될 수 있다. 그러나, 다른 예에서, (예를 들어 차량이 타일 경계에 접근하고 있을 때) 차량의 움직임 및 위치에 기반하여 액치브 타일을 다른 타일들로 동적으로 절환하는 로직을 통합하는 것이 바람직할 수 있다.
다음으로 668 블록은 상대적인 아틀라스 그래프로부터, 예를 들어, 활성 타일에 해당하는 타일 노드 내 페이로드 데이터로부터 기하 데이터에 액세스하여, 장면(scene)용 표면 모델을 구축한다. 그런 다음 688 블록은 포인트 클라우드를 표면 모델로 투영하고, 690 블록은 포인트 클라우드를 표면 모델과 정렬하여, 예를 들어, 포인트 클라우드를 표면 모델과 가장 가깝게 정렬시키는 차량의 위치 및 방향을 식별한다. 장면 내에서 동적 또는 이동하는 객체의 존재에 의해 포인트 클라우드의 최상의 핏(fit)은 표면 모델과 동일하게 매칭되지 않을 수 있음이 이해될 것이다; 그러나 그러한 예에서도 일반적으로 장면 내 차량의 단일 포즈가 결정될 수 있다.
다음으로, 692 블록이 선택적으로 실행되어, 690 블록으로부터의 최적 정렬에 기반하여 상대적인 아틀라스 그래프 내 하나 이상의 엘리먼트들을 "밀어낸다(nudge)". 따라서, 예를 들어, 상대적인 아틀라스 그래프에 표현된 물리적 경계가 기대한 것보다 2.3 cm 더 가까운 것으로 감지된다면, 물리적 경계에 대응하는 경계 노드에 대한 변환이 변경되어 경계의 상대적인 포즈를 조정하고, 예를 들어, 경계 노드에 연결된 하나 이상의 에지들에 대한 상대 포즈를 갱신함으로써, 센서 데이터를 보다 정확하게 반영할 수 있다. 그래프에 일어난 변화는 또한 그래프가 자율주행 차량들에 대한 감지된 관측들에 기반하여 시간에 따라 진화하도록 원격/클라우드 서비스 (예를 들어, 도 1의 서비스(178)), 또는 다른 자율주행 차량으로 전파될 수 있다. 안정성을 갖는 상대적인 아틀라스 그래프에 대한 변화의 균형을 맞추기 위해 다양한 제어가 구현되어, 예를 들어, 엘리먼트 포즈들은 변화가 다수의 차량들에 의해 감지될 때 및/또는 다수의 트립들(trips)이 동일 지리적 영역을 통과한 후에만 변경됨이 이해될 것이다.
그런 다음 694 블록은, 예를 들어, 포인트 클라우드의 표면 모델과의 최적 정렬에 해당하는 차량의 위치 및 방향을 결정함으로써, 액티브(선택된) 타일의 참조 프레임 내 차량 포즈를 결정한다. 그런 다음, 그 동작 시퀀스는 완료된다. 도시된 구현에서, SATNAV 데이터는 일반적으로 제1 제어 루프가 차량의 SATNAV 도출 위치의 비가용성에 의해 손상되지 않도록 위치파악을 위한 제1 제어 루프에 사용되지 않는다.
도 24는 차량 포즈 결정을 위한 다른 동작 시퀀스(700)를 도시한 것이다. 시퀀스(700)에서, 타일 선택 및 그 단일 타일용 표면 모델에 대한 정렬 수행 이외에, 표면 모델들이 다수의 타일들에 대해 결정될 수 있고, 다수의 표면 모델들에 대해 정렬이 수행되어 액티브 타일로 사용하도록 최적 타일을 결정한다. 따라서, 700 시퀀스는 702 블록에서 정렬을 수행할 대상으로, 예를 들어, 이전 액티브 타일 및 그 타일의 이웃 타일들에 기반하여 타일 세트를 선택하여 시작한다. 다음으로, 704 블록은 도 23의 682 블록과 유사한 포인트 클라우드에 센서 데이터를 결합하고, 706 블록은, 예를 들어, 타일 세트에 해당하는 각 타일 노드의 페이로드에 저장된 기하 데이터를 사용하여, 세트 내 각 타일에 대한 표면 모델을 구축할 수 있다. 그런 다음 708 블록은 포인트 클라우드를 표면 모델로 투영하고, 710 블록은 포인트 클라우드를 각 타일용 표면 모델과 정렬하여, 예를 들어, 도 23의 블록들 (688 및 690)과 유사하게 포인트 클라우드를 표면 모델과 가장 가깝게 정렬시키는 차량의 위치 및 방향을 식별한다. 그런 다음 712 블록은 포인트 클라우드 및 표면 모델의 최적 정렬이 일어난 타일, 즉, 포인트 클라우드와 표면 모델 사이에서 가장 가까운 매칭이 발견된 타일을 선택한다.
다음으로, 714 블록이 선택적으로 실행되어, 도 23의 692 블록과 유사하게, 714 블록으로부터의 최적 정렬에 기반하여 상대적인 아틀라스 그래프 내 하나 이상의 엘리먼트들을 "밀어낸다". 그런 다음 716 블록은, 예를 들어, 포인트 클라우드의 표면 모델과의 최적 정렬에 해당하는 차량의 위치 및 방향을 결정함으로써, 액티브(선택된) 타일의 참조 프레임 내 차량 포즈를 결정한다. 그런 다음, 그 시퀀스는 완료된다.
차량 포즈를 결정하는 다른 방식들이 다른 구현에서 사용될 수 있다. 따라서 본 발명은 여기에서 설명된 특정 동작 시퀀스들로 제한되지 않는다.
본 발명에 따르는 상대적인 아틀라스 그래프가 자율주행 차량을 제어하는 다른 양태와 연결되어 사용될 수 있음이 이해될 것이다. 일부 실시예들에서, 예를 들어, 경계들은 차량 위치 추적 및/또는 계획에 배치 및 사용될 수 있다. 또한, 도 2의 인식 서브시스템(154)은, 예를 들어, 상대적인 아틀라스 그래프를 사용하여 환경 내 동적 객체들의 움직임을 식별 및/또는 예측할 수 있다. 예를 들어, 인식 시스템은 감지된 데이터 및 상대적인 아틀라스 그래프 내 정적인 객체들의 프로파일들 간의 차에 기반하여, 상대적인 아틀라스 그래프 내 기하 데이터 및/또는 다른 매핑 데이터를 사용함으로써 차량과 같이 이동 또는 궤적을 그리는 객체들과 환경 내에서 보다 정적인 객체인 보행자를 구별할 수 있다. 인식 시스템은 또한 지리적 영역 내 게이트들 및 경계들에 대한 지식을 사용하여 환경 내 다른 차량들의 움직임을 예측할 수 있다.
또한, 도 25의 동작 시퀀스 (720)로 도시된 것처럼, 인식 서브시스템 (예를 들어, 도 2에 도시된 교통 장치 추정 기능)은 또한 상대적인 아틀라스 그래프를 사용하여 지리적 영역 내 교통 통제 상태를 추정할 수 있다. 예를 들어, 720 시퀀스는 722 블록에서 상대적인 아틀라스 그래프를 워크하여 현재 차량 포즈의 미리 결정된 거리 (예를 들어, 반경) 이내에 있는 교통 장치들을 식별할 수 있다. 도 14를 참조하여 설명된 것처럼, 교통 장치들은 일부 구현에서 수 개의 타일만큼 떨어져 보일 수 있고, 따라서 가능하다면 수 개의 타일들을 구성하는 비교적 큰 영역 내에서 교통 장치들을 평가하는 것이 바람직할 수 있다.
다음으로, 724 블록은 센서 데이터에서 각 교통 장치의 위치, 예를 들어, 카메라와 같은 센서의 시야 내 위치의 예측을 시도한다. 그 예측은, 예를 들어, 현재의 차량 포즈, 개별 교통 장치용 노드를 타일에 연결하는 타일-교통 장치 에지에 저장된 변환, 및 센서 데이터 수집에 사용된 센서의 교정 관련 변환에 기반할 수 있다. 타일-교통 장치 에지 내 변환은 또한 교통 장치의 고도를 특정할 수 있고, 일부 예에서, 교통 장치가 센서 데이터 내에서 볼 수 있어야 하는 바운딩 박스를 정의할 수 있다. 앞에서 논의된 바와 같이, 일부 구현에서는 교통 장치용 노드를 차량이 현재 위치한 타일용 노드로 연결하는 타일-교통 장치 에지 내 변환을 사용하는 것이 바람직할 수 있다. 그렇게 함으로써, 차량의 현재 포즈 및 그에 따라 센서 데이터가 수집된 관점이 교통 장치의 위치가 원래 결정되었던 관점과 더욱 가깝게 매칭될 수 있고, 따라서 교통 장치를 센서 데이터 내에 보다 잘 위치시킬 수 있다.
그런 다음 726 블록은 이미지를 캡쳐한다. 예를 들어, 일부 구현예에서 교통 장치의 상태는 카메라로부터 캡쳐된 이미지로부터 결정될 수 있고, 따라서 726 블록은 일부 구현에서 카메라로 정지 프레임 이미지를 캡쳐할 수 있다.
다음으로 728 블록은 캡쳐된 이미지로부터 다양한 교통 장치들의 예측된 위치들에 대한 바운딩 박스들을 추출하고, 730 블록은, 예를 들어, 이미지 분류기(image classifier)를 사용하여 추출된 이미지 데이터를 처리하여 각 교통 장치에 현재 상태를 판단한다. 예를 들어, 그 상태는 복수의 신호등 중 어느 신호등이 켜져 있는지를 특정하거나, 교통 장치 노드에 인코딩된 교통 장치 타입에 적절한 복수의 상태들로부터 선택될 수 있다. 예를 들어, 도 12의 교통 장치(444)의 경우, 결정된 상태는 다른 구현에서 "상부 등 점등", "적색 등 점등", 또는 "교통 정지"에 대응할 수 있다.
상술한 것처럼, 단일 교통 제어로 함께 연결된 다수의 교통 장치들은 일반적으로 교통 제어를 위한 전체 상태를 정의하고, 그런 경우, 732 블록은 각 제어에 대한 모든 교통 장치들의 개별 상태를 결합하여 각 교통 제어에 대한 해당 상태를 결정할 수 있다. 그런 다음, 그 상태들은 734 블록에서 리턴되고 720 시퀀스가 완료된다.
상대적인 아틀라스 그래프에 저장된 매핑 데이터의 다른 사용은 본 개시의 이익을 갖는 당업자에게 명백할 것이다. 따라서 본 발명은 여기에서 설명된 특별 사용법에 제한되지 않는다.
따라서 상대적인 아틀라스 그래프가 자율주행 차량의 제어와 연관된 다수의 다른 동작들에 사용가능한 매핑 데이터를 유지할 수 있음이 이해될 것이다. 예를 들어, 도 2의 위치추적 서브시스템(152)으로 나타낸 위치추적은 차량 포즈 결정과 연결되어 그 페이로드에 저장된 타일 노드 및 표면 기하를 사용할 수 있다. 예를 들어, 도 2의 계획 서브시스템(156)으로 나타낸 계획은 차량의 궤적 계획과 연결되어 게이트 및/또는 경계 노드들과 같은 엘리먼트 노드들을 사용할 수 있다. 유사하게, 도 2의 인식 서브시스템(154)은 환경 내에서 게이트 및/또는 경계 노드들을 사용하여 차량들을 추적할 수 있고, 교통 노드들을 사용하여 환경 내에서 다양한 교통 통제 상태를 결정할 수 있다.
또한, 일부 예에서, 계획 및/또는 인식 서브시스템들(154 및 156)에 의해 수행된 일부 또는 모든 동작들은, 타일들에 관련된 엘리먼트들이 포지션닝에 의존하지 않고, 서로 다른 엘리먼트 노드들 사이에서 에지들로 인코딩된 상대적인 포즈들을 기반으로 한 환경 내 엘리먼트들의 포지셔닝에 기반할 수 있다. 달리 말하면, 타일 노드들 및 타일 노드들과 엘리먼트 노드들 사이의 에지들로 인코딩된 변환들은 일부 구현에서 디지털 맵에서 엘리먼트들을 포지셔닝하는데 사용되지 않을 수 있다.
여기에서 기술된 상대적인 아틀라스 그래프 아키텍쳐는 또한 환경의 양태들에 대한 식별뿐만 아니라 배치 면에서도 실질적인 유연성을 제공한다. 노드 및 에지 그래프 아키텍쳐의 양방향 특성은, 예를 들어, "교통 제어가 주어지면, 이 교통 제어가 어느 게이트에 영향을 미치는가"뿐만 아니라 "게이트가 주어지면, 어느 교통 제어가 그 게이트에 영향을 주는가"와 같은 질의를 가능하게 하는 것이다.
다른 변경이 당업자에게 명확할 것이다. 따라서 본 발명은 첨부된 특허청구범위에 속한다.

Claims (52)

  1. 자율주행 차량에서 사용되기 위한 매핑 데이터를 생성하는 방법에 있어서:
    지리적 영역에 대한 복수의 관측을 수신하는 단계; 및
    상기 지리적 영역에 대한 상기 복수의 관측에 기반하여 상기 지리적 영역에 대한 상대적인 아틀라스 그래프를 생성하는 단계를 포함하고, 상기 생성하는 단계는:
    상기 복수의 관측들로부터 검출된 복수의 엘리먼트들에 대한 복수의 엘리먼트 노드들을 생성하고, 각 엘리먼트 노드는 상기 복수의 엘리먼트들 중에서 연관된 엘리먼트를 갖는 단계;
    복수의 에지들을 생성하고, 각 에지는 상기 복수의 엘리먼트 노드들 중 한 쌍의 엘리먼트 노드들을 연결하고 상기 한 쌍의 엘리먼트 노드들에 대한 상기 연관된 엘리먼트들 사이의 상대적인 포즈를 정의하는 단계; 및
    상기 복수의 엘리먼트 노드들 및 상기 복수의 에지들을 상기 상대적인 아틀라스 그래프 내에 저장하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 각 에지는 상기 연결된 엘리먼트 노드 쌍의 상기 연관된 엘리먼트들 사이의 상기 상대적 포즈를 정의하는 변환 필드를 포함하는, 방법.
  3. 청구항 1에 있어서, 상기 복수의 엘리먼트 노드들 및 상기 복수의 에지들을 상기 상대적인 아틀라스 그래프 내에 저장하는 단계는 상기 복수의 엘리먼트 노드들을 노드 테이블 내 레코드로 저장하는 단계 및 상기 복수의 에지들을 에지 테이블 내 레코드로 저장하는 단계를 포함하는, 방법.
  4. 청구항 3에 있어서, 상기 노드 테이블 및 상기 에지 테이블은 관계형(relational) 데이터베이스에 유지되는, 방법.
  5. 청구항 1에 있어서, 상기 복수의 엘리먼트 노드들 각각은 상기 연관된 엘리먼트에 대한 식별자를 포함하는 식별자 필드를 포함하고, 상기 복수의 에지들 각각은 그에 따라 연결된 상기 엘리먼트 노드 쌍에 대한 상기 연관 엘리먼트들에 대한 식별자들을 포함하는 제1 및 제2 식별자 필드들을 포함하는, 방법.
  6. 청구항 1에 있어서, 상기 복수의 엘리먼트 노드들 각각은 각 엘리먼트 노드를 특징짓는 타입을 특정하는 타입 필드를 포함하고, 상기 복수의 에지들 각각은 각 에지를 특징짓는 타입을 특정하는 타입 필드를 포함하는, 방법.
  7. 청구항 6에 있어서, 상기 복수의 엘리먼트 노드들 각각은 엘리먼트 특정 데이터를 포함하는 페이로드 필드를 포함하고, 상기 복수의 에지들 각각은 에지 특정 데이터를 포함하는 페이로드 필드를 포함하는, 방법.
  8. 청구항 7에 있어서, 상기 복수의 엘리먼트 노드들 중 제1 엘리먼트 노드에 대한 상기 페이로드 필드 내 상기 엘리먼트 특정 데이터는 상기 제1 엘리먼트 노드의 상기 타입 필드에 특정된 상기 타입에 기반하여 구조가 결정되고, 상기 복수의 에지들 중 제1 에지에 대한 상기 페이로드 필드 내 상기 에지 특정 데이터는 상기 제1 에지의 상기 타입 필드에 특정된 상기 타입에 기반하여 구조가 결정되는, 방법.
  9. 청구항 1에 있어서, 상기 상대적인 아틀라스 그래프를 생성하는 단계는:
    상기 지리적 영역에 대한 복수의 타일 노드들를 생성하고, 각 타일 노드는 상기 지리적 영역의 일 지역을 나타내는 단계; 및
    제2 복수의 에지들을 생성하고, 상기 제2 복수의 에지들의 각 에지는 상기 복수의 엘리먼트 노드들 중 하나의 엘리먼트 노드를 상기 복수의 타일 노드들 중 하나의 타일 노드에 연결하고, 상기 연결된 타일 노드에 대한 참조 프레임 내 상기 연결된 엘리먼트 노드에 대한 상기 연관된 엘리먼트의 상대적인 포즈를 정의하는 단계를 더 포함하는, 방법.
  10. 청구항 9에 있어서, 상기 제2 복수의 에지들은 제1 및 제2 에지들을 포함하고, 상기 제1 에지는 상기 복수의 엘리먼트 노드들 중 제1 엘리먼트 노드를 상기 복수의 타일 노드들 중 제1 타일 노드로 연결하고, 상기 제1 타일 노드에 대한 상기 참조 프레임 내 상기 제1 엘리먼트 노드에 대한 상기 연관 엘리먼트의 상대적인 포즈를 정의하고, 상기 제2 에지는 상기 제1 엘리먼트 노드를 상기 복수의 타일 노드들 중 제2 타일 노드로 연결하고 상기 제2 타일 노드에 대한 상기 참조 프레임 내 상기 제1 엘리먼트 노드에 대한 상기 연관 엘리먼트의 상대적인 포즈를 정의하는, 방법,
  11. 청구항 10에 있어서, 상기 제1 및 제2 타일 노드들을 연결하고, 상기 제1 및 제2 타일들 사이의 상대적인 포즈를 정의하는 타일-타일 에지를 생성하는 단계를 포함하는, 방법.
  12. 청구항 10에 있어서,
    고정된 참조 포인트를 정의하는 고정된 참조 노드를 생성하는 단계; 및
    상기 제1 및 제2 타일 노드들을 각각 상기 고정된 참조 노드로 연결하고, 상기 제1 및 제2 타일들 및 상기 고정된 참조 포인트 사이의 상대적인 포즈들을 각각 정의하는 제1 및 제2 고정 참조 에지들을 생성하는 단계를 더 포함하는, 방법.
  13. 청구항 12에 있어서, 상기 고정된 참조 포인트는 지구중심고정좌표계 (ECEF) 참조 포인트인, 방법.
  14. 청구항 12에 있어서, 상기 복수의 엘리먼트 노드들은 상대적인 포즈들이 상기 복수의 엘리먼트들 및 상기 고정된 참조 포인트 사이에서 정의되지 않도록 에지들에 의해 상기 고정된 참조 노드로 직접 연결되지 않는, 방법.
  15. 청구항 9에 있어서, 상기 제1 타일 노드로 나타내진 상기 지리적 영역의 상기 지역의 적어도 일부에 대한 표면 모델을 정의하는 기하 데이터를 상기 제1 타일 노드에 저장하는 단계를 더 포함하는, 방법.
  16. 청구항 1에 있어서, 상기 복수의 엘리먼트 노드들은 복수의 게이트 노드들을 포함하고, 각 게이트 노드는 지리적 영역 내 허용가능한 차량 포즈를 나타내는 게이트를 정의하는, 방법.
  17. 청구항 16에 있어서, 상기 복수의 엘리먼트 노드들을 생성하는 단계는 상기 지리적 영역을 횡단하는 하나 이상의 차량들에 의해 수집된 하나 이상의 차량 로그들 내 하나 이상의 횡단 경로들에 기반하여 상기 복수의 게이트 노드들을 생성하는 단계를 포함하는, 방법.
  18. 청구항 16에 있어서, 상기 복수의 에지들은 상기 복수의 에지들 중 게이트 노드 쌍들을 연결하는 복수의 게이트-게이트 에지들을 포함하고, 각 게이트-게이트 에지는 상기 게이트 노드 쌍들 각각에 의해 정의된 게이트 쌍 사이의 허용가능한 차량 경로를 정의하는, 방법.
  19. 청구항 18에 있어서, 상기 복수의 게이트-게이트 에지들 중 제1 게이트-게이트 에지는 도로의 동일 차선을 나타내는 상기 복수의 게이트 노드들 중 제1 및 제2 게이트 노드들을 연결하는, 방법.
  20. 청구항 18에 있어서, 상기 복수의 게이트-게이트 에지들 중 제1 게이트-게이트 에지는 하나 이상의 도로의 서로 다른 차선들을 나타내는 상기 복수의 게이트 노드들 중 제1 및 제2 게이트 노드들을 연결하는, 방법.
  21. 청구항 18에 있어서, 상기 복수의 엘리먼트 노드들은 복수의 경계 노드들을 더 포함하고, 각 경계 노드는 지리적 영역 내 차량 이동을 제한하는 물리적 또는 가상의 경계를 정의하는, 방법.
  22. 청구항 21에 있어서, 상기 복수의 엘리먼트 노드들을 생성하는 단계는 상기 지리적 영역을 횡단하는 하나 이상의 차량들에 의해 수집된 하나 이상의 차량 로그들 내 관측들에 기반하여 상기 복수의 경계 노드들을 생성하는 단계를 포함하는, 방법.
  23. 청구항 21에 있어서, 상기 복수의 에지들은 상기 복수의 경계 노드들 중 경계 노드 쌍들을 연결하는 복수의 경계-경계 에지들을 포함하고, 각 경계-경계 에지는 상기 경계 노드 쌍들 각각에 의해 정의된 경계 쌍 사이의 상대적인 포즈를 정의하는, 방법.
  24. 청구항 21에 있어서, 상기 복수의 에지들은 복수의 경계-게이트 에지들을 더 포함하고, 각각은 상기 복수의 게이트 노드들 중 하나의 게이트 노드를 상기 복수의 경계 노드들 중 하나의 경계 노드와 연결하고, 그에 따라 연결된 상기 게이트 노드 및 경계 노드에 의해 각각 정의된 게이트 및 경계 사이의 상대적인 포즈를 정의하는, 방법.
  25. 청구항 1에 있어서, 상기 복수의 노드들은 복수의 교통 노드들을 포함하고, 각 교통 노드는 지리적 영역 내 교통 제어기와 연관되는, 방법.
  26. 청구항 25에 있어서, 상기 복수의 엘리먼트 노드들을 생성하는 단계는 상기 지리적 영역을 횡단하는 하나 이상의 차량들에 의해 수집된 하나 이상의 차량 로그들 내 관측들에 기반하여 상기 복수의 교통 노드들을 생성하는 단계를 포함하는, 방법.
  27. 청구항 26에 있어서, 상기 복수의 엘리먼트 노드들을 생성하는 단계는:
    상기 지리적 영역의 이미지들 내에서 검출된 교통 장치들을 바운딩하는 바운딩 박스들을 생성하는 단계;
    상기 지리적 영역 내 상기 바운딩 박스들에 의해 바운드된 교통 장치들의 위치들을 삼각측량하는 단계; 및
    상기 교통 장치들의 상기 삼각측량된 위치들에 대응하는 상대적인 포즈들을 하나 이상의 교통 노드들에 연결된 에지들에 저장하는 단계를 포함하는, 방법.
  28. 청구항 25에 있어서, 상기 복수의 교통 노드들은 조절된 지리적 영역에 대한 교통 제어를 정의하는 제어 노드, 각 교통 장치 노드가 상기 조절된 지리적 영역 내 교통 장치를 정의하는 복수의 교통 장치 노드들, 및 상기 조절된 지리적 영역의 통로들을 정의하는 복수의 통로 노드들을 포함하고, 상기 복수의 에지들은 상기 복수의 교통 장치 노드들을 상기 제어 노드로 연결하는 교통 장치-제어 에지들 및 상기 복수의 통로 노드들을 상기 제어 노드로 연결하는 제어-통로 에지들을 포함하는, 방법.
  29. 청구항 28에 있어서, 상기 복수의 에지들은 상기 복수의 교통 장치 노드들 중 교통 장치 노드들을 상기 복수의 노드들 중 하나 이상의 타일 노드들로 연결하고, 각각은 교통 노드들에 의해 정의된 교통 장치들과 상기 하나 이상의 타일 노드들 각각에 의해 정의된 하나 이상의 타일들 사이의 상대적인 포즈들을 정의하는 교통 장치-타일 에지들을 더 포함하는, 방법.
  30. 청구항 29에 있어서, 상기 복수의 에지들은 상기 복수의 통로 노드들 중 통로 노드들을 상기 복수의 엘리먼트 노드들 중 하나 이상의 게이트 노드들로 연결하여 상기 교통 제어기에 의해 제어되는 게이트들을 정의하는 통로-게이트 에지들을 더 포함하는, 방법.
  31. 청구항 1에 있어서, 상기 생성된 상대적인 아틀라스 그래프를 제2 지리적 영역에 대한 다른 상대적인 아틀라스 그래프와 융합하는 단계를 더 포함하는, 방법.
  32. 청구항 1에 있어서,
    상기 복수의 관측들 중 하나 이상의 관측들에 기반하여 상기 지리적 영역 내 제1 엘리먼트를 검출하는 단계;
    상기 복수의 엘리먼트 노드들 중 제1 엘리먼트 노드는 상기 제1 엘리먼트에 대한 것으로 판단하는 단계; 및
    상기 복수의 관측들 중 하나 이상의 관측들에 기반하여 제2 엘리먼트에 대한 제2 엘리먼트 노드로 상기 제1 엘리먼트 노드를 연결하는 제1 에지에 의해 정의된 상대적인 포즈를 변경하여 상기 제2 엘리먼트에 대해 상기 제1 엘리먼트를 재배치하는 단계를 더 포함하는, 방법.
  33. 청구항 32에 있어서, 상기 제2 엘리먼트 노드는 제2 에지에 의해 제3 엘리먼트에 대한 제3 엘리먼트 노드에 연결되고, 상기 제1 에지에 의해 정의된 상기 상대적인 포즈를 변경하는 것은, 상기 제1 에지에 의해 정의된 상기 상대적인 포즈의 변경이, 상기 제2 에지에 의해 정의된 상기 상대적인 포즈를 변경하지 않고 상기 제3 엘리먼트에 대해 상기 제1 엘리먼트를 재배치하도록 상기 제2 에지에 의해 정의된 상대적인 포즈를 변경하지 않고 수행되는, 방법.
  34. 청구항 1에 있어서, 하나 이상의 자율주행 차량들 내 상기 복수의 관측들을 수집하는 단계를 더 포함하는, 방법.
  35. 청구항 1에 있어서, 상기 상대적인 아틀라스 그래프를 생성하는 단계는 자율주행 차량에 의해 수행되는, 방법.
  36. 청구항 1에 있어서, 상기 상대적인 아틀라스 그래프를 생성하는 단계는 하나 이상의 자율주행 차량들과 떨어져서 통신하는 컴퓨터 시스템에 의해 수행되는, 방법.
  37. 청구항 36에 있어서, 상기 상대적인 아틀라스 그래프의 적어도 일부를 무선 통신 네트워크를 통해 상기 하나 이상의 자율주행 차량들 중 적어도 하나에 배치하는 단계를 더 포함하는, 방법.
  38. 청구항 36에 있어서,
    하나 이상의 관측들에 응답하여 상기 상대적인 아틀라스 그래프를 변경하는 단계; 및
    상기 변경된 상대적인 아틀라스 그래프에서 하나 이상의 변경들을 상기 복수의 자율주행 차량들 중 하나 이상에게 전파하는 단계를 더 포함하는, 방법.
  39. 청구항 1에 있어서, 외부 데이터를 상기 상대적인 아틀라스 그래프에 불러오는 단계를 더 포함하고, 상기 불러오는 단계는:
    상기 외부 데이터를 고정된 참조 프레임으로 변환하는 단계;
    상기 고정된 참조 프레임 내 상기 외부 데이터에 근접한 하나 이상의 타일들을 각각 정의하는 상기 상대적인 아틀라스 그래프 내 하나 이상의 타일 노드들을 식별하는 단계;
    상기 외부 데이터를 상기 하나 이상의 타일들 각각에 대한 참조 프레임에 투영하는 단계;
    상기 외부 데이터로 나타내진 하나 이상의 엘리먼트들에 대한 하나 이상의 엘리먼트 노드들을 생성하는 단계;
    상기 하나 이상의 엘리먼트 노드들을 상기 하나 이상의 타일 노드들에 연결하는 하나 이상의 에지들을 생성하고, 상기 하나 이상의 에지들 각각은 상기 하나 이상의 타일들 중 하나의 타일에 대한 참조 프레임 내에서 상기 하나 이상의 엘리먼트들 중 하나의 엘리먼트에 대한 상대적인 포즈를 정의하는 단계;
    상기 생성된 하나 이상의 엘리먼트 노드들 및 하나 이상의 에지들을 상기 상대적인 아틀라스 그래프에 추가하는 단계에 의해 수행되는, 방법.
  40. 청구항 39에 있어서, 상기 외부 데이터를 불러오는 단계는 상기 외부 데이터 및 상기 상대적인 아틀라스 그래프에서 정의된 하나 이상의 기존 엘리먼트들 사이의 희소 대응관계(sparse correspondences)에 기반하여 상기 외부 데이터에 대한 수정 와프(corrective warp)를 수행하는 단계를 더 포함하는, 방법.
  41. 장치에 있어서,
    메모리;
    상기 메모리에 결합된 하나 이상의 프로세서들; 및
    자율주행 차량에 사용되기 위한 매핑 데이터를 생성하도록 상기 하나 이상의 프로세스들에 의해 실행가능한 컴퓨터 명령들을 포함하고, 상기 컴퓨터 명령들은 지리적 영역에 대한 복수의 관측들에 기반하여 상기 메모리 내에서 상기 지리적 영역에 대한 상대적인 아틀라스 그래프를 생성하도록 구성되고, 상기 상대적인 아틀라스 그래프는:
    상기 복수의 관측들로부터 검출된 복수의 엘리먼트들에 대한 복수의 엘리먼트 노드들을 생성하고, 각 엘리먼트 노드는 상기 복수의 엘리먼트들 중에서 연관된 엘리먼트를 갖는 것;
    복수의 에지들을 생성하고, 상기 각 에지는 상기 복수의 엘리먼트 노드들 중 한 쌍의 엘리먼트 노드들을 연결하고 상기 한 쌍의 엘리먼트 노드들에 대한 상기 연관된 엘리먼트들 사이의 상대적인 포즈를 정의하는 것; 및
    상기 복수의 엘리먼트 노드들 및 상기 복수의 에지들을 상기 메모리 내 상기 상대적인 아틀라스 그래프 내에 저장하는 것에 의해 생성되는, 장치.
  42. 청구항 41에 있어서, 상기 장치는 자율주행 차량을 포함하는, 장치.
  43. 청구항 41에 있어서, 상기 장치는 하나 이상의 자율주행 차량들과 떨어져서 통신하는 컴퓨터 시스템을 포함하는, 방법.
  44. 자율주행 차량에서 사용되기 위해 매핑 데이터를 생성하는 방법을 수행하는 하나 이상의 프로세스들에 의해 실행가능한 컴퓨터 명령들을 저장하는 비일시적인 컴퓨터 기록 매체에 있어서, 상기 방법은:
    지리적 영역에 대한 복수의 관측을 수신하는 단계;
    상기 지리적 영역에 대한 상기 복수의 관측에 기반하여 상기 지리적 영역에 대한 상대적인 아틀라스 그래프를 생성하는 단계를 포함하고, 상기 생성하는 단계는:
    상기 복수의 관측들로부터 검출된 복수의 엘리먼트들에 대한 복수의 엘리먼트 노드들을 생성하고, 각 엘리먼트 노드는 상기 복수의 엘리먼트들 중에서 연관된 엘리먼트를 갖는 것;
    복수의 에지들을 생성하고, 각 에지는 상기 복수의 엘리먼트 노드들 중 한 쌍의 엘리먼트 노드들을 연결하고 상기 한 쌍의 엘리먼트 노드들에 대한 상기 연관된 엘리먼트들 사이의 상대적인 포즈를 정의하는 것; 및
    상기 복수의 엘리먼트 노드들 및 상기 복수의 에지들을 상기 상대적인 아틀라스 그래프 내에 저장하는 단계를 포함하는, 방법.
  45. 매핑 데이터의 변화를 자율주행 차량에 전파하는 방법에 있어서:
    지리적 영역에 대한 복수의 관측들을 수신하는 단계;
    상기 지리적 영역에 대한 상기 복수의 관측들에 기반하여 상기 지리적 영역에 대한 상대적인 아틀라스 그래프를 변경하고, 상기 상대적인 아틀라스 그래프는 복수의 엘리먼트들에 대한 복수의 엘리먼트 노드들 및 복수의 에지들을 포함하고, 각 에지는 상기 복수의 엘리먼트 노드들 중 한 쌍의 엘리먼트 노드들을 연결하고, 상기 한 쌍의 엘리먼트 노드들에 대한 연관 엘리먼트들 사이의 상대적인 포즈를 정의하는 단계를 포함하고, 상기 상대적인 아틀라스 그래프를 변경하는 단계는:
    상기 복수의 관측들로부터 상기 지리적 영역 내 변경된 엘리먼트들 검출하는 단계; 및
    상기 변화된 엘리먼트에 대한 제1 엘리먼트 노드를 상기 상대적인 아틀라스 그래프 내 다른 엘리먼트에 대한 제2 엘리먼트 노드로 연결하는 제1 에지에 의해 정의된 상대적인 포즈를 변경하여 상기 다른 엘리먼트에 대해 상기 변화된 엘리먼트를 재배치하는 단계; 및
    상기 상대적인 포즈의 상기 변경을 상기 자율주행 차량으로 전파하는 단계를 포함하는, 방법.
  46. 청구항 45에 있어서, 상기 상대적인 아틀라스 그래프를 변경하는 단계는:
    상기 복수의 관측들로부터 상기 지리적 영역 내 신규 엘리먼트들 검출하는 단계;
    상기 신규 엘리먼트에 대한 신규 엘리먼트 노드를 생성하는 단계;
    상기 신규 엘리먼트 노드를 상기 상대적인 아틀라스 그래프 내 기존 엘리먼트 노드로 연결하는 제2 에지를 생성하고, 상기 제2 에지는 상기 신규 엘리먼트 및 상기 기존 엘리먼트 노드에 의해 정의된 기존 엘리먼트 사이의 상대적인 포즈를 정의하는 단계;
    상기 신규 엘리먼트 노드 및 상기 제2 에지를 상기 상대적인 아틀라스 그래프 내에 저장하는 단계; 및
    상기 신규 엘리먼트 노드 및 상기 제2 에지를 상기 자율주행 차량으로 전파하는 단계를 더 포함하는, 방법.
  47. 자율주행 차량에서 사용되기 위한 매핑 데이터를 생성하는 방법에 있어서:
    지리적 영역에 대한 비디오 로그를 수신하는 단계;
    상기 비디오 로그 내 복수의 관심 엘리먼트들 주위의 바운딩 박스들을 판단하는 단계;
    상기 결정된 바운딩 박스들을 사용하여 상기 복수의 엘리먼트들 중 각 관심 엘리먼트의 위치를 삼각측량하는 단계;
    상대적인 아틀라스 그래프 내에 상기 복수의 관심 엘리먼트들을 정의하는 복수의 엘리먼트 노드들을 생성하는 단계; 및
    상대적인 아틀라스 그래프 내에 복수의 에지들을 생성하고, 각 에지는 상기 복수의 엘리먼트 노드들 중 하나의 엘리먼트 노드에 연결되고, 상기 삼각측량된 위치에 기반하여 그에 따라 정의된 관심 엘리먼트에 대한 상대적인 포즈를 정의하는 단계를 포함하는, 방법.
  48. 청구항 47에 있어서, 상기 바운딩 박스들을 판단하는 단계는 자동으로 또는 인간의 지원을 받아 수작업으로 수행되는, 방법.
  49. 청구항 47에 있어서, 상기 관심 엘리먼트들은 교통 장치들인, 방법.
  50. 청구항 49에 있어서, 상기 지리적 영역의 지역들을 나타내는 타일들을 정의하는 복수의 타일 노드들을 상기 상대적인 아틀라스 그래프에서 생성하는 단계를 더 포함하고, 상기 복수의 에지들을 생성하는 단계는 제1 교통 장치에 대한 제1 엘리먼트 노드를 상기 복수의 타일 노드들 중 제1 및 제2 타일 노드들로 각각 연결하는 제1 및 제2 에지들을 생성하는 단계를 포함하고, 상기 제1 및 제2 에지들은 각각 상기 제1 교통 장치에 대한 제1 및 제2 상대적인 포즈들을 정의하는, 방법.
  51. 매핑 데이터를 자율주행 차량에 배치하는 방법에 있어서, 상기 매핑 데이터는 상대적인 아틀라스 그래프에 저장되고, 상기 상대적인 아틀라스 그래프는, 복수의 엘리먼트들에 대한 복수의 엘리먼트 노드들, 제1 복수의 에지들, 상기 복수의 에지들 중 각 에지는 상기 복수의 엘리먼트 노드들 중 한 쌍의 엘리먼트 노드들을 연결하고 상기 한 쌍의 엘리먼트 노드들에 대한 연관된 엘리먼트들 사이의 상대적인 포즈를 정의, 지리적 영역에 대한 복수의 타일 노드들, 각 타일 노드는 상기 지리적 영역의 지역에 해당하는 타일을 나타냄, 복수의 제2 에지들, 상기 복수의 제2 에지들 중 각 에지는 상기 복수의 엘리먼트 노드들 중 하나의 엘리먼트 노드를 상기 복수의 타일 노드들 중 하나의 타일 노드에 연결하고 상기 연결된 타일 노드에 대한 참조 프레임 내 상기 연결된 엘리먼트 노드에 대한 상기 연관 엘리먼트의 상대적인 포즈를 정의, 및 복수의 제3 에지들, 상기 복수의 제3 에지들 중 각 에지는 상기 복수의 타일 노드들 중 한 쌍의 타일 노드들을 연결하고 상기 한 쌍의 타일 노드들에 대한 상기 연관된 타일들 사이의 상대적인 포즈를 정의,를 포함하되, 상기 방법은:
    상기 자율 차량의 위치를 결정하는 단계;
    상기 상대적인 아틀라스 그래프에 접속하여 상기 자율주행 차량의 상기 위치에 근접한 상기 복수의 타일 노드들로 나타낸 상기 타일들 중 루트 타일을 식별하는 단계;
    상기 복수의 제3 에지들 중 하나 이상의 에지들에 접속하여 상기 루트 타일에 근접한 하나 이상의 추가 타일들을 식별하는 단계;
    상기 상대적인 아틀라스 그래프의 일부를 추출하고, 상기 일부는 상기 루트 타일에 대한 루트 타일 노드, 상기 하나 이상의 추가 타일들에 대한 하나 이상의 추가 타일 노드들, 상기 복수의 엘리먼트 노드들 중 엘리먼트 노드들의 서브세트, 각 엘리먼트 노드는 에지에 의해 상기 복수의 제2 에지들로부터 상기 루트 타일 또는 상기 하나 이상의 추가 타일 노드들 중 하나에 연결됨, 및 상기 루트 타일 노드, 하나 이상의 추가 타일 노드들, 및 엘리먼트 노드들의 서브세트 중 어느 것에 연결된 상기 복수의 제1, 제2, 및 제3 에지들 중 각 에지를 포함하는 단계; 및
    상기 상대적인 아틀라스 그래프의 상기 일부를 상기 자율주행 차량과 통신하게 하는 단계를 포함하는, 방법.
  52. 외부 데이터를 자율주행 차량에 의해 사용되는 상대적인 아틀라스 그래프로 불러오는 방법에 있어서, 상기 상대적인 아틀라스 그래프는, 복수의 엘리먼트들에 대한 복수의 엘리먼트 노드들, 제1 복수의 에지들, 상기 복수의 에지들 중 각 에지는 상기 복수의 엘리먼트 노드들 중 한 쌍의 엘리먼트 노드들을 연결하고 상기 한 쌍의 엘리먼트 노드들에 대한 연관된 엘리먼트들 사이의 상대적인 포즈를 정의, 지리적 영역에 대한 복수의 타일 노드들, 각 타일 노드는 상기 지리적 영역의 지역에 해당하는 타일을 나타냄, 및 복수의 제2 에지들, 상기 복수의 제2 에지들 중 각 에지는 상기 복수의 엘리먼트 노드들 중 하나의 엘리먼트 노드를 상기 복수의 타일 노드들 중 하나의 타일 노드에 연결하고 상기 연결된 타일 노드에 대한 참조 프레임 내 상기 연결된 엘리먼트 노드에 대한 상기 연관 엘리먼트의 상대적인 포즈를 정의,를 포함하되, 상기 방법은:
    상기 외부 데이터를 고정된 참조 프레임으로 변환하는 단계;
    상기 고정된 참조 프레임 내 상기 외부 데이터에 근접한 하나 이상의 타일들을 나타내는 상기 상대적인 아틀라스 그래프 내 상기 복수의 타일 노드들 중 하나 이상의 타일 노드들을 식별하는 단계;
    상기 외부 데이터를 상기 하나 이상의 타일들 각각에 대한 참조 프레임으로 투영하는 단계;
    상기 외부 데이터로 나타내진 하나 이상의 엘리먼트들에 대한 하나 이상의 엘리먼트 노드들을 생성하는 단계;
    상기 하나 이상의 엘리먼트 노드들을 상기 하나 이상의 타일 노드들에 연결하는 하나 이상의 에지들을 생성하고, 상기 하나 이상의 에지들 각각은 상기 하나 이상의 타일들 중 하나의 타일에 대한 참조 프레임 내에서 상기 하나 이상의 엘리먼트들 중 하나의 엘리먼트에 대한 상대적인 포즈를 정의하는 단계;
    상기 생성된 하나 이상의 엘리먼트 노드들 및 하나 이상의 에지들을 상기 상대적인 아틀라스 그래프에 추가하는 단계에 의해 수행되는, 방법.
KR1020207031075A 2018-03-29 2019-03-27 자율주행 차량을 위한 상대적인 아틀라스 및 그 생성 KR102454408B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227034792A KR102493094B1 (ko) 2018-03-29 2019-03-27 자율주행 차량을 위한 상대적인 아틀라스 및 그 생성

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/940,516 2018-03-29
US15/940,516 US10521913B2 (en) 2018-03-29 2018-03-29 Relative atlas for autonomous vehicle and generation thereof
PCT/US2019/024372 WO2019191292A1 (en) 2018-03-29 2019-03-27 Relative atlas for autonomous vehicle and generation thereof

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227034792A Division KR102493094B1 (ko) 2018-03-29 2019-03-27 자율주행 차량을 위한 상대적인 아틀라스 및 그 생성

Publications (2)

Publication Number Publication Date
KR20200134313A true KR20200134313A (ko) 2020-12-01
KR102454408B1 KR102454408B1 (ko) 2022-10-12

Family

ID=66323900

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227034792A KR102493094B1 (ko) 2018-03-29 2019-03-27 자율주행 차량을 위한 상대적인 아틀라스 및 그 생성
KR1020207031075A KR102454408B1 (ko) 2018-03-29 2019-03-27 자율주행 차량을 위한 상대적인 아틀라스 및 그 생성

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227034792A KR102493094B1 (ko) 2018-03-29 2019-03-27 자율주행 차량을 위한 상대적인 아틀라스 및 그 생성

Country Status (4)

Country Link
US (3) US10521913B2 (ko)
KR (2) KR102493094B1 (ko)
CN (1) CN112292581A (ko)
WO (1) WO2019191292A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220087764A (ko) * 2020-12-18 2022-06-27 한서대학교 산학협력단 지형정보 생성 시스템

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11256729B2 (en) 2018-03-29 2022-02-22 Aurora Operations, Inc. Autonomous vehicle relative atlas incorporating hypergraph data structure
US10521913B2 (en) * 2018-03-29 2019-12-31 Aurora Innovation, Inc. Relative atlas for autonomous vehicle and generation thereof
US10503760B2 (en) * 2018-03-29 2019-12-10 Aurora Innovation, Inc. Use of relative atlas in an autonomous vehicle
US11427211B2 (en) * 2018-06-18 2022-08-30 Baidu Usa Llc Methods for handling sensor failures in autonomous driving vehicles
DE102018005869A1 (de) * 2018-07-25 2020-01-30 Zf Active Safety Gmbh System zur Erstellung eines Umgebungsmodells eines Fahrzeugs
US11959769B2 (en) * 2018-10-15 2024-04-16 Mitsubishi Electric Corporation Information processing device that generates boundary location information of a road on which a vehicle travels by automated driving
US11519742B2 (en) * 2018-12-19 2022-12-06 Uber Technologies, Inc. Routing autonomous vehicles using temporal data
US11250697B2 (en) * 2018-12-26 2022-02-15 Uatc, Llc Missing traffic face detector
US10809736B2 (en) * 2018-12-27 2020-10-20 Baidu Usa Llc ST-graph learning based decision for autonomous driving vehicle
US11126200B2 (en) * 2019-02-14 2021-09-21 Here Global B.V. Method, apparatus, and system for providing an interface for publishing sensor data requests in campaign management platform
US10969232B1 (en) * 2019-12-06 2021-04-06 Ushr Inc. Alignment of standard-definition and High-Definition maps
CN111613097B (zh) * 2020-06-04 2021-08-27 成都民航空管科技发展有限公司 一种空管自动化系统标牌避让的方法及系统
TWI764761B (zh) * 2021-06-16 2022-05-11 英業達股份有限公司 駕駛安全系統
CN113590882B (zh) * 2021-08-03 2024-01-05 武汉品致汽车技术有限公司 一种汽车电路电子图册整合方法
CN113788015B (zh) * 2021-08-04 2023-04-18 杭州飞步科技有限公司 车辆轨迹的确定方法、装置、设备以及存储介质
CN114111758A (zh) * 2021-11-01 2022-03-01 广州小鹏自动驾驶科技有限公司 一种地图数据的处理方法和装置
CN114413913B (zh) * 2021-12-13 2023-10-13 武汉中海庭数据技术有限公司 一种高精度地图分区域编译方法及系统
WO2023205444A1 (en) * 2022-04-22 2023-10-26 Velo.Ai, Inc. Artificially intelligent mobility safety system
WO2023227859A1 (en) * 2022-05-25 2023-11-30 Bae Systems Plc Controlling an aquatic vessel
EP4283255A1 (en) * 2022-05-25 2023-11-29 BAE SYSTEMS plc Controlling an aquatic vessel
CN115497078B (zh) * 2022-11-15 2023-03-10 广汽埃安新能源汽车股份有限公司 车道线生成方法、装置、设备和计算机可读介质
CN117560638B (zh) * 2024-01-10 2024-03-22 山东派蒙机电技术有限公司 应用于移动端通信系统的融合通信方法、装置及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011082379A1 (de) * 2011-09-08 2013-03-14 Robert Bosch Gmbh Verfahren zum Erfassen von Navigationsdaten
WO2017178190A1 (de) * 2016-04-11 2017-10-19 Volkswagen Aktiengesellschaft Verfahren und system zum bestimmen einer globalen position einer ersten landmarke

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7375728B2 (en) * 2001-10-01 2008-05-20 University Of Minnesota Virtual mirror
JP4713243B2 (ja) * 2005-06-27 2011-06-29 パイオニア株式会社 交通規制情報のデータ構造、それを生成する情報生成装置、その生成方法、地図情報のデータ構造、地図情報を記録した記録媒体、および、案内誘導装置
US20080243378A1 (en) 2007-02-21 2008-10-02 Tele Atlas North America, Inc. System and method for vehicle navigation and piloting including absolute and relative coordinates
EP2491344B1 (en) 2009-10-22 2016-11-30 TomTom Global Content B.V. System and method for vehicle navigation using lateral offsets
US8559673B2 (en) 2010-01-22 2013-10-15 Google Inc. Traffic signal mapping and detection
WO2012040644A1 (en) * 2010-09-24 2012-03-29 Evolution Robotics, Inc. Systems and methods for vslam optimization
JP5533762B2 (ja) * 2011-03-31 2014-06-25 アイシン・エィ・ダブリュ株式会社 移動案内システム、移動案内装置、移動案内方法及びコンピュータプログラム
US8620032B2 (en) 2011-05-10 2013-12-31 GM Global Technology Operations LLC System and method for traffic signal detection
US8798840B2 (en) * 2011-09-30 2014-08-05 Irobot Corporation Adaptive mapping with spatial summaries of sensor data
EP2589932B1 (en) * 2011-11-07 2017-02-08 Elektrobit Automotive GmbH Technique for structuring a navigation database
US20130133206A1 (en) 2011-11-24 2013-05-30 Kyle Donovan Utensils With Raised Working End When Resting
US9145140B2 (en) 2012-03-26 2015-09-29 Google Inc. Robust method for detecting traffic signals and their associated states
US9921069B2 (en) 2012-04-05 2018-03-20 Hitachi, Ltd. Map data creation device, autonomous movement system and autonomous movement control device
EP2903787B1 (en) 2012-10-05 2019-05-15 iRobot Corporation Robot management systems for determining docking station pose including mobile robots and methods using same
EP2725552A1 (en) * 2012-10-29 2014-04-30 ATS Group (IP Holdings) Limited System and method for selecting sensors in surveillance applications
US9435654B2 (en) * 2013-06-01 2016-09-06 Savari, Inc. System and method for creating, storing, and updating local dynamic MAP database with safety attribute
US20140372031A1 (en) * 2013-06-17 2014-12-18 Rivendell Technologies, LLC Systems, methods and computer-readable media for generating digital wayfinding maps
GB201407643D0 (en) * 2014-04-30 2014-06-11 Tomtom Global Content Bv Improved positioning relatie to a digital map for assisted and automated driving operations
CN107624155B (zh) * 2014-12-05 2021-09-28 苹果公司 自主导航系统
US9630319B2 (en) 2015-03-18 2017-04-25 Irobot Corporation Localization and mapping using physical features
US9828094B2 (en) 2015-07-26 2017-11-28 John B. McMillion Autonomous cleaning system
US9630619B1 (en) * 2015-11-04 2017-04-25 Zoox, Inc. Robotic vehicle active safety systems and methods
JP6656265B2 (ja) 2015-12-14 2020-03-04 シャープ株式会社 表示装置およびその駆動方法
US11927965B2 (en) 2016-02-29 2024-03-12 AI Incorporated Obstacle recognition method for autonomous robots
US20170329332A1 (en) * 2016-05-10 2017-11-16 Uber Technologies, Inc. Control system to adjust operation of an autonomous vehicle based on a probability of interference by a dynamic object
EP3260344B1 (en) 2016-06-20 2021-10-06 Volvo Car Corporation Method and system for adjusting a safety margin threshold of a driver support function
WO2018006082A2 (en) * 2016-07-01 2018-01-04 Uber Technologies, Inc. Autonomous vehicle control using submaps
US10209081B2 (en) 2016-08-09 2019-02-19 Nauto, Inc. System and method for precision localization and mapping
US10309778B2 (en) 2016-12-30 2019-06-04 DeepMap Inc. Visual odometry and pairwise alignment for determining a position of an autonomous vehicle
DE102017201665A1 (de) * 2017-02-02 2018-08-02 Robert Bosch Gmbh Verfahren zur Einbindung eines dynamischen Objektes in eine digitale Karte eines hochautomatisierten Fahrzeugs (HAF)
US10248129B2 (en) 2017-04-19 2019-04-02 GM Global Technology Operations LLC Pitch compensation for autonomous vehicles
US10509413B2 (en) 2017-09-07 2019-12-17 GM Global Technology Operations LLC Ground reference determination for autonomous vehicle operations
US10503760B2 (en) 2018-03-29 2019-12-10 Aurora Innovation, Inc. Use of relative atlas in an autonomous vehicle
US10521913B2 (en) * 2018-03-29 2019-12-31 Aurora Innovation, Inc. Relative atlas for autonomous vehicle and generation thereof
US11256729B2 (en) * 2018-03-29 2022-02-22 Aurora Operations, Inc. Autonomous vehicle relative atlas incorporating hypergraph data structure

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011082379A1 (de) * 2011-09-08 2013-03-14 Robert Bosch Gmbh Verfahren zum Erfassen von Navigationsdaten
WO2017178190A1 (de) * 2016-04-11 2017-10-19 Volkswagen Aktiengesellschaft Verfahren und system zum bestimmen einer globalen position einer ersten landmarke

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220087764A (ko) * 2020-12-18 2022-06-27 한서대학교 산학협력단 지형정보 생성 시스템

Also Published As

Publication number Publication date
KR20220138032A (ko) 2022-10-12
KR102454408B1 (ko) 2022-10-12
US20190304097A1 (en) 2019-10-03
US20220172371A1 (en) 2022-06-02
WO2019191292A1 (en) 2019-10-03
US10521913B2 (en) 2019-12-31
US11257218B2 (en) 2022-02-22
CN112292581A (zh) 2021-01-29
KR102493094B1 (ko) 2023-01-27
US20200111216A1 (en) 2020-04-09
US11450007B2 (en) 2022-09-20

Similar Documents

Publication Publication Date Title
KR102493094B1 (ko) 자율주행 차량을 위한 상대적인 아틀라스 및 그 생성
US11526538B2 (en) Autonomous vehicle relative atlas incorporating hypergraph data structure
US11256730B2 (en) Use of relative atlas in an autonomous vehicle
US11035678B2 (en) Automatic localization geometry detection
US11423677B2 (en) Automatic detection and positioning of pole-like objects in 3D
US11727272B2 (en) LIDAR-based detection of traffic signs for navigation of autonomous vehicles
US20240005167A1 (en) Annotating high definition map data with semantic labels
US11250576B2 (en) Systems and methods for estimating dynamics of objects using temporal changes encoded in a difference map
CN111656135A (zh) 基于高清地图的定位优化
JP2020087464A (ja) 3dデータを2d画像データに登録するためのシステム及び方法
US11340093B2 (en) Submap geographic projections
US11927449B2 (en) Using map-based constraints for determining vehicle state
US20230266129A1 (en) Map selection for vehicle pose system
US20220028262A1 (en) Systems and methods for generating source-agnostic trajectories
Lee et al. Ods-bot: Mobile robot navigation for outdoor delivery services
US11594014B2 (en) Annotating high definition map points with measure of usefulness for localization
Keshavamurthi Development of Real Time Self Driving Software for Wheeled Robot with UI based Navigation

Legal Events

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