The present disclosure relates to the field of driver information systems in vehicles. In particular aspects, the disclosure relates to a map client supported by a remote map-data server, as well as a method of operating such a map client. The teachings to be disclosed herein can be applied to heavy-duty vehicles, such as trucks, buses, and construction equipment, among other vehicle types. Although the description may refer to a particular vehicle or vehicle type, the applicability of this disclosure is not so restricted.
Within the broader category of driver information systems (DISs) or driver assistance systems, map clients are devices for displaying or otherwise conveying map information to the driver of an operating vehicle. A map client may optionally include navigation functionalities, which take over at least part of the decision-making related to navigation, such as the choice of a suitable path between a current position and a desired destination. In the case of an autonomous vehicle, the map client may be at the service of an automated driving system (ADS).
The map client is assisted by a server, which due to the moving nature of the vehicle, communicates with the map client over a link that has at least one wireless segment. Although the map client may be entitled to use a considerable amount of map data (essentially with global coverage), it is only a minor portion of this map data that resides in the map client's local memory at a given point in time. A number of factors in the past decades have spurred this development, including the advent of very fine-grained map information, the increasing rate at which the drivable environment is being extended and renewed, and the availability of very affordable wireless (cellular) data communications. However, the quantity of data to be exchanged between the map client and server is still not a negligible cost driver, and relying too heavily on this modality may bring reliability problems as cellular networks may suffer from temporary congestion. Last but not least, the wireless communications may contribute relatively significantly to the map client's total energy consumption, which could appreciably reduce the running range of small battery-powered vehicles designed for urban use.
US20130345977A1 discloses a map updating system including a map server and a vehicle-mounted navigation apparatus which have been conceived with a view to limiting the volume of data that needs to be downloaded to the vehicle during operation. This aim is achieved with the assistance of a driving history database storage, which stores driving history data representing a driving history of the vehicle. The map updating system determines, based on the driving history data, a location visited a predetermined number of times or more as a first destination; determines, based on the driving history data, a route which was used a predetermined number of times or more among routes used to visit the first destination as a first route; determines a second route that is to be used to visit the first destination when a part of the first route is unusable; and updates map data in the navigation apparatus in order of (i) data on the first route and second route and (ii) other data.
US20060155462A1 discloses a distribution map data generating method for generating distribution map data used to distribute a map through communication. The method comprises: extracting road data and name data over a plurality of map area blocks to indicate a route passing through the plurality of map area blocks, from road map data that includes road data set in correspondence to each of specific map area blocks to provide position information indicating positions of roads in the map area block and name data set in correspondence to each of the map area blocks to provide name information indicating names of the roads in the map area block; generating integrated name data by integrating name information in the extracted name data, which is set in correspondence to a plurality of map area blocks to indicate a single road, so as to provide common name information for indicating name of a road in common with the plurality of map area blocks; and generating the distribution map data by using the extracted road data and the integrated name data. Here, the route is determined as a road from a start point to an end point based upon the road data. When extracting the road data and the name data indicating the route, road data and name data contained in an area ranging over a predetermined width along the route are extracted based upon the road map data.
In the context of a vehicle-carried map client which obtains its map data from a remote server, it is an objective of the present disclosure to optimize the transfer of map data. On the one hand, the driver expects a dependable map client, which is responsive and has a very high reliability. On the other hand, the transfer of map data from the server to the client should be managed with control over the total data volume, not to incur unnecessary external cost (e.g., fees to cellular operator) and/or unnecessary energy consumption. A particular objective is to manage the map data transfer with foresight, to avoid urgent requests for map data which might not be possible to fulfil at times of high network load.
In a first aspect of the present disclosure, there is provided a map client for a vehicle. The map client may take the form of a computer system with the relevant configuration. The map client comprises: a geo-positioning module configured to estimate a current position; a wireless interface configured to request and receive map data from a server over a wireless link, wherein the map data is divided into a basic layer and a refinement layer of a navigation map, wherein the basic layer includes road segments of major roads and the refinement layer but not the basic layer includes road segments of minor roads; a map-data memory configured to store basic-layer map data semi-persistently and to store any refinement-layer map data temporarily; a path-planning module configured to generate paths according to a planning query using the map data stored in the map-data memory, the generated paths including a main path and one or more alternative paths; and a path-execution module configured to provide driving instructions for following the main path from the estimated current position, while assessing whether one of the alternative paths is more suitable for driving from the current position than the main path. According to said first aspect, the wireless interface is configured to request refinement-layer map data from the server corresponding to a neighborhood of the main path.
In a second aspect, there is provided a method of operating a map client in wireless communication with a server. The method comprises: repeatedly estimating a current position using a geo-positioning technique; receiving map data from the server over a wireless link, wherein the map data is to be stored semi-persistently in a map-data memory of the map client, wherein the received map data belongs to a basic layer of a navigation map and the basic layer includes road segments of major roads; generating a plurality of paths according to a planning query using the map data stored in the map-data memory, the generated paths including a main path and one or more alternative paths; requesting map data from the server to be stored temporarily in the map-data memory, wherein the requested map data pertains to a neighborhood of the main path and belongs to a refinement layer of the navigation map, wherein the refinement layer but not the basic layer includes road segments of minor roads; and providing driving instructions for following the main path from the estimated current position, while assessing whether one of the alternative paths is more suitable for driving from the current position than the main path.
In further aspects of the present disclosure, there is provided a computer program containing instructions for causing a computer system to carry out the method of the second aspect. The computer program may be stored or distributed on a data carrier. As used herein, a “data carrier” may be a transitory data carrier, such as modulated electromagnetic or optical waves, or a non-transitory data carrier. Non-transitory data carriers include volatile and non-volatile memories, such as permanent and non-permanent storage media of magnetic, optical or solid-state type. Still within the scope of “data carrier”, such memories may be fixedly mounted or portable.
In other words, the above-stated problem is addressed by the combination of, on the one hand, generating paths using the map data stored in the map-data memory and, on the other hand, requesting refinement-layer map data from the server for a neighborhood of a currently followed main path.
Optionally in some examples, including in at least one preferred example, the path-planning module is configured to generate, during execution of the main path, one or more additional alternative paths according to the planning query from the estimated current position using the map data stored in the map-data memory. This may allow dynamic rerouting of the vehicle.
Optionally in some examples, including in at least one preferred example, the wireless interface is configured to request refinement-layer map data from the server corresponding to a neighborhood of the one or more alternative paths. This may allow efficient navigation along the alternative path, and also rerouting off the alternative path if needed.
Optionally in some examples, including in at least one preferred example, the neighborhood of each path (for which refinement-layer map data is requested from the server) has a size d that is inversely related to a local road density of the navigation map. The inventors have discovered that this criterion for defining the environment-which is also a way of controlling the quantity of map data to be requested from the server—favors an advantageous behavior of the map client in most representative or normal operating conditions. The inventors hypothesize that the criterion is well tailored to how much map data is typically needed to perform efficient rerouting of the vehicle, e.g., when the main route becomes congested at short notice. In an area with a relatively sparser road network, the map client may need to look relatively further away from the main path to find a useful alternative path.
With respect to these (preferred) examples, it is understood that the size d is inversely related to a local road density ρ if d is non-increasing with respect to ρ. Function of ρ which satisfy this condition are, for example d(ρ)=K1/ρ; d(ρ)=K2/ρ2; d(ρ)=K3/ρa, where the exponent a is a positive real constant; d(ρ)=K4−K5ρ; d(ρ)=K6−logρ, where K1, K2, . . . , K6 are positive real constants. In the examples, furthermore, the size d may be a width of a tube-shaped environment centered on a main or alternative path. Alternatively, the size d may be a diameter of a circle centered on the current position, a generalized diameter (i.e., largest width) of a rectangle centered on the current position, or a generalized diameter of a predefined geometric shape which moves with the current position. In the examples, furthermore, the local road density is a local characteristic of the navigation map, i.e., the local road density varies between different points or regions of the navigation map. It may be quantified as a total length of the road segments per unit area of the navigation map. Alternatively, the local road density may be quantified as a vertex connectivity of an imaginary graph whose edges are the road segments of the navigation map. A graph-theoretical definition of vertex connectivity may be the size of a minimal vertex cut. Alternatively, the local road density may be quantified as a data volume (map data volume) required to represent a unit area of the navigation map.
Optionally in some examples, including in at least one preferred example, the path-execution module is configured such that, if one of the alternative paths is more suitable than the main path, it shall adopt this alternative path as new main path. This will cause the path-execution module to provide driving instructions for following the new main path from the estimated current position. As an optional addition, the wireless interface may be configured to update the neighborhood in accordance with the current position and to request, if necessary, additional refinement-layer map data from the server corresponding to the updated neighborhood. This may allow dynamic rerouting of the vehicle, particularly rerouting away from the new main path.
In the terminology of the present disclosure, a planning query is to be understood broadly. It may be a command to the path-planning module to present all drivable paths away from the current position which satisfy some explicit or implicit criterion. For example, the planning query may request paths with at least a minimum probability of being used by the vehicle. In another example, the planning query may stipulate that only such paths should be presented which use roads with at least a minimum carrying capacity and/or with a minimum expected average speed and/or which allow a special vehicle type to pass (e.g., trailer, crane, excess height, excess weight). In another example, the planning query requests paths which are at most a specified distance (say, 20 km) from a charging station or refueling station. In another example, the planning query requests paths which generally travel into a specified direction (say, north). In another example, the planning query requests paths leading from a starting position (say, the current position) to a specified destination. It is emphasized that the planning query does not necessarily include a request for routing between a starting position and a destination.
In the present disclosure, driving instructions may refer to visual data (e.g., a relevant map view, a symbol showing a next turn or another upcoming maneuver), audible data (e.g., recorded or synthesized spoken instructions), haptic instructions (e.g., a vibratory alert to the driver that a turn or another maneuver is imminent and will be displayed) and the like. The driving instructions may be directed to a human driver, or otherwise to a component of the vehicle or an executing software program, such as an ADS.
In the present disclosure, a path may be considered suitable (or less suitable) based on various factors. For one thing, the main path may have become less suitable if the vehicle is no longer positioned on the main path as a result of missing a turn or another unintentional maneuver; if the vehicle is now traveling on an alternative path as a result of the unintentional maneuver and it would cause nonnegligible delay to go back to the main path, the alternative path may be considered more suitable. The main path might also become less suitable if the driver subjectively prefers an alternative path and chooses to drive on the alternative path; the path-planning module normally does not know the driver's intention but has to make an informed guess. Further, the suitability of a path may depend on the degree of congestion of the road segments making up the path, which can be measured in terms of the actual mean speed of vehicles traveling on the path. The degree of congestion may alternatively be expressed as a percentage representing the actual mean speed as a fraction of the mean speed in normal driving conditions or the mean speed when the road is substantially empty. Another measure of the suitability may be the road surface conditions, e.g., presence of frost, snow, rain, pollution, atmospheric pollution. If the special case where the path leads to a specified destination, the suitability of the path may correspond to the estimated total driving time to said destination.
In the present disclosure, there are several feasible ways of defining the distinction between major and minor roads, and none of these definitions is an essential feature of the invention. In broad terms, the major roads shall be such that basic path planning is possible, whereas the minor roads may be such as to support more optimized path planning and/or more efficient rerouting. With this said, the major roads should not represent more than a manageable data volume, such that it is possible to store the basic-layer map data semi-persistently in the map-data memory of a map client which runs on conventional or typical hardware. In particular, the minor roads may be characterized by at least one of: having a relatively lower traffic throughput capacity, having a relatively lower historic usage, being administered by a lower-ranking road authority. For example a national road authority may be responsible for building and maintain roads suitable for long-distance travel, whereas local, rural or low-grade roads are entrusted to a municipal/regional road authority. Also proprietary definitions may be used.
Generally, all terms used in the claims are to be interpreted according to their ordinary meaning in the technical field, unless explicitly defined otherwise herein. All references to “a/an/the element, apparatus, component, means, step, etc.” are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, step, etc., unless explicitly stated otherwise. The steps of any method disclosed herein do not have to be performed in the exact order disclosed, unless explicitly stated.
The disclosed aspects, examples (including any preferred examples), and/or accompanying claims may be suitably combined with each other as would be apparent to anyone of ordinary skill in the art. Additional features and advantages are disclosed in the following description, claims, and drawings, and in part will be readily apparent therefrom to those skilled in the art or recognized by practicing the disclosure as described herein.
Aspects and embodiments are now described, by way of example, with reference to the accompanying drawings, on which:
The detailed description set forth below provides information and examples of the disclosed technology with sufficient detail to enable those skilled in the art to practice the disclosure.
The map client 120 comprises processing circuitry 122 which implements at least a path-planning module 122.1 and a path-execution module 122.2. The path-planning module 122.1 and the path-execution module 122.2 may correspond to different software programs that the processing circuitry 122 executes.
The map client 120 further comprises a memory 121 acting, at least in part, as a map-data memory configured to store basic-layer map data semi-persistently and to store any refinement-layer map data temporarily. The basic-layer map data may correspond to a preloaded map. The memory 121 includes at least a portion acting as a runtime memory (e.g., with relatively fast access, oftentimes volatile), but it may optionally include a non-volatile portion as well.
The fact that the basic-layer map data is stored semi-persistently may signify that the map client 120 makes best efforts to always keep an up-to-date version of the basic-layer map data in the memory 121. For example, when the map client 120 is restarted or the memory 121 is erased for other reasons, the map client 120 attempts to download the basic-layer map data as soon as practicable (e.g., in view of available connectivity), and it attempts to obtain an update or incremental update of a portion of the basic-layer map data once notified that the update has been released. Alternatively, the server 110 pushes the relevant map data to the map client 120. This could include pushing the basic-layer map data to the map client 120 after a restart and/or pushing updated map data (e.g., an updated portion of the basic-layer map data) to the map client 120. In some embodiments of the map client 120, the basic-layer map data is kept available in the map-data memory 121 for future use, whereas it is permitted to delete the refinement-layer map data from the map-data memory 121, or overwrite it, after the refinement-layer map data has been used.
The map client 120 further comprises a wireless interface 123 adapted for cellular (e.g., 3GPP LTE or 3GPP NR) or non-cellular (e.g., IEEE 802.11, C-V2X) communication, including data communication. The embodiment illustrated in
A server (or host computer, or map-data repository) 110 is shown in the upper left half of
The map data in the memory 111 includes at least a current version of a basic layer and of a refinement layer of a navigation map. The map data may optionally include historic versions. For purposes of the operation of the map client 120, the road segments in the navigation map are classified as either major roads or minor roads. The basic layer includes road segments of the major roads but normally lacks road segments of the minor roads. The refinement layer includes road segments of the minor roads. Whether or not the refinement layer shall include the road segments of the major roads depends on how the map data is to be used in the map client 120: if the refinement-layer map data is intended to replace the basic-layer map data in the areas where it is available, then the refinement-layer map data includes the road segments of the major roads; but if the refinement-layer map data is intended to augment the basic-layer map data (i.e., it is to be merged with the basic-layer map data or used in combination therewith) in the areas where it is available, then the refinement-layer map data does not need to include the road segments of the major roads.
As explained above, there exist a number of ways of defining the distinction between major and minor roads, and none of these definitions is an essential feature of the invention. A definition of major/minor roads may be considered suitable if the major roads shall be such that the basic-layer map data supports basic path-planning functionality, whereas the minor roads may be such as to support more optimized path planning and/or more efficient rerouting. The major roads should not be too liberally defined, to the point where it occupies a data volume that cannot be conveniently stored semi-persistently in the map-data memory of a map client implemented with conventional or typical hardware.
For example, the minor roads may be characterized by one of the following properties or a combination thereof:
To illustrate this concept of map layers,
The navigation map may have further features that are not visible in
Returning to
The path-planning module 122.1 in the map client 120 is configured to generate paths according to a planning query using the map data stored in the map-data memory 121. It is noted that the stored map data may include basic-layer map data and refinement-layer map data. Each of these layers may exist in different versions; newly released versions (updates, incremental updates) cannot always be distributed instantly to the map clients 120, notably due to connectivity limitations, or because the map clients 120 are under heavy load by other tasks and need to de-prioritize update requests. As a result, the map-data memory 121 may hold an older version of the map data than the server 110, such that the path-planning module 122.1 may have to generate paths based on said older version. In some embodiments, the path-planning module 122.1 uses only the map data in the map-data memory 121.
The generated paths include at least a main path and possibly-depending on geographic conditions, driving conditions and the broadness of the planning query-also one or more alternative paths. The path planning may be performed using any suitable path-planning (or motion-planning) algorithm, including potential-field based algorithms, sampling-based algorithms, grid-based searches, interval-based searches, geometric algorithms, with A* and rapidly exploring random tree (RRT) as to notable examples. In some embodiments, the path-planning module 122.1 is further configured to generate, during execution of a path, one or more additional alternative paths according to the planning query from the estimated current position using the map data stored in the map-data memory.
A planning query in the sense of the present disclosure may be a command to the path-planning module to present all drivable paths away from the current position which satisfy some explicit or implicit criterion. For example, the planning query may request paths with at least a minimum probability of being used by the vehicle. The probability may be based on a historic driving pattern of the vehicle, or of a similar vehicle or of a fleet of vehicles to which the vehicle belongs. The probability may alternatively be estimated by a machine-learning model which takes as input such map data that describes the road segments which make up the path (e.g., geometry, geography, topography, road type) and which has been trained on historic driving patterns. In another example, the planning query may stipulate that only such paths should be presented which use roads with at least a minimum carrying capacity and/or with at least a minimum expected average speed and/or which allow a special vehicle type to pass (e.g., trailer, crane, excess height, excess weight). In another example, the planning query requests paths which are at most a specified distance (say, 20 km) from a charging station or refueling station. In another example, the planning query requests paths which generally travel into a specified direction (say, north). In another example, the planning query requests paths leading from a starting position (say, the current position) to a specified destination. The planning query may include a termination criterion, e.g., the generated path shall end a specified distance from a starting position or from a current position. For the purposes of the present disclosure, the planning query need not be destination-based, i.e., it need not be a request for routing between a starting position and a destination.
The path-execution module 122.2 in the map client 120 is configured to provide driving instructions for following the main path from the estimated current position. Driving instructions may here refer to visual data (e.g., a relevant map view, a symbol showing a next turn or another upcoming maneuver), audible data (e.g., recorded or synthesized spoken instructions), haptic instructions (e.g., a vibratory alert to the driver that a turn or another maneuver is imminent and will be displayed) and the like. The driving instructions may be descriptive (e.g., displaying a relevant map view to support the driver's decision-making) or imperative (e.g., requesting the driver to make a specific maneuver) or a combination of these. As mentioned, a “driver” in this sense may be a human or an ADS.
The path-execution module 122.2 is configured to provide the driving instructions based on the map data currently stored in the map-data memory 121. For example, if refinement-layer map data have been downloaded to the memory 121 after the main path was generated, the path-execution module 122.2 includes this new data in the displayed map view. Further, if an updated version of the map data has been downloaded to the memory 121, the driving instructions are to be based on this updated version. To achieve this, in some embodiments, the path-execution module 122.2 is configured to generate the driving instructions shortly before they are to be presented to the driver; the option of generating the driving instructions as soon as the main and alternative paths have been generated by the path-planning module 122.1 is less favorable from this point of view, as newer map data for the same regions of the navigation map may be received in the meantime.
While the path-execution module 122.2 provides the driving instructions relating to the main path, it assesses whether one of the alternative paths is more suitable for driving from the current position than the main path. The suitability of a path may be based on the vehicle's position (on or away from the path), it may refer to a degree of loading or degree of congestion on the road segments making up the path, or it may refer to local meteorological conditions. In implementations, the expected traveling speed or the estimated time of arrival may be a useful proxy for each of these factors. In implementations where no proprietary speed and congestion data are available, such data can be retrieved from publicly available online live maps, such as via the Roads API available from Google Cloud within Google LLC, Mountain View, CA, United States. Further possible suppliers include HERE Destination Weather, Metcomatics AG, Open Weather Map, AccuWeather Inc., Klimator AB. If the path-execution module 122.2 determines that one of the alternative paths is more suitable for driving from the current position than the main path, it shall adopt it as new main path. Accordingly, the driving instructions will henceforth relate to the new main path.
To support the mentioned functionalities by the path-planning module 122.1 and the path-execution module 122.2, the wireless interface 123 is configured to request refinement-layer map data from the server corresponding to a neighborhood of the main path 401. The wireless interface 123 may optionally be configured to request refinement-layer map data from the server corresponding to neighborhoods of the alternative path or paths 402 as well. The request may be limited to the vicinity of the current position of the map client 120, i.e., the refinement-layer data is requested for an environment which is at the same time close to the path and close to the current position. The request may be renewed (re-submitted) when the current position has changed as a result of the vehicle's movement; this may be described such that the wireless interface 123 is configured to update the neighborhood in accordance with the current position and to request, if necessary, additional refinement-layer map data from the server 110 corresponding to the updated neighborhood.
To illustrate the concept of a neighborhood, 2, then the tube-shaped neighborhood 410 is the point set
where d denotes a size (width) of the neighborhood 410, and the distance function may be defined as
If ∥x−y∥ is taken to be the Euclidean norm, the distance will be measured in a direction orthogonal to the curve. In
It is furthermore seen in
where the vicinity has radius . Additionally, and particularly in the case of paths generated by a destination-based planning query, the extent of the neighborhoods 410 can be limited to a forward direction of movement; the outcome may have the appearance shown in
In some embodiments, the wireless interface 123 is configured to request refinement-layer map data from the server 110 corresponding to a neighborhood 410 having a size that it inversely related to a local road density of the navigation map. A local road density in this sense is a local characteristic of the navigation map, i.e., the local road density varies between different points or regions of the navigation map. It may be quantified as a total length of the road segments per unit area of the navigation map. (In
In implementations where the navigation map is divided into tiles, the map client 120 may identify a number of candidate tiles around the main path 401 (and optionally around the alternative paths 402) and obtain the local road density for each. The local road density for each tile may for example be available on request from the server 110 (this request is much less demanding than downloading the full refinement-layer map data for the same tiles) or possibly, the map client 120 may pre-load a table of the local road density for each tile at initialization or periodically.
To determine which tiles among the candidate tiles are to be requested, the map client 120 may read the local road density ρ(C) for a tile containing a position C on the path, evaluate the size d(ρ(C)) and select further candidate tiles accordingly. The local road density of the further candidate tiles may be disregarded. Alternatively, to achieve a similar purpose, the map client 120 may operate iteratively in the following way:
Specifically, if the local road density corresponds to a data volume per unit area of the navigation map and the size has an inverse quadratic dependence (d(ρ)=K2/ρ2), then the configured behavior of requesting refinement-layer map data for a neighborhood having this size effectively amounts to a condition of meeting a predefined data budget. In other words, the iterative procedure outlined just above amounts to selecting so many candidate tiles around the current position of the vehicle that the total volume of the data representing these tiles is equal to the data budget. For example, the map client 120 may consider a circle or rectangle centered on the current position, inside which the candidate tiles are to be included in the neighborhood, and gradually increase the size of this shape until the data budget has been reached.
Turning to
Throughout the execution of the method 300, the current position is estimated using a geo-positioning technique, as may be implemented by a GNSS receiver. In the flowchart of
In a step 302, the map client 120 receives map data from the server 110 over a wireless link 130. The map data is to be stored semi-persistently in a map-data memory 121 of the map client 120, wherein the received map data belongs to a basic layer 210 of a navigation map 200 and the basic layer includes road segments of major roads 231 (see example in
In a step 303, the map client 120 generates a plurality of paths according to a planning query and using (only) the map data stored in the map-data memory. The generated paths include a main path 401 and one or more alternative paths 402 (see examples in
In a step 304, based on the output of step 303, the map client 120 requests map data from the server to be stored temporarily in the map-data memory. The requested map data pertains to a neighborhood 410 (see
Further, in a step 305, the map client 120 provides—via a visual, aural or haptic user interface—driving instructions for following the main path from the estimated current position. In the meantime, in step 306, the map client 120 assesses whether one of the alternative paths is more suitable for driving from the current position than the main path. Further in the meantime while executing the main path by providing the driving instructions, in an optional step 307, the map client generates one or more additional alternative paths 402 from the estimated current position. To generate these additional alternative paths 402, the map client uses (only) the map data stored in the map-data memory 121, i.e., including the requested map data pertaining to the neighborhood 410 of the main path 401.
At initialization the map client 120 has a preloaded map consisting of road segments for selected major roads (basic layer). The server 110 all roads, including minor roads (refinement layer), and a new map version is released biweekly. All road segments have an individual version that can be updated between map versions.
When the map client 120 is initialized in a virgin state, it checks for the version of the navigation map in the server 110. If the preloaded map has the same version as the server's navigation map, the map client 120 uses the preloaded map as is. The map client 120 builds a tree of possible paths. Most probably, since only segments of major roads are available in the preloaded map, the length or the probability of some possible paths does not reach the thresholds. A map data request will therefore be sent to the server 110, wherein a tree of possible paths is calculated, including main and alternative paths. The map client 120 is updated with the road segments missing. The amount of data is limited based on a minimum length and a minimum probability to reach a certain road segment. The map client 120 continues to build and monitor the tree of possible paths. When the length or the probability again falls below the threshold, the wireless interface 123 sends a renewed map data request to the sever 110. Based on the current position of the vehicle—and hence of the map client 120—an updated tree of possible paths is calculated, and the map client 120 is again updated with the map data misses. The amount of data is limited based on a minimum length and a minimum probability to reach a certain road segment. Parallel to the preloaded map (base layer), the map client 120 stores the downloaded road segments (refinement layer) in the map-data memory 121 for reuse next time the same paths are driven.
When a new map version becomes available in the server 110, the map client 120 gets notified (update alert). Since the memory 121 and the preloaded map has an older version, the map client 120 determines that the update is necessary. The map client 120 builds a tree of possible paths using map segments from the old map version. The road segments from the old map version may be verified by sending a map verification request to the server 110, including road segment identifiers and version numbers. The server 110 verifies the segments against the new map version, and sends the map client 120 an update message with changed road segments and removed road segments. The map client 120 then starts to build the new map version using old unchanged and new updated road segments.
Later, when the length or the probability of possible paths in the tree drops below the threshold, a map data request is sent to the server 110. Based on the vehicle's (the map client's 120) new position and what data is available, an updated tree of possible paths is calculated, and the map client 120 is updated with the map data it misses. The map client 120 stores the new and updated road segments are stored in the map-data memory 121. In parallel, it also stores information about what road segment versions that are valid for the new map version, for reuse next time the same paths are driven.
At such times when the map client 120 has to operate without a functioning connection to the server 110, no verification requests can be sent to the server 110 but the vehicle still has all preloaded segments and all cached segments available in the memory 121. The map client 120 builds and monitors the tree of possible paths based on the current content of the memory 121, e.g., the latest version of all preloaded road segments and all road segments. By using the available version of the road segments stored in memory 121 while the server 110 is unavailable, the map client 120 is able to operate without access to the latest map version, which favors reliability and robustness.
By way of example,
The computer system 600 is adapted to execute instructions from a computer-readable medium to perform these and/or any of the functions or processing described herein. The computer system 600 may be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, or the Internet. While only a single device is illustrated, the computer system 600 may include any collection of devices that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. Accordingly, any reference in the disclosure and/or claims to a computer system, computing system, computer device, computing device, control system, control unit, electronic control unit (ECU), processor device, processing circuitry, etc., includes reference to one or more such devices to individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. For example, control system may include a single control unit or a plurality of control units connected or otherwise communicatively coupled to each other, such that any performed function may be distributed between the control units as desired. Further, such devices may communicate with each other or other devices by various system architectures, such as directly or via a Controller Area Network (CAN) bus, etc.
The computer system 600 may comprise at least one computing device or electronic device capable of including firmware, hardware, and/or executing software instructions to implement the functionality described herein. The computer system 600 may include processing circuitry 602 (e.g., processing circuitry including one or more processor devices or control units), a memory 604, and a system bus 606. The computer system 600 may include at least one computing device having the processing circuitry 602. The system bus 606 provides an interface for system components including, but not limited to, the memory 604 and the processing circuitry 602. The processing circuitry 602 may include any number of hardware components for conducting data or signal processing or for executing computer code stored in memory 604. The processing circuitry 602 may, for example, include a general-purpose processor, an application specific processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a circuit containing processing components, a group of distributed processing components, a group of distributed computers configured for processing, or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. The processing circuitry 602 may further include computer executable code that controls operation of the programmable device.
The system bus 606 may be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and/or a local bus using any of a variety of bus architectures. The memory 604 may be one or more devices for storing data and/or computer code for completing or facilitating methods described herein. The memory 604 may include database components, object code components, script components, or other types of information structure for supporting the various activities herein. Any distributed or local memory device may be utilized with the systems and methods of this description. The memory 604 may be communicably connected to the processing circuitry 602 (e.g., via a circuit or any other wired, wireless, or network connection) and may include computer code for executing one or more processes described herein. The memory 604 may include non-volatile memory 608 (e.g., read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.), and volatile memory 610 (e.g., random-access memory (RAM)), or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a computer or other machine with processing circuitry 602. A basic input/output system (BIOS) 612 may be stored in the non-volatile memory 608 and can include the basic routines that help to transfer information between elements within the computer system 600.
The computer system 600 may further include or be coupled to a non-transitory computer-readable storage medium such as the storage device 614, which may comprise, for example, an internal or external hard disk drive (HDD) (e.g., enhanced integrated drive electronics (EIDE) or serial advanced technology attachment (SATA)), HDD (e.g., EIDE or SATA) for storage, flash memory, or the like. The storage device 614 and other drives associated with computer-readable media and computer-usable media may provide non-volatile storage of data, data structures, computer-executable instructions, and the like.
Computer-code which is hard or soft coded may be provided in the form of one or more modules. The module(s) can be implemented as software and/or hard-coded in circuitry to implement the functionality described herein in whole or in part. The modules may be stored in the storage device 614 and/or in the volatile memory 610, which may include an operating system 616 and/or one or more program modules 618. All or a portion of the examples disclosed herein may be implemented as a computer program 620 stored on a transitory or non-transitory computer-usable or computer-readable storage medium (e.g., single medium or multiple media), such as the storage device 614, which includes complex programming instructions (e.g., complex computer-readable program code) to cause the processing circuitry 602 to carry out actions described herein. Thus, the computer-readable program code of the computer program 620 can comprise software instructions for implementing the functionality of the examples described herein when executed by the processing circuitry 602. In some examples, the storage device 614 may be a computer program product (e.g., readable storage medium) storing the computer program 620 thereon, where at least a portion of a computer program 620 may be loadable (e.g., into a processor) for implementing the functionality of the examples described herein when executed by the processing circuitry 602. The processing circuitry 602 may serve as a controller or control system for the computer system 600 that is to implement the functionality described herein.
The computer system 600 may include an input device interface 622 configured to receive input and selections to be communicated to the computer system 600 when executing instructions, such as from a keyboard, mouse, touch-sensitive surface, etc. Such input devices may be connected to the processing circuitry 602 through the input device interface 622 coupled to the system bus 606 but can be connected through other interfaces, such as a parallel port, an Institute of Electrical and Electronic Engineers (IEEE) 1394 serial port, a Universal Serial Bus (USB) port, an IR interface, and the like. The computer system 600 may include an output device interface 624 configured to forward output, such as to a display, a video display unit (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 600 may include a communications interface 626 suitable for communicating with a network as appropriate or desired.
The operational actions described in any of the exemplary aspects herein are described to provide examples and discussion. The actions may be performed by hardware components, may be embodied in machine-executable instructions to cause a processor to perform the actions, or may be performed by a combination of hardware and software. Although a specific order of method actions may be shown or described, the order of the actions may differ. In addition, two or more actions may be performed concurrently or with partial concurrence.
The terminology used herein is for the purpose of describing particular aspects only and is not intended to be limiting of the disclosure. As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items. It will be further understood that the terms “comprises,” “comprising,” “includes,” and/or “including” when used herein specify the presence of stated features, integers, actions, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, actions, steps, operations, elements, components, and/or groups thereof.
It will be understood that, although the terms first, second, etc., may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element without departing from the scope of the present disclosure.
Relative terms such as “below” or “above” or “upper” or “lower” or “horizontal” or “vertical” may be used herein to describe a relationship of one element to another element as illustrated in the Figures. It will be understood that these terms and those discussed above are intended to encompass different orientations of the device in addition to the orientation depicted in the Figures. It will be understood that when an element is referred to as being “connected” or “coupled” to another element, it can be directly connected or coupled to the other element, or intervening elements may be present. In contrast, when an element is referred to as being “directly connected” or “directly coupled” to another element, there are no intervening elements present.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. It will be further understood that terms used herein should be interpreted as having a meaning consistent with their meaning in the context of this specification and the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
It is to be understood that the present disclosure is not limited to the aspects described above and illustrated in the drawings; rather, the skilled person will recognize that many changes and modifications may be made within the scope of the present disclosure and appended claims. In the drawings and specification, there have been disclosed aspects for purposes of illustration only and not for purposes of limitation, the scope of the disclosure being set forth in the following claims.
Number | Date | Country | Kind |
---|---|---|---|
23218658.5 | Dec 2023 | EP | regional |
The present application claims priority to European Patent Application No. 23218658.5, filed on Dec. 20, 2023, and entitled “MAP CLIENT FOR A VEHICLE,” which is incorporated herein by reference in its entirety.