KR20220146579A - 기능적 안전성이 강화된 디지털 맵 데이터 - Google Patents

기능적 안전성이 강화된 디지털 맵 데이터 Download PDF

Info

Publication number
KR20220146579A
KR20220146579A KR1020227033276A KR20227033276A KR20220146579A KR 20220146579 A KR20220146579 A KR 20220146579A KR 1020227033276 A KR1020227033276 A KR 1020227033276A KR 20227033276 A KR20227033276 A KR 20227033276A KR 20220146579 A KR20220146579 A KR 20220146579A
Authority
KR
South Korea
Prior art keywords
map
data
application
tile
object data
Prior art date
Application number
KR1020227033276A
Other languages
English (en)
Inventor
키스 코넬리스 피에터 슈어만
롤랜드 알라릭 이안 로시르
더 포르스트 에드바르트 판
파울 리베르서
Original Assignee
톰톰 글로벌 콘텐트 비.브이.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 톰톰 글로벌 콘텐트 비.브이. filed Critical 톰톰 글로벌 콘텐트 비.브이.
Publication of KR20220146579A publication Critical patent/KR20220146579A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/3878Hierarchical structures, e.g. layering
    • 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/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3885Transmission of map data to client devices; Reception of map data by client devices
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Instructional Devices (AREA)
  • Traffic Control Systems (AREA)
  • Navigation (AREA)

Abstract

안전하고 신뢰할 수 있는 디지털 맵 데이터를 생성 및 제공하기 위한 기법이 여기에 개시되어 있다. 상기 기법은 이러한 디지털 맵 데이터에 의존하는 구성요소들에 차량 내 전달 전에 상기 디지털 맵 데이터의 정확성을 확인하기 위해 간단하고 효율적인 데이터 구조를 사용해 맵 클라이언트에서 상기 디지털 맵 데이터를 확인할 수 있게 한다.

Description

