Method and apparatus for incremental mapping of haul roads

The method dynamically updates road network maps in open-cut mines by clustering and updating vehicle positions, addressing the challenge of continuous layout changes, thereby improving haul truck dispatching and operational efficiency.

JP7815246B2Active Publication Date: 2026-02-17TECHNOLOGICAL RESOURCES PTY LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023532373
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-11-26
Filing Date
2021-11-26
Publication Date
2026-02-17
Estimated Expiration
2041-11-26

AI Technical Summary

Technical Problem

Existing methods for generating road network maps in dynamic environments like open-cut mines fail to account for continuous changes in the road layout due to the limited number of vehicles and frequent alterations in the mine's progression, leading to inaccurate maps that affect haul truck dispatching and operational efficiency.

Method used

A method and system that dynamically update road maps by clustering vehicle positions, reassigned points to clusters, generate new clusters, merge or remove clusters, and update connections based on vehicle tracking data, ensuring real-time map accuracy.

Benefits of technology

Provides accurate and up-to-date road network maps that enhance haul truck dispatching efficiency, optimize material movement, and improve operational performance in dynamic mining environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007815246000013
    Figure 0007815246000013
  • Figure 0007815246000014
    Figure 0007815246000014
  • Figure 0007815246000015
    Figure 0007815246000015
Patent Text Reader

Abstract

A plurality of vehicles are located in a geographic area, each equipped with a position tracker and a vehicle communication system, and transmit a series of time-series position reports for the vehicles. A data communication network is in data communication with the vehicle communication system of each vehicle. A map generation assembly (MGA), including a processing assembly and an electronic memory assembly, is in data communication with the data communication network and receives the position reports. From the position reports, the MGA generates batches of points corresponding to vehicle positions for each vehicle at each time, compares the points in the batch against the positions of clusters in a map for each batch, updates the map by performing a cluster update procedure based on the comparison, generates an updated map by updating connections between clusters after the cluster update, and transmits the updated map to a remote user via the data network.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Related Applications. This application claims priority to Australian Provisional Patent Application No. 2020904376, filed November 26, 2020, the entire contents of which are incorporated herein by reference.

[0002] Technical field. The present invention relates to a method and apparatus for incrementally mapping haul roads, including, but not limited to, haul roads in open pit mines. [Background technology]

[0003] Any mention of prior art methods, devices, or documents is not to be construed as constituting evidence or admission that they constitute part of the common general knowledge.

[0004] Efficient dispatching of haul trucks in open-cut mines relies heavily on road network maps that accurately represent the topography and connectivity of haul operations. Traffic control systems use maps to calculate routes and predict travel times between locations. These are then used to calculate optimal shovel coverage to maximize a global objective function (e.g., maximize total material moved, achieve blending, etc.). Thus, the quality of the road map has a direct impact on truck queues, shovel hang times, and product blending and crusher feed.

[0005] The following articles are each incorporated in their entirety by reference herein: [Prior art documents] [Non-patent literature]

[0006] [Non-Patent Document 1] Rade Stanojevic, Sofiane Abbar, Saravanan Thirumuruganathan, Sanjay Chawla, Fethi Filali, and Ahid Aleimat. Robust Road Map Inference through Network Alignment of Trajectories. In Proceedings of the 2018 SIAM International Conference on Data Mining, Proceedings, pages 135* 143. Society for Industrial and Applied Mathematics, May 2018a. doi: 10.1137 / 1.9781611975321.15. [Non-patent document 2] Zhongyi Ni, Lijun Xie, Tian Xie, Binhua Shi, and Yao Zheng. Incremental Road Network Generation Based on Vehicle Trajectories. ISPRS International Journal of Geo-Information, 7(10):382, "t(October 2018)t". doi: 10.3390 / ijgi7100382. [Non-patent document 3] Lester. E. Dubins. On Curves of Minimal Length with a Constraint on Average Curvature, and with Prescribed Initial and Terminal Positions and Tangents. American Journal of Mathematics, 79(3):497*516, 1957. ISSN 0002-9327. doi: 10.2307 / 2372560. Summary of the Invention [Problem to be solved by the invention]

[0007] Previous studies have investigated the estimation of road network maps from electronic location reports containing GPS or GNNS data. However, previous approaches assumed a static road network, whose layout can be estimated using large amounts of data collected over long time frames. This contrasts with the situation in environments such as surface mining, where only a small number of vehicles (compared to urban environments) travel the road network and the network layout is continuously changing as the mine progresses.

[0008] [1] presents a cluster-based approach for offline road network generation. All GPS points with headings are clustered using k-means clustering. Then, in a second step, the clusters are connected according to the GPS routes. [1] also provides a solution to incrementally add new GPS data as it becomes available. However, this version of the procedure only extends the road map when new GPS data becomes available, but does not allow for revision or refinement of the map.

[0009] In contrast, it would be desirable to provide a vehicle tracking and map generation method and apparatus that can modify existing portions of a road map by tracking vehicles and processing vehicle position data as new vehicle positions become available. [Means for solving the problem]

[0010] According to an aspect of the present invention, there is provided a method of publishing map updates for a geographic area, comprising: the map is stored in an electronic memory assembly, the map including clusters of vehicle locations and connections between the clusters, each of the clusters having a plurality of points assigned thereto, the points corresponding to each vehicle at each time; The above method is operating the data communications assembly to establish data communications with each of said vehicles via a data communications network; receiving position reports from each of said vehicles via said data communications network using said data communications assembly; operating a processing assembly in said electronic memory assembly to generate from said position reports batches of points corresponding to vehicle positions for each vehicle at each time; operating said processing assembly to compare points of the batch against cluster locations of said map for each batch; Based on the above comparison, the following a to f, namely: a. assigning points of said batch to clusters; b. reassigning points of said map to clusters; c. updating the cluster locations to account for the point assignments and reassignments; d. generating new clusters based on the distant points of the batch; e. Merging clusters that are closer to each other than a predetermined distance; f. Removing clusters that have no assigned points; operating said processing assembly to update said map by performing a cluster update procedure comprising performing at least one of operating said processing assembly to generate an updated map by updating connections between clusters after a cluster update; and operating the data communications assembly to transmit the updated map to a remote user over a data network.

[0011] In one embodiment, The operation of the processing assembly to generate a batch of points from the position report includes forming a batch of input records from successive vehicle location points of the vehicle; The first point of the input record comprises a source point and the second point comprises a destination point.

[0012] In one embodiment, the method includes adding the input record to the batch of input records until a new map is generated or until a predetermined batch size is reached.

[0013] In one embodiment, the method includes finding the closest cluster in the current map for each of the source point and the destination point.

[0014] In some embodiments, the method includes, for each of the source point and the destination point, determining whether the point is less than a predetermined cluster radius from a nearest cluster.

[0015] In one embodiment, the method includes assigning the point to the nearest cluster if the point is less than a predetermined cluster radius from the nearest cluster.

[0016] In one embodiment, the method includes updating the location of the nearest cluster to take into account the point assignments.

[0017] In one embodiment, the method includes, if the point is not less than a predetermined cluster radius from the nearest cluster, generating the new cluster using the position of the point as the position of the new cluster.

[0018] In one embodiment, after step c., for each point, determine whether the point is within the cluster radius of the cluster to which it is currently assigned (its "old cluster") or if it is not within the cluster radius, remove the point from its old cluster assignment, and update the position of the old cluster to take into account the point's removal.

[0019] In one embodiment, reassigning the point to the nearest cluster (the "new cluster") within the cluster radius; The positions of the new clusters are updated to take into account the reassignment of the points to the new clusters.

[0020] In one embodiment, step e. includes, for each cluster ("first cluster"), identifying a cluster ("second cluster") that is closer to it than the predetermined distance, and reassigning all points in the second cluster to the first cluster.

[0021] In some embodiments, the method includes determining whether the source point and the destination point exhibit a connection.

[0022] In one embodiment, the method includes updating a connection count record in a portion of the electronic memory assembly if the source point and the destination point indicate a connection.

[0023] In one embodiment, the method includes processing the high-level connections to determine a corresponding sequence of lower-level connections.

[0024] In one embodiment, the method includes processing the higher-level connections to determine a corresponding sequence of lower-level connections by applying one or more of the following procedures to the higher-level connections: chord angle filtering, Dubins path sequencing, and gravity rubberbanding.

[0025] In one embodiment, processing the higher-level connections to determine a corresponding sequence of lower-level connections includes, for each of the higher-level connections, identifying midpoints between clusters at either end of the higher-level connection.

[0026] In one embodiment, processing the higher-level connections to determine a corresponding series of lower-level connections includes considering all clusters that include a circle around a midpoint that passes through a start and end cluster as candidates for an intermediate cluster in the sequence of lower-level connections.

[0027] In one embodiment, the method includes tagging a high level connection that is subsequently updated.

