Stacked road detection system and method

By inputting multiple data into the Kalman filter, estimating the elevation distance of the vehicle on the stacked highway, solving the problem of difficulty in determining the position of autonomous vehicles on the stacked road, and improving navigation accuracy and safety.

CN119901301APending Publication Date: 2025-04-29GM GLOBAL TECHNOLOGY OPERATIONS LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311713497.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-10-26
Filing Date
2023-12-13
Publication Date
2025-04-29

AI Technical Summary

Technical Problem

On stacked highways, autonomous vehicles have difficulty accurately determining the vehicle position, resulting in possible incorrect turns and unnavigable obstacles.

Method used

By inputting cellular range data, air pressure sensor data, GNSS data, and automotive inertia data into the Kalman filter, the elevation distance of the vehicle is estimated, thereby determining the exact position of the vehicle on the stacked road.

Benefits of technology

Improves the accuracy of autonomous vehicles navigating on stacked highways, helping conventional vehicles warn of potential hazards and provide accurate navigation information.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119901301A_ABST
    Figure CN119901301A_ABST
Patent Text Reader

Abstract

A system includes data processing hardware and memory hardware in communication with the data processing hardware, the memory hardware storing instructions that, when executed on the data processing hardware, cause the data processing hardware to perform operations, the operations include inputting the cellular range data, the barometric sensor data, the GNSS data, and the automotive inertial data into a Kalman filter and outputting an estimate of the elevation distance of the vehicle from the Kalman filter based on the cellular range data, the barometric sensor data, the GNSS data, and the automotive inertial data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The information provided in this section is for the purpose of generally presenting the context of the present disclosure. The work of the presently named inventors, to the extent described in this section and in aspects of the description that may not otherwise be identified as prior art at the time of filing, is neither explicitly nor implicitly admitted to be prior art against the present disclosure.

[0002] The present disclosure relates generally to detecting vehicle position, and more particularly, to detecting vehicle position on a stacked road. Background Art

[0003] Stacked roads are common in the United States. Such roads are often found in and around highways and expressways to allow vehicles to travel in multiple directions without requiring vehicles to stop at intersections. For example, a highway with lanes extending in the north and south directions may cross a road or another highway with lanes extending in the east and west directions. To prevent traffic from stopping on any road, the northbound and southbound lanes may run above or below the eastbound and westbound lanes. It will be appreciated that along the route of a highway, many roads and / or highways may need to be routed above or below each other to allow for continuous traffic flow.

[0004] There can also be stacked roads for vehicles traveling between two intersecting roads. In the example provided above, if a vehicle wishes to move from the northbound lane to the eastbound lane, the vehicle does not stop to allow the vehicle to turn off from the northbound lane and enter the eastbound lane. Instead, the vehicle takes an exit / entrance ramp that extends between the northbound land and eastbound lanes. The exit / entrance ramp allows the vehicle to change from one road to another without having to stop. However, in doing so, the vehicle typically needs to change elevation because one road may be above or below the other.

[0005] Conventional vehicles easily navigate on stacked highways, where drivers are trained and understand how to navigate between various elevated and / or stacked roads. However, for autonomously driven vehicles, determining the precise location of the vehicle and knowledge about the road the vehicle is traveling on is critical to ensuring that the vehicle continues to travel along its intended path and can reach its intended destination. For example, if a controller associated with an autonomously driven vehicle believes that the vehicle is traveling on the third of three stacked highways, but the vehicle is actually traveling on the second of three stacked highways, the controller may cause the vehicle to make an incorrect turn, which may cause the vehicle to travel in the wrong direction and / or encounter obstacles that a particular vehicle may not be able to navigate. That is, if the controller does not know that the vehicle is on the second of three stacked highways, and the vehicle happens to be a delivery truck with a cab and a box trailer, when the second stacked highway crosses the third stacked highway, the controller may not know that the box trailer cannot fit under the third stacked highway. Therefore, such errors in accurately knowing the road the vehicle is traveling on may cause damage to the vehicle and / or the stacked highway the vehicle is traveling on.

