GNSS DEVIATION MAP LAYER

The GNSS deviation map layer, utilizing positional deviations and sensor data, addresses inaccuracies in GNSS receivers by providing reliable classifications for vehicle navigation, enhancing precision and safety through machine learning.

DE102025101335A1Pending Publication Date: 2025-07-24FORD GLOBAL TECH LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE102025101335
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-19
Filing Date
2025-01-15
Publication Date
2025-07-24

AI Technical Summary

Technical Problem

Existing GNSS receivers do not accurately reflect all factors contributing to uncertainty in position data, leading to varying accuracy levels that can affect vehicle operations and navigation systems.

Method used

A GNSS deviation map layer is created using positional deviations from vehicles, combining sensor data and map data to assess GNSS reliability, with a computer system updating classifications based on these deviations and covariance, and utilizing machine learning to refine reliability assessments.

Benefits of technology

Enhances the reliability assessment of GNSS data, enabling more accurate vehicle navigation and operation by distinguishing between lane-level and road-level precision, thereby improving safety and efficiency in ADAS and navigation systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A computer includes a processor and memory, and the memory stores instructions executable by the processor to receive a position deviation for a vehicle and update a classification of a geographic area in a GNSS deviation map layer based on the position deviation. The position deviation is based on sensor data generated by environmental sensors onboard the vehicle, map data, and global navigation satellite system (GNSS) data received at the vehicle. The position deviation indicates a difference between a GNSS pose of the vehicle derived from the GNSS data and a localized position of the vehicle indicated by the sensor data and the map data. The GNSS deviation map layer indicates a reliability of the GNSS data.
Need to check novelty before this filing date? Find Prior Art

Description

FIELD OF TECHNOLOGY

[0001] This disclosure describes techniques for tracking and independently verifying the reliability of data received from a global navigation satellite system (GNSS). GENERAL STATE OF THE ART

[0002] A global navigation satellite system (GNSS) can be used to detect a position relative to Earth. GNSS systems include the global positioning system (GPS), GLONASS, BeiDou, Galileo, etc. GNSS satellites transmit time and geolocation data. GNSS receivers can determine a position, such as latitude and longitude, based on the simultaneous reception of time and geolocation data from multiple GNSS satellites and using trilateration principles. SUMMARY

[0003] The accuracy of GNSS data can vary from location to location and from time to time. Some GNSS receivers can generate a measure of GNSS data uncertainty based on the GNSS data, but such measures may not reflect all factors that generate uncertainty. The techniques in this paper provide a way to test the reliability of GNSS data against data from other sources. The reliability of GNSS data can be tracked in a GNSS deviation map layer. The GNSS deviation map layer can track classifications of geographic areas, and each classification can indicate the reliability of the GNSS data within the corresponding geographic area.A computer may be programmed to receive position deviations for a plurality of vehicles and update the classifications of the geographic areas in the GNSS deviation map layer based on the position deviations. Each position deviation indicates a difference between a GNSS pose of the vehicle derived from the GNSS data and a localized position of the vehicle indicated by the sensor data and the map data. Each position deviation is based on map data, sensor data generated by environmental sensors onboard the respective vehicle, and GNSS data received at the vehicle. The combination of the sensor data and the map data implies the localized position of the vehicle, and this implied localized position provides an independent assessment of the GNSS pose resulting from the GNSS data.The inaccuracy of the GNSS pose relative to the implied localized position results in the position error. Using position errors from multiple vehicles can help update the GNSS error map layer in real time.

[0004] The GNSS deviation map layer can assist in various GNSS-based vehicle operation, navigation, and mapping applications. For example, the GNSS deviation map layer can provide input to an onboard advanced driver assistance system (ADAS). The GNSS pose can be used by the ADAS feature if the classification from the GNSS deviation map layer indicates high confidence, and the ADAS feature can be disabled or can use other inputs if the GNSS deviation map layer indicates lower confidence. As another example, the GNSS deviation map layer can be an input for turn-by-turn navigation.A navigation system may provide lane-level navigation instructions when the classification from the GNSS deviation map layer indicates high confidence, and may provide street-level navigation instructions when the classification from the GNSS deviation map layer indicates lower confidence. As another example, a mapping application may display the classification from the GNSS deviation map layer when displaying the GNSS pose to provide the user with context for the GNSS pose.

[0005] A computer includes a processor and memory, and the memory stores instructions executable by the processor to receive a position deviation for a vehicle and update a classification of a geographic area in a GNSS deviation map layer based on the position deviation. The position deviation is based on sensor data generated by environmental sensors onboard the vehicle, map data, and global navigation satellite system (GNSS) data received at the vehicle. The position deviation indicates a difference between a GNSS pose of the vehicle derived from the GNSS data and a localized position of the vehicle indicated by the sensor data and map data. The GNSS deviation map layer indicates a reliability of the GNSS data.

[0006] In one example, the instructions may further include instructions for updating the classification based on the position deviation and based on a covariance of the GNSS data received at the vehicle. In another example, the instructions may further include instructions for selecting a first potential classification as the classification in response to the position deviation exceeding a first threshold and the covariance being below a second threshold, and selecting a second potential classification as the classification in response to the position deviation exceeding the first threshold and the covariance exceeding the second threshold.

[0007] In one example, the vehicle may be a first vehicle of a plurality of vehicles, the position deviation may be a first position deviation of a plurality of position deviations of the respective vehicles, the classification may be a first classification of a plurality of classifications of the GNSS deviation map layer, and the instructions may further include instructions for updating the classifications based on the position deviations. In another example, the geographic area may be a first geographic area, the classifications may include a second classification of a second geographic area in which none of the vehicles are present, and the instructions may further include instructions for updating the second classification by executing a machine learning program that generates an output indicative of an expected classification.In yet another example, the instructions may further include instructions for training the machine learning program with the position deviations as training data.

[0008] In yet another example, the instructions may further include instructions for updating the second classification by executing the machine learning program in response to the second classification of the second geographic area indicating, prior to the update, that the reliability of the GNSS data is low.

[0009] In another further example, the geographic area may be a first geographic area, the classifications may include a second classification of a second geographic area in which none of the vehicles are present, and the instructions may further include instructions to maintain the second classification at the same value as before the update in response to the second classification of the second geographic area before the update indicating that the reliability of the GNSS data is high.

[0010] In one example, the instructions may further include instructions for determining the position deviation based on the sensor data, the map data, and the GNSS data. In another example, the instructions may further include instructions for determining the position deviation by detecting features in the sensor data, where the position deviation is a difference between expected positions of the features based on the GNSS data and map positions of the features from the map data. In yet another example, the instructions may further include instructions for determining the position deviation by determining the expected positions of the features based on the GNSS pose of the vehicle derived from the GNSS data.In yet another example, the instructions may further include instructions for determining the position deviation by executing an optimization algorithm that matches the expected positions with the map positions.