[0028] In one embodiment, the method includes removing points (or "prune points") from the electronic memory assembly.

[0029] In one embodiment, the method includes removing points assigned to clusters representing nodes of a road network that have been removed from the geographic area.

[0030] In one embodiment, the method includes setting a fixed number of points to be held in the electronic memory assembly and removing the points based on their lifetime to prevent exceeding the fixed number.

[0031] In one embodiment, the method further comprises: establishing a fixed number of points to be held in said electronic memory assembly; Removing points by considering that points along busy roads may be removed early due to the large amount of data, while points belonging to roads with less traffic should be kept longer.

[0032] In one embodiment, the method further comprises: checking all clusters to identify points that can be removed from the map without removing connections between clusters; and then removing such points.

[0033] In one embodiment, the method further comprises: monitoring the locations of machines of a predetermined type operating in said geographic area; deeming the area in which said machine operates no longer operable even though said machine is operating; and removing the corresponding points from the electronic map.

[0034] In one embodiment, the method includes post-processing the electronic map after processing the batch of input records and before transmitting the updated map to a remote user over a data network.

[0035] In one embodiment, the post-processing includes tagging free driving areas on the map.

[0036] In one embodiment, the post-processing includes tagging free driving areas in the electronic map by identifying predetermined functional areas.

[0037] In one embodiment, the predetermined functional area includes an ore loading and unloading area.

[0038] In one embodiment, the post-processing includes cropping areas tagged as free driving areas in the electronic map.

[0039] In one embodiment, the post-processing includes identifying artifacts in the electronic map that are due to multipath connections and removing redundant low-level connections.

[0040] In one embodiment, the post-processing includes identifying and tagging intersections on the electronic map.

[0041] In one embodiment, The method includes associating each of the source point, the destination point, and the nearest cluster with a three-dimensional coordinate; the three-dimensional coordinates include two dimensions for position in a plane and a third for orientation; Each distance is determined based on the three-dimensional coordinates.

[0042] In one embodiment, the method includes operating a human-machine interface of the vehicle to display the electronic map to an operator of the vehicle for the operator's reference when operating the vehicle in an area mapped by the electronic map.

[0043] In a further aspect, there is provided a system for generating and updating an electronic map of a route traveled by a vehicle in a geographic area, the system comprising: a plurality of vehicles located in the geographic area, each vehicle equipped with a position tracker and a vehicle communication system to transmit a series of time-series position reports for the vehicle; a data communications network in data communication with the vehicle communications system of each of the plurality of vehicles; a map generating assembly (MGA) including a processing assembly and an electronic memory assembly, the map generating assembly being in data communication with said data communications network and configured to receive said position reports; The above MGA is generating, in said electronic memory assembly, from said position reports, batches of points corresponding to vehicle positions for each vehicle at each time; operating said processing assembly to compare points of the batch against cluster locations of said map for each batch; Based on the above comparison, the following a to f, namely: a. assigning points of said batch to clusters; b. reassigning points of said map to clusters; c. updating the cluster locations to account for the point assignments and reassignments; d. generating new clusters based on the distant points of the batch; e. Merging clusters that are closer to each other than a predetermined distance; f. Removing clusters that have no assigned points operating said processing assembly to update said map by performing a cluster update procedure comprising performing at least one of operating said processing assembly to generate an updated map by updating the connections between clusters after a cluster update; The updated map is configured to be transmitted to a remote user over a data network.

[0044] According to a further aspect of the present invention there is provided a system for generating and updating an electronic map of a route traveled by a vehicle in a geographical area, said system comprising: a plurality of vehicles located in the geographic area, each vehicle equipped with a position tracker and a vehicle communication system to transmit a series of position reports relating to the vehicle; a data communication network in data communication with the vehicle communication system; a map generating assembly (MGA) in data communication with the data communications network and configured to receive the location reports; The above MGA is For each position report received for said vehicle, comparing the vehicle's position from said position report against the position of the nearest cluster in an electronic map; updating cluster locations or creating new clusters based on said comparison, thereby updating said electronic map; A copy of the updated electronic map is configured to be transmitted to a remote user via the data communications network.

[0045] According to a further aspect of the present invention there is provided a method for generating and updating an electronic map of a route traveled by a vehicle in a geographical area, said method comprising: establishing data communication with each of said vehicles via a data communication network; receiving a position report from each of said vehicles via said data communications network; For each position report received for said vehicle, comparing the vehicle's position from said position report against the position of the nearest cluster in an electronic map; updating cluster locations or creating new clusters based on said comparison, thereby updating said electronic map; and transmitting the updated map to a remote user over a data network.

[0046] Preferred features, embodiments, and variations of the present invention can be discerned from the following detailed description, which provides sufficient information for those skilled in the art to practice the invention. The detailed description should not be construed in any way as limiting the scope of the preceding summary. The detailed description, as set forth below, makes reference to numerous drawings. [Brief explanation of the drawings]

[0047] [Figure 1] It communicates with a data network and indicates vehicles moving on roads in a geographic area. [Figure 2] It communicates with a data network and indicates vehicles moving on roads in a geographic area. [Figure 3] FIG. 2 is a block diagram of a vehicle of the system. [Figure 4] FIG. 1 is a block diagram of a system according to an embodiment of the present disclosure. [Figure 5] FIG. 1 is a block diagram of a map generator assembly (MGA) according to an embodiment of the present disclosure. [Figure 6] 1 is a graphical representation of GPS data points received during vehicle movement and pairings of the GPS data points that form an input record containing source and destination position pairs. [Figure 7] 1 is a graphical representation of a map produced by MGA before post-processing cleaning. [Figure 8] 10 is a flowchart of a method implemented by an MGA to receive position reports from a data network and store GPS points therefrom in a point buffer of the MGA. [Figure 9] 10 is a flowchart of a method implemented by an MGA to generate batches of input records containing location data for subsequent processing. [Figure 10] 10 is a flowchart of a method implemented by an MGA to generate and update a map in response to a batch of input records. [Figure 10A] 11 is a flowchart of the method implemented in box 153 of the flowchart of FIG. 10. [Figure 11A] 3 shows successive map generation in response to new position reports for vehicles received over a data network. [Figure 11B] 3 shows successive map generation in response to new position reports for vehicles received over a data network. [Figure 11C] 3 shows successive map generation in response to new position reports for vehicles received over a data network. [Figure 11D] 3 shows successive map generation in response to new position reports for vehicles received over a data network. [Figure 11E] 3 shows successive map generation in response to new position reports for vehicles received over a data network. [Figure 11F] 3 shows successive map generation in response to new position reports for vehicles received over a data network. [Figure 11G] 3 shows successive map generation in response to new position reports for vehicles received over a data network. [Figure 11H] 3 shows successive map generation in response to new position reports for vehicles received over a data network. [Figure 12] Shows tagged areas of the map. [Figure 13] Shows the tagged area of ​​the map before the MGA cropping procedure. [Figure 14]14 shows the tagged area of ​​the map of FIG. 13 after a cropping procedure has been performed. [Figure 15] 1 shows a portion of a map before multipath correction by MGA is performed to prune redundant connections. [Figure 16] 16 shows a portion of the map of FIG. 15 after performing multipath correction by MGA to prune redundant connections shown in FIG. 15. [Figure 17] A portion of a map is shown with marked intersections, with split-off and joining partners indicated by dotted lines. [Figure 17A] 1 shows the maps generated by MGA after post-processing. [Figure 18A] Illustrates maps generated using different amounts of vehicle location data, ranging from 6 hours to 30 days of data. [Figure 18B] Illustrates maps generated using different amounts of vehicle location data, ranging from 6 hours to 30 days of data. [Figure 18C] Illustrates maps generated using different amounts of vehicle location data, ranging from 6 hours to 30 days of data. [Figure 18D] Illustrates maps generated using different amounts of vehicle location data, ranging from 6 hours to 30 days of data. [Figure 18E] Illustrates maps generated using different amounts of vehicle location data, ranging from 6 hours to 30 days of data. [Figure 18F] Illustrates maps generated using different amounts of vehicle location data, ranging from 6 hours to 30 days of data. [Figure 19A] 10 shows maps of intersections produced by MGAs implementing different procedures for determining intermediate cluster sequences, shown before and after pruning for each of the three different procedures. [Figure 19B] 10 shows maps of intersections produced by MGAs implementing different procedures for determining intermediate cluster sequences, shown before and after pruning for each of the three different procedures. [Figure 19C] 10 shows maps of intersections produced by MGAs implementing different procedures for determining intermediate cluster sequences, shown before and after pruning for each of the three different procedures. [Figure 19D] 10 shows maps of intersections produced by MGAs implementing different procedures for determining intermediate cluster sequences, shown before and after pruning for each of the three different procedures. [Figure 19E] 10 shows maps of intersections produced by MGAs implementing different procedures for determining intermediate cluster sequences, shown before and after pruning for each of the three different procedures. [Figure 19F] 10 shows maps of intersections produced by MGAs implementing different procedures for determining intermediate cluster sequences, shown before and after pruning for each of the three different procedures. [Figure 20A] 10 shows maps of intersections generated by MGA implementing different procedures for intermediate cluster sequences, shown before and after pruning for three different procedures. [Figure 20B] 10 shows maps of intersections generated by MGA implementing different procedures for intermediate cluster sequences, shown before and after pruning for three different procedures. [Figure 20C] 10 shows maps of intersections generated by MGA implementing different procedures for intermediate cluster sequences, shown before and after pruning for three different procedures. [Figure 20D] 10 shows maps of intersections generated by MGA implementing different procedures for intermediate cluster sequences, shown before and after pruning for three different procedures. [Figure 20E] 10 shows maps of intersections generated by MGA implementing different procedures for intermediate cluster sequences, shown before and after pruning for three different procedures. [Figure 20F]10 shows maps of intersections generated by MGA implementing different procedures for intermediate cluster sequences, shown before and after pruning for three different procedures. [Figure 21A] We compare some of the maps generated by MGA using different sampling intervals. [Figure 21B] We compare some of the maps generated by MGA using different sampling intervals. [Figure 21C] We compare some of the maps generated by MGA using different sampling intervals. [Figure 21D] We compare some of the maps generated by MGA using different sampling intervals. DETAILED DESCRIPTION OF THE INVENTION

