GNSS ERROR QUANTIFICATION AND GLOBAL MAP RECONCILIATION

By quantifying GNSS errors and aligning local maps with a global coordinate system through a multi-stage process, the method addresses inaccuracies in vehicle navigation due to regional obstructions, enhancing route planning and vehicle control systems.

DE102024119254B3Active Publication Date: 2025-09-25GM GLOBAL TECHNOLOGY OPERATIONS LLC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
DE102024119254
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-07-06
Publication Date
2025-09-25
Estimated Expiration
2044-07-06

AI Technical Summary

Technical Problem

Current GNSS systems and map matching methods fail to account for regional environmental differences, leading to GNSS errors caused by obstructions such as tall buildings, which affect the accuracy of vehicle navigation and mapping systems.

Method used

A method and system for quantifying GNSS errors by collecting local maps from multiple vehicles using SLAM, identifying proximal viewpoint pairs, determining transformation vectors, and averaging GNSS coordinates to establish accurate anchor positions, followed by a multi-stage matching process using different algorithms to align local maps with a global coordinate system.

Benefits of technology

Enhances the accuracy of vehicle navigation and mapping by correcting GNSS errors, enabling precise alignment of local maps to a global coordinate system, thereby improving route planning and vehicle control systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method for aligning a plurality of local maps to a global coordinate system includes quantifying a global navigation satellite system (GNSS) error at each of a plurality of locations within an environment. The method further includes determining a plurality of anchor positions within the environment based at least in part on the GNSS error at each of the plurality of locations. The method further includes aligning the plurality of local maps to the global coordinate system based at least in part on the plurality of anchor positions.
Need to check novelty before this filing date? Find Prior Art

Description

INTRODUCTION

[0001] The present disclosure relates to systems and methods for navigation, route planning, and environmental mapping for vehicles.

[0002] To increase occupant awareness and comfort, vehicles can be equipped with advanced driver assistance systems (ADAS) and / or automated driving systems (ADS). ADAS systems can use various sensors such as cameras, radar, and LiDAR to detect and identify objects in the vehicle's surroundings, including other vehicles, pedestrians, road configurations, traffic signs, and road markings. ADAS systems can take actions based on the environmental conditions around the vehicle, such as braking or alerting a vehicle occupant. ADS systems can use various sensors to detect objects in the vehicle's surroundings and guide the vehicle to navigate through the environment to a predetermined destination.ADAS and ADS systems can also utilize vehicle tracking obtained using global navigation satellite systems (GNSS) in conjunction with globally aligned maps for navigation routing, pathfinding, lane detection, obstacle avoidance, and / or similar functions. However, current GNSS systems and map matching methods may not account for GNSS errors caused by regional environmental variations such as geographic features or tall structures.

[0003] Although GNSS map matching systems and methods serve their purpose, there is a need for a new and improved system and method for matching a multitude of local maps to a global coordinate system.

[0004] DE 10 2019 209 398 A1 describes a method for aligning digital maps. DE 10 2019 217 658 A1 describes a method for determining features for digital maps. WO 2020 / 133 415 A1 describes systems and methods for updating an HD map. WO 2020 / 078 572 A1 describes a method and a system for updating or generating global maps. SUMMARY

[0005] According to several aspects, a method for aligning a plurality of local maps to a global coordinate system is provided. The method may include quantifying a global navigation satellite system (GNSS) error at each of a plurality of locations within an environment. The method may further include determining a plurality of anchor positions within the environment based at least in part on the GNSS error at each of the plurality of locations. The method may further include aligning the plurality of local maps to the global coordinate system based at least in part on the plurality of anchor positions.

[0006] In another aspect of the present disclosure, quantifying the GNSS error at each of the plurality of locations may further comprise collecting the plurality of local maps from a plurality of vehicles. Quantifying the GNSS error at each of the plurality of locations may further comprise identifying the plurality of locations in the plurality of local maps. Quantifying the GNSS error at each of the plurality of locations may further comprise quantifying the GNSS error at each of the plurality of locations based at least in part on the plurality of local maps.

[0007] In another aspect of the present disclosure, collecting the plurality of local maps may further comprise collecting the plurality of local maps from the plurality of vehicles using simultaneous localization and mapping (SLAM). Each of the plurality of local maps includes a plurality of observation points. Each of the plurality of observation points includes observation data, local map coordinates, and GNSS coordinates.

[0008] In another aspect of the present disclosure, identifying the plurality of locations in the plurality of local maps may further comprise identifying a plurality of proximal observation point pairs based on the plurality of observation points of each of the plurality of local maps. Each of the plurality of proximal observation point pairs comprises a first observation point of the plurality of observation points and a second observation point of the plurality of observation points located within a first predetermined radius of the first observation point in the vicinity based at least in part on the observation data of each of the plurality of observation points of each of the plurality of local maps. Identifying the plurality of locations in the plurality of local maps may further comprise identifying the plurality of locations.Each of the plurality of locations includes the first observation point of one of the plurality of proximal observation point pairs.

[0009] In another aspect of the present disclosure, quantifying the GNSS error at each of the plurality of locations based at least in part on the plurality of local maps may further comprise executing a relocalization algorithm to determine a transformation vector between the first observation point and the second observation point. The transformation vector describes a location difference in the environment between the first observation point and the second observation point. Quantifying the GNSS error at each of the plurality of locations based at least in part on the plurality of local maps may further comprise determining the GNSS error between the first observation point and the second observation point. The GNSS error is: eGNSS=‖GNSS1−GNSS2‖−‖T‖ where e GNSS is the GNSS error between the first observation point and the second observation point, GNSS1 is the GNSS coordinates of the first observation point, GNSS2 is the GNSS coordinates of the second observation point, and T is the transformation vector. Quantifying the GNSS error at each of the plurality of locations based at least in part on the plurality of local maps may further comprise updating the GNSS coordinates of the first observation point based at least in part on the transformation vector.

[0010] In another aspect of the present disclosure, updating the GNSS coordinates of the first observation point may further comprise transforming the GNSS coordinates of the second observation point by the transformation vector to determine transformed GNSS coordinates of the second observation point. Updating the GNSS coordinates of the first observation point may further comprise averaging the GNSS coordinates of the first observation point and the transformed GNSS coordinates of the second observation point to determine updated GNSS coordinates of the first observation point.

[0011] In another aspect of the present disclosure, determining the plurality of anchor positions may further comprise determining a plurality of anchor locations. The plurality of anchor locations comprise a subset of the plurality of locations. Determining the plurality of anchor positions may further comprise determining a plurality of anchor positions. Each of the plurality of anchor positions corresponds to one of the plurality of anchor locations.

[0012] In another aspect of the present disclosure, determining the plurality of anchor locations may further comprise determining the plurality of anchor locations, wherein each of the plurality of anchor locations has a GNSS error that is less than or equal to a predetermined error threshold.