[0011] In one example, the instructions may further include instructions for selecting the classification from a preset plurality of potential classifications stored in the memory. In another example, the potential classifications may include at least a first potential classification indicating that the reliability is at least suitable for street-level position detection and at least a second potential classification indicating that the reliability is unsuitable for street-level position detection. In yet another example, the potential classifications may include at least a third potential classification indicating that the reliability is at least suitable for lane-level position detection.

[0012] In another further example, the potential classifications may include at least a first potential classification indicating that the positional deviation is above a threshold and at least one second potential classification indicating that the positional deviation is below the threshold. In yet another example, the threshold may be a first threshold, the at least one second potential classification may indicate that the positional deviation is below the first threshold and above a second threshold, and the potential classifications may include at least a third potential classification indicating that the positional deviation is below the second threshold.

[0013] A method includes receiving a position deviation for a vehicle and updating a classification of a geographic area in a GNSS deviation map layer based on the position deviation. The position deviation is based on sensor data generated by environmental sensors onboard the vehicle, map data, and global navigation satellite system (GNSS) data received at the vehicle. The position deviation indicates a difference between a GNSS pose of the vehicle derived from the GNSS data and a localized position of the vehicle indicated by the sensor data and the map data. The GNSS deviation map layer indicates a reliability of the GNSS data.

[0014] In one example, the method may further include determining the position deviation by detecting features in the sensor data, wherein the position deviation indicates a difference between expected positions of the features based on the GNSS data and map positions of the features from the map data. In another example, the method may further include determining the position deviation by determining the expected positions of the features based on the GNSS pose of the vehicle derived from the GNSS data. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram of a system including a remote computer and a plurality of vehicles. Fig. 2 is a diagram of features of the environment of one of the vehicles, as indicated by sensors of the vehicle and as indicated by map data. Fig. Figure 3 is a diagram of a global navigation satellite system (GNSS) deviation map layer. Fig. Figure 4 is a flowchart of an example process for updating the GNSS deviation map layer. DETAILED DESCRIPTION

[0015] Referring to the figures, wherein like reference numerals indicate like parts throughout the several views, a remote computer 105 includes a processor and memory, and the memory stores instructions executable by the processor to receive at least one position deviation for at least one vehicle 110 and update a classification of a geographic area 310 in a GNSS deviation map layer 300 based on the position deviation(s). Each position deviation is based on sensor data generated by environmental sensors 130 onboard the respective vehicle 110, map data, and global navigation satellite system (GNSS) data received at the vehicle 110. The position deviation indicates a difference between a GNSS pose of the vehicle 110 derived from the GNSS data and a localized position of the vehicle 110 indicated by the sensor data and map data.The GNSS deviation map layer 300 indicates a reliability of the GNSS data.

[0016] With reference to Fig. 1, a system 100 includes the remote computer 105 and a plurality of vehicles 110 in communication with the remote computer 105. The remote computer 105 is a microprocessor-based computing device, e.g., a generic computing device that includes a processor and memory. The memory of the remote computer 105 may include media for storing instructions executable by the processor, as well as for electronically storing data and / or databases, and / or the remote computer 105 may include structures, such as the foregoing, through which programming is provided. The remote computer 105 may be multiple computers coupled together.

[0017] The remote computer 105 and the vehicles 110 may be communicatively coupled via a network 115. The network 115 represents one or more mechanisms by which the remote computer 105 can communicate with the vehicles 110. Accordingly, the network 115 may be one or more of various wired or wireless communication mechanisms, including any desired combination of wired (e.g., cable and fiber optic) and / or wireless (e.g., cellular, wireless, satellite, microwave, and radio frequency) communication mechanisms, and any desired network topology (or topologies if multiple communication mechanisms are utilized). Example communication networks include wireless communication networks (e.g., using Bluetooth®, IEEE 802.11, etc.).), local area networks (LAN) and / or wide area networks (WAN), including the Internet, that provide data communication services.

[0018] The vehicles 110 may be any passenger or commercial vehicle, such as cars, trucks, SUVs, crossovers, vans, minivans, taxis, buses, etc. Each vehicle 110 may include a vehicle computer 120, a communications network 125, the environmental sensors 130, a GNSS receiver 135, a propulsion system 140, a braking system 145, a steering system 150, a user interface 155, and a transceiver 160.

[0019] The vehicle computer 120 is a microprocessor-based computing device, e.g., a generic computing device including a processor and memory, an electronic controller or the like, a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a combination of the foregoing, etc. Typically, a hardware description language such as VHDL (Very High Speed Integrated Circuit (VHSIC) Hardware Description Language) is used in electronic design automation to describe digital and mixed-signal systems such as FPGAs and ASICs.For example, an ASIC is manufactured based on VHDL programming provided prior to manufacturing, whereas logical components inside an FPGA may be configured based on VHDL programming, e.g., stored in memory electrically connected to the FPGA circuitry. The vehicle computer 120 may thus include a processor, memory, etc. The memory of the vehicle computer 120 may include media for storing instructions executable by the processor, as well as for electronically storing data and / or databases, and / or the vehicle computer 120 may include structures such as the foregoing through which programming is provided. The vehicle computer 120 may be multiple computers coupled together on board the vehicle 110.

[0020] The vehicle computer 120 can transmit and receive data onboard the vehicle 110 through the communication network 125. The communication network 125 can be, for example, a controller area network (CAN) bus, Ethernet, Wi-Fi, a local interconnect network (LIN), an on-board diagnostic port (OBD-II), and / or any other wired or wireless communication network. The vehicle computer 120 can be communicatively coupled to the environmental sensors 130, the GNSS receiver 135, the propulsion system 140, the braking system 145, the steering system 150, the user interface 155, the transceiver 160, and other components via the communication network 125.

