Method for modifying map data and machine readable instruction code
By introducing stream processing technology into the map data system, allowing asynchronous update and independent modification of map layer data, the problem of modification timing alignment in the existing technology is solved, and efficient update and quality improvement of map data is achieved.
Patent Information
- Application Number
- CN202411776124.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-12-20
- Filing Date
- 2024-12-05
- Publication Date
- 2025-06-20
AI Technical Summary
The prior art lacks flexibility when modifying map data, requiring the modification of map layers to be synchronized with other map layers, limiting the freshness and update efficiency of data.
By providing a method and system that allows independent modification and update of map layer data, and the modification information is provided as a stream, the processing system can output data indicating modification in the stream to achieve asynchronous update.
It realizes enhanced freshness and flexibility of map data, allows different map layers to be updated independently, no longer requires modification of timing alignment, reduces reference integrity issues, and improves the quality of map data.
Smart Images

Figure CN120179664A_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present invention relate to techniques associated with electronic map data, such as map data for navigation, driver assistance, advanced driver assistance, and / or autonomous driving. In particular, embodiments of the present invention relate to techniques useful in providing an output based on at least a plurality of map layers. Background Art
[0002] Map data is a valuable resource for enhancing vehicle navigation functions, driver assistance systems, and enabling autonomous driving. It provides information about roads, routes, and the surrounding environment, enabling these and other technologies to operate efficiently and safely. One advantage of electronic map data is that it can be continuously (i.e., constantly) updated to reflect changes such as road changes, construction sites, and / or traffic patterns. This ensures that the navigation system can provide relevant guidance to the driver, reducing the likelihood of getting lost or encountering unexpected obstacles. Vehicle navigation functions, driver assistance systems, and autonomous driving systems also use electronic map data to enhance safety and improve driving comfort. Features such as lane departure warning, blind spot detection, and adaptive cruise control can utilize the information provided by the map to make informed decisions and provide timely alerts or interventions. For example, if the map data indicates a sharp turn ahead, the system can adjust the speed of the vehicle or warn the driver to ensure safe maneuvering. Additionally, electronic map data can help identify speed limits, traffic signs, and other road conditions, allowing the driver assistance system to take appropriate actions accordingly. Thus, electronic map data helps the vehicle perform appropriate actions, enhancing safety and overall efficiency.
[0003] There is a need in the art for techniques that provide enhanced flexibility in modifying map data. Summary of the Invention
[0004] The objective of embodiments of the present invention is to provide methods, systems, and / or machine-readable instruction codes that provide enhanced flexibility in modifying map data. An optional objective is to provide techniques for modifying map data that do not require the modification of one map layer to be synchronized with other map layers and / or improve the freshness of the map data provided for use by a device when performing map-based tasks.
[0005] According to embodiments of the present invention, methods and machine-readable instruction codes as described in the independent technical solutions are provided. The independent technical solutions define preferred and advantageous embodiments.
[0006] According to one aspect of the present invention, there is provided a method of modifying map data. The method includes implementing a modification of the map layer data by a map layer providing system that provides map layer data. The map layer data includes map object definitions. The map object definitions include references to parent layer map objects defined by one or more parent layers of the map layer and / or references from map objects defined by the map object definitions to sublayer map objects in one or more sublayers of the map layer. The modification includes at least one of a change to an existing map object definition of the map object definition, an addition of a new map object definition to the map object definition, and a deletion of an existing map object definition from the map object definition. The method includes the map layer providing system providing data indicating the modification in the map layer data for performing at least one action based at least on the map layer data modified by the modification, wherein the data indicating the modification is provided in a stream.
[0007] A stream refers to a data stream in which a processing system is operable to process messages of the stream one by one. The relative timing between messages in the stream may be variable. The temporal characteristics of the stream mean that a processing system receiving the stream is operable to process messages of various streams even if the messages may arrive at irregular intervals and / or with different delays between them.
[0008] Various effects and advantages are associated with the method. Information regarding modifications to the map layer data is provided as a stream. Thus, it is not required that modifications made to the map layer data be performed according to a previously agreed-upon timing and / or otherwise be time-aligned with modifications to other map layers. Outputting data indicating the modification in the stream in response to making the modification provides enhanced data freshness.
[0009] The stream may include a sequence of messages. Each of the messages may be associated with one of the modifications. The map layer providing system may generate and output each of the messages in the sequence in response to implementing the modification with which the message is associated.
[0010] Thereby, information regarding modifications in the map layer can be provided without having to be time-aligned with providing modifications to other map layers and / or a previously agreed-upon transmission schedule.
[0011] Each of the messages may include a unique identifier of a map object modified by the modification with which the message is associated.
[0012] Thereby, stream processing that processes the stream can identify which map object the corresponding modification relates to.
[0013] Alternatively or additionally, each of the messages may include version data of the map layer.
[0014] Thereby, the versioning of map layer data is promoted. The stream processing of the processing stream and other streams indicating modifications to other map layers can more easily ensure the consistency regarding the versions of map layer data.
[0015] The map layer providing system can output messages in the output sequence independent of the timing of modifications to the parent map object definition of the parent map object and / or modifications to the child map object definition of the child map object.
[0016] Thereby, it is not required that the modifications made to the map layer data be executed according to a previously agreed-upon timing and / or be aligned in time with modifications to other map layers in other ways. Outputting data indicating the modification in the stream in response to the modification provides enhanced data freshness.
[0017] The map layer providing system can implement at least one first modification among the modifications in response to at least one inconsistency between the map layer data and the parent map object definition of the parent map object and / or the child map object definition of the child map object, wherein at least one first modification corrects at least one inconsistency.
[0018] Thereby, the referential integrity problem can be solved. The quality of map data is improved by reducing the risk that map data with integrity problems is provided to map data consumers.
[0019] The method may include the map layer providing system receiving one or more parent layer streams indicating modifications to the parent map object definition defining the parent map object. At least one inconsistency may include a referential inconsistency caused by at least one of the modifications to the parent map object definition.
[0020] Thereby, the referential integrity problem can be solved. The quality of map data is improved by reducing the risk that map data with integrity problems is provided to map data consumers.
[0021] The stream and one or more parent layer streams can be asynchronous.
[0022] Thereby, enhanced flexibility is achieved in updating different map layers. The map layer and one or more parent layers can be updated at different timings, resulting in different relative timings of the messages in the stream and the messages in at least one of the parent layer streams.
[0023] The map layer providing system can be operated to implement at least one second modification among the modifications at a time independent of the modification to the parent map object definition.
[0024] Thereby, enhanced flexibility is achieved in updating different map layers. The map layer and one or more parent layers can be updated at different timings, resulting in different relative timings of the messages in the stream and the messages in at least one of the parent layer streams.
[0025] At least one inconsistency may include a referential inconsistency caused by at least one of the modifications.
[0026] Thereby, the referential integrity problem can be solved. The quality of the map data is improved by reducing the risk that map data with integrity problems is provided to map data consumers.
[0027] The method may include receiving a notification indicating at least one inconsistency from a processing system. The processing system may process the stream to perform integrity verification such as by modifying the integrity of the modified map layer data.
[0028] Thereby, feedback regarding potential integrity problems can be received by the map layer providing system. Receiving feedback from a processing system that processes several streams allows for the detection and correction of more types of integrity problems, such as by facilitating the detection of referential integrity problems.
[0029] The method may include the processing system processing a stream and one or several parent layer streams to perform integrity verification.
[0030] Thereby, when information about modifications in a map layer and one or several parent layers becomes available in the stream and one or several parent layer streams, the processing system may perform integrity verification by analyzing the modifications based on the stream and one or several parent layer streams. Thus, integrity problems can be solved in a timely manner.
[0031] The method may include the map layer providing system providing an acknowledgement to another map layer providing system in at least one of one or several parent layers to confirm the correction of an inconsistency by at least one first modification.
[0032] Thereby, the correction of an integrity problem can be signaled to another map layer providing system. This reduces the risk of integrity problems while allowing different map layers to be handled by different map layer providing systems.
[0033] The method may include the stream processing system performing stream processing of a stream to generate an output stream of map data for use by map data consumers (such as systems for route planning and / or route search, navigation, driver assistance, advanced driver assistance, and / or autonomous driving).
[0034] Thus, stream processing techniques can be employed to generate an output stream of map data based at least on the stream. This provides enhanced freshness of the map data.
[0035] Stream processing may include integrity verification operable to confirm that modifications performed by a map layer system do not cause integrity problems.
[0036] Thereby, the risk that the map data provided to map data consumers is affected by modifications that create integrity problems is reduced. The quality of the map data is improved.
[0037] Stream processing may include binding of a number of streams, where the number of streams includes a stream providing system output by a map layer and at least one other stream indicating modifications to at least one other map layer (e.g., at least one of a parent layer and / or a child layer). The binding may include combining information from the number of streams, processing them when messages from the number of streams arrive, and / or determining whether messages from different streams contain information related to the same map object that can be combined into an output stream message of the bound output stream.
[0038] Thereby, information from different streams can be combined in stream processing, where incoming messages are processed when they are received.
[0039] The binding may include generating an output including the output stream.
[0040] Thereby, the output stream is generated from the number of streams.
[0041] The stream providing system output by the map layer may include a first message sequence. The at least one other stream indicating modifications to at least one other map layer may include a second message sequence. The message timing of the first message sequence may be independent of the message timing of the second message sequence.
[0042] Thereby, information about modifications in the map layer can be provided in a timing that depends on the time when the modifications in the corresponding map layer are performed, without requiring alignment with the time of modifications in the parent layer and / or the child layer. This is beneficial for the freshness of the output (e.g., map data provided to a map data consumer).
[0043] Stream processing may include processing each message in the first message sequence when it is received by the processing system. Stream processing may include processing each message in the second message sequence when it is received by the processing system.
[0044] Thereby, the processing system can be operated to generate an output (e.g., map data) by processing messages in the first message sequence and the second message sequence when they arrive. This is beneficial for the freshness of the output (e.g., map data provided to a map data consumer). The processing system does not need to wait for all messages in the first message sequence and the second message sequence to be received before it starts processing (e.g., integrity verification).
[0045] The first message stream may include a first message providing information about a modification of the map layer triggered by a modification of the parent layer of the map layer's parent layer, where the second message of the second message sequence provides information about the parent layer modification, and where the first message is generated and output at a different time from the second message (e.g., with a delay exceeding the processing time for making a child layer modification in response to the parent layer modification).
[0046] Thereby, greater flexibility is achieved in terms of the timing at which a number of map layers can be modified.
[0047] Stream processing may include generating an output message in response to confirming that a first message and a second message have passed integrity verification.
[0048] Thereby, messages providing information about modifications that are consistent with each other can be used to generate the output message without having to wait for any unprocessed messages in the first message sequence and the second message sequence. This is beneficial for the freshness of the output (e.g., the freshness of map data) and / or allows source-independent operation of several streams. There is no need to maintain synchronization between the sources of several streams. This increases scalability.
[0049] Stream processing may include triggering a correction action in response to detecting an inconsistency in integrity verification.
[0050] Thereby, the output is protected from being affected by modified map layer data, such that there is a risk of integrity issues. Thereby, the quality of the output (e.g., map data) is improved.
[0051] Stream processing may include storing a data item providing information about the inconsistency in response to detecting the inconsistency.
[0052] Thereby, the data item remains available for stream processing to resolve the inconsistency, e.g., by waiting for at least one subsequent message in at least one of several streams in which the inconsistency has been resolved.
[0053] The data item may be stored at least temporarily after detection of the inconsistency.
[0054] Thereby, the data item remains available for stream processing to resolve the inconsistency, e.g., by waiting for at least one subsequent message in at least one of several streams in which the inconsistency has been resolved.
[0055] The data item may be stored temporarily after detection of the inconsistency, and the method may include deleting the data item by the processing system in response to a deletion criterion (e.g., a time-based deletion criterion).
[0056] Thereby, the data item remains available for stream processing for inconsistency resolution for a period after detection of the inconsistency, while freeing up storage space for storing other data items in a continuous manner (e.g., continuously) when new inconsistencies are detected.
[0057] The data item may be or may indicate payload data in a message that is determined to cause an inconsistency.
[0058] Thereby, this information remains available for stream processing for inconsistency resolution for a period after detection of the inconsistency.
[0059] Stream processing may include temporarily preventing generation of an output message based on a message that is determined to cause an inconsistency in response to the inconsistency.
[0060] Thereby, the risk of providing potentially incorrect output (such as map data) is reduced.
[0061] Stream processing may include monitoring a number of streams before triggering a correction action in response to the detection of an inconsistency.
[0062] Thereby, a number of streams may be monitored to determine whether the inconsistency is corrected by another modification in another layer. Thereby, the asynchronous nature of the messages in a number of streams and / or the asynchronous nature of the modifications in various map layers are taken into account.
[0063] Monitoring a number of streams may include determining, based on data items, that the inconsistency has not been resolved by the modification indicated by the number of streams within the monitoring time interval after the inconsistency is detected.
[0064] Thereby, a number of streams are monitored to determine whether the inconsistency is corrected by another modification in another layer. Thereby, the quality of the output (such as map data) is enhanced.
[0065] Stream processing may include generating an output message based at least on data items in response to determining that the inconsistency is resolved by the modification indicated by the number of streams within the monitoring time interval after the inconsistency is detected.
[0066] Thereby, confirming that the inconsistency has been resolved triggers the generation of an output message (such as an output message containing map data based on at least two different layers among a number of layers). This is beneficial for both the accuracy and freshness of the output (such as map data).
[0067] The correction action may include correcting incorrect references to map objects in different map layers in the map object definition of the map layer.
[0068] Thereby, stream processing can be operated to trigger the correction of reference integrity problems. This enhances the accuracy of the generated output (such as map data).
[0069] Alternatively or additionally, the correction action may include receiving feedback based at least on the inconsistency by the map layer providing system.
[0070] Thereby, stream processing can be operated to trigger the provision of feedback to allow the map layer providing system to resolve at least one inconsistency. This enhances the accuracy of the generated output (such as map data).
[0071] Feedback may be selectively received when the map layer system is the source of at least one message that causes the inconsistency.
[0072] Thereby, stream processing can be operated to trigger the provision of feedback to allow the map layer providing system to resolve at least one inconsistency. This enhances the accuracy of the generated output (such as map data).
[0073] Alternatively or additionally, the correction action may include changing the type of at least one of the modifications from a first modification type to a second modification type, where at least one of the modifications is the root cause of the inconsistency, and where changing the type resolves the inconsistency.
[0074] Thereby, the correction of incorrect modifications can be implemented. This enhances the accuracy of the output (such as map data) generated.
[0075] The first modification type and the second modification type may each be selected from the group including: addition of an object definition, deletion of an object definition, change of an object definition.
[0076] Thereby, incorrect operations performed on a map layer can be corrected. This enhances the accuracy of the output (such as map data) generated.
[0077] The first modification type and the second modification type may each be selected from the group consisting of: addition of an object definition, deletion of an object definition, change of an object definition.
[0078] Thereby, incorrect operations performed on a map layer can be corrected. This enhances the accuracy of the output (such as map data) generated.
[0079] Alternatively or additionally, the correction action may include discarding duplicates of map object creation, duplicates of map object deletion, and / or modification of non-existing map objects.
[0080] Thereby, certain types of incorrect operations performed on a map layer can be disposed of in a manner that reduces their risk of adversely affecting the output (such as map data).
[0081] Generating an output by a processing system may include aggregating at least two modifications of map object definitions related to the same map object into an aggregated modification. The output may be at least based on the aggregated modification, where the aggregation is performed at least based on the result of integrity verification.
[0082] Thereby, an output (such as map data for map data consumers) that combines information from several map layers can be generated. Streaming processing including integrity verification provides benefits in both the freshness and quality (such as accuracy) of the output.
[0083] Integrity verification may include reference integrity verification that checks whether modifications to sub-layer map object definitions are consistent in reference with the map object definitions.
[0084] Thereby, streaming processing is used to mitigate the risk that reference integrity issues adversely affect the quality of the output (such as map data).
[0085] Alternatively or additionally, integrity verification may include logical integrity verification.
[0086] Thereby, the stream processing can operate to mitigate the risk that logical integrity issues adversely affect the quality of the output (such as map data). The logical integrity issues can include integrity issues that exist within a layer and do not depend on the integrity of references between layers.
[0087] Alternatively or additionally, the integrity verification can include syntactic integrity verification. The syntactic integrity verification can include verifying that the sub-layer map object definitions and the parent-layer map object definitions modified as indicated by a number of streams respectively conform to a set of syntactic rules, logical rules, and / or other rules that do not necessarily depend on the integrity of references between different map layers.
[0088] Thereby, the stream processing can operate to mitigate the risk that syntactic integrity issues adversely affect the quality of the output (such as map data).
[0089] The map layer and one or more parent layers and / or one or more sub-layers can define an acyclic graph.
[0090] Thereby, flexibility is achieved in terms of the references between the supported map layers.
[0091] The acyclic graph can include a base map layer that defines nodes and links of a navigable network.
[0092] Thereby, the basic geometry of the navigable link network is defined and can be referenced by other map layers.
[0093] The base map layer can define the coordinates of the nodes (such as but not limited to latitude and longitude).
[0094] Thereby, the positions of the nodes of the navigable link network are defined and can be referenced by other map layers.
[0095] The base map layer can define a route (such as a navigable link) that contains one or more of the nodes.
[0096] Thereby, the navigable links are defined and can be referenced by other map layers.
[0097] The acyclic graph can define a hierarchical map layer structure that includes the base map layer at the root.
[0098] Thereby, the dependencies between map layers can be organized in a hierarchical manner, which can facilitate the prioritization of modifications.
[0099] The acyclic graph can include one or more map layers that reference the base map layer and include one, several, or all of the following: a turn restriction layer; a speed limit layer; a speed profile layer; a one-way layer; a blocked passage layer; a building layer; an address point layer; a point of interest layer; a parking information layer; a point of interest layer.
[0100] Thereby, information useful for performing various tasks associated with route search, navigation, driver assistance, advanced driver assistance, and / or autonomous driving can be utilized to generate an output.
[0101] The acyclic graph may include one or several map layers that reference a base map layer and are selected from the group consisting of: a turn restriction layer; a speed limit layer; a speed profile layer; a one-way layer; a blocked passage layer; a building layer; an address point layer; a point of interest layer; a parking information layer; a point of interest layer.
[0102] Thereby, information useful for performing various tasks associated with route search, navigation, driver assistance, advanced driver assistance, and / or autonomous driving can be utilized to generate an output.
[0103] The output may include an output stream. The output stream may include a sequence of output messages.
[0104] Thereby, stream processing can be operated to provide an output stream based at least on the streams provided by a map layer provider system. This is beneficial for the freshness of the output (such as map data) because once messages from several streams have passed integrity verification checks, aggregation (if applicable), and / or are used to correct referential integrity or other issues, the output becomes available.
[0105] The processing system may receive several streams. The several streams may include the streams provided by a map layer provider system. The several streams may include one or several other streams provided by one or several other map layer provider systems (such as several different map layer provider systems).
[0106] Thereby, different map layers can be handled by different map layer provider systems, further enhancing the flexibility in modifying several map layers.
[0107] Each of the several map layer provider systems may be associated with a different one of the several map layers.
[0108] Thereby, different map layers can be provided by different map layer provider systems, further enhancing the flexibility in modifying several map layers.
[0109] The several map layer provider systems can be operated to independently implement modifications to the map object definitions in different map layers.
[0110] Thereby, different map layers can be provided by different map layer provider systems, further enhancing the flexibility in modifying several map layers.
[0111] Generating the output may include generating a first output for a first map product and a second output for a second map product.
[0112] Thereby, different map products can be generated based on several streams.
[0113] Integrity verification can be performed separately for the first map product and the second map product.
[0114] Thereby, stream processing can consider that different streams may be required to generate the first map product and the second map product. Alternatively or additionally, stream processing can consider that there may be different requirements regarding, for example, the freshness and / or quality (such as accuracy) of the first and second map products, such that different integrity verification examples are useful.
[0115] The method can include triggering or performing at least one action based at least on the output.
[0116] Thereby, the output (such as an output stream providing map data) is used to perform one or several actions.
[0117] At least one action can include at least one control action performed by at least one map data consumer in response to the output.
[0118] Thereby, the output (such as an output stream providing map data) is used to perform one or control several control actions.
[0119] The action can include one, several, or all of route search, route guidance, driver assistance functions, advanced driver assistance functions, autonomous driving functions, and traffic flow control.
[0120] Thereby, the output (such as an output stream providing map data) is used to perform vehicle or other navigation-related functions.
[0121] According to another aspect of the present invention, a machine-readable instruction code is disclosed, which includes instructions that, when executed by at least one processing circuit, cause the at least one processing circuit to execute the method of any aspect or embodiment.
[0122] According to another aspect of the present invention, a data carrier is disclosed, which includes a machine-readable instruction code containing instructions that, when executed by at least one processing circuit, cause the at least one processing circuit to execute the method of any aspect or embodiment.
[0123] The data carrier can include a non-transitory storage medium on which the machine-readable instruction code is stored.
[0124] According to another aspect, there is provided a map layer providing system for modifying map data. The map layer providing system is operable to provide map layer data. The map layer providing system is operable to effect modification of the map layer data. The map layer data includes map object definitions. The map object definitions include references to parent layer map objects defined by one or more parent layers of the map layer and / or references from map objects defined by the map object definitions to sublayer map objects in one or more sublayers of the map layer. The modification includes at least one of a change to an existing map object definition of the map object definitions, an addition of a new map object definition to the map object definitions, and a deletion of an existing map object definition from the map object definitions. The map layer providing system includes at least one interface operable to provide data indicative of the modification in the map layer data for performing at least one action based at least on the map layer data modified as a result of the modification, wherein the data indicative of the modification is provided in a stream.
[0125] Various effects and advantages are associated with the map layer providing system. The map layer providing system is operable such that information regarding modifications to map layer data is provided as a stream. Thus, it is not required that the map layer providing system effect modifications to map layer data according to a previously agreed-upon timing and / or in a manner that otherwise aligns in time with modifications to other map layers. Outputting data indicative of the modification in the stream in response to making the modification provides enhanced data freshness.
[0126] The map layer providing system is operable to perform the methods of any aspect or embodiment disclosed herein.
[0127] A processing system is operable to perform the methods of any aspect or embodiment disclosed herein.
[0128] According to another aspect, there is provided a system including a map layer providing system, a processing system, and at least one map data consumer. The processing system is operable to perform stream processing of a stream to produce an output for use by at least one map data consumer.
[0129] Thereby, an output (such as map data) can be made available for use by map data consumers using stream processing techniques. The map data consumer can be or can include a device or vehicle system operable to perform at least one of route search, route guidance, driver assistance functions, advanced driver assistance functions, autonomous driving functions, traffic flow control based at least on the output.
[0130] At least one map data consumer can include a control circuit operable to control vehicle actuators.
[0131] Thereby, an output (such as map data) can be made available for vehicle control operations.
[0132] Alternatively or additionally, the control circuit is operable to control the human-machine interface based at least on the output.
[0133] Thereby, the output (e.g., an output stream providing map data) is used to perform vehicle or other navigation-related functions.
[0134] The system may include one or more other map layer providing systems each operable to provide a stream indicating a modification to one or several other map layers. Each of the other map layer providing systems may be associated with at least one (e.g., exactly one) map layer.
[0135] Thereby, further enhanced flexibility for modifying map data is achieved.
[0136] The map layer providing system and / or one or more other map layer providing systems may include at least one map layer providing system operable to effect a modification of map layer data based on observations (e.g., of links of a navigable network, traffic signs, and / or traffic conditions) captured using sensing equipment. The sensing equipment may be mounted in a fleet of detectors, such as vehicle detectors.
[0137] Thereby, a suitable modification of the map layer that improves the quality of the output (e.g., the accuracy of the output compared to real infrastructure conditions) may be automatically performed, for example.
[0138] The map layer providing system and one or more other map layer providing systems are in an asynchronous manner, i.e., without time alignment.
[0139] Thereby, modifications in the map layer can be implemented without requiring the map layer providing system and one or more other map layer providing systems to be time-aligned. This is beneficial for the freshness of the output provided.
[0140] A plurality of map layer providing systems are operable such that a stream among a plurality of streams associated with a sub-layer may include a first message sequence. A plurality of map layer providing systems are operable such that at least another one among a plurality of streams associated with one or several parent layers may include a second message sequence. A plurality of map layer providing systems are operable such that the message timing of the first message sequence is independent of the message timing of the second message sequence.
[0141] According to another embodiment, there is disclosed the use of a method, a map layer providing system, and / or machine-readable instruction code for generating map data for use by a map data consumer, wherein the map data is based at least on a stream.
[0142] According to another embodiment, there is disclosed a method for performing a control operation on a vehicle based on map data, wherein the map data is based on a stream generated using a method, a map layer providing system, or machine-readable instruction code for modifying map data.
[0143] The control operations may include actuator control operations.
[0144] Although the techniques disclosed herein can be used for navigation, route search, driver assistance, and autonomous driving functions, they are not limited thereto. BRIEF DESCRIPTION OF THE DRAWINGS
[0145] Embodiments of the present invention will be described with reference to the drawings, in which like or corresponding reference numerals denote elements having like or corresponding configurations and / or functions.
[0146] Figure 1 is a schematic representation of a processing system operable to perform a method of modifying map data.
[0147] Figure 2 is a schematic representation of a system including a processing system.
[0148] Figure 3 is a schematic functional representation of at least one processing circuit of a processing system.
[0149] Figure 4 is a schematic functional representation of at least one processing circuit of a processing system.
[0150] Figure 5 is a schematic representation of a map layer.
[0151] Figure 6 is a flowchart of a method.
[0152] Figure 7 is a flowchart of a method.
[0153] Figure 8 is a schematic representation of a system including a processing system, illustrating several streams received by the processing system.
[0154] Figure 9 is a schematic representation of a system including a processing system, illustrating several streams received by the processing system.
[0155] Figure 10 is a schematic representation of a processing system operable to perform a method of modifying map data.
[0156] Figure 11 is a schematic representation of a system including a processing system.
[0157] Figure 12 is a schematic representation of a system including a processing system.
[0158] Figure 13 is a schematic representation of a system including a processing system.
[0159] Figure 14 is a schematic representation of a system including a processing system.
[0160] Figure 15 is a schematic representation of a system including a processing system, which illustrates a number of streams received by the processing system and output streams provided by the processing system.
[0161] Figure 16 is a flowchart of a method.
[0162] Figure 17 is a flowchart of a method.
[0163] Figure 18 is a schematic representation of a map layer providing system.
[0164] Figure 19 is a schematic representation of a map layer providing system.
[0165] Figure 20 is a flowchart of a method.
[0166] Figure 21 is a flowchart of a method.
[0167] Figure 22 is a schematic representation of a system including a processing system and a number of map layer providing systems.
[0168] Figure 23 is a schematic representation of an acyclic graph of a number of map layers providing a number of streams to be processed by a processing system.
[0169] Figure 24 is a schematic representation illustrating the operation of a processing system.
[0170] Figure 25 Shows exemplary messages of the streams.
[0171] Figure 26 is a schematic representation illustrating the operation of a processing system.
[0172] Figure 27 is a schematic representation illustrating the operation of a processing system.
[0173] Figure 28 is a schematic representation illustrating the operation of a processing system.
[0174] Figure 29 is a schematic representation illustrating the operation of a processing system.
[0175] Figure 30 is a schematic representation of a processing system operable to execute a method of modifying map data.
[0176] Figure 31 is a schematic representation of a system including a processing system.
[0177] Figure 32 is a schematic representation of a system including a processing system.
[0178] Figure 33 is a schematic representation of a system including a processing system.
[0179] Figure 34 is a schematic representation of a system including a processing system.
[0180] Figure 35 is a schematic representation of a system including a processing system.
[0181] Figure 36 is a flowchart of a method.
[0182] Figure 37 is a flowchart of a method. DETAILED DESCRIPTION
[0183] Embodiments of the present invention will be described in detail. Although some embodiments will be described in association with specific exemplary map layers, the embodiments are not limited thereto.
[0184] Unless otherwise explicitly stated, the features of the embodiments may be combined with each other.
[0185] The techniques disclosed in detail herein can be used to modify map data. The map data can be based on several map layers. The techniques disclosed herein are operable to provide map data based on the map layers. The techniques disclosed herein are operable to provide different types of map data, such as map data for different groups of vehicles and / or for different purposes (e.g., vehicle navigation and non-vehicle navigation).
[0186] The availability of different map layers in electronic map data is useful for various applications. Different map layers can be combined to produce an output such that the map data can be customized based on the requirements of a particular application. Examples of such map layers include, but are not limited to, road network elements, restrictions (e.g., speed limits, turn restrictions, etc.), points of interest, street names, points of interest names. The availability of multiple map layers is beneficial to providers of map data as it provides opportunities for customization.
[0187] Different map layers may be maintained by different map layer providers and / or under the control of different map layer providers. This has various benefits, such as being able to leverage the data quality of a provider and / or the freshness of a map layer (e.g., restrictions) and use the data quality of another provider and / or the freshness of another map layer (e.g., focus or name). When different map layers are handled by different map layer providers and / or under the control of different map layer providers, it is often important to perform modifications in different map layers in a coordinated manner to ensure consistency. This can be done by implementing the modifications in a synchronous manner. However, this approach limits the flexibility in updating individual map layers. This approach may also require the modification of some map layers to be postponed until the map layers can be updated in a synchronous manner.
[0188] The techniques disclosed herein are operable to provide a stream of map data based on modifications to map layers. The techniques disclosed herein are operable such that modifications to map layers are implemented and data is provided in the stream to indicate the modifications made. Different streams may be generated for different map layers. Stream processing may be performed to process several streams and thereby produce an output, such as a stream of map data. The stream-based techniques may reduce or even eliminate the need to synchronize modifications in various map layers with each other. However, a modification in one of the map layers may still be caused by a modification in a different one of the map layers.
[0189] As used herein, a "stream" refers to a data stream in which stream processing is operable to process the messages of the stream one after another. The relative timing of the messages in the stream may be variable. There is variability both within a stream and between different streams. Thus, a stream may include several sub-streams that are distinguishable from each other by the relative timing of the messages (e.g., different delays between consecutive messages in various streams). Stream processing continuously (i.e., without interruption) receives messages from each of the streams.
[0190] As used herein, when the relative timing of the messages in a stream is different, the stream is referred to as "asynchronous".
[0191] As used herein, "stream processing" involves processing and analyzing a message when it is received. Instead of waiting for batch processing, stream processing enables messages containing information about modifications to map layers as reflected by the messages contained in the received stream to be processed as they arrive. This reduces the time delay between receiving a message as input to stream processing and providing a message as output of stream processing. The temporal aspect of streams means that the processing system is operable to process the messages of various streams even if the messages arrive at irregular intervals and / or with different delays between them.
[0192] As used herein, a "processing system" operable to perform stream processing may be implemented as a distributed system, such as a distributed architecture to handle a large amount of incoming data.
[0193] As used herein, the "output" of stream processing may include an output stream. The output stream may include output messages that may have different delays between consecutive output messages. The output may include map data for use by a map data consumer and / or may be operable to provide the map data to a map data consumer. The output may include an output message that includes aggregated information from at least two different map layers.
[0194] Stream processing may include binding. As used herein, "binding" may include using stream processing to combine information from a number of streams, the stream processing including processing the messages of the number of streams when they arrive and determining whether messages from different streams include information related to the same map object that can be combined into an output stream message of a bound output stream.
[0195] As used herein, a "map data consumer" refers to any device or system that is operable to process map data to perform an action. Examples of map data consumers include, but are not limited to, a portable communication terminal (such as a smart phone), a vehicle processing system, a vehicle, a navigation device, a wearable device. The map data consumer may be operable to perform a control action to control, for example, a vehicle actuator and / or a human-machine interface (HMI).
[0196] As used herein, a "map layer providing system" operates as a source of a number of streams. The map layer providing system may or may not necessarily be implemented in separate hardware. The map layer providing system may be implemented in a distributed architecture that may optionally also implement stream processing.
[0197] As used herein, a "map object definition" refers to a definition included in at least one of the map layers. There may be different types of map object definitions, such as a first type (e.g., for defining a node of a navigable network), a second type (e.g., for defining a link of a navigable network), and a third type (e.g., for defining information related to an object of the first or second type or another object of the third type). A map object definition of the first type (e.g., "node type") may define the coordinates of the corresponding node (e.g., but not limited to latitude and longitude). A map object definition of the second type (e.g., "route type") may at least define which nodes are part of a route; it should be noted that a "route" may also be reasonably defined by a single node optionally associated with an attribute, such as when the route defines a turning area or a roundabout. A map object definition of the third type (which may also be referred to as a relationship) may define a characteristic (such as a name) that may be associated with an object of the first or second type or even a third type (e.g., a point of interest (POI) name), and thus may refer to an object of any of the first, second, or third types. Other map object definitions may be used.
[0198] As used herein, a "modification" to a map object definition can be any one of an addition of a new map object definition, a deletion of an existing map object definition, or a change to an existing map object definition.
[0199] As used herein, "syntactic" integrity refers to the syntax of the database domain, not the linguistic domain.
[0200] Figure 1 is a schematic representation of a processing system 20 operable to execute methods for modifying map data.
[0201] The processing system 20 includes at least one interface 21 operable to receive a plurality of streams 50, 60. The processing system 20 includes at least one processing circuit 30 operable to perform stream processing 32. The at least one processing circuit 30 can include, but is not limited to, any one or any combination of an integrated circuit, an integrated semiconductor circuit, a processor, a controller, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a circuit including quantum bits / qubits and / or quantum gates.
[0202] Each of the streams 50, 60 includes a plurality of messages. It is not required that the messages in the streams 50, 60 be received in a given time sequence. In the sense that it is not necessary to align the time sequences and even the relative time sequences of the messages in different streams 50, 60, the plurality of streams 50, 60 can be asynchronous. The messages in each of the plurality of streams 50, 60 indicate modifications to map layers. Each of the plurality of streams 50, 60 can contain messages indicating modifications to only a single map layer. Different streams 50, 60 can be associated with different ones of a plurality of map layers.
[0203] The processing system 20 is generally operable to process the streams 50, 60 by performing stream processing 32. The stream processing 32 is operable to process the messages in the streams 50, 60 when received by the processing system 20. It is not required to receive all the messages before the processing system 20 generates an output based at least on the payload data of the already received messages in the streams 50, 60.
[0204] The function of the stream processing 32 is to provide an output 49 that preferably includes an output stream that aggregates information about modifications to different map layers. To this end, the stream processing 32 is operable to identify messages in the same and / or different ones of the plurality of streams 50, 60 that are related to the same map object (such as, but not limited to, the same node, the same route, the same concern, the same restriction) and generate output messages for the output stream that aggregates this information. Stream processing techniques (such as the use of a sliding window) can be employed to balance the aggregation of information and the timeliness of providing output messages.
[0205] Thus, the stream processing 32 provides an output 49 based on information about a number of map layers modified as indicated by a number of streams 50, 60 respectively. This output 49 may be useful in the map data provided to a map data consumer.
[0206] The stream processing 32 includes an integrity verification 33. The integrity verification 33 is operable to determine whether a modification of at least one map layer indicated by at least one of the streams 50, 60 results in an inconsistency. Depending on the integrity verification implementation, the integrity verification 33 is operable to determine whether a modification of at least one map layer indicated by at least one of the streams 50, 60 results in an inconsistency between different map layers. This may occur when an object is deleted from a map layer and the object may still be referenced by another object in another map layer. This inconsistency may also exist between different map layers when an object is created in a map layer that references another object that does not exist or no longer exists in another map layer. The stream processing 32 and specifically the integrity verification 33 may alternatively or additionally be operable to detect whether there is an inconsistency within at least one of the map layers based on the number of streams 50, 60. Examples of such inconsistencies include syntactic inconsistencies (where the modification does not conform to a set of existing syntactic rules that various map layers must abide by) and / or logical inconsistencies (such as the duplicate creation of existing map objects).
[0207] The stream processing 32 includes an output generation 34. The output generation 34 is operable to generate a stream of output messages. The output generation 34 is operable such that at least some of the output messages include information aggregated from a number of the different streams 50, 60 received at at least one interface 21. The output generation 34 may alternatively or additionally be operable such that the output 49 includes feedback that provides a system notification of the detected inconsistency to the map layer. The feedback or other output 49 is operable to perform or trigger a corrective action in response to the detected inconsistency.
[0208] The processing system 20 may include at least another interface 22 to output an output stream and / or feedback and / or other output that causes a corrective action to be performed. Alternatively or additionally, the processing system 20 is operable to output an output stream and / or feedback and / or other output that causes a corrective action to be performed on at least one interface 21 through which the number of streams 50, 60 are received. The processing system 20 may include an interface that is operable to both receive a number of streams and provide an output.
[0209] The processing system 20 includes a storage system 23. The storage system 23 is operable to at least temporarily store data items useful for performing integrity verification 33. For illustration, as will be explained in more detail herein, integrity verification 33 is operable to store data items in the storage system 23 in response to the detection of an inconsistency, where the data items indicate or are otherwise based on messages determined to cause the inconsistency. Thereafter, integrity verification 33 may process additional messages received in other streams and / or the same stream that contain the message that caused the inconsistency to determine whether any of the additional messages indicate a modification that resolves the inconsistency. Thereby, the asynchronous characteristics of the various streams 50, 60 can be accommodated without having to take excessive corrective actions. Specifically, if the processing system 20 defers generating an output message based on a message determined to cause an inconsistency, then the temporary presence of an inconsistency indicated by a number of streams 50, 62 will not affect the quality of the map data provided to the map data consumer.
[0210] The storage system 23 or a storage system separate therefrom may store machine-readable instruction code that, when executed by at least one processing circuit 30, causes the processing system 20 to perform a method of modifying map data.
[0211] Figure 2 A schematic representation of a system is shown that includes a map layer providing system 70 operable to provide a stream 50 from among a number of streams 50, 60 obtained by the processing system 20; another map layer providing system 80 operable to provide another stream 60 from among the number of streams 50, 60; and a processing system 20 operable to perform stream processing of the number of streams 50, 60.
[0212] The map layer providing system 70 is operable to maintain map layer data 71, which in the following description is also referred to as map layer A. The map layer data 71 includes map object definitions 72. The map object definitions 72 may include definitions of components of a navigable network (e.g., nodes and / or links of a navigable network) or information associated with such components, such as but not limited to restrictions, names, street names, points of interest. The map layer providing system 70 is operable to modify the map object definitions 72. The map layer providing system 70 is operable to perform modifications that may be any one or any combination of the following: addition of a new map object definition, deletion of an existing map object definition, change of an existing map object definition.
[0213] The map layer providing system 70 is operable to maintain versioned map layer data. Modifications in the map object definitions 72 may cause a version change. Information about the corresponding version may be provided by the map layer providing system 70 to the processing system 20 (e.g., as part of a message in stream 50) and / or to another map layer providing system 80.
[0214] The map layer providing system 70 is operable to generate a stream 50 that includes a plurality of messages 51, 52, 53, 54. The time delay between successive ones of the messages 51, 52, 53, 54 may be variable. That is, the stream 50 may include successive messages separated in time by a given time delay and other successive messages separated in time by another time delay different from the given time delay. The map layer providing system 70 is operable such that in response to modifying a map object definition 72 in the map object definitions, it generates and outputs the associated messages of the stream 50. The map layer providing system 70 is operable such that messages of the stream 50 that provide information about the modifications performed on the map object definition 72 may be output in the stream 50 without the map layer providing system 70 aligning the timing of the messages with any modifications and / or any message output performed by another map layer providing system 80.
[0215] The map layer providing system 70 is also operable to notify another map layer providing system 80 of the version of its map layer data and / or the modifications it has made. In other words, the messages of the stream 50 or other information related to the modifications made by the map layer providing system 70 may also be provided to another map layer providing system 80. To this end, different map layer providing systems 70, 80 may be communicatively interfaced via at least one communication link 59.
[0216] Another map layer providing system 80 is operable to maintain another map layer's data 81, which in the following description is also referred to as map layer B. Another map layer data 81 includes other map object definitions 82. The other map object definitions 82 may include information associated with such components, such as but not limited to restrictions, names, street names, points of interest. Another map layer providing system 80 is operable to modify the other map object definitions 82. Another map layer providing system 80 is operable to perform modifications that may be any one or any combination of the following: addition of a new map object definition, deletion of an existing map object definition, change of an existing map object definition.
[0217] Another map layer providing system 80 is operable to maintain versioned map layer data. Modifications in the other map object definitions 82 may cause a version change. Information about the corresponding version may be provided by another map layer providing system 80 to the processing system 20 (e.g., as part of the messages of another stream 60) and / or the map layer providing system 70.
[0218] Another map layer providing system 80 is operable to specify the version of the map data of the map layer providing system 70 (e.g., the version of the map object definition 72) that is referenced by the modifications in the other map object definitions 82 and / or that is referenced by the map layer providing system 80 when generating the messages of the stream output by the map layer providing system 70.
[0219] Another map layer providing system 80 is operable to generate another stream 60 that includes a plurality of messages 61, 62, 63, 64. The time delay between successive ones of the messages 61, 62, 63, 64 may be variable. That is, another stream 60 may include successive messages separated in time by a given time delay and other successive messages separated in time by another time delay different from the given time delay. Another map layer providing system 80 is operable such that in response to modifying a map object definition in other map object definitions 82, it generates and outputs associated messages of another stream 60. Another map layer providing system 80 is operable such that messages of another stream 60 that provide information about modifications performed on other map object definitions 82 may be output in another stream 60 without the another map layer providing system 80 aligning the timing of the messages with any modifications and / or any message output performed by the map layer providing system 70. Another map layer providing system 80 is operable such that messages of another stream 60 that provide information about modifications performed on other map object definitions 82 include information about the version of the data of the map layer providing system 70 (e.g., the version of the map object definition 72) that the modification references.
[0220] Another map layer providing system 80 may optionally also be operable to receive information about the version of the map layer data and / or any modifications made by the map layer providing system 70 from the map layer providing system 70. Another map layer providing system 80 is operable to confirm this information about the modification received, for example, from the map layer providing system 70 via at least one communication link 59.
[0221] Figure 3 is a functional representation of stream processing 32 executable by a processing system 20. Integrity verification 33 may include referential integrity verification 35. Referential integrity verification 35 is operable to detect inconsistencies between different map layers caused by modifications in at least one of the map layers, as indicated by a number of streams 50, 60. Referential integrity verification 35 is operable to determine, based on the received number of streams, whether one of the messages included in the number of streams 50, 60 indicates the deletion of a map object referenced by an existing, modified, or newly created map object definition in another map layer, also as indicated by the number of streams 50, 60. Alternatively or additionally, referential integrity verification 35 is operable to determine, based on the received number of streams, whether one of the messages included in the number of streams 50, 60 indicates a change or addition to a map object definition that references another previously deleted map object. Alternative or additional referential integrity checks may be performed by referential integrity verification 35.
[0222] Output generation 34 may include generating 36 output based on the results of a reference integrity verification. When generating output, the results of the reference integrity verification may be used in various ways. By way of illustration, information about the modifications received in a number of streams 50, 60 may be used to generate an output message for an output stream for selective use by a map data consumer depending on whether the reference integrity verification verifies that the modifications did not cause a reference integrity problem. Alternatively or additionally, the results of the reference integrity verification may be used to determine whether the information about the modifications received in the number of streams 50, 60 is to be used to generate an output message for an output stream for use by a map data consumer without delay or after a waiting period that allows additional messages of the number of streams 50, 60 to be examined to determine whether detected inconsistencies have been corrected. Alternatively or additionally, the results of the reference integrity verification may be used to generate feedback that results in the correction of a reference integrity problem.
[0223] Alternatively or in addition to performing a reference integrity verification and generating output based on the results of the reference integrity verification, the stream processing may perform one or more other integrity verifications, such as logical and / or syntactic integrity verification.
[0224] Figure 4 is a functional representation of stream processing 32 that may be performed by processing system 20. Integrity verification 33 may include logical and / or syntactic integrity verification 37. The logical and / or syntactic integrity verification 37 may be operable to detect the occurrence of logical problems and / or syntactic problems, such as the generation of duplicate map objects and / or modifications that do not comply with the syntactic rules that a map layer must conform to. The logical and / or syntactic integrity verification 37 may be operable to detect the creation of duplicates of existing map objects. Alternative or additional logical and / or syntactic integrity checks may be performed by the logical and / or syntactic integrity verification 37.
[0225] Output generation 34 may include generating 38 output based on the results of the logical and / or syntactic integrity verification. When generating output, the results of the logical and / or syntactic integrity verification may be used in various ways. By way of illustration, information about the modifications received in a number of streams 50, 60 may be used to generate an output message for an output stream for selective use by a map data consumer depending on whether the logical and / or syntactic integrity verification verifies that the modifications did not cause a logical and / or syntactic integrity problem. Alternatively or additionally, the results of the logical and / or syntactic integrity verification may be used to determine whether the information about the modifications received in the number of streams 50, 60 is to be used to generate an output message for an output stream for use by a map data consumer without delay or after a waiting period that allows additional messages of the number of streams 50, 60 to be examined to determine whether detected inconsistencies have been corrected. Alternatively or additionally, the results of the logical and / or syntactic integrity verification may be used to generate feedback that results in the correction of a logical and / or syntactic integrity problem.
[0226] Various map layers can form an acyclic graph. The map layers in a map layer can contain map object definitions that reference map objects defined by different map layers. By way of illustration, a restriction layer (e.g., a speed limit layer, a turning restriction layer, a blocked passage layer, a one-way street layer, etc.) can define corresponding restrictions by referring to routes or nodes defined by different map layers. By way of further illustration, a concern layer can define concerns by referring to nodes defined by different map layers. By way of further illustration, a name layer can define the names of concerns defined by different layers (concern layers) and / or routes defined by another layer (e.g., a base map layer). It is this dependency that can lead to referential integrity problems.
[0227] Figure 5 Schematically illustrates that the map object definition 72 of a map layer defines various map objects 73, 74, 75. The map object definitions 82 of different map layers define other map objects 83, 85, which contain references 84, 86 to the map object definitions 73, 74, 75. Modifications to the map object definitions 73, 74, 75 or modifications to other map object definitions 83, 85 can result in referential integrity problems, which can be detected by the processing system 20 using stream processing techniques.
[0228] Figure 6 Is a flowchart of method 90. Method 90 can be automatically executed by the processing system 20.
[0229] At process block 91, the processing system 20 receives a number of streams. Each of the number of streams indicates a modification to the map layer data of the map layer associated with the corresponding stream. The processing system 20 performs stream processing on the number of streams. Stream processing allows for the generation of output messages of an output stream or the generation of initial output messages based on the processing of one or a number of messages contained in the received streams, without having to wait for subsequent messages in the number of streams.
[0230] At process block 92, integrity verification is performed by the processing system. Integrity verification can include referential integrity verification. Referential integrity verification can include determining, based on the number of streams, whether the number of streams indicates a modification to at least one of the map layers that results in a referential integrity problem (e.g., a reference to a non-existent map object in a different map layer). Alternatively or additionally, integrity verification can include logical verification. Logical verification can include checking whether the number of streams contains at least one message indicating the generation of a duplicate of an existing map object. Logical verification can include syntax verification, where the processing system checks whether the number of streams contains information about a modification that does not conform to the syntax rules that the map layer is to conform to.
[0231] At process block 93, the processing system 20 generates an output. The output is generated based at least on the results of the integrity verification. When generating the output, the results of the integrity verification can be used in various ways. By way of illustration, information about the modifications received in several streams 50, 60 can be used to generate an output message of the output stream for selective use by the map data consumer depending on whether the integrity verification verifies the modifications that do not cause integrity problems. Alternatively or additionally, the results of the integrity verification can be used to determine whether the information about the modifications received in several streams 50, 60 is to be used to generate an output message of the output stream for the map data consumer without delay or after a waiting period allowing additional messages of several streams 50, 60 to be examined to determine whether the detected inconsistencies are corrected. Alternatively or additionally, the results of the integrity verification can be used to generate feedback that causes the correction of integrity problems.
[0232] Alternatively or additionally, at process block 93, when generating the output, the results of the logical and / or syntactic integrity verification can be used in various ways. By way of illustration, information about the modifications received in several streams 50, 60 can be used to generate an output message of the output stream for selective use by the map data consumer depending on whether the logical and / or syntactic integrity verification verifies the modifications that do not cause logical and / or syntactic integrity problems. Alternatively or additionally, the results of the logical and / or syntactic integrity verification can be used to determine whether the information about the modifications received in several streams 50, 60 is to be used to generate an output message of the output stream for the map data consumer without delay or after a waiting period allowing additional messages of several streams 50, 60 to be examined to determine whether the detected inconsistencies are corrected. Alternatively or additionally, the results of the logical and / or syntactic integrity verification can be used to generate feedback that causes the correction of logical and / or syntactic integrity problems.
[0233] Generating an output at process block 93 can include generating an output stream for use by at least one map data consumer. Generating the output stream can include selectively including information from the messages received in several streams 50, 60 in the output message of the output stream depending on the confirmation of the absence of integrity problems in the integrity verification at process block 92.
[0234] Generating an output at process block 93 can also include generating an output that triggers a correction action, such as generating feedback for at least one map layer determined to be involved in an integrity problem to trigger a correction.
[0235] Figure 7 is a flowchart of method 95. Method 95 can be automatically executed by the processing system 20. Process blocks 91 and 92 can be executed as described with reference to Figure 6 described.
[0236] At process block 96, in response to identifying an integrity issue (e.g., a referential integrity issue) during the integrity verification at process block 92, the processing system 20 does not immediately initiate a process that triggers a corrective action to perform additional processing. More specifically, at process block 96, the processing system 20 determines whether messages received in a number of streams 50, 60 during a period after the integrity issue is detected exhibit that the integrity issue has been corrected by, for example, at least one other modification of the map layer from which the message causing the integrity issue originated and / or a map layer different from the map layer from which the message causing the integrity issue originated. This processing is operable to account for the asynchronous nature of the number of streams 50, 60. The implementation of the processing at process block 96 may be referred to Figure 8 , Figure 9 , Figure 10 and Figure 30 described in more detail.
[0237] At process block 97, if one or a number of other messages received during the period after the integrity issue is detected at process block 96 exhibit that the integrity issue has been resolved, then the processing system 20 is operable to consider the integrity issue as corrected when generating an output. In this case, for example, the processing system 20 may generate output messages of an output stream for use by a map data consumer without having to generate feedback that triggers a corrective action.
[0238] At process block 98, if the messages received during the period after the integrity issue is detected at process block 96 do not indicate that the integrity issue has been resolved, then the processing system 20 is operable to trigger a corrective action. The corrective action may include providing feedback to one or a number of the map layers involved in the integrity issue.
[0239] The operation of the processing system will be explained in more detail with reference to Figure 8 , Figure 9 the exemplary streams 50, 60 schematically illustrated in
[0240] Figure 8 showing the streams 50, 60 received by the processing system 20. The processing system 20 is operable to perform stream processing that includes integrity verification of the number of streams 50, 60. Stream 50 includes a first message sequence 51, 52, 53, 54. Stream 60 includes a second message sequence 61, 62, 63, 64, 65. As schematically illustrated by the filled pattern, messages 51 and 64 indicate modifications to different map layers related to the same map object. For illustration, message 51 may contain information that a node or route has been deleted in a base map layer. Message 64 may contain information that a map object in another map layer that references this node or route (which has been deleted according to message 51) has also been deleted.
[0241] In this case, the processing system 20 determines that the deletion of a route or node based on message 51 creates an integrity issue because the processing system 20 has not received any indication that the map object associated with message 64 has also been deleted. Detection of this integrity issue triggers monitoring within period 99. Receipt of message 64 within period 99 allows the processing system 20 to determine that the integrity issue has been resolved, such that no corrective action will be taken in this regard.
[0242] The processing system 20 may generate an output message for inclusion in the output stream of output 49, where the output message contains an aggregation of messages 51, 64 that are both associated with a map object (although in different ways), where message 51 indicates the deletion of a corresponding map object (e.g., a node or route).
[0243] Figure 9 Show a variant where stream 60 contains a second message sequence 61, 62, 63, 64’, 65. Message 64’ does not delete the map object that still references the node or route deleted according to message 51. Thus, in this case, the processing system 20 determines that the integrity issue identified by processing message 51 is not indicated as having been resolved by any of the messages received within period 99.
[0244] It should be understood that an integrity issue determined to exist based on message 51 in stream 50 among several streams 50, 60 may also be determined to have been resolved based on another message in the same stream 50. For illustration, if message 52 or message 53 indicates that the map object deleted according to message 51 has been added again, then the processing system 20 may be operable to determine that the message received within period 99 after the detection of the integrity issue resolves this integrity issue.
[0245] The processing system 20 may thus be operable to employ a window-based processing technique, where a time window (indicated by the Figure 8 and Figure 9 period 99 therein) is used to monitor for a potential resolution of the detected integrity issue. Information from a message (such as message 51) determined to cause an integrity issue may be temporarily stored for determining whether the integrity issue can be determined to have been resolved based on messages received within period 99 after the detection of the integrity issue. Temporarily storing information from a message (such as message 51) determined to cause an integrity issue is also useful for retrieving this information for generating an output message in the output stream of output 49, particularly after it is determined that the integrity issue can be determined to have been resolved based on messages received within period 99 after the detection of the integrity issue.
[0246] Figure 10 Show a schematic representation of the processing system 20 operable to determine whether messages received within period 99 after the detection of an integrity issue show that the integrity issue has been resolved in response to the detection of the integrity issue.
[0247] The stream processing 32 is operable to store the data item 121 in the storage system 23 in response to the detection of an integrity issue. The data item 121 contains information based on a message determined to be associated with the integrity issue, such as payload data and / or other information.
[0248] By storing the data item 121 in the storage system 23, the stream processing 32 temporarily removes the corresponding message from the normal flow of the processing stream, which may operate, for example, in a sequential processing of messages as they are received. As described above, the data item 121 can be used for various purposes, such as determining whether a message received within a period 99 after the detection of the integrity issue indicates that the integrity issue in the map layer has been resolved. Alternatively or additionally, the data item 121 can be used to generate an output message at a later time and after determining that the integrity issue has been resolved for inclusion in the output stream of the output 49.
[0249] The stream processing 32 is operable to perform a sliding time window check 39. The sliding time window check 39 is operable to analyze the messages received within a period 99 of the detection of the integrity issue to determine whether any of the messages indicates that the integrity issue has been resolved, in response to the detection of the integrity issue.
[0250] The sliding time window check 39 can use time information obtained from the time source 122 of the processing system 20 or a time source 122 coupled to the processing system 20. The time source 122 can also be an integral time source for at least one processing circuit 30.
[0251] The output generated based on the integrity verification can have various forms, as will be referenced Figure 11 , Figure 12 , Figure 13 , Figure 14 and Figure 15 explained.
[0252] Figure 11A system is shown that includes a plurality of map layer providing systems 70, 80 and a processing system 20. The processing system 20 is operable to generate an output based on the results of integrity verification, the output including feedback 101 and / or feedback 102 for providing to one or more of the map layer providing systems 70, 80. The feedback 101 and / or feedback 102 may be provided to one or more of the map layer providing systems involved in the integrity issue in response to the detection of an integrity problem. For illustration, if the integrity problem is caused by the deletion of a map object definition from the map object definition 72 of the map layer providing system 70, where this map object is still referenced by another map object definition in the map object definition 82 of another map layer providing system 80, then the processing system 20 is operable to generate feedback 102 for providing to the other map layer providing system 80 to indicate which of the map object definitions 82 contains a reference to an object that no longer exists. Alternatively or additionally, the processing system 20 is operable to generate feedback 10 for providing to the map layer providing system 70 to indicate that the deletion of the map object creates an integrity problem. Alternatively or additionally, if the integrity problem is caused by the addition or change of a map object definition that references another object that does not exist or no longer exists, then the processing system 20 is operable to provide feedback to the map layer providing system in which the additional change has been made.
[0253] Figure 12 A system is shown that includes a plurality of map layer providing systems 70, 80 and a processing system 20. The processing system 20 is operable to generate an output based on the results of integrity verification, the output including an output stream 104. The output stream 104 may include a sequence of output messages. The output stream 104 may be provided to a map data providing system and / or a map data consumer. The sequence of output messages in the output stream 104 may include messages that contain information aggregated from at least two different streams 50, 60 received and processed by stream processing 32. The sequence of output messages in the output stream 104 may include other messages that contain information obtained from only one of the plurality of streams 50, 60. The latter situation may occur when a message in stream 50 or 60 indicates a modification of a map object definition, but no other message in the plurality of received streams is related to the same object.
[0254] By using stream processing 32 to generate the output stream 104, good map data freshness can be obtained as compared to, for example, batch processing techniques.
[0255] Figure 13 A system is shown that includes a plurality of map layer providing systems 70, 80 and a processing system 20. The processing system 20 is operable to generate an output based on the results of integrity verification, the output including an output stream 104 and feedback 101, 102 for providing to the map layer providing systems 70, 80.
[0256] The output stream 104 can be provided to the map data providing system 105, which can be communicatively docked or integrated with the processing system 20. The map data providing system 105 can be operative to provide map data to one or several map data consumers, such as vehicle systems, smart phones, and / or other map data consumers for performing map data-based functions. The map data providing system 105 can also perform post-processing functions, such as filtering, quality assurance, and / or other post-processing functions of the output stream 104.
[0257] Figure 14 Illustrate a system including several map layer providing systems 70, 80 and a processing system 20. The processing system 20 can be operative to generate an output including feedback 101, 102 and an output stream 106 for providing to the map layer providing systems 70, 80 based on the results of integrity verification. The output stream 106 can be generated by post-processing the output stream of the stream processing 32 by the map data providing system. The post-processing can include functions such as filtering, quality assurance, and / or other post-processing functions of the output stream of the stream processing 32.
[0258] Figure 15 Illustrate an output stream 110, which can be the output stream 104 and / or the output stream 106. The output stream 110 includes a plurality of output messages 111, 112, 113. The relative timing of the output messages can be different from the relative timing of the messages in each of several streams 50, 60 received and processed by the processing system 20. By way of illustration, the time delay between consecutive ones of the output messages 111, 112, 130 can change over time and can be different from the time delay between consecutive ones of the messages in each of the several streams 50, 60.
[0259] By means of stream processing, the processing system 20 can be operative to generate and optionally output an output message 111 based on at least one message of several streams 50, 60 at a time when consecutive messages of the several streams 50, 60 may not even have been received by the processing system 20.
[0260] Figure 16 Is a flowchart of a method 130. The method 130 can be automatically executed by the processing system 20.
[0261] At process block 131, the processing system 20 receives several streams 50, 60.
[0262] At process block 132, the processing system 20 performs integrity verification. The integrity verification can include referential integrity verification. The integrity verification can alternatively or additionally include logical integrity verification and / or syntactic integrity verification.
[0263] At process block 133, in response to detecting an integrity issue, the processing system 20 may trigger a corrective action. Alternatively, at process block 134 and in response to detecting an integrity issue, the processing system 20 may determine that one or more messages received during the time period 99 of the detection of the integrity issue indicate that the integrity issue has been resolved by additional modifications in the map layer. Process block 133 may also be omitted. When present, process block 133 is useful for reducing the incidence of referential integrity issues.
[0264] At process block 135, the processing system 20 may aggregate information from different messages contained in several streams 50, 60 to produce at least some of the output messages of the output stream of the stream processing. When the information from the messages contained in several streams 50, 60 relates to the same map object, for example when one of the messages defines a modification of the map object definition of the map object itself and a different one of the messages relates to another map object that references this map object, they may be aggregated.
[0265] At process block 136, output is generated. The output may include at least some of the output messages containing information aggregated from several messages contained in several streams.
[0266] Figure 17 is a flowchart of method 140. Method 140 may be automatically executed by the processing system 20.
[0267] At processing block 141, the processing system 20 performs integrity verification. Processing block 141 may be implemented as previously described.
[0268] At process block 142, the processing system 20 determines that the messages received during the time interval 99 of the detection of the integrity issue do not allow the processing system 20 to determine that the integrity issue in the map layer has been resolved.
[0269] At process block 143, the processing system 20 may optionally select the type of corrective action to be performed. The selection of the type of corrective action may depend on the type of integrity issue identified in the integrity verification at process block 141. By way of illustration, the type of corrective action may depend on whether the integrity issue is a referential integrity issue or another type of integrity issue.
[0270] Depending on the type of corrective action selected at process block 143, the processing system 20 may be operable to trigger the correction of the integrity issue at process block 144. Triggering the correction of the integrity issue may include triggering the correction of the map object definition that references another map object that no longer exists.
[0271] Alternatively or additionally, the processing system 20 is operable to trigger, at process block 145, the provision of feedback to one or more map layer providing systems involved in a detected integrity issue. The provision of the feedback may be performed to allow one or more map layer providing systems to potentially use at least one communication link 59 between the map layer providing systems to correct the integrity issue.
[0272] Alternatively or additionally, the processing system 20 is operable to trigger, at process block 146, a change in the type of modification that has caused the detected integrity issue. By way of illustration, if the processing system 20 determines, based on messages included in a number of streams, that a modification of map layer data includes the duplicate creation of an existing map object, then the processing system 20 may cause the map layer providing system to change the modification from creation to a change of the existing map object.
[0273] Alternatively or additionally, the processing system 20 is operable to perform a discard operation at process block 147. By way of illustration, if the processing system 20 determines, based on messages included in a number of streams, that there are duplicates of object creation, duplicates of object deletion, or updates of non-existent objects, then this processing system 20 may discard this.
[0274] Figure 18 is a schematic representation of a map layer providing system 150 operable to provide a stream 60 including a sequence of messages, each message being associated with a modification of a map object definition in a map layer with which the map layer providing system 150 is associated.
[0275] The map layer providing system 150 includes or is coupled to a map layer storage device 153. The map layer storage device 153 stores therein map layer data including map object definitions of at least one map layer.
[0276] The map layer providing system 150 includes at least one interface 151, 152. The map layer providing system 150 is operable to receive, via at least one interface 151, 152, a stream 50 generated by another map layer providing system and / or other data 158 (such as version data).
[0277] The map layer providing system 150 includes at least one map layer providing system circuit 160 operable to perform map layer related functions 161. The at least one map layer providing system circuit 160 may include, but is not limited to, any one or any combination of an integrated circuit, an integrated semiconductor circuit, a processor, a controller, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a circuit including quantum bits / qubits and / or quantum gates.
[0278] The map layer providing system circuit 160 is operable to execute a control 162 for map layer data modification. The map layer providing system circuit 160 is operable to retrieve data from the map layer data storage device 153 and / or write at least one of the following to the map layer data storage device 153: adding a new map object definition, changing an existing map object definition, deleting an existing map object definition. The control 162 is operable to perform map layer data modification when new observations become available based on them (e.g., based on observations of road congestion tracked from the vehicle position and / or based on observations of new restrictions collected using the vehicle sensor system). A previous version of the map layer data may be retained in the process, enabling several version variants of the map layer data to be stored in the map layer data storage device 153.
[0279] The control 162 is also operable to perform map layer data modification in response to a message contained in a stream 50 received from another map layer providing system, where the other map layer providing system defines a map object referenced by a map layer object definition in the map layer data storage device 153. In the latter case, although the modification of the map layer object definition in the map layer data storage device 153 is initiated by receiving a message from another map layer providing system, it is not necessary for the map layer providing system 150 and the other map layer providing system (e.g., a map layer providing system associated with a sub - layer or a parent - layer of the map layer handled by the map layer providing system 150) to align the timing of their respective modifications.
[0280] The map layer providing system circuit 160 is also operable to perform stream generation 163. The stream generation 163 is operable such that in response to a modification of a map object definition in the map layer data storage device 153, the map layer providing system 150 generates a message for a stream 60 output by the map layer providing system 150 for providing to the processing system 20 (and optionally other map layer providing systems).
[0281] The stream generation 163 is operable such that the message for the stream 60 can be generated and output at a timing asynchronous with the timing at which messages in, for example, the stream 50 are received by the map layer providing system 150. The stream generation 163 is operable such that the time delay between consecutive messages of the stream 60 may be variable. This allows new messages to be output in the stream 60 at a timing reflecting the timing at which the map object definition in the map layer data storage device 153 is modified.
[0282] The map layer providing system 150 is operable to receive and process feedback from the processing system 20, such as feedback 101 or feedback 102.
[0283] Figure 19Is a schematic representation of the map layer providing system 150. At least one interface 151, 152 is operable to receive feedback 159 from the processing system 20. The control 162 includes a fleet package-based modification controller 165 that modifies the map object definitions in the map layer data storage device 153 in response to feedback received from the processing system 20. At least one map layer system processing circuit 160 is operable to perform feedback processing 164 to determine, based on the received feedback and optionally based on the stream 50, what modifications are to be made to the map object definitions in the map layer data storage device 153 to address the reported integrity issues.
[0284] In addition, the modification, when executed in a feedback-initiated manner, causes a message to be generated and output in the stream 60, thereby allowing the processing system 20 to determine that the detected integrity issue has been resolved.
[0285] Figure 20 Is a flowchart of method 170. Method 170 can be automatically executed by the map layer providing system 150.
[0286] At process block 171, the map layer providing system 150 modifies at least one map object definition in the map layer data storage device. The modification can include the addition of a new map object definition, the change of an existing map object definition, or the deletion of an existing map object definition. The modification can be based on new information related to the corresponding map layer (e.g., new observations obtained using a vehicle's sensors). The modification can be made in response to a message in a stream received from another map layer (e.g., a parent layer that defines the map objects referenced by the map object definitions in the map layer being handled by the map layer providing system 150).
[0287] At process block 172, the map layer providing system 150 generates a message for the stream 60 indicating the modification made. The message can also contain version information.
[0288] The generation of the message for the stream 60 at process block 172 can be performed such that the message for the stream 60 can be generated and output as part of the stream 60 at a timing that is asynchronous with the timing at which messages in, for example, the stream 50 are received by the map layer providing system 150. The generation of the messages for the stream 60 can be performed such that the time delay between consecutive messages for the stream 60 is variable. This allows new messages to be output in the stream 60 at a timing that reflects the timing at which the map object definitions in the map layer data storage device 153 are modified.
[0289] Figure 21 Is a flowchart of method 175. Method 175 can be automatically executed by the map layer providing system 150. Process blocks 171, 172 can be implemented as described with reference to Figure 20 described.
[0290] At process block 173, the map layer provisioning system 150 receives feedback from the processing system 20. The feedback may indicate integrity issues identified through integrity verification performed by the processing system 20.
[0291] At process block 174, the map layer provisioning system 150 performs corrective modifications based on the feedback. The corrective modifications defined for at least one map object are performed in a manner that corrects the integrity issues identified through integrity verification by the processing system 20 and indicated in the received feedback. The map layer provisioning system 150 also generates and outputs a message in stream 60 for the corrective modification.
[0292] As previously described, modifications to the map layer data by adding, changing, or deleting map object definitions may also be performed to improve the consistency between the map layer and the physical world reality, where the map data is used to perform map-based functions.
[0293] Figure 22 is a schematic representation of a system 180 that includes a processing system 20 and a number of map layer provisioning systems 150, 150', 150". Each of the number of map layer provisioning systems may be operable as disclosed in connection with Figure 18 and Figure 19 associated.
[0294] The number of map layer provisioning systems 150, 150', 150" are operable to modify the map object definitions in the respective map layers in response to information that may be captured by sensors of a number of vehicles 183 communicatively coupled to at least one of the map layer provisioning systems 150, 150', 150" via a communication link provided by a communication network 184, which may include a wide area network and / or a cellular network. By way of illustration, a restriction (such as a blocked passage) may be identified by a map layer provisioning system of a restriction layer based on the detection tracking of the vehicle 183 and may be used to update the restrictions of the corresponding route.
[0295] Alternatively or additionally, at least some of the number of map layer provisioning systems 150, 150', 150" are operable to modify the map object definitions in the respective map layers based on data obtainable from a data resource 182 and / or a server 181, the map layer provisioning systems being coupled to the data resource 182 and / or the server 181 via a communication link provided by the communication network 184.
[0296] The various map layers may include but are not limited to: a base map layer; a turn restriction layer; a speed limit layer; a speed profile layer; a one-way layer; a blocked passage layer; a building layer; an address point layer; a point of interest layer; a parking information layer; a point of interest layer.
[0297] Figure 23An acyclic graph of map layers 190 is shown. The acyclic graph may, but need not, have a hierarchical structure. The acyclic graph of map layers may include a base map layer 192 that includes map object definitions for nodes and routes. The acyclic graph of map layers may include additional map layers 191, such as an address point layer 193, which is a child layer of the base map layer 192 and may be a parent layer of a point of interest layer 197. The acyclic graph of map layers may include a point of interest layer 197, which may be a child layer of the address point layer 193 and a second generation child layer of the base map layer 192. The acyclic graph of map layers may include an administrative area layer 194, which may be a child layer of the base map layer 192 and may be a parent layer of a geopolitical layer 198. The acyclic graph of map layers may include a geopolitical layer 198, which may be a child layer of the administrative area layer 194 and a second generation child layer of the base map layer 192. The acyclic graph 190 may include additional layers, such as one or more restriction layers 195 (e.g., a speed limit layer, a turn restriction layer, a blocked channel layer), a speed profile layer 199, a street name layer 196, and a name layer 200. The map layer providing system of the various layers provides several streams indicating the modifications made to the corresponding layer. The streams are processed by the processing system 20 using stream processing to produce output 49 including output streams. The streams may also be processed by other map layer providing systems.
[0298] refer to Figure 24 , Figure 25 , Figure 26 , Figure 27 , Figure 28 and Figure 29 , the operation of the map layer providing system and / or processing system 20 will be further explained.
[0299] As previously described, processing system 20 is operable to generate output stream 110 that includes at least some output messages that each aggregate information from several messages of several streams received by processing system 20 .
[0300] Figure 24 Stream 50 is illustrated containing messages 51, 52, 53 defining various modifications to map layer object definitions in map layer A. Stream 60 contains messages 61, 62, 63, 64 defining various other modifications to other map layer object definitions in map layer B. As schematically illustrated by the dashed connecting lines, message 61 relates to a modification of a map object definition that references a map object that is modified in the manner defined by message 51. Message 63 relates to a modification of a map object definition that references a map object that is modified in the manner defined by message 52. Message 64 relates to a modification of a map object definition that references a map object that is modified in the manner defined by message 53. Message 62 relates to a modification of a map object definition that does not reference any map object to which the messages in stream 50 relate.
[0301] The processing system 20 is operable to generate output messages 111, 112, 113, 114. Output message 111 aggregates information from messages 51, 61. Output message 112 contains information from message 62 (without any aggregation). Output message 113 aggregates information from messages 62, 63. Output message 114 aggregates information from messages 53, 64.
[0302] Accordingly, the processing system 20 is operable to perform stream processing, where if one of the messages from several streams is related to a map object referenced by a map object definition modified as indicated by another of the messages, then the messages are aggregated into an output message. If there are no related messages, then no aggregation is performed.
[0303] If the integrity verification performed during stream processing detects an integrity issue, then the generation of the output message may be delayed until it can be determined that the integrity issue has been resolved. Accordingly, the order of the output messages in output stream 110 may be different from the order in which the information elements used to generate the output messages are received by the processing system 20.
[0304] Figure 25 Show specific instances of messages 51, 61, 111. Message 51 defines the addition of a node at coordinates x and y in a map layer (e.g., a base map layer). Message 61 adds a map object definition of a hotel at the corresponding node in a different map layer (e.g., a point of interest layer). The processing system 20 is operable to generate output message 111 in output stream 110, which aggregates the identifier of the node, its coordinates (as specified by the base map layer message 51), and its POI information (as specified by the POI layer).
[0305] Integrity issues (e.g., referential integrity issues and / or logical or syntactic integrity issues) may be recognized by the processing system 20. Various instances are referenced Figure 26 , Figure 27 , Figure 28 and Figure 29 provided.
[0306] Figure 26 Illustrate modification 210 and include modification 211 performed in a map layer and another modification 212 performed in another map layer. Modification 211 creates two new nodes called "1:1" and "1:2". Another modification 212 creates a route in another map layer that includes nodes "1:1" and "1:2" as the route. The processing system 20 determines that there are no referential integrity issues. The processing system 20 generates an output message for the output stream of output 49, which may aggregate information about modifications 211, 212.
[0307] Figure 27Indicates a continuation from this state and describes modification 220 in which node 1:1 (created at modification 211) is deleted by modification 221. Another map layer provides confirmation 222. The processing system 20 determines that there is an inconsistency because a route previously created by modification 212 now contains a reference to a node that no longer exists. In response to the detection of this integrity issue, based on a number of received streams, the processing system 20 generates feedback 102 to trigger a corrective action. At this stage, due to the existing reference integrity issue, the output stream in output 49 does not generate a new output message to include the deletion defined by modification 221.
[0308] Figure 28 Indicates a continuation from this state and describes modification 230 in which the map object definition of route "2:1" (created at modification 212) is changed by modification 232 that removes node 1:1 from it. The change triggers a message to be generated in the stream to the processing system 20. The processing system 20 determines that the reference integrity issue has been resolved. The processing system 20 generates a new output message for the output stream in output 49 to reflect the change in the definition of route "2:1" (defined by modification 232) and the deletion of node "1:1" (defined by modification 221).
[0309] Figure 29 Indicates another instance where "version 1" of a map layer (e.g., a base map layer) contains modification 241 that includes modification 242 creating node "1:1". "Version 2" of the map layer contains modification 243 that includes modification 244 creating an already existing node "1:1" and creating a different node "1:2". The streams provided to the processing system 20 by the respective map layer systems are processed by the processing system 20 using stream processing. The processing system 20 detects a map object definition that creates an already existing map object by modification 244. This causes the processing system 20 to provide feedback 101 to trigger a corrective action.
[0310] As already referenced Figure 10 explained, the processing system 20 is operable to selectively change the processing of received messages based on the results of integrity verification.
[0311] Figure 30 Shows a schematic representation of the processing system 20 for further explaining this operation. The storage system 23 is operable to store one or more data items 124 in a storage device 123 for data items with reference and / or other integrity issues. Each of the data items 124 contains information from a message determined to reflect a modification in a map layer that results in a reference integrity issue and / or may result in a syntax and / or logical integrity issue. Refer to Figure 25 for example, a data item may contain the payload of a message determined to reflect a modification that results in an integrity issue.
[0312] Upon receiving new messages for a number of streams 50, 60, stream processing 32 is operable to perform a retrieval 127 of data item 124 to check whether an integrity issue has been resolved, and if so, generate an output message for an output stream of output 49 using the data item that no longer has an integrity issue.
[0313] Processing system 20 is operable such that stream processing 32 also includes deleting 126 data item 124 from storage device 123. Deletion 126 can be performed once it is determined that the integrity issue no longer exists. Deletion 126 can also be performed based on time-based deletion criteria. By way of illustration, the time that data item 124 is stored can be recorded and used to select data item 124 for deletion based on whether a threshold storage time has been reached or exceeded.
[0314] Reference Figure 31 、 Figure 32 、 Figure 33 、 Figure 34 ,in Figure 35 ,a system 250 will be described that includes a processing system 20 and one or more map layer providing systems 251 operable to modify map layer data 252 of one or more map layers.
[0315] One or more map layer providing systems 251 are operable to output a plurality of streams 259. Processing system 20 is operable to receive the plurality of streams 259 and perform stream processing 32, which includes integrity verification. Processing system 20 is also operable to perform additional downstream processing operations on the output 160 of stream processing 32. By way of illustration, map data provision 262 is operable to perform a quality check terminal 263 on the output 261 of stream processing and generate map data 269 for distribution to map data consumers.
[0316] Stream processing and (if present) map data provision can be implemented a number of times to allow for the generation of a number of different map products. The number of different map products can be distinguished from one another, for example, in terms of the information they contain. The number of different map products can alternatively or additionally be distinguished from one another, for example, in terms of the weights assigned to various KPIs (such as freshness and accuracy or coverage). By controlling the operating parameters of stream processing, freshness and accuracy or coverage can be traded off to some extent. By way of illustration, an increase in the time interval 99 during which monitoring is performed after the detection of an integrity issue can increase coverage at the expense of freshness (by reducing the risk of discarding information about modifications that caused the integrity issue when generating the output 261 of stream processing). Vice versa, a decrease in the time interval 99 during which monitoring is performed after the detection of an integrity issue can reduce coverage (by increasing the risk of discarding information about modifications that caused the integrity issue when generating the output 261 of stream processing), while increasing freshness.
[0317] Figure 32 A display system 250, where a processing system 20 performs stream processing 32 to generate map data 269 of a first map product, and performs one or more additional instances of stream processing 32' (each including integrity verification) to generate map data 269' of one or more additional map products. The output 269 can be distinguished from the output 269' in terms of the timing of the output messages in the output stream of the output 269.
[0318] Optionally and also as Figure 32 schematically illustrated in, different instances of stream processing can receive different numbers of streams 259, 259' as inputs. For illustration, the map layers considered for generating the map data 269' do not need to be exactly the same as the map layers used for generating the map data 269.
[0319] Figure 33 A schematic representation of a system 250 is shown including one or more map layer providing systems 251, a processing system 20, and one or more map data consumers 267. The one or more map data consumers 267 can be operable to receive map data based on the output stream 261 of the stream processing 32 and perform at least one map-based function based thereon. The one or more map data consumers 267 can be operable to receive the map data as a map data stream via a communication link, which can be implemented using a communication network 266. The communication network 266 can include a wide area network and / or a cellular network.
[0320] Figure 34 A schematic representation of a system 250 is shown including one or more map layer providing systems 251, a processing system 20, and a map data consumer 268. The map data consumer 268 includes at least one control circuit 270. The at least one control circuit 270 can be communicatively coupled to a communication interface 276 of the map data consumer 268. The at least one control circuit 270 can be operable to perform a map-based function based on the map data, which is based on the output stream 261 of the stream processing. The at least one control circuit 270 can be operable to perform at least one control action based at least on the map data to control one or more actuators 271, 272 and / or a human-machine interface 275. The at least one control circuit 270 can be operable to use the map data in combination with sensor data captured by one or more sensors (such as a distance sensor 274 and / or a camera 273) to perform at least one control operation.
[0321] Figure 35Shows a schematic representation of a system 250 including one or more map layer providing systems 251, a processing system 20, and systems 182, 183, where one or more map layer providing systems 251 obtain data modified based on the execution of map object definitions from the systems 182, 183. Systems 182, 183 may include a vehicle fleet 183 that provides sensor data to the map layer providing system 251 and / or other data resources 182 communicatively coupled to the map layer providing system 251. System 250 also includes one or more map data consumers 267. The map data consumers 267 may include at least one map data consumer that operates as described in association with Figure 34 associated.
[0322] Figure 36 Is a flowchart of a method 280. The method 280 may be automatically executed using the processing system 20 and at least one map data consumer (such as map data consumer 268).
[0323] At process block 281, the processing system 20 performs stream processing of a number of streams. Each of the number of streams includes a message indicating a modification to the map layer associated with the corresponding stream. The number of streams may be asynchronous.
[0324] At process block 282, an output is provided by the processing system 20 to at least one map data consumer. The output is based on the stream processing. The output may include a map data stream.
[0325] At process block 283, the map data consumer performs at least one action based at least on the output of the stream processing. The at least one action may include a control action. The at least one action may be any one or any combination of the following: route search, navigation function, driver assistance function, advanced driver assistance function, autonomous driving function. The at least one action may include at least one control action. The at least one control action may include controlling at least one actuator and / or controlling a human-machine interface.
[0326] Figure 37 Is a flowchart of a method 290. The method 290 may be automatically executed using the processing system 20.
[0327] At process block 291, the processing system 20 receives a number of asynchronous streams.
[0328] At process block 292, the processing system 20 reduces the risk that the output of the stream processing of the number of asynchronous streams is adversely affected by integrity issues. This includes performing stream processing that includes integrity verification, as discussed in detail herein.
[0329] Although the embodiments have been described with reference to the figures, modifications and changes may be implemented in other embodiments. Although exemplary use cases in which the methods and vehicle processing systems may be applied have been described in detail, the techniques disclosed herein may be used in association with a variety of additional scenarios. By way of further illustration, although exemplary map layers have been described, the techniques disclosed herein are generally applicable to a wide variety of map layers.
[0330] This description and the accompanying drawings that illustrate aspects and embodiments of the invention should not be regarded as limiting the claims that define the protected invention. In other words, although the invention has been described in detail in the figures and the foregoing description, this description and illustration should be considered illustrative rather than restrictive. Various mechanical, compositional, structural, electrical, and operational changes may be made without departing from the spirit and scope of this description and the claims. In some instances, well-known circuits, structures, and techniques have not been shown in detail so as not to obscure the invention. Accordingly, it should be understood that those of ordinary skill in the art may make changes and modifications within the scope and spirit of the appended claims. In particular, the invention covers additional embodiments having any combination of features from different embodiments described above and below.
[0331] The present disclosure also covers all additional features individually shown in the figures, even if they may not be described in the foregoing or the following description. Additionally, individual alternatives of the embodiments described in the figures and individual alternatives of their features may be excluded from the subject matter of the invention or the disclosed subject matter. The present disclosure includes the subject matter consisting of the features defined in the claims or the embodiments and the subject matter including such features.
[0332] The term "comprising" does not exclude other elements or process blocks, and the indefinite article "a" or "an" does not exclude a plurality. A single unit or process block may perform the functions of several features recited in the claims. The fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be advantageous. Components described as being coupled or connected may be directly electrically or mechanically coupled, or they may be indirectly coupled via one or more intermediate components. Any reference signs in the claims should not be construed as limiting the scope.
[0333] Machine-readable instruction codes may be stored / distributed on a suitable medium, such as an optical storage medium or a solid-state medium supplied together with or as part of other hardware, but may also be distributed in other forms, such as via a wide area network or other wired or wireless telecommunication systems. Additionally, the machine-readable instruction codes may also be a data structure product or a signal for embodying a specific method (such as a method according to an embodiment).
Claims
1. A method for modifying map layer data (71, 81), the method comprising: The map layer data (71, 81) is modified by a map layer providing system (70, 80; 150) that provides the map layer data (71, 81), wherein The map layer data (71, 81) comprises a map object definition (72, 82), wherein the map object definition (72, 82) contains a reference to a parent layer map object defined by one or more parent layers of the map layer and / or wherein the map object defined by the map object definition (72, 82) is referenced by a sublayer map object definition (72, 82) in one or more sublayers of the map layer, and The modification comprises at least one of a change of an existing map object definition of the map object definition (72, 82), an addition of a new map object definition to the map object definition (72, 82), a deletion of an existing map object definition from the map object definition (72, 82); and Data indicating the modification in the map layer data (71, 81) is provided by the map layer providing system (70, 80; 150) for performing at least one action based at least on the map layer data (71, 81) as modified by the modification, wherein the data indicating the modification is provided in a stream (50, 60; 259; 259, 259').
2. A method according to claim 1, wherein the stream (50, 60; 259; 259, 259') includes a sequence of messages (51 to 54; 61 to 65), each of the messages (51 to 54; 61 to 65) being associated with one of the modifications, wherein the map layer providing system (70, 80; 150) generates and outputs each of the messages (51 to 54; 61 to 65) in the sequence in response to implementing the modification with which the message is associated.
3. A method according to claim 2, wherein each of the messages (51 to 54; 61 to 65) comprises a unique identifier of the map object modified by the modification and / or version data of the map layer with which the message is associated.
4. A method according to claim 2 or claim 3, wherein the map layer providing system (70, 80; 150) outputs the messages (51 to 54; 61 to 65) in the sequence in a timing independent of modification of the parent layer map object definition (72, 82) of the parent layer map object and / or modification of the child layer map object definition (72, 82).
5. A method according to any one of claims 1 to 3, wherein the map layer providing system (70, 80; 150) implements at least one first modification of the modifications in response to at least one inconsistency between the map layer data (71, 81) and a parent layer map object definition (72, 82) of the parent layer map object and / or the child layer map object definition (72, 82), wherein the at least one first modification corrects the at least one inconsistency.
6. The method according to claim 5 further includes receiving, by the map layer providing system (70, 80; 150), one or more parent layer streams (50) indicating modifications of a parent layer map object definition (72) defining the parent layer map object, wherein the at least one inconsistency includes a reference inconsistency caused by at least one of the modifications of the parent layer map object definition (72).
7. The method according to claim 6, wherein the stream (60) is asynchronous with the one or several parent layer streams (50).
8. The method of claim 6, wherein the map layer rendering system (70, 80; 150) is operable to implement at least one second of the modifications at a time independent of the modification of the parent layer map object definition (72, 82).
9. The method of claim 5, wherein the at least one inconsistency comprises a reference inconsistency caused by at least one of the modifications.
10. The method of claim 5, further comprising receiving a notification indicating the at least one inconsistency from a processing system (20), wherein the processing system (20) processes the stream (50, 60; 259; 259, 259') to perform integrity verification of the map layer data (71, 81) as modified by the modification.
11. The method of claim 10, when appended to any one of claims 6 to 8, further comprising processing, by the processing system (20), the stream (50) and the one or more parent layer streams (60) to perform the integrity verification.
12. The method of claim 5, further comprising providing, by the map layer providing system (70, 80; 150), a confirmation to another map layer providing system (70) of at least one of the one or several parent layers (70) to confirm that the inconsistency is corrected by the at least one first modification.
13. The method of any one of claims 1 to 3, wherein the map layer comprises an acyclic graph of map layers (190), wherein the acyclic graph comprises a base map layer (191) defining nodes and links of a navigable network, wherein the one or several parent layers (60) comprise one or both of the following: The base map layer (192); Another map layer (193 to 195, 197, 198) that references the nodes and the links defined by the base map layer (192), the other map layer (193 to 195, 197, 198) being different from the base map layer.
14. The method according to any of claims 1 to 3, further comprising performing the action based at least on the stream (50, 60; 259; 259, 259'), optionally wherein the action comprises one, several or all of the following: Route search; Route guidance; Autonomous driving features; Traffic flow control.
15. A machine readable instruction code comprising instructions which, when executed by at least one processing circuit (160), cause the at least one processing circuit (160) to perform the method according to any of the preceding claims.