[0013] In another aspect of the present disclosure, determining the plurality of anchor locations may further comprise determining the plurality of anchor locations, wherein each of the plurality of anchor locations has a GNSS error less than or equal to a predetermined error threshold, and wherein each of the plurality of anchor locations has at least a first predetermined number of the plurality of observation points within a second predetermined radius of each of the plurality of anchor locations.

[0014] In another aspect of the present disclosure, matching the plurality of local maps to the global coordinate system may further comprise performing a first matching stage using a first matching algorithm and a first subset of the plurality of anchor positions.

[0015] In another aspect of the present disclosure, matching the plurality of local maps to the global coordinate system may further comprise performing a second matching stage using a second matching algorithm and a second subset of the plurality of anchor positions. The second matching algorithm differs from the first matching algorithm. The second subset of the plurality of anchor positions is smaller than the first subset of the plurality of anchor positions.

[0016] According to several aspects, a system for aligning a plurality of local maps with a global coordinate system is provided. The system may include a plurality of vehicle sensors, including at least one vehicular global navigation satellite system (GNSS), a vehicle perception sensor, and a vehicle communication system. The system may further include a vehicle controller electrically connected to the plurality of vehicle sensors. The vehicle controller is programmed to collect the plurality of local maps of an environment using simultaneous localization and mapping (SLAM). Each of the plurality of local maps includes a plurality of observation points. Each of the plurality of observation points includes observation data, including observations made with the vehicle perception sensor, local map coordinates, and GNSS coordinates determined using the vehicle GNSS.The vehicle controller is further programmed to transmit the plurality of local maps to a server system via the vehicle communication system.

[0017] In another aspect of the present disclosure, the system further includes the server system. The server system may include a server communication system and a server controller electrically connected to the server communication system. The server controller is programmed to receive the plurality of local maps via the server communication system. The server controller is further programmed to identify a plurality of locations in the plurality of local maps. The server controller is further programmed to quantify a GNSS error at each of the plurality of locations based at least in part on the plurality of local maps. The server controller is further programmed to determine a plurality of anchor positions based at least in part on the GNSS error at each of the plurality of locations.The server controller is also programmed to align the plurality of local maps with the global coordinate system based at least in part on the plurality of anchor positions.

[0018] In another aspect of the present disclosure, to identify the plurality of locations in the plurality of local maps, the server controller is further programmed to identify a plurality of proximal observation point pairs based on the plurality of observation points from each of the plurality of local maps. Each of the plurality of proximal observation point pairs includes a first observation point of the plurality of observation points and a second observation point of the plurality of observation points located within a first predetermined radius of the first observation point in the environment based at least in part on the observation data of each of the plurality of observation points from each of the plurality of local maps. To identify the plurality of locations in the plurality of local maps, the server controller is further programmed to identify the plurality of locations.Each of the plurality of locations includes the first observation point of one of the plurality of proximal observation point pairs.

[0019] In another aspect of the present disclosure, to quantify the GNSS error at each of the plurality of locations, the server controller is further programmed to execute a relocalization algorithm to determine a transformation vector between the first observation point and the second observation point. The transformation vector describes a location difference in the environment between the first observation point and the second observation point. To quantify the GNSS error at each of the plurality of locations, the server controller is further programmed to determine the GNSS error between the first observation point and the second observation point. The GNSS error is: eGNSS=‖GNSS1−GNSS2‖−‖T‖ where e GNSSis the GNSS error between the first observation point and the second observation point, GNSS1 is the GNSS coordinates of the first observation point, GNSS2 is the GNSS coordinates of the second observation point, and T is the transformation vector.

[0020] In another aspect of the present disclosure, the server controller for determining the plurality of anchor positions is further programmed to determine a plurality of anchor locations. The plurality of anchor locations comprises a subset of the plurality of locations. Each of the plurality of anchor locations has a GNSS error less than or equal to a predetermined error threshold. Each of the plurality of anchor locations has at least a first predetermined number of the plurality of observation points within a second predetermined radius around each of the plurality of anchor locations.To determine the plurality of anchor positions, the server controller is further programmed to determine the plurality of anchor positions, wherein each of the plurality of anchor positions corresponds to one of the plurality of anchor locations, and wherein the GNSS coordinates of each of the plurality of anchor positions are a median of the GNSS coordinates of the first observation point and the GNSS coordinates of the second observation point included in each of the plurality of anchor locations.

[0021] In another aspect of the present disclosure, the server controller is further programmed to perform a first matching stage using a first matching algorithm and a first subset of the plurality of anchor positions to match the plurality of local maps to the global coordinate system.

[0022] In another aspect of the present disclosure, the server controller is further programmed to perform a second matching stage using a second matching algorithm and a second subset of the plurality of anchor positions to match the plurality of local maps to the global coordinate system. The second matching algorithm differs from the first matching algorithm. The second subset of the plurality of anchor positions is smaller than the first subset of the plurality of anchor positions.

[0023] According to several aspects, a method for aligning a plurality of local maps with a global coordinate system is provided. The method may include collecting the plurality of local maps of an environment from a plurality of vehicles using simultaneous localization and mapping (SLAM). Each of the plurality of local maps includes a plurality of observation points. Each of the plurality of observation points includes observation data, local map coordinates, and GNSS coordinates. The method may further include identifying a plurality of proximal observation point pairs based on the plurality of observation points of each of the plurality of local maps.Each of the plurality of proximal observation point pairs comprises a first observation point of the plurality of observation points and a second observation point of the plurality of observation points located within a first predetermined radius of the first observation point in the environment, based at least in part on the observation data of each of the plurality of observation points from each of the plurality of local maps. The method may further comprise identifying a plurality of locations. Each of the plurality of locations comprises the first observation point of one of the plurality of proximal observation point pairs. The method may further comprise executing a relocalization algorithm to determine a transformation vector between the first observation point and the second observation point.The transformation vector describes a location difference in the environment between the first observation point and the second observation point. The method may further include determining a GNSS error at each of the plurality of locations. The GNSS error at one of the plurality of locations is: eGNSS=‖GNSS1−GNSS2‖−‖T‖ where e GNSS is the GNSS error between the first observation point and the second observation point at one of the plurality of locations, GNSS1 is the GNSS coordinates of the first observation point, GNSS2 is the GNSS coordinates of the second observation point, and T is the transformation vector.

[0024] In another aspect of the present disclosure, the method may further comprise determining a plurality of anchor locations. The plurality of anchor locations comprise a subset of the plurality of locations. Each of the plurality of anchor locations has a GNSS error less than or equal to a predetermined error threshold. The method may further comprise determining a plurality of anchor positions. Each of the plurality of anchor positions corresponds to one of the plurality of anchor locations. The GNSS coordinates of each of the plurality of anchor positions are a median of the GNSS coordinates of the first observation point and the GNSS coordinates of the second observation point included in each of the plurality of anchor locations.