[0048] 1 and 2 stylistically illustrate a portion of a road network 1 in a mining environment in which systems, methods, and apparatus according to embodiments of the present invention may be implemented. In the mining environment, vehicles such as mining haul trucks 2-1, ..., 2-I traverse across the road network 1 to perform transportation tasks, for example, by moving material between stations. The stations may include various operational sites shown in FIG. 1 , such as crusher site 7, loading site 9, dump site 11, shipping site 13, stockpile site 15, and maintenance site 17. In performing their tasks, the mining haul trucks 2-1, ..., 2-I travel along paths on the road network 1. As will be further described, each of the vehicles includes a position tracker capable of generating multiple successive time positions, e.g., GPS data, as the vehicle progresses along its path. Output from the position tracker is transmitted by the vehicle's vehicle communication system to a data network 31 for further processing, including map generation and updating.

[0049] As previously mentioned, efficient dispatching of haul trucks in an open-cut mine relies heavily on mine managers having road network maps that accurately represent the topography and connectivity of haul operations. The term "mine managers" will be understood to encompass human and non-human decision makers who need to refer to a current map of the road network. The term includes, but is not limited to, traffic control systems, software that efficiently dispatches vehicles, and vehicle fleet operators, such as controllers that configure and control the traffic control systems. Road networks in dynamic environments such as open-cut mines change over time, such as when new portions of the mine are developed and old portions are abandoned. Some changes occur over long periods of time, while others occur over relatively short periods of time but have a significant impact on map accuracy.

[0050] FIG. 3 presents a block diagram of an embodiment of a driver-operated haul truck 2-1. Autonomous haul trucks are also known and are compatible with the described method according to embodiments of the present application. The vehicle 2-1 includes a data bus 42 that facilitates electronic data communication between a processor 40 configured to coordinate interactions between the multiple assemblies 28, 30, 32, 36, and 38. A human-machine interface (HMI) 28 is provided, which may be a suitably programmed mobile computing device, such as a tablet personal computer or personal digital assistant. Alternatively, the HMI 28 may comprise a mobile industrial computer with a screen and operator interface for implementing the present system.

[0051] As previously mentioned, the haul truck 2-1 also includes a position tracker 32, e.g., a Global Positioning System (GPS) receiver, configured to generate information regarding at least the vehicle's location at each of a series of time periods, e.g., at five-second intervals. The position tracker may also triangulate position estimates from ground transmitters, such as the wireless transceivers 16a and 16b shown in FIG. 3, which are part of the data network 31. The position tracker 32 may also include a gyroscope or other inertial navigation device, which may be used to generate a position signal indicating the location of the vehicle 2-1 within the mining environment. The position tracker 32 may ascertain at least the vehicle's location at multiple consecutive times as it moves through the area. The haul truck 2-1 also includes a sensor assembly 38, which may include sensors for measuring the weight of the load being carried, braking condition, steering angle, wheel rotation speed, fuel level, engine temperature, tire pressure, and driver fatigue, as well as radar and / or LiDAR sensors for estimating obstacle proximity.

[0052] Vehicle 2-1 also includes a navigation and task assistance assembly 30, which generates navigation information displayed on HMI 28 to assist the driver in driving the vehicle and completing task assignments. During use, the driver references the information displayed on HMI 28 and then operates propulsion system 34, power steering system 44, and braking system 46 accordingly. For example, the HMI may describe a route to be traversed by the vehicle.

[0053] Vehicle 2-1 also includes a vehicle communication system 36, which is connected to an antenna 48 for transmitting radio frequency data communication signals to a data network 31 of which ground receivers 16a, 16b are a part. Vehicle communication system 36 receives messages and commands, including task assignments, from a task assignment allocator 55.

[0054] 4, there is shown a system 101 for incrementally updating a map including a graph stored in an electronic memory device, sometimes referred to herein as Streaming Map Generation (SMG), according to an embodiment of the present invention.

[0055] The system 101 includes a data network 31 for placing the vehicle communication system 36 of each haul truck 2-1,...,2-I in data communication with the MGA 33. The data network 31 includes a collection of wireless data transceivers 16a,...,16m, including satellite and terrestrial transceivers suitable for implementing wireless communication protocols such as WiFi, WiMax, GPRS, EDGE, or equivalent terrestrial and satellite wireless data communications. It will be recognized that these network architectures are provided by way of example only and are therefore not limiting.

[0056] The MGA 33 receives a stream of position reports 25 from the vehicles 2-1, ..., 2-I over the data network 31, which provide location estimates for the vehicles within a defined coordinate frame. The position reports include position coordinates, the time the position was generated, and information to identify the vehicle.

[0057] The position report may include or be based on data from any / all of the positioning systems, such as the US GPS, the Russian GLONASS, the EU Galileo positioning system, the Chinese Beidou positioning system, or local positioning systems such as India's NavIC and Japan's QZSS.

[0058] It will be appreciated that Global Navigation Satellite Systems (GNSS), such as the US-owned Global Positioning System (GPS), are one method of obtaining positioning data, and that other methods, such as positioning based on cell tower triangulation, may be used as an alternative or in addition to GNSS.

[0059] As will be explained, the MGA 33 is configured to process the position reports 25, thereby maintaining and dynamically updating a graph stored in memory, including a map 100 of the geographic area in which the vehicles operate. Accordingly, upon request, or otherwise from time to time, the MGA 31 transmits the map 23 back to the data network. For example, the map 23 may be used by the task assignment allocator 55 to assist it in accurately assigning tasks to the vehicles 2-1, ..., 2-I to travel from an origin to a destination and complete tasks, such as depositing and delivering ore, to optimize a desired operational function, e.g., to maximize ore production from a mine.

[0060] Referring now to FIG. 5, in accordance with a preferred embodiment of the present invention, MGA 33 is provided in the form of a specially configured processing assembly in data communication with haul trucks 2-1, . . . , 2-I via data network 31.

[0061] The described embodiment of the MGA 33 is a preferred example, not the only possible example. In other embodiments, the MGA 33 may be implemented as a distributed or decentralized assembly. For example, in other embodiments, the MGA 33 may be implemented as multiple servers, each cooperating with each other to undertake a different step of the method described below, or each dynamically updating a different portion of the mapped geographic area of ​​interest.

[0062] The MGA 33 receives time-separated position reports 25 from the data network 31 originating from each of the vehicles 2-1, . . . , 2-I.

[0063] MGA 33 includes a main board 64 that contains circuitry for powering and interfacing to a processing assembly that includes one or more on-board microprocessors or “CPUs” 65 .

[0064] The main board 64 acts as an interface between the CPU 65 and an electronic memory assembly in the form of a secondary storage device 77. The secondary memory 77 may comprise one or more optical, magnetic, or solid-state drives. The secondary memory 77 stores instructions for an operating system 69. The main board 64 also communicates with random access memory (RAM) 80 and read-only memory (ROM) 73. The ROM 73 typically stores instructions for a startup routine, such as a Basic Input Output System (BIOS) or Unified Extensible Firmware Interface (UEFI), that the CPU 65 accesses upon startup and prepares the CPU 65 to load the operating system 69.

[0065] The main board 64 also includes an integrated graphics adapter for driving a display 77. The main board 64 has access to a data communications assembly in the form of an adapter 53, for example a LAN adapter or modem, which places the MGA 33 in data communications with a data network 31.