[0021] The environmental sensors 130 can detect the outside world, e.g., objects and / or characteristics of the environment of the vehicle 110, such as other vehicles, lane markings, traffic lights and / or signs, road users, etc. For example, the environmental sensors 130 can include radar sensors, ultrasonic sensors, laser scanner rangefinders, light detection and ranging devices (Lidar devices), and image processing sensors, such as cameras. The radar sensors transmit radio waves and receive reflections of these radio waves to detect physical objects in the environment. The radar sensors can use direct propagation, i.e., measuring time delays between transmission and reception of radio waves, and / or indirect propagation, i.e., frequency modulated continuous wave (FMCW) method, i.e.,Measuring changes in frequency between transmitted and received radio waves. Ultrasonic sensors measure distances to environmental features by emitting ultrasonic sound waves and converting the reflected sound into an electrical signal. The ultrasonic sensors can be any suitable type, e.g., having a field of view with a comparatively wide horizontal angle and a narrow vertical angle. The cameras can detect visible light, infrared radiation, ultraviolet light, or a certain range of wavelengths that includes visible, infrared, and / or ultraviolet light. For example, the cameras can be charge-coupled devices (CCDs), complementary metal oxide semiconductors (CMOSs), or any other suitable type.The lidar devices detect distances to objects by emitting laser pulses of a specific wavelength and measuring the time it takes the pulse to travel to the object and back. The lidar devices can be any suitable method for providing the lidar data upon which the vehicle computer 120 can act, e.g., spindle-type lidar, solid-state lidar, flash lidar, etc.

[0022] The GNSS receiver 135 receives data from GNSS satellites 165. GNSS systems include the Global Positioning System (GPS), GLONASS, BeiDou, Galileo, etc. The GNSS satellites 165 transmit time and geolocation data. The GNSS receiver 135 can determine a GNSS pose of the vehicle 110, e.g., latitude and longitude, based on simultaneously receiving the time and geolocation data from multiple GNSS satellites 165 and using trilateration principles.

[0023] The propulsion system 140 of the vehicle 110 generates energy and converts the energy into motion of the vehicle 110. The propulsion system 140 may be a conventional vehicle propulsion subsystem, such as a conventional powertrain including an internal combustion engine coupled to a transmission that transmits rotational motion to wheels; an electric powertrain including batteries, an electric motor, and a transmission that transmits rotational motion to the wheels; a hybrid powertrain including elements of the conventional powertrain and the electric powertrain; or any other type of propulsion system. The propulsion system 140 may include an electronic control unit (ECU) or the like that communicates with and receives inputs from the vehicle computer 120 and / or a human operator.The human operator can control the drive system 140, for example, via an accelerator pedal and / or a gearshift lever.

[0024] The braking system 145 is typically a conventional subsystem for braking a vehicle and counteracts the motion of the vehicle 110 to thereby decelerate and / or stop the vehicle 110. The braking system 145 may include friction brakes, such as disc brakes, drum brakes, band brakes, etc.; regenerative brakes; any other suitable type of brake; or a combination. The braking system 145 may include an electronic control unit (ECU) or the like that communicates with and receives inputs from the vehicle computer 120 and / or a human operator. The human operator may control the braking system 145, for example, via a brake pedal.

[0025] The steering system 150 is typically a conventional subsystem for steering a vehicle and controls the turning of the wheels. The steering system 150 may be a rack and pinion system with electric power steering, a steer-by-wire system, both of which are known, or any other suitable system. The steering system 150 may include an electronic control unit (ECU) or the like that communicates with and receives inputs from the vehicle computer 120 and / or a human operator. The human operator may control the steering system 150, for example, via a steering wheel.

[0026] The user interface 155 presents information to and receives information from an operator of the vehicle 110. The user interface 155 may be located, for example, on a dashboard in a passenger compartment of the vehicle 110 or anywhere where it can be readily seen by the operator. The user interface 155 may include dials, digital displays, screens, speakers, and so forth for providing information to the operator, e.g., elements of a human-machine interface (HMI), as known. The user interface 155 may include buttons, knobs, keypads, a microphone, and so forth for receiving information from the operator.

[0027] The transceiver 160 connects the vehicle 110 to the remote computer 105 via the network 115. The transceiver 160 may be configured to transmit signals wirelessly using any suitable wireless communication protocol, such as cellular, Bluetooth®, Bluetooth® Low Energy (BLE), ultra-wideband (UWB), Wi-Fi, IEEE 802.11a / b / g / p, Cellular-V2X (CV2X), dedicated short-range communications (DSRC), other RF (radio frequency) communications, etc. The transceiver 160 may be configured to communicate with a remote server, that is, a server that is separate and spaced apart from the vehicle 110. The remote server may be located external to the vehicle 110, such as a mobile device. B. the remote computer 105. The remote server can, for example, be assigned to another vehicle (e.g. V2V communications), an infrastructure component (e.g.V2I communications), a first responder, a mobile device associated with the owner of the vehicle 110, etc. The transceiver 160 may be one device or may include a separate transmitter and receiver.

[0028] With reference to Fig. 2, the position deviation indicates a difference between the GNSS pose of the vehicle 110 derived from the GNSS data and a localized position of the vehicle 110 indicated by the sensor data and the map data. In other words, the position deviation provides a measure of the accuracy of the GNSS pose, using the combination of the sensor data and the map data as a baseline. The position deviation can serve as an additional way to assess the GNSS pose alongside the covariance of the GNSS data (described below), which may not always indicate situations of reduced accuracy.

[0029] As a general overview, the vehicle computer 120 or the remote computer 105 may determine the position deviation for the vehicle 110 based on the sensor data generated by the environmental sensors 130 onboard the vehicle 110, the map data, and the GNSS data received at the vehicle 110. The vehicle computer 120 or the GNSS receiver 135 determines the GNSS pose of the vehicle 110. The vehicle computer 120 or the remote computer 105 has access to map data indicating map positions 205 of features of the environment surrounding the vehicle 110. The vehicle computer 120 or the remote computer 105 detects the features in the sensor data from the environmental sensors 130, determines expected positions 210 of the features based on the GNSS pose of the vehicle 110, and executes an optimization algorithm that matches the expected positions 210 of the features with the map positions 205 of the features.The position deviation is a difference between the expected positions 210 and the map positions 205.

[0030] For example, each vehicle computer 120 can determine the position deviation for its respective vehicle 110 and transmit the position deviation to the remote computer 105. This arrangement can distribute the computational steps among the vehicles 110 and provide a manageable level of computational steps performed by the remote computer 105 to generate the GNSS deviation map layer 300 (described below). Alternatively, each vehicle computer 120 can transmit the GNSS pose and sensor data from the environmental sensors 130 to the remote computer 105, and the remote computer 105 can determine the position deviations for all vehicles 110.

[0031] The vehicle computer 120 or the GNSS receiver 135 determines the GNSS pose of the vehicle 110 based on the GNSS data received by the GNSS receiver 135 of the vehicle 110. The GNSS pose describes the position and / or orientation of the vehicle 110, e.g., two horizontal spatial dimensions, such as latitude and longitude, and one angular dimension, such as heading, or three spatial dimensions and three angular dimensions. The vehicle computer 120 or the GNSS receiver 135 uses trilateration to determine the GNSS pose, as is known. The GNSS pose may be specified in an absolute coordinate system 200, i.e., a coordinate system fixed with respect to the Earth.

