Method for correcting map data and machine readable command code
The method of asynchronous stream processing with integrity verification for map data modification addresses the need for flexibility and consistency in updating map layers, ensuring accurate and timely updates for navigation and autonomous driving systems.
Patent Information
- Application Number
- JP2024217711
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-20
- Filing Date
- 2024-12-12
- Publication Date
- 2025-07-08
- Estimated Expiration
- 2044-12-12
AI Technical Summary
Existing map data modification technologies require synchronization of modifications across different map layers, leading to limited flexibility and potential inconsistencies that can compromise safety and efficiency in navigation and autonomous driving systems.
A method and system utilizing stream processing with integrity verification to modify map data asynchronously across layers, detecting and resolving inconsistencies to ensure freshness and accuracy without temporal alignment, allowing independent updates to different map layers.
Enhances flexibility and reduces the risk of inconsistencies in map data, ensuring accurate and timely updates for navigation, driving assistance, and autonomous driving systems by independently modifying map layers without requiring synchronization.
Smart Images

Figure 2025102703000001_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present invention relate to technologies related to electronic map data, such as map data for use in navigation, driving assistance, advanced driving assistance, and / or autonomous driving. Embodiments of the present invention relate particularly to technologies useful for providing an output based on at least some map layers.
Background Art
[0002] Map data is a valuable resource for enhancing vehicle navigation functions, driving assistance systems, and enabling autonomous driving. It provides information on roads, routes, and the surrounding environment so that these and other technologies can be operated 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 and reduces the likelihood of getting lost or encountering unexpected obstacles. Vehicle navigation functions, driving assistance systems, and autonomous driving systems also use electronic map data to enhance safety and improve driving comfort. Functions such as lane departure warnings, blind spot detection, and adaptive cruise control can utilize the information provided by the electronic map to make information-based decisions and provide timely warnings or interventions. For example, if the map data indicates a sharp curve ahead, the system can adjust the speed of the vehicle or warn the driver to ensure safe maneuvering. Additionally, electronic map data can assist in identifying speed limits, traffic signs, and other road conditions, enabling the driving assistance system to operate accordingly. Thus, electronic map data helps the vehicle perform appropriate operations and enhances safety and overall efficiency.
[0003] In the technology of modifying map data, technologies for improving flexibility are needed in the art.
SUMMARY OF THE INVENTION
[0004] An object of an embodiment of the present invention is to provide a method, a system, and / or machine-readable instruction code for improving flexibility when modifying map data. In particular, it is an object to provide a technique for modifying map data that does not require synchronization of modifications in different map layers and is operable to reduce the risk of inconsistencies in the map data provided for use by map data consumers (such as vehicles or map distribution systems).
[0005] According to an embodiment of the present invention, a method and machine-readable instruction code as recited in the independent claims are provided. The dependent claims define preferred and advantageous embodiments.
[0006] According to one aspect of the present invention, a method for modifying map data is provided. The method includes obtaining, by a processing system, a plurality of streams. Each of the plurality of streams includes data indicating a modification of one of a plurality of map layers associated with the stream. The plurality of map layers includes child layers and one or more parent layers. The plurality of map layers includes a map object definition, and the map object definition includes a parent layer map object definition within the one or more parent layers and a child layer map object definition within the child layer. The child layer map object definition includes a reference to a parent layer map object defined by the parent layer map object definition. The method includes performing, by the processing system, stream processing on the plurality of streams. The stream processing includes integrity verification for verifying the integrity of the child layer map object definition modified as indicated by the streams associated with the child layer and the parent layer map object definition modified as indicated by at least another one of the plurality of streams associated with the one or more parent layers. The stream processing includes generating an output based at least on a result of the integrity verification.
[0007] A stream refers to a flow of data, and the processing system is operable to process messages of the stream one after another. The relative time between messages within the stream can be variable. Different from batch processing in which data is processed in large chunks or batches, the processing system is operable to process the stream and thus is operable to process a message when the message arrives. The temporal aspect of the stream means that the processing system is operable to process messages of various streams even when messages may arrive at irregular intervals and / or with various delays between them.
[0008] The method has various effects and advantages. Information regarding the modification of any one of the several map layers is obtained as a stream. Therefore, it is not necessary for the modifications made to different map layers indicated by the stream associated with the map layer to be executed according to a pre-agreed timing (for example, synchronously). The stream processing including integrity verification is operable to detect any inconsistencies that may be caused by modifications to different map layers that are executed asynchronously. Thereby, the stream processing can ensure that the output is not based on inconsistencies that may potentially be caused by modifications to different map layers, or at least, is not based on inconsistencies that are unacceptable for safety reasons, for example.
[0009] Therefore, by using the stream processing including the integrity verification, significantly enhanced generality is achieved when modifying map layers. The map layer can be modified in a way that does not require the temporal alignment of the modifications of various map layers. The risk that the output (such as map data for use by a map data consumer) is damaged due to inconsistencies is reduced. Thereby, a more general technique for modifying map data in various map layers is provided, while on the other hand, the risk of inconsistencies between different map layers that affect the map data provided to a map data consumer (such as a system for route planning and / or route search, navigation, driving assistance, advanced driving assistance, and / or autonomous driving, for example) is reduced.
[0010] The stream processing can include binding. The binding can include combining information from several streams, processing their messages when the several streams arrive, and / or determining whether messages from different streams include information regarding the same map object that can be combined into the output stream message of the output stream of the binding.
[0011] Accordingly, information from different ones of the several streams can be combined in stream processing that is processed when a received message is received.
[0012] The binding may include generating an output including an output stream.
[0013] Thereby, the output stream is generated from the several streams.
[0014] The streams of the several streams associated with the child layer may include a first sequence of messages. At least another one of the several streams associated with the one or several parent layers may include a second sequence of messages. The message timing of the first sequence of messages may be independent of the message timing of the second sequence of messages.
[0015] Accordingly, information regarding a modification in any one of the several map layers can be received at a timing according to when the modification in each map layer is executed, without requiring temporal alignment with the modification in the parent layer reflected by the second sequence of messages. This is beneficial for maintaining the freshness of the output (e.g., map data provided to a map data consumer).
[0016] The stream processing can include processing each of the messages in the first sequence of messages one by one when received by the processing system. The stream processing can include processing each of the messages in the second sequence of messages one by one when received by the processing system.
[0017] Thereby, the processing system is operable to generate an output (such as map data) by processing the messages of the first sequence of messages and the messages of the second sequence of messages when they arrive. This is beneficial for maintaining the freshness of the output (for example, the map data provided to the map data consumer). It is not required that the processing system wait for the reception of all messages of the first sequence of messages and the second sequence of messages before starting processing (such as integrity verification).
[0018] The first stream of messages may include a first message providing information regarding a child layer modification triggered by a parent layer modification of a parent layer among the one or several parent layers. The second message of the second sequence of messages provides information regarding the parent layer modification. Here, the processing system receives the first message at a different time from the second message (for example, with a delay exceeding the processing time for performing the child layer modification in response to the parent layer modification).
[0019] Thereby, higher flexibility is obtained at the timing when the several map layers can be modified.
[0020] The stream processing may include generating an output message in response to confirming that the first message and the second message have passed the integrity verification.
[0021] Accordingly, messages providing information about matching corrections can be used to generate output messages without having to wait for unprocessed messages in the first sequence of the messages and the second sequence of the messages. This is beneficial to enable the freshness of the output (e.g., the freshness of map data) and / or the sources of the several streams to operate independently. There is no need to maintain synchronization between the sources of the several streams. This improves scalability.
[0022] The stream processing can include triggering a correction action in response to detection of a mismatch in the consistency verification.
[0023] Accordingly, the risk of output based on at least one message in the first and / or second sequence of messages causing a mismatch is reduced. This improves the quality of the output (e.g., of map data).
[0024] The stream processing can include storing a data item providing information about at least one child layer map object definition that does not match the parent layer map object definition in response to the detection of the mismatch.
[0025] Accordingly, the data item remains available for the stream processing to resolve the mismatch, for example, by waiting for at least one subsequent message in at least one of the several streams in which the mismatch has been resolved.
[0026] The data item can be stored at least temporarily after the detection of the mismatch.
[0027] Accordingly, the data item remains available for the stream processing to resolve the mismatch, for example, by waiting for at least one subsequent message in at least one of the several streams in which the mismatch has been resolved.
[0028] The data item may be temporarily stored after the detection of the inconsistency, and the method may include deleting the data item by the processing system according to a deletion criterion (such as a time-based deletion criterion).
[0029] Thereby, the data item remains available for the stream processing for resolving the inconsistency during the period after the detection of the inconsistency. On the other hand, when a new inconsistency is detected, it frees up the storage space for continuously (i.e., continuously) storing other data items.
[0030] The data item may be or indicate the payload data in the message determined to cause the inconsistency.
[0031] Thereby, this information remains available for the stream processing for resolving the inconsistency during the period after the detection of the inconsistency.
[0032] The stream processing may include temporarily preventing the generation of an output message based on the message determined to cause the inconsistency in response to the inconsistency.
[0033] Thereby, the risk of providing potentially incorrect output (such as map data) is reduced.
[0034] The stream processing may include monitoring the several streams before triggering the correction action in response to the detection of the inconsistency.
[0035] Thereby, it is possible to monitor the several streams to determine whether the inconsistency is improved by another correction in another layer. Thereby, the asynchrony of the messages in the several streams and / or the asynchrony of the corrections in various map layers are taken into account.
[0036] Monitoring the several streams may include, after detecting the inconsistency and based on the data item, confirming that the inconsistency remains unaddressed by the correction indicated by the several streams at a monitoring time interval.
[0037] Thereby, the several streams are monitored to determine whether the inconsistency is improved by another correction in another layer. This improves the quality of the output (e.g., map data).
[0038] The stream processing may include generating an output message based on at least one of the data items in response to confirming that the inconsistency is addressed by the correction indicated by the several streams at a monitoring time interval after detecting the inconsistency.
[0039] Thereby, confirming that the inconsistency is resolved triggers the generation of an output message (such as an output message including map data based on at least two different layers of the several layers). This is beneficial for both the accuracy and freshness of the output (e.g., map data).
[0040] The correction action may include correcting an incorrect reference to at least one of the parent layer map objects in at least one of the sub - layer map object definitions based at least on the inconsistency.
[0041] Thereby, the stream processing is operable to trigger the correction of the reference integrity problem. This improves the accuracy of the generated output (e.g., map data).
[0042] Alternatively or additionally, the correction action may include propagating feedback to the map layer providing system of the several map layers based at least on the inconsistency.
[0043] Thereby, the stream processing is operable to trigger the provision of feedback to enable the map layer providing system to address the at least one discrepancy. Thereby, the accuracy of the generated output (e.g., map data) is improved.
[0044] The feedback may be selectively propagated to one or some of the map layer providing systems in which at least one message has been received in the several streams, and at least one message causes the discrepancy.
[0045] Thereby, the stream processing is operable to trigger the provision of feedback to enable the map layer providing system to address the at least one discrepancy. Thereby, the accuracy of the generated output (e.g., map data) is enhanced.
[0046] Alternatively or additionally, the correction action may include changing at least one type of the correction from a first type of correction to a second type of correction, and the at least one of the corrections is a root cause of the discrepancy, and changing the type resolves the discrepancy.
[0047] Thereby, the stream processing is operable to trigger the correction of incorrect corrections. Thereby, the accuracy of the generated output (e.g., map data) is enhanced.
[0048] The first type of correction and the second type of correction may each be selected from the group including addition of an object definition, deletion of an object definition, and change of an object definition.
[0049] Thereby, incorrect operations performed on the map layer can be corrected. Thereby, the accuracy of the generated output (e.g., map data) is enhanced.
[0050] The first type of correction and the second type of correction may each be selected from the group consisting of addition of an object definition, deletion of an object definition, and change of an object definition.
[0051] Thereby, incorrect operations performed on the map layer can be corrected. As a result, the accuracy of the generated output (e.g., map data) is improved.
[0052] Alternatively or additionally, the correction action may include discarding duplication of map object creation, duplication of map object deletion, and / or correction of non-existent map objects.
[0053] Thereby, specific types of incorrect operations performed on the map layer can be processed in a way that reduces their risk of affecting the output (e.g., map data).
[0054] Generating the output may include aggregating at least two corrections of the map object definition for the same map object into an aggregated correction. The output can be based at least on the aggregated correction, and the aggregating is performed based at least on the result of the consistency verification.
[0055] Thereby, an output that combines information from several map layers (such as map data for use by a map data consumer) can be generated. The stream processing including the consistency verification provides advantages with respect to both the freshness and quality (e.g., accuracy) of the output.
[0056] The consistency verification may include a reference consistency verification that checks that the correction of the sub-layer map object definition indicated by the stream of the several streams associated with the sub-layer is referentially consistent with the corrected parent-layer map object definition indicated by at least another one of the several streams associated with the one or several parent layers.
[0057] Thereby, the stream processing can operate to reduce the risk that reference integrity problems affect the quality of the output (e.g., map data).
[0058] Alternatively or additionally, the integrity verification may include a logical integrity verification of at least one child layer map object definition modified as indicated by the stream of the several streams associated with the child layer, and / or at least one parent layer map object definition modified as indicated by at least another one of the several streams associated with the one or several parent layers.
[0059] Thereby, the stream processing can operate to reduce the risk that logical integrity problems affect the quality of the output (e.g., map data). The logical integrity problems can exist within a layer and include integrity problems that do not depend on references between layers.
[0060] Alternatively or additionally, the integrity verification may include a syntactic integrity verification of the child layer map object definition and the parent layer map object definition, each modified as indicated by the several streams, and verify compliance with a set of syntactic rules, logical rules, and / or other rules that do not necessarily depend on reference integrity between different map layers.
[0061] Thereby, the stream processing can operate to reduce the risk that syntactic integrity problems affect the quality of the output (e.g., map data).
[0062] The several map layers can define an acyclic graph.
[0063] Thereby, flexibility is obtained in the references between the supported map layers.
[0064] Some of the map layers may include a base map layer that defines nodes and links of a navigable network.
[0065] Thereby, the basic geometry of the network of navigable links is defined and can be referenced by other map layers.
[0066] The base map layer can define the coordinates of the nodes (e.g., latitude and longitude, but not limited thereto).
[0067] Thereby, the positions of the nodes of the network of navigable links are defined and can be referenced by other map layers.
[0068] The base map layer can define a road (such as a navigable link) that includes one or some of the nodes.
[0069] Thereby, the navigable links are defined and can be referenced by other map layers.
[0070] The one or some parent layers may include the base map layer.
[0071] Thereby, the stream processing is operable to perform consistency verification considering modifications to the base map layer.
[0072] The consistency verification may include a reference consistency verification for detecting a mismatch that is a reference mismatch between the base map layer and the child layer.
[0073] Thereby, the stream processing is operable to detect a reference mismatch problem that may exist due to a modification made to either the base map layer and / or any of its child layers (possibly including higher-generation child layers that reference object definitions in at least one map layer that is itself different from the base map layer). As used herein, a "higher-generation" child layer has a parent layer that is different from the base map layer as at least one of its parents, and is a child layer that can be directly or indirectly in a parent-child relationship with the base map layer.
[0074] Alternatively or additionally, the one or some parent layers may include a map layer different from the base map layer while referring to nodes and links defined by the base map layer.
[0075] Thereby, the stream processing is operable to perform a consistency verification that takes into account modifications in one or some parent layers different from the base map layer.
[0076] The consistency verification may include a reference consistency verification for detecting a mismatch that is a reference mismatch between the child layer and the map layer while referring to nodes and links defined by the base map layer and different from the base map layer.
[0077] Thereby, the stream processing is operable to detect a reference mismatch problem that may exist due to a modification to the map layer while referring to nodes and links defined by the base map layer and different from either the base map layer and / or any of its child layers.
[0078] The acyclic graph can define a hierarchical map layer structure having the base map layer as the root.
[0079] This enables hierarchical organization of dependencies between map layers, thereby facilitating prioritization of corrections.
[0080] The acyclic graph may include one or several map layers that refer to the base map layer and include one, several, or all of a turn restriction layer, a speed limit layer, a speed profile layer, a one-way layer, a road closure layer, a building layer, an address point layer, an interest point layer, a parking information layer, and an interest point layer.
[0081] Thereby, the output can be generated using information useful for performing various tasks related to route search, navigation, driving assistance, advanced driving assistance, and / or autonomous driving.
[0082] The acyclic graph may include one or several map layers that refer to the 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 road closure layer, a building layer, an address point layer, an interest point layer, a parking information layer, and an interest point layer.
[0083] Thereby, the output can be generated using information useful for performing various tasks related to route search, navigation, driving assistance, advanced driving assistance, and / or autonomous driving.
[0084] The output may include an output stream. The output stream may include a sequence of output messages.
[0085] Thereby, the stream processing is operable to provide the output stream. This is beneficial for the freshness of the output (e.g., map data) because when messages from the several streams are checked by the consistency verification, aggregated (if applicable), and / or used to correct referential integrity or other issues, the output becomes available.
[0086] The sequence of output messages may include several output messages each containing aggregated information from messages of at least two different ones of the several streams.
[0087] Thereby, the sequence of output messages includes, if possible, such aggregated information.
[0088] The sequence of output messages may include several other output messages each containing information based on messages contained in the same one of the several streams.
[0089] Thereby, as indicated by the several streams, corrections to map layers that cannot be aggregated with corrections to other map layers are provided within the output stream.
[0090] The processing system can receive the several streams from several map layer providing systems (such as several separate map layer providing systems).
[0091] Thereby, the different map layers can be provided by different map layer providing systems, further improving the flexibility in modifying the several map layers.
[0092] Each of the several map layer providing systems may be associated with a different one of the several map layers.
[0093] Thereby, the different map layers can be provided by different map layer providing systems, further improving the flexibility when modifying the several map layers.
[0094] The several map layer providing systems can be operable to perform corrections to map object definitions in different map layers independently of each other.
[0095] Thereby, the different map layers can be provided by different map layer providing systems, further improving the flexibility when modifying the several map layers.
[0096] Generating the output may include generating a first output for a first map product and a second output for a second map product.
[0097] Thereby, different map products can be generated based on the several streams.
[0098] The consistency verification can be performed separately for the first map product and the second map product.
[0099] Thereby, the stream processing can take into account that different streams may be required to generate the first map product and the second map product. Alternatively or additionally, the stream processing can take into account that different consistency verification instances may be useful, for example, that different requirements may exist regarding the freshness and / or quality (e.g., accuracy) of the first and second map products.
[0100] The method may include triggering or performing at least one action based at least on the output.
[0101] Thereby, the output (e.g., an output stream providing map data) is used to perform one or several actions.
[0102] The at least one action can include at least one control action to be executed by at least one map data consumer in response to the output.
[0103] Thereby, the output (e.g., an output stream providing map data) is used to execute one or several control actions.
[0104] The action can include one, several, or all of route search, route guidance, driving assistance function, advanced driving assistance function, autonomous driving function, and traffic flow control.
[0105] Thereby, the output (e.g., an output stream providing map data) is used to execute vehicle or other navigation-related functions.
[0106] According to one aspect of the present invention, a method for modifying map data is provided. The method includes obtaining, by a processing system, at least one stream indicating at least one modification of at least one of several map layers. The method includes executing, by the processing system, stream processing of the at least one stream. The stream processing includes integrity verification for verifying the integrity of the map layer modified as indicated by the stream. The stream processing includes generating an output based at least on the result of the integrity verification.
[0107] The method is associated with various effects and advantages. Information regarding the modification of the map layer is obtained as a stream. Therefore, it is not necessary for the modifications made to the map layer to be executed according to a pre-agreed timing (e.g., synchronously). The stream processing including consistency verification is operable to detect any inconsistencies that may be caused by the modification of the map layer or, optionally, and as described above, by the modification of other map layers. The stream processing can thereby reduce the risk that the output is affected by inconsistencies that may potentially be caused by the modification of the map layer or other map layers, or at least, for example, can prevent it from affecting inconsistencies that are unacceptable for safety reasons. Therefore, by using the stream processing including the consistency verification, significantly enhanced versatility is achieved when modifying the map layer. The map layer can be modified in a way that does not require temporal alignment (consistency) with the modifications of other map layers. The risk that the output (such as map data for use by a map data consumer) is damaged due to inconsistencies is reduced. Thereby, for example, a more versatile technique for modifying the map layer is provided while reducing the risk of inconsistencies between different map layers that affect the map data provided to a map data consumer (such as a system for route planning and / or route search, navigation, driving assistance, advanced driving assistance, and / or autonomous driving).
[0108] The method may include receiving several streams associated with several map layers. The stream processing may include performing the consistency verification based on the several streams.
[0109] Thereby, the risk that the output (such as map data for use by a map data consumer) is damaged due to an inconsistency in any of the several map layers is reduced.
[0110] The integrity verification may include identifying a discrepancy between a first map layer modified as indicated by a first stream among the several streams and a second map layer modified as indicated by a second stream among the several streams.
[0111] Thereby, the risk that the output (such as map data for use by a map data consumer) is corrupted due to discrepancies between the several map layers is reduced.
[0112] The integrity verification may include identifying, based on the several streams, a reference to an object definition deleted from one of the first and second map layers in the other of the first and second map layers.
[0113] Thereby, the risk that the output (such as map data for use by a map data consumer) is corrupted due to reference discrepancies between the several map layers is reduced.
[0114] The integrity verification may include identifying, based on the several streams, a definition of an object in one of the several map layers that already exists in the same map layer.
[0115] Thereby, the risk that the output (such as map data for use by a map data consumer) is corrupted due to logical or syntactic integrity problems is reduced.
[0116] The several map layers can form an acyclic graph of map layers.
[0117] Thereby, generality of dependencies between the map layers is achieved. It is possible for the map layers to form a hierarchical structure, but it is not necessary.
[0118] Each of the several streams may include data indicating a modification to one of several map layers to which the stream is associated. The several map layers include child layers and one or several parent layers. The several map layers include a map object definition, and the map object definition includes a parent layer map object definition in the one or several parent layers and a child layer map object definition in the child layer. The child layer map object definition includes a reference to a parent layer map object defined by the parent layer map object definition.
[0119] Thereby, the stream processing is applied to a processing stream indicating modifications to several map layers that reference each other.
[0120] Additional features that may be implemented in the method, and the effects thereby achieved respectively, correspond to the features discussed in relation to the method according to the first aspect of the present invention.
[0121] According to another aspect of the present invention, when executed by at least one processing circuit, machine-readable instruction code is disclosed that includes instructions for causing the at least one processing circuit to execute the method of any one aspect or embodiment.
[0122] According to another aspect of the present invention, a data carrier is disclosed that includes machine-readable instruction code that includes instructions for causing at least one processing circuit to execute the method of any one aspect or embodiment when executed by the at least one processing circuit.
[0123] The data carrier may include a non-transitory storage medium storing the machine-readable instruction code.
[0124] According to a further aspect, a processing system for modifying map data is provided. The processing system comprises at least one interface operable to obtain (e.g., receive) several streams. Each of the several streams includes data indicating a modification to one of several map layers associated with the stream. The several map layers include child layers and one or several parent layers. The several map layers include map object definitions, and the map object definitions include parent layer map object definitions in the one or several parent layers and child layer map object definitions in the child layers. The child layer map object definitions include references to parent layer map objects defined by the parent layer map object definitions. The processing system comprises at least one processing circuit operable to execute stream processing of the several streams. The processing system is operable to include integrity verification for verifying the integrity of the child layer map object definitions modified as indicated by the streams associated with the child layer and of the parent layer map object definitions modified as indicated by at least another one of the several streams associated with the one or several parent layers, wherein the stream processing is so modified. The processing system is operable to include generating an output based at least on the result of the integrity verification of the stream processing.
[0125] Various effects and advantages are associated with the processing system. Information regarding a modification to any one of the several map layers is obtained as a stream. Thus, it is not necessary for the modifications made to different map layers, as indicated by the stream associated with the map layer, to be executed according to a pre-agreed timing (e.g., synchronously). The processing system is operable to perform stream processing including integrity verification, thereby detecting any inconsistencies that may be caused by modifications to different map layers that are executed asynchronously. The processing system can thereby reduce the risk that the output is adversely affected by inconsistencies that may potentially be caused by modifications to different map layers, or at least reduce the risk that the output is affected by inconsistencies that are unacceptable for safety reasons, for example.
[0126] Thus, the processing system operable to perform the stream processing including the integrity verification provides significantly enhanced generality when modifying the map layer. The map layer can be modified in a way that does not require temporal alignment of the modifications of the various map layers. The risk that the output (such as map data for use by a map data consumer) is corrupted due to inconsistencies is reduced. Thereby, a more general technique for modifying map data in various map layers is provided, while reducing the risk of inconsistencies between different map layers that affect the map data provided to, for example, a map data consumer (such as a system for route planning and / or route search, navigation, driving assistance, advanced driving assistance, and / or autonomous driving).
[0127] The processing system may be operable to execute the method of any aspect or embodiment disclosed herein.
[0128] According to a further aspect, a processing system for modifying map data is provided. The processing system comprises at least one interface operable to obtain (e.g., receive) at least one stream indicating a modification to at least one of several map layers. The processing system comprises at least one processing circuit operable to perform stream processing of the at least one stream. The stream processing includes integrity verification to verify the integrity of the map layer modified as indicated by the stream. The stream processing includes generating an output based at least on the result of the integrity verification.
[0129] Various effects and advantages are associated with the processing system. Information regarding the modification of the map layer is obtained as a stream. Thus, it is not necessary for the modifications made to the map layer to be executed according to a pre-agreed timing (e.g., synchronously). The stream processing including integrity verification is operable to detect any discrepancies that may be caused by the modification of the map layer or, optionally and as described above, by the modification of other map layers. The stream processing can thereby reduce the risk that the output is affected by discrepancies that may potentially be caused by the modification of the map layer or other map layers or, at least, discrepancies that are unacceptable, for example, for safety reasons. Thus, by using the stream processing including the integrity verification, significantly enhanced versatility is achieved when modifying map layers. The map layer can be modified in a way that does not require temporal alignment with the modifications of other map layers. The risk that the output (such as map data for use by a map data consumer) is corrupted due to discrepancies is reduced. Thereby, for example, a more versatile technique for modifying map layers is provided while reducing the risk of discrepancies between different map layers that affect the map data provided to a map data consumer (such as a system for route planning and / or route search, navigation, driving assistance, advanced driving assistance, and / or autonomous driving).
[0130] The processing system may be operable to execute a method of any aspect or embodiment disclosed herein.
[0131] According to a further aspect, a system is provided that includes the processing system and at least one map data consumer. The processing system is operable to provide the output for use by the at least one map data consumer.
[0132] Thereby, the output (e.g., map data) is made available for use by the map data consumer. The map data consumer may include a device or vehicle system operable to execute one, several, or all of route finding, route guidance, driving assistance functions, advanced driving assistance functions, autonomous driving functions, traffic flow control, based at least on the output.
[0133] The at least one map data consumer may include a control circuit operable to control vehicle actuators and / or a vehicle human-machine interface based at least on the output.
[0134] Thereby, the output (e.g., map data) is made available for vehicle control operations.
[0135] Thereby, the output (e.g., an output stream providing map data) is used to execute vehicle or other navigation-related functions.
[0136] The system may include several map layer providing systems operable to provide the several streams. Each of the map layer providing systems may be associated with at least one (e.g., exactly one) of the several map layers.
[0137] Thereby, the flexibility for modifying map data is further enhanced.
[0138] The map layer providing system can include at least one map layer providing system operable to modify map layers of various map layers according to observations captured using detection devices (e.g., links of a navigable network, traffic signs, and / or traffic conditions). The detection devices may be installed in a group of probes such as vehicle probes.
[0139] Thereby, appropriate modification of the map layer to improve the quality of the output (e.g., the accuracy of the output compared to the actual infrastructure situation) can be performed automatically, for example.
[0140] Some of the map layer providing systems may be operable to perform map layer modification asynchronously, i.e., without temporal alignment between the some map layer providing systems.
[0141] Thereby, the modification in the map layer can be carried out without the need for temporal alignment with the other map layer providing systems. This is beneficial for the freshness of the output provided.
[0142] Some of the map layer providing systems may be operable such that the stream among the some streams associated with the sublayer may include a first sequence of messages. Some of the map layer providing systems may be operable such that at least another one of the some streams associated with the one or some parent layers may include a second sequence of messages. Some of the map layer providing systems may be operable such that the message timing of the first sequence of messages is independent of the message timing of the second sequence of messages.
[0143] Accordingly, information regarding a modification in any one of the several map layers can be provided at a timing that depends on when the modification in each respective map layer is executed, without requiring temporal alignment with the modification in the parent layer as reflected by the second sequence of messages. This is beneficial for the freshness of the output (e.g., the map data provided to the map data consumer).
[0144] The several map layer providing systems may include a first message that provides information regarding a child layer modification triggered by a parent layer modification of a parent layer of one or several of the parent layers in the first stream of messages, where a second message of the second sequence of messages may be operable to provide information regarding the parent layer modification, where the processing system receives the first message at a different time than the second message (e.g., with a delay exceeding the processing time for creating the child layer modification in response to the parent layer modification).
[0145] Thereby, higher flexibility is obtained at the timing at which the several map layers can be modified.
[0146] The several map layer providing systems may be operable such that the several map layers define an acyclic graph.
[0147] Thereby, flexibility is obtained in the references between the supported map layers.
[0148] The several map layer providing systems may be operable such that the several map layers include a base map layer that defines nodes and links of a navigable network.
[0149] Thereby, the basic geometry of the network of navigable links is defined and can be referenced by other map layers.
[0150] The several map layer providing systems may be operable such that the acyclic graph defines a hierarchical map layer structure that fundamentally includes a base map layer.
[0151] Thereby, dependencies between map layers can be hierarchically organized, thereby facilitating prioritization of modifications.
[0152] The several map layer providing systems may be operable such that the acyclic graph includes one, several, or all of the turn restriction layer, speed limit layer, speed profile layer, one-way layer, no-entry layer, building layer, address point layer, point of interest layer, parking information layer, point of interest layer, with reference to the base map layer and one or several map layers.
[0153] Thereby, the output can be generated using information useful for performing various tasks associated with route search, navigation, driving assistance, advanced driving assistance, and / or autonomous driving.
[0154] According to a further embodiment, there is disclosed a method, a processing system, and / or the use of machine-readable instruction code for generating map data used by a map data consumer, the map data including or being based on an output, the output including an output stream, and the several streams from which the output is generated being asynchronous.
[0155] According to a further embodiment, there is disclosed a method of performing a control operation mounted on a vehicle based on map data generated from a map layer that is asynchronously modified, the map data including or being based on an output generated using a method, a processing system, or machine-readable instruction code for modifying the map data.
[0156] An object of an embodiment of the present invention is to provide a method, a system, and / or machine-readable instruction code for improving flexibility when modifying map data. Any object is to provide a technique for modifying map data that does not require modification of a map layer synchronized with other map layers and / or improves the freshness of map data provided for use by a device when performing map-based tasks.
[0157] According to an embodiment of the present invention, a method and machine-readable instruction code described in the independent claims are provided. The dependent claims define preferred and advantageous embodiments.
[0158] According to one aspect of the present invention, a method for modifying map data is provided. The method includes modifying map layer data by a map layer providing system that provides map layer data. The map layer data includes a map object definition. The map object definition includes a reference to a parent layer map object defined by one or some parent layers of the map layer, and / or a map object defined by the map object definition is referenced by a child layer map object definition in one or some child layers 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 providing, by the map layer providing system, data indicating the modification in the map layer data for use when executing at least one action based at least on the map layer data modified by the modification, and the data indicating the modification is provided in a stream.
[0159] A stream refers to the flow of data, and the processing system is operable to process the messages of the stream one by one. The relative timing between the messages within the stream can be variable. The temporal characteristics of the stream mean that the processing system that receives the stream is operable to process the messages of the various streams even when the messages arrive at irregular intervals and / or with different delays between them.
[0160] The method is associated with various effects and advantages. Information regarding the correction of the map layer data is provided as a stream. Therefore, it is not necessary for the corrections made to the map layer data to be executed according to a pre-agreed timing and / or to be temporally aligned with corrections to other map layers otherwise. Outputting data indicating the corrections within the stream in response to the corrections having been made provides enhanced data freshness.
[0161] The stream may include a sequence of messages. Each of the messages may be associated with one of the corrections. The map layer providing system can generate and output each of the messages within the sequence in response to making the corrections with which the messages are associated.
[0162] Thereby, information regarding the corrections in the map layer can be provided without the need to temporally align it with the corrections made to other map layers and / or a pre-agreed transmission schedule.
[0163] Each of the messages may include a unique identifier of the map object modified by the correction with which the message is associated.
[0164] Thereby, the stream processing that processes the stream can identify which map object each of the respective corrections relates to.
[0165] Alternatively or additionally, each of the messages may include version data of the map layer.
[0166] This facilitates version management of the map layer data. Stream processing that processes the stream indicating modifications to other map layers and other streams can more easily guarantee consistency with respect to the version of the map layer data.
[0167] The map layer providing system can output the messages in the sequence at a timing independent of modification of the parent layer map object definition of the parent layer map object and / or modification of the child layer map object definition.
[0168] Thereby, it is not necessary that the modifications made to the map layer data be executed according to a pre-agreed timing and / or be aligned in time with modifications to other map layers. Outputting data indicating modifications in the stream in response to the modifications having been made provides enhanced data freshness.
[0169] The map layer providing system can perform at least one first modification of the at least one modification in response to at least one mismatch between the map layer data and the parent layer map object definition of the parent layer map object and / or the child layer map object definition, and the at least one first modification corrects the at least one mismatch.
[0170] Thereby, problems of referential integrity can be addressed. The quality of the map data is improved by reducing the risk that map data having integrity problems is provided to map data consumers.
[0171] The method can include receiving, by the map layer providing system, one or several parent layer streams indicating a modification of a parent layer map object definition for the parent layer map object. The at least one inconsistency includes a reference inconsistency caused by at least one of the modifications of the parent layer map object definition.
[0172] Thereby, problems of reference integrity can be addressed. The quality of the map data is improved by reducing the risk that map data having integrity problems is provided to map data consumers.
[0173] The stream and the one or several parent layer streams can be asynchronous.
[0174] Thereby, flexibility in updating different map layers is improved. The map layer and the one or several parent layers can be updated at different times, resulting in different relative timings of messages in the stream and at least one of the parent layer streams.
[0175] The map layer providing system can be operable to perform at least one second modification of the at least one modification at a time independent of the modification of the parent layer map object definition.
[0176] Thereby, flexibility in updating different map layers is improved. The map layer and the one or several parent layers can be updated at different times, resulting in different relative timings of messages in the stream and at least one of the parent layer streams.
[0177] The at least one inconsistency can include a reference inconsistency caused by at least one of the modifications.
[0178] This enables addressing the issue of referential integrity. The quality of the map data is improved by reducing the risk that map data with integrity issues is provided to map data consumers.
[0179] The method may include receiving, from a processing system, a notification indicating the at least one discrepancy. The processing system can process the stream to perform integrity verification of the map layer data corrected by the correction.
[0180] This enables the map layer providing system to receive feedback regarding potential integrity issues. Receiving the feedback from a processing system that performs stream processing of several streams enables detecting and correcting a more diverse range of integrity issues, for example, by facilitating the detection of referential integrity issues.
[0181] The method may include processing, by the processing system, the stream and the one or several parent layer streams to perform the integrity verification.
[0182] Thereby, the processing system can perform integrity verification by analyzing, based on the stream and the one or several parent layer streams, the corrections in the map layer and the one or several parent layers when the information regarding the correction becomes available in the stream and the one or several parent layer streams. Thus, integrity issues can be addressed in a timely manner.
[0183] The method may include providing, by the map layer providing system, an acknowledgment to at least one other map layer providing system of the one or several parent layers for verifying the correction of the discrepancy by the at least one first correction.
[0184] This enables signaling the correction of the consistency problem to the other map layer providing system. Thereby, while reducing the risk of consistency problems, different map layers can be processed by different map layer providing systems.
[0185] The method can include performing stream processing of the stream by a stream processing system to generate an output stream of map data for use by a map data consumer (such as a system for route planning and / or route search, navigation, driving assistance, advanced driving assistance, and / or autonomous driving).
[0186] Therefore, an output stream of map data can be generated at least based on the stream using stream processing technology. Thereby, the freshness of the map data is improved.
[0187] The stream processing can include consistency verification operable to confirm that the correction performed by the map layer system does not cause a consistency problem.
[0188] Thereby, the risk that the map data provided to the map data consumer is affected by corrections that create consistency problems is reduced. The quality of the map data is improved.
[0189] The stream processing can include binding of several streams, and the several streams can include the stream output by the map layer providing system and at least one other stream indicating a modification of at least one other map layer (for example, at least one of a parent layer and / or a child layer). The binding can include combining information from the several streams, processing their messages when the several streams arrive, and / or determining whether messages from different streams include information regarding the same map object that can be combined into the output stream messages of the output stream of the binding.
[0190] Thereby, information from different streams can be combined in the stream processing that is processed when the received message is received.
[0191] The binding can include generating an output including an output stream.
[0192] Thereby, the output stream is generated from the several streams.
[0193] The stream output by the map layer providing can include a first sequence of messages. The at least one other stream indicating a modification of at least one other map layer can include a second sequence of messages. The message timing of the first sequence of messages can be independent of the message timing of the second sequence of messages.
[0194] Thereby, information regarding the modification in the map layer can be provided at a timing that depends on when the modification in each respective map layer is executed without requiring temporal alignment with the modification in the parent layer and / or the child layer. This is beneficial for the freshness of the output (for example, the map data provided to the map data consumer).
[0195] The stream processing can include processing the messages of the first sequence of messages, one by one, as they are received by the processing system. The stream processing can include processing the messages of the second sequence of messages, one by one, as they are received by the processing system.
[0196] Thereby, the processing system is operable to generate an output (such as map data) by processing the messages of the first sequence of messages and the second sequence of messages as they arrive. This is beneficial for the freshness of the output (for example, the map data provided to a map data consumer). It is not required for the processing system to wait for the reception of all the messages of the first sequence of messages and the second sequence of messages before starting the processing (such as integrity verification).
[0197] The first stream of messages can include a first message providing information regarding a modification of the map layer triggered by a modification of a parent's parent layer of the map layer. The second message of the second sequence of messages provides information regarding the parent layer modification, and the first message is generated and output at a different time than the second message (for example, with a delay exceeding the processing time for performing the child layer modification in response to the parent layer modification).
[0198] Thereby, higher flexibility is obtained at the timing at which the several map layers can be modified.
[0199] The stream processing can include generating an output message in response to confirming that the first message and the second message have passed the integrity verification.
[0200] Accordingly, it is possible to generate an output message without having to wait for unprocessed messages of the first sequence of messages and the second sequence of messages using a message that provides information regarding matching corrections. This is beneficial in order to enable the freshness of the output (e.g., the freshness of map data) and / or the sources of the several streams to operate independently. There is no need to maintain synchronization between the sources of the several streams. This improves scalability.
[0201] The stream processing can include triggering a correction action in response to detection of a mismatch in the consistency verification.
[0202] Accordingly, the risk that the output is affected by map layer data modified to have a consistency issue is reduced. Thereby, the quality of the output (e.g., map data) is improved.
[0203] The stream processing may include storing a data item that provides information regarding the mismatch in response to the detection of the mismatch.
[0204] Accordingly, the data item remains available for the stream processing to resolve the mismatch, for example, by waiting for at least one subsequent message in at least one of the several streams that resolved the mismatch.
[0205] The data item can be stored at least temporarily after the detection of the mismatch.
[0206] Accordingly, the data item remains available for the stream processing to resolve the mismatch, for example, by waiting for at least one subsequent message in at least one of the several streams that resolved the mismatch.
[0207] The data item may be temporarily stored after the detection of the inconsistency, and the method may include deleting the data item by the processing system according to a deletion criterion (such as a time-based deletion criterion).
[0208] Thereby, the data item remains available for the stream processing for resolving the inconsistency during the period after the detection of the inconsistency. On the other hand, when a new inconsistency is detected, it frees up storage space for continuously (i.e., continuously) storing other data items.
[0209] The data item may be or indicate the payload data in the message determined to cause the inconsistency.
[0210] Thereby, this information remains available for the stream processing for resolving the inconsistency during the period after the detection of the inconsistency.
[0211] The stream processing may include temporarily preventing the refinement of the output message based on the message determined to cause the inconsistency in response to the inconsistency.
[0212] Thereby, the risk of providing potentially incorrect output (such as map data) is reduced.
[0213] The stream processing may include monitoring the several streams before triggering the correction action in response to the detection of the inconsistency.
[0214] Thereby, it is possible to monitor the several streams to determine whether the inconsistency is improved by another correction in another layer. Thereby, the asynchrony of the messages in the several streams and / or the asynchrony of the corrections in the various map layers are taken into account.
[0215] Monitoring the several streams may include, based on the data item, after detecting the inconsistency, confirming that the inconsistency remains unaddressed by the correction indicated by the several streams during a monitoring time interval.
[0216] Thereby, the several streams are monitored to determine whether the inconsistency is improved by another correction in another layer. This improves the quality of the output (e.g., map data).
[0217] The stream processing may include generating an output message based on at least one of the data items in response to confirming that the inconsistency is addressed by the correction indicated by the several streams during a monitoring time interval after detecting the inconsistency.
[0218] Thereby, confirming that the inconsistency is resolved triggers the generation of an output message (such as an output message including map data based on at least two different layers among the several layers). This is beneficial for both the accuracy and freshness of the output (e.g., map data).
[0219] The correction action may include correcting incorrect references to map objects in different map layers in the map object definition of the map layer.
[0220] Thereby, the stream processing operates to trigger the correction of reference integrity problems. This improves the accuracy of the generated output (e.g., map data).
[0221] Alternatively or additionally, the correction action may include receiving feedback from the map layer providing system based at least on the inconsistency.
[0222] Thereby, the stream processing is operable to trigger the provision of feedback to enable the map layer providing system to address the at least one discrepancy. This improves the accuracy of the generated output (e.g., map data).
[0223] The feedback may optionally be received when the map layer system was the source of the at least one message and when causing the discrepancy.
[0224] Thereby, the stream processing is operable to trigger the provision of feedback to enable the map layer providing system to address the at least one discrepancy. This improves the accuracy of the generated output (e.g., map data).
[0225] Alternatively or additionally, the correction action can include changing at least one type of the correction from a first type of correction to a second type of correction, at least one of the corrections being a root cause of the discrepancy, and changing the type resolves the discrepancy.
[0226] Thereby, the correction of incorrect corrections can be performed. This improves the accuracy of the generated output (e.g., map data).
[0227] The first type of correction and the second type of correction can each be selected from the group including addition of an object definition, deletion of an object definition, and change of an object definition.
[0228] Thereby, incorrect operations performed on the map layer can be corrected. This improves the accuracy of the generated output (e.g., map data).
[0229] The first type of correction and the second type of correction may each be selected from the group consisting of addition of an object definition, deletion of an object definition, and change of an object definition.
[0230] Thereby, incorrect operations performed on the map layer can be corrected, which improves the accuracy of the generated output (e.g., map data).
[0231] Alternatively or additionally, the correction action may include discarding duplication of map object creation, duplication of map object deletion, and / or correction of non-existent map objects.
[0232] Thereby, specific types of incorrect operations performed on the map layer can be processed in a way that reduces their risk of adversely affecting the output (e.g., map data).
[0233] Generating the output by the processing system may include aggregating at least two corrections of the map object definition for the same map object into an aggregated correction. The output can be based at least on the aggregated correction, and the aggregating is performed based at least on the result of the consistency verification.
[0234] Thereby, an output that combines information from the several map layers (such as map data for use by a map data consumer) can be generated. The stream processing including the consistency verification provides advantages with respect to both the freshness and quality (e.g., accuracy) of the output.
[0235] The consistency verification may include a reference consistency verification that checks that the correction of the sub-layer map object definition is referentially consistent with the map object definition.
[0236] Thereby, the stream processing is used to reduce the risk that reference consistency problems will adversely affect the quality (e.g., map data) of the output.
[0237] Alternatively or additionally, the consistency verification may include a logical consistency verification.
[0238] Thereby, the stream processing operates to reduce the risk that logical consistency problems affect the quality of the output (e.g., map data). The logical consistency problems can include consistency problems that exist within a layer and do not depend on references between layers.
[0239] Alternatively or additionally, the consistency verification can include a syntactic consistency verification. The syntactic consistency verification may include verifying that the child layer map object definitions and the parent layer map object definitions, each modified as indicated by the several streams, conform to a set of syntactic rules, logical rules, and / or other rules that do not necessarily depend on reference consistency between different map layers.
[0240] Thereby, the stream processing can operate to reduce the risk that syntactic consistency problems affect the quality of the output (e.g., map data).
[0241] The map layer and the one or several parent layers and / or the one or several child layers may define an acyclic graph.
[0242] Thereby, flexibility is obtained in the references between the supported map layers.
[0243] The acyclic graph may include a base map layer that defines nodes and links of a navigable network.
[0244] Thereby, the basic geometry of a network of navigable links is defined and can be referenced by other map layers.
[0245] The base map layer can define the coordinates of the nodes (e.g., latitude and longitude, but not limited thereto).
[0246] Thereby, the positions of the nodes of the network of navigable links are defined and can be referenced by other map layers.
[0247] The base map layer can define roads (such as navigable links) including one or more of the nodes.
[0248] Thereby, the navigable links are defined and can be referenced by other map layers.
[0249] The acyclic graph can define a hierarchical map layer structure that fundamentally includes the base map layer.
[0250] Thereby, the dependencies between map layers can be hierarchically organized, thereby facilitating the prioritization of modifications.
[0251] The acyclic graph can include one or several map layers that reference the base map layer and include one, several, or all of a turn restriction layer, a speed limit layer, a speed profile layer, a one-way layer, a road closed layer, a building layer, an address point layer, a point of interest layer, a parking information layer, and a point of interest layer.
[0252] Thereby, the output can be generated using information useful for performing various tasks associated with route search, navigation, driving assistance, advanced driving assistance, and / or autonomous driving.
[0253] The non-touring graph refers to the base map layer and may include one or several map layers selected from the group consisting of a turn restriction layer, a speed limit layer, a speed profile layer, a one-way layer, a no-through-road layer, a building layer, an address point layer, an interest point layer, a parking information layer, and an interest point layer.
[0254] Thereby, the output can be generated by utilizing information useful for performing various tasks associated with route search, navigation, driving assistance, advanced driving assistance, and / or autonomous driving.
[0255] The output can include an output stream. The output stream may include a sequence of output messages.
[0256] Thereby, the stream processing is operable to provide the output stream based at least on the stream provided by the map layer providing system. This is beneficial for the freshness of the output (e.g., map data) because when messages from the several streams are checked by the integrity verification, aggregated (if applicable), and / or used to correct referential integrity or other problems, the output becomes available.
[0257] The processing system can receive several streams. The several streams may include the stream provided by the map layer providing system. The several streams may include one or several other streams provided by one or several other map layer providing systems (such as several separate map layer providing systems).
[0258] Thereby, different map layers can be processed by different map layer providing systems, further improving the flexibility in modifying the several map layers.
[0259] Each of the several map layer providing systems may be associated with a different one of the several map layers.
[0260] Thereby, the different map layers may be provided by different map layer providing systems, and the flexibility in modifying the several map layers is further improved.
[0261] The several map layer providing systems may be operable to perform modifications to map object definitions in different map layers that are independent of each other.
[0262] Thereby, the different map layers may be provided by different map layer providing systems, further improving the flexibility in modifying several map layers.
[0263] Generating the output may include generating a first output for a first map product and a second output for a second map product.
[0264] Thereby, different map products can be generated based on the several streams.
[0265] The consistency verification may be performed separately for the first map product and the second map product.
[0266] Thereby, the stream processing can take into account that different streams may be required to generate the first map product and the second map product. Alternatively or additionally, the stream processing can consider that different consistency verification instances may be useful, for example, due to different requirements regarding the freshness and / or quality (e.g., accuracy) of the first and second map products.
[0267] The method may include triggering or performing at least one action based at least on the output.
[0268] Thereby, the output (e.g., an output stream providing map data) is used to perform one or several actions.
[0269] The at least one action can include at least one control action performed by at least one map data consumer in response to the output.
[0270] Thereby, the output (e.g., an output stream providing map data) is used to perform one or several control actions.
[0271] The action can include one, several, or all of route search, route guidance, driving assistance function, advanced driving assistance function, autonomous driving function, and traffic flow control.
[0272] Thereby, the output (e.g., an output stream providing map data) is used to perform vehicle or other navigation-related functions.
[0273] According to another aspect of the present invention, when executed by at least one processing circuit, machine-readable instruction code is disclosed that includes instructions for causing the at least one processing circuit to execute the method of any one aspect or embodiment.
[0274] According to another aspect of the present invention, a data carrier including machine-readable instruction code that includes instructions for causing at least one processing circuit to execute the method of any one aspect or embodiment when executed by at least one processing circuit is disclosed.
[0275] The data carrier may include a non-transitory storage medium storing the machine-readable instruction code.
[0276] According to a further aspect, a map layer providing system for modifying map data is provided. The map layer providing system is operable to provide map layer data. The map layer providing system is operable to modify the map layer data. The map layer data includes a map object definition. The map object definition includes a reference to a parent layer map object defined by one or some parent layers of the map layer, and / or the map object defined by the map object definition is referenced by a child layer map object definition in one or some child layers 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 map layer providing system is operable to provide data indicating the modification in the map layer data for use when executing at least one action based at least on the map layer data modified by the modification, and the data indicating the modification is provided in a stream.
[0277] Various effects and advantages are associated with the map layer providing system. The map layer providing system is operable such that information regarding the modification of the map layer data is provided as a stream. Thus, it is not necessary for the map layer providing system to modify the map layer data according to a pre-agreed timing and / or in a manner that is temporally aligned (matched) with the modification of other map layers. Outputting data indicating the modification within the stream in response to the modification having been made provides enhanced data freshness.
[0278] The map layer providing system may be operable to execute the method of any aspect or embodiment disclosed herein.
[0279] The processing system may be operable to execute the methods of any aspect or embodiment disclosed herein.
[0280] According to a further aspect, a system is provided that includes the map layer providing system, a processing system, and at least one map data consumer. The processing system is operable to perform stream processing of the stream to generate an output for use by the at least one map data consumer.
[0281] Thereby, the output (e.g., map data) is made available for use by the map data consumer using stream processing techniques. The map data consumer may be, or may include, a device or vehicle system operable to perform one, some, or all of route finding, route guidance, driving assistance functions, advanced driving assistance functions, autonomous driving functions, traffic flow control based at least on the output.
[0282] The at least one map data consumer can include a control circuit operable to control vehicle actuators.
[0283] Thereby, the output (e.g., map data) is made available for vehicle control operations.
[0284] Alternatively or additionally, the control circuit may be operable to control a human machine interface based at least on the output.
[0285] Thereby, the output (e.g., an output stream providing map data) is used to perform vehicle or other navigation related functions.
[0286] The system may comprise one or several other map layer providing systems, each of which is operable to provide a stream indicating corrections 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.
[0287] This further enhances the flexibility for modifying map data.
[0288] The map layer providing system and / or the one or several other map layer providing systems may comprise at least one map layer providing system operable to modify map layer data based on observations captured using sensing devices (e.g., links of a navigable network, traffic signs, and / or traffic conditions). The sensing devices may be installed in a group of probes such as vehicle probes.
[0289] Thereby, appropriate corrections to the map layer that improve the quality of the output (e.g., the accuracy of the output compared to the actual infrastructure situation) can be performed, for example, automatically.
[0290] The map layer providing system and the one or several other map layer providing systems are asynchronous, i.e., without temporal alignment.
[0291] Thereby, corrections to the map layer can be implemented without the need for the map layer providing system to be temporally aligned with the one or several other map layer providing systems. This is beneficial for the freshness of the provided output.
[0292] The some map layer providing systems may be operable such that the streams of the some streams associated with the child layer may include a first sequence of messages. The some map layer providing systems may be operable such that at least another one of the some streams associated with the one or some parent layers may include a second sequence of messages. The some map layer providing systems may be operable such that the message timing of the first sequence of messages is independent of the message timing of the second sequence of messages.
[0293] According to a further embodiment, there is disclosed a use of the method, the map layer providing system, and / or the machine-readable instruction code for generating map data for use by a map data consumer, the map data being at least based on the stream.
[0294] According to a further embodiment, there is disclosed a method of performing a control operation mounted on a vehicle based on map data, the map data being based on the stream generated using the method of modifying map data, the map layer providing system, or the machine-readable instruction code.
[0295] The control operation can include an actuator control operation.
[0296] The technology disclosed herein can be used for, but is not limited to, navigation, route finding, driving assistance, and autonomous driving functions.
Brief Description of the Drawings
[0297] Embodiments of the present invention are described with reference to the drawings, where like or corresponding reference numerals indicate elements having like or corresponding configurations and / or functions.
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Figure 22
Figure 23
Figure 24
Figure 25
Figure 26
Figure 27
Figure 28
Figure 29
Figure 30
Figure 31
Figure 32
Figure 33
Figure 34
Figure 35
Figure 36
Figure 37
DETAILED DESCRIPTION OF THE INVENTION
[0298] Hereinafter, embodiments of the present invention will be described in detail. Although some embodiments are described in relation to specific exemplary map layers, the embodiments are not limited thereto.
[0299] The features of the embodiments can be combined with each other unless otherwise specified.
[0300] 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 several map layers. The techniques disclosed herein are operable to provide different types of map data, for example, map data for different sets of vehicles and / or different objects (such as vehicle navigation and non-vehicle navigation).
[0301] The availability of different map layers in electronic map data is useful for various applications. Different map layers can be combined to generate an output, and it becomes possible to customize the map data based on the needs of a specific application. Examples of such map layers include, but are not limited to, road network elements, restrictions (such as speed limits, turn restrictions, etc.), points of interest, street names, names of points of interest. The availability of multiple map layers provides opportunities for customization and is beneficial for map data providers.
[0302] Different map layers can be maintained by different map layer providers and / or under the control of different map layer providers. This has various advantages, such as being able to utilize the quality and / or freshness of the provider's data for a map layer (such as restrictions), and being able to utilize the quality and / or freshness of another provider's data for another map layer (such as points of interest or names). When different map layers are managed by different map layer providers and / or under the control of different map layer providers, it has conventionally been important for modifications in different map layers to be performed in an adjusted manner to ensure consistency. This can be done by performing the modifications in a synchronized manner. However, such an approach limits the flexibility when updating individual map layers. Such an approach may also require some map layer modifications to be postponed until the map layers can be updated in a synchronized manner.
[0303] The techniques disclosed herein are operable to modify map data based on modifications to multiple map layers. The techniques disclosed herein use stream processing to process several streams, each indicating a modification to a different map layer, to generate an output. Stream processing can reduce and even eliminate the need to synchronize modifications in different map layers with each other. At the same time, a modification to one of the map layers can be caused by a different one of the map layers.
[0304] 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 made and data is provided to 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 generate an output such as a stream of map data. Stream-based techniques can even reduce or eliminate the need to synchronize modifications in various map layers with each other. However, a modification in one of the map layers can still be caused by a different modification in one of the map layers.
[0305] The techniques disclosed herein are operable to provide stream processing that reduces or eliminates the risk that the output is based on information in one or several map layers that causes consistency problems such as reference integrity, logical integrity, and / or syntactic integrity problems. For this purpose, the techniques disclosed herein are operable to perform stream processing that includes consistency verification. Consistency verification can include, but is not limited to, reference integrity verification.
[0306] As used herein, "stream" refers to a flow of data, and stream processing is operable to process messages of the stream one after another. The relative timing of messages in the stream can be variable. The variability exists both within a stream and between different streams. Thus, a stream can include several streams that are distinguished from each other by the relative timing of messages (e.g., different delays between consecutive messages in various streams). Stream processing continuously (i.e., continuously) receives messages from each of the streams.
[0307] As used herein, a stream is called "asynchronous" when the relative timing of messages within the stream is different.
[0308] As used herein, "stream processing" includes processing and analyzing messages as they are received. Instead of waiting for batch processing, stream processing enables messages containing information regarding modifications to map layers reflected in the messages contained in the received stream to be processed upon arrival. This reduces the time delay between the receipt of a message as input to stream processing and the provision of a message as output of stream processing. The temporal aspect of the stream means that the processing system is operable to process messages of various streams even if the messages may arrive at irregular intervals and / or with various delays between them.
[0309] As used herein, a "processing system" operable to perform stream processing may be implemented as a distributed system, e.g., as a distributed architecture for processing large amounts of received data.
[0310] As used herein, the "output" of stream processing may include an output stream. The output stream may include output messages having variable delays between successive output messages. The output may include map data for use by a map data consumer and / or may be operable to provide map data to a map data consumer. The output may include output messages containing aggregated information from at least two different map layers.
[0311] Stream processing may include binding. As used herein, "binding" may include combining information from several streams, processing messages of several streams as they arrive, and determining whether messages from different streams contain information regarding the same map object such that the messages can be combined into an output stream message of the output stream of the binding.
[0312] As used herein, "map data consumer" refers to any device or system operable to process map data to perform an action. Examples of map data consumers include, but are not limited to, mobile communication terminals (such as smartphones), vehicle processing systems, vehicles, navigation devices, and wearables. A map data consumer may be operable to perform control actions, for example, to control vehicle actuators and / or a human machine interface (HMI).
[0313] As used herein, "map layer providing system" operates as a source of several streams. The map layer providing system may be implemented in separate hardware, but need not necessarily be implemented. The map layer providing system may be implemented in a distributed architecture, and the distributed architecture may optionally implement stream processing.
[0314] As used herein, "map object definition" refers to a definition included in at least one of the map layers. There can be different types of map object definitions, such as a first type (e.g., for defining nodes of a navigable network), a second type (e.g., for defining links of a navigable network), and a third type (e.g., for defining information regarding objects of the first or second type, or other objects of a third type). The first type of map object definition (e.g., "node type") can define the coordinates (such as, but not limited to, latitude and longitude) of each node. The second type of map object definition (e.g., "road type") can define at least which nodes are part of a road, and note that a "road" can optionally be associated with attributes and can also be reasonably defined by a single node, for example when the road defines a turn area or a roundabout. The third type of map object definition (which can also be called a relationship) can define characteristics such as names that can be associated with objects of the first or second type, or even objects of a third type (such as the name of a point of interest (POI)), and thus can refer to objects of any of the first, second, or third types. Other map object definitions may be used.
[0315] Here, "modification" of a map object definition can be any one of adding a new map object definition, deleting an existing map object definition, or changing an existing map object definition.
[0316] As used herein, "syntactic" consistency refers to syntax in the field of databases, not in the field of linguistics.
[0317] FIG. 1 is a schematic diagram of a processing system 20 operable to perform a method of modifying map data.
[0318] The processing system 20 comprises at least one interface 21 operable to receive a number of streams 50, 60. The processing system 20 comprises at least one processing circuit 30 operable to execute 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 quantum bit (qubit) and / or a circuit including quantum gates.
[0319] Each of the streams 50, 60 includes a plurality of messages. It is not required that the messages within the streams 50, 60 be received at a given timing. Some of the streams 50, 60 can be asynchronous in the sense that the timing and even the relative timing of the messages within different streams 50, 60 need not be aligned. The messages in each of some of the streams 50, 60 indicate a modification of a map layer. Each of some of the streams 50, 60 can include messages indicating a modification of only a single map layer. Different streams 50, 60 can relate to different map layers among a number of map layers.
[0320] The processing system 20 is generally operable to process the streams 50, 60 by executing stream processing 32. The stream processing 32 is operable to process the messages of the streams 50, 60 when those messages are being received by the processing system 20. It is not necessary for the processing system 20 to receive all the messages before generating an output, based at least on the payload data of the already received messages of the streams 50, 60.
[0321] The function of the stream processing 32 is to provide an output 49, which preferably may include an output stream, that aggregates information regarding modifications to different map layers. For this purpose, the stream processing 32 is operable to identify messages in the same and / or different streams among several streams 50, 60 related to the same map object (e.g., the same node, the same road, the same point of interest, the same restriction), and generate an output message of the output stream that aggregates this information. Stream processing techniques such as the use of a sliding window can be used to balance the aggregation of information and the timeliness of providing the output message.
[0322] Accordingly, the stream processing 32 provides an output 49 based on information regarding several map layers respectively modified as indicated by several streams 50, 60. Such an output 49 may be useful to include in the map data provided to the map data consumer.
[0323] Stream processing 32 includes consistency verification 33. Consistency verification 33 is operable to determine whether a modification of at least one map layer indicated by at least one of streams 50, 60 causes an inconsistency. In response to performing the consistency verification, consistency verification 33 may be operable to determine whether a modification of at least one map layer indicated by at least one of streams 50, 60 causes an inconsistency between different map layers. This can occur when an object is deleted from a map layer but may still be referenced by another object within a different map layer. Such an inconsistency between different map layers may also exist when an object that references another object that does not exist or no longer exists in another map layer is created in the map layer. Stream processing 32, particularly consistency 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 some of the streams 50, 60. Examples of such inconsistencies include syntax inconsistencies (the modification does not conform to an existing set of syntax rules that different map layers must conform to) and / or logical inconsistencies (such as duplicate creation of existing map objects).
[0324] Stream processing 32 includes output generation 34. Output generation 34 may be operable to generate a stream of output messages. Output generation 34 may be operable such that at least some of the output messages include information aggregated from some of the different streams 50, 60 received at at least one interface 21. Output generation 34 may alternatively or additionally be operable such that output 49 includes feedback that informs the map layer providing system of the detected inconsistency. The feedback or other output 49 may be operable to execute or trigger a corrective action in response to the detected inconsistency.
[0325] The processing system 20 can comprise at least one further interface 22 for outputting an output stream and / or feedback and / or any other output that causes a corrective action to be performed. Alternatively or additionally, the processing system 20 can be operative to output an output stream and / or feedback and / or any other output that causes a corrective action to be performed via at least one interface 21 through which several streams 50, 60 are received. The processing system 20 can comprise an interface operative to perform both receiving several streams and providing an output.
[0326] The processing system 20 comprises a memory system 23. The memory system 23 is operative to at least temporarily store data items useful for performing the consistency verification 33. By way of example, as will be described in more detail herein, the consistency verification 33 can be operative to store data items in the memory system 23 in response to detecting an inconsistency, where the data items indicate or are otherwise based on a message determined to cause the inconsistency. The consistency verification 33 can then process other streams containing the message causing the inconsistency and / or additional messages received in the same stream to determine whether any of the additional messages indicate a fix that resolves the inconsistency. Thereby, it is possible to cope with the asynchrony of the various streams 50, 60 without taking excessive corrective actions. In particular, a temporarily existing inconsistency indicated by several streams 50, 62 does not affect the quality of the map data provided to the map data consumer when the processing system 20 holds off generating an output message based on the message determined to cause the inconsistency.
[0327] The memory system 23 or a separate memory system therefrom can 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.
[0328] Figure 2 shows a schematic diagram of a system including a map layer providing system 70 operable to provide a stream 50 out of some streams 50, 60 acquired by a processing system 20, another map layer providing system 80 operable to provide another stream 60 out of some streams 50, 60, and a processing system 20 operable to execute stream processing of some streams 50, 60.
[0329] The map layer providing system 70 is operable to maintain data 71 for a map layer, also called map layer A in the following description. The map layer data 71 includes a map object definition 72. The map object definition 72 can include, but is not limited to, definitions of components of a navigable network (such as nodes and / or links of the navigable network), or restrictions, names, street names, information associated with such components such as points of interest. The map layer providing system 70 is operable to modify the map object definition 72. The map layer providing system 70 can be operable to perform a modification that can be any one or any combination of addition of a new map object definition, deletion of an existing map object definition, and change of an existing map object definition.
[0330] The map layer providing system 70 is operable to maintain version - managed map layer data. Modifications in the map object definition 72 can cause a version change. Information regarding each version can be provided by the map layer providing system 70 to the processing system 20, and / or to another map layer providing system 80, for example, as part of a message of stream 50.
[0331] 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 consecutive messages among the messages 51, 52, 53, 54 can be variable. That is, the stream 50 can include consecutive messages temporally separated by a given period delay and other consecutive messages temporally separated by another period delay different from the given period delay. The map layer providing system 70 can be operable to generate and output the relevant messages of the stream 50 in response to modifying the map object definition of the map object definition 72. The map layer providing system 70 can be operable such that the messages of the stream 50 providing information regarding the modification performed on the map object definition 72 are outputtable in the stream 50 without aligning the timing of any modification and / or any message output by the map layer providing system 70 with any modification and / or any message output by another map layer providing system 80.
[0332] The map layer providing system 70 may also be 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 regarding the modifications made by the map layer providing system 70, may be provided to another map layer providing system 80. For this purpose, different map layer providing systems 70, 80 can be communicatively interfaced via at least one communication link 59.
[0333] Another map layer providing system 80 is operable to maintain data 81 of another map layer, also referred to as map layer B in the following description. The other map layer data 81 includes other map object definitions 82. The other map object definitions 82 can include, but are not limited to, information associated with such components as restrictions, names, street names, points of interest, etc. The other map layer providing system 80 is operable to modify the other map object definitions 82. The other map layer providing system 80 can be operable to perform a modification that can be any one or any combination of adding a new map object definition, deleting an existing map object definition, and changing an existing map object definition.
[0334] On the other hand, the other map layer providing system 80 is operable to maintain version-managed map layer data. Modifications in the other map object definitions 82 can cause a version change. Information regarding each version can be provided by the other map layer providing system 80 to the processing system 20 and / or to the map layer providing system 70, for example, as part of a message of the other stream 60.
[0335] The other map layer providing system 80 can be operable to refer to modifications in the other map object definitions 82 and / or to specify a version of the map data of the map layer providing system 70 (such as the version of the map object definition 72) that the other map layer providing system 80 refers to when generating a message of the stream output by the map layer providing system 70.
[0336] 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 consecutive messages among messages 61, 62, 63, 64 can be variable. That is, another stream 60 can include consecutive messages temporally separated by a given period delay and other consecutive messages temporally separated by another period delay different from the given period delay. Another map layer providing system 80 can be operable to generate and output related messages of another stream 60 in response to modifying the map object definition of another map object definition 82. Another map layer providing system 80 can be operable such that messages of another stream 60 that provide information regarding a modification performed on another map object definition 82 are output in another stream 60 without aligning the timing of any modification and / or any message output by map layer providing system 70 with any modification and / or any message output by map layer providing system 70. Another map layer providing system 80 can be operable such that messages of another stream 60 that provide information regarding a modification performed on another map object definition 82 include information regarding the version of the data of map layer providing system 70 (such as the version of map object definition 72) that the modification references.
[0337] Another map layer providing system 80 can optionally be operable to receive from map layer providing system 70 information regarding the version of the map layer data and / or any modification performed by map layer providing system 70. Another map layer providing system 80 can be operable to verify such information regarding a modification received from map layer providing system 70, for example, via at least one communication link 59.
[0338] FIG. 3 is a functional representation of stream processing 32 that can be executed by the processing system 20. Consistency verification 33 can include reference consistency verification 35. The reference consistency verification 35 is operable to detect a mismatch between different map layers caused by a modification to at least one of the map layers, as indicated by some of the streams 50, 60. The reference consistency verification 35 is operable to determine, based on some of the received streams, whether one of the messages included in some of the 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 indicated by some of the streams 50, 60. Alternatively or additionally, the reference consistency verification 35 is operable to determine, based on some of the received streams, whether one of the messages included in some of the streams 50, 60 indicates a change or addition to a map object definition that references another map object that has been previously deleted. Alternative or additional reference consistency checks can be performed by the reference consistency verification 35.
[0339] Output generation 34 can include generating an output 36 based on the results of a referential integrity verification. The results of the referential integrity verification can be used in various ways when generating the output. As an example, information regarding modifications received in some streams 50, 60 can be used to generate output messages for an output stream used by a map data consumer, selectively depending on whether the referential integrity verification verified a modification that does not cause a referential integrity problem. Alternatively or additionally, the results of the referential integrity verification can be used to determine whether information regarding received modifications in some streams 50, 60 should be used to generate output messages for an output stream used by a map data consumer, either without delay or after a waiting period that allows additional messages in some streams 50, 60 to be checked to determine whether the detected inconsistencies are improved. Alternatively or additionally, the results of the referential integrity verification can be used to generate feedback that causes the correction of referential integrity problems.
[0340] Alternatively, or in addition to performing a referential integrity verification and generating an output based on the results of the referential integrity verification, stream processing can perform one or several other integrity verifications, such as a logical and / or syntactic integrity verification.
[0341] FIG. 4 is a functional representation of stream processing 32 that can be executed by a processing system 20. Integrity verification 33 can include a logical and / or syntactic integrity verification 37. The logical and / or syntactic integrity verification 37 is operable to detect modifications that cause logical and / or syntactic problems, such as the generation of duplicate map objects and / or non-compliance with syntactic rules that a map layer must comply with. The logical and / or syntactic integrity verification 37 can be operable to detect the creation of duplicates of existing map objects. Alternative or additional logical and / or syntactic integrity checks can be performed by the logical and / or syntactic integrity verification 37.
[0342] Output generation 34 can include generating an output 38 based on the results of logical and / or syntactic consistency verification. The results of the logical and / or syntactic consistency verification can be used in various ways when generating the output. As an example, information regarding modifications received in some streams 50, 60 can be used by the map data consumer to generate output messages for the output stream selectively depending on whether the logical and / or syntactic consistency verification verified the modifications that do not cause logical and / or syntactic consistency issues. Alternatively or additionally, the results of the logical and / or syntactic consistency verification can be used to determine whether information regarding received modifications in some streams 50, 60 should be used by the map data consumer to generate output messages for the output stream, either without delay or after a waiting period that allows additional messages in some streams 50, 60 to be checked to determine whether the detected inconsistencies are improved. Alternatively or additionally, the results of the logical and / or syntactic consistency verification can be used to generate feedback that causes correction of logical and / or syntactic consistency issues.
[0343] Various map layers can form an acyclic graph. A map layer of a map layer can include a map object definition that references map objects defined by different map layers. As an example, restriction layers such as a speed limit layer, a turn restriction layer, a dead end layer, a one-way street layer, etc. can define their respective restrictions by referencing roads or nodes defined by different map layers. As a further example, a point of interest layer can define points of interest by referencing nodes defined by different map layers. As yet another example, a name layer can define the names of points of interest defined by different layers (point of interest layers), and / or the names of roads defined by another layer (such as a base map layer). This is a dependency that can cause reference integrity issues.
[0344] FIG. 5 schematically shows that the map object definition 72 of the map layer defines various map objects 73, 74, 75. The map object definition 82 of a different map layer that defines other map objects 83, 85, including references 84, 86 to the map object definitions 73, 74, 75. Modifying the map object definitions 73, 74, 75, or modifying other map object definitions 83, 85, may create a reference integrity problem that can be detected by the processing system 20 using stream processing techniques.
[0345] FIG. 6 is a flowchart of method 90. Method 90 may be automatically executed by the processing system 20.
[0346] In processing block 91, the processing system 20 receives several streams. Each of the several streams indicates a modification to the map layer data of the map layer with which the respective stream is associated. The processing system 20 performs stream processing on the several streams. Stream processing enables the generation of output messages of the output stream, or the start of the generation of output messages, based on the processing of one or several messages included in the received streams, without the need to wait for subsequent messages in the several streams.
[0347] In processing block 92, integrity verification is performed by the processing system. The integrity verification can include referential integrity verification. The referential integrity verification can include determining, based on some streams, whether some streams indicate a modification to at least one of the map layers that creates a referential integrity problem, such as a reference to a non-existent map object in different map layers. Alternatively or additionally, the integrity verification can include logical verification. The logical verification can include checking whether some streams include at least one message indicating the generation of duplicates of existing map objects. The logical verification can include syntactic verification in which the processing system checks whether some streams include information about modifications that do not conform to the syntactic rules to which the map layer should conform.
[0348] In processing block 93, the processing system 20 generates an output. The output generation is based at least on the result of the integrity verification. The result of the referential integrity verification can be used in various ways when generating the output. As an example, information about the modifications received in some streams 50, 60 can be used to generate the output messages of the output stream used by the map data consumer, selectively depending on whether the referential integrity verification verified the modifications that do not cause a referential integrity problem. Alternatively or additionally, the result of the referential integrity verification can be used to determine whether the information about the modifications received in some streams 50, 60 should be used to generate the output messages of the output stream used by the map data consumer, either without delay or after a waiting period that allows additional messages of some streams 50, 60 to be checked to determine whether the detected inconsistencies are improved. Alternatively or additionally, the result of the referential integrity verification can be used to generate feedback that causes the correction of referential integrity problems.
[0349] Alternatively or additionally, in processing block 93, the results of the logical and / or syntactic consistency verification can be used in various ways when generating the output. As an example, information regarding the modifications received in some of the streams 50, 60 can be used to generate the output messages of the output stream used by the map data consumer, selectively depending on whether the logical and / or syntactic consistency verification verified the modifications that do not cause logical and / or syntactic consistency issues. Alternatively or additionally, the results of the logical and / or syntactic consistency verification can be used to determine whether the information regarding the modifications received in some of the streams 50, 60 should be used to generate the output messages of the output stream used by the map data consumer, either without delay or after a waiting period that allows additional messages of some of the streams 50, 60 to determine whether the detected inconsistencies are improved. Alternatively or additionally, the results of the logical and / or syntactic consistency verification can be used to generate feedback that causes the correction of logical and / or syntactic consistency issues.
[0350] Generating the output in processing block 93 can include generating an output stream used by at least one map data consumer. Generating the output stream can include selectively including information from the messages received in some of the streams 50, 60 within the output messages of the output stream in response to confirming that there are no consistency issues in the consistency verification in processing block 92.
[0351] Generating the output in processing block 93 can also include generating an output that triggers a correction action, such as generating feedback to at least one map layer determined to be involved in a consistency issue to trigger a correction.
[0352] Figure 7 is a flowchart of method 95. Method 95 may be automatically executed by processing system 20. Processing blocks 91 and 92 may be executed as described with reference to FIG. 6.
[0353] In processing block 96, in response to identifying an integrity problem (such as a reference integrity problem) in the integrity verification in processing block 92, processing system 20 does not immediately start a process that triggers a correction action to perform additional processing. More specifically, in processing block 96, processing system 20 determines whether messages received in some streams 50, 60 during a period after the detection of the integrity problem indicate that the integrity problem has already been corrected by at least one other correction, such as a map layer different from the map layer where the message causing the integrity problem was sent and / or a map layer different from the map layer where the message causing the integrity problem was sent. This process can operate considering the asynchrony of some streams 50, 60. The implementation of the process in processing block 96 will be described in more detail with reference to FIGS. 8, 9, 10, and 30.
[0354] In processing block 97, if it is determined in processing block 96 that one or several other messages received during a period after the detection of the integrity problem indicate that the integrity problem has already been addressed, processing system 20 is operable to handle the correction of the integrity problem when generating the output. In this case, processing system 20 can generate output messages for the output stream used by the map data consumer, for example, without the need to generate feedback that triggers a correction action.
[0355] In processing block 98, if it is determined in processing block 96 that a message received within a period after detection of a consistency problem does not indicate that the consistency problem has already been addressed, the processing system 20 may be operable to trigger a correction action. The correction action may include providing feedback to one or some of the map layers involved in the consistency problem.
[0356] The operation of the processing system will be described in more detail with reference to exemplary streams 50, 60 schematically shown in FIGS. 8 and 9.
[0357] FIG. 8 shows streams 50, 60 received by the processing system 20. The processing system 20 is operable to perform stream processing including verification of the consistency of some of the streams 50, 60. Stream 50 includes a first sequence of messages 51, 52, 53, 54. Stream 60 includes a second sequence of messages 61, 62, 63, 64, 65. As schematically indicated by the shaded pattern, messages 51 and 64 indicate modifications to different map layers related to the same map object. By way of example, message 51 may include information that a node or road has been deleted in the base map layer. Message 64 may include information that a map object within another map layer that refers to this node or road (which is deleted according to message 51) is also deleted.
[0358] In this case, based on message 51, the processing system 20 determines that the deletion of the road or node creates a consistency problem because the processing system 20 has not yet received an indication that the map object related to message 64 has also been deleted. Detection of this consistency problem triggers monitoring over period 99. Receipt of message 64 within period 99 enables the processing system 20 to determine that the consistency problem has already been resolved, and thus no correction action should be taken in this regard.
[0359] The processing system 20 can generate an output message for inclusion in the output stream of output 49, and the output message includes the aggregation of messages 51, 64, both of which are (in different ways) related to map objects where message 51 indicates the deletion of respective map objects (e.g., nodes or roads).
[0360] FIG. 9 shows a variant where stream 60 includes a second sequence of messages 61, 62, 63, 64', 65. Message 64' does not delete map objects that still refer to nodes or roads deleted according to message 51. Thus, in this case, the processing system 20 determines that it is not indicated that the consistency problem identified by processing message 51 has been resolved by any of the messages received within period 99.
[0361] It will be understood that consistency problems determined to exist based on message 51 within stream 50 among some of streams 50, 60 can also be determined to be resolved based on another message within the same stream 50. As an example, if message 52 or message 53 indicates that a map object deleted according to message 51 has been added again, the processing system 20 can be operative to determine that a message received within period 99 after the detection of the consistency problem resolves this consistency problem.
[0362] Accordingly, the processing system 20 may be operable to employ window-based processing techniques where a time window (indicated by period 99 in FIGS. 8 and 9) is used to monitor messages for potential resolution of detected integrity issues. Information from messages (such as message 51) determined to cause an integrity issue may be temporarily stored to confirm whether the integrity issue can be determined to be resolved based on messages received within period 99 after detection of the integrity issue. Temporarily storing information from messages (such as message 51) determined to cause an integrity issue is also useful for obtaining this information for generation of output messages in the output stream of output 49, particularly after confirming that the integrity issue can be determined to be resolved based on messages received within period 99 after detection of the integrity issue.
[0363] FIG. 10 shows a schematic diagram of a processing system 20 operable to determine whether messages received within period 99 after detection of an integrity issue indicate that the integrity issue has already been addressed in response to detection of the integrity issue.
[0364] Stream processing 32 is operable to store data item 121 in storage system 23 in response to detection of an integrity issue. Data item 121 includes information based on messages determined to be associated with the integrity issue, such as payload data and / or other information.
[0365] Stream processing 32 temporarily removes each message from the normal stream processing flow by storing the data item 121 in the memory system 23. This flow can operate, for example, with sequential processing of one message at a time when messages are being received. As described above, the data item 121 can be used for various purposes, such as determining whether the messages received within the period 99 after detection of the integrity problem indicate that the integrity problem has already been addressed in the map layer. Alternatively or additionally, the data item 121 can be used at a later point in time to generate an output message for inclusion in the output stream of output 49 after confirming that the integrity problem has been addressed.
[0366] 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 the period 99 of detection of the integrity problem in response to detection of the integrity problem, with respect to whether any of the messages indicate that the integrity problem has already been resolved.
[0367] The sliding time window check 39 can use time information obtained from the time source 122 of the processing system 20 or coupled to the processing system 20. The time source 122 may be an integrated time source of at least one processing circuit 30.
[0368] The output generated based on the integrity verification can have various forms, as will be described with reference to FIGS. 11, 12, 13, 14, and 15.
[0369] FIG. 11 shows a system including some map layer providing systems 70, 80 and a processing system 20. The processing system 20 is operable to generate an output including feedback 101 and / or feedback 102 for providing to one or some of the map layer providing systems 70, 80 based on the result of consistency verification. The feedback 101 and / or feedback 102 can be provided to one or some of the map layer providing systems involved in the consistency problem in response to the detection of the consistency problem. As an example, if the deletion of a map object definition from the map object definition 72 of the map layer providing system 70 causes a consistency problem and this map object is still referenced by another map object definition in the map object definition 82 of another map layer providing system 80, the processing system 20 can operate to generate feedback 102 for providing to the other map layer providing system 80 to indicate which of the map object definitions 82 includes a reference to an object that no longer exists. Alternatively or additionally, the processing system 20 can be operable to generate feedback 10 for providing to the map layer providing system 70 to indicate that the deletion of the map object creates a consistency problem. Alternatively or additionally, if a consistency problem is caused by the addition or change of a map object definition that references a non-existent or no longer existent other object, the processing system 20 can be operable to provide feedback to the map layer providing system where the additional change was made.
[0370] FIG. 12 shows a system including some map layer providing systems 70, 80 and a processing system 20. The processing system 20 is operable to generate an output including an output stream 104 based on the result of consistency verification. The output stream 104 can include a sequence of output messages. The output stream 104 can be provided to a map data providing system and / or a map data consumer. The sequence of output messages in the output stream 104 can include messages including 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 can include other messages including information obtained from only one of some streams 50, 60. In the latter case, it can occur when the messages in stream 50 or 60 indicate a modification of the map object definition, but other messages in some of the received streams are not related to the same object.
[0371] By using stream processing 32 to generate the output stream 104, good map data freshness can be achieved, for example, as compared with batch processing techniques.
[0372] FIG. 13 shows a system including some map layer providing systems 70, 80 and a processing system 20. The processing system 20 is operable to generate an output including an output stream 104 and feedback 101, 102 for providing to the map layer providing systems 70, 80 based on the result of consistency verification.
[0373] The output stream 104 may be provided to a map data providing system 105, which may be interfaced or integrated communicably with the processing system 20. The map data providing system 105 may be operable to provide map data based on the output stream 104 to one or several map data consumers such as a vehicle system, a smartphone, and / or other map data consumers for use when performing the functions of a map database. The map data providing system 105 may also perform post-processing functions such as filtering, quality assurance, and / or other post-processing functions of the output stream 104.
[0374] FIG. 14 shows a system including some map layer providing systems 70, 80 and a processing system 20. The processing system 20 is operable to generate an output including feedback 101, 102 for providing to the map layer providing systems 70, 80 and an output stream 106 based on the results of consistency verification. The output stream 106 can be generated by the map data providing system by post-processing the output stream of the stream processing 32. 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.
[0375] FIG. 15 shows 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 some streams 50, 60 received and processed by the processing system 20. By way of example, the time delay between consecutive messages among the output messages 111, 112, 130 can vary as a function of time and can be different from the time delay between consecutive messages among the messages in each of some streams 50, 60.
[0376] Through stream processing, processing system 20 is operable to generate and optionally output an output message 111 based on at least one message of some of the streams 50, 60 at a time when consecutive messages of some of the streams 50, 60 may not have been received by the processing system 20.
[0377] FIG. 16 is a flowchart of method 130. Method 130 may be automatically executed by processing system 20.
[0378] In processing block 131, processing system 20 receives some of the streams 50, 60.
[0379] In processing block 132, processing system 20 performs a consistency verification. The consistency verification can include a reference consistency verification. The consistency verification can alternatively or additionally include a logical consistency verification and / or a syntactic consistency verification.
[0380] In processing block 133, in response to detecting a consistency problem, processing system 20 can trigger a corrective action. Alternatively, in processing block 134, in response to detecting a consistency problem, processing system 20 can determine that one or some of the messages received during the period 99 of detecting the consistency problem have already been addressed by additional corrections in the map layer for the consistency problem. Processing block 133 may also be omitted. If present, processing block 133 is useful for reducing the incidence of reference consistency problems.
[0381] In processing block 135, the processing system 20 can aggregate information from different messages included in some of the streams 50, 60 to generate output messages for at least a part of the output stream of the stream processing. Information from the messages included in some of the streams 50, 60 can be aggregated if they are related to the same map object. For example, if one of the messages defines a modification to the map object definition of the map object itself and a different one of the messages is related to a further map object that references this map object.
[0382] In processing block 136, output is generated. The output can include at least a part of the output messages that contain information aggregated from some messages included in some of the streams.
[0383] Figure 17 is a flowchart of method 140. Method 140 can be automatically executed by the processing system 20.
[0384] In processing block 141, the processing system 20 performs consistency verification. Processing block 141 can be implemented as described above.
[0385] In processing block 142, the processing system 20 determines that the messages received within the time interval 99 for detecting consistency problems do not allow the processing system 20 to confirm that the consistency problems have already been resolved in the map layer.
[0386] In processing block 143, the processing system 20 may optionally select the type of correction action to be performed. The selection of the type of correction action may depend on the type of consistency problem identified in the consistency verification in processing block 141. As an example, the type of correction action may depend on whether the consistency problem is a reference consistency problem or another type of consistency problem.
[0387] Depending on the type of correction action selected in processing block 143, the processing system 20 can operate in processing block 144 to trigger the correction of consistency issues. Triggering the correction of consistency issues can include triggering the correction of map object definitions that refer to another map object that no longer exists.
[0388] Alternatively or additionally, the processing system 20 can be operable in processing block 145 to trigger the provision of feedback to one or some of the map layer providing systems involved in the detected consistency issues. The provision of feedback can be executed such that one or some of the map layer providing systems can potentially use communication via at least one communication link 59 between the map layer providing systems to correct the consistency issues.
[0389] Alternatively or additionally, the processing system 20 can be operable in processing block 146 to trigger a change in the type of modification that caused the detected consistency issue. As an example, if the processing system 20 determines, based on messages included in some streams, that the modification of the map layer data includes the creation of duplicates of existing map objects, the processing system 20 can cause the map layer providing system to change the modification from the creation of existing map objects to a change.
[0390] Alternatively or additionally, the processing system 20 can be operable in processing block 147 to perform a discard operation. As an example, if the processing system 20 determines, based on messages included in some streams, that there are duplicates in object creation, duplicates in object deletion, or updates of non-existent objects, the processing system 20 can discard this.
[0391] FIG. 18 is a schematic diagram of a map layer providing system 150 operable to provide a stream 60 including a message sequence, 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.
[0392] The map layer providing system 150 comprises or is coupled to a map layer storage device 153. The map layer storage device 153 stores map layer data including map object definitions of at least one map layer.
[0393] The map layer providing system 150 comprises at least one interface 151, 152. The map layer providing system 150 is operable to receive other data 158 such as a stream 50 and / or version data generated by another map layer providing system via at least one interface 151, 152.
[0394] The map layer providing system 150 comprises at least one map layer providing system circuit 160 operable to execute map layer related functions 161. The at least one map layer providing system circuit 160 may comprise any one or any combination of circuits including integrated circuits, integrated semiconductor circuits, processors, controllers, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), quantum bits (qubits) and / or quantum gates, but is not limited thereto.
[0395] The map layer providing system circuit 160 may be operable to execute control 162 for modifying map layer data. The map layer providing system circuit 160 may be operable to obtain data from the map layer data storage device 153 and / or write to the map layer data storage device 153 in order to perform at least one of adding a new map object definition, modifying an existing map object definition, and deleting an existing map object definition. The control 162 may be operable to execute a modification of the map layer data based on the observation when new observations become available (e.g., based on an observation of a road closure observed from vehicle position tracing and / or based on an observation of a new restriction collected using a vehicle sensor system). Previous versions of the map layer data may be retained in the process, and variants of several versions of the map layer data may be stored in the map layer data storage device 153.
[0396] The control 162 may also be operable to execute a modification of the map layer data in response to a message included in the stream 50 received from another map layer providing system that defines a map object referenced by a map layer object definition in the map layer data storage device 153. In the latter case, the modification of the map layer object definition in the map layer data storage device 153 is initiated by the reception of a message from another map layer providing system, but it is not necessary for the map layer providing system 150 and other map layer providing systems (such as a map layer providing system associated with a child layer or a parent layer of the map layer handled by the map layer providing system 150) to synchronize the timing of performing the modification.
[0397] The map layer providing system circuit 160 is also operable to execute stream generation 163. Stream generation 163 can be operable to generate messages of stream 60 output by the map layer providing system 150 for providing to the processing system 20 (and optionally, other map layer providing systems) in response to a modification of a map object definition in the map layer data storage device 153.
[0398] Stream generation 163 can be operable such that messages of stream 60 are generated and output at a timing not synchronized with, for example, the timing at which messages in stream 50 are received by the map layer providing system 150 as part of stream 60. Stream generation 163 can be operable such that the time delay between consecutive messages of stream 60 can be variable. Thereby, new messages can be output to stream 60 at a timing reflecting the timing at which a modification is made to the map object definition in the map layer data storage device 153.
[0399] The map layer providing system 150 can be operable to receive and process feedback from the processing system 20, such as feedback 101 or feedback 102.
[0400] Figure 19 is a schematic diagram of a map layer providing system 150. At least one of interfaces 151, 152 is operable to receive feedback 159 from processing system 20. Control 162 includes a fleet bag-based modification controller 165 that modifies map object definitions in map layer data storage device 153 in response to feedback received from processing system 20. At least one map layer system processing circuit 160 is operable to execute feedback processing 164 to determine what modifications should be made to the map object definitions in map layer data storage device 10053 to resolve reported consistency problems based on the received feedback and optionally based on stream 50.
[0401] The modification is also executed in a manner initiated by the feedback, causing a message to be generated and output in stream 60, thereby enabling processing system 20 to determine that the detected consistency problem has been resolved.
[0402] Figure 20 is a flowchart of method 170. Method 170 can be automatically executed by map layer providing system 150.
[0403] In processing block 171, map layer providing system 150 modifies at least one map object definition in the map layer data storage device. The modification can include addition of a new map object definition, change of an existing map object definition, or deletion of an existing map object definition. The modification can be based on new information associated with each map layer (e.g., new observations obtained using vehicle sensors). The modification can also be made in response to a message in a stream received from another map layer, such as a parent layer that defines map objects referenced by the map object definitions in the map layer being handled by map layer providing system 150.
[0404] In processing block 172, the map layer providing system 150 generates a message of stream 60 indicating the performed correction. The message may also include version information.
[0405] The generation of the message of stream 60 in processing block 172 can be executed such that, as part of stream 60, for example, the message in stream 50 is generated and output at a timing not synchronized with the timing at which it is received by the map layer providing system 150. The generation of the message of stream 60 can be executed such that the time delay between consecutive messages of stream 60 can be variable. Thereby, a new message can be output to stream 60 at a timing reflecting the timing at which the map object definition of the map layer data storage device 153 is corrected.
[0406] FIG. 21 is a flowchart of method 175. Method 175 can be automatically executed by the map layer providing system 150. Processing blocks 171 and 172 can be implemented as described with reference to FIG. 20.
[0407] In processing block 173, the map layer providing system 150 receives feedback from the processing system 20. The feedback may indicate consistency problems identified by the consistency verification by the processing system 20.
[0408] In processing block 174, the map layer providing system 150 performs corrective corrections based on the feedback. The corrective correction of at least one map object definition is identified by the consistency verification of the processing system 20 and is executed so as to correct the consistency problems indicated in the received feedback. The map layer providing system 150 also generates and outputs a message within stream 60 for the corrective correction.
[0409] As described above, the modification of map layer data by adding, changing, or deleting map object definitions can be performed to improve the correspondence between the physical world reality in which map data is used to perform map-based functions and the map layers.
[0410] FIG. 22 is a schematic diagram of a system 180 including a processing system 20 and several map layer providing systems 150, 150', 150''. Each of the several map layer providing systems can be operable as disclosed in connection with FIGS. 18 and 19.
[0411] Some of the map layer providing systems 150, 150', 150'' can be operable to modify the map object definitions within their respective map layers in response to information captured using sensors of several vehicles 183 communicatively connected to at least one of the map layer providing systems 150, 150', 150'' via communication links that can be provided by a communication network 184 (which can include a wide area network and / or a cellular network). As an example, restrictions (such as stop signs) can be identified by the map layer providing system for a restriction layer based on probe traces of the vehicle 183 and can be used to update the restrictions for each road.
[0412] Alternatively or additionally, at least some of the map layer providing systems 150, 150', 150' can be operable to modify the map object definitions in their respective map layers based on data obtainable from a data resource 182 and / or a server 181 to which the map layer providing system is connected via a communication link provided by the communication network 184.
[0413] The various map layers can 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 dead end layer, a building layer, an address point layer, an interest point layer, a parking information layer, an interest point layer.
[0414] FIG. 23 shows an acyclic graph of the map layer 190. The acyclic graph can have a hierarchical structure, but it is not necessary. The acyclic graph of the map layer can include a base map layer 192 that contains map object definitions for nodes and roads. The acyclic graph of the map layer can include additional map layers 191 such as an address point layer 193 that is a child layer of the base map layer 192 and can be a parent layer of the interest point layer 197. The acyclic graph of the map layer can include an interest point layer 197 that is a child layer of the address point layer 193 and can be a second-generation child layer of the base map layer 192. The acyclic graph of the map layer can include an administrative area layer 194 that is a child layer of the base map layer 192 and can be a parent layer of the cadastral layer 198. The acyclic graph of the map layer can include a cadastral layer 198 that is a child layer of the administrative area layer 194 and can be a second-generation child layer of the base map layer 192. The acyclic graph 190 can include additional layers such as one or several restriction layers 195 (layers such as speed limit, turn restriction, dead end, etc.), a speed profile layer 199, a street name layer 196, and a name layer 200. The map layer providing system for the various layers provides several streams indicating the modifications made to each layer. The streams are processed by the processing system 20 using stream processing to generate an output 49 including an output stream. The streams can also be processed by other map layer providing systems.
[0415] Referring to FIGS. 24, 25, 26, 27, 28, and 29, the operation of the map layer providing system and / or the processing system 20 will be further described.
[0416] As described above, the processing system 20 may be operable to generate an output stream 110 that includes at least some output messages that each aggregate information from some messages of some streams received by the processing system 20.
[0417] FIG. 24 shows a stream 50 that includes messages 51, 52, 53 that define various modifications to the map layer object definition in map layer A. Stream 60 includes messages 61, 62, 63, 64 that define various other modifications to other map layer object definitions in map layer B. As schematically shown by the dashed connecting lines, message 61 relates to a modification of the map object definition that refers to a map object modified in the manner defined by message 51. Message 63 relates to a modification of the map object definition that refers to a map object modified in the manner defined by message 52. Message 64 relates to a modification of the map object definition that refers to a map object modified in the manner defined by message 53. Message 62 relates to a modification of the map object definition that does not refer to the map object to which the messages within stream 50 relate.
[0418] 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 includes (without aggregation) information from message 62. Output message 113 aggregates information from messages 62, 63. Output message 114 aggregates information from messages 53, 64.
[0419] Accordingly, the processing system 20 is operable to perform stream processing in which messages from several streams are aggregated into output messages when one of the messages relates to a map object that is referred to by a map object definition modified as indicated by another of the messages. If there are no related messages, there is no need to perform aggregation.
[0420] When integrity verification performed in stream processing detects an integrity problem, generation of the output message can be delayed until it can be confirmed that the integrity problem has been addressed. Thus, the order of output messages in output stream 110 can be different from the order in which the information elements used to generate the output messages are received by processing system 20.
[0421] FIG. 25 shows specific examples of messages 51, 61, 111. Message 51 defines the addition of nodes at coordinates x and y in a map layer (such as a base map layer). Message 61 adds hotel map object definitions to each node in different map layers (such as a point of interest layer). Processing system 20 is operable to generate an output message 111 in output stream 110 that aggregates the identifier of the node, its coordinates (specified by base map layer message 51), and its POI information (specified by the POI layer).
[0422] Integrity problems, such as referential integrity problems and / or logical or syntactic integrity problems, can be identified by processing system 20. Referring to FIGS. 26, 27, 28, and 29, various examples are shown.
[0423] FIG. 26 shows a modification 210 that includes a modification 211 performed on a map layer and another modification 212 performed on another map layer. Modification 211 creates two new nodes called "1:1" and "1:2". The other modification 212 creates a road including nodes "1:1" and "1:2" as road nodes in another map layer. Processing system 20 determines that there is no referential integrity problem. Processing system 20 generates an output message for the output stream of output 49, and this output message can aggregate information regarding modifications 211, 212.
[0424] Figure 27 shows the continuation from this state and depicts Revision 220 where Node 1:1 (created in Revision 211) is deleted by Revision 221. The other map layers provide an acknowledgment (confirmation response) 222. Since the path pre-created by Revision 212 contains references to nodes that no longer exist, the processing system 20 determines that there is a discrepancy. In response to the detection of this consistency issue, based on some of the received streams, the processing system 20 generates feedback 102 to trigger a corrective action. At this stage, due to the existing reference consistency issue, no new output messages for the output stream in Output 49 are generated that include the deletion defined by Revision 221.
[0425] Figure 28 shows the continuation from this state and depicts Revision 230 where the map object definition of path "2:1" (created in Revision 212) is changed by Revision 232 that deletes Node 1:1. This change triggers the generation of a message in the stream to the processing system 20. The processing system 20 determines that the reference consistency 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 path "2:1" (defined by Revision 232) and the deletion of Node "1:1" (defined by Revision 221).
[0426] Figure 29 represents a further example where "Version 1" of a map layer (such as a base map layer) includes Revision 241 that includes Revision 242 to create Node "1:1". "Version 2" of the map layer includes Revision 243 that creates the existing Node "1:1" and Revision 244 that creates a different Node "1:2". The streams provided to the processing system 20 by each map layer system are processed by the processing system 20 using stream processing. The processing system 20 detects, by Revision 244, the creation of a map object definition for an existing map object. Thereby, the processing system 20 provides feedback 101 to trigger a corrective action.
[0427] As already explained with reference to FIG. 10, the processing system 20 may be operable to selectively change the processing of received messages based on the results of the integrity verification.
[0428] FIG. 30 shows a schematic diagram of the processing system 20 for further explaining this operation. The memory system 23 is operable to store one or several data items 124 in a storage device 123 for data items having reference integrity and / or other integrity problems. Each of the data items 124 includes information from a message that has been determined to reflect a modification in a map layer that causes a reference integrity problem and / or, in some cases, a syntax and / or logical integrity problem. Referring to FIG. 25, the data item can include, for example, the payload of a message that has been determined to reflect a modification that causes an integrity problem.
[0429] When new messages of some streams 50, 60 are received, the stream processing 32 is operable to perform an acquisition 127 of the data item 124 to check whether the integrity problem has been resolved, and if so, generate an output message for the output stream of the output 49 using the data item that no longer has an integrity problem.
[0430] The processing system 20 may be operable to also include a deletion 126 of the data item 124 from the storage device 123 by the stream processing 32. The deletion 126 can be executed when it is confirmed that no integrity problem exists anymore. The deletion 126 can also be executed based on time-based deletion criteria. As an example, the time when the data item 124 is stored can be recorded and used to select the data item 124 to be deleted based on whether the threshold storage time has been reached or exceeded.
[0431] Referring to FIGS. 31, 32, 33, and 34, FIG. 35 illustrates a system 250 that includes a processing system 250 and one or more map layer providing systems 251 that operate to modify map layer data 252 for one or more map layers.
[0432] One or some of the map layer providing systems 251 are operable to output a plurality of streams 259. The processing system 20 is operable to receive the plurality of streams 259 and perform stream processing 32 including integrity verification. The processing system 20 may also be operable to perform additional downstream processing operations on the output 160 of the stream processing 32. By way of example, map data providing 262 may be operable to perform a quality check terminal 263 on the output 261 of the stream processing and generate map data 269 for distribution to data consumers.
[0433] Stream processing and, if present, map data providing may be performed several times to enable the generation of several different map products. The several different map products may be distinguishable from each other, for example, in the information they contain. The several different map products may alternatively or additionally be distinguishable from each other in the weights given to various KPIs, such as freshness versus accuracy or coverage. Freshness versus accuracy or coverage may be traded off against each other to some extent by controlling the operating parameters of the stream processing. By way of example, an increase in the time interval 99 during which monitoring is performed after detection of an integrity problem may increase coverage (by reducing the risk that information regarding a correction that causes an integrity problem has to be discarded when generating the output 261 of the stream processing) at the expense of freshness. Conversely, a decrease in the time interval 99 during which monitoring is performed after detection of an integrity problem may increase freshness while decreasing coverage (by increasing the risk that information regarding a correction that causes an integrity problem has to be discarded when generating the output 261 of the stream processing).
[0434] FIG. 32 shows a system 250 in which a processing system 20 executes stream processing 32 to generate map data 269 of a first map product and executes one or several additional instances of stream processing 32' (each including consistency verification) to generate map data 269' of one or several additional map products. The output 269 can be distinguished from the output 269' with respect to the timing of the output messages in the output stream of the output 269.
[0435] Optionally, as also schematically shown in FIG. 32, different instances of stream processing can receive several different streams 259, 259' as input. As an example, the map layers considered to generate the map data 269' do not have to be exactly the same as those used to generate the map data 269.
[0436] FIG. 33 shows a schematic diagram of a system 250 including one or several map layer providing systems 251, a processing system 20, and one or several map data consumers 267. One or several map data consumers 267 can be operable to receive map data based on the output stream 261 of the stream processing 32 and execute at least one map-based function based thereon. One or several map data consumers 267 can be operable to receive map data as a stream of map data via a communication link implemented using a communication network 266. The communication network 266 can include a wide area network and / or a cellular network.
[0437] FIG. 34 shows a schematic diagram of a system 250 comprising one or several map layer providing systems 251, a processing system 20, and a map data consumer 268. The map data consumer 268 comprises at least one control circuit 270. The at least one control circuit 270 can be communicatively connected to a communication interface 276 of the map data consumer 268. The at least one control circuit 270 can be operable to perform map-based functions based on map data based on an output stream 261 of stream processing. The at least one control circuit 270 can be operable to execute at least one control action based at least on the map data to control one or several 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 using one or several sensors such as a distance sensor 274 and / or a camera 273 to perform at least one control operation.
[0438] FIG. 35 shows a schematic diagram of a system 250 comprising one or several map layer providing systems 251, a processing system 20, and systems 182, 183 that obtain data based on which modification of a map object definition is performed by the one or several map layer providing systems 251. The systems 182, 183 can comprise a fleet of vehicles 183 that provide sensor data to the map layer providing system 251 and / or other data resources 182 communicatively connected to the map layer providing system 251. The system 250 also comprises one or several map data consumers 267. The map data consumers 267 can include at least one map data consumer operating as described in relation to FIG. 34.
[0439] FIG. 36 is a flowchart of a method 280. The method 280 can be automatically executed using the processing system 20 and at least one map data consumer such as the map data consumer 268.
[0440] In processing block 281, the processing system 20 executes stream processing of several streams. Each of the several streams includes a message indicating a modification to the map layer to which the respective stream is associated. Some of the streams can be asynchronous.
[0441] In processing block 282, the processing system 20 provides an output to at least one map data consumer. The output is based on the stream processing. The output can include a stream of map data.
[0442] In processing block 283, the map data consumer executes at least one action based at least on the output of the stream processing. The at least one action can include a control action. The at least one action can be any one or any combination of route search, navigation function, driving assistance function, advanced driving assistance function, and autonomous driving function. The at least one action can include at least one control action. The at least one control action can include controlling at least one actuator and / or controlling a human-machine interface.
[0443] FIG. 37 is a flowchart of method 290. Method 290 can be automatically executed using the processing system 20.
[0444] In processing block 291, the processing system 20 receives several asynchronous streams.
[0445] In processing block 292, the processing system 20 reduces the risk that the output of the stream processing of several asynchronous streams is adversely affected by consistency problems. This includes performing stream processing including consistency verification, as described in detail herein.
[0446] The embodiments have been described above with reference to the drawings, but modifications and variations are possible in other embodiments. Although exemplary use cases to which the method and the vehicle processing system can be applied have been described in detail, the techniques disclosed in this specification can be used in connection with various additional scenarios. For further illustration, exemplary map layers have been described, but the techniques disclosed in this specification are generally applicable to a wide variety of map layers.
[0447] This description and the accompanying drawings showing aspects and embodiments of the invention are not to be construed as limiting the scope of the claims that define the protected invention. In other words, although the invention has been illustrated and described in detail in the drawings and the foregoing description, such illustration and description should be regarded as exemplary and not restrictive. Various mechanical, compositional, structural, electrical, and operational changes can 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 will be understood that modifications and variations can be made by those skilled in the art within the scope of the following claims and the spirit thereof. In particular, the invention encompasses further embodiments having any combination of features from the various embodiments described above and below.
[0448] This disclosure also encompasses all additional features shown in the drawings, which may not be described above or below. Also, a single alternative of the embodiments described in the drawings and the description, as well as a single alternative of its features, may be waived from the subject matter of the invention or from the disclosed subject matter. This disclosure includes the subject matter consisting of the features defined in the claims or embodiments, as well as the subject matter including said features.
[0449] The term "comprising" does not exclude other elements or process blocks, and the indefinite articles "a" or "an" do not exclude a plurality. A single unit or process block can fulfill the functions of several features listed in the claims. The mere fact that certain means are recited in mutually different dependent claims does not indicate that a combination of these means cannot be used advantageously. Components described as being coupled or connected may be directly coupled electrically or mechanically, or may be indirectly coupled via one or more intermediate components. No reference signs in the claims should be construed as limiting the scope.
[0450] The machine-readable instruction code can be stored / distributed on a suitable medium such as an optical storage medium or a solid-state medium supplied together with other hardware or as part of other hardware, but can also be distributed in other forms such as a wide area network or other wired or wireless electrical communication system. Furthermore, the machine-readable instruction code can also be a data structure product or a signal for implementing a specific method such as the method according to the embodiment.
Claims
1. A method for modifying map data, comprising: obtaining, by a processing system (20), a plurality of streams (50, 60; 259; 259, 259'), each of the plurality of streams (50, 60; 259; 259, 259') including data indicating a modification to one of a plurality of map layers (71, 72; 192 - 200) associated with the stream, the plurality of map layers (71, 72; 192 - 200) including child layers (81; 193 - 200) and one or more parent layers (71; 192 - 195, 197, 198), the plurality of map layers (71, 72; 192 - 200) including a map object definition (72, 82), the map object definition (72, 82) including a parent layer map object definition (72) within the one or more parent layers (71; 192 - 195, 197, 198) and a child layer map object definition (82) within the child layer (81; 193 - 200), the child layer map object definition (82) including references (84, 86) to parent layer map objects defined by the parent layer map object definition (72), performing, by the processing system (20), stream processing (32) on the plurality of streams (50, 60; 259; 259, 259'), a consistency verification (33) for verifying the consistency of the child layer map object definition (82) modified as indicated by a stream among the plurality of streams (50, 60; 259; 259, 259') associated with the child layer (81; 193 - 200) and the parent layer map object definition (72) modified as indicated by at least another one of the plurality of streams (50, 60; 259; 259') associated with the one or more parent layers (71; 192 - 195, 197, 198), generating an output (49; 101, 102; 104; 106; 110) based at least on the result of the consistency verification (33), and including the above,
2. The streams of the several streams (50, 60; 259; 259, 259') associated with the child layer (81; 193 - 200) include a first sequence (61 - 65) of messages, and at least another one of the several streams (50, 60; 259; 259, 259') associated with the one or several parent layers (71; 192 - 195, 197, 198) includes a second sequence (51 - 54) of messages, and the message timing of the first sequence (61 - 65) of messages is independent of the message timing of the second sequence (51 - 54) of messages. The method according to claim 1.
3. The stream processing (32) The method according to claim 1 or 2, further comprising triggering a correction action in response to detection of a discrepancy in the consistency verification (33).
4. The stream processing (32) The method according to claim 3, further comprising storing a data item (121; 124) that provides information regarding at least one child layer map object definition that does not match the parent layer map object definition (72, 82) in response to detection of the discrepancy, and the data item (121; 124) is stored at least temporarily after detection of the discrepancy.
5. The stream processing (32) The method according to claim 4, further comprising monitoring the several streams (50, 60; 259; 259, 259') before triggering the correction action in response to detection of the discrepancy, and monitoring the several streams (50, 60; 259; 259, 259') includes confirming, based on the data item (121; 124), that the detected discrepancy remains unaddressed by the corrections indicated by the several streams (50, 60; 259; 259, 259') during a monitoring time interval (99) after detection of the discrepancy.
6. The correction action correcting at least one incorrect reference to at least one parent layer map object in at least one of the child layer map object definitions (72, 82) based at least on the discrepancy, and Propagating feedback to a map layer providing system for the several map layers (71, 72; 192 - 200) based at least on the inconsistency; Changing at least one type of the correction from a first type of correction to a second type of correction, wherein the at least one of the corrections is a root cause of the inconsistency, and changing the type resolves the inconsistency; Discarding duplication in creation of the map object, duplication in deletion of the map object, and / or correction of a non-existent map object; The method according to any one of claims 3 to 5, including one, several, or all of the above. **Claim 7** Generating the output (49; 101; 102; 104; 106; 110) includes aggregating at least two corrections of a map object definition (72, 82) regarding the same map object into an aggregated correction, the output (49; 101; 102; 104; 106; 110) is based at least on the aggregated correction, and the aggregating is performed based at least on the result of the consistency verification (33). The method according to any one of claims 1 to 6. **Claim 8** The consistency verification (33) includes a reference consistency verification (33) that checks that a correction of a sub-layer map object definition (72, 82) indicated by the stream among the several streams (50, 60; 259; 259, 259') associated with the sub-layer (81; 193 - 200) is referentially consistent with a corrected parent-layer map object definition (72, 82) indicated by at least another one of the several streams (50, 60; 259; 259, 259') associated with the one or several parent layers (71; 192 - 195, 197, 198). The method according to any one of claims 1 to 7. **Claim 9** The consistency verification (33) is Verification of the logical consistency of at least one child layer map object definition modified as indicated by the stream among the several streams (50, 60; 259; 259, 259') associated with the child layer (81; 193 - 200), and / or at least one parent layer map object definition modified as indicated by at least another one of the several streams (50, 60; 259; 259, 259') associated with the one or several parent layers (71; 192 - 195, 197, 198), and / or. Verification of the syntactic consistency (35) of the child layer map object definitions (72, 82) and the parent layer map object definitions (72, 82), each modified as indicated by the several streams (50, 60; 259; 259, 259') for verifying compliance with the syntax rules The method according to any one of claims 1 to 8, comprising.
10. The several map layers (71, 72; 192 - 200) define an acyclic graph (190) and include a base map layer that defines nodes and links of a navigable network, and the one or several parent layers (71; 192 - 195, 197, 198) are The base map layer (192), and Map layers (193 - 195, 197, 198) that refer to the nodes and links defined by the base map layer (192) but are different from the base map layer (192), The method according to any one of claims 1 to 9, comprising one or both of.
11. The acyclic graph defines a hierarchical map layer structure (190) that fundamentally includes the base map layer, and the acyclic graph includes one or several map layers (71, 72, 193 - 200) that refer to the base map layer (192), and includes one, several, or all of a turn restriction layer, a speed limit layer, a speed profile layer, a one-way layer, a stop layer, a building layer, an address point layer, a point of interest layer, a parking information layer, a point of interest layer. The method according to claim 10.
12. The processing system (20) receives the several streams (50, 60; 259; 259, 259') from the several map layer providing systems (70, 80; 150, 15', 150''), and each of the several map layer providing systems (70, 80; 150, 15', 150'') is associated with a different one of the several map layers (71, 72; 192 - 200), and the several map layer providing systems (70, 80; 150, 15', 150'') are operable to perform corrections of map object definitions (72, 82) in different map layers (71, 72; 192 - 200) independently of each other. The method according to any one of claims 1 to 11.
13. Generating the output (49; 101, 102; 104; 106; 110) includes generating a first output (269) for a first map product and a second output (269') for a second map product, and optionally, the consistency verification (33) is performed separately for the first map product and the second map product. The method according to any one of claims 1 to 12.
14. Further including performing an action based at least on the output (49; 101, 102; 104; 106; 110), and optionally, the action includes route search, route guidance, automatic driving function, traffic flow control, including one, several, or all of them. The method according to any one of claims 1 to 13.
15. Machine-readable instruction code including instructions that, when executed by at least one processing circuit (30), cause the at least one processing circuit (30) to execute the method according to any one of claims 1 to 14.
16. A method for correcting map layer data (71, 81), executing a correction of the map layer data (71, 81) by a map layer providing system (70, 80; 150) that provides the map layer data (71, 81). The map layer data (71, 81) includes map object definitions (72, 82), the map object definitions (72, 82) include references to parent layer map objects defined by one or some of the parent layers of the map layer, and / or the map objects defined by the map object definitions (72, 82) are referenced by child layer map object definitions (72, 82) in one or some of the child layers of the map layer. The modification includes at least one of a change to 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), and a deletion of an existing map object definition from the map object definition (72, 82). Providing data indicating the modification in the map layer data (71, 81) for use when executing at least one action based at least on the map layer data (71, 81) modified by the modification by the map layer providing system (70, 80; 150), wherein the data indicating the modification is provided in a stream (50, 60, 259, 259, 259'). A method comprising.
17. The stream (50, 60; 259; 259, 259') includes a sequence of messages (51-54; 61-65), each of the messages (51-54; 61-65) is associated with one of the modifications, and the map layer providing system (70, 80; 150) generates and outputs each of the messages (51-54; 61-65) in the sequence in response to executing the modification with which the message is associated. The method according to claim 16.
18. Each of the messages (51-54; 61-65) includes a unique identifier of a map object modified by the modification with which the message is associated and / or version data of the map layer. The method according to claim 17.
19. The method according to claim 17 or 18, wherein the map layer providing system (70, 80; 150) outputs the messages (51 to 54; 61 to 65) in the sequence at a timing independent of a change in the parent layer map object definition (72, 82) of the parent layer map object and / or a change in the child layer map object definition (72, 82).
20. The method according to any one of claims 16 to 19, wherein the map layer providing system (70, 80; 150) performs at least one first correction of the at least one correction in response to at least one mismatch between the map layer data (71, 81) and at least one of the parent layer map object definition (72, 82) of the parent layer map object and / or the child layer map object definition (72, 82), and the at least one first correction corrects the at least one mismatch.
21. The method according to claim 20, further comprising receiving one or several parent layer streams (50) indicating a correction to the parent layer map object definition (72) that defines the parent layer map object by the map layer providing system (70, 80; 150), and the at least one mismatch includes a reference mismatch caused by at least one of the corrections to the parent layer map object definition (72).
22. The method according to claim 21, wherein the stream (60) and the one or several parent layer streams (50) are asynchronous.
23. The method according to claim 21 or 22, wherein the map layer providing system (70, 80; 150) is operable to perform at least one second correction of the at least one correction at a time independent of the correction to the parent layer map object definition (72, 82).
24. The method according to any one of claims 20 to 23, wherein the at least one mismatch includes a reference mismatch caused by at least one of the corrections.
25. Further comprising receiving, from the processing system (20), a notification indicating the at least one discrepancy, wherein the processing system (20) processes the stream (50, 60; 259; 259, 259') to perform consistency verification of the map layer data (71, 81) corrected by the correction, the method according to any one of claims 20 to 24.
26. The method according to claim 25, when dependent on any one of claims 21 to 23, further comprising performing the consistency verification by processing, by the processing system (20), the stream (50) and the one or some parent layer streams (60).
27. The method according to any one of claims 20 to 26, further comprising providing, by the map layer providing system (70, 80; 150), a confirmation response to at least one other map layer providing system (70) of the one or some parent layers (70) for confirming correction of the discrepancy by the at least one first correction.
28. The map layer includes an acyclic graph of map layers (190), the acyclic graph includes a base map layer (191) defining nodes and links of a navigable network, and the one or some parent layers (60) are a base map layer (192), and one or both of further map layers (193 to 195, 197, 198) referring to the nodes and the links defined by the base map layer (192), the further map layers (193 to 195, 197, 198) being different from the base map layer, the method according to any one of claims 16 to 27.
29. Further comprising performing the action at least based on the stream (50, 60; 259; 259, 259'), and optionally, the action includes route search, route guidance, automatic driving function, traffic flow control, one, some, or all of them, the method according to any one of claims 16 to 28.
30. Machine-readable instruction code including instructions for causing the at least one processing circuit (160) to perform the method according to any one of claims 1 to 29 when executed by the at least one processing circuit (160).
Citation Information
Patent Citations
Map display device
JP2006259035A
Vehicle driving control support system having map update function, map update server device, and support server device
JP7624791B2
Navigation device
WO2015008465A1