[0066] The operator 67 of the MGA 33 interfaces with it by means of a keyboard 79 , a mouse 51 and a display 77 .

[0067] Following BIOS or UEFI booting of the server, operator 67 may operate operating system 69 to load Map Generator Program (MGP) 70. MGP 70 may be provided as tangible, non-transitory, machine-readable instructions 89 carried on a computer-readable medium, such as optical disk 87, for reading by disk drive 82. Alternatively, MGP 70 may be downloaded via port 53.

[0068] As mentioned, secondary memory 77 is typically implemented by a magnetic or solid-state data drive and stores an operating system 69; for example, Microsoft® Windows® Server and Linux® Ubuntu® Server are two examples of such operating systems.

[0069] The secondary storage device 77 also includes the MPG 70, which configures the MGA 33 to process the position reports 25 to implement a method for maintaining and updating a map 100 that includes dynamic navigation aids. The dynamic navigation aids are made up of centers of clusters 102 ("cluster centers" or simply "clusters") derived from the GPS points of the position reports and interconnected by directional connections. The connections correspond to the vehicle's path of travel with respect to the geographic area. Each cluster center has a location (corresponding to a point in the plane of the geographic area) and an associated orientation (corresponding to the direction from one cluster to the next along the connection between clusters).

[0070] During operation of the MGA 33, one or more CPUs 35 load the operating system 69, which then loads the MGP 70. Various portions of the electronic memory of the MGA 33 are used during the execution of the method, including a graph memory 72 that stores the graph corresponding to the map 100, a point buffer 84 that stores vehicle positions (including location, timestamp, and vehicle ID) retrieved from the incoming stream of position reports 25, an input record batch memory area 86 that stores batches of input records, and a connection count record memory area 88 that stores counts of the number of connections between clusters that form the vertices of the graph corresponding to the map 100.

[0071] It will be understood that the illustrated configuration of MGA 33 is merely one example of an environment in which MGP 70 may be executed. Other suitable environments are possible, for example, program 70 may be executed on a virtual machine in a cloud computing environment, thereby implementing a specially configured MGA.

[0072] The methods implemented by MGA 33 under control of MGP 70 to process vehicle position reports 25 and maintain and update map 100 are described in the following sections of this specification and are encoded as machine-readable instructions for execution by CPU 65 comprising MGP 70.

[0073] I. Input processing. MAG 33 is configured by MGP 70 to accept a continuous stream of GPS data. Figure 6 is a graph showing GPS data points (shown as diamonds) received as position reports 25 over data network 31 for vehicles 2-3 operating in a geographic area of ​​interest. Each position report contains information defining the GPS point, including a timestamp and the x, y coordinates and heading of the vehicle at the time indicated by the timestamp.

[0074] The MGA 33 forms a series of input records IRn from a series of points, e.g., P1,...,P9, where n=1,...,8. Each input record consists of two time-stamped GPS points, which are consecutive GPS readings belonging to a vehicle. For example, IR4 contains points P4 and P5.

[0075] Each input record IRn includes a source point, which is the first of the two points that make up IRn, and a destination point, which is the second of the two points that make up IRn. For example, IR5 has a source point S5=P5 and a destination point T5=P6.

[0076] The points must be consecutive GPS points of the same vehicle. This information is used to generate connectivity and route information along a road map. Each pair must be reconstructed consistently into multiple routes. Therefore, each GPS point, e.g., P1,...,P8, is used only once as the source point of a pair. Also, each GPS point is used only once as the destination point of a pair.

[0077] Input records are expected to be in chronological order. Data from multiple vehicles can be presented in an interleaved manner.

[0078] 8, initially, in box 104, MGA 33 operates modem 53 to establish data communication with data network 31. In box 106, position reports 25 are received in chronological order according to when they were generated. Each position report 25 contains GPS data for one of vehicles 2-1, ..., 2-I. They are generated by each vehicle's position tracker 32, respectively. In box 108, the GPS points are stored in point buffer 84.

[0079] As will be further explained, the GPS data is processed into input reports, which are then used to incrementally build a road map, such as the map shown in FIG. 7, theoretically presenting an updated road map after each new input record is processed. However, performing an entire map update for each input record has proven computationally expensive. Therefore, in a preferred embodiment, the method operates in multiple rounds, processing batches of GPS points at a time. The batch size is variable and can be selected arbitrarily.

[0080] At the start of each round, all available unprocessed input data is collected as a batch and fully processed to generate an updated map. As soon as a new map is generated, the next round begins. This batch-by-batch processing method ensures that the procedure can keep up with the rate of incoming GPS data while maximizing the frequency with which map updates are performed.

[0081] The flow chart of Figure 9 shows the method MGA 33 performs to process the points stored in point buffer 84. In box 110, a check is performed to determine whether a new map has been created. Once it is determined that a new map has been created, the next round begins and control passes to box 112, where a variable named CurrentBatchNumber is incremented to reflect the start of the next round of batch processing. In box 114, MGA 33 retrieves point pairs from point buffer 84 and then, in box 116, forms an input record as described above with respect to Figure 6.

[0082] In box 118, the just-generated input record is added to the current batch of input records stored in batch memory area 86 (FIG. 5). In box 119, if the batch size, i.e., the maximum number of input records to be included in a batch, has not been reached, control returns to box 114. Alternatively, if the batch size fulfillment condition is met in box 119, control returns to box 110, and MGA 33 waits until a new map has been generated by another processing thread before preparing another batch of input records. With reference to the flowchart of FIG. 10, we will now describe the map generation procedure in which MGA 33 generates and updates a map by processing the current batch of input records.

[0083] Before describing Figure 10, a few observations are made about the overall procedure. One observation is that the core map generation procedure operates only on pairs of GPS traces, but additional data sources are used, along with position reports 25 relating only to the haul truck vehicles 2-1,...,2-I. The locations of the excavator and dump truck are also included in the stream of position reports 25 received by the MGA 33 and are used for area tagging. The location of the excavator bucket is used to detect road demolition. This information is received over the network 31 in chronological order and is interleaved with the GPS traces of moving vehicles contained in the majority of the position reports 25.

[0084] Furthermore, the procedure is stateful in the sense that internal data structures are maintained between rounds. Therefore, the internal state must be preserved between successive map updates. This can be achieved by running a single process continuously to generate the sequence of road maps, or alternatively by storing snapshots of internal variables between runs. The latter requires significant overhead for storing and restoring snapshots.

[0085] II. Processing Methods. In an overview of a preferred embodiment, in a first step, MGA 33 groups GPS points from position reports 25 into clusters of points that share similar locations and orientations. A second step then updates the connections between the clusters to form a road network. According to an embodiment of the present invention, clusters and their locations are updated as new GPS points become available. Therefore, attention is preferably paid to clusters that have moved, and GPS points are reassigned to new clusters as appropriate. Subsequently, the connections between the clusters must be updated as well.

[0086] Adding a new GPS point can affect the locations and connections of multiple clusters. Therefore, performing a full update every time a new input record is added quickly becomes computationally expensive. Therefore, multiple input records are added in batches. This allows us to update the cluster locations first and then perform a single update pass for all affected connections. The resulting procedure reduces both the overhead and the number of times individual connections must be updated, improving the scalability of the method.

[0087] 10, in box 121, MGA 33 reads an input record from the current batch stored in input record batch memory area 86 of secondary memory 77. In box 123, MGA 33 reads a source point P from the input record. S and target point P TBoxes 125-137 form a "For" loop, which first searches for the source point P S Then, the target point P T By processing P S and P T For each of the clusters, determine whether it should be added to an existing cluster in map 100 or whether it should be used to generate a new cluster.

[0088] A. GPS point clustering. In box 127, MGA 33 finds the closest cluster to the point from the current input record being processed. Each cluster has three-dimensional coordinates: two dimensions for its position in a plane and a third for its orientation. The distance between a cluster and a GPS point is measured using a weighted Euclidean metric, with weights assigned to angular differences. For example, 1 degree may be set equal to 1 meter, although other weights could also be used.

[0089] If a new GPS point is to be added to a cluster, the closest existing cluster is identified (box 127). A test is performed in box 129 to determine if the closest cluster identified in box 127 is closer than a set cluster radius "ClustRad" (e.g., 30 m), and if so, the point is added to the cluster in box 133. Otherwise, a new cluster is created in box 131 with the position and orientation of the new point. If the point is to be added to an existing cluster, i.e., in box 133, the position of the cluster is updated in box 135 to be the mean of the point. The update rule is as follows:

[0090]

number

[0091] C old and C neware the old and new locations of the cluster, P is the location of the newly added GPS point, and n new is the number of points associated with the cluster, including the newly added point P.