[0032] The vehicle computer 120 or the remote computer 105 receives the sensor data from the environmental sensors 130. The sensor data may be, for example, image data and / or distance data.

[0033] The image data is a sequence of individual images of the fields of view of the respective environmental sensors 130, e.g., cameras. Each individual image is a two-dimensional pixel matrix. Each pixel has a brightness or color represented as one or more numerical values, e.g., a scalar unitless value of photometric light intensity between 0 (black) and 1 (white), or values for red, green, and blue, e.g., each on an 8-bit scale (0 to 255) or a 12- or 16-bit scale. The pixels can be a mixture of representations, e.g., a repeating pattern of scalar intensity values for three pixels and a fourth pixel with three numerical color values, or any other pattern. The position in a frame, ie the position in the field of view of the environment sensor 130 at the time the frame was recorded, can be specified in pixel dimensions or coordinates, e.g.an ordered pair of pixel distances, such as a number of pixels from a top edge and a number of pixels from a left edge of the frame.

[0034] The distance data can, for example, be a point cloud. The points of the point cloud specify respective positions in the environment relative to the position of the environmental sensor 130, e.g., the radar sensor, the lidar device, or the ultrasonic sensor. For example, the distance data can be in spherical coordinates, with the environmental sensor 130 located at the origin of the spherical coordinate system. The spherical coordinates can include: a radial distance, i.e., a measured depth from the environmental sensor 130 to the point measured by the environmental sensor; a polar angle, i.e., an angle from a vertical axis through the environmental sensor 130 to the point measured by the environmental sensor; and an azimuth angle, i.e., an angle in a horizontal plane from a horizontal axis through the environmental sensor 130 to the point measured by the environmental sensor 130. The horizontal axis can, for example,along a forward vehicle direction. Alternatively, the proximity sensor 130 may return the points as Cartesian coordinates, with the proximity sensor 130 at the origin, or as coordinates in any other suitable coordinate system, or the vehicle computer 120 or the remote computer 105 may convert the spherical coordinates to Cartesian coordinates or another coordinate system after receiving the range data.

[0035] The features can include objects or structures contained in the map data. For example, the features can include traffic lights, traffic signs, lane markings, guardrails, buildings, etc.

[0036] The vehicle computer 120 or the remote computer 105 can identify the features in the image data using conventional image recognition techniques, such as a convolutional neural network programmed to accept an image as input and output an identification. A convolutional neural network includes a series of layers, with each layer using the previous layer as input. Each layer contains a plurality of neurons that receive as input data generated by a subset of the neurons in the previous layers and generate an output that is sent to neurons in the next layer.Types of layers include convolutional layers, which compute a dot product of a weight and a small region of input data; pooling layers, which perform a downsampling operation along spatial dimensions; and fully connected layers, which generate data based on the output of all neurons from the previous layer. The final layer of the convolutional network generates a score for each potential feature identification, and the final output is the highest-scoring identification. The vehicle computer 120 or the remote computer 105 can use similar machine learning techniques for the distance data.

[0037] The vehicle computer 120 or the remote computer 105 can perform sensor fusion of the image data and the distance data. Sensor fusion combines data from disparate sources such that the resulting data has less uncertainty than if the data from each source were used individually, e.g., when creating a unified model of the environment of the vehicle 110. Sensor fusion can be performed using one or more algorithms, such as the Kalman filter, the central limit theorem, Bayesian networks, Dempster-Shafer, convolutional neural networks, etc. As a result of sensor fusion, the distance data can be associated with the features identified from the image data.

[0038] The vehicle computer 120 or the remote computer 105 is programmed to determine the expected positions 210 of the features based on the GNSS pose of the vehicle 110. For example, the vehicle computer 120 or the remote computer 105 may perform a geometric transformation on the range data for a feature. The range data may be specified in a relative coordinate system defined with respect to the vehicle 110, resulting in relative positions of the features. Treating the relative position of the feature as a vector, the relative position may be rotated according to the angular dimension(s) of the GNSS pose of the vehicle 110 and added to the position from the GNSS pose, resulting in the expected position 210 of the feature in the absolute coordinate system 200. The expected positions 210 are in the same coordinate system 200 as the map positions 205 and are therefore comparable to the map positions 205.

[0039] The vehicle computer 120 or the remote computer 105 may receive the map data or may already have the map data stored in memory. The map data may include the map positions 205 for the features. The map positions 205 may be specified with coordinates in the same coordinate system 200 as the GNSS pose.

[0040] The vehicle computer 120 or the remote computer 105 is programmed to determine the position error based on the expected positions 210 and the map positions 205 of the features. The position error is a difference between the expected positions 210 of the features based on the GNSS data and the map positions 205 of the features from the map data. For example, the position error may be a geometric transformation that most closely converts the expected positions 210 to the corresponding map positions 205 (or vice versa). The geometric transformation may include a rotation and translation that, when applied to the expected positions 210, causes the expected positions 210 to match or nearly match the map positions 205.If applied to the GNSS pose, the geometric transformation would generate a pose implied by using the sensor data to locate the vehicle 110 with respect to the map data. Thus, the position deviation indicates a difference between the GNSS pose of the vehicle 110 and a localized position of the vehicle 110 indicated by the sensor data and the map data.

[0041] The vehicle computer 120 or the remote computer 105 can determine the position deviation by executing an optimization algorithm that compares the expected positions 210 with the map positions 205. The optimization algorithm receives the expected positions 210 and the map positions 205 as inputs and returns the geometric transformation as output. The optimization algorithm finds the geometric transformation that minimizes the differences between the expected positions 210 and the map positions 205. The optimization algorithm can be any suitable algorithm for optimization, e.g., for nonlinear optimization, e.g., nonlinear least squares regression. The optimization algorithm can instead be a machine learning algorithm, such as a neural network, e.g.,a deep neural network, an artificial neural network, a convolutional neural network, a recurrent neural network, etc.; a support vector machine; a decision tree; etc.

[0042] With reference to Fig. 3, the remote computer 105 uses a plurality of the position deviations from a plurality of the vehicles 110 to build and update a GNSS deviation map layer 300. The term "map layer" is used in the geographic information systems (GIS) sense as a database that includes images or groups of point, line, or area features that represent a class or type of entity and that are tied to a specific geographic location. For example, a set of map data may include map layers indicating roads, jurisdiction boundaries, property lines, traffic, weather, satellite imagery, elevation, etc. The GNSS deviation map layer 300 indicates a reliability of the GNSS data.For example, the GNSS deviation map layer 300 may include classifications applied to geographic areas 310, where each classification defines a confidence range for the respective geographic area 310, as described in more detail below.