[0025] In another aspect of the present disclosure, the method may further comprise performing a first matching stage using a first matching algorithm and a first subset of the plurality of anchor positions. The method may further comprise performing a second matching stage using a second matching algorithm and a second subset of the plurality of anchor positions. The second matching algorithm differs from the first matching algorithm. The second subset of the plurality of anchor positions is smaller than the first subset of the plurality of anchor positions.

[0026] Further areas of applicability will become apparent from the description provided herein. It should be understood that the description and specific examples are for purposes of illustration only and are not intended to limit the scope of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0027] The drawings described herein are for illustrative purposes only and are not intended to limit the scope of the present disclosure in any way. Fig. 1 is a schematic diagram of a system for aligning a plurality of local maps with a global coordinate system, according to an exemplary embodiment; Fig. 2 is a flowchart of a method for aligning the plurality of local maps with the global coordinate system according to an exemplary embodiment; and Fig. 3 is a schematic diagram of the plurality of local maps in an environment, according to an example embodiment. DETAILED DESCRIPTION

[0028] The following description is merely illustrative in nature and is not intended to limit the present disclosure, its application, or uses.

[0029] The accuracy of position data obtained using global navigation satellite systems (GNSS) is becoming increasingly important for automotive and vehicle applications, such as route planning in navigation, advanced driver assistance systems (ADAS), and automated driving systems (ADS). However, GNSS data can contain significant amounts of noise or stationary errors caused by regional environmental factors such as obstruction by tall buildings (also known as "urban canyons"). Therefore, in aspects of the present disclosure, it is advantageous to quantify the GNSS error at a particular location for use in the creation and alignment of globally aligned maps for vehicle applications.Accordingly, the present disclosure provides a new and improved system and method for aligning a plurality of local maps with a global coordinate system, including accurately quantifying the GNSS error at particular locations, even in the absence of known reference points or ground-truth information.

[0030] In Fig. 1, a system for aligning a plurality of local maps with a global coordinate system is illustrated and generally designated by reference numeral 10. System 10 generally includes a vehicle system 12a and a server system 12b. Vehicle system 12a is illustrated with an exemplary vehicle 14. Although a passenger car is illustrated, vehicle 14 may be any type of vehicle without departing from the scope of the present disclosure. Vehicle system 12a generally includes a vehicle controller 16 and a plurality of vehicle sensors 18.

[0031] The vehicle controller 16 includes at least one processor 20 and a non-transitory computer-readable storage device or medium 22. The processor 20 may be a custom or off-the-shelf processor, a central processing unit (CPU), a graphics processing unit (GPU), an auxiliary processor among a plurality of processors connected to the vehicle controller 16, a semiconductor-based microprocessor (in the form of a microchip or chipset), a macroprocessor, a combination thereof, or generally an instruction-executing device.

[0032] The computer-readable storage device or medium 22 may include volatile and non-volatile memory, such as read-only memory (ROM), random access memory (RAM), and keep-alive memory (KAM). KAM is persistent or non-volatile memory that can be used to store various operating variables while the processor 20 is powered off. The computer-readable storage device or medium 22 may be implemented using a variety of storage devices, such as PROMs (programmable read-only memories), EPROMs (electrical PROMs), EEPROMs (electrically erasable PROMs), flash memory, or other electrical, magnetic, optical, or combination storage devices capable of storing data, some of which may be executable instructions used by the vehicle controller 16 in controlling various systems of the vehicle 14.

[0033] The vehicle controller 16 may also consist of multiple controllers that are electrically connected to one another. The vehicle controller 16 may be connected to additional systems and / or controllers of the vehicle 14 so that the vehicle controller 16 can access data such as the speed, acceleration, braking, and steering angle of the vehicle 14.

[0034] The vehicle controller 16 is in electrical communication with the plurality of vehicle sensors 18. In an exemplary embodiment, the electrical communication is established, for example, via a CAN network, a FLEXRAY network, a local area network (LAN, e.g., WiFi, Ethernet, etc.), a serial peripheral interface (SPI) network, or the like. It is understood that various additional wired and wireless technologies and communication protocols for communicating with the vehicle controller 16 are within the scope of the present disclosure. It should further be understood that, within the context of the present disclosure, electrical communication also includes the transfer of power and / or energy between electrical devices (e.g., using conductive wires and / or wireless energy transfer technologies).

[0035] The plurality of vehicle sensors 18 are used to collect information relevant to the vehicle 14. In an exemplary embodiment, the plurality of vehicle sensors 18 includes a vehicle global navigation satellite system (GNSS) 24, a vehicle perception sensor 26, a vehicle communication system 28, and a vehicle inertial measurement unit (IMU) 30.

[0036] The vehicle GNSS 24 is used to determine the geographic location of the vehicle 14. In one exemplary embodiment, the vehicle GNSS 24 is a global positioning system (GPS). In one non-limiting example, the GPS includes a GPS receiving antenna (not shown) and a GPS controller (not shown) electrically connected to the GPS receiving antenna. The GPS receiving antenna receives signals from multiple satellites, and the GPS controller calculates the geographic position of the vehicle 14 based on the signals received by the GPS receiving antenna. In one exemplary embodiment, the vehicle GNSS 24 additionally includes a map. The map includes information about infrastructure such as municipal boundaries, roads, railroads, sidewalks, buildings, and the like. Therefore, the geographic location of the vehicle 14 is contextualized using the map information.In one non-limiting example, the map is retrieved from a remote source via a wireless connection. In another non-limiting example, the map is stored in a database of the vehicle GNSS 24. It is understood that various additional types of satellite-based radio navigation systems, such as the Global Positioning System (GPS), Galileo, GLONASS, and the BeiDou Navigation Satellite System (BDS), are within the scope of the present disclosure. The vehicle GNSS 24 is in electrical communication with the controller 16 as described above.

[0037] The vehicle perception sensor 26 is used to perceive objects and / or measure distances in an environment 32 around the vehicle 14. In an exemplary embodiment, the vehicle perception sensor 26 includes a surround-view camera system having a plurality of cameras (also referred to as satellite cameras) arranged to provide a view of the environment 32 on all sides of the vehicle 14. In one non-limiting example, the camera system includes a forward-facing camera (e.g., mounted in a grille of the vehicle 14), a rear-facing camera (e.g., mounted on a tailgate of the vehicle 14), and two side-facing cameras (e.g., mounted below each of the two side mirrors of the vehicle 14).In another non-limiting example, the camera system further includes an additional rearview camera mounted near a high-mounted center brake light of the vehicle 14. It should be understood that camera systems with additional cameras and / or additional mounting locations are within the scope of the present disclosure.