[0006] The position of an autonomous vehicle can be determined by equipping the autonomous vehicle with a three-axis accelerometer and a three-axis gyroscope sensor. However, such sensors are not easily found on conventional vehicles and are further complex and expensive. A more cost-effective method of determining the position of a vehicle on a stacked road includes comparing wheel odometers with distance units to calculate the slope of the road. Although this method reduces the costs associated with providing a vehicle with a three-axis accelerometer and a three-axis gyroscope sensor, the resulting data is not as reliable as sensor data. Therefore, there is a need to be able to accurately determine the position of a vehicle on a stacked highway to not only improve the ability of an autonomous vehicle to navigate on such a road, but also to help conventional vehicles know the exact location of the vehicle to warn the driver of potential dangers (i.e., low bridges or stacked highways) and / or provide accurate information via a navigation system. Summary of the invention

[0007] In one configuration, a system is provided that includes data processing hardware and memory hardware in communication with the data processing hardware, the memory hardware storing instructions that, when executed on the data processing hardware, cause the data processing hardware to perform operations including: inputting cellular range data, air pressure sensor data, GNSS data, and vehicle inertial data into a Kalman filter, and outputting an estimate of a vehicle's elevation distance from the Kalman filter based on the cellular range data, air pressure sensor data, GNSS data, and vehicle inertial data.

[0008] The system may include one or more of the following optional features. For example, the system may include an air pressure sensor associated with the vehicle. The air pressure sensor may communicate with the data processing hardware and may provide air pressure sensor data to the data processing hardware, the air pressure sensor data indicating the elevation of the vehicle.

[0009] In one configuration, the vehicle inertial data may include at least one of pitch, roll, and yaw.

[0010] Inputting the cellular range data, the air pressure sensor data, the GNSS data, and the vehicle inertial data into the Kalman filter may include inputting the cellular range data, the air pressure sensor data, the GNSS data, and the vehicle inertial data of vehicles traveling within a predetermined segment of the road. The Kalman filter may compare the estimate of the elevation distance output by the vehicle with other estimates of the elevation distance output by the Kalman filter for other vehicles traveling within the predetermined segment of the road. The comparison may be provided to the Kalman filter to refine the Kalman filter. Finally, the map database may be updated based on the comparison.

[0011] In another configuration, a system is provided that includes data processing hardware and memory hardware in communication with the data processing hardware, the memory hardware storing instructions that, when executed on the data processing hardware, cause the data processing hardware to perform operations that include: providing a plurality of inputs to a Kalman filter that are related to a position of a vehicle on a predetermined section of a road, estimating an elevation of the vehicle on the predetermined section of the road using the Kalman filter based on the plurality of inputs, providing a plurality of estimated vehicle elevations of a plurality of other vehicles traveling on the predetermined section of the road to the Kalman filter, comparing the elevation estimate of the vehicle with a plurality of estimated vehicle elevations of a plurality of other vehicles, and refining the Kalman filter based on the comparison.

[0012] The system may include one or more of the following optional features. For example, one of the multiple inputs to the Kalman filter may be cellular range data, barometric sensor data, GNSS data, and / or vehicle inertial data. The vehicle inertial data may include at least one of pitch, roll, and yaw.

[0013] In one configuration, the map database may be updated based on the comparison.

[0014] In yet another configuration, a system is provided that includes data processing hardware and memory hardware in communication with the data processing hardware, the memory hardware storing instructions that, when executed on the data processing hardware, cause the data processing hardware to perform operations that include: inputting cellular range data, air pressure sensor data, GNSS data, and vehicle inertial data into a Kalman filter, estimating an elevation of a vehicle on a predetermined segment of a road using the Kalman filter based on the cellular range data, air pressure sensor data, GNSS data, and vehicle inertial data, providing a plurality of estimated vehicle elevations of a plurality of other vehicles traveling on the predetermined segment of the road to the Kalman filter, comparing the elevation estimate of the vehicle with a plurality of estimated vehicle elevations of a plurality of other vehicles, and refining the Kalman filter based on the comparison.

[0015] The system may include one or more of the following optional features. For example, the vehicle inertial data may include at least one of pitch, roll, and yaw.