기능적 안전성이 강화된 디지털 맵 데이터
본 발명은 일반적으로 예를 들어 클라우드 서버 환경으로부터 전송되는 디지털 맵 데이터를 차량에 탑재되어 실행되는 기반 애플리케이션에 제공하기 위한 방법 및 시스템에 관한 것이다. 실시 예들은 기능적 안정성이 강화된 이러한 디지털 맵 데이터를 제공하기 위한 방법 및 시스템에 관한 것이다. 특히, 본 발명의 실시 예들은 예컨대 고급/자율 운전 애플리케이션에 사용하기 위해 제공되기 전에 고화질(high definition; HD) 맵 데이터의 무결성(및 진위성)을 확인하기 위한 기법에 관한 것이다. 실시 예들은 또한 이러한 맥락을 위해 클라이언트 애플리케이션을 작동시키는 방법에 관한 것이다.
내비게이션 시스템들은 운전자가 원하는 목적지에 도달하도록 지원하기 위해 디지털 맵을 사용한다. 이러한 디지털 맵은 일반적으로 내비게이트 가능한 (예컨대, 도로) 네트워크의 적절한 그래프 표현을 형성하기 위해 도로 세그먼트들을 함께 연결하는 한 세트의 복수의 내비게이트 가능한 세그먼트들(또는 '아크(arc)들') 및 노드들로 이루어진다. 디지털 맵 요소들은 예컨대 경로 계획 목적을 위해 목적지에 이르기까지의 경로에 대한 비용을 결정하는 데 사용 가능한 연관된 내비게이션 비용 매개변수들을 지닌다. 기본 도로-수준 내비게이션 및 경로-계획 서비스들(만)을 지원하는 디지털 맵들은 때로는 표준 정의 맵(Standard Definition map; SD 맵)으로서 언급된다.
더 첨단화된 자율 주행(autonomous driving; AD) 및 첨단 운전자 보조 시스템(advanced driver assistance system; ADAS) 기능을 제공하기 위해서는, 도로 및 차선 양자 모두의 형상에 대한 매우 상세하고 정밀한 3차원적 뷰를 제공하는 고화질 맵(HD 맵)을 사용하여야 한다. 따라서 도로 형상을 정의하는 아크들 및 노드 들 외에도, 이러한 HD 맵에는 차선 표시, 차선 중심선, 도로 경계 등을 묘사하는 차선 모델도 포함된다. 따라서 일반적인 HD 맵은 분기점 영역들과 차선 그룹들을 나타내는 한 세트의 아크들과 상기 아크들 간의 연결들을 묘사하는 한 세트의 노드들을 포함한다. 분기점 영역들과 차선 그룹들은 도로 표면을 좌우로(또한 주행 방향을 따라) 묘사한다. 실제로 HD 맵은 차량의 시야 범위를 차량의 로컬 센서 범위 이상으로 확장해 더 유연하고 안전하며 효율적인 운전 시나리오를 가능하게 한다.
여기서 이해할 점은 AD/ADAS 애플리케이션들이 고도로 자동화된 운전 기능을 제공할 수 있다는 것이며, 이러한 기능의 안전성은 차량이 주행하고 있는 내비게이트 가능한 (예컨대, 도로) 네트워크의 영역을 반영하는 정확한 최신 HD 맵 데이터의 수신에 크게 의존한다. 내비게이트 가능한 (예컨대, 도로) 네트워크 주변에서 차량을 내비게이트하기 위해 AD/ADAS 애플리케이션에 의해 사용되고 있는 이러한 데이터의 무결성 또는 진위성이 손상되면 심각한 (심지어는 치명적인) 결과들을 초래할 수 있다.
따라서 디지털 맵 데이터는 '안전성이 중요'하며 그의 신뢰성은 자동화된 차량 내 시스템에 필요한 규제 표준들을 충족하기 위해 보장되어야 한다. 예를 들어, 상기 데이터가 예컨대 저장 및/또는 전송 중에 손상되지 않음을 보장하여야 한다. 더욱이, 상기 데이터의 보안은 안전을 위한 전제 조건이며 AD/ADAS 애플리케이션이 보안 위협으로부터 보호됨을 보장하여야 한다. 따라서 AD/ADAS 애플리케이션에 대한 기능적 안전성을 달성할 때 이러한 실시형태들을 고려하여야 한다.
차량 내 안전성 필수 시스템들의 기능적 안전성은 일반적으로 ISO 26262 기능적 안전성 표준에 따라 상기 차량 내 안전성 필수 시스템들을 개발함으로써 실현된다. 안전성 필수 맵 데이터의 생성은 의도된 기능의 안전(safety of the intended functionality; SoTIF)에 대한 ISO 21448 표준의 적용을 받게 된다. 따라서 이러한 디지털 맵 데이터의 신뢰성을 보장하려면 맵 데이터 전달 및 배포 시스템의 개발에 특정한 요구사항들이 있다. 그러나 여기서 이해할 점은 맵 배포 시스템, 다시 말하면 맵 클라이언트(인터페이스)에 연관된 인터페이스들 및 기능적 구성요소들의 개수로 인해 이러한 맵 클라이언트(인터페이스들)는 기능적으로 복잡한 소프트웨어 구성요소들이라는 것이다. 따라서 필요한 기능적 안전성 수준에서 맵 데이터 전달 및 배포 시스템을 구현하는 것은 노동 집약적이고 복잡할 수 있다. 따라서 AD/ADAS 애플리케이션들에 대한 원하는 기능적 안전성 요구사항들을 충족하려면 일반적으로 증가된 처리 및 저장 자원이 필요한 복잡한 구현들과 함께 맵 전달 및 배포 시스템의 설계, 테스트 및 지원에 상당한 부담이 따른다.
AD/ADAS 애플리케이션들을 위한 디지털 맵 데이터는 일반적으로 예컨대 클라우드 서버 환경에서 하나 이상의 맵 데이터 소스로부터 적절한 소스 데이터를 컴파일함으로써 원격으로 생성되고, 그 후에 상기 맵 데이터는 상기 클라우드로부터 상기 맵 데이터를 요청하는 차량으로 전달된다. 그런 다음 차량 내 배포 네트워크는 상기 맵 데이터를 필요에 따라 상기 맵 데이터를 요청하는 AD 애플리케이션 (및/또는 차량에 탑재되어 실행되는 기타 맵 기반 애플리케이션들)에 배포한다.
상기 맵 데이터의 더 효율적인 전달을 제공하기 위해, 상기 디지털 맵을 복수 개의 맵 타일(map tile)들로서 표현하는 것이 알려져 있으며, 각각의 맵 타일은 전체 맵 영역의 일부를 표현하고 상기 맵 타일에 의해 커버되는 영역 내에 속하는 객체들을 나타내는 데이터를 포함한다. 예를 들어, 한 세트의 맵 타일들에는 노드들에 의해 연결된 복수 개의 아크들로서 지리적 영역의 상이한 부분 내 내비게이트 가능한 네트워크(예컨대, 도로)를 표현하는 세트 내 서로 다른 맵 타일들이 제공될 수 있다. 따라서, 그 영역 내 내비게이트 가능한(예컨대, 도로) 네트워크를 정의하는 한 세트의 아크들 및 노드들에 관한 적어도 객체 데이터는 한 맵 타일에 대해 저장될 수 있다. 이는 상기 아크들/노드들 자체의 특성들을 정의하는 객체 데이터(예컨대, 그러한 영역 내 도로/차선 형상을 정의하는 객체 데이터)를 포함할 수 있으며 또한 상기 아크들/노드들에 연관된 객체들에 대한 데이터, 예컨대 교통 표지 등을 포함할 수 있다. 물론, 상기 맵에 바람직하게 포함될 수 있는 기타 적절한 정보가 한 타일에 대해 저장될 수 있다. 맵 기반 애플리케이션이 내비게이트 가능한 (예컨대, 도로) 네트워크 내에서 특정한 특징, 또는 위치에 관한 정보를 요청할 때 적절한 맵 (다시 말하면, 객체) 데이터를 획득하기 위해 관련 맵 타일(들)에 대한 요청이 발행될 수 있다.
이러한 요청은 일반적으로 차량에 탑재되어 실행되는 적절한 클라이언트 애플리케이션(인터페이스)에 의해 처리된다. 상기 클라이언트 애플리케이션(인터페이스)은 상기 맵 타일(들)을 수신한 다음에 이에 따라 이들을 처리하여 관련 맵 데이터를 추출한다. 상기 클라이언트 애플리케이션(인터페이스)은 그 후에 필요에 따라 임의의 애플리케이션, 예컨대 AD/ADAS 애플리케이션에 상기 맵 데이터를 배포할 수 있다. 이는 일반적으로 예컨대 현재 차량 위치, 운전 조건 및 도로 데이터에 기초하여 예측된 다가오는 운전 경로를 고려함으로써 생성된 적절한 "호리즌(horizon)"을 참조하여 수행되어 왔다. 그 후에 다음 상기 호리즌은 예컨대 AD/ADAS 기능을 구현하기 위해 동적 (예컨대 센서) 데이터가 추가될 수 있는 상기 호리즌으로 이어지는 영역 내 서브-맵을 표현하는 한 세트의 맵 타일들에 연관될 수 있다.
전형적으로, 복수 개의 호리즌들은 대응하는 복수 개의 예측된 운전 경로들 중 어느 하나로부터 벗어나는 차량의 소재를 확인하고 조정할 수 있도록 상기 대응하는 복수 개의 예측된 운전 경로들에 대해 생성된다.
상기 호리즌(들)에 연관된 서브-맵 데이터는 예컨대 ADASIS(Advanced Drive Assistance Systems Interface Specification) 프로토콜에 따라 상기 AD/ADAS 애플리케이션에 제공될 수 있다. 예를 들어, 새로운 ADASIS V3 표준은 차량 내 HD 맵 배포에 자주 사용된다. ADASIS V3는 호리즌 공급자, 호리즌 재구성자 및 공급자와 재구성자(들) 간에 사용되는 ADASIS V3 프로토콜로 구성된다. ADASIS V3 프로토콜은 일반적으로 차량 내 네트워크, 예컨대 이더넷을 사용한다. 일단 서브-맵 데이터가 상기 AD/ADAS 애플리케이션에 제공되면 상기 애플리케이션은 일반적인 방식으로 상기 호리즌 내 맵 데이터를 동적 센서 데이터 등과 비교함으로써 예측된 운전 전략을 계획할 수 있다.
따라서 이러한 시스템은 맵 데이터를 차량에 직접 전달하는 것을 허용한다. 그러나 상기 맵 데이터가 한 세트의 타일들로서 제공되는 경우 상기 AD/ADAS 애플리케이션에 의해 사용되고 있는 맵 데이터의 기능적 안전성을 보장하는 데 여전히 어려움이 있을 수 있다. 더욱이, 기능적 안전성을 달성하기 위한 기존의 수법들은 구현하기가 비교적 복잡할 수 있고, 요청되는 기능적 안전성을 달성할 수 있는 더 효율적인 클라이언트 애플리케이션(인터페이스)을 제공하는 것이 바람직할 것이다.
따라서 본원 출원인은 예컨대 AD/ADAS 애플리케이션에 대해 원하는 기능적 안전성 요구사항을 여전히 충족하면서 맵 데이터를 제공하는 개선된 방법에 대한 범위가 남아 있다고 생각한다.
본 발명의 제1 실시형태에 의하면, 원격 서버로부터 디지털 맵에 의해 커버되는 내비게이트 가능한 네트워크를 횡단하는 차량의 전자 제어 유닛(electronic control unit; ECU) 상에서 실행되는 하나 이상의 맵 기반 애플리케이션(들)으로 전송되고 있는 맵 데이터를 확인하는 방법이 제공되며, 상기 디지털 맵은 한 세트의 복수의 맵 타일들로서 표현되고, 각각의 타일은 상기 내비게이트 가능한 네트워크의 일부를 포함하는 특정한 지리적 영역을 표현하며, 상기 방법은,
상기 서버에서, 맵 타일에 대한 데이터 구조를 생성하는 단계 - 상기 데이터 구조는 상기 타일에 의해 커버되는 상기 지리적 영역 내에 그리고/또는 상기 디지털 맵을 표현하는 타일(들) 중 다른 하나 이상의 타일들에 의해 커버되는 상기 지리적 영역 내에 적어도 부분적으로 속하는 한 세트의 하나 이상의 객체(들)를 나타내는 객체 데이터를 포함하고, 객체 데이터가 상기 맵 타일 데이터 구조 내에 포함된 상기 한 세트의 하나 이상의 객체(들) 내 적어도 하나의 객체에 대해, 연관된 보안 데이터는 상기 적어도 하나의 객체에 대한 객체 데이터와 함께 상기 맵 타일 데이터 구조 내에 포함되며, 상기 보안 데이터는 그의 연관된 객체 데이터의 무결성을 확인하기 위해 사용 가능한 것임 -; 및
상기 객체 데이터 및 연관된 보안 데이터를 포함하는 타일에 대한 맵 타일 데이터 구조를 상기 서버로부터 상기 차량의 하나 이상의 처리 유닛(들) 상에서 실행되는 클라이언트 애플리케이션으로 전송하는 단계;
를 포함한다.
본 발명은 일반적으로 말하면 디지털 맵 데이터의 생성 및 제공에 관한 것이며, 구체적으로 말하면 고급 및/또는 자율 주행 애플리케이션들에 적합한 고화질(high definition; HD) 디지털 맵 데이터의 제공에 관한 것이다. 특히 자율 주행(autonomous driving; AD) 애플리케이션들의 경우 여기서 이해할 점은 상기 맵 데이터가 안전성이 중요하며 결과적으로는 차량 내 안전성 필수 시스템에 대한 안전성 요구사항을 충족시키기 위해 맵 데이터의 신뢰성이 보장되어야 한다는 것이다. 따라서, 본 발명의 실시 예들은 예컨대 차량에 탑재되어 실행되는 맵 기반 애플리케이션에 배포되고 차량에 탑재되어 실행되는 맵 기반 애플리케이션에 의해 사용되기 전에 이러한 디지털 맵 데이터를 확인하기 위한 방법에 관한 것이다. 또한 원하는 안전성 요구사항을 충족시킬 수 있는 맵-클라이언트 인터페이스들을 개발하는 것은 어렵고 집중적인 것일 수 있다. 따라서, 본 발명의 실시 예들은 또한 이하에서 부연 설명되겠지만 향상된(예컨대, ASIL-B) 수준의 기능적 안전성을 통한 맵 클라이언트 애플리케이션의 효율적인 구현에 관한 것이다.
예를 들어, 본 발명의 제1 실시형태의 실시 예들에서 "객체 수준(object level)"에서 디지털 맵 데이터를 확인하는 방법이 제공되며, 이는 심지어 이하에서 부연 설명되겠지만 상기 맵 데이터가 전송 목적을 위해 다수의 맵 타일 데이터 구조로 패키징되는 경우에도 개별 맵 객체가 상당한 추가적인 저장 및/또는 또는 전송 오버헤드 없이 효율적인 방식으로 확인되는 것을 허용한다.
여기서 이해할 점은 그러한 디지털 맵들이 일반적으로 도로, 도로 차선, 분기점, 교통 정보, 관심 지점 및 기타 많은 유형의 정보를 포함하는 복합 데이터 구조라는 것이다. 따라서 맵 기반 애플리케이션을 실행하는 차량에 국부적으로 저장하여야 하는 데이터의 양을 줄이기 위해 그리고/또는 상기 맵 데이터를 차량으로 전송하는 데 필요한 대역폭을 줄이기 위해 상기 디지털 맵에 의해 표현되는 전체 영역은 데이터 저장 목적을 위해 복수 개의 작은 영역들로 분할될 수 있고(본 발명에서는 복수 개의 작은 영역들로 분할되고), 그럼으로써 상기 장치는 그의 현재 위치 및/또는 예측된 주행 경로에 관련된 영역들에 관한 데이터만을 회수면 된다. 본 발명에서 전체 영역이 매핑 목적으로 분할되는 작은 영역들은 "타일(tile)들"로서 언급된다. 그러나, 여기서 이해할 점은 다른 등가 용어들이 사용될 수 있을 것이고, 용어 "타일"이 상기 디지털 맵이 분할되는 영역들의 형태 또는 사이즈에 대한 임의의 특정 제한들을 의미하지 않는다는 것이다.
이러한 타일 기반 수법의 사용은 다양한 맵 데이터 소스로부터 상기 맵 데이터를 요청하는 차량으로의 맵 데이터의 더 효율적인 전송 및 배포를 제공하는 데 도움이 될 수 있다. 예를 들어, 타일 기반 수법의 장점은 서버(또는 복수 개의 서버들) 측 서로 다른 소스들로부터의 맵 데이터를 한 세트의 대응하는 타일들로 쉽게 컴파일한 다음에 관련 맵 데이터를 예컨대 타일 단위로 상기 타일들에 의해 커버되는 영역들에 대한 맵 데이터를 요청하는 차량에 전달 또는 제공할 수 있다는 것이다. 상기 타일 데이터 구조(들)는 예컨대 필요에 따라 차량 내 환경 내에서 실행되는 다양한 맵 기반 애플리케이션에 배포될 수 있는 원하는 (맵) 객체 데이터를 추출하기 위해 차량에 탑재된 하나 이상의 프로세서(들) 상에서 실행되는 적절한 클라이언트 애플리케이션(인터페이스)에 의해 언패킹(unpacking)될 수 있다.
상기 맵 데이터의 신뢰성을 보장하고 맵 데이터에 의존하는 애플리케이션들의 기능적 안전성을 향상시키는 부분은 차량에 전달되는 데이터의 무결성과 진위성을 확인할 수 있다는 것이다. 이를 위해, 상기 타일 데이터 구조들은 클라이언트 애플리케이션(인터페이스)에 의해 수신된 타일 데이터 구조가 원래의 서버(들)로부터 전송된 것과 매치되는지가 검사될 수 있도록 디지털 서명될 수 있다(바람직한 실시 예들에서는 디지털 서명된다). 따라서, 실시 예들에서, 상기 타일 데이터 구조가 제1 서버에서 컴파일된 후에, 각각의 타일 데이터 구조는 그 후 차량에 전달되기 전에 상기 서버(또는 다른 서버)에서 디지털 서명될 수 있다. 예를 들어, 이는 디지털 서명, 예컨대 256바이트 SHA-2 디지털 서명 또는 이와 유사한 것을 각각의 타일 데이터 구조에 추가하는 것을 포함할 수 있다. 이러한 수법은 타일 수준, 다시 말하면 상기 데이터가 상기 서버로부터 획득되는 수준에서 상기 데이터의 무결성과 진위성을 확인할 수 있다. 따라서, 상기 클라이언트 애플리케이션(인터페이스)가 상기 타일에 대해 저장된 맵 객체 데이터를 사용, 또는 배포하려고 시도하기 전에 타일 데이터 구조가 상기 서버로부터 차량 상에서 실행되는 적절한 클라이언트 애플리케이션(인터페이스)으로 전송될 경우 상기 클라이언트 애플리케이션(인터페이스)은 상기 타일 데이터 구조의 무결성을 확인하도록 상기 디지털 서명을 검사할 수 있다. 물론, 이러한 타일 레벨 확인은 디지털 서명을 사용할 필요가 없으며 필요에 따라 기타 적절한 확인 기법들이 또한 사용될 수 있을 것이다.
이러한 타일 수준 확인은 예컨대 전송 중에 상기 타일 데이터 구조가 변경되거나 손상되지 않았는지를 확인하는 데 중요하다. 그러나 여기서 이해할 점은 상기 맵 데이터를 요청하는 임의의 최종 애플리케이션들(이는 차량의 ECU 상에서 실행되는 AD 애플리케이션들 또는 ADAS(Advanced Driver Assistance System) 애플리케이션들일 수 있지만, 차량 내 환경 내에서 실행되는 기타 내비게이션 또는 지리 공간 인식 애플리케이션들을 포함할 수 있음)이 일반적으로 타일 수준에서 맵 데이터를 사용하지 않고 그 대신에 이러한 타일 데이터 구조들로부터 추출될 수 있는 객체 데이터에 대한 액세스를 요청하는 것이다. 따라서 상기 클라이언트 애플리케이션(인터페이스)은 상기 타일 데이터 구조로부터 상기 맵 기반 애플리케이션에 의해 사용될 수 있는 수준에서 관련 객체 데이터를 추출하고, 이러한 데이터를 상기 맵 기반 애플리케이션들에 제공하기 위해 차량 내 맵 배포 네트워크와 함께 또는 차량 내 맵 배포 네트워크 일부로서 작동한다. 예를 들어, 상기 클라이언트 애플리케이션(인터페이스)은 맵 기반(예컨대, AD/ADAS) 애플리케이션에 상기 맵(객체) 데이터를 직접 제공할 수 있다. 대안으로, 상기 클라이언트 애플리케이션(인터페이스)은 상기 맵(객체) 데이터를 예컨대, 상기 맵 기반 애플리케이션들에 전달하는 호리즌 공급자에게 상기 맵(객체) 데이터를 제공할 수 있다. 다른 배치들이 물론 가능할 것이다.
따라서, 여기서 이해할 점은 타일 수준에서 상기 데이터의 진위성/무결성을 확인할 수 있는 것이 상기 맵 기반 애플리케이션(들)에 궁극적으로 제공되고, 그럼으로써 잠재적으로는 예컨대 차량을 자율 주행하기 위해 사용되는 맵(객체) 데이터가 신뢰할 수 있음을 그 자체로 보장하기 않고 결과적으로는 상기 애플리케이션(들)에 관련된 기능적 안전성 기준이 충족됨을 보장하기 위해 추가적인 안전성 조치들이 요청될 수 있다는 것이다. 예를 들어, 상기 타일 데이터 구조를 확인하면 상기 타일 데이터 구조들 내에 포함된 객체 데이터의 진위성이 확인(다시 말하면, 상기 데이터가 신뢰할 수 있는 소스, 예컨대 확인된 서버로부터 유래되었음을 보여줌으로써)될 수 있지만, 여기서 인식되었던 점은 상기 객체 데이터 자체가 전송 동안 그리고/또는 저장 중에 변경될 수 있고 그래서 예컨대 상기 데이터가 상기 차량 내 맵 배포 네트워크 내에서 어떻게든 손상 또는 변경된 경우에, 그리고/또는 국부적으로 예컨대 상기 클라이언트 애플리케이션(인터페이스)에 연관된 캐시에 보관되어 있는 동안 상기 맵 기반 애플리케이션들에 제공되기 전에 상기 객체 데이터의 무결성이 바람직하게 확인되어야 한다는 것이다. 또한, 이러한 데이터가, 상기 클라이언트 애플리케이션(인터페이스)의 소프트웨어/하드웨어 복잡성을 제한하고 차량에 배포되어야 하는 추가적인 데이터의 양을 제한하면서 확인될 수 있는 것이 바람직하다.
따라서, 본 발명의 실시 예들은 보안 데이터가 특정 타일 데이터 구조 내 객체들 중 적어도 일부에 대해 객체 수준에서 (바람직하게는 위에서 설명한 타일 수준 확인에 추가하여) 제공되는 것을 제안한다. 다시 말하면, 바람직한 실시 예들에서, 타일 수준, 다시 말하면 상기 데이터가 상기 클라이언트 애플리케이션(인터페이스)에 의해 상기 서버로부터 액세스되는 수준에서 진위성 및/또는 무결성 확인을 제공하는 것 외에도, 본 발명은 (또한) 상기 맵 기반 애플리케이션에 의해 궁극적으로 사용되는 의미있는 엔터티들의 수준에서 보안 데이터, 다시 말하면 데이터가 상기 타일 데이터 구조에 저장되는 객체들을 제공한다. 객체에 대한 연관된 보안 데이터는 상기 객체 데이터 자체의 무결성을 확인하는 데 (예컨대, 상기 클라이언트 애플리케이션에 의해) 사용 가능하다. 따라서, 상기 타일 데이터 구조는 객체 데이터가 저장된 객체들 중 적어도 일부에 대해 상기 객체 데이터의 무결성을 확인하기 위한 연관된 보안 데이터를 포함한다. 이러한 방식으로, 관심 있는 객체들에 대한 객체 데이터를 그의 차량 내 배포 이전에 그리고 임의의 차량 내 애플리케이션에 의한 그의 사용 이전에 쉽게 확인하고 관련된 기능적 안전성 기준이 충족될 수 있음을 보장하는 것이 가능하다.
특히, 이는 예컨대 상기 클라이언트 애플리케이션(인터페이스)에 의해 액세스 가능한 국부 데이터 저장소로부터의 객체 데이터를 저장하거나 그에 액세스할 때 객체 데이터가 수신된 후에 손상되지 않았고 손상되어 있지 않음을 의미한다. 또한, 바람직한 실시 예들에서 이는 비교적 적은 추가 처리 오버헤드로 수행되며, 예컨대 이하에서 부연 설명되겠지만 전체 맵 데이터 배포 시스템이 요청되는 안전성 수준에서 개발되어야 함을 요구하지 않는다.
본 발명은 또한 이러한 방법들을 수행하기 위한 맵 전달(또는 생성) 시스템에 이르기까지 확장된다. 따라서, 제2 실시형태에 의하면, 디지털 맵에 의해 커버되는 내비게이트 가능한 (예컨대, 도로) 네트워크 내에서 주행하는 차량의 하나 이상의 처리 유닛(들) 상에서 실행되는 클라이언트 애플리케이션(인터페이스)와 통신하는 적어도 하나의 원격 서버를 포함하는 맵 전달 시스템이 제공되며, 상기 디지털 맵은 한 세트의 복수의 타일들로서 표현되고, 각각의 타일은 상기 내비게이트 가능한 (예컨대, 도로) 네트워크의 일부를 포함하는 특정한 지리적 영역을 표현하며, 상기 적어도 하나의 원격 서버는 맵 타일에 대한 데이터 구조를 생성하도록 구성되고, 상기 데이터 구조는 상기 타일에 의해 커버되는 지리적 영역 및/또는 상기 디지털 맵을 표현하는 타일(들) 중 다른 하나 이상의 타일들에 의해 커버되는 지리적 영역 내에 적어도 부분적으로 속하는 한 세트의 하나 이상의 객체(들)를 나타내는 객체 데이터를 포함하며, 객체 데이터가 상기 맵 타일 데이터 구조 내에 포함된 상기 한 세트의 하나 이상의 객체(들) 내 적어도 하나의 객체에 대해, 연관된 보안 데이터는 상기 적어도 하나의 객체에 대한 객체 데이터와 함께 상기 맵 타일 데이터 구조 내에 포함되고, 상기 보안 데이그의 연관된 객체 데이터의 무결성을 확인하기 위해 사용 가능하며, 상기 적어도 하나의 원격 서버는 상기 객체 데이터 및 연관된 보안 데이터를 포함하는 타일에 대한 맵 타일 데이터 구조를 상기 서버로부터 차량의 하나 이상의 처리 유닛(들) 상에서 실행되는 클라이언트 애플리케이션으로 전송하도록 구성된다.
본 발명의 이러한 제2 실시형태는 본 발명의 실시 예들 중 어느 한 실시 예에서 제1 실시형태와 관련하여 여기서 설명한 본 발명의 바람직하고 선택적인 특징들 중 임의의 하나 이상의 특징들 또는 모든 특징들을 적절하게 포함할 수 있고 바람직하게 상기 임의의 하나 이상의 특징들 또는 모든 특징들을 포함한다. 예를 들어, 비록 명시적으로 언급되어 있지 않더라도, 시스템은 본 발명의 실시형태들 또는 실시 예들 중 어느 하나에서 여기에서 방법과 관련하여 설명한 임의의 단계 또는 단계들을 수행하기 위한 수단을 포함할 수 있으며 실시 예들에서는 상기 임의의 단계 또는 단계들을 수행하기 위한 수단을 포함하고 그 반대도 마찬가지이다.
실시 예들에서, 상기 디지털 맵은 위에서 설명한 방식으로 각각의 수준이 복수 개의 타일들로 분할 되는 복수 개의 수준들(또는 레이어들)을 포함할 수 있으며 각각의 맵 타일은 결과적으로 그에 연관된 맵 레벨에 대한 객체 정보를 포함할 수 있다. 예를 들어, 상기 맵의 서로 다른 수준들은 객체 데이터의 서로 다른 타입들을 저장하는 데 사용될 수 있다. 따라서 각각의 맵 수준은 한 서브-세트의 이용 가능한 맵 정보를 포함할 수 있다. 예를 들어, 상기 맵의 기본 수준은 기본 도로 형상 정보(예컨대, 상기 내비게이트 가능한 (예컨대, 도로) 네트워크를 정의하는 한 세트의 아크들 및 노드들)를 포함할 수 있다. 그 후에 객체 및/또는 속성들의 서로 다른 타입들은 상기 맵에서 점진적으로 높은 수준들로 저장될 수 있다. 이러한 구조는 상기 맵 데이터를 요청하는 맵 기반 애플리케이션(들)이 맵 기반 애플리케이션에 의해 요청되는 정보에 따라 맵 기반 애플리케이션에 대한 관련 정보(만)를 추출하는 것이 가능하도록 상기 수준들 중 어느 한 수준으로부터 맵 데이터를 추출하는 것을 유리하게 허용한다.
상기 맵(또는 더 구체적으로는 맵 내 한 수준)을 표현하는 타일은 일반적으로 필요에 따라 임의의 적절한 형태를 취할 수 있다. 상기 타일들은 규칙적이거나 불규칙한 형태를 지닐 수 있다. 예를 들어, 어떤 경우에는, 상기 타일들이 영역별 경계(예컨대, 국가, 주, 지방)를 따를 수 있고 결과적으로는 불규칙한 형태들과 사이즈들을 지닐 수 있다. 다른 경우들에서, 그리고 더 일반적으로, 전체 영역이 세분화되는 타일들은 규칙적인 형태의 테셀레이션(tessellation)된 단위들의 어레이를 포함한다. 전형적으로 상기 타일들은 직사각형(예컨대, 정사각형)일 수 있지만, 오각형, 삼각형 등과 같은 다른 형태들이 이들의 조합들을 포함하여 적합하게 사용될 수 있다. 상기 맵에 대한 타일들 모두는 같은 사이즈를 지닐 수 있다. 그러나 실시 예에서 상기 타일들이 가변 사이즈들을 지닐 수 있는 것도 고려된다. 이는 상기 맵의 단일 레벨 내 타일들 또는 서로 다른 수준을 가로지른 타일들에 대한 경우일 수 있다. 예를 들어, 후자의 경우, 상기 맵의 서로 다른 수준들에서 데이터의 서로 다른 타입들을 저장하는 대신에(또는 이에 추가하여), 상기 서로 다른 수준들은 서로 다른 세분 수준으로 맵 데이터를 저장하는데 사용될 수 있다. 특히, 이것이 상기 맵의 단일 수준 내에 있든, 또는 다수의 맵 수준에 걸쳐 있든, 가변 타일 사이즈들을 제공하는 것은 상기 타일들의 물리적 사이즈들이 예컨대 각각의 타일 데이터가 거의 동일한 데이터 사이즈를 지니도록 선택되는 타일들의 데이터 의존 사이즈 조정을 허용할 수 있다. 이는 특히 맵 데이터의 밀도가 상당히 변하는 경우 상기 맵 데이터의 더 효율적인 전송, 및 이용 가능한 타일링 자원의 더 효율적인 사용(및 상기 타일들에 대한 연관된 데이터 허용)을 촉진하는 데 도움이 될 수 있다. 따라서, 상대적으로 관심 있는 맵 콘텐츠가 거의 없을 수 있는 상대적으로 인적이 드문(예컨대, 지방) 영역에 대해, 그 영역은 상대적으로 큰 타일을 사용하여 표현될 수 있다. 다른 한편으로, 저장될 필요가 있는 많은 양의 맵 콘텐츠가 있을 가능성이 있는 인적이 밀집된 (예컨대, 도시) 영역을 표현하기 위해 상대적으로 작은 타일이 사용될 수 있다.
따라서 각각의 타일은 상기 맵에 의해 커버되는 전체 영역 내 특정 지리 공간 영역을 나타내고 그러한 특정 지리 공간 영역에 연관된다. 그 후에, 각각의 타일에 대해 상기 타일의 연관된 영역 내에 속하고 상기 맵 내에 포함되어야 하는 임의의 객체들을 묘사하는 적절한 데이터 구조가 생성될 수 있다. 상기 타일에 대한 데이터가 저장된 객체들은 바람직하게 상기 맵에 포함될 수 있는 임의의 적합한 객체들을 포함할 수 있다. 따라서 상기 객체들은 도로 요소, 분기점, 관심 지점, 교통 표지, 신호등, 과속 카메라 등과 같은 실제 객체들을 표현할 수 있다. 그러나, 디지털 맵 데이터는 또한 맵 정보를 인코딩하는데 사용될 수 있는 타른 타입들의 정보 객체들을 포함한다. 예를 들어, 한 객체는 제한 속도가 변경되는 위치를 식별하거나 도로 요소들 간 가상 노드를 제공하는 데 사용될 수 있다. 특정 타일에 대한 데이터가 저장된 객체들은 이러한 임의의 객체들을 포함할 수 있다. 여기서 또한 이해할 점은 타일 데이터 구조 내에 저장된 데이터가 "객체들"을 나타내는 데이터로 제한되지 않고, 예컨대 바람직하게는 상기 맵 내에 포함될 수 있는 기타 적절한 데이터를 포함할 수 있다는 것이다. 예를 들어, 실시 예들에서 상기 타일 데이터 구조는 또한 속도 제한과 같은 내비게이트 가능한 (예컨대, 도로) 네트워크에 연관된 속성들을 나타내는 데이터를 포함한다. 그러한 임의의 속성 데이터는 또한 상기 객체 데이터에 대해 여기에 설명한 바와 유사한 방식으로 적절한 보안 데이터와 함께 저장될 수 있다.
여기서 이해할 점은 신뢰성이 보장되어야 하는 HD 맵에 대한 핵심 정보가 상기 내비게이트 가능한 (예컨대, 도로) 네트워크에 연관된 분기점 영역들 및 차선 그룹들을 표현하는 한 세트이 아크들 및 노드들이라는 것이다. 따라서 타일에 대한 객체 데이터가 저장된 객체들은 일반적으로 상기 타일에 의해 커버되는 맵 영역에서 도로 네트워크를 표현하는 한 세트의 아크들 및 노드들에 대한 객체 데이터를 적어도 포함한다. 따라서, 여기에서의 객체들 또는 객체 데이터에 대한 임의의 참조는 (적어도) 아크 및/또는 노드 데이터, 또는 아크들/노드들에 연관된 객체 데이터를 언급하는 것으로 실시 예들에서 이해될 수 있다.
여기서 이해할 점은 위에서 설명한 방식으로 상기 디지털 맵을 작은 영역 타일들로 분할하는 것이 저장 요구사항을 줄이기 위해 유용할 수 있지만, 이러한 수법이 해결되어야 하는 타일 경계들을 도입하게 된다는 것이다. 예를 들어 일반적으로 사람/차량이 한 타일로부터 인접한 타일로 이동하는 것이 가능하므로 타일 경계들에 걸쳐 있는 맵 객체들(도로, 분기점, 관심 지점 등)이 있게 된다. 다시 말하면, 상기 맵 객체들 중 적어도 일부는 여러 타일에 걸쳐 확장되는 요소들을 포함할 수 있다(적어도 일부는 일반적으로 상기 요소들을 포함하게 된다). 그러한 경우에, 상기 객체 데이터를 분할해야 함을 회피하기 위해 상기 객체 데이터는 중복화될 수 있고 (일부 바람직한 실시 예에서는 중복화되고) 요소가 확장되는 타일들 각각에 별도로 저장될 수 있다. 이는 상기 타일 경계들을 가로질러 서로 다른 타일들에 함께 나타나는 객체들을 '스티칭(stitching)'하려고 시도할 필요를 회피하므로 유용할 수 있다. 이러한 경우에, 보안 데이터는 관련 타일들 각각에 대해 상기 객체 데이터와 함께 저장된다. 그러나 이러한 데이터를 저장하기 위한 다른 수법들이 물론 가능하다. 예를 들어, 다른 한 바람직한 실시 예에서, 특정 객체에 대한 객체 데이터는 심지어 상기 객체가 여러 타일에 걸쳐 확장되는 요소를 표현하는 경우라도 단일 타일 데이터 구조(만)에 저장될 수 있으며, 그럼으로써 상기 객체 데이터가 그 후에 단일 타일(만)에 (직접) 저장되게 된다. 상기 객체가 적어도 부분적으로 내부에 속하는 기타 타일들에 대해, 상기 관련된 객체 데이터를 포함하는 데이터 구조를 가리키는 적절한 참조 또는 포인터가 그 후에 생성 및 저장된다. 따라서, 일부 실시 예들에서, 한 객체가 상기 맵의 특정 수준에서 여러 인접한 타일에 걸쳐 확장될 때, 상기 객체 데이터는 제1 타일(만)에 저장될 수 있고, 상기 객체가 속하는 다른 타일들은 상기 제1 타일을 참조한다. 예컨대, 제1 수준에서의 타일에 나타나는 객체 데이터가 제2 수준에서의 타일에 대해 저장되도록 서로 다른 수준들에서의 타일들 간에 유사한 참조들이 이루어질 수 있고, 상기 제2 레벨 타일에 대한 적절한 참조가 이때 상기 제1 레벨 타일에 포함된다.
따라서, 여기서 이해할 점은 특정한 타일 데이터 구조에 저장된 객체를 나타내는 데이터가 객체 데이터 자체(다시 말하면, 객체를 직접적으로 나타내는 데이터)일 수도 있고 예컨대, 객체 데이터가 저장되어 있는 다른 한 타일 데이터 구조에 대한 적절한 포인터의 형식으로 상기 객체를 단지 간접적으로 나타내는 데이터일 수도 있다는 것이다. 따라서, 한 타일 데이터 구조는 그의 대응하는 타일에 의해 커버되는 영역 내에 속하는 객체에 대한 데이터뿐만 아니라 상기 타일들 중 다른 한 타일(예컨대, 상기 데이터가 저장되어 있는 타일과 동일한 수준의 맵 내 인접 타일일 수도 있고 다른 한 수준 상의 타일일 수도 있음)의 영역 내측에 적어도 부분적으로 속하는 객체들을 결과적으로 포함할 수 있다. 이 경우에 상기 객체에 대한 보안 데이터는 또한 상기 제1 타일, 다시 말하면 상기 객체 데이터가 저장되어 있는 타일에 대한 데이터 구조에만 저장될 수 있다.
그러나 원칙적으로 타일에 대한 객체들을 나타내는 데이터를 저장하기 위한 다양한 다른 배치들이 가능할 것이다. 실제로, 일반적으로는 특정 타일에 대한 객체들을 나타내는 데이터가 임의의 적절한 방식으로 저장될 수 있다. 예를 들어, 상기 데이터는 어떤 방식으로든 상기 객체를 나타낼 수 있으며, 이는 관련된 객체 정보가 추출되고 적절하게 사용되는 것을 허용하는 어떤 적절한 연관이 있는 한은 상기 데이터와 상기 객체 간 어느 특정 형식의 관계를 의미하지 않는다. 상기 객체 데이터는 한 타일에 대한 데이터 구조에 직접 또는 간접적으로 저장될 수 있다. 또한, 상기 데이터는 필요에 따라 압축 포맷으로 저장될 수도 있고 비-압축(원시) 포맷으로 저장될 수도 있다.
한 객체에 연관된 보안 데이터는 필요에 따라 어느 적절한 형식을 취할 수 있다. 데이터의 무결성 및/또는 진위성을 확인하기 위한 다양한 기법이 잘 확립되어 필요에 따라 사용될 수 있다. 특히 바람직한 실시 예들에서, 상기 보안 데이터는 64비트로 잘린 SHA-256 해시 값(또는 해시 '코드')을 포함한다. 이는 신뢰성과 저장 공간 및 셀룰러 네트워크 사용에 대한 영향 간 적절한 트레이드-오프(trade-off)를 제공하는 것으로 밝혀졌다. 보안 해시들은 또한 원하는 기능적 안전성 수준에서 쉽게 구현될 수 있다. 예를 들어, 보안 데이터는 또한 예컨대 디지털 서명의 형식으로 제공될 수 있을 것이다. 그러나 디지털 서명을 검사하는 것은 해시 값을 (재)계산하는 것보다 더 복잡하고 결과적으로는 특히 시스템이 더 높은 기능적 안전성 수준에 따라 (예컨대, ISO 26262:2018 ASIL-BASIL- B 수준 이상에서) 설계되어야 할 경우에 구현하기 더 어렵다. 따라서, 실시 예들에서, 보안 데이터가 저장되는 타일 데이터 구조 내 객체들 중 적어도 일부에 대해(그리고 바람직하게는 상기 객체들 각각에 대해), 상기 보안 데이터는 상기 서버에서 계산되는 객체 데이터에 대해 보안 해시(값)의 형식으로 제공될 수 있다. 따라서 상기 객체 데이터는 클라이언트 애플리케이션(인터페이스)이 (적어도) 상기 객체 데이터에 기초하여 상기 해시 값을 재계산하고 이를 상기 보안 데이터 내에 포함된 해시 값과 비교함으로써 상기 클라이언트 애플리케이션(인터페이스)에서 확인될 수 있다. 바람직한 실시 예들에서, 맵 타일 메타데이터는 또한 상기 맵 데이터와는 별도로 전송된다. 상기 메타데이터는 예컨대 상기 맵 및/또는 상기 타일에 대한 버전 및 포맷 정보를 포함할 수 있다. 이 경우에, 한 객체에 대한 객체 데이터에 연관된 해시는 바람직하게는 상기 객체 데이터에 기초하여 계산되고 또한 상기 객체 데이터 내 상기 타일에 대한 메타데이터가 저장된다. 상기 메타데이터는 바람직하게는 해시들에 의해 또한 보호된다. 다시 말하면, 한 맵 타일은 바람직하게는 그 자체의 해시를 지니는 연관련 메타데이터를 지닌다.
그러나 상기 객체 데이터 및 메타데이터를 인증하기 위한 다른 배치들이 물론 가능하며 보안 해시를 사용할 필요가 없다. 예를 들어, 여기서 이해할 점은 상기 보안 데이터가 다른 실시 예에서 대안으로 또는 추가로 임의의 적절한 오류 검출 코드(예컨대, 최소 거리 코드, 해시 코드, 체크섬 코드, 패리티 코드, 순환 중복 검사 등), 오류 정정 코드(블록 코드, 컨볼루션 코드, 해밍 코드, 비터비 코드 등), 메시지 인증 코드, 전자 서명 등을 포함할 수 있다는 것이다. 또한, 이러한 기법들의 임의의 조합은 실시 예들에 적용될 수 있다.
위에서 제안한 바와 같이, 상기 보안 데이터는 특정 타일에 대한 객체 데이터가 저장된 각각 또는 모든 객체에 대해 저장될 수 있다. 보안 데이터는 각각의 객체에 대해 개별적으로, 다시 말하면 일대일 대응으로 저장될 수 있다. 대안으로, 보안 데이터는 한 세트의 하나 이상의, 예컨대, 복수의 객체들, 예컨대 일반적으로 함께 액세스 가능한 한 세트의 객체들에 대한 객체 데이터에 연관되어 상기 객체 데이터에 대해 저장될 수 있다. 그러나 타일 데이터 구조 내에 포함된 모든 객체 데이터에 대한 보안 데이터를 저장할 필요가 없으며, 일부 실시 예들에서는 특정 타일 데이터 구조 내 객체들 모두보다는 적게 보안 데이터가 저장된다. 예를 들어, 보안 데이터는 어떤, 예컨대 안전성 필수 객체들에 대해서만 저장될 수 있다. 이는 상기 디지털 맵의 기본 수준 내 객체들에 대한 보안 데이터만 저장하는 것을 포함할 수 있을 것이다. 또는, 서로 다른 확인 수준들을 제공하기 위해 서로 다른 타입들의 객체들에 대해 예컨대 서로 다른 수준들의 맵으로 서로 다른 타입들의 보안 데이터가 저장될 수 있다.
예를 들어, 여기서 이해할 점은 아크들(차선 그룹, 분기점 영역) 및 노드들과 같은 도로 형상 요소들이 HD 맵의 필수 요소 및 HD 맵 애플리케이션들의 핵심 안전성 필수 요소이라는 것이다. 따라서 보안 데이터는 적어도 이러한 객체들에 대해 저장되어야 한다(저장된다. 결과적으로, 실시 예들에서, 맵 타일들은 노드들에 의해 연결된 복수 개의 아크들로서 지리적 영역의 일부 내 내비게이트 가능한 네트워크를 표현할 수 있으며, 한 타일의 각각의 아크 및 노드는 객체 데이터 및 이에 연관된 보안 데이터(예컨대, 해시 값)를 지닌다. 예를 들어, 특히 바람직한 실시 예에서, 한 해시 값(또는 해시 코드)은 데이터가 저장되고 있는 각각의 아크(예컨대, 차선 그룹 또는 분기점 영역) 및 노드에 대해 상기 서버에서 계산되고 상기 해시 값은 그 후에 상기 아크/노드를 묘사하는 객체 데이터와 함께 타일 데이터 구조 내에 추가된다. 상기 해시 값은 상기 객체 데이터뿐만 아니라 상기 객체가 저장된 타일에 대한 임의의 연관된 메타데이터도 커버하는 것이 바람직하다. 따라서, 한 타일에 대해 객체 데이터가 저장되는 각각의 아크 및 노드는 연관된 해시 값을 지니며 이는 상기 객체 데이터뿐만 아니라 상기 객체 데이터를 포함하는 타일에 대한 연관된 타일 메타데이터에 기초하여 이루어지는 것(계산되는 것)이 바람직하다. 상기 아크/노드에 대한 객체 데이터와 해시 값을 포함하는 데이터 구조가 클라이언트 애플리케이션(인터페이스)에서 언패킹(unpacking)되면, 상기 아크/노드에 대한 해시 값은 상기 수신된 객체 데이터(및 바람직하게는 또한 연관된 메타데이터(별도로 전송됨) - 상기 해시 값은 또한 이에 기초하여 이루어짐 -)에 기초하여 상기 클라이언트 애플리케이션(인터페이스)에 의해 다시 계산될 수 있으며, 상기 재계산된 해시 값은 상기 객체 데이터의 무결성을 확인하기 위해 상기 서버에서 계산된 원래 해시 값과 비교된다. 실시 예들에서, 상기 맵 데이터와 별도로 전송되는 타일 메타데이터는 또한 해시들에 의해 보호된다. 따라서 상기 클라이언트 애플리케이션(인터페이스)은 상기 타일 내 상기 객체 데이터의 무결성을 검사하는 데 사용되기 전에 상기 메타데이터의 무결성을 검사하기 위해 상기 타일 메타데이터에 대해 유사한 계산 및 비교를 수행할 수 있다. 따라서, 상기 방법은 일반적으로 데이터가 상기 타일 데이터 구조에 저장되어 있는 하나 이상의 객체(들)를 나타내는 객체 데이터를 추출하기 위해 상기 클라이언트 애플리케이션이 상기 타일 데이터 구조를 언패킹하는 단계; 및 상기 클라이언트 애플리케이션이 상기 연관된 보안 데이터를 사용하여 상기 추출된 객체 데이터의 무결성을 확인하는 단계를 포함한다.
그러나, 예컨대 제공되는 보안 데이터의 타입에 따라 다양한 다른 배치가 물론 가능할 것이다.
덜 필수적인 다른 객체들의 경우 보안 데이터를 저장할 필요가 없을 수 있다. 그럼에도 불구하고, 바람직한 실시 예들에서, 보안 데이터는 또한 상기 맵 내 다른 객체들에 대해 저장된다. 예를 들어, 바람직한 실시 예에서, 특정 아크들 및 노드들에 연관된 속도 제한, 주행 제한 등이 될 수 있는 상기 맵 내 상위 수준에 있는 객체들은 연관된 객체 데이터를 커버하는 연관된 해시 및 상기 객체 데이터가 연관되어 있는 아크 또는 노드에 대한 인덱스 참조를 얻는다. 여기서 유념할 점은 차선 그룹들과 분기점 영역들에 그들의 연관된 2개의 노드에 대한 "키(key) 또는 인덱스 참조들"이 포함될 수 있다는 것이다. 이때 그들이 차선 그룹들 및 분기점 영역들의 해시들에 의해 커버되므로 임의의 하위 맵의 무결성이 보장될 수 있다.
상기 객체 데이터가 예컨대 그의 연관된 보안 데이터를 사용하여, 예컨대 위에서 설명한 방식으로 적절하게 확인된 경우, 상기 맵 데이터를 요청하는 임의의 맵 기반 애플리케이션들에 적절하게 사용 및 배포될 수 있다. 반면에, 상기 객체 데이터가 확인될 수 없는 경우, 다시 말하면 보안 검사가 실패되어 상기 객체 데이터가 확인될 수 없는 경우, 적절한 무결성 오류 신호가 생성될 수 있다. 대안으로, 또는 추가로, 상기 확인이 실패될 때, 상기 클라이언트 애플리케이션(인터페이스)은 상기 객체 데이터를 획득하기 위해 다른 시도를 할 수 있다. 예를 들어, 타임아웃 기준이 충족될 때까지(예컨대, 특정 기간이 경과하거나 특정 횟수의 시도가 수행될 때까지) 다중 시도가 이루어질 수 있으며, 이 시점에서 적절한 무결성 오류 신호가 생성될 수 있다. 상기 무결성 오류 신호는 바람직하게는 이때 맵 기반 애플리케이션(들)에 전달되고 그에 따라 작동된다. 예를 들어, 상기 맵 기반 애플리케이션이 자율 주행 애플리케이션인 경우(또는 맵 기반 애플리케이션이 자율 주행 애플리케이션에 맵 데이터를 차례로 제공하는 차량 호리즌 공급자인 경우), 무결성 오류 메시지가 생성되면, 자율 주행 애플리케이션이 차량을 안전 모드에서 작동시킬 수 있고 그리고/또는 차량을 안전 정지시킬 수 있다.
상기 디지털 맵을 표현하는 타일들에 대한 타일 데이터 구조들은 중앙 서버에서 생성된 다음에 필요에 따라 상기 서버로부터 상기 내비게이트 가능한 (예컨대, 도로) 네트워크 내에서 주행하고 상기 서버와 통신하는 임의의 차량들로 전송될 수 있다. 차량 상에서 실행되는 클라이언트 애플리케이션(인터페이스)은 임의의 적절한 무선 통신 프로토콜을 사용하여 상기 서버와 통신할 수 있다. 실시 예들에서, 상기 통신은 (TLS를 통해) HTTPS 프로토콜을 사용하여 수행된다. TLS 서버와 TLS 클라이언트 간에 전송되는 모든 메시지는 암호화되어 비록 인터셉트(intercept)되더라도 비공개로 유지된다. TLS는 메시지 다이제스트를 계산함으로써 메시지 무결성을 제공한다. 인증서 체인 기반 인증서 확인을 통해 TLS 클라이언트(다시 말하면, 상기 서버와 통신하는 상기 클라이언트 애플리케이션(인터페이스)의 일부)가 상기 TLS 서버들로부터 제공되는 데이터(다시 말하면, 상기 맵 타일 데이터 및 상기 맵 타일 메타데이터)를 인증할 수 있다. 그러나 다른 배치들이 물론 가능할 것이다.
여기서 이해할 점은 여기에서 사용된 "서버(server)"가 일반적으로 한 세트 또는 한 클러스터의 하나 이상의 서버(들)를 언급할 수 있다는 것이다. 특히, 여기서 이해할 점은 서버가 (단일의) 물리적 데이터 서버일 필요는 없지만, 예컨대 클라우드 컴퓨팅 환경을 실행하는 가상 서버를 포함할 수 있다는 것이다. 따라서 상기 서버는 클라우드 서버일 수 있다. 따라서, 여기서 또한 이해할 점은 차량이 예컨대 대응되는 복수 개의 맵 데이터 소스들에 대한 맵 데이터를 획득할 수 있는 복수 개의 서버들로부터 맵 데이터를 수신할 수 있다는 것이다. 따라서, 여기에서 서버에 대한 임의의 참조들은 문맥에서 달리 요구되는 경우를 제외하고 "적어도 하나의 서버"를 의미하는 것으로 이해되어야 한다. 다양한 다른 배치들이 물론 가능할 것이다.
따라서, 상기 서버는 일반적으로 디지털 맵 데이터와 아울러 상기 디지털 맵 데이터가 상기 타일들로 분류되어야 하는 방식을 나타내는 타일 매개변수들의 데이터베이스에 액세스하는 타일 생성기를 포함할 수 있다. 상기 타일 생성기는 디지털 맵 컴파일러에 의해 구현될 수 있다. 디지털 맵 컴파일러는 하나의 포맷으로 데이터베이스로부터 얻은 맵 정보를 다른 포맷, 예컨대 표준화된 맵 사양(NDS, OSM 등)을 준수하는 포맷으로 컴파일하거나 또는 특정 애플리케이션(자동차 내비게이션, 도보 내비게이션, 차량 타입별 내비게이션, 대중교통 내비게이션, ADAS 시스템, 자율 주행 차량 제어 등)에 대한 맵 정보를 생성한다. 예를 들어, 맵 컴파일러는 상기 맵 정보를 컴파일하기 위해 독점 정보(proprietary information)를 사용할 수 있는 백 오피스 애플리케이션(back office application )에 의해 제공될 수 있다. 상기 맵 컴파일러는 프레젠테이션의 한 형식으로 제시된 것으로 예컨대 상기 디지털 맵 데이터베이스에 제시된 것으로 디지털 맵 데이터를 취하여 타일들을 생성한다. 각각의 타일은 상기 디지털 맵에 의해 커버되는 사전에 결정된 영역에 관련된 디지털 맵 데이터를 포함한다. 다시 말하면, 상기 디지털 맵은 일반적으로 상기 서버가 한 세트의 맵 소스 데이터를 획득하고 상기 맵 소스 데이터를 상기 디지털 맵의 대응하는 레벨들 및/또는 타일들로 분류한 다음에 그에 따라 상기 타일 데이터 구조들을 컴파일함으로써 생성된다. 상기 맵 내에 포함된 데이터는 복수 개의 서로 다른 소스들로부터 획득될 수 있다. 여기서 이해할 점은 상기 맵 데이터가 임의의 적절한 포맷으로 상기 타일 데이터 구조 내에 추가될 수 있다는 것이다. 예를 들어, 객체 데이터는 한 타일에 대한 데이터 구조에 직접 또는 간접적으로 저장될 수 있다. 또한 상기 데이터는 필요에 따라 압축 또는 비-압축(원시) 포맷으로 저장될 수 있다. 바람직하게는 상기 데이터가 전송을 용이하게 하기 위해 압축된다.
일단 특정 타일에 대한 맵 타일 데이터 구조가 컴파일되면, 상기 생성된 타일 데이터 구조는 이때 상기 디지털 맵을 표현하는 다른 타일들에 대한 대응하는 타일 데이터 구조들과 함께 상기 서버 측 적절한 맵 타일 데이터 저장소(예컨대, 데이터베이스)에 저장될 수 있다. 따라서, 단일의 타일에 대한 타일 데이터 구조를 생성하는 것과 관련하여 실시 예들이 설명되었지만, 여기서 이해할 점은 위에 제시한 동일한 방식으로 상기 맵을 표현하는 각각 및 모든 타일에 대해 타일 데이터 구조가 생성될 것이라는 것이다. 맵 타일들(또는 적어도 이들의 최신 버전들)에 대한 타일 데이터 구조들은 이때 상기 서버 상의 적절한 맵 타일 데이터 저장소에 저장된다. 따라서, 상기 서버는 맵 타일 데이터 저장소를 포함한다. 따라서, 실시 예들에서, 상기 방법은 타일 데이터 구조(들)를 상기 서버 상의 맵 타일 데이터 저장소에 저장하는 단계를 포함하며, 상기 맵 타일 데이터 저장소로부터 상기 타일 데이터 구조들이 상기 서버로부터 상기 타일 데이터 구조들에 저장된 맵 데이터를 요청하는 임의의 차량으로의 전송을 위해 차후에 회수될 수 있다. 상기 서버는 또한 상기 타일 데이터 구조와 함께 차량으로 전송되는 연관된 메타데이터를 저장하기 위한 메타데이터 데이터 저장소를 포함하는 것이 바람직하다. 상기 타일 데이터 구조는 예컨대 이하에서 부연 설명되는 방식으로 상기 디지털 맵으로 정의된 특징 또는 영역에 관한 정보 요청에 응답하여 상기 맵 타일 데이터 저장소로부터의 전송을 위해 이용 가능하다. 상기 타일 데이터 구조들은 또한 시간 경과에 따라 업데이트되게 된다. 따라서, 특정한 한 세트의 맵 타일들은 특정 '맵 버전'을 지니는 디지털 맵을 집합적으로 형성할 수 있다. 상기 맵 내 각각의 맵 타일에는 그 자체의 연관된 '타일 버전'이 있다. 여기서 이해할 점은 타일 버전이 다수의 맵 버전에 연관될 수 있다는 것이다. 상기 타일 버전 및 맵 버전 정보는 바람직하게는 상기 타일 데이터 구조에 연관된 메타데이터에 의해 저장 및 전송된다. 따라서 각각의 맵 타일에 대해 다수의 메타데이터 레코드가 있을 수 있다. 지정된 맵 버전은 일반적으로 상기 서버 상에서 이용 가능한 최신 맵 버전(제1 및 제2 애플리케이션을 통해 상기 서버에 최신 버전 호출을 할 수 있는 연결이 있는 경우) 또는 (어떠한 연결도 없는 경우) 사용된 최신 맵 버전이어야 한다.
그 후에, 타일 렌더링 애플리케이션은 예컨대 차량의 현재 위치 또는 다른 관심 위치에 기초하여 맵 데이터를 상기 서버로부터 요청하는 차량으로의 전송에 대해 필요에 따라 상기 맵 타일 데이터 저장소로부터 상기 타일 데이터 구조를 회수할 수 있다. 따라서 상기 타일 데이터 구조들은 상기 맵 타일 데이터 저장소로부터 차량 상에서 실행되는 클라이언트 애플리케이션(인터페이스)으로 선택적으로 전송(예컨대 전달)될 수 있으며, 이로부터 관련된 맵 데이터가 궁극적으로 상기 맵 데이터를 요청하는 맵 기반 애플리케이션(들)에 배포될 수 있다. 예를 들어, 상기 맵 기반 애플리케이션은 상기 내비게이트 가능한 (예컨대, 도로) 네트워크 내 특정한 실제 특징 또는 지리 공간 영역 또는 위치에 관련된 데이터에 대한 요청을 생성할 수 있다. 여기서 이해할 점은 상기 맵 기반 애플리케이션이 타일 수준에서 상기 데이터를 사용하지 않는다는 것이다. 따라서 기능 요청은 타일 수준에서 수행될 수 있는 객체 데이터(예컨대, 아크 또는 노드에 관련된 객체 데이터)에 대한 적절한 요청으로 변환되어야 한다. 실시 예들에서 차량에 연관된 컴퓨터 장치 상에서 실행되는 클라이언트 애플리케이션(인터페이스)은 요청된 맵 데이터를 획득하기 위해 이러한 요청을 실행하는 역할을 한다. 예를 들어, 상기 클라이언트 애플리케이션(인터페이스)은 하나 이상의 객체(들)를 나타내는 데이터를 추출하기 위해 상기 타일 데이터 구조를 언패킹하고, 그 후에 추출된 객체 데이터의 무결성을 확인하기 위해 상기 연관된 보안 데이터를 사용할 수 있다. 상기 클라이언트 애플리케이션(인터페이스)은 예를 들어 차량의 하나 이상의 전자 제어 유닛(electronic control unit; ECU)(들) 상에서 적어도 부분적으로 실행할 수 있다.
바람직한 실시 예들에서 상기 클라이언트 애플리케이션은 서로 통신하는 제1 애플리케이션(클라이언트 프론트엔드) 및 제2 애플리케이션(클라이언트 백엔드)으로 분할된다. 이는 이하에서 부연 설명되겠지만 원하는 기능적 안전성 수준을 달성하기 위한 특히 효율적인 구현을 제공할 수 있다.
특히, 상기 클라이언트 애플리케이션은 차량에 탑재되어 실행되는 하나 이상의 맵 기반 애플리케이션(들)과 통신하는 제1 애플리케이션 및 상기 서버 및 상기 제1 애플리케이션과 통신하는 제2 애플리케이션을 포함할 수 있다. 상기 제1 애플리케이션은 바람직하게는 상기 맵 기반 애플리케이션과 동일한 ECU 상에서 실행된다. 상기 제2 애플리케이션은 또한 동일한 ECU 상에 있을 수 있다. 그 경우에 상기 제1 및 제2 애플리케이션은 프로세스 간 통신을 제공하는 기본 ECU 플랫폼과 원격 프로시저 호출을 통해 상호작용할 수 있다. 이를 통해 ECU 플랫폼 운영 체제에 의해 제공되는 안전한 프로세스 간 통신에 의존할 수 있는데, 다시 말하면, 프로세서 간 통신을 위한 안전한 통신 프로토콜 스택이 회피될 수 있다. 그러나, 반드시 그럴 필요는 없으며 상기 제2 애플리케이션은 상기 제1 애플리케이션에 대해 별도의 ECU 플랫폼 상에 제공될 수 있다. 마찬가지로, 상기 제1 애플리케이션은 상기 맵 기반 애플리케이션에 대해 별도의 플랫폼 상에 제공될 수 있다. 여기서 이해할 점은 일반적으로 차량에 탑재되어 실행되는 복수 개의 맵 기반 애플리케이션들이 있을 수 있고 이들 각각은 동일한 클라이언트 프론트엔드에 의해 (또는 대안으로 복수 개의 대응하는 클라이언트 프론트엔드들에 의해) 서비스될 수 있다는 것이다.
상기 제1 애플리케이션(클라이언트 프론트엔드)은 상기 맵 기반 애플리케이션으로부터의 요청들을 처리하고 이들을 객체 요청들, 다시 말하면 상기 맵 기반 애플리케이션이 정보를 요청하고 있는 특정한 (실제) 특징에 관련된 객체 데이터에 대한 요청들로 변환하는 역할을 한다. 따라서, 상기 제1 애플리케이션은 상기 내비게이트 가능한 (예컨대, 도로) 네트워크의 특정한 특징에 관한 맵 데이터에 대한 요청들을 상기 맵 기반 애플리케이션(들)로부터 수신할 수 있다. 그 후에, 상기 제1 애플리케이션은 이러한 요청들을 처리하여 그러한 특징에 연관된 상기 맵을 표현하는 타일들 중 하나의 타일 내에 정의된 객체를 결정한다. 그 후에, 상기 제1 애플리케이션은 상기 제2 애플리케이션으로부터 관심 영역/객체에 대한 객체 데이터 및 보안 데이터를 요청한다. 그 후에, 상기 객체 데이터 및 그의 연관된 보안 데이터는 상기 제2 애플리케이션에 의해 획득되어 상기 제1 애플리케이션에 제공된다. 그 후에, 상기 제1 애플리케이션은 상기 객체 데이터의 원하는 확인, 다시 말하면 상기 타일 데이터 구조 내에 또한 제공되는 객체에 대한 연관된 보안 데이터(예컨대, 해시 값)를 사용한 객체 수준 확인을 수행할 수 있다. 상기 확인이 성공되면 상기 제1 애플리케이션은 그 후에 상기 객체 데이터를 상기 맵 기반 애플리케이션(들)에 제공할 수 있다. 상기 확인이 실패되면, 무결성 오류 메시지가 생성될 수 있는데, 이는 추가적인 요청 등을 프롬프트(prompt)할 수 있다. 마찬가지로 요청된 맵 데이터가 일정 기간 내에 반환되지 않으면 타임아웃 오류 메시지가 생성되어 상기 맵 기반 애플리케이션에 전달될 수 있다.
따라서 상기 제2 애플리케이션(클라이언트 백엔드)은 상기 서버와 상기 제1 애플리케이션(클라이언트 프론트엔드) 간 인터페이스의 역할을 한다. 따라서, 상기 제2 애플리케이션은 디지털 맵 데이터에 대한 요청들을 적어도 하나의 서버에 발행하도록 작동 가능하다. 이러한 요청들에 연관된 대기시간을 줄이기 위해, 상기 서버로부터 수신된 적어도 일부 객체 데이터 및 보안 데이터는 예컨대 상기 제2 애플리케이션에 의해 액세스 가능한 적절한 캐시에 국부적으로 저장될 수 있고 바람직하게는 저장된다. 따라서, 이러한 데이터가 상기 제1 애플리케이션에 의해 상기 제2 애플리케이션으로부터 요청될 때, 상기 제2 애플리케이션은 먼저 연관된 캐시로부터 상기 데이터를 획득하려고 시도할 수 있다. 상기 캐시로부터 상기 데이터가 입수 가능하지 않은 경우(캐시 누락이 있는 경우) 상기 서버로부터 상기 데이터가 획득된다. 반면에 상기 데이터가 상기 캐시에서 이미 입수 가능한 경우(캐시 적중), 이는 이때 확인 등을 위해 상기 제1 애플리케이션에 즉시 제공될 수 있다. 상기 객체 데이터 및 보안 데이터는 예컨대 적절한 캐시 관리 정책에 기초하여 상기 캐시로부터 주기적으로 축출될 수 있다. 따라서, 상기 제2 애플리케이션은 바람직하게는 상기 타일 데이터 구조 및 상기 타일 메타데이터를 국부적으로 저장하기 위한 하나 이상의 캐시(들)를 포함한다. 예를 들어, 상기 제2 애플리케이션은 상기 원격 서버로부터 획득된 복수 개의 타일 데이터 구조를 저장하는 맵 타일 캐시를 포함할 수 있다. 상기 제2 애플리케이션은 바람직하게는 또한 상기 원격 서버로부터 획득된 타일 데이터 구조들 각각에 대한 연관된 메타데이터를 저장하는 맵 타일 메타데이터 캐시를 포함한다. 그 후에 상기 제2 애플리케이션은 캐시(상기 데이터가 캐시에서 입수 가능한 경우) 또는 필요한 경우 상기 서버로부터 상기 제1 애플리케이션에 의해 요청된 임의의 맵 데이터를 획득할 수 있다. 상기 제2 애플리케이션(클라이언트 백엔드)은 또한 바람직하게는 상기 타일 데이터 구조들이 상기 서버로부터 수신되어 상기 캐시 내에 추가됨에 따라 상기 타일 데이터 구조들의 원하는 확인/인증을 수행한다. 예를 들어, 상기 타일 데이터 구조들이 디지털 서명된 경우, 상기 제2 애플리케이션(클라이언트 백엔드)은 바람직하게는 상기 디지털 서명을 검사하여 상기 타일 데이터 구조를 확인한다. 다시 말하면, 상기 타일 수준 확인은 상기 제2 애플리케이션(클라이언트 백엔드)에 위임되고 상기 객체 수준 확인은 상기 제1 애플리케이션(클라이언트 프론트엔드)에 위임된다.
따라서, 실시 예들에서, 상기 방법은, 상기 제1 애플리케이션에 의해, 상기 내비게이트 가능한 네트워크의 특징에 관한 디지털 맵 데이터에 대한 요청을 상기 맵 기반 애플리케이션으로부터 수신하는 단계; 상기 제1 애플리케이션에 의해, 상기 제2 애플리케이션으로부터 요청된 디지털 맵 데이터에 관련된 적어도 하나의 아크 또는 노드에 대한 객체 데이터 및 보안 데이터(예컨대, 해시 값)를 요청하는 단계; 상기 제2 애플리케이션에 의해, 상기 요청된 타일이 상기 맵 타일 캐시에 저장되어 있지 않은 경우 상기 맵 타일 캐시, 또는 상기 맵 타일 데이터 저장소로부터 상기 요청된 객체 데이터 및 보안 데이터(예컨대, 해시 값(들))을 획득하는 단계; 및 그들을 상기 제1 애플리케이션에 제공하는 단계를 포함한다. 연관된 타일 메타데이터는 또한 예컨대 위에서 설명한 바와 같이 전송될 수 있다. 따라서, 상기 방법은, 상기 제1 애플리케이션에 의해, 요청된 디지털 맵 데이터에 관련된 적어도 하나의 아크 또는 노드에 관한 맵 타일에 대한 메타데이터를 상기 제2 애플리케이션으로부터 요청하는 단계; 상기 제2 애플리케이션에 의해, 상기 요청된 타일 메타데이터가 상기 맵 타일 메타데이터 캐시에 저장되어 있지 않은 경우 상기 맵 타일 메타데이터 캐시, 또는 상기 맵 타일 메타데이터 데이터 저장소로부터 상기 요청된 타일 메타데이터를 획득하는 단계; 및 이를 상기 제1 애플리케이션에 제공하는 단계를 더 포함한다. 그 후에, 상기 제1 애플리케이션은 상기 데이터를 상기 맵 기반 애플리케이션에 제공하기 전에 상기 연관된 보안 데이터(예컨대, 해시)를 사용하여 상기 데이터의 무결성을 확인할 수 있다. 따라서, 상기 방법은, 상기 제1 애플리케이션에 의해, 상기 적어도 하나의 아크 또는 노드에 대한 새로운 해시 값을 계산하는 단계; 상기 제1 애플리케이션에 의해, 상기 새로운 해시 값을 상기 수신된 해시 값과 비교하는 단계; 및 상기 제1 애플리케이션에 의해, 상기 요청된 디지털 맵 데이터 또는 무결성 오류 메시지를 상기 맵 기반 애플리케이션에 제공하는 단계를 포함할 수 있다. 바람직한 실시 예들에서 상기 보안 데이터는 (적어도) 상기 객체 데이터 및 또한 상기 객체 데이터가 저장된 타일에 대한 연관된 타일 메타데이터에 기초하여 결정되는 해시 값을 포함한다. 따라서, 상기 새로운 해시 값의 계산은 상기 객체 데이터 및 또한 연관된 타일 메타데이터를 사용하여 수행될 수 있다.
따라서 상기 클라이언트 애플리케이션(인터페이스)은 상기 디지털 맵 내 임의의 특정한 특징 또는 영역에 관한 정보에 대한 요청들일 수 있는 상기 맵 기반 애플리케이션(들)으로부터의 정보에 대한 요청들을 그러한 특징들에 연관된 객체 데이터에 대한 요청들로 변환하여 상기 관련된 객체 데이터가 그의 연관된 타일 데이터 구조로부터 페치(fetch)되는 것을 허용한다. 위에서 설명한 방식으로 상기 클라이언트 애플리케이션을 제1 애플리케이션(클라이언트 프론트엔드)과 제2 애플리케이션(클라이언트 백엔드)으로 분할하는 이점은 상기 기능적 안전성 요구사항이 상기 제1 애플리케이션(클라이언트 프론트엔드)에 완전히 위임될 수 있다는 것이다. 예를 들어, 상기 객체 데이터를 상기 요청을 생성한 맵 기반 애플리케이션에 최종적으로 배포하기 전에 상기 객체 데이터의 임의의 원하는 확인을 바람직하게 수행하는 것이 상기 제1 애플리케이션이다. 따라서 상기 제1 애플리케이션(클라이언트 프론트엔드)은 이러한 데이터의 신뢰성을 보장하기 위해 요구되는 엄격한 기능적 안전성 프로시저들을 충족하도록 개발되어야 한다. 그러나 이것이 의미하는 것은 상기 제2 애플리케이션(클라이언트 백엔드)이 이러한 엄격한 안전성 프로시저들을 충족할 필요가 없다는 것이다.
예를 들어, 도로 차량에 대한 ISO 26262 기능적 안전성 표준은 4가지 자동차 안정성 무결성 수준(automotive safety integrity level; ASIL), 다시 말하면 ASIL-A, ASIL-BASIL-B, ASIL-C, ASIL-D를 정의한다. ASIL-D는 최고 수준의 안전성 무결성을 나타낸다(ASIL A는 최저 수준의 안전성 무결성을 나타낸다). 추가 등급 QM(Quality Management; 품질 관리)은 어떠한 안전성 요구사항이 나타나 있지 않은 경우를 나타내는데 사용된다. 높은 ASIL 제품들을 개발하는 것은 복잡하고 개발 프로세스에 대한 요구사항이 많기 때문에 노동 집약적이며 비용이 많이 든다. 그러나 ISO 26262 표준은 ASIL이 높은 요구사항을 ASIL이 동일하거나 낮은 2개 이상의 요구사항으로 분해할 수 있는 ASIL 분해 방법을 정의하였다. 이러한 방법을 적용함으로써, 높은 ASIL에서 구현해야 하는 시스템의 일부가 예컨대 상기 제1 애플리케이션(클라이언트 프론트엔드)으로 제한될 수 있다.
예를 들어, 차량 내 HD 맵 전달 시스템이 적어도 ASIL-BASIL-B에서 개발되는 것이 일반적으로 바람직하다. 위에 제시된 바와 같이 상기 클라이언트 애플리케이션을 분할함으로써, 상기 제1 애플리케이션(클라이언트 프론트엔드)은 ASIL-BASIL-B 표준(또는 필요한 경우 그 이상)으로 개발될 수 있다. 이러한 구현은 임의적 그리고/또는 시스템적 결함을 설명하기 위해 적절한 조치를 사용하는 것을 포함할 수 있다. 예를 들어, 임의의 결함으로 인해 코드, 저장된 데이터 또는 실행 중인 소프트웨어 애플리케이션의 I/O 데이터가 변경될 수 있다. 반면에 소프트웨어 애플리케이션의 요구사항, 설계 또는 구현의 오류로 인해 시스템 결함이 발생할 수 있다. 예를 들어 런타임 테스트, 결함 검출, 결함 모니터링, 중복 실행 및 중복된 다양한 구현을 추가함으로써 하여 임의적 결함이 줄어들게 될 수 있다. 예를 들어, 소프트웨어 애플리케이션에서 모듈의 (별도로 개발된) 구현들의 수를 늘리면 임의적 결함이 양자 모두의 구현에서 동일한 효과를 일으킬 가능성이 극히 낮으므로 그러한 모듈이 임의적 결함에 덜 취약하게 된다. 이는 상기 소프트웨어 애플리케이션에서 검출될 수 있다. 이같은 다양한 소프트웨어 모듈들은 또한 서로 다른 구현들이 동일한 소프트웨어 버그를 지닐 가능성이 낮으므로 시스템적 결함을 줄인다. 원하는 기능적 안정성 수준으로 상기 제1 애플리케이션(클라이언트 애플리케이션)을 설계할 때 이러한 기법들 중 어느 한 기법이 사용될 수 있다. 예를 들어, 상기 클라이언트 애플리케이션은 실시 예들에서 적어도 부분적으로 중복 가능하게 구현될 수 있다.
그러나 상기 서버와 인터페이스하는 상기 제2 애플리케이션(클라이언트 백엔드)은 이러한 요구사항을 충족할 필요가 없다. 따라서, 특히 바람직한 실시 예에서, 상기 제1 애플리케이션은 ASIL-BASIL-B 수준(또는 그 이상)으로 개발되는 반면에, 바람직하게는 상기 제2 애플리케이션은 더 낮은 수준의 기능적 안전성으로 개발된다. 이는 또한 클라이언트가 예컨대 ASIL-B 수준으로 프론트된 바와 동일한 수준으로 상기 서버(다시 말하면, 상기 제2 애플리케이션(클라이언트 백엔드))와의 인터페이스를 개발할 필요가 없으므로 전체 맵 배포 시스템을 단순화하는 데 도움이 된다. 이는 요구되는, 예컨대 ASIL-B, 기능적 안전성 수준으로 외부 서버와의 인터페이스를 포함해 전체 시스템을 구현하려고 시도하는 것보다 훨씬 더 효율적일 수 있다. 따라서, 사실상, 바람직한 실시 예들에 의하면, 상기 맵 타일들의 회수 및 인증은 상기 맵 타일 내 객체 데이터의 확인과는 독립적으로 이루어질 수 있다(그리고 독립적으로 이루어진다). 이를 통해 시스템의 복잡성을 그다지 증가시키지 않고 기능적 안전성 요구사항이 충족될 수 있다.
예를 들어, 위에서 언급한 바와 같이, 상기 타일 수준 인증/확인은 바람직하게는 상기 서버에서 상기 타일 데이터 구조에 적용된 디지털 서명을 사용하여 상기 제2 애플리케이션(클라이언트 백엔드)에 의해 수행되는 것이 바람직하다. 여기서 이해할 점은 디지털 서명이 예컨대 ASIL-QM 표준으로 쉽게 구현될 수 있지만 ASIL-B와 같은 더 높은 안전성 수준으로 구현하기가 더 어려울 수 있다는 것이다. 반면에 상기 객체 수준 확인은 ASIL-B 표준(또는 그 이상)으로 상기 제1 애플리케이션(클라이언트 프론트엔드)에 의해 수행되는 것이 바람직하다. 예를 들어, 상기 객체 수준 확인은 바람직하게는 위에서 설명한 바와 같이 예컨대 해시 값을 사용하여 수행될 수 있으며, 이는 원하는 안전성 수준으로 쉽게 구현될 수 있다.
따라서, 상기 제2 애플리케이션(클라이언트 백엔드)이 상기 타일 데이터 구조의 진위성/무결성을 확인한 후에, 상기 제1 애플리케이션(클라이언트 프론트엔드)은 앞으로, 예컨대 궁극적으로는 상기 맵 기반 애플리케이션(들)로 상기 객체 데이터를 전달하기 전에 상기 제2 애플리케이션(클라이언트 백엔드)으로부터 수신된 객체 데이터의 무결성을 확인하는 추가적인 확인을 수행할 수 있다. 이러한 방식으로, 상기 클라이언트 애플리케이션(인터페이스)은 원하는 기능적 안전성 수준에서 효율적인 방식으로 구현될 수 있다.
확인이 실패되면 이는 이때 상기 맵 기반 애플리케이션에 무결성 오류로서 시그널링될 수 있다. 상기 제1 애플리케이션(클라이언트 프론트엔드)은 상기 데이터의 페치를 재시도하려고 시도할 수 있다. 상기 객체 데이터가 안전성에 필수적이고 상기 확인이 실패되는 경우, 상기 맵 기반 애플리케이션은 이때 예컨대 자율 주행 시스템을 비-활성화하거나 차량을 안전하게 정지시킴으로써 "안전 모드"로 들어갈 수 있다. 여기서 이해할 점은 상기 맵 기반 애플리케이션이 맵 데이터를 요청할 수 있는 임의의 애플리케이션일 수 있다는 것이다. 바람직하게는 이러한 것은 상기 맵 데이터가 안전성에 필수적일 수 있고 결과적으로는 확인되어야 하는 경우가 이러한 맥락에서 발생하므로 AD 또는 ADAS 애플리케이션이다. 마찬가지로, 상기 맵 기반 애플리케이션은 자율 주행 애플리케이션에 맵 데이터를 차례로 제공하는 차량 호리즌 공급자를 포함할 수 있다. 따라서, 실시 예들에서, 상기 맵 기반 애플리케이션은 자율 주행 애플리케이션이거나 상기 맵 기반 애플리케이션은 맵 데이터를 자율 주행 애플리케이션에 차례로 제공하는 차량 호리즌 공급자이다. 그러나 이는 또한 원칙적으로 맵 데이터를 차량 환경 내에서 실행되는 기타 내비게이션 또는 지리 공간 인식 애플리케이션에 전달하는 데 사용될 수 있다.
다른 한 실시형태로부터, 상기 클라이언트 측에서, 디지털 맵에 의해 커버되는 지리적 영역 내 내비게이트 가능한 네트워크를 횡단하는 차량에 탑재되어 실행되는 클라이언트 애플리케이션을 작동시키는 방법이 제공되며, 상기 디지털 맵은 한 세트의 복수의 맵 타입들로서 표현되고, 각각의 타일은 상기 내비게이트 가능한 네트워크의 일부를 포함하는 특정한 지리적 영역을 표현하며, 각각의 맵 타일은 연관된 맵 타일 데이터 구조를 지니며, 상기 연관된 맵 타일 데이터 구조는,
상기 맵 타일에 의해 커버되는 지리적 영역 및/또는 상기 디지털 맵을 표현하는 맵 타일(들) 중 다른 하나 이상의 맵 타일들에 의해 커버되는 지리적 영역 내에 적어도 부분적으로 속하는 한 세트의 하나 이상의 객체(들)를 나타내는 객체 데이터 맵; 및
상기 맵 타일 데이터 구조에 객체 데이터가 저장된 적어도 하나의 객체에 연관된 객체 데이터의 무결성을 확인하기 위한 보안 데이터
를 포함하고,
상기 방법은,
상기 클라이언트 애플리케이션에서, 상기 내비게이트 가능한 네트워크의 하나 이상의 특징(들)에 관련된 맵 데이터에 대한 요청을 하나 이상의 맵 기반 애플리케이션(들)으로부터 수신하는 단계;
상기 클라이언트 애플리케이션에 의해, 대응하는 맵 타일 데이터 구조로부터 상기 특징(들)에 관련된 객체 데이터를 획득하는 단계;
상기 대응하는 맵 타일 데이터 구조로부터 상기 획득된 객체 데이터에 대한 연관된 보안 데이터를 획득하는 단계; 및
상기 클라이언트 애플리케이션이 상기 보안 데이터를 사용하여 상기 객체 데이터의 무결성을 확인하고 상기 데이터가 확인되면 상기 객체 데이터를 상기 맵 기반 애플리케이션(들)에 전달하는 단계
를 포함한다.
추가 실시형태로부터, 디지털 맵에 의해 커버되는 내비게이트 가능한 (예컨대, 도로) 네트워크 내에서 주행하는 차량에 탑재하여 실행되는 클라이언트 애플리케이션이 제공되며, 상기 디지털 맵은 한 세트의 복수의 맵 타일들로서 표현되고, 각각의 타일은 상기 내비게이트 가능한 네트워크의 일부를 포함하는 특정한 지리적 영역을 표현하며, 각각의 맵 타일은 상기 맵 타일에 의해 커버되는 지리적 영역 및/또는 상기 디지털 맵을 표현하는 상기 맵 타일(들) 중 다른 하나 이상의 맵 타일들에 의해 커버되는 지리적 영역 내에 속하는 한 세트의 하나 이상의 객체(들)을 나타내는 객체 데이터; 및 상기 맵 타일 데이터 구조에 객체 데이터가 저장되는 적어도 하나의 객체에 연관된 객체 데이터의 무결성을 확인하기 위한 보안 데이터를 포함하는 연관된 맵 타일 데이터 구조를 지니고, 상기 클라이언트 애플리케이션은, 상기 내비게이트 가능한 네트워크의 하나 이상의 특징(들)에 관련된 맵 데이터에 대한 요청을 하나 이상의 맵 기반 애플리케이션(들)로부터 수신하도록 구성되며, 대응하는 맵 타일 데이터 구조로부터 상기 특징(들)에 관련된 객체 데이터를 획득하도록 구성되고, 상기 획득된 객체 데이터에 대한 연관된 보안 데이터를 상기 대응하는 맵 타일 구조로부터 획득하도록 구성되며, 그리고 상기 보안 데이터를 사용하여 상기 객체 데이터의 무결성을 확인하고 상기 데이터가 확인되면 상기 객체 데이터를 상기 맵 기반 애플리케이션(들)로 전달하도록 구성된다.
추가의 바람직한 실시형태로부터, 적어도 하나의 원격 서버로부터 차량의 전자 제어 유닛(ECU) 상에서 실행되는 맵 기반 애플리케이션으로 디지털 맵 데이터를 제공하기 위해 지리적 영역 내 내비게이트 가능한 네트워크를 횡단하는 차량의 하나 이상의 처리 유닛 상에서 실행되는 클라이언트 애플리케이션을 작동시키는 방법이 제공되며, 상기 클라이언트 애플리케이션은 제1 애플리케이션 및 제2 애플리케이션을 포함하고, 상기 제1 애플리케이션은 상기 맵 기반 애플리케이션 및 상기 제2 애플리케이션과 통신하며, 상기 제2 애플리케이션은 상기 적어도 하나의 원격 서버와 통신하고, 상기 적어도 하나의 원격 서버는, (i) 복수 개의 맵 타일들을 저장하는 맵 타일 데이터 저장소 - 각각의 맵 타일은 노드들에 의해 연결된 복수 개의 아크들로서 상기 지리적 영역의 일부 내 상기 내비게이트 가능한 네트워크를 표현함 -; 및 (ii) 상기 맵 타일 데이터 저장소 내 상기 맵 타일들의 각각의 맵 타일에 대한 메타데이터를 저장하는 맵 타일 메타데이터 데이터 저장소에 액세스 가능하며, 한 타일의 각각의 아크 및 노드는 객체 데이터 및 이에 연관된 해시 값을 지니고, 상기 해시 값은 대응하는 아크 또는 노드에 대한 객체 데이터 및 대응하는 아크 또는 노드에 대한 객체 데이터를 포함하는 상기 타일에 대한 타일 메타데이터에 적어도 기초하여 계산되며, 상기 제2 애플리케이션은 (i) 상기 적어도 하나의 원격 서버로부터 획득된 복수 개의 맵 타일들을 저장하는 맵 타일 캐시; 및 (ii) 상기 적어도 하나의 원격 서버로부터 획득된 맵 타일 캐시 내 맵 타일들의 각각의 맵 타일에 대한 메타데이터를 저장하는 맵 타일 메타데이터 캐시를 포함하고, 상기 방법은,
상기 제1 애플리케이션에 의해, 상기 내비게이트 가능한 네트워크의 특징에 관한 디지털 맵 데이터에 대한 요청을 상기 맵 기반 애플리케이션으로부터 수신하는 단계;
상기 제1 애플리케이션에 의해 상기 요청된 디지털 맵 데이터에 관련된 적어도 하나의 아크 또는 노드에 대한 객체 데이터 및 해시 값을 상기 제2 애플리케이션으로부터 요청하는 단계;
상기 맵 타일 캐시에 상기 요청된 타일이 저장되어 있지 않은 경우 상기 제2 애플리케이션에 의해, 상기 맵 타일 캐시, 또는 상기 맵 타일 데이터 저장소로부터 상기 요청된 객체 데이터 및 해시 값(들)을 획득하고, 그들을 상기 제1 애플리케이션에 제공하는 단계;
상기 제1 애플리케이션에 의해, 상기 요청된 디지털 맵 데이터에 관련된 적어도 하나의 아크 또는 노드에 관한 상기 맵 타일에 대한 메타데이터를 상기 제2 애플리케이션으로부터 요청하는 단계;
상기 제2 애플리케이션에 의해, 상기 맵 타일 메타데이터 캐시에 상기 요청된 타일 메타데이터가 저장되어 있지 않은 경우 상기 맵 타일 메타데이터 캐시, 또는 상기 맵 타일 메타데이터 데이터 저장소로부터 상기 요청된 타일 메타데이터를 획득하하고, 이를 상기 제1 애플리케이션에 제공하는 단계;
상기 제1 애플리케이션에 의해 상기 수신된 객체 데이터 및 타일 메타데이터에 기초하여 상기 적어도 하나의 아크 또는 노드에 대한 새로운 해시 값을 계산하는 단계;
상기 제1 애플리케이션에 의해, 상기 새로운 해시 값을 상기 수신된 해시 값과 비교하는 단계; 및
상기 제1 애플리케이션에 의해, 상기 비교에 기초하여 상기 요청된 디지털 맵 데이터 또는 무결성 오류 메시지를 상기 맵 기반 애플리케이션에 제공하는 단계
를 포함한다.
위에서 설명한 클라이언트 애플리케이션(인터페이스)을 작동시키는 방법은 객체 수준 확인이 사용되는 지의 여부에 관계없이 기능적 안전성 요구사항을 충족시키기 위해 그 자체로 유리할 수 있다. 예를 들어 프론트엔드에 기능적 안전성을 위임하면 이는 액세스 요청을 단순화하고 높은 (예컨대, ASIL-BASIL-B) 수준으로 상기 서버 인터페이스를 포함한 전체 맵 배포 시스템을 구축할 필요가 없게 하는데 도움이 될 수 있도록 상기 맵 타일 액세스로부터 분리될 수 있다. 그 대신에 상기 클라이언트 애플리케이션을 비교적 안전한 프론트엔드와 덜 안전한 백엔드로 분해함으로써 상기 ASIL-B 요구사항이 충족된다. 따라서, 본 발명은 또한 위의 원리에 기초하여 이루어진 차량 내 배포 시스템에 이르기까지 확장된다. 그 경우에, 상기 제1 애플리케이션(클라이언트 프론트엔드)은 상기 맵 기반 애플리케이션과 동일한 ECU 상에서 실행되어야 하는 것이 바람직하고(그러나 이는 필수적이지 않으며), 상기 맵 기반 애플리케이션으로 반환된 맵 데이터는 상기 관련된 맵 타일로부터 획득된 객체 데이터로부터 추출된다.
따라서, 다른 한 실시형태로부터, 적어도 하나의 원격 서버로부터 차량의 전자 제어 유닛(ECU) 상에서 실행되는 맵 기반 애플리케이션으로 디지털 맵 데이터를 제공하기 위해 지리적 영역 내 내비게이트 가능한 네트워크를 횡단하는 차량의 하나 이상의 처리 유닛 상에서 실행되는 클라이언트 애플리케이션을 작동시키는 방법이 제공되며, 상기 클라이언트 애플리케이션은 상기 ECU 상에서 실행되는 제1 애플리케이션 및 제2 애플리케이션을 포함하고, 상기 제1 애플리케이션은 상기 맵 기반 애플리케이션 및 상기 제2 애플리케이션과 통신하며, 상기 제2 애플리케이션은 상기 적어도 하나의 원격 서버와 통신하고, 상기 적어도 하나의 원격 서버는 복수 개의 맵 타일들을 저장하는 맵 타일 데이터 저장소에 액세스 가능하며, 각각의 맵 타일은 노드들에 의해 연결된 복수 개의 아크들로서 상기 지리적 영역의 일부 내 상기 내비게이트 가능한 네트워크를 표현하고, 한 타일의 각각의 아크 및 노드는 그에 연관된 객체 데이터를 지니며, 상기 제2 애플리케이션은 적어도 하나의 원격 서버로부터 획득된 복수 개의 맵 타일들을 저장하는 맵 타일 캐시를 포함하고, 상기 방법은,
상기 제1 애플리케이션에 의해, 상기 내비게이트 가능한 네트워크의 특징에 관한 디지털 맵 데이터에 대한 요청을 상기 맵 기반 애플리케이션으로부터 수신하는 단계;
상기 제1 애플리케이션에 의해, 상기 요청된 디지털 맵 데이터에 관련된 적어도 하나의 아크 또는 노드에 대한 객체 데이터를 상기 제2 애플리케이션으로부터 요청하는 단계;
상기 제2 애플리케이션에 의해, 상기 맵 타일 캐시에 상기 요청된 타일이 저장되어 있지 않은 경우 상기 맵 타일 캐시, 또는 상기 맵 타일 데이터 저장소로부터 상기 요청된 객체 데이터를 획득하고, 그를 상기 제1 애플리케이션에 제공하는 단계;
상기 제1 애플리케이션에 의해, 상기 내비게이트 가능한 네트워크의 특징에 상응하는 객체 데이터의 일부를 식별하는 단계; 및
상기 제1 애플리케이션에 의해, 상기 식별된 객체 데이터의 일부를 사용하여 상기 요청된 디지털 맵 데이터를 상기 맵 기반 애플리케이션에 제공하는 단계
를 포함한다.
여기서 이해할 점은 본 발명의 추가적인 실시형태들 중 어느 한 실시형태가 상호 모순되지 않는 범위에 이르기까지 본 발명의 임의의 다른 실시형태들 및 실시 예들과 관련하여 설명한 본 발명의 특징들 중 어느 하나 또는 전부를 포함할 수 있다는 것이다. 특히, 여기서 이해할 점은 상기 제2 실시형태 및 추가적인 실시형태에서의 본 발명이 본 발명의 제1 실시형태의 방법과 관련하여 설명한 특징들 중 어느 하나 또는 전부를 포함할 수 있고, 그 반대도 마찬가지이다는 것이다.
본 발명은 또한 본 발명의 실시형태들 및 실시 예들 중 어느 하나와 관련하여 위에서 설명한 방법들을 수행하기 위한 맵 데이터 전달 및 맵 데이터 배포 시스템에 이르기까지 확장된다. 예를 들어, 맵 데이터 전달/배포 시스템은 하나 이상의 차량(들)과 통신하는 서버를 포함할 수 있으며, 상기 서버는 적절한 맵 생성 회로(맵 타일 컴파일러 등을 포함함), 상기 맵 타일 데이터 및 메타데이터를 저장하기 위한 하나 이상의 데이터 저장소(들), 및 상기 맵 타일 데이터 구조들을 차량에 전송하기 위한 전송 회로를 포함한다. 차량은 상기 맵 타일 데이터 구조를 처리하는 여러 클라이언트 애플리케이션과 아울러 상기 맵 데이터를 요청하는 차량의 엔진 제어 장치(ECU) 상에서 실행되는 하나 이상의 맵 기반 애플리케이션(들)을 실행하는 하나 이상의 프로세서(들)를 포함한다. 이러한 시스템들은 여기에 설명한 방법 단계들 중 어느 하나(또는 모두)를 수행하도록 구성될 수 있다. 예를 들어, 상기 시스템은 언급한 단계들을 수행하도록 작동 가능하거나 구성된 한 세트의 하나 이상의 프로세서들을 포함할 수 있다. 어느 한 단계는 상기 프로세서들 중 어느 하나 또는 다수의 프로세서에 의해 수행될 수 있다.
여기에 설명한 기술의 여러 기능은 임의의 원하는 적절한 방식으로 수행될 수 있다. 예를 들어, 여기에 설명한 기술의 단계들 및 기능들은 필요에 따라 하드웨어 또는 소프트웨어로 구현될 수 있다. 따라서, 예를 들어 달리 명시되지 않는 한, 여기에 설명한 기법들의 여러 프로세서, 기능적 요소, 스테이지, 및 "수단"은 원하는 방식으로 작동하도록 프로그램될 수 있는 적절하게 전용된 하드웨어 요소들(처리 회로) 및/또는 프로그램 가능한 하드웨어 요소들(처리 회로)과 같은 여러 단계 또는 기능 등을 수행하도록 작동 가능한 임의의 적절한 프로세서 또는 프로세서들, 컨트롤러 또는 컨트롤러들, 기능적 유닛들, 회로, 처리 로직, 마이크로프로세서 장치들 등을 포함할 수 있다. 예를 들어, 여기서 설명한 실시형태들 또는 실시 예들 중 어느 하나에 따른 방법의 단계들 중 어느 하나를 수행하기 위한 수단은 일반적으로 그렇게 하기 위해 한 세트의 컴퓨터 판독가능 명령어들로 구성된, 예컨대 프로그램된 한 세트의 하나 이상의 프로세서들(또는 처리 회로)를 포함할 수 있다. 한 주어진 단계는 기타 단계에 대해 동일하거나 상이한 한 세트의 프로세서들을 사용하여 수행될 수 있다. 어느 하나의 주어진 단계는 여러 세트의 프로세서들의 조합을 사용하여 수행될 수 있다. 상기 시스템은 예를 들어 교육용 및 정보용 데이터를 포함하는, 예를 들어 적어도 하나의 레포지토리(repository)를 저장하기 위한 컴퓨터 메모리와 같은 데이터 저장 수단을 더 포함할 수 있다. 본 발명에 따른 방법들 중 어느 한 방법은 소프트웨어, 예컨대 컴퓨터 프로그램을 사용하여 적어도 부분적으로 구현될 수 있다. 따라서, 본 발명은 또한 본 발명의 실시형태들 또는 실시 예들 중 어느 하나에 따른 방법을 수행하거나 시스템 및/또는 서버로 하여금 본 발명의 실시형태들 또는 실시 예들 중 어느 하나에 따른 방법을 수행하게 하도록 실행 가능한 컴퓨터 판독가능 명령어들을 포함하는 컴퓨터 프로그램 제품에 이르기까지 확장된다. 따라서, 본 발명은 본 발명의 실시 예들 중 어느 하나에 따른 시스템상에서 실행될 때 상기 시스템의 한 세트의 하나 이상의 프로세서들로 하여금 여기에 설명한 방법의 실시형태들 또는 실시 예들 중 어느 하나의 단계들을 수행하게 하도록 실행 가능한 컴퓨터 판독가능 명령어들을 포함하는 바람직하게는 비일시적 컴퓨터 프로그램 제품에 이르기까지 확장된다.
여기서 유념하여야 할 점은 여기에서의 객체, 특징, 영역 등, 등에 연관된, 타일, 또는 타일 데이터 구조에 대한 참조가 문맥이 달리 요구하지 않는 한 이들을 나타내는 데이터를 언급하는 것으로 이해되어야 한다는 것이다. 상기 데이터는 어떤 식으로든 관련 항목을 나타낼 수 있으며 직접 또는 간접적으로 관련 항목을 나타낼 수 있다. 따라서, 객체, 특징, 영역, 타일 등에 대한 임의의 참조는 이를 나타내는 데이터에 대한 참조로 대체될 수 있다. 여기서 또한 유념하여야 할 점은 "에 연관된" 또는 "을 나타내는"이라는 문구가 데이터 저장 위치들에 대한 어느 특정한 제한을 요구하는 것으로 해석되어서는 아니 된다는 것이다. 상기 문구는 상기 특징들이 식별 가능하게 관련되어 있다는 것만을 요구한다.
본 발명의 실시 예들의 다양한 특징은 이하에서 더 구체적으로 설명될 것이다.
지금부터 다양한 실시 예가 단지 예로써, 그리고 첨부도면들을 참조하여 설명될 것이다.
도 1은 맵 전달 시스템의 개요를 보여주는 도면이다.
도 2 내지 도 8은 디지털 맵이 일 실시 예에 따라 어떻게 컴파일될 수 있는지를 개략적으로 보여주는 도면들이며 여기서 상기 디지털 맵은 각각의 레이어가 복수 개의 타일들을 사용하여 표현되는 복수 개의 레이어들을 포함한다.
도 9는 맵 데이터가 클라우드로부터 하나 이상의 맵 기반 애플리케이션들이 탑재되어 실행되는 차량으로 전달되는 일 실시 예에 따른 클라우드 기반 맵 전달 시스템을 개략적으로 보여주는 도면이다.
도 10은 일 실시 예에 따른 맵 데이터를 처리하기 위한 클라이언트 애플리케이션을 개략적으로 보여주는 도면이다.
도 11은 일 실시 예에 따라 맵 데이터를 국부적으로 저장하는데 사용될 수 있는 캐시를 개략적으로 보여주는 도면이다.
도 12는 일 실시 예에 따른 클라우드 기반 맵 데이터 배포 시스템을 개략적으로 보여주는 도면이다.
첨부도면들에서, 유사한 참조부호들은 적절하게 유사한 요소들에 사용된다.
본 발명은 일반적으로 지리 공간 인식 맵 기반 애플리케이션, 특히 디지털 맵 데이터의 신뢰성과 정확성이 안전성에 중요한 자율 주행(autonomous driving; AD) 및 첨단 운전자 지원 시스템(advanced driver assistance system; ADAS) 애플리케이션에 사용하기 위한 디지털 맵 데이터를 획득하는 방법에 관한 것이다. 지금부터 기능적 안전성이 강화된 (예컨대, ASIL-BASIL-B) 레벨로 차량에 탑재되어 실행되는 맵 클라이언트 애플리케이션의 효율적인 구현에 대한 일 실시 예가 설명될 것이다.
기능적 안전성은 자동화된 기능이 사람에게 잠재적인 영향을 미칠 때 중요하다. 이러한 자동화된 기능은 일반적으로 규제 기관, 클라이언트 또는 사용자에 의해 표준화된 특정한 기능적 안전성 수준을 충족하여야 한다. 제품 수명주기 동안 이러한 기능적 안전성 요구사항을 충족하는 것은 구현의 설계, 테스트 및 지원에 상당한 영향을 미친다. 기능적 안전성 요구사항에 따른 자동화된 기능에 대한 구현의 기술적 영향은 상당히 크고 복잡한 구현일 수 있다. 이는 예컨대 증가된 코드 사이즈와 기능적 안전성 구현을 위해 필요한 데이터 저장에서 가시화될 수 있다.
기능적 안전은 구현이 예상대로 작동하는지를 확인하는 것이다. 이는 구현 시 무작위 결함과 시스템적 결함 양자 모두의 영향을 고려할 필요가 있음을 의미한다. 무작위 결함은 소재의 노화 효과에 의해, 진동, 온도, 습도, 복사 등과 같은 외부 요인에 의해 발생된다. 무작위 결함는 코드, 저장된 데이터 또는 실행되는 소프트웨어 애플리케이션의 I/O 데이터의 변경을 일으킬 수 있다. 소프트웨어 애플리케이션의 요구사항, 설계 또는 구현의 오류들로 인해 시스템적 결함이 발생할 수 있다. 기능적 안전성 엔지니어링 방식은 시스템적 결함의 가능성을 상당히 줄이도록 의도된 엄격한 개발 방식을 채용함으로써 시스템적 결함을 줄이는 것을 목표로 한다. 예를 들어 런-타임(run-time) 테스트, 결함 검출, 결함 모니터링, 중복 실행 및 중복된 다양한 구현을 추가함으로써 무작위 결함이 줄어들게 될 수 있다.
기능적 안전성 엔지니어링 방법론으로 개발된 구현의 향상된 결함 복원은 하드웨어, 소프트웨어, 개발, 테스트 및 유지관리의 비용을 두 배 또는 세 배로 증가시키는 댓가를 치른다.
도 1은 클라우드 서버 시스템(16) 상에 배치된 맵 컴파일러(12) 및 타일 메타데이터 서비스(14), 콘텐츠 배포 네트워크(Content Distribution Network; CDN)(20) 상에 배치된 타일 데이터 서비스(18), 및 차량 상에 배치된 클라이언트 애플리케이션(인터페이스)(22)을 포함하는 맵 전달 시스템(10)의 개요를 보여준다. 메타데이터 서비스(14)와 데이터 서비스(18)의 조합은 또한 함께 "클라우드 서비스"로서 언급된다.
상기 맵 컴파일러(12)는 클라우드 서버 시스템(16) 상에 위치한 적절한 맵 생성 유닛(24)으로부터 맵 데이터를 수신한다. 상기 맵 생성 유닛(24)은 다양한 데이터 소스(26)로부터 맵 소스 데이터를 수신하고 이를 디지털 맵에 포함시키기 위한 적절한 포맷으로 변환한다. 그 후에, 상기 맵 컴파일러(12)는 이하에서 부연 설명되겠지만, 상기 맵 데이터를 디지털 맵에 대한 대응하는 레이어들 및 타일들로 분류한다.
이러한 방식으로, 상기 맵 전달 시스템(10)은 상기 맵 클라이언트(22)를 사용하여 차량(9)의 전자 제어 유닛(electronic control unit; ECU) 상에서 실행되는 자율 주행 애플리케이션(11)에 상기 클라우드 내 맵 생성 유닛(24)으로부터의 맵 데이터를 직접 전달할 수 있다.
도 1은 맵 클라이언트(22)의 기능 모듈들과 맵 서버 기반구조 및 차량 내 다양한 기능 모듈들에 대한 인터페이스들을 보여준다. 예를 들어, 도 1의 맵 클라이언트(22)는 6개의 구성요소, 다시 말하면 맵 인터페이스 어댑터(101), 클라이언트 라이브러리(102), 영구 캐시(103), 타일 검증기(104), HTTPS 클라이언트(105), 및 컨트롤러(106)를 포함한다. 이들의 기능들은 도 11에 도시된 맵 클라이언트와 관련하여 이하에서 더 구체적으로 설명될 것이다. 그러나 여기서 이해할 점은 인터페이스들의 개수와 맵 클라이언트 내 기능 구성요소들의 개수로 인해 맵 클라이언트의 기능적 안전성 구현이 복잡하고 상당한 자원(컴퓨팅 능력, 저장 요구사항 , 에너지 소비 등)을 요구할 수 있다는 것이다.
도 1에 도시된 맵 전달 시스템(10)은 일반적으로 맵 데이터를 요구하는 차량에 탑재되어 실행되는 맵 기반 애플리케이션에 필요한 디지털 맵 데이터를 전달하도록 작동될 수 있다. 디지털 맵 데이터는 일반적으로 복잡하다.
예를 들어, 여기서 이해할 점은 디지털 맵이 일반적으로 내비게이트 가능한 (도로) 네트워크의 내비게이트 가능한 요소들, 분기점들, 관심 지점들 등과 같은 실제 객체들을 표현하는 많은 맵 객체를 포함한다는 것이다. 상기 내비게이트 가능한 (예컨대, 도로) 네트워크는 일반적으로 차량에 의해 내비게이트 가능한 복수 개의 상호 연결된 (예컨대) 도로들을 포함하는 네트워크이다. 상기 내비게이트 가능한 (예컨대, 도로) 네트워크는 일반적으로 디지털 또는 전자 맵(또는 수학적 그래프)에 의해 표현될 수 있다. 그의 가장 단순한 형태로, 디지털 맵은 실제로 노드들을 나타내는 데이터, 가장 일반적으로 도로 교차로들을 나타내는 데이터, 그리고 해당 교차점들 간의 도로들을 표현하는 그러한 노드들 간의 아크들을 포함하는 데이터베이스이다. 더 구체적인 디지털 맵들에서, 호들은 시작 노드와 끝 노드에 의해 정의된 세그먼트들로 나뉘어질 수 있다. 이러한 노드들은 최소 3개의 선들 또는 세그먼트들이 교차하는 도로 교차점을 표현한다는 점에서 "실제적(real)"인 것일 수 있으며, 상기 노드들은 그들이 특히 도로의 특정 구간에 대한 형태 정보를 제공하거나 그러한 도로의 일부 특성, 예컨대 속도 제한이 변경되는 도로를 따라 위치를 식별하는 수단을 제공하도록 실제적 노드에 의해 한쪽 끝 또는 양쪽 끝에서 정의되지 않은 세그먼트들에 대한 앵커(anchor)들로서 제공된다는 점에서 "인위적(artificial)"인 것일 수 있다. 거의 모든 현대 디지털 맵들에서, 노드들과 아크들(또는 아크들의 세그먼트들)은 데이터베이스 내 데이터에 의해 다시 표현되는 다양한 속성에 의해 추가로 정의된다. 예를 들어, 각각의 노드는 일반적으로 자신의 실제 위치, 예컨대 위도 및 경도를 정의하는 지리적 좌표들을 지니게 된다. 노드들은 또한 일반적으로 교차점에서 한 도로로부터 다른 한 도로로 이동하는 것이 가능한 지의 여부를 나타내는 상기 노드들에 연관된 기동 데이터를 지니게 된다. 예컨대, 공지된 휴대용 내비게이션 장치에 의해 제공될 수 있는 기존 내비게이션 안내의 목적을 위해, 비록 각각의 도로 세그먼트가 또한 최대 허용 속도, 차선 사이즈, 차선 개수, 중앙 분리대 존재 여부 등과 같은 속성으로 보완될 수 있지만, 도로 중앙선에 관한 정보를 포함한다. 그러나, 본 발명의 실시 예들에 의하면, 이하에서 부연 설명되겠지만, 차선 중심선 및 차선 연결(다시 말하면, 차선 표시)과 아울러, 예컨대 바람직하게는 맵 내에 통합될 수 있는 랜드마크 객체들과 같은 내비게이트 가능한 (예컨대, 도로) 네트워크의 3차원 형상과 같은 기타 핵심 요소를 포함한 도로 프로파일의 더 정확하고 사실적인 표현을 제공하는 디지털 맵이 생성(또는 사용)될 수 있다. 이러한 타입의 디지털 맵은 (도로 중심선은 포함하지만 차선 중심선은 포함하지 않는 기존의 "SD" 맵에 비하여) "HD" 맵으로서 언급될 수 있다. 상기 HD 맵에 포함된 추가 정보와 적어도 차선 표시는 일반적으로 자율 주행(AD)의 목적에 필요하다. 그러나 이러한 HD 맵의 사용은 AD 애플리케이션에 국한되지 않으며 이러한 맵은 다양한 첨단 운전자 지원 시스템(ADAS) 애플리케이션을 포함하지만 이에 국한되지 않는 개선되고 더 정확한 도로 프로필 표현을 제공하려는 기타 애플리케이션에서 적합한 애플리케이션을 찾을 수도 있다. 디지털 맵 데이터는 또한 여행과는 반드시 관련되지 않은 수많은 다른 맵 인식 또는 지리 공간 애플리케이션, 예컨대 위치에 대한 지식을 요구하는 애플리케이션, 예컨대 기상 애플리케이션에서 사용될 수 있다. 따라서, 상기 HD 맵은 이러한 맵에 적합하고 바람직하게 포함될 수 있는 기타 특징들을 나타내는 데이터도 포함할 수 있다. 다양한 실시 예가 이제 HD 맵과 관련하여 설명되겠지만, 여기서 이해할 점은 여기에 기재된 기술이 SD 맵에도 적용 가능하다는 것이다.
자율 차량은 외부 데이터, 예컨대 센서 정보 및 HD 맵에 크게 의존한다. 이러한 데이터의 무결성이나 진위성이 손상되면 자율 주행 기능은 결함이 있는 데이터를 사용하여 차량을 조종함으로 인해, 위험한 운전이 초래될 수 있다. 차량의 자율 주행 태스크들의 안전성 목표들은 사람의 건강에 대한 신체적 상해 또는 손상의 위험을 허용 수준 미만으로 유지하는 것이다. 따라서 이러한 맵 데이터가 사용되기 전에 상기 맵 데이터의 기능적 안전성을 보장하는 것이 바람직하다.
본 실시 예에서, 상기 HD 맵 데이터는 복수 개의 레이어들을 포함하고, 각각의 레이어는 복수 개의 타일들을 포함한다. 상기 타일들은 지리 공간 직사각형 영역에 연관된다. 전체 맵과 개별 맵 타일 각각에는 '버전(version)'이 있으며 맵은 일관된 한 세트의 레이어들 및 타일들을 포함한다. 한 타일은 맵의 여러 버전 중 일부일 수 있는데, 다시 말하면 특정 버전의 타일은 여러 맵 버전에 연관될 수 있다. 따라서 맵 데이터는 데이터 타입에 따라 데이터를 그룹화하기 위해 레이어들로 분할될 수 있고 그럼으로써 클라이언트들은 그들의 목적에 관련된 데이터를 선택적으로 다운로드할 수 있다. 이의 일 예는 복수 개의 레벨들로 나뉘어진 맵(30)을 보여주는 도 2에 개략적으로 예시되어 있다. 특히, 상기 맵은 기본 도로 및 차선 형상을 포함하는 기본 레벨(50)과 도로 네트워크에 연관된 다양한 타입의 데이터를 저장하는 일련의 상위 레벨들을 포함한다. 그 후에 각각의 레이어는 복수 개의 타일들로서 표현된다. 따라서 도 3은 디지털 맵 내에서 데이터가 편성되는 방식을 보여준다. 특히, 디지털 맵(30)은 각각의 맵 레이어가 차례로 복수 개의 맵 타일들(34)로 구성되는 복수 개의 맵 레이어들(32)로 구성된다. 상기 디지털 맵(30)은 맵 버전(31)에 연관되고 상기 맵 타일(34)들은 타일 버전(35)에 연관된다. 따라서 현재 맵 버전(31)은 가장 최근의 한 세트의 맵 타일 버전(35)들을 포함한다. 상기 맵 및 타일 버전 정보는 바람직하게는 상기 타일들에 대한 메타데이터들로서 전송된다.
도 4에 도시된 바와 같이, 본 실시 예들은 2가지 타입의 맵 레이어들, 다시 말하면 객체 레이어들과 속성 레이어들을 구별한다. 객체 레이어들에는 연관된 형상 및 드물게 변경되는 속성을 지니는 지리 공간 객체가 포함된다. 객체들은 동일 레이어에 있거나 다른 한 레이어에 있는 다른 객체들에 연관될 수 있다. 속성 레이어들에는 다른 한 레이어에 있는 지리 공간 객체들에 연관된 속성들이 포함된다. 속성 레이어들에 있는 속성들은 일반적으로 상기 속성들에 연관된 객체들보다 더 자주 변경될 것으로 예상된다. 예를 들어, 본 실시 예들에서, 상기 맵은 HD 도로 레이어로서 언급되는 기본 레이어를 포함한다. 상기 HD 도로 레이어는 아크들과 노드들을 포함하는 안내 그래프(directed graph)이다. 각각의 아크에는 2개의 연관된 노드가 있는데, 다시 말하면, 진입하는 아크들과의 연결을 위한 하나의 노드와 진출하는 아크들과의 연결을 위한 하나의 노드가 있다. 2가지 타입의 HD 도로 아크들, 다시 말하면 차선 그룹들과 분기점 영역들이 있다. 차선 그룹들은 형상들 및 속성들을 지니는 하나 이상의 차선들로 이루어진다. 분기점 영역들은 형상, 적법한 궤적 및 속성을 포함한다. 상기 도로 레이어(50)에 대한 데이터 구조의 고-수준 구성이 도 5에 도시되어 있다.
상기 도로 레이어(50)는 차례로 복수 개의 HD 도로 타일들로 이루어진다. 다시 말하면, HD 도로 레이어는 복수 개의 도로 타일들로 나뉘어지며, 각각의 도로 타일은 상기 타일에 의해 표현된느 맵 영역에 대한 아크 및 노드 데이터를 포함한다. 상기 도로 레이어 내 타일(60)에 대한 데이터 구조는 도 6에 도시되어 있다. 특히, 상기 타일에 의해 커버되는 맵 영역 내에 속하는 각각의 도로 아크(61) 및 노드(62)에 대해, 적절한 해시 형태의 보안 데이터가 연관된 아크/노드 데이터와 함께 저장된다. 바꾸어 말하면, 객체 수준의 확인이 제공된다.
도 7은 본 실시 예에서 생성 및 전송될 수 있는 타일 데이터 구조(700)의 일 예를 더 구체적으로 보여준다. 상기 타일 데이터 구조(700)는 타일 헤더(701), 타일 데이터(702), 및 타일 서명(703)을 포함한다. 상기 타일 데이터 구조(700)가 클라이언트 애플리케이션에 전송될 때, 상기 타일 헤더(701)는 문제의 타일을 식별하기 위해 일반적인 방식으로 판독될 수 있다. 예를 들어, 상기 타일 헤더(701)는 타일 아이디(id), 레이어 아이디, 레이어 포맷, 타일 버전 등과 같은 정보를 포함할 수 있다. 그 후에, 상기 타일 데이터(702)는 적절하게 추출될 수 있다. 본 실시 예에서 상기 타일 데이터 구조(700)는 타일 데이터 구조(700)의 진위성이 확인될 수 있게 하는 타일 서명(703)으로 디지털 서명된다.
상기 타일 데이터(702)는 HD 도로 객체들(예컨대, HD 도로 아크들 또는 HD 도로 노드들)의 목록(704)을 포함한다. HD 도로 객체는 맵 객체 id와 맵 객체 데이터를 포함한다. 상기 HD 도로 객체 id 필드는 상기 HD 도로 객체의 고유 참조를 확립한다. 일부 변형 예들에서, 상기 HD 도로 객체 id는 상기 타일에 의해 커버되는 맵 영역에 대한 HD 도로 객체의 위치 원점에 연관될 수 있다. 상기 HD 도로 객체 데이터는 상기 HD 도로 객체(예컨대, 아크 데이터 또는 노드 데이터)의 타입을 결정하기 위한 필드 및 상기 아크 또는 노드를 묘사하기 위한 데이터 필드를 포함한다.
각각의 도로 객체(704)에 대해 한 세트의 연관된 기능적 안전성 데이터, 다시 말하면 보안 데이터(705)는 또한 상기 타일 데이터 구조(700)에 포함된다. 도 7에 도시된 예에서 상기 타일 데이터(702)는 객체 데이터(704) 및 연관된 보안 데이터(705)의 정렬된 목록을 포함한다. 그러나, 반드시 그럴 필요는 없으며 데이터는 물론 임의의 적절한 방식으로 배열될 수 있다.
본 실시 예에서, 상기 보안 데이터(705)는 상기 맵 객체 id 및 상기 맵 객체 데이터에 걸쳐 확장되는 해시 값이다. 본 실시 예는 보안 해시 기능을 사용하는데, 그 이유는 이러한 것이 보호 데이터의 결함 원인들 또는 결함 패턴들에 상대적으로 민감하지 않기 때문이다. 그러나, 상기 기능적 안전 데이터는 임의의 오류 검출 코드(최소 거리 코드, 해시코드, 체크섬 코드, 패리티 코드, 순환 중복 검사 코드) 또는 임의의 오류 수정 코드(블록 코드, 컨볼루션 코드, 해밍 코드, 비터비 코드)일 수 있다.
또한, 상기 HD 맵은 다른 레이어들, 예컨대 HD 속도 제한 레이어, HD 교통 표지 레이어 등을 포함할 수 있다. 상기 HD 속도 제한 레이어는 한 세트의 차선 확장에 연관된 속도 제한들로 이루어진다. 속도 제한 레이어에서의 속도 제한은 상기 HD 도로 레이어의 차선들 및 차선 그룹들에 관련된다. 마찬가지로, 상기 HD 교통 표지 레이어는 형상들 및 속성들을 지니는 한 세트의 교통 표지들로 이루어진다. 교통 표지들은 상기 HD 도로 레이어 내 객체에 연관될 수 있다. 그러나 레이어들의 다른 배열들은 물론 가능하고 일반적으로 상기 HD 맵은 필요에 따라 추가 또는 더 적은 레이어를 포함할 수 있다.
본 발명에 의하면, 차선 그룹들, 분기점 영역들 및 노드들(다시 말하면, 연결들)은 실제로 그들이 타일들의 지리 공간적 경계들을 가로지르더라도 단일 타일에 저장되는 것이 바람직하다. (데이터 품질 손실 가능성 때문에) 어떠한 컷팅(cutting) 및 스티칭(stitching)도 수행하지 않는다는 장점 외에도, 타일들은 매우 독립적으로 유지되고 이러한 의미 있는 엔터티의 무결성은 이하에서 부연 설명되겠지만 그들이 속한 타일의 데이터 구조들에 프로비저닝(provisioning)될 수 있다. 실시 예들에서 이는 연관된 객체가 확장되는 양자(또는 모든) 타일들에 대한 객체 데이터를 중복화하고 양자 타일들에 대해 개별적으로 객체 데이터를 저장함으로써 수행된다. 그러나 상기 객체 데이터를 상기 타일들 중 하나에만 저장하고 그 후에 다른 타일에는 데이터가 저장된 타일에 대한 적절한 참조(예컨대, 포인터)를 포함하는 것도 가능하다. 이러한 수법은 제1 타일(81)로부터 제2 타일(82)로 연장되는 도로 요소(80)가 상기 제1 타일(81)에만 저장되는 도 8에 예시되어 있다. 그 후에 상기 도로 요소(80)의 위치를 표현하는 적절한 경계 박스(bounding box)(83)는 요소(80)에 대한 관련 객체 데이터를 가리키는 상기 제1 타일(81)에 대한 적절한 참조(포인터)와 함께 상기 제2 타일(82)에 저장된다.
도 9는 일 실시 예에 따른 맵 생성 시스템의 일 예를 보여준다. 도시된 바와 같이, 맵 소스 데이터는 복수 개의 소스(26)들로부터 획득되고, 상기 맵 소스 데이터는 그 후에 적절한 맵 컴파일러(12)에 의해 레벨들 내 대응하는 레벨들 및 타일들로 분류된다. 그 후에, 상기 맵 타일들은 상기 타일 데이터 서비스(18)에 의해 상기 맵 데이터를 요구하는 차량에 적절하게 배포될 수 있다.
도 10은 맵 데이터가 클라우드로부터 하나 이상의 맵 기반 애플리케이션을 탑재되어 실행되는 차량으로 전달되는 일 실시 예에 따른 클라우드 기반 맵 전달 시스템을 개략적으로 보여준다. 도 10의 시스템은 도 1과 관련하여 위에서 설명한 바와 유사하게 클라우드에서의 맵 생성, 클라우드로부터 차량으로의 맵 타일 전달, 및 맵 애플리케이션으로의 차량 내 맵 배포로 이루어진다. 그러나, 도 10에서, 상기 맵 타일 컴파일러(12)는 이제 위 도 7에 도시된 방식으로 객체들에 대한 보안 데이터를 맵 타일 데이터 구조들에 추가하도록 작용하는 맵 기능 안전 회로(1210)를 포함한다. 상기 HD 기능 안전 모듈(1210)은 맵 타일들에 포함된 맵 객체들의 무결성을 보호하기 위한 기능으로 상기 타일 맵 컴파일러를 확장한다. 물론, 보안 데이터를 생성하고 이를 객체 데이터와 연관시키기 위한 광범위한 구현들이 가능하다.
또한, 도 10에서, 클라이언트 애플리케이션 인터페이스(22)는 비교적 작은 클라이언트 프론트엔드(92)(제1 애플리케이션)와 더 큰 클라이언트 백엔드(91)(제2 애플리케이션)로 분해된다. 상기 클라이언트 백엔드는 QM(B)에서 기능적 요구사항 및 안전성 요구사항을 구현하는 반면에 상기 클라이언트 프론트엔드는 ASIL-BASIL-B(B)에서 안전성 요구사항을 구현한다. 본 발명은 상기 HD 맵 애플리케이션에 의미 있는, 다시 말하면 레인 그룹들, 분기점 영역들, 및 그들의 연관된 엔티티들인, 엔티티들의 수준에서 HD 맵 데이터의 무결성을 확인하는 생성된 기능에 의해 작고 단순한 클라이언트 프론트엔드(92)를 현재 속도 제한과 같은 속성으로만 간주한 것이다.
상기 클라이언트 프론트엔드(92)는 도 11에 더 구체적으로 도시되어 있으며 4개의 구성요소, 다시 말하면 클라이언트 인터페이스 어댑터(301), HD 맵 RPC 클라이언트 스터브(302), HD 맵 데이터 검증기(303), 및 컨트롤러(304)를 포함한다. 상기 클라이언트 프론트엔드는 ISO 26262 ASIL-BASIL-B 요구 절차들에 따라 개발된 소프트웨어 라이브러리이다. 상기 라이브러리는 다른 소프트웨어 및 ASIL-B 호환 ECU 플랫폼 운영 체제(105)에 의해 제공되는 프로세스 상에 배포된 실행 파일의 일부와 링크된다. 상기 클라이언트 프론트엔드는 그의 컨트롤러 구성요소(304)에 의해 제공되는 인터페이스를 통해 초기화, 제어 및 모니터링된다. 상기 컨트롤러(304)는 다른 클라이언트 프론트엔드 내장 구성요소와 상호작용하지만, 이러한 상호작용을 위한 인터페이스는 도 11에 도시되어 있지 않다.
상기 클라이언트 인터페이스 어댑터(301)는 상기 HD 맵 애플리케이션(11)들에 클라이언트 프론트엔드 서비스 인터페이스를 제공한다. 상기 HD 맵 애플리케이션(11)으로부터 수신된 서비스 요청들은 상기 HD 맵 RPC 클라이언트 스터브(302)를 통해 상기 클라이언트 백엔드로 전달된다. 상기 클라이언트 백엔드(91)에 의해 반환된 HD 맵 데이터는 연관된 서비스 요청들에 응답하기 전에 상기 HD 맵 데이터 검증기(303)에 의해 확인된다.
상기 HD 맵 검증기(303)는 요구된 기능적 안전성을 달성하는 일체로 된 부분이다. 모든 객체 수준 안전성 메커니즘은 해시에 기초하여 이루어진다. 64비트가 허용 가능한 작은 사이즈인 반면에 충돌 확률 2-64(= 5.42 * 10-20)이 동일한 낮은 안전성 메커니즘 실패율로 변환되기 때문에 64비트로 잘린 SHA-256 해시가 사용된다. 상기 클라이언트 프론트엔드(92)는 상기 객체 데이터의 무결성 및 확인을 검사한다. 상기 클라이언트 프론트엔드(92)는 또한 최신 맵 버전의 무결성을 검사하거나 기타 원하는 안전성 검사들을 수행할 수 있다.
상기 클라이언트 백엔드(91)는 또한 도 11에 도시되어 있으며 6개의 구성요소, 다시 말하면 HD 맵 RPC 서비스 스터브(201), 클라이언트 라이브러리(202), 영구 캐시(203), 타일 검증기(204), HTTPS 클라이언트(205), 및 컨트롤러(206)를 포함한다. 상기 클라이언트 백엔드(91)는 일반적인 품질 관리(Quality Management; QM) 정의 절차를 사용하여 개발된 소프트웨어 라이브러리이다. 상기 라이브러리는 다른 소프트웨어 및 ASIL-B 호환 ECU 플랫폼 운영 체제(105)에 의해 제공된 프로세스 상에서 효율적으로 사용되는 실행 파일의 일부와 링크된다. 상기 클라이언트 백엔드는 그의 컨트롤러 구성요소(206)에 의해 제공되는 인터페이스를 통해 초기화, 제어 및 모니터링된다. 상기 컨트롤러는 다른 클라이언트 백엔드 임베디드 구성요소들과 상호작용하지만 그러한 상호 작용에 대한 인터페이스는 도 11에 도시되어 있지 않다.
상기 클라이언트 프론트엔드(92)로부터 수신된 서비스 요청들은 상기 클라이언트 라이브러리(202)로 전달된다. 상기 클라이언트 라이브러리는 영구 타일 캐시(203) 또는 클라우드 서비스, 다시 말하면 타일 데이터 서비스(18) 및 타일 메타데이터 서비스(14)로부터 타일 데이터 및 타일 메타데이터를 회수하여야 할 수 있는 이러한 요청들을 서비스한다. 상기 클라우드 서비스로부터 수신된 타일 데이터와 타일 메타데이터를 사용하기 전에, 그의 무결성과 진위성이 타일 검증기(204)에 의해 확인된다. 예를 들어, 상기 맵 타일들은 각각 디지털 서명(적어도 하나의 원격 서버에 의해 적용됨)을 지닐 수 있다. 상기 서명은 데이터가 상기 클라이언트 프론트엔드에 제공되기 전에 상기 클라이언트 백엔드에 의해 확인된다. 여기서 이해할 점은 디지털 서명을 검사하는 것이 해시보다 복잡하고 ASIL-B에서 구현하기 어렵다는 것이다. 그러나 이는 클라이언트 백엔드(91)의 QM 수준에서 쉽게 수행될 수 있다.
확인 문제의 경우에 오류는 타일 데이터 서비스에 보고되고, 적용 가능한 경우 서비스 요청을 개시하는 것의 응답을 통해 상기 클라이언트 프론트엔드(92)에 보고된다. 상기 클라이언트 프론트엔드 내 HD 맵 RPC 클라이언트 스터브(102)는 또한 타임아웃 메커니즘을 포함한다. 이러한 타임아웃 메커니즘은 상기 클라이언트 백엔드(91)가 지정된 타임아웃 내 API 호출(API 호출 매개변수로서 전달됨)에 응답하지 않는 경우 반환 타임아웃 오류를 트리거한다.
상기 클라이언트 라이브러리(202)는 타일 데이터 및 타일 메타데이터를 영구 캐시(203)에 저장하고 그럼으로써 그것이 차후의 사용을 위해 이용 가능하게 한다. 상기 영구 타일 캐시(203)로부터 회수된 데이터를 사용하기 전에, 그의 무결성은 상기 타일 검증기(204)에 의해 확인된다. 검증 문제의 경우에, 영향을 받는 데이터는 캐시로부터 퍼징(purging)되고 상기 클라우드 서비스로부터 새로 회수된다. 상기 영구 타일 캐시(203)의 개념적 구성이 도 12에 도시되어 있다. 상기 영구 타일 캐시는 2개의 캐시, 다시 말하면 타일 데이터 캐시(401) 및 타일 메타데이터 캐시(402)로 이루어진 것으로서 보일 수 있다. 상기 캐시들에는 한 세트의 캐시 레코드들, 다시 말하면 타일 데이터 캐시 레코드들 및 타일 메타데이터 캐시 레코드들이 포함된다. 특정 타일 버전의 타일이 각각 자체의 고유 맵 버전을 지니는 여러 맵에 존재할 수 있으므로, 타일 데이터 캐시 레코드에는 하나 이상의 연관된 타일 메타데이터 캐시 레코드들이 있다. 연관은 타일 id, 레이어 id 및 공통 타일 버전d에 의해 표현된다. 상기 타일 메타데이터 캐시 레코드에는 상기 클라우드 서비스가 메타데이터 서명을 제외한 전체 레코드에 걸쳐 계산하는 메타데이터가 포함된다. 타일 메타데이터 해시는 64비트로 잘린 SHA-256 해시이며 상기 클라이언트 프론트엔드에 의해 타일 메타데이터를 확인하기 위해 사용된다.
상기 클라이언트 라이브러리(202)는 HTTPS 클라이언트(205)를 통해 클라우드 서비스(14, 18)와 상호작용한다. 상기 HTTPS 클라이언트(205)는 예를 들어 타일 데이터 서비스(18) 및 타일 메타데이터 서비스(14e)를 인증한다. 예를 들어, 상기 클라이언트 백엔드(91)는 TLS를 통해 상기 클라우드 서비스와 상호작용할 수 있다. TLS 서버와 TLS 클라이언트 간에 전송되는 모든 메시지들은 암호화되어 비록 인터셉트(intercept)된다 하더라도 비-공개로 유지된다. TLS는 메시지 다이제스트를 계산함으로써 메시지 무결성을 제공한다. 인증서 체인 기반 인증서 확인을 통해 TLS 클라이언트(다시 말하면, 클라이언트 백엔드(91))가 TLS 서버들(다시 말하면, 맵 데이터 서버 및 맵 메타데이터 서버)를 인증할 수 있다. 타일을 회수하기 위해 HTTPS 클라이언트는 먼저 타일 메타데이터 서비스(14)로부터 타일 메타데이터를 회수한다. 이러한 메타데이터는 타일이 영구 타일 캐시(203)에 아직 존재하지 않을 경우에 타일 데이터 서비스(18)로부터 타일을 회수하는 데 사용되는 연관된 타일의 URI를 포함한다.
맵 타일들 및 맵 타일 메타데이터는 각각 타일 데이터 캐시 레코드들 및 타일 메타데이터 캐시 레코드들에 저장된다. 캐시 레코드들은 상기 클라우드 서비스에 의해 디지털 서명되고 상기 타일 검증기에 의해 확인된다. 그럼으로써 상기 영구 타일 캐시의 모든 콘텐츠는 디지털 서명된다. 디지털 서명 생성 및 확인은 클라우드의 개인 암호화 키들과 차량의 연관된 공개 암호해독 키들을 사용하는 비-대칭 암호화에 의존한다. 확인에 성공하면 타일 데이터와 타일 메타데이터의 무결성과 진위성 양자 모두가 보장된다.
상기 클라이언트 프론트엔드의 ASIL-B 안전성 메커니즘은 클라이언트가 HD 맵 애플리케이션에 제공하는 HD 맵 데이터의 무결성을 확인한다. 이러한 안전성 메커니즘은 아크들(다시 말하면, 차선 그룹들 및 분기점 영역들), 아크에 연관된 속성, 및 노드들의 수준에서 작동된다. 상기 클라이언트 백엔드는 ASIL-B 수준에서 개발될 필요가 없는데, 그 이유는 이러한 수준이 상기 클라이언트 프론트엔드에 의해 보장되기 때문이다. 따라서 상기 클라이언트 백엔드는 예컨대 ISO 26262:2018 QM에 따라 개발될 수 있다.
상기 클라이언트 프론트엔드(92) 및 백엔드(91)는 양자 모두 동일한 ECU 플랫폼에서 효율적으로 사용될 수 있고 IPC에 의해 제공되는 기본 ECU 플랫폼과 RPC를 통해 상호작용 가능하다. 이를 통해 ECU 플랫폼 OS에 의해 제공되는 안전한 IPC에 의존할 수 있는데, 다시 말하면, 프로세서 간 통신을 위한 안전한 통신 프로토콜 스택들이 회피된다. 예를 들어, 클라이언트 프론트엔드와 클라이언트 백엔드 양자 모두는 다른 코드와 링크되고 연관된 실행 파일에 있는 C++ 라이브러리를 포함할 수 있다. 이러한 실행 파일은 동일한 ECU 플랫폼 상에서 효율적으로 사용되며 IPC에 의해 제공되는 기본 ECU 플랫폼과 RPC를 통해 상호작용한다. 그 경우에, 기본 ASIL-B 호환 ECU 플랫폼 운영 체제에 의해 제공되는 별도의 프로세스들을 효율적으로 사용함으로써 QM 부분(클라이언트 백엔드)과 ASIL-B(B) 부분(클라이언트 프론트엔드)의 충분한 독립성이 실현될 수 있다. 프론트엔드와 백엔드 간 RPC 기반 상호작용은 ASIL-B 호환 ECU 플랫폼에 의해 또한 제공되는 안전한 IPC 메커니즘에 의존한다. 그러나 이는 그러한 경우일 필요가 없으며 서로 다른 ECU 플랫폼들 상에 있을 수 있다.
따라서, 본 실시 예는 향상된 결함 복원 기능을 지니는 자율 차량 애플리케이션을 위한 확장 맵 클라이언트의 구현에 관한 것이다. 특히, 전체 맵 클라이언트 구현에 복원 기법을 적용하는 대신에, 맵 클라이언트 프론트엔드(92) 및 맵 클라이언트 프론트엔드(92)를 포함하는 확장된 맵 클라이언트가 제공되며 여기서 상기 맵 클라이언트 프론트엔드(92)(만)이 기능적 안전성 강화 기법으로 설계된다. 지금부터 본 실시 예에 따른 시스템의 전체적인 작동에 대한 구체적인 설명이 제공될 것이다. 그러나 다른 배치들이 물론 가능하게 된다.
위에서 설명한 바와 같이, 상기 맵 클라이언트 프론트엔드(92)는 맵 애플리케이션(또는 다수의 맵 애플리케이션)와의 인터페이스들 및 맵 클라이언트 백엔드(91)에 대한 인터페이스들을 지닌다. 상기 HD 맵 애플리케이션은 결함 검출, 결함 보고 및 결함 진단을 위한 서비스 인터페이스로 확장된 맵 클라이언트 서비스 인터페이스를 포함하는 결함 복원 맵 클라이언트 서비스 인터페이스를 사용하여 맵 클라이언트 프론트엔드(91)와 인터페이스한다.
따라서 맵 클라이언트 프론트엔드(92)는 결함 모니터링을 제공하고 이는 결함 복원 맵 클라이언트 서비스 인터페이스를 사용하여 HD 맵 애플리케이션에 임의의 검출된 결함들을 보고한다. 상기 맵 클라이언트 프론트엔드의 목적은 상기 맵 클라이언트가 제공하는 데이터의 무결성을 확인함으로써 상기 맵 클라이언트의 결함들을 검출하는 것이다. 상기 맵 클라이언트로부터의 데이터에서 결함이 검출되면 상기 맵 클라이언트 프론트엔드는 결함이 있는 데이터를 드롭(drop)시키고 상기 HD 맵 애플리케이션에 결함을 보고한다.
본 실시 예에서, 상기 맵 클라이언트 프론트엔드(92)는 맵 서버 기반구조의 맵 타일 컴파일러(12)에서 상기 HD 맵 기능 안전 모듈(1210)에 의해 생성된 HD 도로 객체 데이터에 연관된 기능적 안전성 데이터를 사용한다. 상기 맵 타일 컴파일러(12)는 HD 도로 아크들 및 HD 도로 노드들(맵 객체들)을 컴파일한 다음에 이러한 컴파일된 데이터 구조들(맵 객체들)에 걸쳐 '기능적 안전성 데이터'를 생성한다.
상기 맵 클라이언트 백엔드(91)는 상기 HD 도로 객체 데이터와 함께 타일 데이터를 수신, 확인 및 캐시(cache)한다. 그러나 이는 HD 도로 객체 데이터(아크 및 노드 데이터) 또는 그의 연관된 기능적 안전성 데이터를 수정, 생성, 확장 또는 작동시키지 않는다. 그래서 상기 맵 클라이언트에 의해 출력되는 HD 도로 객체 데이터 및 연관된 기능적 안전성 데이터는 상기 맵 서버 기반구조에서 생성된 데이터와 동일하여야 한다.
상기 맵 클라이언트 프론트엔드(92)는 상기 HD 도로 객체 데이터와 함께 기능적 안전성 데이터를 수신한다. 상기 기능적 안전성 데이터가 상기 HD 도로 객체 데이터와 일치하지 않으면 이는 상기 데이터를 제공하는 맵 클라이언트 내에 결함이 있음을 나타낸다. 상기 맵 클라이언트로부터 수신된 데이터 내 결함을 검출한 후에 상기 맵 클라이언트 프론트엔드는 데이터를 차단하고 상기 데이터를 요청한 HD 맵 애플리케이션에 결함을 보고한다. 상기 HD 맵 애플리케이션은 결함 보고를 사용하여 적절한 응답을 트리거할 수 있다. 따라서 상기 맵 클라이언트 프론트엔드는 상기 맵 클라이언트 모듈 내 결함과 맵 서버에서부터 맵 클라이언트 프론트엔드에 이르기까지의 통신 경로 내 결함으로부터 상기 HD 맵 애플리케이션을 보호한다.
상기 맵 클라이언트 프론트엔드의 결함 검출 기능은 상기 맵 클라이언트 백엔드의 한 세트의 기능들에 비해 작은 것이다. 이는 기능적 안전성 엔지니어링 기법들을 사용하여 구현하기에 적합하다. 상기 맵 클라이언트 프론트엔드의 기능적 안전성 구현은 상기 맵 클라이언트의 모든 결함들을 검출 및 보고하고 그의 기능적 안전성 엔지니어링 구현으로 인해 상기 맵 클라이언트 프론트엔드 구현 자체의 결함들에 대해 결함 복원이 이루어진다.
상기 맵 클라이언트와 상기 클라이언트 프론트엔드의 조합은 확장 맵 클라이언트이라고 불린다. 본 발명에 따른 확장 맵 클라이언트는 (일반적인) 맵 클라이언트 구현 및 기능적 안전성 맵 클라이언트 프론트엔드 구현으로 이루어진다. 이러한 확장 맵 클라이언트 구현은 기능적 안전성 요구사항을 준수한다. 이는 상기 맵 클라이언트만의 기능적 안전성 구현에 비해 상당히 적은 자원을 사용하여 이를 달성한다.
상기 확장 맵 클라이언트는 자원(하드웨어, 소프트웨어, 저장, 에너지, 개발, 테스트, 유지관리)이 약간만 증가시키면서 HD 맵 애플리케이션을 위한 기능적 안전성 맵 클라이언트 서비스 인터페이스를 제공한다.
위에서 설명한 방식으로 상기 맵 클라이언트(22)를 분할하는 다른 한 이점은 상기 클라이언트 프론트엔드(92)가 클라이언트 백엔드(91)에서의 구현 강화로부터 상기 맵 애플리케이션을 보호하는 데 도움이 된다는 것이다. 변형 맵 클라이언트 구현들은 확장 맵 클라이언트의 기능적 안전성 규정 준수에 영향을 미치지 않으면서 정상적인 개발 방식을 사용하여 결함 복원을 향상시킬 수 있다. 상기 확장 맵 클라이언트의 구조로 인해 상기 맵 클라이언트 프론트엔드(92)의 구현은 상기 맵 클라이언트 백엔드(91)의 기능과는 독립적이다. 상기 기능적 안전성 규정 준수가 상기 맵 클라이언트 프론트엔드 구현에 의해 결정되므로 상기 맵 클라이언트에 대한 어떠한 변경사항들도 확장 맵 클라이언트의 기능적 안전성 규정 준수에 영향을 미치지 않는다.
상기 맵 클라이언트 프론트엔드(92)는 또한 상기 맵 클라이언트 백엔드(91)가 요청에 (적시에) 응답하지 않게 되는 상기 맵 클라이언트 백엔드(91) 내 결함을 처리하도록 구성될 수 있다. 상기 맵 클라이언트 백엔드(91)는, 예를 들어, HD 맵 애플리케이션으로부터의 각각의 요청과 임계 응답 시간을 연관시키고 상기 맵 클라이언트가 상기 요청에 연관된 임계 응답 시간 내에서 상기 요청에 응답하지 않을 때 상기 HD 맵 애플리케이션에 타임아웃 결함 응답을 반환할 수 있다.
상기 맵 클라이언트 백엔드(91)의 HTTPS 클라이언트 회로(205)는 데이터 구조 타일을 획득한다. 상기 맵 클라이언트 백엔드(91)의 클라이언트 라이브러리 회로(202)는 먼저 상기 맵 클라이언트 백엔드(91)의 타일 확인 회로(204)에 타일을 전송한다. 상기 타일 확인 회로(204)는 타일 서명(703)을 사용하여 수신된 타일 데이터 구조(700)의 진위성 및 무결성을 확인한다. 상기 타일 확인 후에, 상기 클라이언트 라이브러리 회로(202)는 타일 데이터(702)를 저장하기 위해 영구 타일 캐시(203)에 타일을 전송한다.
상기 맵 클라이언트 백엔드(91)의 맵 인터페이스 어댑터 회로는 HD 맵 애플리케이션으로부터 HD 도로 객체 데이터에 대한 요청들을 수신한다. 이는 그 후에 이러한 요청들을 상기 클라이언트 라이브러리 회로에 포워드한다. 요청은 특정 HD 도로 객체 id 또는 특정 위치에 기초하여 이루어진 HD 도로 객체에 대한 요청이 있을 수 있다. 그 결과 요청된 HD 도로 객체가 존재하지 않거나 상기 영구 타일 캐시(204)로부터 하나 이상의 HD 도로 객체를 반환할 수 있다. 상기 요청의 결과는 상기 맵 클라이언트 어댑터(201)를 통해 상기 HD 맵 애플리케이션으로 반환된다. 여기서 유념할 점은 전체 HD 도로 객체(다시 말하면, 튜플(tuple): HD 도로 객체 id, HD 도로 데이터, 기능적 안전성 데이터)가 반환된다는 것이다. 본 실시 예에서, 상기 맵 클라이언트 프론트엔드(92)는 HD 맵 애플리케이션으로부터의 요청들을 포워드하고 상기 맵 클라이언트 백엔드(91)에서의 결함을 검출하기 위해 상기 반환된 HD 맵 객체를 검사한다. 상기 맵 클라이언트 프론트엔드(92)는 상기 HD 맵 객체 데이터(704)를 검사하기 위해 보안 데이터(705)를 사용한다.
상기 맵 클라이언트 백엔드(91)는 상기 보안 데이터(705)의 생성 또는 처리와 어떤 식으로든 관련되어 있지 않으므로 상기 맵 클라이언트 백엔드(91)의 기능적 결함은 상기 맵 클라이언트 프론트엔드(92)에서 신뢰성 있게 검출될 수 있다.
따라서 위에서 설명한 시스템은 맵 데이터를 차량에 전달할 수 있다. 특히, 본 실시 예들은 차후의 차량 내 배포 이전에 적어도 원하는 HD 도로 수준 맵 데이터의 무결성 및 진위성을 확인함으로써 HD 맵 데이터의 차량으로의 안전한 전달을 보장한다. (교통 표지와 같은 내비게이트 가능한 (예컨대, 도로) 네트워크에 연관되어 있지 않은 HD 맵 데이터는 원하는 기능적 안전성 수준에 따라 확인될 수도 있고 확인되지 않을 수도 있다.)
예를 들어, HD 맵 데이터 요청을 수락하면 클라이언트는 상기 요청에 지정된 대로 HD 맵 데이터(다시 말하면, 올바른 데이터)를 제공하거나 무결성 오류를 반환할 것이다. HD 맵 데이터 요청을 수락하면 클라이언트는 지정된 타임아웃 내에 상기 요청된 HD 맵 데이터를 제공하거나 또는 타임아웃 직후에 타임아웃 오류를 반환할 것이다. 특히 HD 맵 데이터 요청을 수락하면 클라이언트 백엔드는 그 후에 (예컨대, 타일 수준에서 데이터의 진위성 및 무결성 검사 후) 클라우드 서비스로부터 회수한 HD 맵 데이터와 동일한 HD 맵 데이터를 클라이언트 프론트엔드에 제공함과 아울러 맵 데이터(다시 말하면, 아크들 및 노드들)에 대한 연관된 해시 값들을 클라이언트 프론트엔드에 제공할 것이다. 그 후에, 상기 클라이언트 프론트엔드는 연관된 해시 데이터를 사용하여 상기 클라이언트 백엔드에 의해 제공된 HD 맵 데이터의 무결성을 확인하고, 일단 상기 HD 맵 데이터가 확인되면 상기 클라이언트 프론트엔드는 상기 요청된 HD 맵 데이터를 맵 기반 애플리케이션들에 제공할 수 있다. 상기 HD 맵 데이터가 확인될 수 없는 경우 상기 클라이언트 프론트엔드는 상기 데이터에 대한 다른 한 요청을 발행할 수 있으며 확인된 HD 맵 데이터가 예컨대 지정된 타임아웃 내에 제공되지 않으면 무결성 오류를 발행할 수 있다.
맵 메타데이터는 상기 맵 데이터와는 별도로 전송되며 해시들에 의해 또한 보호된다. 다시 말하면, 모든 차선 그룹 및 분기점 영역에는 그 자체의 해시를 지니는 연관된 메타데이터가 있다. 메타데이터에는 버전 및 포맷 정보가 포함된다.
다른 한 변형 맵 데이터 배포 시스템이 도 13에 도시되어 있다. 이러한 실시 예는 차량 내 HD 맵 배포 시스템으로서 위에서 설명한 수법을 이용하고 위에서 설명한 것의 확장이다. 여기에서, 단일 클라이언트 백엔드(91)는 원격 프로시저 호출(Remote Procedure Call; RPC)에 의해 차량 내에 배포된 다중 클라이언트 프론트엔드(92A, 92B)를 서비스한다. 차량에서 RPC는 일반적으로 이더넷을 통한 TCP/IP 위에서 구현된다. 안전한 차량 내 네트워크 통신에 의존하여 시스템은 상기 HD 맵 애플리케이션에 의해 사용되는 HD 맵 데이터의 종단 간 (차량 내 HD 맵 애플리케이션에 대한 클라우드 서비스)를 제공한다.
여기서 유념할 점은 이러한 시스템이 예를 들어 ADASIS V3가 전송했던 것보다 많은 데이터를 차량 내 네트워크를 통해 전송하게 된다는 것이다. 그러나 ADASIS V3는 낮은 대역폭의 CAN 네트워크 상에 효율적으로 사용되어야 하는 ADASIS V2에 의해 영감을 받은 것이었다. ADASIS V2와 V3 양자 모두는 전송해야 할 데이터의 미세한 선택을 허용한다. 그러나 이더넷은 CAN보다 큰 대역폭을 지니고 그럼으로써 전송할 최소량의 데이터를 최적화하는 것이 덜 중요하게 된다. 위에 제시한 클라이언트는 데이터의 전송 및 확인 후 미세한 선택을 수행하는 API를 제공한다.
도 14는 단일 맵 프론트엔드(92)가 다중 맵 클라이언트(클라이언트 백엔드(91A, 91B))에 의해 제공되는 다른 일 예를 보여준다.
따라서, 본 실시 예들은 애플리케이션에 전달되기 전에 (차선 그룹들 및 분기점 영역들과 같은) 의미 있는 엔티티들의 수준에서 HD 맵 데이터의 무결성/진위성을 확인하는 것을 포함하는 안전한 HD 맵 전달 시스템을 제공한다. 또한 상기 맵 클라이언트를 다양한 수준의 기능적 안전성에서 구현될 수 있는 프론트/백엔드로 분할함으로써 원하는 기능적 안전성이 효율적으로 달성된다.
전술한 상세한 설명은 예시 및 설명의 목적으로 제시되었다. 여기에 기재된 기술을 총망라한 것이거나 개시된 정확한 형태로 제한하는 것으로 의도된 것이 아니다. 상기 교시에 비추어 많은 수정 및 변형이 가능하다. 기재된 실시 예들은 여기에 기재된 기술의 원리들 및 그의 실제 적용들을 가장 잘 설명하기 위해 선택되었으며, 그럼으로써 당업자가 여기에 기재된 기술을 다양한 실시 예에서 그리고 고려된 특별한 사용에 적합한 여러 변형으로 가장 잘 이용할 수 있게 한 것이었다. 따라서, 본 명세서, 도면들 및/또는 청구범위에 개시된 특징들은 개별적으로 또는 이들의 여러 조합으로 취해진 다양한 실시 예의 구현을 위한 소재일 수 있다. 또한, 본 발명은 다양한 실시 예를 참조하여 설명되었지만, 첨부한 청구범위에 기재된 본 발명의 범위를 벗어나지 않으면서 형태 및 세부사항의 다양한 변경이 이루어질 수 있음이 당업자에 의해 이해될 것이다.

Claims (20)

  1. 원격 서버로부터 디지털 맵에 의해 커버되는 내비게이트 가능한 네트워크를 횡단하는 차량의 전자 제어 유닛(Electronic Control Unit; ECU) 상에서 실행되는 하나 이상의 맵 기반 애플리케이션(들)으로 전송되는 맵 데이터를 확인하는 방법으로서, 상기 디지털 맵은 한 세트의 복수의 맵 타일들로서 표현되며, 각각의 맵 타일은 상기 내비게이트 가능한 네트워크의 일부를 포함하는 특정한 지리적 영역을 표현하고, 상기 방법은,
    상기 서버에서, 맵 타일에 대한 데이터 구조를 생성하는 단계 - 상기 데이터 구조는 상기 타일에 의해 커버되는 지리적 영역 내에 그리고/또는 상기 디지털 맵을 표현하는 상기 타일(들) 중 다른 하나 이상의 타일들에 의해 커버되는 지리적 영역 내에 적어도 부분적으로 속하는 한 세트의 하나 이상의 객체(들)를 나타내는 객체 데이터를 포함하고, 객체 데이터가 상기 맵 타일 데이터 구조에 포함된 상기 한 세트의 하나 이상의 객체(들) 내 적어도 하나의 객체에 대해, 연관된 보안 데이터는 상기 적어도 하나의 객체에 대한 객체 데이터와 함께 상기 맵 타일 데이터 구조 내에 포함되며, 상기 보안 데이터는 이에 연관된 객체 데이터의 무결성을 확인하기 위해 사용 가능한 것임 -; 및
    상기 객체 데이터 및 연관된 보안 데이터를 포함하는 타일에 대한 맵 타일 데이터 구조를 상기 서버로부터 차량의 하나 이상의 처리 유닛(들) 상에서 실행되는 클라이언트 애플리케이션으로 전송하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 방법은,
    상기 클라이언트 애플리케이션이 상기 타일 데이터 구조를 언패킹하여 상기 타일 데이터 구조 내에 데이터가 저장되어 있는 하나 이상의 객체(들)를 나타내는 객체 데이터를 추출하는 단계; 및
    상기 클라이언트 애플리케이션이 상기 연관된 보안 데이터를 사용하여 상기 추출된 객체 데이터의 무결성을 확인하는 단계
    를 더 포함하는, 방법.
  3. 디지털 맵에 의해 커버되는 지리적 영역 내 내비게이트 가능한 네트워크를 횡단하는 차량에 탑재되어 실행되는 클라이언트 애플리케이션을 작동시키는 방법으로서, 상기 디지털 맵은 한 세트의 복수의 맵 타일들로서 표현되고, 각각의 맵 타일은 상기 내비게이트 가능한 네트워크의 일부를 포함하는 특정한 지리적 영역을 표현하며, 각각의 맵 타일은 연관된 맵 타일 테이터 구조를 지니고, 상기 연관된 맵 타일 데이터 구조는,
    상기 맵 타일에 의해 커버되는 지리적 영역 및/또는 상기 디지털 맵을 표현하는 맵 타일(들) 중 다른 하나 이상의 맵 타일들에 의해 커버되는 지리적 영역 내에 적어도 부분적으로 속하는 한 세트의 하나 이상의 객체(들)를 나타내는 객체 데이터 맵; 및
    상기 맵 타일 데이터 구조에 객체 데이터가 저장된 적어도 하나의 객체에 연관된 객체 데이터의 무결성을 확인하기 위한 보안 데이터
    를 포함하고,
    상기 방법은,
    상기 클라이언트 애플리케이션에서, 상기 내비게이트 가능한 네트워크의 하나 이상의 특징(들)에 관련된 맵 데이터에 대한 요청을 하나 이상의 맵 기반 애플리케이션(들)으로부터 수신하는 단계;
    상기 클라이언트 애플리케이션에 의해, 대응하는 맵 타일 데이터 구조로부터 상기 특징(들)에 관련된 객체 데이터를 획득하는 단계;
    상기 대응하는 맵 타일 데이터 구조로부터 상기 획득된 객체 데이터에 대한 연관된 보안 데이터를 획득하는 단계; 및
    상기 클라이언트 애플리케이션이 상기 보안 데이터를 사용하여 상기 객체 데이터의 무결성을 확인하고 상기 데이터가 확인되면 상기 객체 데이터를 상기 맵 기반 애플리케이션(들)에 전달하는 단계
    를 포함하는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    객체에 대한 연관된 보안 데이터는 적어도 상기 객체에 대한 객체 데이터를 사용하여 계산된 해시 값을 포함하고, 상기 객체 데이터의 무결성을 확인하는 것은 상기 클라이언트 애플리케이션이 상기 해시 값을 재-계산하고, 상기 재-계산된 해시 값을 상기 타일 데이터 구조에 포함된 상기 객체에 대한 해시 값과 비교하는 것을 포함하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 또는 각각의 맵 타일 데이터 구조는 상기 타일 데이터 구조의 진위성 및/또는 무결성을 확인하기 위한 디지털 서명을 지니며, 상기 디지털 서명은 상기 서버에 의해 적용되는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 클라이언트 애플리케이션은 제1 애플리케이션 및 제2 애플리케이션을 포함하고, 상기 제1 애플리케이션은 상기 맵 기반 애플리케이션 및 상기 제2 애플리케이션과 통신하고, 상기 제2 애플리케이션은 상기 적어도 하나의 원격 서버와 통신하는, 방법.
  7. 제6항에 있어서,
    상기 제1 애플리케이션은, 상기 디지털 맵에 의해 커버되는 상기 내비게이트 가능한 네트워크 내 특징에 관련된 정보에 대한 하나 이상의 맵 기반 애플리케이션(들)으로부터의 요청에 응답하여, 상기 특징에 연관된 객체 데이터를 상기 제2 애플리케이션으로부터 요청하고, 이어서 상기 제2 애플리케이션은 관련 객체 데이터 및 이에 연관된 보안 데이터를 획득하며 상기 객체 데이터 및 상기 보안 데이터를 상기 제1 애플리케이션에 제공하고, 상기 제1 애플리케이션은 상기 보안 데이터를 사용하여 상기 객체 데이터의 무결성을 확인하는, 방법.
  8. 제7항에 있어서,
    상기 제1 애플리케이션이 상기 객체 데이터의 무결성을 확인하는 경우, 상기 객체 데이터는 상기 제1 애플리케이션으로부터 상기 맵 기반 애플리케이션으로 제공되는, 방법.
  9. 제8항에 있어서,
    상기 제1 애플리케이션은, 상기 객체 데이터의 확인이 실패된 경우, 무결성 오류 메시지를 생성하고 그리고/또는 상기 객체 데이터에 대한 다른 요청을 생성하는, 방법.
  10. 제6항 내지 제9항 중 어느 한 항에 있어서,
    상기 제2 애플리케이션은, 복수 개의 맵 타일들에 대해 상기 적어도 하나의 원격 서버로부터 획득된 데이터를 저장하는 맵 타일 캐시를 포함하고, 상기 제2 애플리케이션은 객체 데이터가 상기 맵 타일 캐시에 존재하는지를 우선 검사함으로써 상기 객체 데이터를 획득하도록 작동 가능하며, 상기 요청에 관련된 객체 데이터가 상기 맵 타일 캐시에 존재하는 경우, 상기 제2 애플리케이션은 상기 맵 타일 캐시로부터 상기 객체 데이터를 판독하는 한편, 상기 객체 데이터가 상기 맵 타일 캐시에 존재하지 않는 경우, 상기 제2 애플리케이션은 상기 객체 데이터에 대한 요청을 상기 서버에 발행하는, 방법.
  11. 제10항에 있어서,
    상기 또는 각각의 맵 타일 데이터 구조는 상기 타일 데이터 구조의 진위성 및/또는 무결성을 확인하기 위한 디지털 서명을 지니고, 상기 제2 애플리케이션은 상기 데이터를 상기 맵 타일 캐시 내에 추가하기 전에 상기 연관된 디지털 서명을 사용하여 상기 적어도 하나의 서버로부터 수신된 상기 맵 타일 데이터 구조(들)의 진위성 및/또는 무결성을 확인하는, 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 맵 타일들은 노드들에 의해 연결된 복수 개의 아크들로서 상기 지리적 영역의 일부 내 상기 내비게이트 가능한 네트워크를 표현하며, 한 타일의 각각의 아크 및 노드는 객체 데이터 및 이에 연관된 보안 데이터를 지니는, 방법.
  13. 적어도 하나의 원격 서버로부터 차량의 전자 제어 유닛(ECU) 상에서 실행되는 하나 이상의 맵 기반 애플리케이션(들)으로 디지털 맵 데이터를 제공하기 위해 지리적 영역 내 내비게이트 가능한 네트워크를 횡단하는 차량의 하나 이상의 처리 유닛 상에서 실행되는 클라이언트 애플리케이션을 작동시키는 방법으로서, 상기 클라이언트 애플리케이션은 제1 애플리케이션 및 제2 애플리케이션을 포함하고, 상기 제1 애플리케이션은 상기 맵 기반 애플리케이션 및 상기 제2 애플리케이션과 통신하며, 상기 제2 애플리케이션은 상기 적어도 하나의 원격 서버와 통신하고, 상기 적어도 하나의 원격 서버는, (i) 복수 개의 맵 타일들을 저장하는 맵 타일 데이터 저장소 - 각각의 맵 타일은 노드들에 의해 연결된 복수 개의 아크들로서 상기 지리적 영역의 일부 내 상기 내비게이트 가능한 네트워크를 표현함 -; 및 (ii) 상기 맵 타일 데이터 저장소 내 상기 맵 타일들의 각각의 맵 타일에 대한 메타데이터를 저장하는 맵 타일 메타데이터 데이터 저장소에 액세스 가능하며, 한 타일의 각각의 아크 및 노드는 객체 데이터 및 이에 연관된 해시 값을 지니고, 상기 해시 값은 대응하는 아크 또는 노드에 대한 객체 데이터 및 대응하는 아크 또는 노드에 대한 객체 데이터를 포함하는 상기 타일에 대한 타일 메타데이터에 적어도 기초하여 상기 서버에서 계산되며, 상기 제2 애플리케이션은 (i) 상기 적어도 하나의 원격 서버로부터 획득된 복수 개의 맵 타일들을 저장하는 맵 타일 캐시; 및 (ii) 상기 적어도 하나의 원격 서버로부터 획득된 맵 타일 캐시 내 맵 타일들의 각각의 맵 타일에 대한 메타데이터를 저장하는 맵 타일 메타데이터 캐시를 포함하고, 상기 방법은,
    상기 제1 애플리케이션에 의해, 상기 내비게이트 가능한 네트워크의 특징에 관련된 디지털 맵 데이터에 대한 요청을 상기 맵 기반 애플리케이션으로부터 수신하는 단계;
    상기 제1 애플리케이션에 의해, 상기 요청된 디지털 맵 데이터에 관련된 적어도 하나의 아크 또는 노드에 대한 객체 데이터 및 해시 값을 상기 제2 애플리케이션으로부터 요청하는 단계;
    상기 맵 타일 캐시에 상기 요청된 타일이 저장되어 있지 않은 경우 상기 제2 애플리케이션에 의해, 상기 맵 타일 캐시, 또는 상기 맵 타일 데이터 저장소로부터 상기 요청된 객체 데이터 및 해시 값(들)을 획득하고, 그들을 상기 제1 애플리케이션에 제공하는 단계;
    상기 제1 애플리케이션에 의해, 상기 요청된 디지털 맵 데이터에 관련된 적어도 하나의 아크 또는 노드에 관한 상기 맵 타일에 대한 메타데이터를 상기 제2 애플리케이션으로부터 요청하는 단계;
    상기 제2 애플리케이션에 의해, 상기 맵 타일 메타데이터 캐시에 상기 요청된 타일 메타데이터가 저장되어 있지 않은 경우 상기 맵 타일 메타데이터 캐시, 또는 상기 맵 타일 메타데이터 데이터 저장소로부터 상기 요청된 타일 메타데이터를 획득하고, 이를 상기 제1 애플리케이션에 제공하는 단계;
    상기 제1 애플리케이션에 의해, 상기 수신된 객체 데이터 및 타일 메타데이터에 기초하여 상기 적어도 하나의 아크 또는 노드에 대한 새로운 해시 값을 계산하는 단계;
    상기 제1 애플리케이션에 의해, 상기 새로운 해시 값을 상기 수신된 해시 값과 비교하는 단계; 및
    상기 제1 애플리케이션에 의해, 상기 비교에 기초하여 상기 요청된 디지털 맵 데이터 또는 무결성 오류 메시지를 상기 맵 기반 애플리케이션에 제공하는 단계
    를 포함하는, 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 맵 기반 애플리케이션은 자율 주행 애플리케이션이거나, 상기 맵 기반 애플리케이션은 맵 데이터를 자율 주행 애플리케이션에 차례로 제공하는 차량 호리즌 공급자이고, 상기 연관된 보안 데이터에 기반한 요청된 객체 데이터의 확인이 실패되면 상기 자율 주행 애플리케이션은 차량을 안전 모드로 작동시키고 그리고/또는 차량을 안전하게 정지시키는, 방법.
  15. 적어도 하나의 원격 서버로부터 차량의 전자 제어 유닛(ECU) 상에서 실행되는 하나 이상의 맵 기반 애플리케이션으로 디지털 맵 데이터를 제공하기 위해 지리적 영역 내 내비게이트 가능한 네트워크를 횡단하는 차량의 하나 이상의 처리 유닛 상에서 실행되는 클라이언트 애플리케이션을 작동시키는 방법으로서, 상기 클라이언트 애플리케이션은 상기 ECU 상에서 실행되는 제1 애플리케이션 및 제2 애플리케이션을 포함하고, 상기 제1 애플리케이션은 상기 맵 기반 애플리케이션 및 상기 제2 애플리케이션과 통신하며, 상기 제2 애플리케이션은 상기 적어도 하나의 원격 서버와 통신하고, 상기 적어도 하나의 원격 서버는 복수 개의 맵 타일들을 저장하는 맵 타일 데이터 저장소에 액세스 가능하며, 각각의 맵 타일은 노드들에 의해 연결된 복수 개의 아크들로서 상기 지리적 영역의 일부 내 상기 내비게이트 가능한 네트워크를 표현하고, 한 타일의 각각의 아크 및 노드는 그에 연관된 객체 데이터를 지니며, 상기 제2 애플리케이션은 적어도 하나의 원격 서버로부터 획득된 복수 개의 맵 타일들을 저장하는 맵 타일 캐시를 포함하고, 상기 방법은,
    상기 제1 애플리케이션에 의해, 상기 내비게이트 가능한 네트워크의 특징에 관한 디지털 맵 데이터에 대한 요청을 상기 맵 기반 애플리케이션으로부터 수신하는 단계;
    상기 제1 애플리케이션에 의해, 상기 요청된 디지털 맵 데이터에 관련된 적어도 하나의 아크 또는 노드에 대한 객체 데이터를 상기 제2 애플리케이션으로부터 요청하는 단계;
    상기 제2 애플리케이션에 의해, 상기 요청된 객체 데이터를 획득하는 단계 - 상기 요청된 객체 데이터는, 상기 맵 타일 캐시에 상기 요청된 객체 데이터가 존재하는 경우에 상기 맵 타일 캐시로부터 획득되거나 상기 맵 타일 캐시에 상기 요청된 객체 데이터에 연관되는 요청된 타일이 존재하지 않는 경우에 상기 맵 타일 데이터 저장소로부터 획득됨 -;
    상기 요청된 객체 데이터를 상기 제1 애플리케이션에 제공하는 단계;
    상기 제1 애플리케이션에 의해, 상기 내비게이트 가능한 네트워크의 특징에 상응하는 객체 데이터의 일부를 식별하는 단계; 및
    상기 제1 애플리케이션에 의해, 상기 식별된 객체 데이터의 일부를 사용하여 상기 요청된 디지털 맵 데이터를 상기 맵 기반 애플리케이션에 제공하는 단계
    를 포함하는, 방법.
  16. 제6항 내지 제15항 중 어느 한 항에 있어서,
    상기 제2 애플리케이션은 상기 제1 애플리케이션보다 낮은 기능적 안전성 표준에 따라 개발되는, 방법.
  17. 제16항에 있어서,
    상기 제1 애플리케이션은 적어도 ISO 26262:2018 ASIL-B 기능적 안전성 표준에 따라 개발되는, 방법.
  18. 제6항 내지 제17항 중 어느 한 항에 있어서,
    상기 제1 애플리케이션은 중복 구현되는, 방법.
  19. 제6항 내지 제18항 중 어느 한 항에 있어서,
    상기 제1 애플리케이션은 상기 맵 기반 애플리케이션과 동일한 처리 플랫폼 상에서 실행되는, 방법.
  20. 제19항에 있어서,
    상기 처리 플랫폼은 차량의 전자 제어 유닛(ECU)을 포함하는, 방법.
KR1020227033276A 2020-02-25 2021-02-25 기능적 안전성이 강화된 디지털 맵 데이터 KR20220146579A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB2002612.6 2020-02-25
GBGB2002612.6A GB202002612D0 (en) 2020-02-25 2020-02-25 Digital map data with enhanced functional safety
PCT/EP2021/054682 WO2021170718A2 (en) 2020-02-25 2021-02-25 Digital map data with enhanced functional safety

Publications (1)

Publication Number Publication Date
KR20220146579A true KR20220146579A (ko) 2022-11-01

Family

ID=70108325

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227033276A KR20220146579A (ko) 2020-02-25 2021-02-25 기능적 안전성이 강화된 디지털 맵 데이터

Country Status (7)

Country Link
US (1) US20230358568A1 (ko)
EP (1) EP4111138B1 (ko)
JP (1) JP2023514127A (ko)
KR (1) KR20220146579A (ko)
CN (1) CN115135961A (ko)
GB (1) GB202002612D0 (ko)
WO (1) WO2021170718A2 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230290189A1 (en) * 2022-03-10 2023-09-14 Xilinx, Inc. Flexible queue provisioning for partitioned acceleration device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4633747B2 (ja) * 2007-01-17 2011-02-16 アイシン・エィ・ダブリュ株式会社 情報配信システム及び情報配信方法
EP2242993B1 (de) * 2008-02-15 2013-10-23 Continental Teves AG & Co. oHG Fahrzeugsystem zur navigation und/oder fahrerassistenz
JP5348502B2 (ja) * 2010-02-19 2013-11-20 アイシン・エィ・ダブリュ株式会社 ナビゲーションシステム
US8880589B2 (en) * 2010-12-29 2014-11-04 Environmental Systems Research Institute, Inc. Signature based map caching
US8898002B2 (en) * 2012-11-27 2014-11-25 Cloudcar, Inc. Geographical location aggregation from multiple sources
WO2018207424A1 (ja) * 2017-05-11 2018-11-15 三菱電機株式会社 メッセージ加工装置、地図管理装置、地図会社装置および自動車会社装置
US10867509B2 (en) * 2019-06-28 2020-12-15 Intel Corporation Information centric network high definition map distribution

Also Published As

Publication number Publication date
JP2023514127A (ja) 2023-04-05
CN115135961A (zh) 2022-09-30
WO2021170718A2 (en) 2021-09-02
EP4111138B1 (en) 2024-05-08
WO2021170718A3 (en) 2021-12-09
US20230358568A1 (en) 2023-11-09
EP4111138A2 (en) 2023-01-04
GB202002612D0 (en) 2020-04-08

Similar Documents

Publication Publication Date Title
CN110795439B (zh) 使用区块链平台使能地图更新的方法和设备
US11914712B1 (en) Blockchain based secure naming and update verification
JP7250411B2 (ja) モータ車両運転者支援システムに関する方法
CN109068299B (zh) 一种基于区块链的车联网架构及其工作方法
WO2019242288A1 (en) Secure firmware updates for remote vehicles
JP7369843B2 (ja) 検証方法、検証装置およびプログラム
US20200329022A1 (en) Data authentication method, apparatus, and system
JP2013060047A (ja) 車両用ネットワークシステム及び車両用情報処理方法
US20130055228A1 (en) System and Method for Installing a Patch on a Computing System
US20210012591A1 (en) Data storage device and non-transitory tangible computer readable storage medium
CN110377308A (zh) 数据升级方法、系统
EP3857846A1 (en) Electronic controller security system
CN112600839A (zh) 基于车联网平台构建安全威胁关联视图的方法及装置
KR20220146579A (ko) 기능적 안전성이 강화된 디지털 맵 데이터
CN115756908A (zh) 用于实时ecu崩溃报告和恢复的方法
US20230246849A1 (en) Verification method, verification apparatus, and storage medium including program stored therein
Falco et al. A distributedblack box'audit trail design specification for connected and automated vehicle data and software assurance
US20230088197A1 (en) Systems, Methods, and Computer Program Products for Blockchain Secured Code Signing of Autonomous Vehicle Software Artifacts
US20220107929A1 (en) System and Method Implementing a Distributed Audit Trail
KR102293076B1 (ko) 블록체인을 이용한 운송장치의 모빌리티 데이터 수집 시스템과 이를 이용한 모빌리티 데이터 수집 방법 및 프로그램
CN114834393B (zh) 车辆控制系统
US11561847B2 (en) Execution sequence integrity parameter monitoring system
Mukherjee et al. Trusted Verification of Over-the-Air (OTA) Secure Software Updates on COTS Embedded Systems
WO2023136288A1 (ja) データ保存装置、移動体、及びデータ削除プログラム
EP3864544B1 (en) Execution sequence integrity monitoring system

Legal Events

Date Code Title Description
A201 Request for examination