[0043] The remote computer 105 may receive a GNSS covariance. The GNSS covariance is a measure of the variability of the GNSS data. The GNSS covariance may be an output of the GNSS receiver 135 on each vehicle 110. Alternatively, the GNSS receiver 135 may output a different uncertainty measurement, and the vehicle computer 120 may be programmed to derive the GNSS covariance from the uncertainty measurement from the GNSS receiver 135. The vehicle computer 120 may be programmed to instruct the transceiver 160 to transmit the GNSS covariance to the remote computer 105, e.g., along with the position error or along with the GNSS pose and sensor data.

[0044] The memory of the remote computer 105 can store a set of potential classifications that can be applied to the GNSS deviation map layer 300. The potential classifications can indicate whether the reliability of the GNSS data is suitable for position detection with different levels of accuracy, e.g., from more precise to less precise: suitable for lane-level position detection, suitable for road-level position detection, and unsuitable for road-level position detection. The suitability for position detection can be indicated by the position deviation and possibly the GNSS covariance.

[0045] For example, the potential classifications may be divided based on one or more thresholds for position deviation, e.g., two thresholds. The thresholds may be chosen to correspond to a suitability for vehicle operation, e.g., a first threshold to divide between suitable for street-level position detection and unsuitable for street-level position detection, and a second threshold to divide between suitable for lane-level position detection and suitable for street-level position detection. The thresholds may be chosen based on known tolerances for navigating a vehicle 110 on a road 305 or in a lane, e.g., 5 meters for street-level position detection and 1.5 meters for lane-level position detection.

[0046] The potential classifications may also be divided based on one or more GNSS covariance thresholds, e.g., a threshold referred to as the third threshold. The third threshold may be chosen to correspond to a suitability for vehicle operation, e.g., to separate between suitable for road-level position detection and unsuitable for road-level position detection. The remote computer 105 may store one potential classification for each combination of the position deviation level and the GNSS covariance level, e.g., six potential classifications for the examples with three positions deviation levels and two GNSS covariance levels: (1) a first potential classification for a position deviation above the first threshold and a GNSS covariance above the third threshold,(2) a second potential classification for a position deviation between the first and second thresholds and a GNSS covariance above the third threshold, (3) a third potential classification for a position deviation below the second threshold and a GNSS covariance above the third threshold, (4) a fourth potential classification for a position deviation above the first threshold and a GNSS covariance below the third threshold, (5) a fifth potential classification for a position deviation between the first and second thresholds and a GNSS covariance below the third threshold, and (6) a sixth potential classification for a position deviation below the second threshold and a GNSS covariance below the third threshold.

[0047] The GNSS deviation map layer 300 may include the classifications applied to geographic areas 310, and the remote computer 105 may update the classifications by selecting the classifications from the potential classifications stored in memory according to the criteria described below. The geographic areas 310 to which the classifications are applied may cover the entire area of the map or may be limited to regions over which the vehicles 110 are likely to travel, e.g., along roads 305, as in Fig. 3. The classifications of the GNSS deviation map layer 300 can be initialized to the most recent classifications for the respective geographic areas 310 or, if none exist, to a default classification. The default classification can be a potential classification indicating suitability for lane-level position detection, e.g., the sixth potential classification described above, for a position deviation below the second threshold and a covariance below the third threshold.

[0048] The remote computer 105 is programmed to update the classifications in the GNSS deviation map layer 300 based on the position deviations. As a general overview, the remote computer 105 receives a plurality of position deviations from a plurality of the vehicles 110. The remote computer 105 updates the classifications for the geographic areas 310 containing the vehicles 110 to match the position deviations and covariances received from the respective vehicles 110. For geographic areas 310 where none of the vehicles 110 are present, the remote computer 105 can either keep the classification at the same value as before the update or update the classification by executing a machine learning program that generates an output indicating an expected classification; e.g.,the remote computer 105 selects whether to maintain the classification or execute the machine learning program depending on the value of the classification before the update or a preset category for the geographic area 310.

[0049] The remote computer 105 is programmed to receive a position deviation and a GNSS covariance from a vehicle 110 and to update a classification of a geographic area 310 in the GNSS deviation map layer 300 based on the position deviation and the GNSS covariance. The remote computer 105 can update the classification of the geographic area 310 containing the vehicle 110 based on the position deviation and the GNSS covariance by selecting the classification from the preset plurality of potential classifications stored in memory according to the position deviation and the GNSS covariance. The remote computer 105 can select the potential classification for which the position deviation and the GNSS covariance are within the threshold ranges, e.g.,the second potential classification in response to the position deviation being between the first and second thresholds and the GNSS covariance exceeding the third threshold, the fourth potential classification in response to the position deviation exceeding the first threshold and the GNSS covariance being below the third threshold, etc. If a geographic area 310 has multiple vehicles 110 for which different classifications would be chosen, the remote computer 105 may update the classification for the geographic area 310 to be the less reliable of the classifications.Alternatively, the remote computer 105 may divide the geographic area 310 into two geographic areas 310, each containing a vehicle 110, and update the classification for each geographic area 310 based on the position deviation and GNSS covariance received from the vehicle 110 in the respective geographic area 310.

[0050] The remote computer 105 may be programmed to determine, for each geographic area 310 in which none of the vehicles 110 are present, whether to maintain the classification at the same value as before the update or whether to update the classification by executing the machine learning program (both of which are described below). The determination may depend on the value of the classification before the update. For example, the remote computer 105 may maintain the classification in response to the classification before the update indicating that the reliability of the GNSS data is high (where, for example,the classification before the update is the fifth or sixth potential classification), and the remote computer 105 may update the classification with the machine learning program in response to the classification before the update indicating that the reliability of the GNSS data is low (e.g., where the classification before the update is the first, second, third, or fourth potential classification). Alternatively, the determination may depend on a preset category for the geographic area 310. The preset categories for the geographic areas 310 may be chosen based on whether the GNSS data for the geographic areas 310 generally has high reliability (e.g., generally flat areas) or sometimes has lower reliability (e.g., urban areas with tall buildings).The preset categories for the geographic areas 310 may be stored in the memory of the remote computer 105. The remote computer 105 may maintain the classification in response to the geographic area 310 being in the high-reliability category, and the remote computer 105 may update the classification with the machine learning program in response to the geographic area 310 being in the lower-reliability category.