[0016] In one configuration, the map database may be updated based on the comparison.

[0017] The estimated vehicle elevations of the plurality of other vehicles may be matched to the predetermined segment of the road. Matching the estimated vehicle elevations of the plurality of other vehicles to the predetermined segment of the road may include using a Markov model. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] The drawings described herein are for illustrative purposes only of selected configurations and are not intended to limit the scope of the present disclosure.

[0019] Figure 1 is a schematic diagram of a stacked road showing a vehicle traveling on a road of the stacked road and communicating with a cloud-based computer;

[0020] Figure 2 is a block diagram illustrating a Kalman filter for determining vehicle elevation according to the principles of the present disclosure;

[0021] Figure 3 is a detailed description of the use of Figure 2 A block diagram of a Kalman filter for updating a navigation database using vehicle elevation data; and

[0022] Figure 4 is used to determine the position of the vehicle on the stacked road Figure 2 Schematic diagram of the Kalman filter communicating vehicles.

[0023] Corresponding reference characters indicate corresponding parts throughout the several views of the drawings. DETAILED DESCRIPTION

[0024] Example configurations will now be described more fully with reference to the accompanying drawings. Example configurations are provided so that the present disclosure will be thorough and will fully convey the scope of the present disclosure to those of ordinary skill in the art. Specific details, such as examples of specific components, devices, and methods, are set forth to provide a thorough understanding of the configurations of the present disclosure. It will be apparent to those of ordinary skill in the art that specific details need not be employed, that example configurations may be embodied in many different forms, and that the specific details and example configurations should not be construed as limiting the scope of the present disclosure.

[0025] The terms used herein are only used for the purpose of describing specific exemplary configurations and are not intended to be limiting. As used herein, the singular articles "a", "an" and "the" may also be intended to include plural forms unless the context clearly indicates otherwise. The terms "comprises", "comprising", "including" and "having" are inclusive and therefore specify the presence of features, steps, operations, elements and / or parts, but do not exclude the presence or addition of one or more other features, steps, operations, elements, parts and / or groups thereof. The method steps, processes and operations described herein should not be interpreted as necessarily requiring them to be performed in the specific order discussed or shown, unless specifically identified as an execution order. Additional or alternative steps may be adopted.

[0026] When an element or layer is referred to as being "on another element or layer," "engaged to," "connected to," "attached to," or "coupled to" another element or layer, it may be directly on, directly engaged with, connected to, attached to, or coupled to another element or layer, or there may be intermediate elements or layers. Conversely, when an element is referred to as being "directly on another element or layer," "directly engaged to," "directly connected to," "directly attached to," or "directly coupled to" another element or layer, there may be no intermediate elements or layers. Other words used to describe the relationship between elements should be interpreted in a similar manner (e.g., "between" versus "directly between," "adjacent" versus "directly adjacent," etc.). As used herein, the term "and / or" includes any and all combinations of one or more associated listed items.

[0027] The terms "first", "second", "third", etc. can be used here to describe various elements, components, regions, layers and / or parts. These elements, components, regions, layers and / or parts should not be limited by these terms. These terms can only be used to distinguish an element, component, region, layer or part from another region, layer or part. Unless the context clearly indicates, terms such as "first", "second" and other numerical terms do not imply order or sequence. Therefore, without departing from the teaching of the example configuration, the first element, component, region, layer or part discussed below can be referred to as the second element, component, region, layer or part.

[0028] In this application, including the definitions below, the term "module" may be replaced with the term "circuit". The term "module" may refer to, be part of, or include: an application specific integrated circuit (ASIC); a digital, analog, or mixed analog / digital discrete circuit; a digital, analog, or mixed analog / digital integrated circuit; a combinational logic circuit; a field programmable gate array (FPGA); a processor (shared, dedicated, or grouped) that executes code; a processor (shared, dedicated, or grouped) that stores code executed by a memory; other suitable hardware components that provide the described functionality; or a combination of some or all of the above, such as in a system on a chip.