[0092] If a cluster position moves, the assignment of points to clusters must be updated. Ideally, whenever a cluster moves, all points associated with this or neighboring clusters must be checked. Unfortunately, this quickly becomes computationally expensive. Instead, points are checked for reclustering only if the cluster has moved by more than a threshold (e.g., a cluster motion threshold of 1 / 10 of the cluster radius may be used).

[0093] Prior to the start of each round, all clusters are checked for recent movement before a new GPS point is added (box 153). Figure 10A is a flowchart of the steps performed in box 153 of Figure 10. In box 153a, an outer For loop begins, and in subsequent boxes 153b-153g, all of the clusters that make up the map are processed. In box 153b, the current cluster in the outer For loop is processed to determine whether the previous processing in box 135 moved the current cluster beyond a predetermined threshold stored in the constant ClusterMoveThresh. If the condition in box 153b is met, control passes to box 153c. In box 153c, an inner For loop begins for each point within a distance of twice the cluster radius of the current cluster. In the first processing box 153d of the inner For loop, the cluster closest to the current point is found. In conditional box 153e, a check is performed to determine whether the current point continues to belong to its currently assigned cluster. This cluster may be referred to as the "old" cluster. If it is found that the current point continues to belong to its old cluster, control passes to box 153f. In an alternative embodiment, control passes to conditional box 153h of the inner For loop. In box 153f, the current point is reassigned to the closest or "new" cluster, and in box 153g, the new cluster's position and the old cluster's position are updated to account for the change in the current point's assignment. If a point belongs to the cluster to which it is currently assigned (i.e., its "old" cluster), it is reassigned. Whenever a point is removed from a cluster, the cluster's position is updated using the following formula:

[0094]

number

[0095] Reassigning points between clusters may move clusters and therefore require further reassignment. If reclustering moves a cluster beyond a threshold, it is simply processed again in the next round.

[0096] Also, in box 153j, free clusters are removed, and in box 153k, clusters that are too close to each other (e.g., closer than 15 m) are merged. When clusters are merged, all points from one cluster are added to the other. All affected points are then scheduled to be checked for reclustering, regardless of how much the centers of the remaining clusters have moved during the process.

[0097] B. Connection Creation. As explained previously, an input record, e.g., IR1,...,IR8 in Figure 6, consists of two consecutive GPS points. Once both points are assigned to clusters, this creates a connection between the clusters.

[0098] Thus, when MGA 33 assigns a point to a cluster, it maintains a count in connection count record 88 (FIG. 5) as to how many of the points in the cluster define a connection between any two clusters. If a point pair exists that results in a connection between two clusters (box 139), a connection is created and maintained (box 141). Once the connection's count value returns to zero, the connection is removed from connection count record 88. The latter typically occurs when a cluster is moved, after which the target point is effectively shifted to another cluster, resulting in a connection following the point.

[0099] If the sampling rate of GPS points is low, two consecutive GPS points may not belong to adjacent clusters. Instead, the clusters are skipped. Naively adding direct cluster connections results in artifacts in the form of many parallel roads, which creates a low-quality map. Therefore, in box 143, a sequence of skipped clusters is identified to generate a series of connections between adjacent clusters. To distinguish between different types of cluster connections, the term high-level connections refers to connections resulting from consecutive GPS points, while the term low-level connections refers to connections generated as a result of discovering a sequence of intermediate clusters as described herein. The series of updated road maps 23 returned to the user, e.g., task assignment allocator 55 (FIG. 4), includes low-level connections.

[0100] Several different methods may be used to generate intermediate cluster sequences that transform high-level connections into a series of low-level connections: chord angle filtering, Dubins path sequence, and gravity rubber banding. Common to all methods is that a set of candidate clusters is preselected based on a coarse-grained spatial rule in which a midpoint between two clusters to be connected is identified. All clusters within a circle around that midpoint that passes through the start and end clusters are considered candidates for intermediate clusters in the connection sequence. Restricting the search space to this path reduces the complexity of discovering connections to a manageable level. The actual method for discovering the cluster sequence is detailed in Section III.

[0101] C. Connection Update. As more input records are processed, new clusters are created, existing clusters are moved, and points are reassigned between clusters—all of these events have the potential to change connectivity.

[0102] Changes due to GPS points moving between clusters are handled immediately: when the aforementioned connection counter drops to zero, the old high-level connection is discarded and a new one is created elsewhere, if necessary.

[0103] Adding a new cluster or moving an existing one may also affect the sequence of intermediate clusters of existing high-level connections that do not directly connect the changed cluster. However, reestimating all connections after every change quickly becomes computationally expensive. Therefore, high-level connections potentially affected by new or moved clusters are identified and marked for update (box 145). At the end of each round, all marked connections are updated by recalculating the sequence of intermediate clusters (box 152).

[0104] For each connection, an associated workspace is added to an R-tree-based spatial index, which is an efficient spatial index for fast lookup of nearby clusters. Ideally, the workspace is a circle around the midpoint, as described above in Section II-B. However, for implementation reasons, a square is fitted around the circle and added to the index. Whenever a new cluster is created or an existing cluster moves further than the update threshold, the MGA determines all affected connections from the spatial index and marks them for update (box 145).

[0105] D. Pruning old points. For continuous operation, GPS points must be periodically removed from the memory of the MGA 33. Even as information about road removal becomes available, points must often be routinely pruned (box 147) to keep the amount of data to be maintained in memory within manageable levels.

[0106] MGA33 removes a point from its cluster in the same way as when the reclustering operation previously described in Section II-A is performed. However, instead of adding the point to another cluster, the point is discarded and all information associated with it is deleted as well.

[0107] Destroyed Road Removal: When information is generated that a given geometric area does not contain roads, all GPS points within this area are removed from the map 100. Such geometric removal of roads can occur either due to user input or automatically by evaluating additional data sources.

[0108] The MGA 33 uses bucket data to determine when a road has been cleared. Whenever the excavator extracts one bucket of material, it is assumed that the area is no longer drivable, and the MGA 33 and all GPS points within a small radius (e.g., a 10 m radius for the bucket) are cleared. To avoid the problem of clearing recent GPS data, for example, due to an erroneously recorded bucket or due to a bucket being recorded by a cleanup operation, very recent points (e.g., points more recent than 30 minutes are preferably kept) are excluded from clearing.

[0109] Redundant and outdated GP point culling: MGA 33 maintains all raw GPS points to allow dynamic reclustering and improvement of roads at any time. As a result, MGA 33 must maintain an increasing amount of data in memory and faces scaling issues if run indefinitely. Therefore, it is desirable to cull points that are no longer needed to keep the amount of data within manageable limits.

[0110] A simple approach is to set a fixed number of allowed points and rigorously remove the oldest GPS points whenever the capacity is exceeded. While this method is effective in preventing memory problems, it ignores the fact that points along busy roads may be removed early due to the large amount of data, while points belonging to roads with low traffic volume should be kept longer. This is especially true when some roads are dormant for extended periods of time.

[0111] Instead of removing old points only by their lifetime, points are removed in such a way that connectivity between clusters is preserved. For this reason, all clusters are periodically checked for points that can be removed from the system without affecting the cluster connectivity.

[0112] Points belonging to a cluster are processed by age, with the oldest point being processed first. This biases the elimination heuristic to preserve more recent points and favor older ones. For each point, the GPS point trace is followed in both directions until the trace ends or another cluster is reached. If another cluster is reached, the high-level connections between clusters are examined and the corresponding low-level connection to the next cluster is identified. Then, it is counted how many GPS point pairs contributed to the low-level connection, and the count value is set as the weight of this low-level connection.

[0113] If the connection weight is greater than a set threshold (e.g., set the connection weight threshold to 10), it is flagged for removal unconditionally with respect to its lifetime. This results in a reduction of points kept in case of busy roads. Otherwise, if the age of the path increases, the trace is flagged for removal.

[0114]

number

[0115] where w is the connection weight and t min and t max are the minimum and maximum pruning lifetimes (e.g., set the minimum and maximum pruning lifetimes to 12 hours and 30 days), and c is an adjustment parameter (e.g., set c=0.1). The intention of equation (3) is to quickly remove roads with little traffic, for example, when a single vehicle performs an abnormal maneuver or when there is a temporary obstruction that causes a small number of vehicles to behave in an abnormal way. However, the more vehicles travel on a road, the longer it should be maintained before being removed. If a road is t max Whenever a class has not been used for a certain amount of time, it is removed from the map.

[0116] A GPS trace through a cluster typically results in two connections to adjacent clusters. In this case, if both connections result in a path that is flagged for removal, the trace is removed. If the trace did not result in any connections, it is removed. min If it is older than

[0117] After a trace has been processed (and potentially removed), the remaining GPS points of the cluster are processed, skipping those that have already been processed as part of other GPS traces.