[0038] In another exemplary embodiment, the vehicle perception sensor 26 includes a stereoscopic camera with ranging capabilities. In one example, the vehicle perception sensor 26 is mounted inside the vehicle 14, e.g., in a headliner of the vehicle 14, looking through a windshield of the vehicle 14. In another example, the vehicle perception sensor 26 is mounted outside the vehicle 14, e.g., on a roof of the vehicle 14, looking toward the surroundings 32 of the vehicle 14.

[0039] It should be understood that various additional types of perception sensors, such as LiDAR sensors, ultrasonic ranging sensors, radar sensors, and / or time-of-flight sensors, are within the scope of the present disclosure. The vehicle perception sensor 26 is in electrical communication with the vehicle controller 16, as described above.

[0040] The vehicle communication system 28 is used by the vehicle controller 16 to communicate with other systems external to the vehicle 14. The vehicle communication system 28 includes, for example, functions for communicating with vehicles ("V2V" communication), with the infrastructure ("V2I" communication), with remote systems in a remote call center (e.g., ON-STAR from GENERAL MOTORS), and / or with personal devices. In general, the term "vehicle-to-everything" ("V2X" communication) refers to communication between the vehicle 14 and any remote system (e.g., vehicles, infrastructure, and / or remote systems).

[0041] In certain embodiments, the vehicle communication system 28 is a wireless communication system configured to communicate over a wireless local area network (WLAN) using IEEE 802.11 standards or using cellular data communication (e.g., using GSMA standards such as SGP.02, SGP.22, SGP.32, and the like). Accordingly, the vehicle communication system 28 may further include an embedded universal integrated circuit card (eUICC) configured to store at least one cellular connectivity configuration profile, such as an embedded subscriber identity module (eSIM) profile.

[0042] The vehicle communication system 28 is also configured to communicate via a personal area network (PAN) (e.g., BLUETOOTH), near-field communications (NFC), and / or any other type of radio frequency communication. However, additional or alternative communication methods, such as a dedicated short-range communications (DSRC) channel and / or mobile telecommunications protocols based on 3rd Generation Partnership Project (3GPP) standards, are also considered within the scope of the present disclosure. DSRC channels refer to short- to medium-range, one-way or two-way wireless communication channels specifically designed for use in motor vehicles, as well as a number of corresponding protocols and standards.The 3GPP is a partnership between several standards organizations that develop protocols and standards for mobile telecommunications. 3GPP standards are structured as "releases" or versions. Therefore, communication methods based on 3GPP versions 14, 15, 16, and / or future 3GPP versions are considered within the scope of this disclosure.

[0043] Accordingly, the vehicle communication system 28 may include one or more antennas and / or communication transceivers for receiving and / or transmitting signals, such as cooperative sensing messages (CSMs). The vehicle communication system 28 is configured to wirelessly communicate information between the vehicle 14 and another vehicle. Furthermore, the vehicle communication system 28 is configured to wirelessly communicate information between the vehicle 14 and infrastructure or other vehicles. It should be understood that the vehicle communication system 28 may be integrated with the vehicle controller 16 (e.g., on the same circuit board as the vehicle controller 16 or otherwise as part of the vehicle controller 16) without departing from the scope of the present disclosure.The vehicle communication system 28 is, as described above, in electrical communication with the vehicle controller 16.

[0044] The vehicle IMU 30 is used to determine the orientation, velocity, and gravitational forces acting on the vehicle 14. In one exemplary embodiment, the vehicle IMU 30 includes multiple sensors, including accelerometers, gyroscopes, and / or magnetometers. In one non-limiting example, the vehicle IMU 30 includes three-axis accelerometers and three-axis gyroscopes integrated into a single unit. The accelerometers measure linear acceleration along each axis, while the gyroscopes measure angular velocity about each axis. The vehicle IMU 30 processes the data from the sensors to calculate the current orientation, velocity, heading, yaw rate (i.e., the rate of heading change), and acceleration of the vehicle 14 in three-dimensional space. The vehicle IMU 30 is in electrical communication with the vehicle controller 16, as described above.

[0045] It should be understood that the plurality of vehicle sensors 18 may include additional sensors without departing from the scope of the present disclosure. In one exemplary embodiment, the plurality of vehicle sensors 18 further includes sensors for determining performance data of the vehicle 14. In one non-limiting example, the plurality of vehicle sensors 18 includes at least one of: an engine speed sensor, an engine torque sensor, an electric drive motor voltage and / or current sensor, an accelerator pedal position sensor, a brake position sensor, a coolant temperature sensor, a cooling fan speed sensor, and a transmission oil temperature sensor.

[0046] In another exemplary embodiment, the plurality of vehicle sensors 18 further includes sensors for determining information about the environment within the vehicle 14. In one non-limiting example, the plurality of vehicle sensors 18 further includes at least one of: a seat occupancy sensor, an interior air temperature sensor, an interior motion detection sensor, an interior camera, an interior microphone, and / or the like.

[0047] In another exemplary embodiment, the plurality of vehicle sensors 18 further includes sensors for detecting information about the environment 32 outside the vehicle 14. In one non-limiting example, the plurality of vehicle sensors 18 further includes at least one of: an ambient air temperature sensor, a barometric pressure sensor, and / or a still and / or video camera positioned to view the environment 32 in front of the vehicle 14. The plurality of vehicle sensors 18 are in electrical communication with the vehicle controller 16, as described above.

[0048] In Fig. 1, the server system 12b is illustrated and generally designated by the reference numeral 12b. The server system 12b generally includes a server controller 40 in electrical communication with a server database 42 and a server communications system 44. In one non-limiting example, the server system 12b is located in a server farm, data center, or the like and is connected to the Internet.

[0049] The server controller 40 is used to implement the method 100 for aligning a plurality of local maps with a global coordinate system, as described below. The server controller 40 includes at least one server processor 46 and a non-transitory computer-readable server storage device or server medium 48. The description provided above for the type and configuration of the vehicle controller 16 also applies to the server controller 40. In some examples, the server controller 40 may differ from the vehicle controller 16 in that the server controller 40 has faster processing speed, more memory, more inputs / outputs, and / or the like. In one non-limiting example, the server processor 46 and the server medium 48 of the server controller 40 are similar in structure and / or function to the processor 20 and medium 22 of the vehicle controller 16 described above.