[0029] The term "code" as used above may include software, firmware and / or microcode, and may refer to a program, a routine, a function, a class and / or an object. The term "shared processor" covers a single processor that executes some or all codes from multiple modules. The term "group processor" covers a processor that executes some or all codes from one or more modules in combination with an additional processor. The term "shared memory" covers a single memory that stores some or all codes from multiple modules. The term "group memory" covers a memory that stores some or all codes from one or more modules in combination with an additional memory. The term "memory" may be a subset of the term "computer-readable medium". The term "computer-readable medium" does not cover transient electrical signals and electromagnetic signals propagated through the medium, and therefore can be considered to be tangible and non-transient memory. Non-limiting examples of non-temporary memory include tangible computer-readable media, which include non-volatile memory, magnetic memory, and optical memory.

[0030] The devices and methods described in this application may be implemented in part or in whole by one or more computer programs executed by one or more processors. The computer programs include processor-executable instructions stored on at least one non-transitory tangible computer-readable medium. The computer programs may also include and / or rely on stored data.

[0031] A software application (i.e., software resource) may refer to computer software that enables a computing device to perform tasks. In some examples, a software application may be referred to as an "application," "app," or "program." Example applications include, but are not limited to, system diagnostic applications, system management applications, system maintenance applications, word processing applications, spreadsheet applications, messaging applications, media streaming applications, social networking applications, and gaming applications.

[0032] Non-transitory memory can be a physical device used to temporarily or permanently store programs (e.g., sequences of instructions) or data (e.g., program state information) for use by a computing device. Non-transitory memory can be volatile and / or non-volatile addressable semiconductor memory. Examples of non-volatile memory include, but are not limited to, flash memory and read-only memory (ROM) / programmable read-only memory (PROM) / erasable programmable read-only memory (EPROM) / electrically erasable programmable read-only memory (EEPROM) (e.g., commonly used for firmware, such as bootloaders). Examples of volatile memory include, but are not limited to, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), phase change memory (PCM), and disk or tape.

[0033] These computer programs (also referred to as programs, software, software applications, or code) include machine instructions for a programmable processor and may be implemented in high-level procedural and / or object-oriented programming languages ​​and / or assembly / machine languages. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, non-transitory computer-readable medium, apparatus, and / or device (e.g., disk, optical disk, processor, programmable logic device (PLD)) for providing machine instructions and / or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal for providing machine instructions and / or data to a programmable processor.

[0034] Various implementations of the systems and techniques described herein can be realized in digital electronic and / or optical circuits, integrated circuits, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations may include implementations in one or more computer programs executable and / or interpretable on a programmable system that includes at least one programmable processor, which may be special-purpose or general-purpose, coupled to receive data and instructions from a storage system, at least one input device, and at least one output device, and to send data and instructions to the storage system, at least one input device, and at least one output device.

[0035] The process and logic flow described in this specification can be performed by one or more programmable processors (also referred to as data processing hardware), which execute one or more computer programs to perform functions by operating on input data and generating output. The process and logic flow can also be performed by a dedicated logic circuit (e.g., FPGA (field programmable gate array) or ASIC (application-specific integrated circuit)). As an example, a processor suitable for executing a computer program includes both general-purpose and special-purpose microprocessors, and any one or more processors of any type of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) for storing data, or be operably connected to receive data from it or transmit data to it or both. However, a computer does not need to have such a device. Computer-readable media suitable for storing computer program instructions and data include all forms of nonvolatile memory, media, and memory devices, including, for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.

[0036] To provide interaction with a user, one or more aspects of the present disclosure may be implemented on a computer having a display device (e.g., a CRT (cathode ray tube), LCD (liquid crystal display) monitor, or touch screen) for displaying information to the user and optionally a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other kinds of devices may also be used to provide interaction with the user; for example, the feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including sound, voice, or tactile input. In addition, the computer may interact with the user by sending documents to and receiving documents from a device used by the user; for example, by sending a web page to a web browser on a user's client device in response to a request received from the web browser.