[0051] The remote computer 105 is programmed to update a classification for a geographic area 310 by executing the machine learning program. The machine learning program generates an output indicating an expected classification. For example, the machine learning program may directly output the expected classification, which is then used as the classification for the geographic area 310. As another example, the machine learning program may output an expected positional deviation for the geographic area 310. The remote computer 105 may then select the classification from the preset plurality of potential classifications stored in memory according to the expected positional deviation.For example, the remote computer 105 may select the potential classification for which the expected position deviation is within the threshold range (assuming low GNSS covariance), e.g., the fourth potential classification in response to the expected position deviation exceeding the first threshold, the fifth potential classification in response to the expected position deviation being between the first and second thresholds, etc.

[0052] The remote computer 105 is programmed to execute the machine learning program. The machine learning program may be any suitable type for predicting the positional deviation that a vehicle 110 would return when traveling through a geographic area 310. For example, the machine learning program may be a convolutional neural network that outputs a selected one of the potential classifications. In another example, the machine learning program may be a regression network that outputs a numerical value for the expected positional deviation.

[0053] The machine learning program may use the geographic area 310, elevation data for the geographic area 310, weather data for the geographic area 310, the current positions and orbits of the GNSS satellites 165, etc., as inputs. The elevation data may be stored in the memory of the remote computer 105 and may be derived, for example, from topographic maps of the geographic area 310. The weather data may be received by the remote computer 105 via the network 115. The weather data may include data indicating cloud conditions and / or atmospheric models. The remote computer 105 may track the current positions of the GNSS satellites 165 because the orbits are known in advance.

[0054] The machine learning program may first be trained to replicate the position deviations returned by the vehicles 110 or the classifications determined based on these position deviations. The training data may be a set of the position deviations paired with the corresponding values of the inputs when these position deviations were generated, e.g., the geographic area 310 in which the position deviation was generated, the elevation data for this geographic area 310, the weather in the geographic area 310 at the time the position deviation was generated, and the positions of the GNSS satellites 165 at the time the position deviation was generated. The set of position deviations serves as the ground truth that the machine learning program is trained to replicate. The machine learning program may be trained, for example, via backpropagation.

[0055] After the machine learning program is initially trained and installed on the remote computer 105, the remote computer 105 can further train the machine learning program using the position deviations received by the remote computer 105 as training data. Retraining by the remote computer 105 can be performed in the same way as the initial training, e.g., by backpropagation.

[0056] The remote computer 105 may be programmed to transmit the GNSS deviation map layer 300, e.g., over the network 115, after updating the classifications in the GNSS deviation map layer 300. For example, the remote computer 105 may transmit the GNSS deviation map layer 300 to the vehicles 110. The remote computer 105 may combine the GNSS deviation map layer 300 with other map layers and transmit the combined map data as a single transmission to the vehicles 110. The remote computer 105 may transmit the GNSS deviation map layer 300, possibly as part of the combined map data, to other computing devices besides the vehicles 110 that utilize GNSS-based navigation or mapping applications.

[0057] The vehicle computer 120 may be programmed to actuate a component of the vehicle 110 based on the GNSS deviation map layer 300. The component may include, for example, the propulsion system 140, the braking system 145, the steering system 150, and / or the user interface 155. For example, when the user interface 155 is displaying navigation instructions, the vehicle computer 120 may instruct the user interface 155 to display a message indicating the classification for the geographic area 310 through which the vehicle 110 is traveling. As another example, the vehicle computer 120 may actuate the component when executing an advanced driver assistance system (ADAS). ADAS are groups of electronic technologies that assist drivers with driving and parking functions.Examples of ADAS include systems for forward approach detection, lane departure detection, blind spot detection, brake application, adaptive cruise control, and lane keeping assistance. As one example, the GNSS deviation map layer 300 may influence the operation of an automated lane change feature. The vehicle computer 120 may execute the automated lane change feature by instructing the steering system 150 to route the vehicle 110 from a current lane to a target lane adjacent to the current lane in response to input from an operator and sensor data indicating that the target lane is clear. The automated lane change feature may be active while the adaptive cruise control and lane keeping assistance systems are active.The vehicle computer 120 may deactivate the automated lane change feature in response to the GNSS deviation map layer 300 indicating that the geographic area 310 through which the vehicle 110 is traveling has a classification unsuitable for lane-level position detection, e.g., suitable only for street-level position detection or unsuitable for street-level position detection, e.g., the first through fifth potential classifications. The vehicle computer 120 may maintain the automated lane change feature active in response to the GNSS deviation map layer 300 indicating that the geographic area 310 through which the vehicle 110 is traveling has a classification suitable for lane-level position detection, e.g., the sixth potential classification.Alternatively, the vehicle computer 120 may execute the automated lane change feature in response to the GNSS data and sensor data indicating that the GNSS deviation map layer 300 indicates that the geographic area 310 has a classification suitable for lane-level position detection, and the vehicle computer 120 may execute the automated lane change feature in response to the sensor data but not the GNSS data indicating that the GNSS deviation map layer 300 indicates that the geographic area 310 has a classification unsuitable for lane-level position detection.

[0058] Fig.4 is a flowchart illustrating an example process 400 for updating the GNSS deviation map layer 300. The computer's memory stores executable instructions for performing the steps of process 400 and / or programming may be implemented in structures such as those mentioned above. As a general overview of process 400, the vehicle computer 120 receives the sensor data and the GNSS data and determines the GNSS pose of the vehicle 110. The vehicle computer 120 or the remote computer 105 detects the features in the sensor data, determines the expected positions 210 of the features, and determines the position deviation. The foregoing steps may be performed independently by each vehicle computer 120 and / or the foregoing steps may be performed by the remote computer 105 once for each vehicle 110.The remote computer 105 collects the position deviations from a plurality of the vehicles 110, updates the classifications in the GNSS deviation map layer 300 for the geographic areas 310 containing the vehicles 110, updates the classifications in the GNSS deviation map layer 300 for other geographic areas 310 by executing the machine learning program, maintains the classifications for the remaining geographic areas 310 at the same values as before the update, transmits the GNSS deviation map layer 300, and trains the machine learning program. The vehicle computer 120 operates a component based on the GNSS deviation map layer 300.

[0059] The process 400 begins in a block 405 in which the vehicle computer 120 receives the sensor data from the sensors and the GNSS data from the GNSS receiver 135, as described above.

[0060] Next, in a block 410, the vehicle computer 120 determines the GNSS pose of the vehicle 110, as described above.

[0061] Next, in a block 415, the vehicle computer 120 or the remote computer 105 detects the features in the sensor data as described above.

