Digital Map Data with Enhanced Functional Safety
20230358568 · 2023-11-09
Inventors
- Cornelis Pieter Schuerman (Veldhoven, NL)
- Roland Alaric Ian Rosier (Hoogeloon, NL)
- Edward van de Vorst (Eindhoven, NL)
- Paul Lieverse (Eindhoven, NL)
Cpc classification
G06F21/64
PHYSICS
G01C21/3885
PHYSICS
International classification
G01C21/00
PHYSICS
H04L9/32
ELECTRICITY
Abstract
Disclosed herein is a technique for the generating and provision of digital map data that is safe and reliable. The technique enables the verification of the digital map data in a map-client using a simple and efficient data structure to check the correctness of the map data before in-vehicle delivery to components that rely on this map data.
Claims
1-20. (canceled)
21. A method of verifying map data that is being transmitted from a remote server to one or more map-based applications executing on an electronic control unit (ECU) of a vehicle traversing a navigable network covered by a digital map, wherein the digital map is represented as a set of plural map tiles, each tile representing a particular geographical area including a portion of the navigable network, the method comprising: generating, at the server, a data structure for a map tile, wherein the data structure includes object data indicative of a set of one or more objects falling at least partially within the geographical area covered by the tile and/or within the geographical area covered by another one or more of the tiles representing the digital map; wherein, for at least one object in the set of one or more objects for which object data is included in the map tile data structure, associated security data is included within the map tile data structure along with the object data for the at least one object, the security data being usable for verifying the integrity of its associated object data; and transmitting the map tile data structure for the tile including the object data and associated security data from the server to a client application executing on one or more processing units of the vehicle.
22. The method of claim 21, further comprising: the client application unpacking the tile data structure to extract object data indicative of one or more objects for which data is stored in the tile data structure; and the client application using the associated security data to verify the integrity of the extracted object data.
23. A method of operating a client application executing on-board a vehicle traversing a navigable network in a geographical area covered by a digital map, wherein the digital map is represented as a set of plural map tiles, each tile representing a particular geographical area including a portion of the navigable network, and wherein each map tile has an associated map tile data structure including: object data indicative of a set of one or more objects falling at least partially within the geographical area covered by the map tile and/or within the geographical area covered by another one or more of the map tiles representing the digital map; and security data for verifying the integrity of the object data associated with at least one object for which object data is stored in the map tile data structure, the method comprising: receiving, at the client application, a request from one or more map-based applications for map data relating to one or more features of the navigable network; obtaining, by the client application, object data related to the one or more features from the respective map tile data structure; obtaining, from the respective map tile data structure, associated security data for the obtained object data; and the client application using the security data to verify the integrity of the object data and, when the data is verified, passing the object data to the one or more map-based applications.
24. The method of claim 23, wherein the associated security data for an object comprises a hash value calculated using at least the object data for the object, and wherein verifying the integrity of the object data comprises the client application re-calculating the hash and comparing the re-calculated hash value with the hash value for the object that is included in the tile data structure.
25. The method of claim 23, wherein the or each map tile data structure has a digital signature for verifying the authenticity and/or integrity of the tile data structure, wherein the digital signature is applied by the server.
26. The method of claim 23, wherein the client application comprises a first application and a second application, the first application being in communication with the map-based application and the second application, and the second application being in communication with the at least one remote server.
27. The method of claim 26, wherein in response to a request from one or more map-based applications for information regarding a feature within the navigable network covered by the digital map, the first application requests object data associated with the feature from the second application, wherein the second application then obtains the relevant object data and its associated security data and provides the object data and the security data to the first application, wherein the first application uses the security data to verify the integrity of the object data.
28. The method of claim 27, wherein when the first application verifies the integrity of the object data, the object data is then provided from the first application to the map-based application.
29. The method of claim 28, wherein when the verification of the object data fails, the first application generates an integrity error message and/or generates another request for the object data.
30. The method of claim 26, wherein the second application comprises: a map tile cache storing data obtained from the at least one remote server for a plurality of map tiles, and wherein the second application is operable to obtain object data by first checking whether the object data is present in the map tile cache, wherein when the object data related to the request is present in the map tile cache, the second application reads the object data from the map tile cache, whereas when the object data is not present in the map tile cache, the second application issues a request for the object data to the server.
31. The method of claim 30, wherein the or each map tile data structure has a digital signature for verifying the authenticity and/or integrity of the tile data structure, and wherein the second application verifies the authenticity and/or integrity of the one or more map tile data structures received from the at least one server, using the associated digital signature, before adding the data into the map tile cache.
32. The method of claim 23, wherein the map tiles represent the navigable network in a portion of the geographical area as a plurality of arcs connected by nodes, wherein each arc and node of a tile have object data and security data associated therewith.
33. A method of operating a client application running on one or more processing units of a vehicle traversing a navigable network in a geographical area to provide digital map data from at least one remote server to one or more map-based applications running on an electronic control unit (ECU) of the vehicle, wherein: the client application comprises a first application and a second application, the first application being in communication with the map-based application and the second application, and the second application being in communication with the at least one remote server; the at least one remote server has access to: (i) a map tile data store storing a plurality of map tiles, each map tile representing the navigable network in a portion of the geographical area as a plurality of arcs connected by nodes; and (ii) a map tile metadata data store storing metadata for each of the map tiles in the map tile data store, wherein each arc and node of a tile have object data and a hash value associated therewith, the hash value being calculated at the server based on at least the object data for the respective arc or node and tile metadata for the tile containing the object data for the respective arc or node; and the second application comprises: (i) a map tile cache storing a plurality of map tiles obtained from the at least one remote server; and (ii) a map tile metadata cache storing the metadata for each of the map tiles in the map tile cache obtained from the at least one remote server, the method comprising: receiving, by the first application, a request from the map-based application for digital map data concerning a feature of the navigable network; requesting, by the first application, the object data and hash value for the at least one arc or node relating to the requested digital map data from the second application; obtaining, by the second application, the requested object data and one or more hash values from the map tile cache, or the map tile data store if the required tile is not stored in the map tile cache, and providing them to the first application; requesting, by the first application, the metadata for the map tile concerning the at least one arc or node relating to the requested digital map data from the second application; obtaining, by the second application, the requested tile metadata from the map tile metadata cache, or the map tile metadata data store if the required tile metadata is not stored in the map tile metadata cache, and providing it to the first application; calculating, by the first application, a new hash value for the at least one arc or node based on the received object data and tile metadata; comparing, by the first application, the new hash value with the one or more hash values; and providing, by the first application, either the requested digital map data or integrity error message to the map-based application based on the comparison.
34. The method of claim 33, wherein the map-based application is an autonomous driving application or wherein the map-based application is a vehicle horizon provider that in turns provides map data to an autonomous driving application, and wherein a when verification of requested object data based on the associated security data fails, the autonomous driving application operates the vehicle in a safe mode and/or brings the vehicle to a safe stop.
35. A method of operating a client application running on one or more processing units of a vehicle traversing a navigable network in a geographical area to provide digital map data from at least one remote server to one or more map-based applications running on an electronic control unit (ECU) of the vehicle, wherein: the client application comprises a first application running on the ECU and a second application, the first application being in communication with the map-based application and the second application, and the second application being in communication with the at least one remote server; the at least one remote server has access to a map tile data store storing a plurality of map tiles, each map tile representing the navigable network in a portion of the geographical area as a plurality of arcs connected by nodes, wherein each arc and node of a tile have object data associated therewith; and the second application comprises a map tile cache storing a plurality of map tiles obtained from the at least one remote server, the method comprising: receiving, by the first application, a request from the map-based application for digital map data concerning a feature of the navigable network; requesting, by the first application, the object data for the at least one arc or node relating to the requested digital map data from the second application; obtaining, by the second application, the requested object data, wherein the request object data is either obtained from the map tile cache if the requested object data is present in the map tile cache or from the map tile data store if the required tile associate with the requested object data is not present in the map tile cache; providing the requested object data to the first application; identifying, by the first application, the portion of the object data corresponding to the feature of the navigable network; and providing, by the first application, the requested digital map data to the map-based application using the identified portion of the object data.
36. The method of claim 35, wherein the second application is developed according to a lower functional safety standard than the first application.
37. The method of claim 36, wherein the first application is developed at least according to an ISO 26262:2018 ASIL-B functional safety standard.
38. The method of claim 37, wherein the first application is implemented redundantly.
39. The method of claim 38, wherein the first application is executed on the same processing platform as the map-based application.
40. The method of claim 39, wherein the processing platform comprises an electronic control unit (ECU) of the vehicle.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0088] Various embodiments will now be described, by way of example only, and with reference to the accompanying drawings in which:
[0089]
[0090]
[0091]
[0092]
[0093]
[0094]
[0095] Like reference signs will be used for like elements in the drawings, as appropriate.
DETAILED DESCRIPTION
[0096] The present invention generally relates to methods of obtaining digital map data for use by geo-spatial aware map-based applications, particularly for autonomous driving (AD) and advanced driver assistance system (ADAS) applications where the reliability and accuracy of the digital map data is safety critical. An embodiment will now be described of an efficient implementation of a map client application executing on-board a vehicle with an enhanced (e.g. ASIL-BASIL-B) level of functional safety.
[0097] Functional safety is important when an automated function has a potential impact on a person. Such automated functions generally are required to meet certain standardized functional safety levels, either by regulators, clients, or users. Meeting such functional safety requirements over the product lifecycle has a significant impact on the design, testing and support of an implementation. The technical impact of an implementation for an automated function according to functional safety requirements may be a substantially larger and more complex implementation. This may be visible, e.g., in an increased code size and required data storage for the functionally safety implementation.
[0098] Functional safety deals with assuring that an implementation will operate as expected. This means that the implementation needs to consider the impact of both random faults and systematic faults. Random faults are introduced by aging effects of materials, by external factors such as vibration, temperature, humidity, radiation, etc. A random fault may cause a change in the code, in the stored data, or in the I/O data of a running software application. A systematic fault may occur due to errors in requirements, design or implementation of a software application. Functional safety engineering practices aim to reduce systematic faults by employing rigorous development practices intended to substantially reduce the likelihood of systematic faults. Reduction of random faults may be achieved, for example, by adding run-time testing, fault detection, fault monitoring, redundant execution, and redundant diverse implementations.
[0099] The increased fault resilience of implementations developed with functional safety engineering methodology comes at a cost of doubling or tripling the cost of hardware, software, development, testing, and maintenance.
[0100]
[0101] The map compiler 12 receives map data from a suitable map production unit 24 located on the cloud server system 16. The map production unit 24 receives map source data from various data sources 26 and then converts this into a suitable format for inclusion into the digital map. The map compiler 12 then sorts the map data into respective layers and tiles for the digital map, as will be described further below.
[0102] In this way, the map delivery system 10 is able to deliver map data from the map production 24 in the cloud directly to an autonomous driving application 11 executing on an electronic control unit (ECU) of a vehicle 9, using the map client 22.
[0103]
[0104] The map delivery system 10 shown in
[0105] For instance, it will be understood that a digital map generally includes a number of map objects representing real-world objects, such as navigable elements of a navigable (road) network, junctions, points of interest etc. The navigable (e.g. road) network is generally a network comprising a plurality of interconnected (e.g.) roads that are navigable by a vehicle. The navigable (e.g. road) network may generally be represented by a digital, or electronic, map (or mathematical graph). In its simplest form, a digital map is effectively a database containing data representative of nodes, most commonly representative of road intersections, and arcs between those nodes representing the roads between those intersections. In more detailed digital maps, arcs may be divided into segments defined by a start node and end node. These nodes may be “real” in that they represent a road intersection at which a minimum of three lines or segments intersect, or they may be “artificial” in that they are provided as anchors for segments not being defined at one or both ends by a real node to provide, among other things, shape information for a particular stretch of road or a means of identifying the position along a road at which some characteristic of that road changes, e.g. a speed limit. In practically all modern digital maps, nodes and arcs (or segments of arcs) are further defined by various attributes which are again represented by data in the database. For example, each node will typically have geographical coordinates to define its real-world position, e.g. latitude and longitude. Nodes will also typically have manoeuvre data associated therewith, which indicate whether it is possible, at an intersection, to move from one road to another. For the purposes of conventional navigation guidance, e.g. as may be provided by a known portable navigation device, the elements of the digital map need only (and typically will only) contain information regarding the road centerlines, although each road segment may also be supplemented with attributes such as the maximum speed permitted, the lane size, number of lanes, whether there is a divider in-between, etc. However, according to embodiments of the present invention, as will be described further below, a digital map may be generated (or used) that provides a more accurate and realistic representation of the roadway profile including lane centerlines and lane connectivity (i.e. lane markings), as well as other key elements e.g. such as three-dimensional geometries of the navigable (e.g. road) network such as landmark objects that may be desirably incorporated into the map. This type of digital map may be referred to as a “HD” map (compared to a conventional “SD” map containing the road centerlines but not the lane centerlines). The additional information contained in the HD map, and at least the lane markings, is generally required for the purposes of autonomous driving (AD). However, the use of these HD maps is not limited to AD applications, and these maps may also find suitable application in any other application where it is desired to provide an improved and more accurate representation of the roadway profile, including, but not limited to, various advanced driver-assistance system (ADAS) applications. Digital map data may also be used in numerous other map-aware or geo-spatial applications, not necessarily related to travel, e.g. applications requiring knowledge of location, e.g. weather applications. Thus, the HD map may also contain data representative of any other features that may suitably and desirably be included in such a map. Although various embodiments will now be described with respect to HD maps, it will be appreciated that the technology described herein is also applicable to SD maps.
[0106] Automated vehicles are critically reliant on external data, e.g. sensor information and HD maps. If the integrity or authenticity of this data is compromised, automated driving functions will use faulty data to manoeuvre the vehicle, which might result in hazardous driving. The safety goals of the vehicle's automated driving tasks are to keep the risk of physical injury or damage to the health of people below an acceptable level. Thus, it is desired to ensure the functional safety of such map data before it is used.
[0107] In the present embodiments, the HD map data comprises a plurality of layers and each layer comprises a plurality of tiles. The tiles are associated with geospatial rectangular areas. The overall map and the individual map tiles each have a ‘version’ and a map comprises a consistent set of layers and tiles. A tile may be part of several versions of the map, i.e. a tile of a specific version may be associated with multiple map versions. The map data may thus be split into layers to group the data according to the type of data, such that clients are able to selectively download the data that is relevant for their purpose. An example of this is illustrated schematically in
[0108] As depicted in
[0109] The road layer 50 in turn consists of a plurality of HD road tiles. That is, the HD road layer is divided into a plurality of road tiles, each road tile including arc and node data for the area of the map represented by the tile. The data structure for a tile 60 in the road layer is shown in
[0110]
[0111] The tile data 702 includes a list of HD road objects (e.g. HD road arcs or HD road nodes) 704. A HD road object comprises a map object id and map object data. The HD road object id field establishes a unique referencing of the HD road object. In some variants, the HD road object id may be associated with location origin for the HD road object relative to the map area covered by the tile. The HD road object data comprises a field to determine the type of the HD road object (e.g. arc data or node data) and the data field to describe the arc or node.
[0112] For each road object 704 a set of associated functional safety data, i.e. security data, 705 is also included in the tile data structure 700. In the example shown in
[0113] In the present embodiment, the security data 705 is a hash value that extends over the map object id and the map object data. The present embodiment uses a secure hash function as this is relatively insensitive to any fault causes or fault patterns of the protected data. However, the functional safety data may be any error detection code (minimum distance code, hash code, checksum code, parity code, cyclic redundancy check code) or any error correction code (Block code, Convolutional code, Hamming code, Viterbi code).
[0114] In addition, the HD map may include other layers, e.g. an HD speed restriction layer, an HD traffic sign layer, and so on. The HD speed restriction layer consists of a set of lane-stretch associated speed restrictions. Speed restrictions in the speed restriction layer are related to lanes and lane groups in the HD road layer. Similarly, the HD traffic sign layer consists of a set of traffic signs with geometries and attributes. Traffic signs may be associated with objects in the HD road layer. However other arrangements of layers would of course be possible and in general the HD map may include additional or fewer layers, as desired.
[0115] According to the present invention, lane groups, junction areas, and nodes (i.e. connections) are preferably stored in a single tile, even if in reality they cross the geospatial boundaries of tiles. In addition to the advantage that there is no cutting and stitching to do (with possibly of losing data quality), tiles remain highly independent and the integrity of these meaningful entities can be provisioned for in the data structures of the tile they belong to, as will be explained further below. In embodiments this is done by duplicating the object data for both (or all) tiles over which the associated object extends and storing the object data separately for both tiles. However, it would also be possible to store the object data in only one of the tiles, with the other tiles then containing a suitable reference (e.g. pointer) to the tile in which the data is stored. This approach is illustrated in
[0116]
[0117]
[0118] Furthermore, in
[0119] The client frontend 92 is depicted in more detail in
[0120] The client interface adapter 301 provides the client frontend service interface to the HD map applications 11. Service requests received from the HD map applications 11 are passed to the client backend via the HD map RPC client stub 302. HD map data returned by the client backend 91 is verified by the HD map data verifier 303 prior to responding to the associated service requests.
[0121] The HD map verifier 303 is an integral part of achieving the required functional safety. All object level safety mechanisms are based on hashes. SHA-256 hashes truncated to 64 bits are used, because 64 bits is an acceptably small size while the collision probability of 2.sup.−64 (=5.42*10.sup.−20) translates in the same low safety mechanism failure rate. The client frontend 92 checks the integrity and verification of the object data. The client frontend 92 may also check integrity of latest map version, or perform any other desired safety checks.
[0122] The client backend 91 is also depicted in
[0123] Service requests received from the client frontend 92 are passed to the client library 202. The client library services these requests for which it might need to retrieve tile data and tile metadata either from the persistent tile cache 203 or from the cloud service, i.e. from the tile data service 18 and the tile metadata service 14. Prior to using tile data and tile metadata received from the cloud service, its integrity and authenticity is verified by the tile verifier 204. For instance, the map tiles may each have a digital signature (applied by the at least one remote server). The signature is verified by the client backend before data is provided to the client frontend. It will be appreciated that checking digital signatures is more complicated than hashes and difficult to implement in ASIL-B. However, this can readily be done at QM level in the client backend 91.
[0124] In case of verification issues an error is reported to the tile data service and, if applicable, to the client frontend 92 via the response of the initiating service request. The HD map RPC client stub 102 in the client frontend also includes a timeout mechanism. This timeout mechanism triggers the return a timeout error in case the client backend 91 does not respond to API calls within a specified timeout (passed as API call parameter).
[0125] The client library 202 stores tile data and tile metadata in the persistent cache 203 such that it is readily available for later use. Prior to using data retrieved from the persistent tile cache 203, its integrity is verified by the tile verifier 204. In case of verification issues, the affected data is purged from the cache and newly retrieved from the cloud service. A conceptual composition of the persistent tile cache 203 is depicted in
[0126] The client library 202 interacts with the cloud service 14, 18 via HTTPS client 205. The HTTPS client 205 for example authenticates the tile data service 18 and the tile metadata service 14e. For example, the client backend 91 may interact with the cloud service over TLS. All messages transmitted between TLS server and TLS client are encrypted and remain private even if intercepted. TLS provides message integrity by calculating a message digest. Certificate chain-based certificate verification enables the TLS client (i.e. the client backend 91) to authenticate the TLS servers (i.e. the map data server and the map metadata server). To retrieve a tile, the HTTPS client does first retrieves the tile metadata from the tile metadata service 14. This metadata includes the URI of the associated tile that, in case the tile is not already present in the persistent tile cache 203, is used to retrieve the tile from the tile data service 18.
[0127] Map tiles and map tile metadata are stored in tile data cache records and tile metadata cache records, respectively. Cache records are digitally signed by the cloud service and verified by the tile verifier. Thereby, all content of the persistent tile cache is digitally signed. Digital signature creation and verification is relying on asymmetric cryptography using private encryption keys in the cloud and associated public decryption keys in the vehicle. After successful verification, both the integrity and the authenticity of tile data and tile metadata is assured.
[0128] The ASIL-B safety mechanism of the client frontend verifies the integrity of the HD map data that the client provides to the HD map applications. These safety mechanisms operate at the level of arcs (i.e. lane groups and junction areas), arc associated attributes, and nodes. The client backend need not be developed at ASIL-B level, since this level is ensured by the client frontend. Thus, the client backend may be developed in compliance with, e.g., ISO 26262:2018 QM.
[0129] The client frontend 92 and backend 91 may both be deployed on the same ECU platform and interact by means of RPC with underlying ECU platform provided IPC. This allows for relying on safe IPC provided by ECU platform OS, i.e. safe communication protocol stacks for inter processor communication are avoided. For instance, both client frontend and client backend may comprise C++ libraries that, linked with other code, are present in associated executables. These executables are deployed on the same ECU platform and interact by means of RPC with underlying ECU platform provided IPC. In that case, sufficient independence of the QM part (the client backend) and the ASIL-B(B) part (the client frontend) can be realized by deploying them on separate processes provided by the underlying ASIL-B compliant ECU platform operating system. The RPC based interaction between frontend and backend relies on safe IPC mechanisms, also provided by the ASIL-B compliant ECU platform. However, this need not be the case and could be on different ECU platforms.
[0130] Thus, the present embodiment relates to the implementation of an extended map client for autonomous vehicle applications with enhanced fault resilience. In particular, instead of applying resilience techniques to the entire map client implementation, an extended map client is provided comprising a map client backend 91 and a map client frontend 92 in which the map client frontend 92 (only) is designed with functional safety enhancing techniques. A detailed description of the overall operation of the system according to the present embodiment will now be provided. However, other arrangements would of course be possible.
[0131] As described above, the map client frontend 92 has interfaces with a map application (or multiple map applications) and to the map client backend 91. The HD map application interfaces with the map client frontend 91 using a fault resilient map client service interface which comprises the map client service interface extended with a service interface for fault detection, fault reporting and fault diagnostics.
[0132] The map client frontend 92 thus provides fault monitoring and it reports any detected faults to the HD map application using the fault resilient map client service interface. The purpose of the map client front end is to detect faults in the map client by verifying the integrity of the data it provides. When a fault is detected in the data from the map client, the map client frontend drops the faulty data and reports a fault the HD map application.
[0133] In the present embodiment, the map client frontend 92 uses functional safety data associated with HD road object data generated by the HD map functional safety module 1210 in the map tile compiler 12 of the map server infrastructure. The map tile compiler 12 compiles HD road arcs and HD road nodes (map objects) and then generates the ‘functional safety data’ over these compiled data structures (map objects).
[0134] The map client backend 91 receives, verifies and caches tile data with the HD road object data. However, it does not modify, produce, extend or operate on the HD road object data (arc and node data) or its associated functional safety data. So, the HD road object data and the associated functional safety data as output by the map client should be identical to the data generated in the map server infrastructure.
[0135] The map client frontend 92 receives the functional safety data with the HD road object data. If the functional safety data does not correspond with the HD road object data, this indicates that there has been a fault in the map client providing the data. After detecting a fault in the data received from the map client, the map client frontend blocks the data and reports the fault to the HD map application that has requested the data. The HD map application may use the fault report to trigger an appropriate response. Thus, the map client frontend protects the HD map application from faults in the map client module and from faults in the communication paths from the map server to the map client frontend.
[0136] The fault detection functionality of the map client frontend is small in comparison with the set of functions of the map client backend. This means that it is suitable for implementation using functional safety engineering techniques. The functional safety implementation of the map client frontend detects and reports all faults of the map client and due to its functional safety engineering implementation also is fault resilient against faults in the map client frontend implementation itself. The combination of the map client and the client frontend is called the extended map client. The extended map client according to the invention consists of a (standard) map client implementation and a functional safety map client frontend implementation. This implementation of the extended map client provides compliance with the functional safety requirements. It achieves this using substantially less resources compared to a functional safety implementation of the map client only.
[0137] The extended map client provides a functional safety map client service interface for an HD map application with only a modest increase in resources (hardware, software, storage, energy, development, test, maintenance).
[0138] Another benefit of dividing the map client 22 in the manner described above is that the client frontend 92 helps shield the map applications from implementation enhancements in the client backend 91. Variant map client implementations may improve fault resilience using normal development practices, without impacting the functional safety compliance of the extended map client. Due to the structure of the extended map client, the implementation of the map client frontend 92 is independent from the functionality of the map client backend 91. As the functional safety compliance is determined by the map client frontend implementation, any changes to the map client do not impact the functional safety compliance of extended map client.
[0139] The map client frontend 92 also may be configured to deal with faults in the map client backend 91 that cause it to not respond (timely) to a request. The map client backend 91 may, for instance, associate a threshold response time with each request from a HD map application and return a time-out fault response to the HD map application when the map client does not respond to the request within the threshold response time associated with the request.
[0140] The HTTPS client circuit 205 of the map client backend 91 obtains the data structure tile. The client library circuit 202 of the map client backend 91 first sends the tile to tile verification circuit 204 of the map client backend 91. The tile verification circuit 204 uses the tile signature 703 to verify the authenticity and integrity of a received tile data structure 700. After the tile verification, the client library circuit 202 sends the tile to the persistent tile cache 203 for storing the tile data 702.
[0141] The map interface adapter circuit of the map client backend 91 receives requests for HD road object data from an HD map application. It then forwards these requests to the client library circuit. A request can be for an HD road object based on a specific HD road object id, or on a specific location. The result may be that the requested HD road object does not exist, or it returns one or more HD road objects from the persistent tile cache 204. The result of the request is returned to the HD map application via the map client adapter 201. Note that the entire HD road object is returned (i.e. the tuple: HD road object ID, HD road data, functional safety data). In the present embodiment, the map client frontend 92 forwards requests from HD map application and checks the returned HD map objects to detect faults in the map client backend 91. The map client frontend 92 uses the security data 705 for checking the HD map object data 704.
[0142] As the map client backend 91 is not involved in any way with the creation or processing of the security data 705, functional faults of the map client backend 91 can be reliably detected in the map client frontend 92.
[0143] The system described above thus allows for delivery of map data to the vehicle. In particular, the present embodiments assure safe delivery of HD map data to the vehicle by verifying the integrity and authenticity of at least desired HD road level map data prior to subsequent in-vehicle distribution. (HD map data not associated with the navigable (e.g. road) network e.g. traffic signs, may or may not be verified, depending on the level of functional safety desired.)
[0144] For instance, on accepting an HD map data request, the client shall provide HD map data as specified in the request (i.e. the right data) or return an integrity error. On accepting an HD map data request, the client shall either provide the requested HD map data within a specified timeout or immediately after the timeout return a timeout error. In particular, on accepting a HD map data request, the client backend shall then provide to the client frontend HD map data that is equal to the HD map data retrieved from the cloud service (e.g. after checking the authentication and integrity of the data at tile-level) as well as the associated hash values for the map data (i.e. the arcs and nodes). The client frontend then verifies the integrity of the HD map data provided by the client backed using the associated hash data, and once the HD map data has been verified, the client frontend can then provide the requested HD map data to the map-based applications. If the HD map data cannot be verified the client frontend may issue another request for the data, and if verified HD map data is not provided, e.g., within a specified timeout, issue an integrity error.
[0145] Map metadata is transferred separately from the map data and protected by hashes too. That is, every lane group and junction area has associated metadata that has its own hash. Metadata includes version and format information.
[0146] Another variant map data distribution system is shown in
[0147] Note that this system would transmit more data over the in-vehicle network than for example ADASIS V3 would do. ADASIS V3 was however inspired by ADASIS V2 that needed to be deployed on low bandwidth CAN networks. Both ADASIS V2 and V3 allow fine grain selection of data to be transferred. Ethernet has however much higher bandwidth than CAN such that optimizing for minimum amount of data to transfer is less critical. The client presented above provides an API to do the fine grain selection after transfer and verification of the data.
[0148]
[0149] The present embodiments thus provide a HD map delivery system that is safe and includes verifying the integrity/authenticity of HD map data at the level of meaningful entities (such as lane groups and junction areas) before it is delivered to the application. Further, the desired functional safety is achieved in an efficient manner by dividing the map client into a front/backend which can be implemented at different levels of functional safety.
[0150] The foregoing detailed description has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the technology described herein to the precise form disclosed. Many modifications and variations are possible in the light of the above teaching. The described embodiments were chosen in order to best explain the principles of the technology described herein and its practical applications, to thereby enable others skilled in the art to best utilise the technology described herein, in various embodiments and with various modifications as are suited to the particular use contemplated. Thus, the features disclosed in this specification, the figures and/or the claims may be material for the realization of various embodiments, taken in isolation or in various combinations thereof. Furthermore, although the present invention has been described with reference to various embodiments, it will be understood by those skilled in the art that various changes in form and detail may be made without departing from the scope of the invention as set forth in the accompanying claims.