[0037] Special References Figure 1-4 , the stacked road detection system 10 is provided for use in conjunction with the stacked road 12. Figure 1 As shown, the stacked roads 12 may include a first or lowest road 14 , a second or middle road 16 , and a third or highest road 18 . Figure 1The stacked road 12 shown in FIG. 1 is exemplary. Thus, the stacked road detection system 10 may be used with a vehicle 20 traveling on a stacked road having fewer or more roads and / or with a vehicle 20 traveling on a stacked road having fewer or more roads. Figure 1 The configurations shown are used in conjunction with different configurations that intersect each other. Finally, the stacked road detection system 10 can be used with a conventional human-driven vehicle 20, or with a partially or fully autonomously driven vehicle 20. The vehicle 20 (whether conventional or autonomously driven) can be powered by an internal combustion engine (ICE), can be an electric vehicle (EV) powered by one or more electric motors, or can be a hybrid electric vehicle (HEV) powered by an ICE and one or more electric motors.

[0038] The stacked road detection system 10 may be implemented in a cloud-based computer 22 having memory hardware 24 and processing hardware 26. The memory hardware 24 may store operating parameters and instructions that, when executed by the processing hardware 26, allow the stacked road detection system 10 to determine the height of a particular vehicle 20, and further determine the elevation of the road on which the vehicle 20 is traveling. Figure 1 In the example shown, the stacked road detection system 10 can use the determined height of the vehicle 20 to determine whether the vehicle 20 is traveling on the first road 14 , the second road 16 , or the third road 18 .

[0039] Although the stacked road detection system 10 will be described and illustrated below as being stored and executed by a cloud-based computer 22, the stacked road detection system 10 may alternatively be stored and executed on the vehicle 20. Specifically, as Figure 4 As shown, the vehicle 20 includes memory hardware 28 and processing hardware 30, which can be used to store and execute the stacked road detection system 10 for the particular vehicle 20. However, as will be described in detail below, the stacked road detection system 10 is used in conjunction with multiple vehicles 20 at the same time, and therefore must process a large amount of data and communicate with multiple vehicles 20 at the same time. Therefore, the stacked road detection system 10 can be stored and executed by a cloud-based computer 22 or another remotely located computer in communication with the vehicle 20.

[0040] Special References Figure 2, the stacked road detection system 10 is shown to include a Kalman filter 32 for providing an estimate of a vehicle elevation distance 34, which is the World Geodetic System-84 (WGS-84) height (in meters) above the ellipsoid. The Kalman filter 32 utilizes Kalman filtering (Linear Quadratic Estimation (LQE)), which is an algorithm that uses a series of measurements observed over time and produces an estimate of an unknown variable that tends to be more accurate than an estimate based on only a single measurement. Kalman filtering or LQE estimates the unknown variable by estimating the joint probability distribution over the variable for each of a series of time frames over the course of observation time.

[0041] like Figure 2 As shown, the Kalman filter 32 receives a series of inputs for use by the Kalman filter 32 in determining an estimate of the vehicle elevation distance 34. For example, the Kalman filter 32 receives 5G 3GPP wireless range data 36 from a cellular tower 38, barometric pressure sensor data 40 from a barometric pressure sensor 42 associated with each vehicle 20, global navigation satellite system (GNSS) data 44, vehicle inertial data 46 from a measurement unit 48 associated with each vehicle 20, and map-matched road elevation data 50. The Kalman filter 32 uses the aforementioned inputs 36, 40, 44, 46, 50 to determine the vehicle elevation distance 34, and in doing so, can determine the road on which the particular vehicle 20 is traveling.

[0042] For example, in Figure 1 In the stack of roads 12, the Kalman filter 32 will use the inputs 36, 40, 44, 46, 50 to determine whether the vehicle 20 is on the first road 14, the second road 16, or the third road 18. The vehicle 20 can use the aforementioned information via the processing hardware 30 to determine whether the road that the vehicle 20 is traveling on is passable by the particular vehicle 20, and if not, a different route can be recommended. For example, if the height of the vehicle 20 is greater than the clearance of the overpass that crosses the particular road on which the vehicle 20 is traveling, the processing hardware 30 can recommend taking a different route that can accommodate the height of the vehicle 20 based on the estimate of the vehicle elevation distance 34. If the vehicle 20 is an autonomously driven vehicle, the processing hardware 30 can warn the vehicle occupants and / or can automatically take a different route based on the estimate 34.