[0050] The server database 42 stores the data received from the vehicle 14, e.g., maps, information about lane markings, road geometry, speed limits, traffic signs, and / or other relevant features. While in Fig. 1, a single vehicle 14 is depicted, the server system 12b may communicate with a plurality of vehicles (not depicted) to collect data via crowdsourcing, as explained in more detail below. In an exemplary embodiment, the server database 42 includes one or more mass storage devices, such as hard disk drives, magnetic tape drives, magneto-optical disk drives, optical disks, solid-state drives, and / or additional devices capable of storing data in a persistent and machine-readable manner. In some examples, the one or more mass storage devices may be configured to provide redundancy in the event of hardware failure and / or data corruption, e.g., by using a redundant array of independent disks (RAID). In one non-limiting example, the server controller 40 may execute software, such asa database management system (DBMS) that enables the organization and access of data stored on one or more mass storage devices. The server database 42 is in electrical communication with the server controller 40.

[0051] The server communication system 44 is used to communicate with external systems, such as the vehicle controller 16, via the vehicle communication system 28. In one non-limiting example, the server communication system 44 is similar in structure and / or function to the vehicle communication system 28 as described above. In some examples, the server communication system 44 may differ from the vehicle communication system 28 in that the server communication system 44 is capable of transmitting higher power signals, receiving signals more sensitively, transmitting with higher bandwidth, using additional transmit / receive protocols, and / or the like. The server communication system 44 is in electrical communication with the server controller 40.

[0052] In Fig. 2 is a flowchart of the method 100 for aligning a plurality of local maps with a global coordinate system. The method 100 begins in block 102 and proceeds to block 104. In block 104, the server system 12b collects a plurality of local maps 50 ( Fig. 3) from a plurality of vehicles (not shown) in the environment 32 in which, for example, the vehicle 14 is located.

[0053] In Fig. 3 shows a schematic representation of the plurality of maps 50. The plurality of local maps 50 includes a first local map 52a and a second local map 52b. In one exemplary embodiment, the first local map 52a and the second local map 52b are acquired by the plurality of vehicle sensors 18 of the vehicle 14 during two separate trips through the same region of the environment 32. In another exemplary embodiment, the first local map 52a is acquired by the plurality of vehicle sensors 18 of the vehicle 14, and the second local map 52b is acquired by a plurality of vehicle sensors of another vehicle (not shown) of the plurality of vehicles (not shown) traveling through the same region of the environment 32. In the following disclosure, for purposes of explanation, the acquisition of the plurality of local maps 50 is viewed from the perspective of the vehicle 14 using the vehicle system 12a.It should be understood that in some embodiments, one or more of the plurality of local maps 50 are acquired by one or more of the plurality of vehicles (not shown) in the environment 32, and that the plurality of vehicles (not shown) are equipped with systems having a similar or equivalent structure and / or function as the vehicle system 12a.

[0054] In an exemplary embodiment, each of the plurality of local maps 50 includes a plurality of observation points 54. Each of the plurality of observation points 54 represents an observation of the environment 32 from the perspective of a particular location within the environment 32. Each of the plurality of observation points 54 includes observation data collected by the plurality of vehicle sensors, local map coordinates orienting the observation point 54 within one of the plurality of local maps 50, and GNSS coordinates measured with the vehicle GNSS 24 of the vehicle at the position of the observation point 54.

[0055] The local map coordinates of each of the plurality of observation points 54 are determined using a SLAM (Simultaneous Localization and Mapping) algorithm. The following discusses the SLAM algorithm from the perspective of the vehicle system 12a, which is used to create one of the plurality of local maps 50. However, it should be understood that the following disclosure is applicable to any of the numerous vehicles (not shown). The SLAM algorithm is used by the vehicle controller 16 to simultaneously determine the location of the vehicle 14 within the environment 32 and create a local map of the environment 32. In an exemplary embodiment, the SLAM algorithm uses observation data collected by the plurality of vehicle sensors 18, such as the vehicle perception sensor 26 and / or the vehicle IMU 30, to achieve this functionality.In one non-limiting example, the SLAM algorithm comprises four software components: a localization module, a mapping module, a location detection module, and a re-localization module.

