DETECTION SYSTEM AND METHOD FOR STACKED RAILWAYS
The system addresses the challenge of determining vehicle position on stacked roads by using a cloud-based Kalman filter to process various data inputs, offering a reliable and cost-effective solution for improved navigation accuracy.
Patent Information
- Application Number
- DE102023136371
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-10-26
- Filing Date
- 2023-12-21
- Publication Date
- 2025-04-30
AI Technical Summary
Existing methods for determining the precise position of a vehicle on stacked roads are either costly, complex, and unreliable, particularly for autonomous vehicles, which can lead to navigation errors and potential collisions.
A system utilizing data processing hardware and storage hardware connected to a cloud-based computer, which employs a Kalman filter to estimate the height distance of a vehicle based on cell area data, barometer sensor data, GNSS data, and motor vehicle inertia data, while optionally refining estimates through comparison with other vehicles' data and updating a map database.
This solution provides a cost-effective and reliable method for determining the precise position of vehicles on stacked roads, enhancing navigation accuracy for both autonomous and conventional vehicles, and enabling real-time warnings and route adjustments.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
INTRODUCTION
[0001] The information provided in this section is intended to provide a general context for the disclosure. The work of the presently named inventors, to the extent described in this section, as well as those aspects of the description that do not otherwise qualify as prior art at the time of filing, are neither expressly nor implicitly acknowledged as prior art to the present disclosure.
[0002] The present disclosure relates generally to detecting a vehicle position and, more particularly, to detecting a position of a vehicle on a stacked roadway.
[0003] Stacked lanes are ubiquitous in the United States. Such lanes are commonly found in and around freeways and expressways to allow for multi-directional vehicle traffic without requiring vehicles to stop at intersections. For example, a freeway with northbound and southbound lanes may intersect a street or another highway with eastbound and westbound lanes. In an effort to prevent traffic from stopping on any of the lanes, the northbound and southbound lanes may be stacked above or below the eastbound and westbound lanes. As can be seen, numerous streets and / or highways must be stacked on top of or below each other along the length of a freeway to allow for continuous traffic flow.
[0004] Stacked lanes may also be present for vehicles traveling between two intersecting roadways. Following the example provided above, if a vehicle wishes to move from a northbound lane to an eastbound lane, the vehicle does not stop to allow the vehicle to turn from the northbound lane to the eastbound lane. Rather, the vehicle takes an exit / on-ramp that extends between the northbound and eastbound lanes. The exit / on-ramp allows the vehicle to move from one roadway to another without stopping. However, in doing so, the vehicle often must make an elevation change, as one of the lanes may be above or below the other.
[0005] Conventional vehicles easily navigate stacked highways, where drivers are trained and know how to navigate between various elevated and / or stacked roadways. However, for autonomous vehicles, determining a vehicle's precise location and knowing the road the vehicle is traveling on are priorities to ensure the vehicle continues on its intended path and can reach its intended destination. For example, ifIf a controller associated with an autonomously driven vehicle believes a 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 could cause the vehicle to travel in the wrong direction and / or encounter an obstacle that the particular vehicle may be unable to navigate. Indeed, 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, the controller cannot know that the box trailer cannot fit under the third stacked highway when the second stacked highway intersects the third stacked highway.This failure to accurately know the road the vehicle is traveling on can therefore result in damage to the vehicle and / or the stacked highways the vehicle is traveling on.
[0006] The location of an autonomous vehicle can be determined by equipping an autonomously driven vehicle with a three-axis accelerometer and a three-axis gyro sensor. However, such sensors are not readily found in conventional vehicles and are also complex and expensive. A more cost-effective method for determining a vehicle's position on a stacked roadway involves comparing the hodometry with a distance unit to calculate the road gradient. While this method reduces the cost associated with equipping a vehicle with a three-axis accelerometer and a three-axis gyro sensor, the resulting data is not as reliable as sensor data.Accordingly, there is a need to be able to accurately determine a vehicle's position on a stacked highway, not only to improve the ability of an autonomously driven vehicle to navigate such roadways, but also to help conventional vehicles know the exact position of a vehicle to warn a driver of a potential hazard (i.e., a low bridge or a stacked highway) and / or provide accurate information via a navigation system. SUMMARY
[0007] According to one configuration, a system is provided that includes computing hardware and storage hardware in communication with the computing hardware, the storage hardware storing instructions that, when executed on the computing hardware, cause the computing hardware to perform operations that include inputting cell area data, barometer sensor data, GNSS data, and vehicle inertial data to a Kalman filter and outputting from the Kalman filter an estimate of the elevation distance of a vehicle based on the cell area data, the barometer sensor data, the GNSS data, and the vehicle inertial data.
[0008] The system may include one or more of the following optional features. For example, the system may include a barometer sensor associated with the vehicle. The barometer sensor may communicate with the computing hardware and may provide the barometer sensor data to the computing hardware, wherein the barometer sensor data indicates an altitude of the vehicle.
[0009] According to one configuration, the vehicle inertia data may include at least one of pitch, roll, and yaw.
[0010] Inputting the cell area data, barometer sensor data, GNSS data, and vehicle inertia data into the Kalman filter may include inputting the cell area data, barometer sensor data, GNSS data, and vehicle inertia data for the vehicle traveling within a predetermined segment of a roadway. The Kalman filter may compare the output vehicle elevation distance estimate with other elevation distance estimates output by the Kalman filter for other vehicles traveling within the predetermined segment of the roadway. The comparison may be provided to the Kalman filter to refine the Kalman filter. Finally, a map database may be updated based on the comparison.
[0011] According to a further configuration, a system is provided that includes computing hardware and memory hardware in communication with the computing hardware, the memory hardware storing instructions that, when executed on the computing hardware, cause the computing hardware to perform operations that include providing a plurality of inputs to a Kalman filter, the inputs being related to a location of a vehicle on a predetermined segment of a roadway, estimating an altitude of the vehicle on the predetermined segment of the roadway using the Kalman filter based on the plurality of inputs, providing a plurality of estimated vehicle altitudes for a plurality of other vehicles traveling on the predetermined segment of the roadway to the Kalman filter,comparing the vehicle height estimate with the multiple estimated vehicle heights for the multiple other vehicles and refining the Kalman filter based on the comparison.
[0012] The system may include one or more of the following optional features. One of the multiple inputs to the Kalman filter may be, for example, cell area data, barometer sensor data, GNSS data, and / or vehicle inertial data. The vehicle inertial data may include at least one of pitch, roll, and yaw.
[0013] According to one configuration, a map database can be updated based on the comparison.
[0014] According to a further configuration, a system is provided that includes computing hardware and memory hardware in communication with the computing hardware, the memory hardware storing instructions that, when executed on the computing hardware, cause the computing hardware to perform operations that include inputting cell area data, barometer sensor data, GNSS data, and vehicle inertia data into a Kalman filter, estimating an altitude of the vehicle on a predetermined segment of a roadway using the Kalman filter based on the cell area data, the barometer sensor data, the GNSS data, and the vehicle inertia data, providing a plurality of estimated vehicle altitudes for a plurality of other vehicles traveling on the predetermined segment of the roadway to the Kalman filter,comparing the vehicle height estimate with the multiple estimated vehicle heights for the multiple other vehicles and refining the Kalman filter based on the comparison.
[0015] The system may include one or more of the following optional features. The vehicle inertia data may include at least one of pitch, roll, and yaw.
[0016] According to one configuration, a map database can be updated based on the comparison.
[0017] The estimated vehicle heights for the multiple other vehicles may be adjusted to the given segment of the roadway. Adjusting the estimated vehicle heights for the multiple other vehicles to the given segment of the roadway may include using a Markov model. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] The drawings described herein are for illustrative purposes only and are not intended to limit the scope of the present disclosure; they show: Fig. 1 is a schematic representation of a stacked roadway showing vehicles traveling on the lanes of the stacked roadways and communicating with a cloud-based computer; Fig. 2 is a block diagram illustrating a Kalman filter for use in determining vehicle height in accordance with the principles of the present disclosure; Fig. 3 is a block diagram illustrating the use of vehicle height data from the Kalman filter according to Fig. 2 for use in updating navigation databases; and Fig. 4 a schematic representation of a vehicle equipped with the Kalman filter according to Fig. 2 for use in determining a vehicle position on a stacked roadway.
[0019] Corresponding reference numerals indicate corresponding parts throughout the drawings. DETAILED DESCRIPTION
[0020] Example configurations will now be described more fully with reference to the accompanying drawings. Example configurations are provided so that this disclosure will be thorough and will fully convey the scope of the disclosure to those of ordinary skill in the art. Specific details, such as examples of specific components, devices, and methods, are set forth in order 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 the example embodiments of the configurations may be embodied in many different forms, and that the specific details and example configurations should not be construed to limit the scope of the disclosure.
[0021] The terminology used herein is for the purpose of describing specific example configurations only and is not intended to be limiting. As used herein, the singular articles "a," "an," and "the" are intended to include the plural forms as well, 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 components, but do not preclude the presence or addition of one or more other features, one or more other steps, one or more other operations, one or more other elements, one or more other components, and / or groups thereof.The method steps, processes, and operations described herein should not be construed as necessarily requiring their performance in the particular order discussed or illustrated, unless specifically identified as such. Additional or alternative steps may be used.
[0022] When an element or layer is described as being "on," "engaging with," "connected to," "attached to," or "coupled to" another element or layer, it may be directly on, engaging with, connected to, attached to, or coupled to the other element or layer, or there may be intervening elements or layers. Conversely, when an element is described as being "directly on," "directly engaging with," "directly connected to," "directly attached to," or "directly coupled to" another element or layer, there may be no intervening elements or layers. Other words used to describe the relationship between elements should be interpreted in a similar manner (e.g., "between" as opposed to "directly between," "adjacent" as opposed to "directly adjacent," etc.).The term “and / or” as used herein includes any combination of one or more of the associated listed elements.
[0023] The terms "first", "second", "third", etc., may be used herein to describe various elements, components, regions, layers, and / or sections. These elements, components, regions, layers, and / or sections should not be limited by these terms. These terms may only be used to distinguish one element, component, region, layer, or section from another region, layer, or section. Terms such as "first", "second", and other numerical terms do not imply a sequence or order unless clearly indicated by the context. Consequently, a first element, component, region, layer, or section coulddiscussed below may be referred to as a second element, component, region, layer, or section without departing from the teachings of the example configurations.
[0024] 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 group) that executes code; a memory (shared, dedicated, or group) that stores code executed by a processor; 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.
[0025] The term "code" as used above may include software, firmware, and / or microcode, and may refer to programs, routines, functions, classes, and / or objects. The term "shared processor" includes a single processor that executes some or all of the code from multiple modules. The term "group processor" includes a processor that, in combination with additional processors, executes some or all of the code from one or more modules. The term "shared memory" includes a single memory that stores some or all of the code from multiple modules. The term "group memory" includes memory that, in combination with additional memory, stores some or all of the code from one or more modules. The term "memory" may be a subset of the term "computer-readable medium."The term "computer-readable medium" does not encompass the transitory electrical and electromagnetic signals that propagate through a medium and can therefore be considered a tangible and non-transitory storage. Non-limiting examples of non-transitory storage include a tangible computer-readable medium, including non-volatile memory, magnetic memory, and optical memory.
[0026] The devices and methods described in this application may be implemented partially or entirely 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.
[0027] A software application (i.e., a software resource) may refer to computer software that causes a computing device to perform a task. According to some examples, a software application may be referred to as an "application," an "app," or a "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.
[0028] Non-transitory memory may include physical devices 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. The non-transitory memory may 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) / electronically erasable programmable read-only memory (EEPROM) (which, for example, is typically used for firmware, such as boot programs).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 disks or tapes.
[0029] These computer programs (also known as programs, software, software applications, or code) contain machine instructions for a programmable processor and may be implemented in a high-level procedural and / or object-oriented programming language and / or in an assembly / machine language. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, non-transitory computer-readable medium, device, and / or apparatus (e.g., magnetic disks, optical disks, memories, programmable logic devices (PLDs)) used to provide 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 used to provide machine instructions and / or data to a programmable processor.
[0030] Various implementations of the systems and techniques described herein may be embodied in digital electronic and / or optical circuitry, integrated circuitry, specially designed ASICs (Application Specific Integrated Circuits), computer hardware, firmware, software, and / or combinations. These various implementations may include implementation in one or more computer programs executable and / or interpretable on a programmable system including at least one programmable processor, which may be a special-purpose or general-purpose processor, coupled to receive data and instructions from, and send data and instructions to, a memory system, at least one input device, and at least one output device.
[0031] The processes and logic flows described in this application text may be performed by one or more programmable processors, also referred to as data processing hardware, that execute one or more computer programs to perform functions by acting on input data and generating an output. The processes and logic flows may also be performed by special-purpose logic circuitry, such as an FPGA (field-programmable gate array) or an ASIC (application-specific integrated circuit). Processors suitable for executing a computer program include, by way of example, both general-purpose and special-purpose microprocessors and any one or more processors of any type of digital computer. Generally, a processor receives instructions and data from read-only memory or random access memory, or both.The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to, one or more mass storage devices for storing data, such as magnetic, magneto-optical, or optical disks, for receiving data from them, sending data to them, or both. However, a computer is not required to include such devices. Computer-readable media suitable for storing instructions and data of a computer program include all forms of non-volatile memory, media, and storage devices, including, by way of 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 into special logic circuitry.
[0032] To provide interaction with a user, one or more aspects of the disclosure may be implemented in a computer having a display device, e.g., a CRT (cathode ray tube), an LCD (liquid crystal display monitor), or a touch screen, for displaying information to the user, and optionally a keyboard and a pointing device, e.g., a mouse or trackball, through which the user can provide input to the computer. Other types of devices may also be used to provide interaction with the user; feedback provided to the user may, for example, be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; while input from the user may be received in any form, including auditory, voice, or tactile input.Additionally, a computer may interact with a user by sending documents to and receiving documents from a device used by the user; e.g., by sending web pages to a web browser on a client device of the user in response to requests received from the web browser.
[0033] Especially in the Fig. 1-4, a stacked lane detection system 10 is provided for use in conjunction with a stacked lane 12. As shown in Fig. 1, the stacked roadway 12 may include a first or bottom lane 14, a second or middle lane 16, and a third or top lane 18. The stacked roadway 12 shown in Fig. 1 is exemplary. Accordingly, the stacked lane detection system 10 could be used in conjunction with the vehicles 20 traveling on a stacked lane with fewer or more lanes and / or with lanes that are adjacent to each other in a configuration other than that shown in Fig. 1. Finally, the stacked lane detection system 10 may be used with a conventional, human-driven vehicle 20 or with a partially or fully autonomously driven vehicle 20. The vehicles 20—whether conventionally or autonomously driven—may be powered by an internal combustion engine (ICE), may be an electric vehicle (EV) powered by one or more electric motors, or may be a hybrid electric vehicle (HEV) powered by an ICE and one or more electric motors.
[0034] The stacked lane detection system 10 may be implemented in a cloud-based computer 22 with storage hardware 24 and processing hardware 26. The storage hardware 24 may store operating parameters and instructions that, when executed by the processing hardware 26, enable the stacked lane detection system 10 to determine a height of a particular vehicle 20 and further the lane on which the vehicle 20 is traveling. According to the Fig. 1, the stacked lane detection system 10 may use the determined height of the vehicle 20 to determine whether the vehicle 20 is traveling on the first lane 14, the second lane 16, or the third lane 18.
[0035] While the stacked lane detection system 10 is described and shown below as being stored and executed by a cloud-based computer 22, the stacked lane detection system 10 could alternatively be stored and executed onboard the vehicle 20. Specifically, the vehicle 20 includes the storage hardware 28 and the processing hardware 30 that could be used to store and execute the stacked lane detection system 10 for the particular vehicle 20, as shown in Fig. 4. However, as described in detail below, the stacked lane detection system 10 is used in conjunction with multiple vehicles 20 simultaneously and must therefore process significant amounts of data and communicate with multiple vehicles 20 simultaneously. Accordingly, the stacked lane detection system 10 may be stored and executed by a cloud-based computer 22 or another remotely located computer in communication with the vehicles 20.
[0036] In Fig. 2, the stacked pavement detection system 10 includes a Kalman filter 32 used to provide an estimate of the vehicle height clearance 34, which is the World Geodetic System-84 (WGS-84) elevation above the ellipsoid (meters). The Kalman filter 32 uses Kalman filtering (linear quadratic estimation (LQE)), which is an algorithm that uses a sequence of measurements observed over time and produces estimates of unknown variables that tend to be more accurate than those based on individual measurements alone. Kalman filtering, or LQE, estimates the unknown variables by estimating a multivariate distribution over the variables for each of a sequence of time frames over the observed time.
[0037] As in Fig. 2, the Kalman filter 32 receives a sequence of inputs for use by the Kalman filter 32 in determining the vehicle height distance estimate 34. The Kalman filter 32 receives, for example, 5G 3GPP wireless range data 36 from a cellular tower 38, barometer sensor data 40 from a barometer sensor 42 associated with each vehicle 20, global navigation satellite system (GNSS) data 44, automotive inertial data 46 from a measurement unit 48 associated with each vehicle 20, and map-matched road elevation data 50. The preceding inputs 36, 40, 44, 46, 50 are used by the Kalman filter 32 to determine the vehicle height distance 34, wherein it may determine the roadway in which the particular vehicle 20 is traveling.
[0038] In the stacked lane 12 to Fig. 1, for example, the Kalman filter 32 uses the inputs 36, 40, 44, 46, 50 to determine whether the vehicle 20 is in the first lane 14, the second lane 16, or the third lane 18. The foregoing information can be used by the vehicle 20—via the processing hardware 30—to determine whether the lane on which the vehicle 20 is traveling is passable by the particular vehicle 20; if not, an alternate route can be recommended. For example, if a height of the vehicle 20 is greater than a clearance for an overpass crossing the particular lane on which the vehicle 20 is traveling, the processing hardware 30—based on the vehicle height clearance estimate 34—can recommend taking an alternate route that accommodates the height of the vehicle 20.If the vehicle 20 is an autonomously driven vehicle, the processing hardware 30 may warn the vehicle occupants and / or automatically take an alternative route based on the estimate 34.
[0039] The 5G 3GPP wireless range data 36 can be used by the Kalman filter 32 in determining a position of the vehicle 20. Namely, if the vehicle 20 and / or a cellular device, such as a cell phone or tablet, associated with one or more passengers traveling in the vehicle 20 is in communication with one or more cell towers 38, the one or more cell towers 38 will know a location of the vehicle 20. Namely, the one or more cell towers 38 must transmit data to the vehicle 20 and / or a cellular device carried within the vehicle 20. Further, the vehicle 20 and / or a cellular device carried within the vehicle 20 must transmit data to one or more cell towers 38.Accordingly, the one or more cell towers 38 know a position of the vehicle 20, which can be used by the Kalman filter 32 as an input to determine the elevation distance estimate 34. It should be noted that while the area data 36 is described and shown as 5G-3GPP data, the cell data from one or more cell towers 38 input to the Kalman filter 32 could be 3G or 4G data. The location data from the one or more cell towers 38 can be sent directly to the Kalman filter 32 or could be transferred to the Kalman filter 32 from the storage hardware 28 and / or processing hardware 30 associated with each vehicle 20.
[0040] The barometer sensor 42 associated with each vehicle 20 may be an existing sensor found in conventional vehicles. Conventional vehicles may use a barometer sensor 42 to tune a vehicle's propulsion system as a function of altitude. Accordingly, providing input from an existing sensor (i.e., a barometer sensor 42) to the Kalman filter 32 provides the Kalman filter 32 with information that has already been detected, thus not resulting in additional cost or complexity in the manufacture and maintenance of the vehicle 20. The information from the barometer sensor 42 relates to the altitude of the vehicle 20, which may be stored in the memory hardware 28 of the particular vehicle 20 and sent to the Kalman filter 32 by the memory hardware 28 and / or the processing hardware 30.The elevation data for the vehicle 20—as detected by the barometer sensor 42—may be used as an input to the Kalman filter 32 for use by the Kalman filter 32 in determining the elevation distance estimate 34.
[0041] The 5G-3GPP range data 36 and the barometer data 40 can be assigned common timestamps by the cloud-based computer 22. For example, the 5G-3GPP range data 36 and the barometer data 40 can be assigned common timestamps using an established time synchronization method, such as IEEE 802.1as gPTP. In this way, the Kalman filter 32 uses data from the same time frame when estimating the altitude distance 34.
[0042] The GNSS input 44 may provide the Kalman filter 32 with data regarding a position of the vehicle 20 as detected by a satellite 52. The position of the vehicle 20 may be transmitted directly from the satellite 52 to the Kalman filter 32 or may be sent to the Kalman filter 32 from the storage hardware 28 and / or the processing hardware 30 of each vehicle 20. The information regarding the position of the vehicle 20 may be used as an input by the Kalman filter 32 for use in determining the elevation distance estimate 34.
[0043] 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 the measurement unit 48 associated with each vehicle 20. The inertial data 46 may be used by the Kalman filter 32 as an input for use by the Kalman filter 32 in determining the height separation estimate 34.
[0044] The map-matched road elevation information 50 refers to current road conditions known based on the current position of the vehicle 20. The known current road conditions are based on previous estimates of the elevation distance 34 made by the Kalman filter 32 at the particular location for other vehicles 20 traveling or having traveled on the roadway on which the vehicle 20 is traveling. For example, the vehicle 20 knows its location based at least on communication with one or more cell towers 38 and / or the satellite 52. Furthermore, 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 may provide, based on previous estimates of the vehicle height separation 34 from other vehicles 20 traveling in the same roadway, this information to the Kalman filter 32 for use by the Kalman filter 32 in determining the precise location of the vehicle 20 when traveling in a stacked roadway, as in accordance with the example of FIG. Fig. 1 is shown.
[0045] The cloud-based computer 22, and in particular the Kalman filter 32, may use the previous inputs 36, 40, 44, 46, 50 in determining the elevation distance estimate 34. Specifically, the Kalman filter 32 may combine the inputs 36, 40, 44, 46, 50 to provide an accurate elevation distance estimate 34. The elevation distance estimate 34 may be used to warn vehicle occupants and / or alter the path of the vehicle 20 should the cloud-based computer 22 determine that the roadway is impassable for the particular vehicle 20 due to low overpasses and the like. Furthermore, the elevation distance estimate 34 may be used to warn when a vehicle 20 is traveling the wrong way on a roadway and / or to provide emergency responders with an accurate location of a vehicle 20 in the event of a collision or vehicle breakdown.
[0046] Operating the cloud-based computer 22 and the associated Kalman filter 32 is very processing-intensive due to both 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 an estimate of the height separation 34. Accordingly, efficiency of the Kalman filter 32 is required to enable the Kalman filter 32 to function properly.
[0047] A crowdsourcing mechanism can be used to improve the efficiency of the Kalman filter 32. As described, the Kalman filter 32 consumes multiple sources of input information, including the 5G-3GPP range data 36, the barometer sensor data 40, the GNSS input data 44, the vehicle inertial measurement data 46, and the map-matched 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. Accordingly, more data from multiple vehicles 20 reduces the variance in the estimation of the elevation distance 34, accelerating the convergence of the Kalman filter 32 by minimizing the error.
[0048] Principal component analysis (PCA) may be employed in an effort to incorporate those features that add significance with a view to improving the efficiency of the Kalman filter 32 and contribute to the variance in the estimation of the elevation distance 34. In short, PCA involves identifying and using only relevant data to reduce computation time. In doing so, PCA enables the Kalman filter 32 to provide real-time estimates of the elevation distance 34 so that clearance height estimates, the precise vehicle location, and the heading of a particular vehicle 20 can be determined in real time. The cloud-based computer 22 uses PCA to continuously refine 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.
[0049] Especially in Fig. 3 is a block diagram illustrating how the elevation distance estimates 34 generated by the Kalman filter 32 can be used to update the maps stored in the storage hardware 24 of the cloud-based computer 22 and / or in the storage hardware 28 of the individual vehicles 20. Such maps are useful in providing a driver or controller of an autonomously driven vehicle with precise information concerning the exact location of the vehicle 20, including overpass clearances, direction of travel, etc.
[0050] As previously described, the various inputs 36, 40, 44, 46, 50 from the individual vehicles 20 are fed into the Kalman filter 32 to determine an estimate of the elevation distance 34. The estimate of the elevation distance 34 for multiple vehicles 20 can be combined within a geofence zone at 54. The Kalman filter 32 can, for example, provide an accurate estimate for an elevation of the second roadway 16. The tuple of the geofence zone and the elevation estimates {G(x, y), E n} may be provided to a navigation manager at 56 for use by the navigation manager 56 in updating a map database at 58. The updated database 58 is updated at 58 by the cloud-based computer 22 and is based on crowdsourced data. Namely, multiple elevation distance estimates 34 from multiple vehicles 20 at a particular geofence location are provided to the navigation manager at 56, which are used by the cloud-based computer 22 at 58 to update the map database at 58. The various elevation distance estimates 34 may be matched to a particular roadway using a discrete hidden Markov model. The hidden Markov model may be used to match each elevation distance estimate 34 to an individual roadway to resolve ambiguities around stacked roadways.The map matching model can be continuously refined by the cloud-based computer 22 using incoming crowdsourced data from the vehicles 20 at a regular frequency.
[0051] As in Fig. 3, this updating of the map database is performed at 58 by a road segment at a geofened location. These geofened locations or map segments may be referred to as "map tiles," which may be stitched together to provide the elevation data for a road network. Specifically, the average vehicle height along all roadways may be determined by discretizing the roadways into geo-indices (i.e., cells or tiles). The average vehicle height within each cell or tile may be determined. Once the average vehicle height within each cell or tile has been determined, the cloud-based computer 22 applies lateral smoothing and longitudinal smoothing along the elevation map to further reduce noise. This road-specific elevation map is updated at regular intervals as new telemetry data arrives (i.e., a new estimate of the elevation distance data 34 from moving vehicles 20 arrives). The road-specific elevation map can serve as input to the Kalman filter 32, as shown in . Fig. 3 to improve confidence and reduce noise. Finally, at 60, the updated map information may be provided to the vehicle 20.
[0052] As described, the stacked lane detection system 10 uses various inputs to a Kalman filter 32, including 5G-3GPP range data 36, barometer sensor data 40, GNSS data 44, vehicle inertial data 46, and map-matched data 50, to determine an elevation distance estimate 34 for a vehicle 20. The elevation distance estimate 34 can be used to determine an accurate location of a vehicle 20—including when the vehicle 20 is traveling on a stacked lane 12. Furthermore, the elevation distance estimate 34 for multiple vehicles 20 can be used over time to generate and continuously update map data and further refine the Kalman filter 32.
[0053] A number of implementations have been described. It is recognized, however, that various modifications may be made without departing from the spirit and scope of the disclosure. Accordingly, other implementations are within the scope of the following claims.
[0054] The foregoing description has been provided for purposes of illustration and description. It is not intended to be exhaustive or limiting of the disclosure. Individual elements or features of a particular configuration are generally not limited to that particular configuration, but are interchangeable and may be used in a selected configuration, even if not specifically shown or described. Furthermore, they may be varied in various ways. Such variations are not to be regarded as a departure from the disclosure, and all such modifications are intended to be included within the scope of the disclosure.
Claims
[1] System that includes: data processing hardware; and Storage hardware in communication with the computing hardware, the storage hardware storing instructions that, when executed on the computing hardware, cause the computing hardware to perform operations that include: Inputting cell area data, barometer sensor data, GNSS data, and vehicle inertia data into a Kalman filter; and Outputting from the Kalman filter an estimate of the elevation distance of a vehicle based on the cell area data, the barometer sensor data, the GNSS data, and the vehicle inertial data. [2] The system of claim 1, further comprising a barometer sensor associated with the vehicle. [3] The system of claim 2, wherein the barometer sensor is in communication with the data processing hardware and provides the barometer sensor data to the data processing hardware, the barometer sensor data indicative of an altitude of the vehicle. [4] The system of claim 1, wherein the vehicle inertia data includes at least one of pitch, roll, and yaw. [5] The system of claim 1, wherein inputting the cell area data, the barometer sensor data, the GNSS data, and the vehicle inertia data to the Kalman filter includes inputting the cell area data, the barometer sensor data, the GNSS data, and the vehicle inertia data for the vehicle traveling within a predetermined segment of a roadway. [6] The system of claim 5, further comprising comparing the vehicle height difference estimate output by the Kalman filter with other Kalman filter height difference estimates for other vehicles traveling within the predetermined segment of the roadway. [7] The system of claim 6, further comprising providing the comparison for 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 incorporating the system of claim 1.
Citation Information
Patent Citations
Differential altitude measurment
US20130133421A1
Estimation of Barometric Pressure Measurement Bias with Adjustment Based on a Value Expected for a Wireless Terminal
US20210364380A1
Precision Localization and Geofencing Governance System and Method for Light Electric Vehicles
US20230245569A1
Utilizing a pressure profile to determine a location context identifier
WO2014176464A1