[0043] The 5G 3GPP wireless range data 36 may be used by the Kalman filter 32 to determine the location of the vehicle 20. That is, if the vehicle 20 and / or a cellular device (such as a mobile phone or tablet) associated with one or more occupants traveling in the vehicle 20 communicates with one or more cellular towers 38, then the cellular towers 38 know the location of the vehicle 20. That is, the one or more cellular towers 38 must transmit data to the vehicle 20 and / or the cellular devices traveling within the vehicle 20. Furthermore, the vehicle 20 and / or the cellular devices traveling within the vehicle 20 must transmit data to the one or more cellular towers 38. Thus, the one or more cellular towers 38 know the location of the vehicle 20, which may be used by the Kalman filter 32 as an input for determining an estimate of the elevation distance 34. It should be noted that while the range data 36 is described and illustrated as 5G 3GPP data, the cellular data input to the Kalman filter 32 from the one or more cellular towers 38 may be 3G or 4G data. The position data from the cellular towers 38 may be sent directly to the Kalman filter 32 , or may be sent from the memory hardware 28 and / or the processing hardware 30 associated with each vehicle 20 .

[0044] The barometric pressure sensor 42 associated with each vehicle 20 may be a pre-existing sensor found in conventional vehicles. That is, conventional vehicles may utilize the barometric pressure sensor 42 to adjust the vehicle's propulsion system based on altitude. Thus, providing the Kalman filter 32 with input from an already existing sensor (i.e., the barometric pressure sensor 42) provides the Kalman filter 32 with information that has already been detected, and therefore does not result in additional cost or complexity in manufacturing and maintaining the vehicle 20. Information from the barometric pressure sensor 42 relates to the elevation of the vehicle 20, which may be stored in the memory hardware 28 of the particular vehicle 20 and may be sent to the Kalman filter 32 by the memory hardware 28 and / or the processing hardware 30. The elevation data of the vehicle 20 detected by the barometric pressure sensor 42 may be used as an input to the Kalman filter 32 for use by the Kalman filter 32 in determining an estimate of the elevation distance 34.

[0045] The 5G 3GPP range data 36 and the air pressure data 40 may be assigned a common timestamp by the cloud-based computer 22. For example, the 5G 3GPP range data 36 and the air pressure data 40 may be assigned a common timestamp according to an established time synchronization method, such as IEEE 802.11as GPTP. In this way, the Kalman filter 32 uses data from the same time frame when estimating the elevation distance 34.

[0046] The GNSS input 44 may provide the Kalman filter 32 with data regarding the position of the vehicle 20 as detected by the satellites 52. The position of the vehicle 20 may be transmitted directly from the satellites 52 to the Kalman filter 32, or may be sent to the Kalman filter 32 from the memory hardware 28 and / or the processing hardware 30 of each vehicle 20. Information regarding the position of the vehicle 20 may be used as input by the Kalman filter 32 for determining an estimate of the elevation distance 34.

[0047] The vehicle inertial data 46 may include one or more of the pitch, roll, and yaw (radians / second) of the vehicle 20, and may be detected by a measurement unit 48 associated with each vehicle 20. The inertial data 46 may be used as an input by the Kalman filter 32 for use by the Kalman filter 32 in determining an estimate of the elevation distance 34.

[0048] The map-matched road elevation data 50 relates to current road conditions that are known based on the current location of the vehicle 20. The known current road conditions are based on previous estimates of elevation distances 34 made by the Kalman filter 32 at particular locations to other vehicles 20 that are traveling on the road that the vehicle 20 is traveling on or have been traveling on the road that the vehicle 20 is traveling on. For example, the vehicle 20 knows its location based on at least communications with one or more cellular towers 38 and / or satellites 52. In addition, the cloud-based computer 22 knows the location of the vehicle 20 because the cloud-based computer 22 is in communication with the vehicle 20. The cloud-based computer 22—based on previous estimates of vehicle elevation distances 34 to other vehicles 20 traveling on the same road—can provide this information to the Kalman filter 32 for use by the Kalman filter 32 in determining the precise location of the vehicle 20 as it travels on the stacked road. Figure 1 as shown in the example.