[0056] The localization module uses the observation data to estimate the attitude (position and orientation) of the vehicle 14 relative to objects (e.g., lane lines, roadsides, landmarks, structures, trees, and / or the like) in the environment 32. The localization module uses techniques such as Bayesian filtering or Kalman filtering to combine the observation data and accurately predict a current state of the vehicle 14. At the same time, the mapping module creates a local map of the environment 32 based on the observation and odometry data collected during movement (e.g., visual data from the perception sensor 26 and inertial / odometry data from the vehicle's IMU 30).The mapping module incrementally builds and updates the local map by detecting the plurality of observation points 54 and calculating the local map coordinates of each of the plurality of observation points 54 relative to a local map coordinate system.

[0057] The location recognition module is responsible for identifying nearby locations within the environment 32 based on observation data. The location recognition module executes a location recognition algorithm to compare two sets of observation data (e.g., current observation data observed by the vehicle 14 and observation data stored in the local map) to detect known locations or landmarks. In one non-limiting example, the location recognition algorithm identifies similarities in the two sets of observation data and quantifies a degree of similarity between the two sets of observation data. If the degree of similarity is greater than a predetermined threshold, the two sets of observation data are classified as being close to each other (e.g., within a first predetermined radius of each other, e.g., ten meters).After identifying nearby locations, the re-localization module is used.

[0058] The relocalization module is used to determine a transformation vector between two nearby locations identified by the location detection module (e.g., a current location of the vehicle 14 and a previously visited location identified by the location detection module). In one non-limiting example, when the vehicle 14 is near a previously visited location identified by the location detection module, the relocalization module uses a relocalization algorithm to calculate a transformation vector describing a location difference in the environment 32 between the current location of the vehicle 14 and the nearby, previously visited location. In general, the relocalization algorithm is configured to receive any two nearby sets of observation data (e.g.,of two of the plurality of observation points 54 identified as nearby by the location detection module) and calculates the transformation vector from one of the two sets of observation data to the other.

[0059] Referring again to Fig. 2 with continued reference to Fig. 3, at block 104, the plurality of vehicles (not shown) acquires the plurality of local maps 50 using the SLAM algorithm as described above and transmits the plurality of local maps 50 to the server communication system 44. In one non-limiting example, the vehicle system 12a of the vehicle 14 executes the SLAM algorithm to acquire at least one of the plurality of local maps 50 using observation and odometry data from the plurality of vehicle sensors 18 and transmits the at least one of the plurality of local maps 50 to the server system 12b via the vehicle communication system 28. In an exemplary embodiment, the plurality of local maps 50 are stored in the server database 42 of the server system 12b. After block 104, the method 100 continues to block 106.

[0060] In block 106, the server controller 40 identifies a plurality of proximal observation point pairs 56 (see Fig. 3 with continued reference to Fig. 2). Within the context of the present disclosure, the plurality of proximal observation point pairs 56 comprise pairs of the plurality of observation points 54 of the plurality of local maps 50 that are located within a predetermined radius of each other. Each of the plurality of proximal observation point pairs 56 comprises a first observation point 58a from a first local map (e.g., the first local map 52a) and a second observation point 58b from a second local map (e.g., the second local map 52b). The local map coordinates of each of the plurality of observation points 54 orient each of the plurality of observation points 54 within one of the plurality of local maps 50, but do not provide position information in a global coordinate system. The GNSS coordinates of each of the plurality of observation points 54 provide position information in a global coordinate system but may be affected by GNSS errors.Therefore, the server controller 40 executes the SLAM location detection algorithm as described above to identify the plurality of proximal observation point pairs 56 based on the observation data of each of the plurality of observation points 54 of each of the plurality of local maps 50.

[0061] After identifying each of the plurality of proximal observation point pairs 56, the server controller 40 identifies a plurality of locations 60. Each of the plurality of locations 60 is the first observation point 58a of one of the plurality of proximal observation point pairs 56. As in Fig. 2, the method 100 proceeds to block 108 after block 106.

[0062] In block 108, the server controller 40 determines a transformation vector for each of the plurality of locations 60. Within the context of the present disclosure, the transformation vector of one of the plurality of locations 60 describes a location difference in the environment 32 between the first observation point 58a and the second observation point 58b of the one of the plurality of locations 60. The local map coordinates of each of the plurality of observation points 54 orient each of the plurality of observation points 54 within one of the plurality of local maps 50, but do not provide position information in a global coordinate system. The GNSS coordinates of each of the plurality of observation points 54 provide position information in a global coordinate system, but may be affected by GNSS errors.Therefore, the server controller 40 executes the SLAM relocalization algorithm, as described above, to determine the transformation vector for each of the plurality of locations 60 based on the observation data for each of the plurality of observation points 54. After block 108, the method 100 proceeds to block 110.

[0063] In block 110, the server controller 40 determines a GNSS error at each of the plurality of locations 60. For the purposes of the present disclosure, the GNSS error includes both noise and the steady-state error in GNSS measurements, e.g., the estimated horizontal position error (EHPE). The GNSS error can be caused by various factors. For example, tall structures or environmental features can block the signals from GNSS satellites, resulting in increased GNSS errors. In general, the GNSS error varies across the environment 32 due to differences in geography, urbanization, and other environmental factors. To determine the GNSS error at each of the plurality of locations 60, the server controller 40 uses the formula: eGNSS=‖GNSS1−GNSS2‖−‖T‖ where e GNSSis the GNSS error between the first observation point 58a and the second observation point 58b of one of the plurality of locations 60, GNSS1 is the GNSS coordinates of the first observation point 58a of the one of the plurality of locations 60, GNSS2 is the GNSS coordinates of the second observation point 58b of the one of the plurality of locations 60, and T is the transformation vector of the one of the plurality of locations 60 determined in block 108. In an exemplary embodiment, in subsequent executions of the method 100 with additional observation points, the GNSS error may be updated by the average, exponential average, moving average, median, and / or the like of the previously determined GNSS error and the new GNSS error determined based on additional observation points.

[0064] In an exemplary embodiment, the server controller 40 additionally updates the GNSS coordinates of the first observation point 58a based at least in part on the transformation vector. The server controller 40 first determines the transformed GNSS coordinates of the second observation point 58b. In one non-limiting example, the transformed GNSS coordinates of the second observation point 58b are determined by transforming the GNSS coordinates of the second observation point 58b by the transformation vector. The server controller 40 then updates the GNSS coordinates of the first observation point 58a. In one non-limiting example, the GNSS coordinates of the first observation point 58a are averaged with the transformed GNSS coordinates of the second observation point 58b to determine updated GNSS coordinates of the first observation point 58a.In another non-limiting example, the transformed GNSS coordinates of the second observation point 58b are stored across multiple executions of the method 100, and a median of a plurality of transformed GNSS coordinates of the second observation point 58b is later calculated to determine the updated GNSS coordinates of the first observation point 58a. After block 110, the method 100 continues with block 112.

[0065] According to Fig. 3 with continued reference to Fig. 2, the server controller 40 determines a plurality of anchor locations 62 in block 112. For the purposes of the present disclosure, the plurality of anchor locations 62 comprises a subset of the plurality of locations 60 determined in block 106. The plurality of anchor locations 62 are used for aligning the plurality of local maps 50 with a global coordinate system, as explained in more detail below.

[0066] In one exemplary embodiment, the plurality of anchor points 62 comprises a subset of the plurality of locations 60 with a GNSS error, as determined in block 110, that is less than or equal to a predetermined error threshold (e.g., a magnitude of the GNSS error is less than or equal to two meters). In another exemplary embodiment, the plurality of anchor points 62 comprises a subset of the plurality of locations 60 with a GNSS error, as determined in block 110, that is less than or equal to the predetermined error threshold and has at least a first predetermined number (e.g., twenty) of the plurality of observation points 54 located within a second predetermined radius (e.g., five meters) of each of the subset of the plurality of locations 60. In another exemplary embodiment, each of the plurality of anchor points 62 is selected to be at least a predetermined distance (e.g.,hundred meters) from any other anchor position 62, so as to enforce spatial diversity of the plurality of anchor locations 62 within the environment 32. In another exemplary embodiment, locations 60 that exhibit a high covariance of the relocalization error, as determined during relocalization in block 108, are not selected as one of the plurality of anchor locations 62. After block 112, the method 100 continues with block 116.

[0067] According to Fig. 2-3, the server controller 40 determines a plurality of anchor positions 64 in block 116. Each of the plurality of anchor positions 64 corresponds to one of the anchor locations 62 determined in block 112. For the purposes of the present disclosure, each of the plurality of anchor positions 64 is a location in the environment 32 defined by GNSS coordinates. In an exemplary embodiment, the GNSS coordinates of each of the plurality of anchor positions 64 are chosen to be a median or an average of the GNSS coordinates of the first observation point 58a and the second observation point 58b at each of the plurality of anchor locations 62. After block 116, the method 100 continues with block 118.

[0068] As in Fig.2, in block 118, a first stage of matching each of the plurality of local maps 50 with a global coordinate system is performed. In the context of the present disclosure, the global coordinate system is a substantially globally agreed system for identifying locations on Earth based on two- or three-dimensional coordinate points, e.g., according to ISO 6709. In one exemplary embodiment, the first stage of matching is performed by the server controller 40. In another exemplary embodiment, the first stage of matching is performed by the vehicle controller 16. While the following disclosure is explained from the perspective of the server controller 40, it also applies to embodiments in which the first stage of matching is performed by the vehicle controller 16.

[0069] In general, the goal of the first alignment stage is to apply transformations (e.g., translation, rotation, scaling, and / or the like) to the plurality of local maps 50 to adapt the plurality of local maps 50 to the global coordinate system based on the plurality of anchor positions 64. In an exemplary embodiment, the first alignment stage is performed using a first subset of the plurality of anchor positions 64. The first subset of the plurality of anchor positions 64 is relatively large. In one non-limiting example, the first subset of the plurality of anchor positions 64 includes the entirety of the plurality of anchor positions 64. In another non-limiting example, the first subset of the plurality of anchor positions 64 includes anchor positions 64 that have more than a second predetermined number (e.g.,three) of the plurality of observation points 54 located within a third predetermined radius (e.g., five meters) of each of the first subset of the plurality of anchor positions 64.

[0070] To perform the first matching stage, the first subset of the plurality of anchor positions 64 and the plurality of local maps 50 are provided as inputs to a first matching algorithm. Generally, the first matching algorithm is a point cloud registration algorithm configured to determine the transformations required to match each of the plurality of local maps 50 to the first subset of the plurality of anchor positions 64. In an exemplary embodiment, the first matching algorithm is a first machine learning matching algorithm.

[0071] As a non-limiting example, the first machine learning algorithm comprises multiple layers, including an input layer and an output layer, and one or more hidden layers. The input layer receives the first subset of the plurality of anchor positions 64 and the plurality of local maps 50 as inputs. The inputs are then passed to the hidden layers. Each hidden layer applies a transformation (e.g., a non-linear transformation) to the data and passes the result to the next hidden layer, up to the last hidden layer. The output layer generates the transformations required to match each of the plurality of local maps 50 with the first subset of the plurality of anchor positions 64.

[0072] To train the first machine learning matching algorithm, a dataset with inputs and corresponding optimal outputs is used. The algorithm is trained by adjusting internal weights between nodes in each hidden layer to minimize the prediction error. During training, an optimization technique (e.g., gradient descent) is used to adjust the internal weights and reduce the prediction error. The training process is repeated with the entire dataset until the prediction error is minimized, and the trained model is then used to process new input data.

[0073] After sufficient training of the first matching algorithm, the algorithm is able to accurately and precisely determine the transformations required to match each of the plurality of local maps 50 to the first subset of the plurality of anchor positions 64 based on the first subset of the plurality of anchor positions 64 and the plurality of local maps 50. By adjusting the weights between the nodes in each hidden layer during training, the algorithm "learns" to recognize patterns in the data that indicate the transformations required to match each of the plurality of local maps 50 to the first subset of the plurality of anchor positions 64.

[0074] In another exemplary embodiment, the first matching algorithm is the Umeyama algorithm, also known as the Kabsch algorithm or the Kabsch-Umeyama algorithm. The Umeyama algorithm is discussed in more detail in "Least Squares Estimation of Transformation Parameters Between Two Point Patterns" by S. Umeyama (IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 13, No. 4, pp. 376-380, Apr. 1991), the entire contents of which are hereby incorporated by reference. It should be understood that the first matching algorithm may include alternative or additional algorithms without departing from the scope of the present disclosure. After block 118, the method 100 proceeds to block 120.

[0075] In block 120, a second stage of alignment of each of the plurality of local maps 50 to the global coordinate system is performed. In one exemplary embodiment, the second stage of alignment is performed by the server controller 40. In another exemplary embodiment, the second stage of alignment is performed by the vehicle controller 16. While the following disclosure is explained from the perspective of the server controller 40, it also applies to embodiments in which the second stage of alignment is performed by the vehicle controller 16.

[0076] In general, the goal of the second matching stage is to refine the transformations (e.g., translation, rotation, scaling, and / or the like) determined by the first matching stage in block 118 to increase the accuracy of the fit of the plurality of local maps 50 to the global coordinate system based on the plurality of anchor positions 64. In an exemplary embodiment, the second matching stage is performed using a second subset of the plurality of anchor positions 64. The second subset of the plurality of anchor positions 64 is relatively small. In a non-limiting example, the second subset of the plurality of anchor positions 64 includes anchor positions 64 that have more than a third predetermined number (e.g., twenty) of the plurality of observation points 54 that are within a fourth predetermined radius (e.g.,five meters) from each of the second subset of the plurality of anchor positions 64. In an exemplary embodiment, the third predetermined number is greater than the second predetermined number discussed above with respect to block 118. Thus, the second subset of the plurality of anchor positions 64 can be understood to have a higher "confidence" than the first subset of the plurality of anchor positions 64 because the second subset of the plurality of anchor positions 64 is supported by a greater number of observations. Additionally, the second subset of the plurality of anchor positions 64 is smaller (i.e., it contains fewer anchor positions 64) than the first subset of the plurality of anchor positions 64.

[0077] To perform the second matching stage, the second subset of the plurality of anchor positions 64 and the plurality of local maps 50 are provided as inputs to a second matching algorithm. Generally, the second matching algorithm is a point cloud registration algorithm configured to determine the transformations required to match each of the plurality of local maps 50 to the second subset of the plurality of anchor positions 64. In an exemplary embodiment, the second matching algorithm is a second machine learning matching algorithm.

[0078] As a non-limiting example, the second machine learning algorithm comprises multiple layers, including an input layer and an output layer, and one or more hidden layers. The input layer receives the second subset of the plurality of anchor positions 64 and the plurality of local maps 50 as inputs. The inputs are then passed to the hidden layers. Each hidden layer applies a transformation (e.g., a non-linear transformation) to the data and passes the result to the next hidden layer, up to the last hidden layer. The output layer generates the transformations required to match each of the plurality of local maps 50 with the second subset of the plurality of anchor positions 64.

[0079] To train the second machine learning matching algorithm, a dataset with inputs and corresponding optimal outputs is used. The algorithm is trained by adjusting internal weights between nodes in each hidden layer to minimize the prediction error. During training, an optimization technique (e.g., gradient descent) is used to adjust the internal weights and reduce the prediction error. The training process is repeated with the entire dataset until the prediction error is minimized, and the trained model is then used to process new input data.

[0080] After sufficient training of the second machine-learning matching algorithm, the algorithm is able to accurately and precisely determine the transformations required to match each of the plurality of local maps 50 to the second subset of the plurality of anchor positions 64 based on the second subset of the plurality of anchor positions 64 and the plurality of local maps 50. By adjusting the weights between the nodes in each hidden layer during training, the algorithm "learns" to recognize patterns in the data that indicate the transformations required to match each of the plurality of local maps 50 to the second subset of the plurality of anchor positions 64.

[0081] In another exemplary embodiment, the second alignment algorithm is the Pose Graph Optimization (PGO) algorithm. The PGO algorithm is discussed in detail, for example, in "Globally Consistent Range Scan Alignment for Environment Mapping" by F. Lu and E. Milios (Autonomous Robots, Vol. 4, pp. 333-349, Oct. 1997), the entire contents of which are hereby incorporated by reference. It is understood that the second alignment algorithm may include alternative or additional algorithms without departing from the scope of the present disclosure.

[0082] After performing the second alignment stage, the plurality of local maps 50 are aligned with the global coordinate system. One or more of the plurality of aligned local maps may be transmitted to the vehicle 14 via the server communication system 44. The vehicle 14 may use one or more of the plurality of aligned local maps for navigation guidance, pathfinding, lane detection, obstacle avoidance, and / or the like. Furthermore, the server controller 40 may use one or more of the plurality of aligned local maps to create a global map that is stored in the server database 42 and / or distributed to the vehicle 14 and / or the plurality of vehicles (not shown). After block 120, the method 100 transitions to a standby state at block 122.

[0083] In an exemplary embodiment, the method 100 repeatedly exits the standby state 122 and restarts in block 102. In one non-limiting example, the method 100 is restarted based on a timer, e.g., every three hundred milliseconds. Repeated execution of the method 100 allows for continuous updating of the GNSS error and re-execution of the location detection and localization algorithms to increase accuracy.

[0084] The system 10 and method 100 of the present disclosure offer several advantages. Accurately determining the GNSS error for a specific location in the environment 32 enables optimal selection of the anchor point position, even when parts of the environment 32 have poor GNSS service quality. In particular, the method 100 enables accurate quantification of the GNSS error at specific locations in the environment 32, even when no known reference points or ground-correct information are available, by employing SLAM-based relocalization techniques.

[0085] The description of the present disclosure is merely exemplary, and variations that do not depart from the gist of the present disclosure are intended to be within the scope of the present disclosure. Such variations should not be regarded as a departure from the scope of the present disclosure.

Claims

[1] A method for aligning a plurality of local maps (50, 52a, 52b) with a global coordinate system, the method comprising: quantifying a global navigation satellite system (GNSS) error at each of a plurality of locations (60) within an environment (32); Determining a plurality of anchor positions (64) within the environment (32) based at least in part on the GNSS error at each of the plurality of locations (60); and Aligning the plurality of local maps (50, 52a, 52b) with the global coordinate system based at least in part on the plurality of anchor positions (64). [2] The method of claim 1, wherein quantifying the GNSS error at each of the plurality of locations (60) further comprises: Collecting the plurality of local maps (50, 52a, 52b) from a plurality of vehicles (14); Identifying the plurality of locations (60) in the plurality of local maps (50, 52a, 52b); and Quantifying the GNSS error at each of the plurality of locations (60) based at least in part on the plurality of local maps (50, 52a, 52b). [3] The method of claim 2, wherein collecting the plurality of local maps (50, 52a, 52b) further comprises: Collecting the plurality of local maps (50, 52a, 52b) from the plurality of vehicles (14) using simultaneous localization and mapping (SLAM), wherein each of the plurality of local maps (50, 52a, 52b) includes a plurality of observation points (54, 58a), and wherein each of the plurality of observation points includes observation data, local map coordinates, and GNSS coordinates. [4] The method of claim 3, wherein identifying the plurality of locations (60) in the plurality of local maps (50, 52a, 52b) further comprises: Identifying a plurality of proximal observation point pairs (56) based on the plurality of observation points (54, 58a) of each of the plurality of local maps (50, 52a, 52b), wherein each of the plurality of proximal observation point pairs (56) comprises a first observation point (58a) of the plurality of observation points (54, 58a) and a second observation point (58b) of the plurality of observation points (54, 58a) located within a first predetermined radius of the first observation point (58a) in the environment (32) based at least in part on the observation data of each of the plurality of observation points (54, 58a) of each of the plurality of local maps (50, 52a, 52b); and Identifying the plurality of locations (60), each of the plurality of locations (60) including the first observation point (58a) of one of the plurality of proximal observation point pairs (56). [5] The method of claim 4, wherein quantifying the GNSS error at each of the plurality of locations (60) based at least in part on the plurality of local maps (50, 52a, 52b) further comprises: Executing a re-localization algorithm to determine a transformation vector between the first observation point (58a) and the second observation point (58b), the transformation vector describing a location difference in the environment (32) between the first observation point (58a) and the second observation point (58b); Determining the GNSS error between the first observation point (58a) and the second observation point (58b), where the GNSS error is: eGNSS=‖GNSS1−GNSS2‖−‖T‖ where e GNSSis the GNSS error between the first observation point (58a) and the second observation point (58b), GNSS1 is the GNSS coordinates of the first observation point (58a), GNSS2 is the GNSS coordinates of the second observation point (58b), and T is the transformation vector; and Updating the GNSS coordinates of the first observation point based at least in part on the transformation vector. [6] The method of claim 5, wherein updating the GNSS coordinates of the first observation point further comprises: Transforming GNSS coordinates of the second observation point by the transformation vector to determine transformed GNSS coordinates of the second observation point; and Averaging the GNSS coordinates of the first observation point and the transformed GNSS coordinates of the second observation point to determine updated GNSS coordinates of the first observation point. [7] The method of claim 4, wherein determining the plurality of anchor positions (64) further comprises: Determining a plurality of anchor locations (62), wherein the plurality of anchor locations (62) comprises a subset of the plurality of locations (60); and Determining a plurality of anchor positions (64), wherein each of the plurality of anchor positions (64) corresponds to one of the plurality of anchor locations (62). [8] The method of claim 7, wherein determining the plurality of anchor locations (62) further comprises: Determining the plurality of anchor locations (62), wherein each of the plurality of anchor locations (62) has a GNSS error that is less than or equal to a predetermined error threshold. [9] The method of claim 8, wherein determining the plurality of anchor locations (62) further comprises: Determining the plurality of anchor points (62), wherein each of the plurality of anchor points (62) has a GNSS error that is less than or equal to a predetermined error threshold, and wherein each of the plurality of anchor points (62) has at least a first predetermined number of the plurality of observation points (54, 58a) within a second predetermined radius of each of the plurality of anchor points (62). [10] The method of claim 1, wherein matching the plurality of local maps (50, 52a, 52b) with the global coordinate system further comprises: Performing a first matching stage using a first matching algorithm and a first subset of the plurality of anchor positions (64); and Performing a second matching stage using a second matching algorithm and a second subset of the plurality of anchor positions (64), wherein the second matching algorithm differs from the first matching algorithm and wherein the second subset of the plurality of anchor positions (64) is smaller than the first subset of the plurality of anchor positions (64).

Citation Information

Patent Citations

  • Aligning coordinate systems of multiple maps based on trajectories

    DE102019209398A1

  • Method for extracting features from crowd-based collected measurement data

    DE102019217658A1

  • Global map creation using fleet trajectories and observations

    WO2020078572A1

  • Systems and methods for constructing a high-definition map based on landmarks

    WO2020133415A1