[0118] 11A-11H show the map 100 as a series of stages as the MGA 33 incrementally updates the underlying graph corresponding to the map 100 stored in the graph memory area 72. FIG.

[0119] III. Discovery of intermediate cluster sequences. As previously described in Section II-B, a sequence of intermediate clusters must be determined to transform the high-level connection between two clusters into a set of low-level connections appropriate for the final road map (box 143). For computational tractability, the search for intermediate clusters is restricted to a limited workspace determined by a circle around the midpoint between two clusters connected by a high-level connection. Of the three methods presented here, chord angle filtering and Dubins path sequence operate only on cluster positions, resulting in fast computations, whereas gravity rubberbanding requires significant computational effort by considering the locations of individual GPS points. In Section VI-B, we present a performance comparison among the three methods.

[0120] A. Chord Angle Filtering. Based on the idea from [2], the shortest paths between clusters are searched using a metric that penalizes long edges and rewards multiple shorter connections. Here, the cost of traveling between path points is quadratic compared to the Euclidean distance. This prioritizes paths that make small detours to pass intermediate path points. Using this metric, the shortest paths between clusters are searched using the Dijkstra procedure. To avoid connecting to clusters that do not yield reasonable paths, clusters are filtered depending on whether their headings seem reasonable for the intermediate path points. The filter heuristic works as follows: The angle of the straight-line connection between the current cluster and the destination in the Dijkstra search is calculated. If the heading of the next cluster has a similar angle (e.g., setting the tolerance to 30 degrees), it is accepted as a neighbor in the Dijkstra search; otherwise, it is rejected.

[0121] B. Dubins Path Sequence. The Dubins method also uses the principle of quadratic cost for traveling between path points. However, instead of explicitly rejecting clusters with inappropriate headings, headings are accepted by assuming a Dubins path (Non-Patent Document 3) between path points. Thus, the cost of traveling from one cluster to another is set to the square of the length of the shortest path that a forward-moving vehicle with a given minimum turning radius (e.g., assume a turning radius of 10 m) can follow. The shortest paths between clusters are then searched for using the Dijkstra procedure.

[0122] C. Gravity Rubber Banding. To identify intermediate clusters, a high-level connection between two distant clusters is treated as a rubber band that is pulled by a kind of gravity towards a nearby GPS point. By pulling it towards a nearby GPS point, the connection is likely to pass near an intermediate cluster that belongs to the same road segment, allowing for correct connection.

[0123] If the clusters are connected, the connecting lines are drawn between equidistant points (p0,…,p n ), where p0 and p n is the location of the connecting cluster. n is chosen to be as small as possible with a spacing equal to at most half the cluster radius defined in Section II-A. Then, gravity and elastic forces are iterated several times to find intermediate points p1,...,p n-1 Note that the forces do not physically mimic gravity and elastic forces exactly, but are named after their approximate effects.

[0124] Gravity is applied to each point. Therefore, all GPS points q1,...,q with a distance of at most half the seed radius r and a heading difference of at most 20 degrees m is taken into consideration. j Ga p i The force acting on is the vector

number

number

[0125]

number

number

number

[0126] In addition to gravity acting perpendicular to the span, a rubber band force is applied parallel to the span. The purpose is to i p i-1 and p i+1 The goal is to maintain equal spacing between the points by moving them towards the middle of p i Ga p i-1 If it is closer to

number

[0127]

number

[0128] In the experiments presented here, the force is applied for 15 rounds. After this step, each point is associated with its nearest cluster, and the sequence of clusters is connected by low-level connections.

[0129] IV. Area Tagging. A road network may include locations that are not strictly roads per se, but are more appropriately described as free driving areas. Such areas may be parking lots, loading / unloading areas, or, in a mining context, benches and stockpiles. Generating road maps in such areas tends to perform poorly due to the procedure attempting to generate a maze of roads based on where vehicles have entered in the past. The geometry of this maze is no longer usable for navigation, but instead consists of a dense network of artifacts, the nature of which depends more on the procedure than on the road network. Figure 12 shows an example of such a situation, including tagged area 103. Subsequently, in box 149, MGA 33 identifies and explicitly marks such areas, allowing them to be included in the final road map as such.

[0130] While the shape of the area is unknown a priori, the approach taken here assumes that a point within the area can be identified each time a vehicle visits the area. This becomes realistic when the area is used for purposes such as loading and unloading, and these operations can be observed. Then, whenever such an event occurs, the vehicle may be assumed to be within the relevant area, and the corresponding GPS point is tagged accordingly. The GPS point tag is then propagated along the vehicle's path.

[0131] Whenever a GPS point is tagged, the tag is propagated along the route it belongs to. The GPS trace along the vehicle's route is traversed in both forward and reverse directions, up to the configured travel distance and time delta (e.g., propagating the tag with a maximum of 200 m and 60 seconds). All GPS pairs within the limit are tagged unless they already contain a tag. If the point being tagged is newer than the allowed time delta, new GPS data arriving thereafter within the time delta are also tagged, with appropriate checks to ensure that forward propagation works as intended. Note that route tagging tags GPS pairs, not individual points. The reason is that GPS pairs create connections between clusters that represent routes rather than the clusters themselves.

[0132] The tagging described so far works for low-level GPS routes. To extend this to map tags, a voting scheme is used. Each GPS pair that belongs to a high-level cluster connection counts one vote for the resulting tag of each associated low-level cluster connection. Untagged pairs count one vote to leave the low-level connection untagged. The low-level connection is then tagged with the highest vote, or left untagged if the highest vote is set to untagged.

[0133] V. Post-processing. While key aspects of the road network, such as clusters and their connectivity, are continually updated as data is added to the system, it is advantageous to leave other parts of the map generation until the road map 23 (FIGS. 4 and 5) has been generated, for distribution back over the data network 31. These steps commonly operate on the entire road map and are computationally inexpensive; therefore, they may be performed anew each time a user wishes to receive the current road map 23 from the MGA 33. The post-processing steps are performed in the order described herein.

[0134] A. Cropping tagged areas. Tagged areas are identified by the voting mechanism in the low-level cluster connections described in Section IV. However, using only the voting mechanism results in areas that extend across the road, depending on how far the tag has propagated. This may not produce the desired results, as it is sensitive to the exact adjustment, and different areas may require different values. Figure 2a shows an example of an area that undesirably extends to the next intersection. Therefore, the final size of the area is determined during post-processing.

[0135] The basic idea behind area marking is that areas that allow free driving exhibit a large number of paths that split and join, forming a biconnected graph, while roads leading to the area tend to form simple lines. The process is performed for each area individually. Thus, in the first step, one subgraph of the road map is generated for each area using the voting system of Section IV, and then these subgraphs are trimmed. The subgraphs are generated by considering the low-level connections between clusters. Whenever a low-level connection is determined to be part of an area, the connection and its source and destination clusters are added to the subgraph belonging to that area. Note that this may result in rare cases where a cluster is part of some of the subgraphs if it has connections that belong to different areas.

[0136] Once all subgraphs have been formed, they are trimmed to remove parts that belong to roads leading to or leaving the area. For this, all vertices corresponding to clusters containing at least one GPS point that was originally tagged before tag propagation are marked as seeds. Seeds are always considered to be part of the area and are not removed. Then, all vertices with degree 1 that are not seeds are removed. This is repeated until no more vertices can be removed. The remainder of the graph forms the area.