[0049] The cloud-based computer 22, and more specifically the Kalman filter 32, can utilize the aforementioned inputs 36, 40, 44, 46, 50 to determine an estimate of the elevation distance 34. Specifically, the Kalman filter 32 can combine the inputs 36, 40, 44, 46, 50 to provide an accurate estimate of the elevation distance 34. If the cloud-based computer 22 determines that a road is impassable for a particular vehicle 20 due to a low overpass, etc., the estimate of the elevation distance 34 can be used to warn the vehicle occupants and / or change the travel path of the vehicle 20. In addition, the estimate of the elevation distance 34 can be used to issue a warning when the vehicle 20 is heading in the wrong direction on the road and / or provide emergency personnel with the exact location of the vehicle 20 in the event of a collision or car breakdown.

[0050] Operating the cloud-based computer 22 and the associated Kalman filter 32 is processing intensive due to the number of inputs 36, 40, 44, 46, 50 for each vehicle 20 and the number of vehicles 20 for which the cloud-based computer 22 provides estimates of the elevation distance 34. Therefore, the efficiency of the Kalman filter 32 is necessary to allow the Kalman filter 32 to function properly.

[0051] The crowdsourcing mechanism can be used to improve the efficiency of the Kalman filter 32. As described, the Kalman filter 32 consumes multiple input information sources, including 5G 3GPP range data 36, ​​barometric pressure sensor data 40, GNSS input data 44, vehicle inertial measurement data 46, and map matching elevation data 50. Therefore, the convergence rate and processing overhead are significant. The purpose of the Kalman filter 32 is to minimize the error rate, as in conventional cost function optimization. Therefore, more data from multiple vehicles 20 will reduce the variance of the estimate of the elevation distance 34 and accelerate the convergence of the Kalman filter 32 by minimizing the error.

[0052] A principal component analysis (PCA) may be employed in an attempt to include only those features that increase in importance in improving the efficiency of the Kalman filter 32 and contribute to the variance in the estimate of the elevation distance 34. In short, PCA involves identifying and using only relevant data to reduce computation time. In doing so, PCA allows the Kalman filter 32 to provide a real-time estimate of the elevation distance 34, so that a gap estimate, precise vehicle position, and direction of travel for a particular vehicle 20 can be determined in real time. The cloud-based computer 22 utilizes PCA to continuously hone the Kalman filter 32 based on previous estimates of the distance 34 to improve the accuracy and speed with which the Kalman filter 32 provides an estimate of the elevation distance 34.

[0053] Specific reference Figure 3 , a block diagram illustrating how the estimate of elevation distance 34 produced by the Kalman filter 32 may be used to update a map stored in the memory hardware 24 of the cloud-based computer 22 and / or the memory hardware 28 of the individual vehicles 20. Such a map may be used to provide the driver or controller of the autonomous vehicle with accurate information regarding the exact location of the vehicle 20, including clearance height of overpasses, direction of travel, etc.

[0054] As previously described, various inputs 36, 40, 44, 46, 50 from various vehicles 20 are directed into the Kalman filter 32 to determine an estimate of the elevation distance 34. At 54, the estimates of the elevation distance 34 of multiple vehicles 20 can be combined within the geo-fenced area. For example, the Kalman filter 32 can provide an accurate estimate of the elevation of the second road 16. The tuple {G(x,y),En} of the geo-fenced area and the elevation estimate can be provided to the navigation manager at 56 for use by the navigation manager 56 when updating the map database at 58. The updated map database 58 is updated by the cloud-based computer 22 at 58 and is based on crowd-sourced data. That is, multiple estimates of the elevation distance 34 of multiple vehicles 20 at a given geo-fenced location are provided to the navigation manager at 56, which is used by the cloud-based computer 22 at 58 to update the map database at 58. The various estimates of the elevation distance 34 can be matched to a given road by using a discrete hidden Markov model. A hidden Markov model may be used to match each estimate of the elevation distance 34 to a single road to resolve ambiguity around stacked roads. The map matching model may be continuously refined at a regular frequency by the cloud-based computer 22 using incoming crowdsourced data from the vehicles 20 .