[0062] Next, in a block 420, the vehicle computer 120 or the remote computer 105 determines the expected positions 210 of the features based on the sensor data showing the features and the GNSS pose, as described above.

[0063] Next, in a block 425, the vehicle computer 120 or the remote computer 105 determines the position deviation for the vehicle 110 based on the expected positions 210 and the map positions 205 of the features, as described above.

[0064] Next, in a block 430, the remote computer 105 receives the position deviations for the vehicles 110, as described above.

[0065] Next, in a block 435, the remote computer 105 updates the classifications for the geographic areas 310 containing the vehicles 110 to match the positional deviations and covariances received from the respective vehicles 110, as described above.

[0066] Next, in a block 440, the remote computer 105 updates the classifications for some or all of the geographic areas 310 in which none of the vehicles 110 are present by executing the machine learning program as described above.

[0067] Next, in a block 445, the remote computer 105 maintains the classifications for any geographic areas 310 in which none of the vehicles 110 are present and which were not updated in the block 440, as described above.

[0068] Next, in a block 450, the remote computer 105 transmits the GNSS deviation map layer 300 to the vehicles 110 and possibly other devices, as described above.

[0069] Next, in a block 455, the remote computer 105 updates the training of the machine learning program as described above.

[0070] Next, in a block 460, the vehicle computer 120 operates a component based on the GNSS deviation map layer 300, as described above. After block 460, the process 400 ends.

[0071] In general, the described computing systems and / or devices may employ any of a variety of computer operating systems, including, but not limited to, versions and / or variants of the Ford Sync® application, the AppLink / Smart Device Link middleware, the Microsoft Automotive® operating system, the Microsoft Windows® operating system, the Unix operating system (e.g., the Solaris® operating system distributed by Oracle Corporation in Redwood Shores, California), the AIX UNIX operating system distributed by International Business Machines in Armonk, New York, the Linux operating system, the Mac OSX and iOS operating systems distributed by Apple Inc. in Cupertino, California, the BlackBerry OS distributed by Blackberry, Ltd. in Waterloo, Canada, and the Android operating system developed by Google, Inc. and the Open Handset Alliance, or the QNX® CAR Platform for Infotainment offered by QNX Software Systems.Examples of computing devices include, without limitation, an on-board vehicle computer, a computer workstation, a server, a desktop, notebook, laptop, or handheld computer, or other computing system and / or device.

[0072] Computing devices generally include computer-executable instructions, where the instructions may be executable by one or more computing devices, such as those listed above. Computer-executable instructions may be compiled or interpreted by computer programs created using a variety of programming languages and / or technologies, including, but not limited to, Java™, C, C++, Matlab, Simulink, Stateflow, Visual Basic, Java Script, Perl, HTML, etc., either alone or in combination. Some of these applications may be compiled and executed on a virtual machine, such as the Java Virtual Machine, the Dalvik Virtual Machine, or the like. Generally, a processor (e.g., a microprocessor) receives instructions from, e.g., memory, a computer-readable medium, etc.and executes those instructions, thereby performing one or more processes that include one or more of the processes described herein. Such instructions and other data may be stored and transmitted using a variety of computer-readable media. A file in a computing device is generally a collection of data stored on a computer-readable medium, such as a storage medium, random access memory, etc.

[0073] A computer-readable medium (also referred to as a processor-readable medium) includes any non-transitory (e.g., physical) medium that participates in providing data (e.g., instructions) that can be read by a computer (e.g., by a processor of a computer). Such a medium can take many forms, including, without limitation, non-transitory media and volatile media. Instructions can be transmitted through one or more transmission media, including fiber optics, wires, wireless communications, and internal structural elements comprising a system bus coupled to a processor of a computer. Common forms of computer-readable media include, for example, RAM, a PROM, an EPROM, a FLASH EEPROM, any other memory chip or cartridge, or any other medium from which a computer can read.

[0074] Databases, data repositories, or other data stores described herein may include various types of mechanisms for storing, accessing, and retrieving various types of data, including a hierarchical database, a set of files in a file system, an application database in a proprietary format, a relational database management system (RDBMS), a non-relational database (NoSQL), a graph database (GDB), etc. Each such data store is generally contained within a computing device employing a computer operating system such as one of those listed above and is accessed in one or more of a variety of ways over a network. A file system may be accessed by a computer operating system and may include files stored in various formats.An RDBMS generally uses the Structured Query Language (SQL) in addition to a language for creating, storing, editing, and executing stored procedures, such as the PL / SQL language mentioned above.

[0075] In some examples, system elements may be implemented as computer-readable instructions (e.g., software) on one or more computing devices (e.g., servers, personal computers, etc.) stored on computer-readable media (e.g., disks, memory, etc.) associated with the computing devices. A computer program product may include such instructions stored on computer-readable media for performing the functions described herein.

[0076] In the drawings, the same reference numerals indicate the same elements. Furthermore, some or all of these elements could be changed. With respect to the media, processes, systems, methods, heuristics, etc. described herein, it is understood that although the steps of such processes, etc., have been described as occurring according to a certain ordered sequence, such processes could be practiced wherein the described steps are performed in an order that differs from the order described herein. Further, it is understood that certain steps could be performed concurrently, that other steps could be added, or that certain steps described herein could be omitted.Operations, systems and procedures described herein should always be implemented and / or performed in accordance with any applicable owner / user manual and / or safety guidelines.

[0077] The disclosure has been described in an illustrative manner, and it is understood that the terminology used is intended to be descriptive rather than limiting. The adjectives "first," "second," "third," etc., are used throughout this specification as identifiers and are not intended to connote importance, order, or number. The use of "in response to" and "in determining" indicates a causal relationship, not merely a temporal relationship. Many modifications and variations to the present disclosure are possible in light of the above teachings, and the disclosure may be practiced otherwise than as specifically described.

[0078] According to the present invention, a computer is provided having a processor and a memory, the memory storing instructions executable by the processor to: receive a positional deviation for a vehicle, the positional deviation based on sensor data generated by environmental sensors onboard the vehicle, map data, and global navigation satellite system (GNSS) data received at the vehicle, the positional deviation indicating a difference between a GNSS pose of the vehicle derived from the GNSS data and a localized position of the vehicle indicated by the sensor data and the map data; and updating a classification of a geographic area in a GNSS deviation map layer based on the positional deviation, the GNSS deviation map layer indicating a reliability of the GNSS data.

[0079] According to one embodiment, the instructions further include instructions for updating the classification based on the position deviation and based on a covariance of the GNSS data received at the vehicle.

