Method and system for map matching
Patent Information
- Application Number
- CN202311334795.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2016-10-13
- Filing Date
- 2017-07-28
- Publication Date
- 2026-09-25
- Estimated Expiration
- 2037-07-28
AI Technical Summary
然而,此类系统可为不合意地复杂的
[0175]根据本发明的另外方面或实施例,本发明可包含参考本发明的其它方面或实施例描述的特征中的任何者只要它们不互相不一致。
Smart Images

Figure CN117367439B_ABST
Abstract
Description
[0001] Information related to divisional application
[0002] This case is a divisional application. The parent application of this divisional application is the invention patent application filed on July 28, 2017, with application number 201780046315.1 and title "Method and System for Map Matching". Technical Field
[0003] The present invention relates to a system and method for matching the current location of a device to an electronic map indicating a navigable network. Background Technology
[0004] Portable navigation devices (PNDs) that include GPS (Global Positioning System) signal reception and processing capabilities are well-known and widely used in in-vehicle navigation systems or other vehicle navigation systems. Generally, a modern PND includes a processor, memory (at least one of volatile and non-volatile, and usually both), and map data stored in the memory. The processor and memory cooperate to provide an execution environment in which a software operating system can be built, and additionally, commonly, one or more additional software programs are provided to enable control of the PND's functionality and to provide various other functions. Typically, these devices further include one or more input interfaces that allow the user to interact with and control the device, and one or more output interfaces through which information can be relayed to the user. Illustrative examples of output interfaces include a visual display and a speaker for audible output. Illustrative examples of input interfaces include one or more physical buttons (which do not necessarily have to be located on the device itself, but may be located on the steering wheel if the device is built into a vehicle) for controlling the on / off operation or other features of the device, and a microphone for detecting the user's voice. In a particularly preferred arrangement, the output interface display may be configured as a touch-sensitive display (by touch overlay or otherwise) to additionally provide an input interface through which the user can operate the device via touch.
[0005] Navigation devices often also utilize digital maps representing a navigable network on which vehicles travel. A digital map (or sometimes called a mathematical map), in its simplest form, is essentially a database containing data representing nodes, most commonly road intersections, and the lines between those nodes representing the roads between those intersections. In more detailed digital maps, lines can be divided into segments (or "arcs") defined by start (or "tail") nodes and end (or "head") nodes. These nodes can be "real," where they represent road intersections where at least three lines or segments intersect, or they can be "artificial," where they are provided as anchor points for segments not defined by real nodes at one or both ends to provide, in particular, information about the shape of a particular road segment or to identify the location along the road where certain characteristics of the road (e.g., speed limits) change. In fact, all modern digital maps, nodes, and segments are further defined by various attributes, again represented by data from the database. For example, each node will typically have geographic coordinates to define its real-world location, such as latitude and longitude. Nodes will typically have associated control data indicating whether it is possible to move from one road to another at an intersection; while segments will also have associated attributes such as maximum permissible speed, lane size, number of lanes, and whether there is a median strip between lanes.
[0006] Navigation devices typically include Global Navigation Satellite System (GNSS) sensors. Timing and positioning data encoded in satellite broadcast signals are received and subsequently processed to determine the device's current position, along with other information such as speed and direction of travel. GNSS sensors are usually based on GPS, formally known as NAVSTAR, but may also be based on Russia's GLOSNASS, the European Galileo positioning system, COMPASS, or IRNSS (Indian Regional Navigation Satellite System). Vehicle navigation devices may also utilize inertial navigation sensors, also known as dead reckoning (DR) sensors, which are used to determine the device's relative position—that is, the new position is based on the direction of travel and the distance traversed from the previous position, rather than an absolute position (as is the case with GNSS sensors). DR sensors include sensors for measuring the traversed distance, such as speedometers, odometers, and accelerometers, and sensors for measuring the direction of travel, such as gyroscopes. In many cases, data from GNSS and DR sensors are combined to ensure that the device's current position is always available, even when satellite signals are partially or completely blocked.
[0007] The utility of such navigation devices lies primarily in their ability to determine a route between a first location (typically the starting or current location) and a second location (typically the destination). These locations can be entered by the device user using any of a variety of different methods, such as postal codes, street names and house numbers, previously stored "well-known" destinations (e.g., famous locations, municipal locations such as sports fields or indoor swimming pools or other points of interest) and particularly preferred or recently visited destinations. Typically, the navigation device is enabled by route planning software to search map data for the "best" or "optimal" route between the starting and destination addresses. The "best" or "optimal" route is determined based on predetermined criteria and is not necessarily the fastest or shortest route. The search along the route it guides the driver can be quite complex, and the search can take into account historical, existing, and / or predicted traffic and road information. During navigation along the calculated route, it is useful for such devices to provide visual and / or audible instructions to guide the user along the selected route to the end of that route (i.e., the desired destination). It is also useful for the device to display map information on the screen during navigation. This information is updated on the screen periodically so that the displayed map information represents the current location of the device, and therefore, in the case of the device being used for in-vehicle navigation, represents the current location of the user or the user's vehicle.
[0008] Therefore, as will be understood, a crucial process in navigation devices is determining the location on a digital map corresponding to the device's current position, for example, as determined by a positioning engine based on GNSS sensors and / or DR sensors. This process is commonly referred to as map matching. Various examples of map matching algorithms are described in the article "Current map-matching algorithms for transport applications: state-of-the-art and future research directions" by Quddus et al., *Transportation Research Part C: Emerging Technologies*, Vol. 15, No. 5, pp. 312–328 (2007).
[0009] Figure 1This demonstrates an exemplary functional design of a positioning and map matching system. In the system, a positioning engine (e.g., a software module) 20 receives and processes data from at least one of a GNSS sensor 10 and a DR sensor 12 to continuously output location data. This location data, i.e., each location sample, contains at least one set of geographic coordinates, such as latitude and longitude, and typically also includes information such as direction of travel, speed, and distance traveled (from the previous location sample). The location samples are input to a map matching engine 30 that accesses digital map data in a storage component 32, and outputs the corresponding map matching position for each location sample, for example, as data identifying segments of the digital map and offsets from the beginning or end nodes. The map matching position is received by one or more client devices or software modules 40, for example, to determine a route from the current location to a destination, thereby generating a visual representation of a digital map with an icon indicating the current location of the device.
[0010] The earliest map matching methods included point-to-point and point-to-curve matching, which aligned individual location samples to the nearest nodes or segments on the digital map based on distance measurements. These methods are described in more detail in, for example, the paper "Some map matching algorithms for personal navigation assistants" by White et al., *Transport Research C*, Vol. 8, pp. 91–108 (2000). However, such methods are highly prone to error due to the dual uncertainties and inaccuracies inherent in both the location samples received from the positioning engine and the digital map (which represents a navigable network, e.g., a road network). This is particularly difficult to correctly distinguish in urban areas with high road density and complex intersections, and in cases of parallel or overlapping roads. Two typical approaches have been used to improve these early matching algorithms. One approach involves introducing additional measurements beyond distance, such as direction of travel, distance traveled, and segment attributes, such as turning restrictions. The other approach incorporates network topology while maintaining the topological integrity of the map matching results. However, such systems can become undesirably complex.
[0011] The applicant has recognized that there is still a need for improved methods and systems for matching location data on maps. Summary of the Invention
[0012] According to a first aspect of the invention, a method is provided for matching the current location of a device to an electronic map of a network indicating navigable elements within a geographic area, the electronic map comprising a plurality of segments representing the navigable elements, the method comprising:
[0013] Obtain position data indicating the movement of the device, the position data including multiple position data samples indicating the position of the device at different times;
[0014] Obtain electronic map data about at least a portion of the area covered by the electronic map; and
[0015] Maintaining a candidate path library with respect to the electronic map, each candidate path being a possible path through the electronic map that may match the current location of the device, each candidate path comprising one or more segments of the electronic map, wherein the maintenance further comprises updating the candidate path library by expanding one or more of the candidate paths to provide expanded candidate paths, each expanded candidate path comprising at least one segment connected to the head end of the segment providing the original candidate path.
[0016] The method further includes:
[0017] Based on multiple location data samples, candidate paths that provide the best match for the location data are identified from the library;
[0018] The identified candidate path is used to obtain the estimated current position of the segment of the electronic map by the device, and output as the map matching current position; and
[0019] Generate data indicating that the map matches the current location.
[0020] This invention extends to a system for implementing any of the methods described herein or in the embodiments of the invention. Therefore, according to a second aspect of the invention, a system is provided for matching the current location of a device to an electronic map indicating a network of navigable elements within a geographic area, the electronic map comprising a plurality of segments representing the navigable elements, the system comprising:
[0021] A component for obtaining position data indicating the movement of the device, the position data including multiple position data samples indicating the position of the device at different times;
[0022] Components for obtaining electronic map data about at least a portion of the area covered by the electronic map; and
[0023] Components for maintaining a candidate path library with respect to the electronic map, each candidate path being a possible path through the electronic map that may match the current location of the device, each candidate path comprising one or more segments of the electronic map, wherein the maintenance further comprises updating the candidate path library by expanding one or more of the candidate paths to provide expanded candidate paths, each expanded candidate path comprising at least one segment connected to the head end of the segment providing the original candidate path.
[0024] The system further includes:
[0025] A component for identifying candidate paths that provide the best match for the location data from the library based on multiple location data samples;
[0026] A component for using the identified candidate path to obtain the estimated current position of the segment of the electronic map by the device, and outputting it as a map-matched current position; and
[0027] A component used to generate data indicating that the map matches the current location.
[0028] As those skilled in the art will understand, this aspect of the invention may, and preferably does, include, any and all of the preferred and optional features of the invention described herein with respect to any of the other aspects of the invention. Unless explicitly stated otherwise, the systems of the invention herein may include components for carrying out any steps of the methods described with respect to any aspect or embodiment of the invention, and vice versa.
[0029] This invention is a computer-implemented invention, and any of the steps described with respect to any aspect or embodiment of the invention may be implemented under the control of one or more processors. The components used to implement any of the steps described with respect to the system may be one or more processors.
[0030] The method of the present invention can be implemented in the context of navigation operations. Therefore, the method can be implemented by one or more processors of a device or system with navigation functionality. However, it will be understood that the method can also be implemented by any suitable system with map matching capabilities but not necessarily navigation functionality. For example, the method can be implemented by a computer system without navigation functionality (e.g., a desktop or laptop system) and / or an advanced driver assistance system (ADAS) that can be arranged to automatically control one or more systems within a vehicle.
[0031] The method of the present invention can be implemented using any system configured to provide the aforementioned functionality. The steps can be performed by a map matching engine.
[0032] The method of the present invention can be implemented by a mobile device. The mobile device has a memory and one or more processors. This device can be a dedicated navigation device, for example, having any of the features described in the background section above. This device can be a portable navigation device or an integrated in-vehicle device. The system can form part of an advanced driver assistance system (ADAS). However, in other embodiments, the mobile device can be any suitable mobile device running appropriate software, such as a mobile phone or tablet device. Typically, the mobile device will have location determination functionality. Typically, the mobile device will have a display for showing the user an indication of their current location on an electronic map. Alternatively, the method of the present invention can be implemented by a server. Other embodiments in which the method of the present invention is performed by a combination of a server and a mobile device are contemplated. Therefore, the system of the present invention can include a mobile device and / or a server arranged to perform the described steps. It will be understood that the map matching step of the present invention can be implemented by a map matching module decoupled from other modules that can use map matching data (e.g., a routing engine), and similarly, the map matching module can be decoupled from the module that provides the location data for the map matching module's operation.
[0033] The method includes obtaining electronic map data and location data of the movement of the indicating device to match the map. The electronic map data and location data are provided as input data to the map matching engine.
[0034] The method may include the step of obtaining electronic map data from a map database for use in a map matching method. The step of obtaining the electronic map may include requesting data from a local or remote source. The method may include requesting electronic map data relating to an area selected based on a sample of locations to be matched (i.e., the most recent location sample). For example, the electronic map data may be data relating to an area selected based on a predefined shape (e.g., a polygon (e.g., a rectangle)) selected based on the sample of locations to be matched. The area may contain a location, for example, centered on that location. In some embodiments, the map matching method may be performed by a system including a memory storing a map database. However, in other embodiments, the map database may be a remote map database, such as a remote map database of a server. The step of requesting electronic map data may be repeated as needed to obtain additional electronic map data, for example, when the current location is near the boundary of an area where its electronic map data was previously stored.
[0035] An electronic map comprises multiple segments of navigable elements connected by nodes, representing a navigable network within an area covered by the electronic map. The nodes connecting the segments of the electronic map can indicate real-world nodes (e.g., intersections of elements in the navigable network) or artificial nodes (as described above, which can be introduced into the electronic map to provide anchor points for segments with at least one end not defined by real-world nodes). This can be used to delineate segments extending between real-world nodes so that different attributes can be associated with portions of that segment, such as different road characteristics, e.g., speed limits, shape information, etc. While embodiments of the invention are described with reference to navigable elements in the form of road segments, it should be appreciated that the invention is also applicable to other navigable segments, such as segments of paths, rivers, canals, bike paths, traction paths, railway lines, or the like. For ease of reference, these are collectively referred to as road segments.
[0036] Each node of an electronic map is associated with location data indicating the real-world location of that node. Each node can be associated with location data indicating the longitude and latitude of that node. Each segment of the electronic map indicates the connectivity between the nodes of the map. Segments are directional and can indicate whether the segment is unidirectional (i.e., the navigable element represented by the segment can be traversed in only one direction) or bidirectional (i.e., the navigable element represented by the segment can be traversed in both directions). Each segment can extend between a tail node and a head node. Typically, each segment is a straight line segment. In other words, the electronic map indicates the topology and connectivity of the navigable network it represents.
[0037] The method includes obtaining location data indicating the movement of the device. The location data includes multiple location samples of the device's position at different times. Each location sample indicates the device's position at a time relevant to the device. Location data related to the most recent time, such as location samples, may be referred to as the "current location." The method attempts to match the current location based on the location data to a location on an electronic map. The location data can be obtained from any suitable location determination engine, for example, received from any suitable location determination engine. The location determination engine can be local or remote. The step of obtaining the location data preferably includes obtaining the location data from a remote location determination engine.
[0038] It will be understood that the present invention enables the decoupling of map matching functionality (e.g., an engine) from location determination functionality (e.g., an engine). The map matching engine can match location data at a rate different from the rate at which the map matching engine receives location data, i.e., at a rate different from the rate at which the location determination engine provides location samples. For example, the map matching engine can process the data at a rate lower than the rate at which it receives location data samples. Furthermore, the location data received by the map matching engine may not be immediately used in the map matching process.
[0039] The method may further include storing the acquired location data (regardless of how it was acquired) in a memory. This allows the data to be processed at a later stage, i.e., asynchronously by the map matching engine.
[0040] The obtained location data is preferably associated with time-series data. Preferably, the location data includes multiple location samples, each location sample including data indicating the location of the device and data indicating the time associated with said location. In a preferred embodiment, the location data is timestamped location data. Each location sample is then associated with a timestamp. Such embodiments including time-series information of the location data are suitable when the map matching and location determination engines are decoupled from each other. However, it is contemplated that the location data does not necessarily need to be associated with time-series information, where it can be inferred by the map matching engine in other ways or where it is not needed, for example, if the location determination engine and the map matching engine operate at the same rate. This could be a case where the map matching engine is not decoupled from the location determination engine. The method may include obtaining location data comprising multiple location samples and associating them with additional timestamps.
[0041] In some embodiments, the method can be extended to the step of determining location data. Location data may include any suitable data indicating the location of the device. The device may be any device wishing to match its location to a map. The device may be any mobile device, and may be a dedicated navigation device or any device with navigation functionality, such as a mobile phone or the like running appropriate software. The device may be a device performing the map matching step of the invention, or may be a remote device, for example, where map matching is performed by a server. The device is typically associated with a vehicle.
[0042] Location data may include any of the location data types described above. Location data may be based on data provided by GNSS sensors or multiple sensors (e.g., GPS data) or any other data obtainable by one or more GNSS sensors (e.g., GLOSNASS, COMPASS, or IRNSS). Location data may alternatively or additionally be based on data obtained from one or more dead reckoning (DR) sensors, such as those of a vehicle, arranged to provide data on the relative position of the indicating device. Therefore, positioning data may be any positioning data determined by the positioning engine based on GNSS sensors and / or DR sensors. Each location sample will then include any of the types of location data described above.
[0043] The location data for each time point, i.e., the location data sample, includes at least one set of geographic coordinates, such as latitude and longitude. In some embodiments, each location data sample further includes data indicating one or more of the following: direction of travel, speed, and distance traveled. The direction of travel and distance traveled data will be relative to the previous location sample. Each location sample may optionally include additional data, such as indicator data, slope, and estimated accuracy of the turning rate.
[0044] The method typically involves continuously receiving location data samples indicating the location of a device to be matched on a map. The positioning engine, regardless of its configuration, can continuously output such data. The positioning data may include multiple location data samples, each relating to different times, for example, multiple timestamped location data. Each of these location data samples can be matched to a map according to the method of the invention described herein. Location samples can be sequentially matched to the map, with each map-matched location sample providing an updated map match for the current location. As mentioned above, the map matching process may occur at a slower rate than the reception of location samples, or may have some other delay. The most recently matched location sample will be considered to provide a map match for the current location, even though, in reality, the device's current location may have moved forward by that time.
[0045] According to the invention, the method includes maintaining a library of candidate paths on an electronic map. Each path is a candidate path, wherein it is a possible path across the electronic map that may match the (current) location of the device. The library is therefore a dynamic library, wherein the candidate paths within the library change over time. Paths can be modified, added, or deleted from the library. Typically, each segment of the electronic map is linear. Therefore, each candidate path may be a polyline that comprises multiple segments of the electronic map.
[0046] In initial startup scenarios, such as when starting after a stationary period or when arriving from a location outside the road, the method may include identifying multiple segments in an electronic map close to the current location; that is, the received first location sample is used to provide a multiple candidate path startup set. The method may include determining polygons (e.g., rectangles) or any other areas on the electronic map based on the current location and identifying multiple segments in the electronic map that intersect with said polygons or other areas in the corresponding candidate paths to be used in providing the candidate path startup set. The method may include taking into account factors such as distance from the current location, orientation, etc., in selecting the multiple segments of the startup set. Here, the current location will be the first location sample received after startup.
[0047] After startup, the candidate route library can be expanded by extending existing routes and / or adding new routes. Such steps can be performed in response to received location data. The library may include first and second sets of candidate routes for different directions of travel, or may contain only candidate routes for the current direction of travel.
[0048] Each candidate path comprises one or more segments of an electronic map. Each path is a continuous path. A path is an extended path rather than a single point location. This allows matching the current location to the map to take into account previous location samples, and therefore, the path taken to the current location. This helps reduce the errors associated with the conventional point-to-point map matching techniques discussed above. However, the present invention includes additional steps that provide a greater improvement in map matching accuracy than can be obtained using prior art curve-to-curve map matching methods, which also take into account extended locations.
[0049] Preferably, at least some of the candidate paths include a first segment of the electronic map and at least one segment connected to the first segment. In other words, at least some of the nodes across the electronic map in the candidate paths extend between the connecting segments.
[0050] According to the invention, the method includes updating a candidate path library by expanding one or more of the candidate paths. Each segment in the electronic map has a head (node) and a tail (node), the head (node) being the front end of the segment, i.e., in the direction in which the segment is moving forward, and the tail (node) being the rear end of the segment from which it originates. Similarly, each candidate path has a head end at the front end (i.e., in the direction in which the path is moving forward) and a tail end at the rear end of the path. The method includes expanding the candidate paths to provide an expanded candidate path comprising at least one segment connected to the head end of the original candidate path. The segments will be connected to each other at nodes. The connecting segment is typically the starting segment at the node where the head end of the original candidate path's segment terminates. The distance along which the candidate path is extended along the connecting segment can be selected as needed. For example, this can be a predetermined distance, or it may extend all the way to the next node, etc. The distance can depend on the segment type. For example, in the case of a road segment, it may be necessary to extend the path further to meet the next node compared to the case of a segment being part of an urban road network. Imagine that the path can be extended to another segment that connects to the first connecting segment. It should be understood that the extension occurs in the direction of travel. The extended candidate path is then added to the candidate path library.
[0051] By expanding the candidate paths in the described manner, the resulting candidate path library will inherently include road connectivity information, thereby improving the ability to accurately match the current location to the map, even in more complex situations, such as when the current location is near a roundabout or where parallel roads exist. By incorporating such topological information into the candidate path data, the need to consider topological features (e.g., connectivity between segments) when performing subsequent parts of the matching process (e.g., determining which segment matches the location) is simplified; that is, the map matching process is streamlined. The step of expanding the original candidate paths is performed in the forward direction (i.e., the direction of movement).
[0052] Preferably, the path to be expanded is selected based on location data. The path to be expanded is preferably a path to which the device's location has previously been matched. The path expansion step can then be triggered when the device's (most recent) map-matched location is near the beginning of the path. For example, this could be when the map-matched location is within a predetermined distance of the beginning of the path. In this case, the next location data sample to be matched is likely to fall in an area beyond the beginning of the existing path. By expanding the path when the map-matched location is near its end, candidate paths extending onto connecting segments are created to provide suitable candidate paths for matching the next location data sample, thus providing continuity during the matching process, even in areas such as intersections. However, by expanding the path only when the map-matched location is near the beginning of the path, the number and length of paths in the candidate path library can be kept at a more manageable level.
[0053] In many cases, the segment providing the head end of a candidate path may terminate at a node with multiple originating segments. The segment providing the head end of the candidate path is then connected to multiple segments. In this case, the method may include expanding the candidate path to provide an expanded candidate path that includes at least one of the originating segments that connect to the head end of the original candidate path at the providing node, and generating at least one additional candidate path that includes at least one of the other originating segments that connect to the head end of the original candidate path at the providing node. Each additional candidate path may further include a portion leading to the node corresponding to the original candidate path. In other words, the original candidate path may be copied and expanded in different ways to provide one or more additional unique candidate paths. This process may be performed for each segment originating from the node.
[0054] Each expanded candidate path can be described as an ordered sequence of two or more segments of an electronic map. Each identified candidate path is distinct (i.e., unique). As mentioned above, while each candidate path is unique, different candidate paths may share common parts, such as those corresponding to the expanded original candidate path. The original candidate path can be replicated to provide portions of multiple new candidate paths.
[0055] The method may include storing data indicating each of the candidate paths in a candidate candidate library in a candidate path database. When a path is expanded or added, the method includes storing data indicating the expanded path or the new path in the database. The data indicating candidate paths may indicate an ordered sequence of map segments that define the path. The database may be stored in local memory or remote memory or a combination thereof, but is preferably stored locally.
[0056] It will be understood that different candidates among multiple candidate paths can be expanded at different times to provide expanded candidate paths in the candidate path library, i.e., when the current position is close to the end of the corresponding original candidate path.
[0057] It will be understood that over time, as the device moves and receives new location samples, the number of candidate paths in the candidate path library will increase. According to embodiments of the invention, steps are preferably taken to actively manage the candidate path library. This helps to keep the number of candidate paths and / or the length of the paths at a manageable level so that the map matching process can proceed efficiently. The method may include discarding paths and / or reducing the length of candidate paths. The method may include removing at least a portion of overlapping parts of paths. Actively managing the candidate path library may include updating the candidate path database to reflect changes in the candidate database.
[0058] These steps can be based on various criteria. For example, candidate paths may contain overlapping portions, such as tail portions. This can be the result of expanding candidate paths when the current position is near an intersection with two or more starting segments, as described above. The original candidate path can be copied to form parts of multiple new unique paths that are consecutive from the intersection along different segments. Methods for managing a candidate path library may include the step of removing tail portions of candidate paths. The method may include identifying and removing tail portions shared among different candidate paths, for example, removing common ancestor portions of paths. These tail portions often become redundant during the matching process because the current position advances beyond the head of the original candidate path.
[0059] Paths can be discarded based on the results of matching location data to candidate paths to determine the candidate path that best matches the location data. This can be done when a path is found to have too large an offset from the location data and / or when a path is found to have a low probability of matching an already traveled path.
[0060] The management of the candidate route library can be controlled based on the nature of the navigable network in the traversed area. For example, in the case of a dense urban road network, there will be a relatively large number of nodes. This will lead to frequent expansion and multiplication of routes. On the other hand, when traveling along highways, there will be relatively fewer nodes, and map segments will tend to be longer. In this scenario, the candidate route library will not increase at such a rapid rate. More proactive management of the library makes it easier to keep it at a manageable level in urban environments.
[0061] In certain special cases, it may be necessary to adjust the candidate library to provide useful candidate paths. One such case is where the current location is inside a tunnel. In some embodiments, the method may include determining that the current location is inside a tunnel or approaching a tunnel. This can be inferred from a lack of satellite-based positioning data for a period exceeding a given threshold. Approaching a tunnel can be detected using map data. The method may then include expanding the candidate paths only along segments leading to the tunnel exit.
[0062] According to another aspect of the present invention, a method is provided for matching the current location of a device to an electronic map of a network indicating navigable elements, the electronic map comprising a plurality of segments representing the navigable elements, the method comprising:
[0063] Obtain location data indicating the movement of the device, the location data including multiple location data samples indicating the location of the device at different times;
[0064] Obtain electronic map data about at least a portion of the area covered by the electronic map; and
[0065] Maintaining a candidate path library with respect to the electronic map, each candidate path being a possible path across the electronic map that may match the current location of the device, each candidate path comprising one or more segments of the electronic map, wherein maintaining further comprises: updating the candidate path library once it is detected that the current location is in or approaching a tunnel, by expanding one or more of the candidate paths to provide expanded candidate paths, the expanded candidate paths comprising at least one segment connected to the head end of the original candidate path, wherein the segment is a segment leading to the exit of the tunnel.
[0066] The method further includes:
[0067] Based on multiple location data samples, candidate paths that provide the best match for the location data are identified from the library;
[0068] The identified candidate path is used to obtain the estimated current position of the segment of the electronic map by the device, and output as the map matching current position; and
[0069] Generate data indicating that the map matches the current location.
[0070] This invention extends to a system for implementing any of the methods described herein or in the embodiments of the invention. Therefore, according to another aspect of the invention, a system is provided for matching the current location of a device to an electronic map indicating a network of navigable elements, the electronic map comprising a plurality of segments representing the navigable elements, the system comprising:
[0071] A component for obtaining position data indicating the movement of the device, the position data including multiple position data samples indicating the position of the device at different times;
[0072] Components for obtaining electronic map data about at least a portion of the area covered by the electronic map; and
[0073] Components for maintaining a candidate path library with respect to the electronic map, each candidate path being a possible path through the electronic map that may match the current location of the device, each candidate path comprising one or more segments of the electronic map, wherein the maintenance further comprises: updating the candidate path library once the current location is detected to be in or approaching a tunnel by expanding one or more of the candidate paths to provide expanded candidate paths, the expanded candidate paths comprising at least one segment connected to the head end of the segment providing the original candidate path, wherein the segment is a segment leading to the exit of the tunnel.
[0074] The system further includes:
[0075] A component for identifying candidate paths that provide the best match for the location data from the library based on multiple location data samples;
[0076] A component for using the identified candidate path to obtain the estimated current position of the segment of the electronic map by the device, so as to output the map as a current position for matching; and
[0077] A component used to generate data indicating that the map matches the current location.
[0078] As will be appreciated by those skilled in the art, this aspect of the invention may, and indeed does include, any and all of the preferred and optional features of the invention described herein with respect to any of the other aspects of the invention. Unless explicitly stated otherwise, the systems of the invention herein may include components for carrying out any steps of the methods described with respect to any aspect or embodiment of the invention, and vice versa.
[0079] The invention according to these other aspects is a computer-implemented invention, and any of the steps described with respect to any aspect or embodiment of the invention may be implemented under the control of one or more processors. The components for implementing any of the steps described with respect to the system may be one or more processors.
[0080] In embodiments where the head of a candidate path terminates at a node having a plurality of starting segments leading to an exit of the tunnel, the method may include expanding the candidate path to provide an expanded candidate path comprising at least one of starting segments including a segment connecting to the head of the original candidate path at the providing node, and generating at least one additional candidate path comprising at least one of additional starting segments including a segment connecting to the head of the original candidate path at the providing node. Each additional candidate path may further include a portion leading to the node corresponding to the original candidate path. In other words, the original candidate path may be copied and expanded in different ways to provide one or more additional unique candidate paths. This process may be implemented for each segment originating from the node leading to an exit of the tunnel.
[0081] Another special case is where a U-turn is detected. In this case, additional candidate paths with the opposite direction to those previously included in the library can be created. In an embodiment, the dynamic candidate path library contains a first set of candidate paths, each path being a possible path across the electronic map that may match the device's current position in a first direction of travel, and the method includes: once a U-turn maneuver has been detected by the device, creating a set of additional candidate paths to include in the dynamic library, wherein each candidate path is a possible path across the electronic map that may match the device's current position in a second opposite direction of travel, and each candidate path includes at least a portion of one or more segments of the electronic map. The set of additional candidate paths can be used for map matching while the travel directions remain opposite. However, if the U-turn detection is erroneous and the travel direction remains unchanged (e.g., in the case of hairpin turns being confused with U-turns), then it is preferable to maintain the original set of candidate paths. Maintaining both sets of paths allows for continuous map matching as the travel directions change. As matching progresses, paths associated with the previous travel direction can be gradually discarded.
[0082] According to another aspect of the present invention, a method is provided for matching the current location of a device to an electronic map of a network indicating navigable elements, the electronic map comprising a plurality of segments representing the navigable elements, the method comprising:
[0083] Obtain location data indicating the movement of the device, the location data including multiple location data samples indicating the location of the device at different times;
[0084] Obtain electronic map data about at least a portion of the area covered by the electronic map; and
[0085] Maintaining a candidate path library on the electronic map, each candidate path being a possible path through the electronic map that may match the device's current position in a first driving direction, each candidate path comprising one or more segments of the electronic map, wherein maintaining further comprises: once a U-turn maneuver has been detected by the device, creating an additional set of candidate paths to include in the library, wherein each candidate path is a possible path through the electronic map that may match the device's current position in a second opposite driving direction, each candidate path comprising one or more segments of the electronic map.
[0086] The method further includes:
[0087] Based on multiple location data samples, candidate paths that provide the best match for the location data are identified from the library;
[0088] The identified candidate path is used to obtain the estimated current position of the segment of the electronic map by the device, and output as the map matching current position; and
[0089] Generate data indicating that the map matches the current location.
[0090] This invention extends to a system for implementing any of the methods described herein or in the embodiments of the invention. Therefore, according to another aspect of the invention, a system is provided for matching the current location of a device to an electronic map indicating a network of navigable elements, the electronic map comprising a plurality of segments representing the navigable elements, the system comprising:
[0091] A component for obtaining position data indicating the movement of the device, the position data including multiple position data samples indicating the position of the device at different times;
[0092] Components for obtaining electronic map data about at least a portion of the area covered by the electronic map; and
[0093] Components for maintaining a library of candidate paths on the electronic map, each candidate path being a possible path on the electronic map that may match the current position of the device in a first direction of travel, each candidate path comprising one or more segments of the electronic map, wherein the maintenance further comprises: once a U-turn maneuver has been detected by the device, creating a set of additional candidate paths to include in the library, wherein each candidate path is a possible path on the electronic map that may match the current position of the device in a second opposite direction of travel, each candidate path comprising one or more segments of the electronic map.
[0094] The system further includes:
[0095] A component for identifying candidate paths that provide the best match for the location data from the library based on multiple location data samples;
[0096] A component for using the identified candidate path to obtain the estimated current position of the segment of the electronic map by the device, and outputting it as a map-matched current position; and
[0097] A component used to generate data indicating that the map matches the current location.
[0098] As those skilled in the art will appreciate, this aspect of the invention may, and indeed does include, any one or more of the preferred and optional features of the invention described herein with respect to any of the other aspects of the invention. Unless explicitly stated otherwise, the systems of the invention herein may include components for carrying out any steps of the methods described in any aspect or embodiment of the invention, and vice versa.
[0099] The invention according to these other aspects is a computer-implemented invention, and any of the steps described with respect to any aspect or embodiment of the invention may be implemented under the control of one or more processors. The components for implementing any of the steps described with respect to the system may be one or more processors.
[0100] Another special case is the detection of reverse driving. Reverse driving refers to driving backward, that is, driving in the opposite direction of the vehicle, rather than forward in the opposite direction, such as after a U-turn. Therefore, the device or the vehicle associated with the device will still be oriented in the same direction as during forward travel when driving in reverse, but moving in the opposite direction. It has been found that, for map matching purposes, it is desirable to treat reverse driving as forward travel in the opposite direction and adjust and / or generate a candidate library accordingly. This allows the map matching process to run in the forward direction during reverse driving. The forward direction of the device can be internally reversed before executing the map matching method to enable map matching to be performed in the forward travel direction. Then, the forward direction associated with the map matching position should be internally reversed again after the map matching process.
[0101] In embodiments of the invention involving reverse driving, reverse driving can be detected in any suitable manner. Typically, reverse driving is detected using position data from dead reckoning sensors. Position data from DR sensors can indicate the negative distance traveled when reverse driving is performed. Reverse driving can also be detected, for example, by analyzing images from an image capture device (e.g., a camera) within the vehicle. For instance, in the case where the camera is facing forward, the size of features in the captured image will increase when moving forward and decrease when moving backward, and vice versa for the case where the camera is facing backward.
[0102] When reverse travel is detected, regardless of the method of implementation, a set of candidate paths can be created with directions opposite to those previously included in the library. In an embodiment, once the device is detected moving in the reverse direction, the dynamic candidate path library is replaced with a new set of candidate paths, where each candidate path is a possible path in the second opposite travel direction that may match the device's current position across an electronic map, and each candidate path includes one or more segments of the electronic map. This new set of candidate paths can be used for map matching as reverse travel continues. Once reverse travel stops and the vehicle begins moving again in the first travel direction, the dynamic candidate path library is again replaced with a new set of candidate paths, where each candidate path is a possible path in the first travel direction that may match the device's current position across an electronic map, and each candidate path includes one or more segments of the electronic map.
[0103] According to another aspect of the present invention, a method is provided for matching the current location of a device to an electronic map of a network indicating navigable elements, the electronic map comprising a plurality of segments representing the navigable elements, the method comprising:
[0104] Obtain location data indicating the movement of the device, the location data including multiple location data samples indicating the location of the device at different times;
[0105] Obtain electronic map data about at least a portion of the area covered by the electronic map; and
[0106] Maintaining a candidate path library on the electronic map, each candidate path being a possible path through the electronic map that may match the device's current position in a first direction of travel, each candidate path comprising one or more segments of the electronic map, wherein maintaining further comprises: once reverse travel is detected being performed, creating a new set of candidate paths to replace the candidate paths in the library, wherein each of the new candidate paths is a possible path through the electronic map that may match the device's current position in a second opposite direction of travel, each candidate path comprising one or more segments of the electronic map.
[0107] The method further includes:
[0108] Based on multiple location data samples, candidate paths that provide the best match for the location data are identified from the library;
[0109] The identified candidate path is used to obtain the estimated current position of the segment of the electronic map by the device, and output as the map matching current position; and
[0110] Generate data to indicate map matching the current location.
[0111] This invention extends to a system for implementing any of the methods described herein or in the embodiments of the invention. Therefore, according to another aspect of the invention, a system is provided for matching the current location of a device to an electronic map indicating a network of navigable elements, the electronic map comprising a plurality of segments representing the navigable elements, the system comprising:
[0112] A component for obtaining position data indicating the movement of the device, the position data including multiple position data samples indicating the position at different times;
[0113] Components for obtaining electronic map data about at least a portion of the area covered by the electronic map; and
[0114] Components for maintaining a library of candidate paths on the electronic map, each candidate path being a possible path across the electronic map that may match the current position of the device in a first direction of travel, each candidate path comprising one or more segments of the electronic map, wherein the maintenance further comprises: once reverse travel is detected being performed, creating a new set of candidate paths to replace the candidate paths in the library, wherein each of the new candidate paths is a possible path across the electronic map that may match the current position of the device in a second opposite direction of travel, each candidate path comprising one or more segments of the electronic map.
[0115] The system further includes:
[0116] A component for identifying candidate paths that provide the best match for the location data from the library based on multiple location data samples;
[0117] A component for using the identified candidate path to obtain the estimated current position of the segment of the electronic map by the device, so as to output the map as a current position for matching; and
[0118] A component used to generate data that indicates the map matches the current location.
[0119] As will be appreciated by those skilled in the art, this aspect of the invention may, and indeed does include, any and all of the preferred and optional features of the invention described herein with respect to any of the other aspects of the invention. Unless explicitly stated otherwise, the systems of the invention herein may include components for carrying out any steps of the methods described with respect to any aspect or embodiment of the invention, and vice versa.
[0120] The invention according to these other aspects is a computer-implemented invention, and any of the steps described with respect to any aspect or embodiment of the invention may be implemented under the control of one or more processors. The components for implementing any of the steps described with respect to the system may be one or more processors.
[0121] According to aspects and embodiments of the invention relating to reverse driving, the step of creating a new set of candidate paths may include: for one or more of a set of original candidate paths, and preferably for each of the original candidate paths, extending the candidate path by a predetermined distance in a first driving direction; advancing the map-matched current position along the candidate path by a predetermined distance to the manual map-matched current position; and generating a candidate path in a second opposite driving direction based on the manual map-matched current position. It has been found advantageous to manually advance the map-matched current position in this manner and then generate a candidate path in the opposite direction based on the thus obtained manual map-matched current position rather than based on the actual current map-matched position. This ensures that any intersections ahead of the map-matched current position are taken into account before creating the reverse candidate path, thereby helping to maintain connectivity in the created set of additional candidate paths. For the reasons discussed above, this can lead to improved map matching, as topological information is inherently taken into account.
[0122] Extending a set of original candidate paths by a predetermined distance in a first direction of travel may include extending the path to provide an extended candidate path, which includes at least one segment connected to the head end of the original candidate path. The segments are connected to each other at nodes. The connecting segment is typically a starting segment at the node where the head end of the original candidate path segment terminates. Where the head end of the original candidate path segment terminates at a node with multiple starting segments, the head end segment of the candidate path is then connected to the multiple segments. In this case, the method may further include extending the candidate path by a predetermined distance in the first direction of travel to provide an additional candidate path, which includes another starting segment connected to the head end of the original candidate path segment at the providing node. This process may be performed for each segment originating from the node.
[0123] Generating a candidate path in the second opposite driving direction preferably includes: identifying segments associated with the current location matched on the artificial map; and reversing the segments such that the head (node) and tail (node) of the segment are swapped. Therefore, the step of expanding the path to create a candidate path in the second driving direction may include: expanding the path to include at least one segment connected to the segment on which the current location matched on the artificial map is located. The segments will be connected to each other at nodes. The segment will be a segment connected to the tail end of the segment with respect to the first driving direction or the head end of the segment with respect to the second driving direction.
[0124] These new candidate paths in the second opposite driving direction replace the original candidate paths in the candidate path library. As will be understood, this differs from when a U-turn maneuver has been detected, because in the latter case, candidate paths in both the first driving direction and the opposite second driving direction are maintained in the library.
[0125] In an embodiment where a set of new candidate paths is generated by extending the path from the current location using a manually mapped map in a second driving direction, the method preferably includes: for one or more of the new candidate paths, and preferably for each of the new candidate paths, moving the current location of the manually mapped map in the second driving direction by a predetermined distance to identify one or more map-matching locations on the new candidate path. This step compensates for manually moving the current location of the map-matching map by a predetermined distance in the first driving direction to preferably generate a new candidate path (in the second opposite driving direction). Thus, although the current location was previously mapped to a segment of a candidate path from a set of original candidate paths in the first driving direction, it is now in a corresponding position on a segment forming a portion of a candidate path in the second opposite driving direction.
[0126] It will be understood that a new set of candidate paths can be determined, i.e., in the second driving direction, without using some of the constraints considered when creating the original candidate paths. For example, a segment of the road network associated with a one-way street is considered to be always traversable in the second driving direction when generating candidate paths, while in the first driving direction, it is considered to be traversable only in one direction (i.e., the legal direction).
[0127] According to the present invention, in any aspect or embodiment of the invention, the method includes the step of identifying candidate paths from a database that provide the best match for location data.
[0128] Preferably, the method includes matching location data to each of a plurality of candidate paths to determine the candidate path that provides the best match for the location data. Preferably, the step of matching the obtained location data to each of the candidate paths is performed independently for each candidate path. Preferably, the matching step is performed with respect to each candidate path in the candidate pool.
[0129] The process of matching acquired location data to a given candidate path is implemented using multiple location data samples (including the most recent or current location data sample). Therefore, the location trace or path of the location data is compared with the candidate path. The number of location samples considered (i.e., the length of the location trace) can be selected as needed and can change dynamically, and may differ for different matching criteria. The multiple data samples include the most recent data sample (i.e., the current location to be matched to on the map) and a set of one or more (preferably more) previous data samples. Any reference to matching location data to candidate paths based on multiple location data can be understood in this way.
[0130] The method preferably includes matching location data to each of a plurality of candidate paths, and more preferably to each candidate path in a candidate path library. In each case, multiple data samples are considered. One or more sets of identical data samples are typically used in the matching process for each path. As mentioned above, multiple sets of different data samples (i.e., data samples of different sizes) may be used for different matching criteria.
[0131] In a preferred embodiment, the method includes: for each candidate path under consideration, matching location data to the candidate path according to each of a plurality of matching criteria. Matching criteria can be selected as needed. However, preferably, the step of matching the obtained location data to a given candidate path takes into account at least the direction of travel and position determined using the location data. Preferably, matching is performed independently for each of the criteria. This can be achieved using an independent matching engine for each of the criteria (e.g., direction of travel and position). The matching engines are independent, wherein matching for one criterion does not affect matching for another criterion.
[0132] The method preferably includes: providing a score indicating the degree of matching between the location data and the candidate path for each candidate path under consideration; and ranking the candidate paths at least based on their respective scores. When matching to candidate paths is performed based on multiple criteria, preferably, for each of the matching criteria, a corresponding score indicating the degree of matching between the location data and the candidate path is obtained, and the method includes combining each score to provide an overall matching score for the candidate paths. This can be achieved by performing independent matching with respect to each of the criteria, as discussed above. In a preferred embodiment, it is therefore preferable to obtain a corresponding matching score for each candidate path with respect to at least the direction of travel and position, and use this score to obtain the overall matching score for the candidate paths. The step of obtaining the overall matching score for the candidate paths based on individual scores for each of the multiple matching criteria can be implemented in any suitable manner. Preferably, a trust-based technique, such as Dempster-Shafer theory, is used. However, other techniques, such as Hidden Markov, fuzzy logic, or Kalman filters, can also be used.
[0133] A match score for a given candidate path indicates the likelihood, or probability, that a location trace defined by a sample of location data matches the path. In a preferred embodiment where such a score is determined, this applies to both an overall match score and a score relating to a specific criterion.
[0134] Once a score has been obtained for each candidate path under consideration, whether or not it is based on an overall score determined based on multiple different matching criteria, the method may include ranking the candidate paths to allow for the determination of the candidate path that provides the best match to the location data. The ranking is based at least on the score determined for each candidate path. The ranking may take into account other factors, such as offset, as described below.
[0135] The step of proactively managing the candidate path library may alternatively or additionally include discarding one or more candidate paths from the library based on the results of the matching process. This may involve removing paths from the candidate path database. For example, paths found to have too large an offset relative to the location data trace during the matching process may be discarded. Managing the candidate path library may alternatively or additionally take into account the ranking of the determined candidate paths. The method may include discarding one or more of the candidates from the library based on the ranking of the determined candidate paths. This has been found to be more effective than discarding paths based on an absolute score associated with the path. The ranking provides an indication of the relative relevance of the candidate paths, which may not be affected by factors such as the density of the surrounding road network.
[0136] It is advantageous to perform independent matching using multiple criteria, and then combine the results of the matching process to provide an overall score indicating the degree of matching of candidate paths, wherein matching with different criteria can analyze different sources of error in both location data and map data. This can lead to more accurate determined and estimated locations. It is believed that such a feature is advantageous independent of the context of using a candidate path library, or independent of situations where the matching takes multiple location samples into account.
[0137] According to another aspect of the present invention, a method is provided for matching the current location of a device to an electronic map of a network indicating navigable elements within a geographic area, the electronic map comprising a plurality of segments representing the navigable elements, the method comprising:
[0138] Obtain position data including a sample of position data indicating the position of the device;
[0139] Obtain electronic map data about at least a portion of the area covered by the electronic map;
[0140] Using a first matching engine, a first score is given to each of a plurality of segments in a set of segments of the electronic map based on a first criterion indicating the likelihood that the current location can be mapped to a segment of the electronic map;
[0141] A second matching engine is used to provide a second score for each of the plurality of segments in the group based on a second criterion indicating the likelihood that the current location can be mapped to the segment of the electronic map;
[0142] Using at least the first and second scores, an overall score indicating the likelihood that the current location can be mapped to the segment is determined for each of the plurality of segments in the group;
[0143] The device that obtains the estimated current position of a segment in the group of segments of the electronic map using the overall score determined about the plurality of segments in the electronic map is output as a map-matched current position; and
[0144] Generate data indicating that the map matches the current location.
[0145] The invention also extends to a system for performing this method in any aspect or embodiment of the invention. The system may be provided by a server or a mobile device or a combination thereof, as described with respect to earlier aspects of the invention. Therefore, according to another aspect of the invention, a system is provided for matching the current location of a device to an electronic map indicating a network of navigable elements within a geographic area, the electronic map comprising a plurality of segments representing the navigable elements, the system comprising:
[0146] A component for obtaining position data including a sample of position data indicating the position of the device;
[0147] Components for obtaining electronic map data about at least a portion of the area covered by the electronic map;
[0148] A component for providing a first score to each of a plurality of segments in a set of segments of the electronic map using a first matching engine based on a first criterion indicating the likelihood that the current location can be mapped to the segment of the electronic map;
[0149] A component for providing a second score for each of the plurality of segments in the group using a second matching engine based on a second criterion indicating the likelihood that the current location can be mapped to the segment of the electronic map;
[0150] A component for determining an overall score indicating the likelihood that the current location can be mapped to a segment, for each of the plurality of segments in the group, using at least the first and second scores;
[0151] A component of the apparatus for obtaining a segment from the group of segments of the electronic map using the overall score determined about the plurality of segments in the electronic map, and outputting the estimated current position as a map-matched current position; and
[0152] A component used to generate data indicating that the map matches the current location.
[0153] As will be appreciated by those skilled in the art, this aspect of the invention may, and indeed does include, any and all of the preferred and optional features of the invention described herein with respect to any of the other aspects of the invention. Unless explicitly stated otherwise, the systems of the invention herein may include components for carrying out any steps of the methods described with respect to any aspect or embodiment of the invention, and vice versa.
[0154] The invention according to these other aspects is a computer-implemented invention, and any of the steps described with respect to any aspect or embodiment of the invention may be implemented under the control of one or more processors. The components for implementing any of the steps described with respect to the system may be one or more processors.
[0155] The first and second matching engines are preferably independent of each other. The first and second criteria can be the direction of travel and the position. One or more additional independent matching engines can be used to provide additional scores regarding the corresponding other criterion.
[0156] The method includes: performing matching steps using first and second matching engines on multiple segments of an electronic map to provide a score for each criterion used for each segment; and using the score for each criterion to obtain an overall score for each segment regarding the likelihood that the current location can be mapped to a segment. In other words, the steps of obtaining the first and second scores and the overall score are repeated for multiple segments of the map. The overall score of the segments is used to estimate the current location of the device with respect to the segments of the electronic map.
[0157] The method may include identifying segments that provide the best match for location data based on an overall score. The method preferably includes ranking each segment using an overall score determined for each segment, based at least on the probability that the current location can be mapped to a segment.
[0158] The matching can be implemented in any of the ways described with respect to earlier aspects of the invention, i.e., based on the mentioned criteria, and individual and overall scores can be obtained, as described with respect to any of the earlier aspects, for example, thereby using trust theory to provide an overall score.
[0159] In these other aspects and embodiments of the invention, the score for each segment is determined based on at least the current location of the location data (i.e., the most recent location data sample). A single point location can therefore be used in the scoring step compared to earlier aspects of the invention. However, in other embodiments, multiple location data samples are used. This can proceed as in earlier aspects of the invention. The location data samples will include the most recent (i.e., current) location data sample. The location data can be any of the types described earlier. In the case of using multiple location data samples, these location data samples are about different times and can be timestamped location data samples.
[0160] In these other aspects and embodiments, the step of the matching engine providing a score based on its corresponding criteria indicating the probability that a segment can be matched to the current location preferably includes the matching engine matching the location data to a segment based on its criteria. The score is based on the proximity of the match.
[0161] The location data used in the matching process includes at least one current location (i.e., the most recent location data sample) based on the location data. The location data used may be a single data point, i.e., the current location, or may include multiple location data samples, i.e., the current location and one or more earlier location data points, as described with respect to earlier aspects of the invention. The matching process can be implemented in any of the ways described with respect to earlier aspects of the invention, except that the matching is to a segment of the electronic map and is not necessarily a candidate path. In other embodiments, it is envisioned that the segment may form part of a path traversing the electronic map, such that the matching process is performed with respect to the path. This can continue similarly to earlier aspects of the invention. The path may or may not form part of a path library.
[0162] According to the invention, in any aspect or embodiment of the invention, matching with respect to any of the criteria preferably includes the step of identifying points on a candidate path (or, in another aspect, segments) that provide the best estimate of the current position of the device. These points are points on segments of the candidate path. The output of each matching process with respect to a given criterion (e.g., each matching engine) is therefore preferably data indicating the points on the candidate path (or segment) that provide the best estimate of the current position of the device according to applicable matching criteria and the corresponding matching score of the candidate path (or segment). Such data is preferably obtained at least with respect to matching based on position and direction of travel. The best estimate of the current position of the device on a candidate path (or segment) determined by the matching engine based on different criteria may be different. The method may further include the step of determining an overall best estimate of the current position on a path (or segment) using the best estimate of the current position of the device on a given candidate path (or segment) provided by each matching process. This may be performed before or after the path (or segment) ranking. It is envisioned that this step can only be performed with respect to candidate paths (or segments) determined to be the best match for the position data, and not necessarily with respect to every candidate path (or segment) evaluated. It will be understood that the estimated current location determined for a candidate path (or segment) may not necessarily be the current location used as the matching location in the output map, even if the path (or segment) is the most likely path (or segment). This is described in more detail below.
[0163] It will be understood that, according to any aspect of the invention, matching can be performed with respect to one or more additional criteria regarding a determined optimal estimate of the current position of the device along a candidate path (or segment). This matching can be considered to depend to some extent on the results of matching with respect to the other criteria used to determine this estimate and can provide further verification of the results. Such methods can use an overall optimal estimate of the current position based on multiple matching processes. Examples of such additional criteria include a distance-of-travel and speed-limit matcher. The latter determines the degree to which the speed at the optimal matching position on the path or segment corresponds to the speed limit at that position according to map data. The former can consider the distance traveled along the path or segment up to the estimated position. The result of any other such matching can be used to provide an individual score, which can be taken into account, for example, when using trust theory to determine an overall matching score for a candidate path or segment as described above.
[0164] In those aspects of the invention that use candidate paths, the method includes identifying candidate paths that provide the best match to location data. This step can be performed by a decision engine. Identifying candidate paths considered to provide the best match can be based on a ranking based solely on match scores or by taking additional factors into account. These factors can be taken into account during the ranking process. In a preferred embodiment, identification is additionally based on the offset between the location data trace and the candidate path of each candidate path considered. It is advantageous to take into account both the probability that the path is a correct match (as indicated by the path's score) and the offset between the candidate path and the path defined by the location data. The offset indicates the degree to which the location data trace will need to be shifted to match the candidate path. This will be based on a trace having a length determined by a given number of location data samples considered during the matching process. The offset will depend on factors such as map bias, e.g., map zoom, map errors, and input location data bias, e.g., multipath effects, clock errors, etc. It has been found that both probability-based and offset-based measurements can fail at certain times. For example, probability-based or likelihood-based measurements will not distinguish between parallel roads, and offsets will continuously increase in tunnels, where only DR data is available due to DR drift. Therefore, it is advantageous to consider both offset and probability to increase map matching accuracy.
[0165] Similarly, in another aspect of the invention, where candidate paths are not necessarily used, the method may include identifying segments that provide the best match for location data. This step may be performed by a decision engine. Identifying segments considered to provide the best match may be based solely on a ranking based on a match score or may take additional factors into account. In a preferred embodiment, selection is additionally based on the offset between the location data and each segment considered. It is advantageous to take into account both the probability that a segment is a correct match (as indicated by the path's score) and the offset between the segment and the location data. The offset indicates the degree to which the location data will need to be shifted to match the segment. While the location data used may be a single data point, such that the offset may be based on the offset between said point and the segment, in other embodiments, the location data considered may include multiple location data samples defining a location data trace (as in an earlier aspect of the invention). This would be based on a trace having a length determined by a given number of location data samples considered during the matching process.
[0166] In those aspects and embodiments of the invention using a candidate path library, the method includes the step of using the identified best-matching candidate path to obtain an estimate of the current position of the device with respect to a segment of an electronic map for output as a map-matched current position. The method may include: obtaining an estimate of the current position with respect to a segment along the identified best-matching candidate path; and using the estimated current position to obtain a current position to be output. The estimated current position may be used as the current position to be output, or may be used to determine the current position to be output. As mentioned above, an estimate of the current position may be determined for each candidate path considered. This may be multiple such estimates determined based on different matching criteria applied to the path. The step of using the identified candidate path to obtain an estimate of the current position for output may include obtaining an estimate of the current position along a segment of the identified candidate path. This current position data may be associated with a candidate path, for example, as a result of a matching process. Therefore, the step may include a step of accessing data, or may involve generating data, for example, based on multiple estimates of the current position along paths obtained using different matching criteria.
[0167] The estimated current position for output may or may not be located on the identified best-match candidate path. It will be understood that the step of identifying the candidate path that best matches the location data can be repeated for each new location data sample. Therefore, the identification of the best-match candidate path can then be continuously updated. The candidate path identified as the best match for the location data may correspond to the candidate path to which the last location data sample can be matched. However, in some cases, the identified candidate path that best matches a new location data sample may differ from the candidate path identified with respect to the previous data sample. In such cases, the decision engine may decide whether to "jump" to the new candidate path or remain on the previous candidate path, even if it is no longer the best match. This determination may depend on various factors. The decision engine can be configured to minimize jumps. For example, jumps may be allowed in cases where there are relatively large gaps between input location data samples, such as due to tunnels. On the other hand, if a jump would return to a previously traversed segment, the decision engine may decide to remain on the previously identified candidate path. In some embodiments, the estimated current position for output is on a segment of the candidate path identified as the best match for the location data based on a set of previous location data.
[0168] In some preferred embodiments, the estimated current position for output is the position along an identified best-matching candidate path or a best-matching candidate path identified based on a previous position data sample. In the process of using a newly identified best-matching path to obtain the estimated current position of the device, the process includes: comparing the newly identified best-matching path with existing best-matching candidate paths. The method may include: comparing identified candidate paths with previously identified candidate paths; and obtaining the estimated current position of the device on a segment of one or more of the paths for output. The path on which the current position is based may be based on various criteria, as described above. This process may be used when the best-matching candidate path differs from the best-matching candidate path that matches a previous position data sample. Alternatively or additionally, the step of using an identified candidate path to obtain the estimated current position of the device for output may include: obtaining estimates of the current position on a segment of the best-matching candidate path and additionally on one or more candidate paths connected to it; and selecting one of the estimated current positions as the position for output. This helps to account for inaccuracies in the input position data at intersections and forks.
[0169] In another aspect or embodiment of the invention, where candidate paths are not necessarily used, the method includes estimating the current location of the device with respect to segments of the electronic map using an overall score determined with respect to multiple segments of the electronic map. This step preferably includes identifying segments that provide the best match for location data based on the score. The method may include ranking segments at least based on the score, for example, optionally, based on offset. The overall score is used to obtain an estimate of the current location of the device for output. As in the aspects and embodiments using candidate paths, the estimated location for output may or may not be located on the determined most probable segment. For example, the estimated location may be selected on one of the following: the most probable segment; and one or more segments connected thereto. Any of the techniques used in the candidate path embodiments may be used.
[0170] According to the present invention, in any aspect or embodiment of the invention, the reference for the estimated current location used for output refers to the final determined current location output from the map matcher. This location may not necessarily be output to the user. For example, the determined location may be input to another part of the system (e.g., ADAS system, routing engine, etc.).
[0171] The generated directional map can be used to match the data of the current location as desired. For example, the data can be used to display an indication of the current location on an electronic map to a user, and / or can be used by a routing engine. The method may include storing the generated data. The data can be transmitted to a remote device for use by the device.
[0172] It will be understood that each received location sample can be matched to a location on a segment of the electronic map. However, in order for the movement of the device across the electronic map to appear to the user as smooth progress (i.e., without jumping from one discrete map matching location to the next), a prediction of the device's future location is determined based on the map matching location data. The predicted location can be used to present a representation of the path followed by the device on the electronic map. According to the invention, in any aspect or embodiment of the invention, the generated data indicating the current location of the map matching can be input to a prediction engine to generate data indicating one or more predicted updated locations of the device. The prediction engine can be configured to use the generated data indicating the current location of the map matching to predict the location of the device at one or more future times. In other words, the prediction engine extrapolates the current location of the map matching. A given current location of the map matching can be used to provide one or more predicted updated location samples. The prediction engine can provide multiple predicted location data samples with a set of outputs having a frequency greater than that of a set of input map matching location data samples. The method may then include using the predicted location data provided by the prediction engine to display an indication of the location of the mobile device on the electronic map. The prediction engine can operate in any suitable manner to provide appropriate position predictions so as to display a representation of the device's movement at the desired frame rate, even when the map-matching current location data sample is relatively sparse, for example, based on the frequency of received satellite-based location data. The prediction engine can take into account the latency of the positioning and map-matching processes. The engine can take into account the device's acceleration and deceleration. When determining the map-matching position while traveling in the reverse direction (i.e., during reverse travel), the prediction engine should be configured to predict the position in the reverse direction. Therefore, the output predicted position will follow a path in the reverse (e.g., a second) travel direction.
[0173] According to the invention, in any aspect or embodiment of the invention, it is preferable to generate a single map-matched current location for each location input sample. The generated data may include data indicating the location of a given segment of an electronic map. The data may at least indicate the segment in which the location is located and the offset from the end of the segment. The method may include generating data indicating a sequence of segments traversed from a previously matched map location. The generated current location data may be associated with temporal data (e.g., timestamps) indicating time related to the location.
[0174] It will be understood that the method according to the invention can be implemented at least in part using software. Therefore, it will be appreciated that, when viewed from another perspective and in another embodiment, the invention extends to computer program products including computer-readable instructions adapted to perform any or all of the methods described herein when executed on a suitable data processing component. The invention also extends to computer software carriers including this software. This software carrier may be a physical (or non-transitory) storage medium or may be a signal, such as an electronic signal on a wire, an optical signal, or a radio signal, such as to a satellite or the like.
[0175] According to another aspect or embodiment of the invention, the invention may include any of the features described with reference to other aspects or embodiments of the invention, provided that they are not inconsistent with each other.
[0176] The advantages of other embodiments are set forth below, and further details and features of each of these other embodiments are defined in the accompanying appendices and elsewhere in the following detailed description. Attached Figure Description
[0177] Embodiments of the present invention will now be described by way of example only with reference to the accompanying drawings, wherein:
[0178] Figure 1 Demonstrates the exemplary functional design of a positioning and map matching system;
[0179] Figure 2 This describes the overall architecture of the map matcher according to the embodiment;
[0180] Figure 3 Displays the map matching results for the Amsterdam city canyon (left panel) and the number of valid paths maintained along the journey (right panel);
[0181] Figure 4 Explain the path extension through the tunnel during GNSS outages; and
[0182] Figure 5 This describes the map matching from the drift DR positioning trace to the tunnel path. Detailed Implementation
[0183] The technique described in this paper relates to an advanced map matching algorithm that inherently embeds road topology into a set of candidate paths. A candidate path is defined as all possible routes traversing the map, from one node to another or from one road segment to another, and thus, is an ordered sequence of road segments. The map matching algorithm described in this paper is scaled and modularly designed, making it easy to extend and troubleshoot. The algorithm maximizes the use of road connectivity and constraints to construct and maintain a library of possible path candidates for matching location data traces. Topological integrity is no longer necessary during the decision-making process because road connectivity is naturally embedded in the candidate library, making it easier to solve many difficult situations, such as parallel roads and roundabouts.
[0184] Figure 2 The overall architecture of the map matcher according to an embodiment is described below. As shown, the map matcher consists of two separate layers: an input processing layer 100 and a map matching algorithm layer 200. The map matching algorithm layer 200 is responsible for constructing a path candidate library, evaluating the matching of input trajectories with candidates, and maintaining path matching results by logically ranking paths and minimizing jumps between paths. The input processing layer 100 is responsible for accepting location input, disinfecting it, and detecting special driving conditions, such as large input gaps, reverse driving, U-turns, and tunnels. Special conditions (e.g., U-turns, tunnels, and reverse driving) are therefore processed separately at the start of the map matching algorithm. When a special maneuver is detected, the map matching prepares by appropriately constructing or expanding path candidates and skips input data related to the maneuver. The topology map matching algorithm never processes the maneuver.
[0185] The map matcher program flow according to an embodiment will now be described in general terms.
[0186] In the initial steps, when new input data arrives, before starting actual path candidate processing and matching, the map matcher identifies and reacts to certain special cases. The identification of these special cases is handled in the input processing layer 100 by dedicated modules (e.g., tunnel entrance / exit check module 105, U-turn check module 104, reverse driving check module 103, input jump check module 101, and stationary check module 102). Upon detecting any of these cases, the map matcher can react accordingly. For example, if a stationary car is detected, the map matcher does not need to run. If a jump, U-turn, or tunnel is detected in the input data, the path candidate may need to be modified accordingly. If forward or reverse movement of a car is detected, the driving direction can be internally reversed at the input and output so that the map matcher can process it as moving forward. The detection of these cases in the input processing layer 100 is separated from the reaction to them in the map matching algorithm layer 200 and is handled by the special event handling module 220. The special event handling module 220 modifies or reconstructs the path when a special condition has been detected in the input check. This allows for a heuristic space that can handle different combinations of special cases that may occur together. For example, combining a U-turn detected at a tunnel exit with a potential false positive that may require further analysis.
[0187] Following input processing, in map matching algorithm layer 200, the map matcher first extends its path candidates forward along the road network stored in the map. Each path includes several connecting segments and is extended forward to other connecting segments to ensure that the road topology is embedded within the path. This extension can be performed by path extension module 210. It should be noted that paths cannot contain, for example, any U-turns, because these are processed separately in input processing layer 100, as described above.
[0188] The map matcher maintains several smaller algorithms called "matchers," which apply different criteria and heuristics to evaluate the match between input data and paths. This evaluation is performed independently for each candidate path in the database. First, each matcher on each candidate path is forward-propagated with the new input data, resulting in an estimate of the correct location where the expected input is projected along the path. Then, each matcher evaluates the score of the match between the path and the input data on a specific number of previous input data samples. The matching may include a location matcher 231 and a forward direction matcher 232, both of which can be provided in the path propagation module 230. The location matcher 231 evaluates the input location coordinates (longitude, latitude) and compares these input location coordinates with the map geometry of the path. The forward direction matcher 232 evaluates the input forward direction and distance traveled and compares these forward directions and distance traveled with the turning function of the path, which can also be determined from the map geometry. Even though these datasets may appear to be non-independent, matchers 231 and 232 still operate on different aspects of the data and are therefore able to analyze different error sources in both the location input data and the map data. The path propagation module 230 can also be responsible for candidate management, as described further below.
[0189] Each matcher attempts to find the best possible match between the input and the path, and can thus eventually propagate to different positions along the path. Heuristics are applied to select a single best position on each path. Another module 240 may be provided to compare the propagated positions on each path to select the best position.
[0190] Additional matchers can also be used, such as distance matcher 251 and speed limit matcher 252. More matchers can be considered if more input information (e.g., slope) is available. A match score for each matcher can be obtained in path scoring module 250. Then, for each path, the match scores from each of matchers 231, 232, 251, and 252 are independently combined in multi-matcher trust fusion module 260 to estimate the trust level that the path is the correct path. The fusion module 260 integrates the combined criteria to achieve high match reliability with confidence.
[0191] Once each path has been assigned a combined multi-matcher trust fusion score, the path ranking module 270 ranks the paths based on this score and uses this ranking to find the optimal path. Poorly matched paths can be discarded at this stage. The final map matching location is selected by jointly evaluating the best location on the preferred path and the best location on other paths connecting to the preferred path. This step helps to account for input inaccuracies at points such as intersections or other forks in the road.
[0192] Decision maker 280 is used in the post-processing step, where it compares the new best path determined by path ranking module 270 with the previously determined best path and makes a decision on whether to select the new best path as the preferred path. This step involves deciding whether and when to show the client, and ultimately the user, the heuristic of jumping from one path to another. The final map matching location is selected by evaluating together the best location on the preferred path and the best location on other paths connecting to the preferred path. This step can take into account input inaccuracies such as intersections and forks.
[0193] Finally, the final map match location is analyzed to determine whether the input actually follows the road or whether the input is outside the road. That is, an off-road check 290 can be performed to evaluate whether the best matching location on the path is close enough to the input, and if necessary, off-road map matching based on the point-to-curve matching principle will be triggered.
[0194] Once the map-matched current location is obtained, it can be provided as input to the prediction engine. The prediction engine takes a map-matched location sample and interpolates the location to obtain a predicted trajectory that can be used to represent the movement of the device on the display. This allows a smooth trajectory to be displayed to the user. Without this step, if only the map-matched current location is displayed, there may be discrete jumps between each of the map-matched location samples. The prediction engine takes relatively sparse location sample data and provides current location data interpolated from the location sample data at a suitably higher frequency. When interpolating each map-matched location data, the latency added by the positioning and map-matching process can be taken into account, and a dynamic model can be used to follow the vehicle's acceleration and deceleration. Therefore, the current location can be displayed to the user as an estimate of the current location based on the last map-matched current location, taking into account the amount of time the current location may have moved since the location data sample used for map matching was received.
[0195] The map matching algorithm proposes a unique path propagation step to separate curve-to-curve matching and path scoring into two modules. Unlike most existing methods that directly treat matching discrepancies as scores, this algorithm considers some discrepancies as map errors due to centerline simplification or positioning input biases due to drift, further eliminating map errors and positioning input biases from the path scoring to achieve optimal path selection. This process allows the algorithm to work on low-quality maps and also allows for reliable matching in environments where GNSS, which must rely solely on high-drift dead reckoning data, is rejected (e.g., tunnels). The map matching algorithm is designed to handle matching discrepancies and maintain road connectivity in different scenarios, ensuring its usability across all transport environments.
[0196] A more detailed description will follow. Figure 2The map matcher is shown in the image, outlining its various steps / modules.
[0197] Path candidate library based on road topology
[0198] Initial path selection
[0199] When the map matcher switches to path matching mode, a new initial path must be constructed based on the best arc candidates. Path candidates are initialized as individual road segments that are sufficiently close to the first location input sample in both distance and direction of travel. For example, road segments within the bounded rectangle surrounding the first location input sample, limited by input precision, can be selected as initial path candidates. Initial paths can be constructed, for example, for road segments aligned with and / or close to the current direction of travel. Selecting paths aligned with the current direction of travel takes into account situations where the input location is incorrect but the direction of travel is correct, for example, if the map matcher is reset during travel. In cases where the direction of travel is unreliable, the most likely scenario is that the user is on a nearby road. Furthermore, selecting and processing too many road segments is impractical. Initial paths can be ranked based on their differences in location and direction of travel, thus generating a candidate path library.
[0200] Path expansion
[0201] As new location data samples are received, the paths in the database are expanded forward from the path head to the connected road segments. In this way, candidate paths naturally reflect the road topology, because a path includes several connected road segments.
[0202] Whenever a path candidate arrives at an intersection, it is copied to accommodate different extensions with recently added road segments. The copied paths are then processed independently by the remainder of the algorithm. The new segment can be called a "sub-segment," while the previous segment before the branch point is the common ancestor of all branching paths.
[0203] To prevent the number of path candidates from growing exponentially, path expansion for each candidate is triggered only when the previous best-match position on that path is close to the path head and new input could potentially exceed the path match. Paths never expand backward along the same road segment from which they originate. Paths also do not expand in the direction of traffic flow that is explicitly prohibited on roads (e.g., highways). However, expansion in the direction of traffic flow on normal one-way roads is unavoidable.
[0204] Candidate Management
[0205] Candidate management is used to reduce the size of the path candidate pool while preserving well-matched candidates. Reducing the candidate pool size is accomplished in two ways: actively pruning unused path tails on each path to shorten them as the positioning epoch progresses; and discarding incorrect paths from the candidate pool. Paths are tracked independently. Less likely paths may eventually prove to be correct. Discarding incorrect paths should therefore be conservative to avoid errors. The algorithm evaluates several properties to discard paths. First, it evaluates the offset from the positioning input to the matching location. If this distance becomes many times greater than the input level accuracy, the path is discarded. If accuracy is not used correctly, drift caused by the dead reckoning positioning solution can lead to incorrect path discarding. Second, paths with a poor score ratio relative to the highest score are discarded. The algorithm uses the score ratio rather than the score itself because absolute scores vary in different scenarios. For example, a poor score occurs in a deep urban canyon with GNSS signal congestion, while a good score occurs on a highway with open skies. Third, maintaining the uniqueness of all paths is crucial; uniqueness means that no two paths will completely overlap when looking back a certain distance along them. Paths that overlap with higher-ranked paths will be discarded. Overlaps typically occur when a path extends through a branch and then merges later at the next intersection.
[0206] All thresholds for discarding paths should also be adjustable across various scenarios to always keep candidate sizes within the feasible computational range of real-time best-selling devices. Figure 3 This illustrates an example of path size variation when a car travels through the dense urban canyons of Amsterdam. As shown, the algorithm effectively controls the candidate size due to a proper candidate management strategy and appropriate path expansion.
[0207] Maintaining road connectivity in special circumstances
[0208] U-turn detection and handling
[0209] If a U-turn is detected, it is best to maintain road connectivity rather than restarting map matching from scratch. U-turns are handled early in the map matching process within the input processing layer 100 by a dedicated module 104. A U-turn is detected when the input trace is determined to be U-shaped. After a U-turn is detected, a new path with the opposite direction should be constructed and added to the candidate pool. However, the original path is not discarded, and map matching treats both sets of candidates equally. This ensures that map matching can work continuously in special road shapes (e.g., hairpin turns or roundabouts) or even when a special input trace has been mistakenly identified as a U-turn. The map matcher runs against all candidates and ranks them based on a score. Poorly matched paths (which may be U-turn paths or, for example, hairpin paths) are identified by the map matcher and eventually discarded. Therefore, if one of the original paths is actually a better match than the newly constructed path, the matched map can continue to match the original path without interference. This relies on the separation of U-turn detection in the input processing layer 100 from its handling in the map matching algorithm layer 200.
[0210] When multiple U-turns occur on the same path, filtering out overlapping paths may be necessary, where, for example, the constructed reverse path overlaps with the original path. After the first U-turn, a reverse path that does not overlap with the original path can be constructed; and after the second U-turn, the reverse path of the reverse path may be the same as the original path, in which case these paths can be removed based on ranking.
[0211] Tunnel Inspection and Treatment
[0212] Tunnels present another special case because GNSS signals are often completely blocked and new GNSS data is only received at the tunnel exit. The map matching algorithm described in this paper maintains road connectivity until new GNSS positioning is received. Whenever GNSS interruption occurs, it is possible to follow the tunnel properties in the map and extend the tunnel path only to the tunnel exit. In this way, the path extension for the first regained GNSS positioning is correctly prepared, and then the regained GNSS positioning can be captured at the tunnel exit and continuously matched to the path. Figure 4 This scenario is illustrated using the Paris Tunnel as an example. The path extends towards all tunnel exits during the GNSS outage and awaits GNSS positioning to be regained first.
[0213] Tunnel entrance detection, applicable to GNSS only, involves two steps: searching for a specific distance ahead of the tunnel based on map data and setting a flag for each path; and checking for large input jumps (e.g., >10s) in its timestamps. If a segment is already marked as a tunnel and a large input jump exists, then the tunnel is detected. Smaller jumps (<10s) may correspond to small tunnels, but as long as the path extension covers this small time interval, special handling for this tunnel is unnecessary.
[0214] Input data is typically absent inside the tunnel. In such cases, during the period of waiting for GNSS positioning to be regained (GNSS outage period), the path is extended towards the tunnel exit (in the first path extension) to maintain the path matrix upon regaining GNSS positioning. This path extension stops at the tunnel exit. Once the first GNSS positioning is obtained at the tunnel exit, tunnel exits that are too far from the new input location can be discarded. Because the new input location may still be far from the tunnel exit, a second path extension then occurs.
[0215] Detection and handling of reverse driving
[0216] Reverse driving detection is performed by the reverse driving check module 103 in the input processing layer 100. Reverse driving detection does not exist on GNSS. However, if reverse driving is occurring, vehicle dead reckoning positioning will provide a negative distance traveled as input, thus allowing reverse driving detection.
[0217] The map matcher should continue moving forward even when traveling in the reverse direction. Therefore, the input direction of travel should be flipped before the map matching algorithm, and then the map matching result should be flipped back. The predictive path builder should reverse the path to the opposite path after the map matching.
[0218] When guiding reverse driving, the candidate path library is replaced with a set of paths in the reverse direction. A new set of paths is constructed as follows: First, each of the existing candidate paths in the first forward driving direction is extended by a predetermined distance, e.g., d meters, in the first forward driving direction. Next, the current map-matching position on the candidate path is manually moved forward by this predetermined distance, e.g., the d meters, in the first forward driving direction. This step is performed to avoid missing any intersections ahead of the current position before creating a set of reverse paths. The segment on which the manually advanced current map-matching position now lies is identified, and the segment is inverted to form the initial portion of a new candidate path in the opposite second driving direction. This initial portion of the new candidate path in the opposite driving direction is then extended to create an extended candidate path in the opposite second driving direction. The extension is implemented in the same manner as described herein with respect to obtaining the candidate path library in the forward driving direction, except that certain restrictions, such as one-way streets, are generally not used (because it is assumed that reverse driving is a necessary event where the driver mistakenly enters a one-way street in the wrong direction). Once an expanded candidate path has been created in the reverse direction of travel, the current map matching position is returned to its true position with respect to the new candidate path, i.e., by moving that position forward a predetermined distance, e.g., d meters, along the reverse path. Therefore, for each segment in the new candidate path, there exists a possible position corresponding to the current map matching position and used to perform subsequent map matching.
[0219] Input jump check
[0220] The purpose of the input hop check implemented in the input hop check module 101 on the input processing layer 100 is to determine whether the current position has far exceeded the reachability of existing paths. In this case, the old path may have to be discarded and replaced with a new path. This is because the hop may be attributed to input outliers (e.g., errors in GNSS data), and the algorithm is configured not to reset for the first sample.
[0221] Static inspection
[0222] A stationary check is implemented in the stationary check module 102 and is used to detect the existence of stationary conditions. If the stationary check module 102 detects that there is no movement, the map matcher algorithm does not need to run.
[0223] off-road inspection
[0224] External road inspection is performed by external road inspection module 290 in post-processing.
[0225] This function compares the current input location with the best matching location determined by the map matching algorithm. If the difference between the distance from the current location to the projection on the best path is too large, the map matcher goes off-road. Similarly, if the difference between the current direction of travel and the direction on the best path is too large and the distance also exceeds the distance threshold for adjusting the direction of travel, the map matcher goes offline. Furthermore, the map matcher may go offline if the best path reaches its end. Normally, when traveling on a highway, the map matcher will not go offline as long as the speed is high enough.
[0226] When the map matcher is offline, it can switch to arc matching mode, where it searches for good matching arcs. Once a good matching arc is found, the map matcher can switch back to path matching mode and construct initial path candidates, as described above.
[0227] Path propagation
[0228] During map matching updates, each matcher on each candidate path first propagates forward with the new positioning input, thereby producing an estimate of the correct location along the path, where the expected input matches the desired location. This can be considered a special case of particle filtering: the map matcher searches for an optimal location along each path.
[0229] In the location matcher 231, since both the digital map and the input trace can be displaced, it is impossible to always obtain a correct curve-to-curve match between the input trace and the path without compensating for the displacement. The optimal matching position along the path should be defined as the position that minimizes the curve difference after enumerating all possible displacements. However, calculating the curve difference, represented by a score, is expensive. Therefore, a trade-off is made in the map matching algorithm to propagate the displacement in the path propagation module before scoring. The initial displacement is simply assumed to be the cross-track offset between the first input sample and the path curve. As input progresses, the input trace is adjusted by the previous offset before calculating the new cross-track error, which is then used to update the new offset. Thus, the offset is accumulated over epochs, which is computationally efficient. However, it has been found that the cross-track offset before a turn becomes the along-track error after a turn, which is difficult to compensate for because the optimal position along the path is always the position projected perpendicularly onto the path. Therefore, an offset optimization is proposed. It propagates the transformed input trace backward along the path and (weightedly) averages the obtained multiple offsets for offset correction. Offset optimization ensures a better shape-based match with the path, while it is relatively extended and only works under certain conditions, such as after a turn.
[0230] Like the position matcher 231, the forward direction matcher 232 also processes two-dimensional data, consisting of accumulated travel distance and forward direction. The map road geometry is represented by the accumulated path length and segment forward direction. Due to the simplified map and lack of road width information, the accumulated distance along the path often differs from the actual travel distance. For example, a corner consisting of several consecutive road segments is often longer than the actual distance the driver will travel, while changing lanes along a wide straight road results in an input travel distance longer than the segment accumulation. This can be compensated for in the forward direction matcher path propagation by adjusting the traveled input distance with an offset. Offset optimization is also implemented to minimize the difference between the two steering functions and to prevent the forward direction matcher 232 from skipping problematic turns along the path as the travel distance increases.
[0231] Path propagation is a module that not only optimizes the offset but also generates an estimate of the correct matching position. For example, other matchers in speed-limited matcher 252 and travel distance matcher 251 (which only take one-dimensional data as input) can skip the path propagation step because they depend on the obtained matching position.
[0232] Input conversion and propagation along the path are essential to ensure effective matching with large drifts. For example, during GNSS interruptions in tunnels, dead reckoning systems can still provide positioning data, but due to accumulated gyroscope drift and accelerometer bias, they will drift from the true trajectory. Figure 5 This paper depicts a case study of positioning using the Paris Tunnel with drift dead reckoning. As can be seen, the input track drifts by more than 500 meters near the tunnel exit, yet still matches the correct path well. Although it incorrectly jumps to parallel roads before regaining GNSS positioning and incorrectly selects several samples after the fork in the road following GNSS positioning, the algorithm achieves a successful match with the tunnel without involving any feedback loop between the positioning and map matching components.
[0233] Path scoring and multi-matcher fusion
[0234] Position matcher 231 uses the norm of the sum as a score, while forward direction matcher 232 uses the area of the total rectangle between the two adjustment functions as the score. This is a relatively simple method to quantitatively measure the geometric displacement and representative curve differences between the transformed input trace and the actual path, respectively. Other matchers, such as travel distance matcher 251 and speed limit matcher 252, are based on the best matching position obtained after path propagation to further confirm or disqualify the results on each path. As more measurements are involved in the matching process, multi-criteria fusion based on belief theory is used independently in the algorithm for each path to distinguish conflicts between different criteria and the probability that the estimated path is the correct path. Belief theory, also known as Dempster-Shafer theory, can also be used appropriately because it can work even if the source of the belief value is not fully defined. At the same time, Dempster's combination rule is purely cumulative, which makes it easy to extend and computationally inexpensive. However, various other suitable probability theories, such as hidden Markov chains, fuzzy logic, and Kalman filters, can also be used.
[0235] Path ranking and decision
[0236] Path ranking and decision-making, the final step in map matching, is used to select the best matching path from all path candidates. Due to the separation of path propagation and path scoring, the information used to select the best path includes both offset and confidence probability. These exist in two distinct matching domains. Probability is a quantitative index between 0 and 1 to represent curve-to-curve shape displacement, while offset is a vector that shifts the input trajectory and thus represents input or map bias. Neither is truly reliable. For example, probability does not distinguish between two parallel roads because they have the same geometry and match the input trajectory equally. In this case, offset plays a crucial role. Conversely, offset alone cannot determine a match. In the dead reckoning tunnel scenario, offset increases due to dead reckoning drift, where shape-based probability must be relied upon.
[0237] Path ranking merges these two matching domains in a hierarchical design. It first categorizes all path candidates into two groups based on offset, then further subcategories the group with the better offset into subgroups based on probability. Within each group, paths are ranked in descending order of probability. The ranking produces the best-matching path for the current input. However, it does not prevent jumping between paths when the best-matching path differs from one sample to the next. A decision-maker is then used to minimize this jumping; the decision-maker compares the current best-ranked path with the previous best path to decide whether to jump to the new best path or stick with the previous best path.
[0238] Unlike most existing methods that directly use curve-to-curve matching discrepancies as a scoring criterion, this algorithm treats some discrepancies as map errors due to centerline simplification or positioning input biases due to drift. These discrepancies are further eliminated from the path scoring to optimize path selection, resulting in better shape matching. The algorithm also utilizes complete input information, such as position, direction of travel, distance traveled, and speed limits, as multiple criteria in the path scoring, thus producing more reliable performance. The algorithm strikes a good balance between matching accuracy and computational speed, making it suitable for best-selling navigation devices.
[0239] Jump detection
[0240] A jump is the location where the path selected as the most likely candidate becomes a different path from the final sample. Jump detection focuses on two paths: the "best" path after ranking, which is the path that can be jumped to; and the "preferred" path, which is the best path in the previous run of the map matcher algorithm, and the best path is the path that can be jumped from.
[0241] Jump detection algorithms attempt to minimize or delay jumps to avoid premature jumps and the need to jump back. For example, an algorithm might adhere to a preferred path after receiving new positioning input at a tunnel exit, even if this input is noisy and potentially inaccurate. Typically, the algorithm may choose to adhere to a preferred path where the probability of the best path is lower than the probability of the preferred path, or where the mass distance of the best path exceeds the mass distance of the preferred path, or where a true jump occurred in the recent past. In this way, a jump will only occur when the algorithm determines it is appropriate.
[0242] Although embodiments of the invention have been described with reference to a car user (or driver) traversing a route defined by one or more road segments, it should be appreciated that the techniques described herein can also be applied to various other navigable segments, such as paths, rivers, canals, bike paths, traction paths, railway lines, or the like. Therefore, the user need not be a car driver, but could be, for example, a pedestrian or cyclist receiving navigation instructions.
[0243] All features disclosed in this specification (including any appended claims, abstract, and figures) and / or all steps of any disclosed method or process may be combined in any combination, except for at least some mutually exclusive combinations of such features and / or steps.
[0244] Unless otherwise expressly stated, each feature disclosed in this specification (including any appended claims, abstract, and figures) may be replaced by an alternative feature for the same, equivalent, or similar purpose. Therefore, unless otherwise expressly stated, each disclosed feature is merely one example of a range of generally equivalent or similar features.
[0245] This invention is not limited to the details of any of the foregoing embodiments. The invention extends to any novel feature or combination thereof disclosed in this specification (including any appended claims, abstract, and figures) or any novel step thereof in any disclosed method or process. The claims should not be construed as covering only the foregoing embodiments, but also any embodiments falling within the scope of the claims.
Claims
1. A method for matching the current location of a device to an electronic map of a network indicating navigable elements within a geographic area, the electronic map comprising a plurality of segments representing the navigable elements, the method comprising: Obtain position data including a sample of position data indicating the position of the device; Obtain electronic map data about at least a portion of the area covered by the electronic map; Using a first matching engine, for each of a plurality of segments in a set of segments of the electronic map, a first score is provided based on a first criterion indicating the likelihood that the current location can be mapped to the segment of the electronic map; Using a second matching engine, for each of the plurality of segments in the group, a second score is provided based on a second criterion indicating the probability that the current location can be mapped to the segment of the electronic map, wherein the first matching engine and the second matching engine operate independently of each other based on different first and second criteria; Using at least the first score and the second score, determine an overall score for each of the plurality of segments in the group that indicates the likelihood that the current location can be mapped to the segment; The device that uses the overall score determined about the plurality of segments in the electronic map to obtain the estimated current position of a segment from the set of segments in the electronic map is output as a map matching current position; and Generate data indicating that the map matches the current location.
2. The method of claim 1, further comprising ranking the segment using its corresponding overall score at least based on the probability that the current position can be mapped to the segment.
3. The method of claim 1 or 2, wherein the step of the first matching engine or the second matching engine providing a score indicating the probability that the current location can be mapped to the segment includes the matching engine matching the location data to the segment based on the corresponding criteria of the engine.
4. The method of claim 3, wherein the location data used in the matching comprises multiple location data samples at different times.
5. The method of claim 1 or 2, wherein determining the overall score is performed using techniques based on trust theory.
6. The method of claim 1 or 2, further comprising identifying the segment to which the best match will be provided to the location data based on the overall score.
7. The method of claim 6, wherein identifying the segment providing the best match is based on a corresponding match score for the segment and an offset between the location data trace and the segment.
8. The method of claim 1 or 2, wherein matching of each of the criteria for a segment comprises the following steps: Identify the point on the segment that provides the best estimate of the current position of the device.
9. The method according to claim 1 or 2, wherein the criteria include at least the direction of travel and the position.
10. The method according to claim 1 or 2, further comprising: The generated data indicating the map matching the current location is input into the prediction engine to generate data indicating one or more predicted and updated locations of the device; And the predicted and updated location data provided by the prediction engine is used to indicate the location of the device on the electronic map.
11. A map matching engine for matching the current location of a device to an electronic map indicating a navigable network, the electronic map comprising a plurality of nodes connected by segments, the engine comprising components for performing the steps of the method according to claim 1 or 2.
12. The map matching engine of claim 11, wherein the engine is provided by a server and / or a mobile device.
13. The map matching engine of claim 12, wherein the engine is provided by a navigation device.
14. A system for matching the current location of a device to an electronic map indicating a network of navigable elements within a geographic area, the electronic map comprising a plurality of segments representing the navigable elements, the system comprising: A component for obtaining location data including a location data sample indicating the location of the device; Components for obtaining electronic map data about at least a portion of the area covered by the electronic map; A component for providing a first score based on a first criterion indicating the likelihood that the current location can be mapped to the segment of the electronic map, using a first matching engine for each of a plurality of segments in a set of segments of the electronic map; A component for using a second matching engine to provide a second score for each of the plurality of segments in the group based on a second criterion indicating the probability that the current location can be mapped to the segment of the electronic map, wherein the first matching engine and the second matching engine operate independently of each other based on different first and second criteria; A component for determining an overall score indicating the likelihood that the current location can be mapped to the segment, for each of the plurality of segments in the group, using at least the first score and the second score; A component of the apparatus for obtaining a segment from a set of segments of the electronic map using the overall score determined about the plurality of segments in the electronic map, and outputting the estimated current position as a map-matched current position; and A component used to generate data indicating that the map matches the current location.
15. A computer program product comprising instructions that, when executed by one or more processors of a system, cause the system to perform the method according to claim 1 or 2, wherein the computer program product is optionally stored on a non-transitory computer-readable medium.
Citation Information
Patent Citations
Resolving discrepancies between location information and route data on a navigation device
US20060178809A1