[0055] like Figure 3 As shown, this updating of the map database at 58 is accomplished by road segments in geo-fenced locations. These geo-fenced locations or map segments can be referred to as "map tiles," which can be stitched together to provide elevation data for a road network. Specifically, the average vehicle elevation along all roads can be obtained by discretizing the roads into geographic indices (i.e., cells or tiles). The average vehicle elevation within each cell or tile can be determined. Once the average vehicle elevation within each cell or tile is determined, the cloud-based computer 22 will apply lateral smoothing and longitudinal smoothing along the elevation map to further reduce noise. When new telemetry data arrives (i.e., new estimates of elevation distance 34 data from the traveling vehicle 20), the road-specific elevation map will be updated at regular intervals. The road-specific elevation map can be used as an input to the Kalman filter 32, such as Figure 3 As shown, to improve confidence and reduce noise. Finally, at 60, the updated map information can be provided to the vehicle 20.

[0056] As described, the stacked road detection system 10 utilizes various inputs to the Kalman filter 32, including the 5G 3GPP range data 36, ​​the barometric sensor data 40, the GNSS data 44, the vehicle inertial data 46, and the map matching data 50, to determine an estimate of the elevation distance 34 of the vehicle 20. The estimate of the elevation distance 34 can be used to determine the exact location of the vehicle 20, including when the vehicle 20 is traveling on the stacked road 12. In addition, the estimates of the elevation distance 34 of multiple vehicles 20 can be used over time to generate and continuously update map data and further refine the Kalman filter 32.

[0057] Many embodiments have been described. However, it should be understood that various modifications can be made without departing from the spirit and scope of the present disclosure. Therefore, other embodiments are within the scope of the following claims.

[0058] The foregoing description is provided for the purpose of illustration and description. It is not intended to be exhaustive or to limit the present disclosure. The individual elements or features of a particular configuration are generally not limited to that particular configuration, but are interchangeable where applicable and can be used in a selected configuration, even if not specifically shown or described. It can also be varied in many ways. Such variations should not be considered as departing from the present disclosure, and all such modifications are intended to be included within the scope of the present disclosure.

Claims

1. A system comprising: Data processing hardware; as well as Memory hardware in communication with the data processing hardware, the memory hardware storing instructions that, when executed on the data processing hardware, cause the data processing hardware to perform operations comprising: Input cellular range data, barometric pressure sensor data, GNSS data, and vehicle inertial data into a Kalman filter; as well as An estimate of the vehicle's elevation distance is output from the Kalman filter based on the cellular range data, barometric sensor data, GNSS data, and vehicle inertial data.

2. The system of claim 1 further comprising an air pressure sensor associated with the vehicle.

3. The system of claim 2, wherein the air pressure sensor is in communication with the data processing hardware and provides the air pressure sensor data to the data processing hardware, the air pressure sensor data being indicative of the altitude of the vehicle. 4 . The system of claim 1 , wherein the vehicle inertial data comprises at least one of pitch, roll, and yaw.

5. The system of claim 1 , wherein inputting the cellular range data, air pressure sensor data, GNSS data, and vehicle inertial data into the Kalman filter comprises inputting the cellular range data, air pressure sensor data, GNSS data, and vehicle inertial data of a vehicle traveling within a predetermined segment of a road.

6. The system of claim 5 further comprising comparing the estimate of elevation distance of the vehicle output by the Kalman filter with other estimates of elevation distance output by the Kalman filter for other vehicles traveling within a predetermined section of the road.

7. The system of claim 6 further comprising providing the comparison to the Kalman filter.

8. The system of claim 7, further comprising refining the Kalman filter based on the comparison.

9. The system of claim 6, further comprising updating a map database based on the comparison.

10. A vehicle comprising the system according to claim 1.