[0137] To obtain a geometric representation of the area, the geometric representation of the area graph is dilated (buffered), and all points in the plane that are within a certain distance from one of the graph's vertices or edges (e.g., dilate the area by 10 m) are considered to be part of the area. If the resulting geometric shape has holes, these are filled in. Although the resulting shape is not technically a polygon due to the circular edges, it may be approximated by an appropriate discretization. Figures 13 and 14 show an example of an area before trimming (tagged area '103) and after trimming (tagged area 103').

[0138] B. Improved multipath connectivity. Ideally, the method of generating low-level cluster connections from high-level connections, as described in Section II-B, would result in clean paths without multipath artifacts. Unfortunately, this does not always work as expected, and multipath artifacts are sometimes observed. Examples of this are shown in Figures 15 and 16. These artifacts are identified during post-processing, and redundant connections are omitted from the final road map. All operations in this section apply only to low-level connections.

[0139] The multi-pass refinement step is performed after the tagged areas have been identified and pruned as described in Section V-A. All clusters that are part of the tagged area are ignored because roads are not well defined within the area and therefore road map estimation is not expected to work well.

[0140] The search for multi-path connections that can be cleaned up begins in a cluster that is not part of the tagged area and has at least two connections leaving to other clusters. From the initial cluster, a depth-first search of neighbors is performed on the directed graph.

[0141] The search is depth-limited (e.g., setting the maximum path length to search to 4 edges), and paths are grouped by the vertices they reach. Such a group is considered for multi-path pruning if (i) it contains more than one path, (ii) not all paths in the group have the same cluster as the second vertex, and (iii) not all paths in the group have the same cluster as the penultimate vertex.

[0142] Within each group, the strongest path is identified. To this end, the strength of the low-level connections contained in the path is calculated by counting the number of GPS pairs that have a low-level connection as part of their cluster sequence. The paths are then ranked by the strength of the weakest low-level connection contained in the path. In the event of a tie, the average strength along the path is used as a tiebreaker, and if the tie remains, an arbitrary choice is made.

[0143] For each group, the strongest path is kept, while all other path's lower-level connections are checked for deletion. A lower-level connection is deleted if (i) all outgoing paths of the connection's destination cluster traverse only the paths in the path group until they reach the strongest path's cluster, or (ii) all incoming paths of the connection's source cluster traverse only the paths in the path group and arrive from the strongest path's cluster. Thus, deleting a lower-level connection does not result in the removal of a connection needed to reach a portion of the road map outside the path group.

[0144] Once all path groups have been processed, a new initial cluster with two outgoing connections is selected. This process is repeated until all suitable initial clusters have been used. An example of such a cleanup process is shown in Figures 15 and 16.

[0145] Note that since this is a post-processing step, the low-level connections removed here are only removed for the output generated in this very instance. The persistent state of the Streaming Map Generation SMG is not affected by this, and all connections are maintained for future road maps.

[0146] C. Intersection Identification. Because directional lanes are treated as individual roads, intersections appear in the road network as groups of individual separations (vertices with outdegree > 1) and joins (vertices with indegree > 1). For operational reasons, it may be desirable to mark the intersection area itself and group lower-level separations and joins that belong to the same intersection. SMG identifies intersections using two simple observations about the structure of intersections: (i) separations or joins belonging to one lane usually have corresponding separations or joins in other lanes that are identifiable using spatial analysis, and (ii) separations in lanes usually result in immediate subsequent joins.

[0147] These patterns can be used to identify intersection areas during post-processing. An example of the result is intersection area 105 shown in Figure 17. This step of identifying intersection areas is performed after an area has been tagged (e.g., tagged area 103) and multipath connections have been cleaned up (e.g., tagged area' 103). All clusters identified as being part of an area are ignored in the intersection calculation.

[0148] In a first step, the neighborhood of each separation is searched for a corresponding join in the oncoming lane. For this, all joins within a search radius (e.g., using twice the cluster radius of 60 m as the search radius) are evaluated. A join is considered a match if its heading is opposite that of the join, up to a predefined threshold (e.g., a limit heading mismatch of 45 degrees), and its relative position is on the side where the other lane is expected. Which side this is depends on whether the area follows left-hand drive or right-hand drive driving rules. Note that this does not necessarily result in a strict one-to-one correspondence. Multiple valid matches may be generated, in which case they are all considered valid partners.

[0149] Once the separation-joining partners are established, an intersection is identified. The search process begins with a separation or joining that is not yet part of any intersection. Using this initial cluster, clusters that belong to the same intersection are searched for. Clusters are considered to belong to the same intersection if one of the following is true: (i) the cluster is a separation-joining partner of the initial cluster, (ii) the cluster is a joining and the initial cluster is a separation, and there is a short outgoing path to the cluster (e.g., path length limited to four edges), or (iii) the cluster is a separation, the initial cluster is a joining, and there is a short path from the cluster to the initial cluster. The search then continues from all discovered members of the intersection until no more clusters can be added, and the search terminates. The intersection then consists of the identified clusters and the short paths between them. This process is repeated, starting with separations and joinings that are not yet part of any intersection, until all separations and joinings have been processed.

[0150] The process described above results in road map vertices and edges that are tagged as intersections. To obtain a geometric representation, the path may be geometrically dilated. The method used in this work is a three-step process. 1) Clusters (represented as points) and edges that belong to the intersection are dilated (buffered) by a larger value. 2) If the resulting polygon has holes, the holes are filled. 3) The polygon is shrunk by smaller and smaller values ​​(e.g., dilate by 20m, shrink by 10m) to obtain the final geometric shape. The over-expansion and subsequent shrinking process results in more natural looking areas as the cracks in the polygon shapes are filled.

[0151] D. Cleaning up tagged areas. Within a tagged area, there are many roads whose shapes are largely artifacts of the clustering procedure and do not represent a useful road map. Therefore, roads within the tagged area must be pruned and useful roads must be identified. The principle used in this application is to select desired start and destination locations to comprise the final road map, and then find suitable roads that connect them.

[0152] VI. Results. A. Comparison of maps generated using different amounts of location data. Figure 17A shows an updated and post-processed road map generated by MGA 33, which is transmitted by MGA 33 over data network 31, for example, for use by task assignment allocator 55 and / or for display on HMI 28 (Figure 3) of vehicles 2-1, ..., 2-I. Figures 18A-18F illustrate how road maps generated using different amounts of location data change, from 6 hours to 30 days of data, with tagged areas 103 and intersection areas 105 identified in Figures 18A and 18F.

[0153] B. Comparison of cluster sequencing methods. In Section III, we presented different methods for finding sequences of intermediate clusters. To evaluate the differences between the methods, maps based on the same data set were generated, but different methods were used for finding intermediate clusters. The results are shown in Figures 19A-19F and 20A-20F.

[0154] While all three methods often result in the same map constellation, differences do exist. Often, these inaccuracies result in multiple passes for the same section of road, which are then corrected using the post-processing techniques described in Section VB. To allow for a better comparison of the impact of the intermediate sequence procedures, we show the map fragment before the multi-pass pruning step was performed, along with the final pruned version.

[0155] Although the differences between the procedures are small, we observed that the gravity method produced the least number of artifacts. This is not surprising, since the gravity method only uses data from individual GPS points instead of simply aggregated information formed by clusters. Therefore, the gravity method can derive road locations in a more informed manner. However, this comes at a computational cost. For the maps presented here, the gravity method is approximately two orders of magnitude slower than the other two. Furthermore, it does not scale well when a large number of GPS points are maintained. This issue is mitigated by point pruning, as described in Section II-D. Therefore, we recommend using the gravity method when sufficient computational resources are available. If computational resources are limited, chord angle or Dubins should be used instead.

[0156] The examples in Figures 7 and 8 are fragments of a map, which in its final form and after pruning of old points (see Section II-D) consists of 3546 clusters, 8340 high-level connections, and 177336 raw GPS points. As a benchmark, the intermediate cluster sequences for all high-level connections were recalculated. For the Chord Angle and Dubins methods, this took about 1.5 seconds each, while the Gravity method required 123 seconds of computation time.

[0157] C. Comparison of sampling rates. Most results presented in this work are based on GPS data with a 5-second sampling interval. To evaluate the impact of longer sampling intervals on map quality, we generated the same maps while subsampling the available data to mimic longer sampling intervals of 10, 15, and 20 seconds. The map fragments shown in Figures 21A-21D present a challenging task for map estimation due to the geometry of the higher-level intersections and due to several corners with little traffic.

[0158] Not surprisingly, longer sampling intervals quickly result in artifacts in the form of long straight roads that shortcut corners. As a rough observation of the data presented here, a 5-second sampling rate results in good quality roads, even if only a single entire movement of the vehicle is observed. The higher the sampling frequency, the more artifacts appear in the final map, and the more data is required to compensate for them.

[0159] A 20 second sampling interval means that only 25% of the data is available compared to 5 seconds, and the entire journey must be observed to be able to infer road location. Because vehicles can cover large distances in 20 seconds, multiple entire journeys must be observed to be able to infer road location.

[0160] If the problem is optimistically modeled as a coupon collector problem, we would expect to require more than eight vehicle full trips to obtain coverage similar to the single full trip observed within the 5-second sampling interval.

[0161] D. Conclusion. Sampling frequencies greater than 20 seconds pose significant problems for road map estimation. 20 seconds of data, while usable in principle, already results in a substantially inferior road map compared to 5 seconds of data. Using only the portion of the data presented here with a sampling interval of 20 seconds or less results in only 11% of truck movements being used for road map estimation. At least 89% of all truck movements are not fully used.

[0162] This still means that about 47% of all available data is used. The important point to understand is that data about truck movements is effectively lost, so 47% of the data used only covers 11% of truck movements.

[0163] Data quality imposes hard constraints on what can be achieved by automated road network generation procedures: highly reactive systems such as SMG that can derive rarely used or newly created roads with very little data are only possible if data with a good sampling frequency are available.

[0164] If a low sampling frequency is used, only roads with high traffic volumes can be derived (most likely, a different approach to road map generation should be taken). Given that the objective of this work is to rapidly detect changes in the road network, the ability to estimate roads from only a small number of truck movements is essential, and reliable high-frequency GPS data must be available.

[0165] For best results, it is recommended to use data with a sampling interval of no more than 5 seconds.