[0080] According to one embodiment, the instructions further include instructions for selecting a first potential classification as the classification in response to the positional deviation exceeding a first threshold and the covariance being below a second threshold, and selecting a second potential classification as the classification in response to the positional deviation exceeding the first threshold and the covariance exceeding the second threshold.

[0081] According to one embodiment, the vehicle is a first vehicle of a plurality of vehicles, the position deviation is a first position deviation of a plurality of position deviations of the respective vehicles, the classification is a first classification of a plurality of classifications of the GNSS deviation map layer, and the instructions further include instructions for updating the classifications based on the position deviations.

[0082] According to one embodiment, the geographic area is a first geographic area, the classifications include a second classification of a second geographic area in which none of the vehicles are present, and the instructions further include instructions for updating the second classification by executing a machine learning program that generates an output indicative of an expected classification.

[0083] According to one embodiment, the instructions further include instructions for training the machine learning program with the position deviations as training data.

[0084] According to one embodiment, the instructions further include instructions for updating the second classification by executing the machine learning program in response to the second classification of the second geographic area indicating, prior to the update, that the reliability of the GNSS data is low.

[0085] According to one embodiment, the geographic area is a first geographic area, the classifications include a second classification of a second geographic area in which none of the vehicles are present, and the instructions further include instructions to maintain the second classification at the same value as before the update in response to the second classification of the second geographic area before the update indicating that the reliability of the GNSS data is high.

[0086] According to one embodiment, the instructions further include instructions for determining the position deviation based on the sensor data, the map data, and the GNSS data.

[0087] According to one embodiment, the instructions further include instructions for determining the position deviation by detecting features in the sensor data, wherein the position deviation is a difference between expected positions of the features based on the GNSS data and map positions of the features from the map data.

[0088] According to one embodiment, the instructions further include instructions for determining the position deviation by determining the expected positions of the features based on the GNSS pose of the vehicle derived from the GNSS data.

[0089] According to one embodiment, the instructions further include instructions for determining the position deviation by executing an optimization algorithm that matches the expected positions with the map positions.

[0090] According to one embodiment, the instructions further include instructions for selecting the classification from a preset plurality of potential classifications stored in the memory.

[0091] According to one embodiment, the potential classifications include at least a first potential classification indicating that the reliability is at least suitable for street-level position detection and at least a second potential classification indicating that the reliability is unsuitable for street-level position detection.

[0092] According to one embodiment, the potential classifications include at least a third potential classification indicating that the reliability is at least suitable for lane-level position detection.

[0093] According to one embodiment, the potential classifications include at least a first potential classification indicating that the position deviation is above a threshold and at least a second potential classification indicating that the position deviation is below the threshold.

[0094] According to one embodiment, the threshold is a first threshold, the at least one second potential classification indicates that the positional deviation is below the first threshold and above a second threshold, and the potential classifications include at least one third potential classification indicating that the positional deviation is below the second threshold.

[0095] According to the present invention, a method includes: receiving a positional deviation for a vehicle, the positional deviation based on sensor data generated by environmental sensors onboard the vehicle, map data, and global navigation satellite system (GNSS) data received at the vehicle, the positional deviation indicating a difference between a GNSS pose of the vehicle derived from the GNSS data and a localized position of the vehicle indicated by the sensor data and the map data; and updating a classification of a geographic area in a GNSS deviation map layer based on the positional deviation, the GNSS deviation map layer indicating a reliability of the GNSS data.

[0096] In one aspect of the invention, the method includes determining the position deviation by detecting features in the sensor data, wherein the position deviation indicates a difference between expected positions of the features based on the GNSS data and map positions of the features from the map data.

[0097] In one aspect of the invention, the method includes determining the position deviation by determining the expected positions of the features based on the GNSS pose of the vehicle derived from the GNSS data.

Claims

[1] Method comprising: Receiving a position deviation for a vehicle, wherein the position deviation is based on sensor data generated by environmental sensors on board the vehicle, map data, and global navigation satellite system (GNSS) data received at the vehicle, wherein the position deviation indicates a difference between a GNSS pose of the vehicle derived from the GNSS data and a localized position of the vehicle indicated by the sensor data and the map data; and Updating a classification of a geographic area in a GNSS deviation map layer based on the position deviation, wherein the GNSS deviation map layer indicates a reliability of the GNSS data. [2] The method of claim 1, further comprising updating the classification based on the position deviation and based on a covariance of the GNSS data received at the vehicle. [3] The method of claim 2, further comprising selecting a first potential classification as the classification in response to the positional deviation exceeding a first threshold and the covariance being below a second threshold, and selecting a second potential classification as the classification in response to the positional deviation exceeding the first threshold and the covariance exceeding the second threshold. [4] The method of claim 1, wherein the vehicle is a first vehicle of a plurality of vehicles, the position deviation is a first position deviation of a plurality of position deviations of the respective vehicles, and the classification is a first classification of a plurality of classifications of the GNSS deviation map layer, the method further comprising updating the classifications based on the position deviations. [5] The method of claim 4, wherein the geographic area is a first geographic area and the classifications include a second classification of a second geographic area in which none of the vehicles are present, the method further comprising updating the second classification by executing a machine learning program that generates an output indicative of an expected classification. [6] The method of claim 5, further comprising training the machine learning program with the position deviations as training data. [7] The method of claim 4, wherein the geographic area is a first geographic area and the classifications include a second classification of a second geographic area in which none of the vehicles are present, the method further comprising maintaining the second classification at the same value as before the update in response to the second classification of the second geographic area before the update indicating that the reliability of the GNSS data is high. [8] The method of claim 1, further comprising determining the position deviation based on the sensor data, the map data and the GNSS data. [9] The method of claim 8, further comprising determining the position deviation by detecting features in the sensor data, wherein the position deviation is a difference between expected positions of the features based on the GNSS data and map positions of the features from the map data. [10] The method of claim 9, further comprising determining the position deviation by determining the expected positions of the features based on the GNSS pose of the vehicle derived from the GNSS data. [11] The method of claim 10, further comprising determining the position deviation by executing an optimization algorithm that matches the expected positions with the map positions. [12] The method of claim 1, further comprising selecting the classification from a preset plurality of potential classifications stored in the memory. [13] The method of claim 12, wherein the potential classifications include at least a first potential classification indicating that the reliability is at least suitable for street-level position detection and at least a second potential classification indicating that the reliability is unsuitable for street-level position detection. [14] The method of claim 13, wherein the potential classifications include at least a third potential classification indicating that the reliability is at least suitable for lane-level position detection. [15] A computer comprising a processor and a memory, the memory storing instructions executable by the processor to perform the method of any one of claims 1-14.