[0166] The method according to the preferred embodiment described herein has been successfully tested at a large open-cut mining site, producing high-quality road maps. The performance of the method depends on the availability of data of sufficient quality. It is recommended that data with a sampling rate of at most 5 seconds be used for map generation, to allow road estimation even when only a single entire movement along the road is present. It has been found that longer sampling intervals quickly result in unwanted artifacts and road maps of poor sampling quality. Since vehicles can cover long distances in up to 20 seconds, multiple sampling intervals are required.

[0167] Table 1 below shows values ​​that have been found to work well in implementing the described method.

[0168] [Table 1] [Table 2]

[0169] In accordance with the statute, the present invention has been described in terms more or less specific to structural or methodological features. The terms "comprises," "comprising," and "comprised of" and their derivatives are used throughout in an inclusive sense and do not exclude any additional features. It is to be understood that the invention is not limited to the specific features shown or described, as the means described herein comprise preferred forms of carrying out the invention. The present invention is therefore claimed in any of its forms or modifications within the proper scope of the appended claims as appropriately interpreted by those skilled in the art.

[0170] Throughout the specification and claims (if any), unless the context requires otherwise, the terms "substantially" or "approximately" will be understood not to limit the range of values ​​defined by the terms.

[0171] Any embodiment of the present invention is intended to be illustrative only and not limiting of the present invention, and therefore, it should be recognized that various other modifications and changes can be made to any embodiment described without departing from the scope of the present invention.

Claims

1. 1. A method of publishing map updates for a geographic area, comprising: the map is stored in an electronic memory assembly, the map including clusters of vehicle locations and connections between the clusters, each of the clusters including a plurality of points assigned thereto, the points corresponding to each vehicle at each time; The above method is operating the data communications assembly to establish data communications with each of said vehicles via a data communications network; receiving position reports from each of said vehicles via said data communications network using said data communications assembly; operating a processing assembly in said electronic memory assembly to generate from said position reports batches of points corresponding to vehicle positions for each vehicle at each time; operating said processing assembly to compare points of the batch against cluster locations of said map for each batch; Based on the above comparison, the following a to f are considered: a. assigning points of said batch to clusters; b. Reassigning points of said map to clusters; c. updating the cluster locations to account for the point assignments and reassignments; d. Creating new clusters based on the distant points of the batch; e. Merging clusters that are closer to each other than a predetermined distance; f. Removing clusters that have no assigned points; operating said processing assembly to update said map by performing a cluster update procedure comprising performing at least one of operating said processing assembly to generate an updated map by updating connections between clusters after a cluster update; and operating the data communications assembly to transmit the updated map to a remote user over a data network. method.

2. The operation of the processing assembly to generate a batch of points from the position report includes forming a batch of input records from successive vehicle location points of the vehicle; a first point of the input record comprising a source point and a second point comprising a destination point; The method of claim 1.

3. The method includes adding the input records to the batch of input records until a new map is generated or until a predetermined batch size is reached. The method of claim 2.

4. for each of the source points and the destination points, finding the closest cluster in the current map; 4. The method according to claim 2 or 3.

5. determining, for each of the source points and the destination points, whether the point is less than a predetermined cluster radius from a nearest cluster; The method of claim 4.

6. if the point is less than a predetermined cluster radius from the nearest cluster, assigning the point to the nearest cluster, thereby performing step a. of claim 1. The method of claim 4.

7. updating the location of the closest cluster to take into account the point assignments, thereby performing step c. of claim 1. The method of claim 6.

8. if the point is not less than a predetermined cluster radius from the nearest cluster, generating the new cluster using the position of the point as the position of the new cluster, thereby performing step d. of claim 1. The method of claim 4.

9. After step c., for each point, determine if the point is within the cluster radius of its currently assigned cluster ("its old cluster") or if it is not within the cluster radius, remove the point from its old cluster assignment, and update the old cluster's position to account for the point's removal; The method of claim 1.

10. reassigning the point to the nearest cluster (the "new cluster") within the cluster radius; updating the locations of the new clusters to account for the reallocation of the points to the new clusters.

10. The method of claim 9.

11. Step e. comprises, for each cluster ("first cluster"), identifying a cluster ("second cluster") that is closer to it than the predetermined distance, and reassigning all points of the second cluster to the first cluster; The method of claim 1.

12. determining whether the source point and the destination point indicate a connection; The method of claim 2.

13. updating a connection count record in a portion of said electronic memory assembly if said source point and said destination point indicate a connection; 13. The method of claim 12.

14. processing the high-level connections to determine a corresponding sequence of low-level connections; 14. The method of claim 13.

15. processing said higher level connections to determine a corresponding sequence of lower level connections by applying one or more of the following procedures to said higher level connections: chord angle filtering, Dubins path sequencing, gravity rubberbanding; 15. The method of claim 14.

16. processing the higher-level connections to determine a corresponding sequence of lower-level connections includes, for each of the higher-level connections, identifying midpoints between clusters at either end of the higher-level connection; 16. The method according to claim 14 or 15.

17. processing the high-level connections to determine a corresponding series of low-level connections includes considering all clusters that include a circle around a midpoint passing through a start and end cluster as candidates for intermediate clusters in the sequence of low-level connections; 17. The method of claim 16.

18. including marking high-level connections to be updated later; 16. The method according to claim 14 or 15.

19. removing points from said electronic memory assembly (i.e., "prune points"); The method according to any one of claims 1 and 11 to 15.

20. removing points assigned to clusters representing nodes of a road network that have been removed from the geographic area; 20. The method of claim 19.

21. establishing a fixed number of points to be held in said electronic memory assembly; removing the points based on their lifetime to prevent exceeding the fixed number.

20. The method of claim 19.

22. establishing a fixed number of points to be held in said electronic memory assembly; removing points by considering that points along roads with high traffic volume may be removed early due to the large amount of data, while points belonging to roads with low traffic volume should be kept longer.

21. The method of claim 19 or 20.

23. checking all clusters to identify points that can be removed from the map without removing connections between clusters; and then removing such points.

20. The method of claim 19.

24. monitoring the locations of machines of a predetermined type operating in said geographic area; deeming the area in which said machine operates no longer operable even though said machine is operating; and removing the corresponding points from the electronic map.

24. The method of claim 19 or 23.

25. post-processing the electronic map after processing the batch of input records and before transmitting the updated map to a remote user over a data network; 4. The method according to claim 2 or 3.

26. The post-processing includes tagging free driving areas of the map.

26. The method of claim 25.

27. the post-processing includes tagging free driving areas in the electronic map by identifying predetermined functional areas; 27. The method of claim 26.

28. The predetermined functional area includes an ore loading and unloading area.

28. The method of claim 27.

29. the post-processing including cropping areas tagged as free driving areas in the electronic map; 27. The method of claim 26.

30. the post-processing includes identifying artifacts in the electronic map due to multipath connections and removing redundant low-level connections; 26. The method of claim 25.

31. the post-processing including identifying and tagging intersections in the electronic map; 26. The method of claim 25.

32. The method includes associating each of the source point, the destination point, and the nearest cluster with a three-dimensional coordinate; the three-dimensional coordinates include two dimensions for position in a plane and a third for orientation; Each distance is determined based on the three-dimensional coordinates. The method of claim 5.

33. 1. A system for generating and updating an electronic map of a route traveled by a vehicle in a geographic area, the system comprising: a plurality of vehicles located in the geographic area, each vehicle equipped with a position tracker and a vehicle communication system to transmit a series of time-series position reports for the vehicle; a data communications network in data communication with the vehicle communications system of each of the plurality of vehicles; a map generation assembly (MGA) including a processing assembly and an electronic memory assembly, the map generation assembly being in data communication with said data communications network and configured to receive said time series position reports; The above MGA is generating, in said electronic memory assembly, batches of points from said time series position reports corresponding to vehicle positions for each vehicle at each time; operating said processing assembly to compare points of the batch against cluster locations of said electronic map for each batch; Based on the above comparison, the following a to f are considered: a. assigning points of said batch to clusters; b. Reassigning points of said electronic map to clusters; c. updating the cluster locations to account for the point assignments and reassignments; d. Creating new clusters based on the distant points of the batch; e. Merging clusters that are closer to each other than a predetermined distance; f. Removing clusters that have no assigned points operating said processing assembly to update said electronic map by performing a cluster update procedure comprising performing at least one of operating said processing assembly to generate an updated electronic map by updating the connections between the clusters after the cluster update; configured to transmit the updated electronic map to a remote user over a data network; system.

Citation Information

Patent Citations

  • Combining a Driving Information Framework with Batch Adjustment for Autonomous Driving

    JP2020523660A

  • Apparatus and method for generating a road map

    KR101206570B1

  • Location determination, mapping, and data management through crowdsourcing

    US20170041761A1