Method and system for terrain-based positioning of a vehicle - Patents.com

JP2024541333A5Pending Publication Date: 2025-12-01CLEARMOTION INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024527496
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-11-24
Filing Date
2022-11-23
Publication Date
2025-12-01

AI Technical Summary

Technical Problem

Existing vehicle localization systems, such as GNSS, lack the accuracy and resolution needed for precise orientation and road surface information, which is crucial for advanced vehicle features like active suspension and autonomous driving.

Method used

A terrain-based localization method that compares real-time road surface profiles measured by vehicle sensors with pre-recorded reference profiles to determine the vehicle's location with high precision, using techniques like cross-correlation and filtering to enhance accuracy.

Benefits of technology

Enhances vehicle localization accuracy beyond what GNSS can provide, allowing for effective control of vehicle systems based on precise road surface information, improving safety and comfort by accurately anticipating road features.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method and system for precisely determining the location of a vehicle traveling along a road is described. The method involves finding the vehicle's approximate position from known locations by using techniques such as GNSS or dead reckoning, and then refining the vehicle's position by using terrain-based localization. This type of localization involves the use of temporal and spatial variations in the magnitude of correlation between a current road surface profile acquired while traveling along a road and a previously acquired reference profile of the same road.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit under 35 U.S.C. § 119 of U.S. Provisional Application No. 63 / 282,781, filed November 24, 2021, the entire disclosure of which is incorporated herein by reference.

[0002] Technical Field The disclosed embodiments relate to a system for terrain-based positioning of a vehicle and related methods of use. [Background technology]

[0003] background For example, advanced vehicle features such as active suspension or autonomous or semi-autonomous driving may depend on precise vehicle positioning and / or road surface information. For example, positioning systems based on global navigation satellite systems (GNSS) may not provide sufficient precision or resolution in positioning so that information about the road surface can be effectively used. Summary of the Invention [Means for solving the problem]

[0004] overview According to some aspects of the present disclosure, a method for precisely determining a current location of a vehicle traveling along a road is provided. The method includes traveling along a first road segment by a vehicle; and receiving a current road surface profile of the first road segment that terminates at the current location of the vehicle. The method further includes determining that the current location of the vehicle is within an uncertainty zone of a positioning system (e.g., GNSS, GPS); obtaining reference road surface profiles of multiple road segments from a data storage system (e.g., local RAM, remote database), each of the multiple road segments having a length equal to the first road segment and each of the multiple road segments having an end point located within the uncertainty zone; comparing each of the multiple reference road surface profiles to the current road surface profile; and determining a precise current location of the vehicle based at least in part on the comparison.

[0005] In some embodiments, the plurality may be a number greater than 2 but less than 20; and / or the comparing may involve calculating a magnitude of correlation between each of the plurality of reference road surface profiles and the current road surface profile. The method further includes determining a maximum of the calculated correlations, and determining a precise current location of the vehicle that is associated with the correlation with the maximum. In some embodiments, each reference road surface profile may be based at least in part on crowd-sourced data. In some embodiments, the comparing may involve using a moving average of the current and / or reference data sets. In some embodiments, the comparing may involve applying a filter, which may be an IIR filter, to the current and / or reference data sets. In some embodiments, the current road surface profile and the first reference road surface profile may include an equal number of data points, and the comparing may involve determining a degree of similarity between at least the first reference road surface profile and the current road surface profile based at least on a moving average square of the data points in each of the first reference road surface profile and the current road surface profile.

[0006] According to some aspects of the disclosure, a method is provided for determining a current position of a vehicle relative to a road segment during a current traverse of the road segment. The method includes: receiving a current road surface profile of at least a portion of a road segment during a current traverse of a first road segment terminating at a current position of the vehicle, the current road surface profile data being based at least in part on measurements by one or more sensors on board the vehicle; receiving a pre-recorded road surface profile of a second road segment, the second road segment at least partially overlapping but longer than the first road segment; determining multiple correlation magnitudes of multiple subsets of the second road segment with the first road segment; and determining a more precise current position of the vehicle relative to the second road segment based on a comparison of the at least two magnitudes. In some embodiments, this precision may be greater than that possible with various GNSS or dead reckoning systems.

[0007] According to some aspects of the present disclosure, a method for localizing a vehicle is provided, the method including: obtaining an approximate location of the vehicle (e.g., by a GNSS system or a dead reckoning system); determining that the approximate location is within a threshold distance from a predetermined point of a first road segment of a series of road segments, the first road segment being associated with a previously stored first reference road surface profile; and comparing the current road surface profile to the first reference road surface profile and determining a first time point at which the vehicle is located at the predetermined point of the first road segment based on the comparison, thereby localizing the vehicle to the predetermined point of the first road segment at the first time point.

[0008] In some embodiments, the method may include obtaining an approximate location of the vehicle from the known location based at least in part on a Global Navigation Satellite System (GNSS) and / or dead reckoning. In some embodiments, the method may include obtaining, for each road segment, a location of a predetermined point of the respective road segment; and a reference road surface profile for the respective road segment. In some embodiments, a current road surface profile may be generated, where generating the current road surface profile includes measuring vertical motion of one or more portions of the vehicle as the vehicle moves. In some embodiments, generating the current road surface profile may also include filtering the current vertical motion to remove wheel hop effects. In some embodiments, generating the current road surface profile may also include converting the current vertical motion from a time domain to a distance domain. The method may also include performing a comparison between the current road surface profile and the first reference road surface profile in response to determining that the approximate location is within a threshold distance of the predetermined point of the first road segment. In some embodiments, the predetermined point is not an end point of a road segment.

[0009] According to some aspects of the disclosure, a method of determining a location of a vehicle while the vehicle is traveling along a road is provided, the method including: (a) using a first vehicle positioning system (e.g., GNSS, GPS, or dead reckoning) to determine that the vehicle is traveling within a predetermined threshold distance of a predetermined point (e.g., an end point, a midpoint, or other identifiable point) in the road; (b) traveling with the vehicle within the predetermined threshold distance of the predetermined point in the road; and (c) during (b), determining a location of the vehicle by using a second positioning system; the second positioning system is a terrain-based positioning system, the second positioning system being more precise than the first positioning system. In some embodiments, step (c) of the method may include: acquiring a number of road surface profiles terminating at a number of locations of the vehicle on the road; comparing each of the number of road surface profiles to a reference road surface profile terminating at the predetermined point in the road; determining that a peak correlation of the comparison is greater than a predetermined value; and determining that the vehicle was substantially at the predetermined point when the road surface profile associated with the peak correlation was acquired.

[0010] According to some aspects of the present disclosure, a method for determining a location of a vehicle while the vehicle travels along a road is provided, the method including: receiving a reference road surface profile of the road from a database; using a first positioning system to estimate a current location of the vehicle relative to the reference road surface profile, the first positioning system (e.g., GNSS, GPS or dead reckoning) having an area of ​​uncertainty; receiving a current road surface profile based at least in part on data from a sensor mounted on the vehicle, the current road surface profile ending at a current position of the vehicle and being shorter than the reference road surface profile; selecting a number of segments of the reference road surface profile whose length is equal to that of the current road surface profile and which end within the area of ​​uncertainty, the ends of the number of segments being distributed within the area of ​​uncertainty; comparing the current road surface profile with each of the number of segments; identifying the segment having a best correlation value; and determining that the end point of the segment of the road surface profile associated with the best correlation value is the location of the vehicle when the best correlation value is greater than a predetermined threshold. In some embodiments of the method, the ends of multiple segments are uniformly distributed within the zone of uncertainty.

[0011] According to some aspects of the present disclosure, a method is provided for determining a location of a vehicle while the vehicle is traveling along a road, the method including: determining that the vehicle is traveling within a predetermined threshold distance of a predetermined point within the road based on data from a first vehicle positioning system (e.g., GNSS, GPS, or dead reckoning); determining a position of the vehicle by using a second positioning system while the vehicle is traveling within the predetermined threshold distance of a predetermined point within the road (e.g., an end point, midpoint, or other identifiable point), where the second positioning system is a terrain-based positioning system, and the second positioning system is more precise than the first positioning system.

[0012] It should be appreciated that the disclosure is not limited in this respect, and that the foregoing concepts and additional concepts discussed below may be arranged in any suitable combination. Moreover, other advantages and novel features of the present disclosure will become apparent from the detailed description of various non-limiting embodiments when considered in conjunction with the accompanying drawings.

[0013] BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings are not intended to be drawn to scale. In the accompanying drawings, each identical or nearly identical part shown in various figures may be represented by a similar numeral. For purposes of clarity, not every part may be labeled in every figure. [Brief description of the drawings]

[0014] [Figure 1] 1 depicts one embodiment of a road map including roads divided into a set of road segments. [Diagram 2] 1 depicts a schematic diagram of one embodiment of a vehicle interacting with a road and exchanging information with a remote server over a network. [Diagram 3] 1 depicts a flowchart of one embodiment of a method for localizing a vehicle with a terrain-based localization system. [Figure 4] 1 depicts a process for terrain-based positioning of a vehicle, according to some illustrative embodiments. [Diagram 5] 4 depicts a flowchart of another embodiment of a method for localizing a vehicle with a terrain-based localization system. [Figure 6] 2 is a flow chart of an embodiment of a method for localizing a vehicle with a terrain-based location system. [Figure 7] 10 depicts a flowchart of another embodiment for collecting multiple segments for terrain-based localization. [Figure 8] 1 shows an example in which the position of a vehicle is shown relative to a reference road surface profile at various time steps. [Figure 9] An example is shown where the precise position of the vehicle is known at each time step. [Figure 10]An example is shown in which the precise position of the vehicle is not known at each time step. [Figure 11] We present an example where the correlation nodes are uniformly distributed within the uncertainty range. [Figure 12] 4 shows an example illustrating correlation values ​​depending on the position of the vehicle relative to a reference road surface profile. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0015] A vehicle traveling along a road may interact, autonomously or under driver control, with one or more road surface features that may subject the vehicle and / or one or more vehicle occupants to certain forces or accelerations. Such road features may affect the comfort and / or safety of the vehicle occupants as well as wear and tear on the vehicle. The magnitude, direction and / or frequency content of such forces or accelerations may be a function of the characteristics of the one or more road surface features and the state of the vehicle. A typical road may include various types of road surface features, such as, for example, road surface anomalies (including but not limited to, potholes, bumps, surface cracks, expansion joints, frost heaves, rough patches, rumble strips, storm grates, etc.); and / or road surface characteristics (including but not limited to, road surface texture, road surface configurations, surface camber, surface slope, etc.). The road surface characteristics may also affect road surface-related parameters (such as, for example, the coefficient of friction between the vehicle's tires and the road surface, and traction and / or road grip, etc.). Such parameters may determine how effectively certain maneuvers, such as turning and stopping, can be performed at various speeds and vehicle loads.

[0016] Various systems of the vehicle may be controlled based on the road surface characteristics and / or features. However, the type and characteristics of the road surface features and / or characteristics may vary, for example, from road to road, as well as depending on the longitudinal and / or lateral location on a given road. The impact of a vehicle interaction with a given road surface feature on the vehicle and / or occupants may also vary depending on the vehicle speed at the time of the interaction between the vehicle and the road surface feature. The characteristics of the road surface feature may also vary, for example, based on weather conditions and / or depending on time. For example, if the road surface feature is a pothole, the pothole may gradually appear and grow in length, width and / or depth over the winter months depending on repeated freeze / thaw cycles, and then repair and virtually disappear within a short period of time. Due to the changing nature and / or unmapped layout of the road surface, the vehicle may sense the vehicle's interaction with the road surface and then activate various automatic and / or semi-automatic systems of the vehicle depending on the sensed interaction.

[0017] The road surface characteristics and features can be characterized and mapped to provide forward-looking or preview information about road surface features located along the path of travel of the vehicle. This information about the road surface features and surface properties ahead of the vehicle can be used, for example, to dynamically tune, prepare and / or control various automated or partially automated systems in the vehicle, such as suspension systems (e.g., semi- or fully active), propulsion systems, adaptive driver assistance systems (ADAS), electric power steering systems (EPS), antilock braking systems (ABS), etc. When there is a physical interaction between the vehicle and the road surface features, the vehicle can be exposed to one or more perceptible forces induced during the interaction. Thus, by previewing the road ahead (e.g., receiving a priori road surface information), the vehicle controller can be prepared to react more effectively to the road surface features when there is a physical interaction between the road surface features and the vehicle.

[0018] While information about the road surface may be useful for control of various systems of a vehicle, the present inventors have recognized that there are several challenges to obtaining and using such road surface information. One such challenge is knowing the location of the vehicle with sufficient accuracy and resolution relative to various road surface features or sections of a road having certain surface characteristics (e.g., coefficient of friction) such that information about the road features or characteristics ahead of the vehicle may be used to more effectively control various vehicle systems. For example, if the location of the vehicle is not known to a sufficient degree of accuracy, the vehicle controller may take actions that, for example, do not effectively mitigate the effects of physical interactions between the vehicle and road surface features. As another example, if the location of the vehicle is not known to a sufficient degree of accuracy, the vehicle controller may not be able to react in an appropriate and / or timely manner to mitigate or eliminate the effects of physical interactions between the vehicle and road features that may, for example, lead to occupant discomfort or reduced safety. For example, a typical accuracy on Global Navigation Satellite System (GNSS) based location coordinates may be on the order of about 7m to 30m. This lack of precision may prevent a system controller in the vehicle from reacting effectively or in a timely manner to an interaction with a particular road surface feature (e.g., a pothole) or to determine whether an interaction will occur.

[0019] The present inventors have recognized that a location system and method incorporating terrain-based location may offer better resolution and accuracy than conventional approaches (e.g., GNSS and / or dead reckoning based systems). When using a terrain-based location system while traveling along a road, the road surface profile may be determined by making several measurements (e.g., by measuring the vertical motion of a portion of the vehicle (e.g., the unsprung mass)) with one or more sensors attached to the vehicle. This currently measured (i.e., measured during the current journey) road surface profile may then be compared to a previously determined reference road surface profile. Based at least in part on how well the portion of the currently measured road surface profile matches the portion of the reference profile, the current position of the vehicle may be determined with greater precision than may be possible otherwise (e.g., by using GNSS). However, continuous pattern matching of the currently measured profile with the previously determined reference profile may require significant data transmission and / or computation. That is, a single vehicle may need to stream sufficient road information. The currently measured road surface profile may be continuously compared to the reference road surface profile while the vehicle is being controlled based on its position and information about the road surface ahead. Network bandwidth requirements may be significant (and may not be commercially feasible), especially if the reference data is stored remotely and multiple vehicles are to be supported virtually simultaneously. Additionally, in some embodiments, continuous pattern matching between the currently measured profile and the reference profile may require computational power beyond what may be commercially feasible to employ within the vehicle. If the computations are performed remotely, such continuous pattern matching may further add to the network bandwidth needs.

[0020] The inventors have recognized that the methods described herein may be used to reduce computational and / or data communication loads compared to currently known continuous terrain-based localization techniques. These methods may instead be used to achieve high localization accuracy by relying on terrain-based localization to refine the estimated location of the vehicle as determined by less computationally / data-intensive and less precise localization techniques. For example, in some embodiments, other techniques such as GNSS and / or dead reckoning may be used until the vehicle is within a threshold distance of a known point on the road. Once within that threshold region (e.g., within a threshold distance from the known point), terrain-based localization may be performed to determine a more precise location of the vehicle. In other embodiments, terrain-based localization within these regions (e.g., within a threshold distance of a known location) may include determining a vehicle location that produces a maximum correlation between a currently measured road surface profile and a previously acquired reference road surface profile.

[0021] In other alternative embodiments, as discussed further below, the vehicle's location may be refined by continuously or intermittently comparing the current road surface profile with multiple portions of previously acquired reference road surface profiles.

[0022] In some embodiments of the terrain-based localization system, certain characteristics of the road segment (e.g., a continuous or near-continuous road surface profile, discrete road surface features, or a combination of such characteristics) may be determined and stored in a database, along with metadata regarding the geographic coordinates (e.g., GNSS coordinates) of any suitable predetermined point of the road segment (e.g., a midpoint or end point of the road segment). The predetermined length of the road segment may be any suitable length (e.g., 20, 50, 80, 100, 500 meters). Other lengths of road segments (both longer and shorter road segments) are contemplated as the disclosure is not so limited. In some embodiments, the road segments in one or more road networks may be of equal or different lengths. In some embodiments, a road network may be established in which road segments abut such that the start of one segment coincides with the end of a previous road segment such that there is no overlap. In some embodiments, there may be some overlap in at least some instances.

[0023] In some embodiments, while traveling along a given road segment (which may have a predetermined length λ), a road surface profile (i.e., a current road surface profile) of a portion of the road (of which the road segment is a part) having a length δ and preceding (e.g., directly preceding) the current location of the vehicle may be determined and maintained. This current road surface profile associated with the portion of length δ that follows the current position of the vehicle may be determined based on data collected by one or more sensors on board the vehicle during the current journey. In some embodiments, prior to arriving at a predetermined point of the given road segment (a point having a known position (e.g., its GNSS coordinates are known)), a previously stored road surface profile (i.e., a reference road surface profile) of the portion of the road segment of length δ preceding the predetermined point may be retrieved. As the vehicle approaches the predetermined point, e.g., from a known position, determined by using, e.g., a GNSS system or dead reckoning, the retrieved road surface profile (i.e., a reference road surface profile) of length δ may be compared to the current road surface profile of the length δ of the road that follows the current position of the vehicle. In some embodiments, based on this comparison, it may be determined that the vehicle is currently at the predetermined point. In some embodiments, the length δ may be equal to or approximately equal to the length λ, and the predetermined point may be an end point of the road segment. In some embodiments, this comparison may be accomplished by determining a correlation between the current road surface profile and a reference road surface profile. However, the data processing burden of precisely determining the location of the vehicle may be mitigated or reduced by first using a less precise positioning system (e.g., GNSS or dead reckoning) to determine when the vehicle is approximately approaching the predetermined point of the road segment (e.g., the end of the road segment), and then using terrain-based positioning to more precisely determine when the vehicle is at the predetermined point.

[0024] In some embodiments, given some limitations (e.g., computational limitations and / or bandwidth limitations), it may be advantageous to perform the terrain-based localization method occasionally or infrequently, rather than continuously or nearly continuously, for example, when a vehicle is approaching a predetermined point in a road segment. In such an embodiment, a comparison between the current road surface profile data and the reference road surface profile may only be performed at predetermined intervals (e.g., time or distance intervals). For example, in some embodiments, terrain-based localization may be utilized when a vehicle approaches a predetermined point of a road segment (e.g., an end of the road segment), but the vehicle position may otherwise be determined by other means (e.g., by dead reckoning or by using GNSS). Thus, in some embodiments, between those occasions and / or road surface locations where terrain-based localization is used, dead reckoning and / or GNSS may be used to estimate the location of the vehicle (e.g., the position of the vehicle along the road) based on previously identified locations (e.g., previously identified positions along the road). For example, in some embodiments, a terrain-based localization method may include initially collecting data from one or more sensors mounted on a vehicle as the vehicle travels along a road. The collected data may be processed (e.g., converted from a time domain to a distance domain, filtered, etc.) to obtain current road surface profile data. The current road surface profile data may then be compared to reference road surface profile data associated with the road, and a position of the vehicle along the road at a first time point may be determined based at least in part on this comparison. Once the position of the vehicle along the road at the first time point has been determined, dead reckoning may be used to track the position of the vehicle as it subsequently travels along the road. During the dead reckoning period, new data from the one or more sensors may be collected and optionally processed to yield new current road surface profile data. In some embodiments, upon determining that the vehicle has traveled a predetermined distance from the first time point, the new current data may be compared to suitable reference data. Based at least on this second comparison, a position of the vehicle along the road at a second time point may be determined.This process may then be repeated as the vehicle traverses successively located road segments such that dead reckoning is used to track further movement of the vehicle until it is determined that the vehicle has traveled approximately a predetermined distance since the second time point at which its location was determined or that the vehicle has arrived at another predetermined point in the road. Once this determination is made, terrain-based localization may be used to localize the vehicle at a third time point. Thus, in some embodiments, instead of continuously comparing the current data (e.g., collected data and / or processed data) to the reference data, the comparison may be performed intermittently at predetermined distance intervals, which may be regular intervals. Alternatively or additionally, terrain-based localization may be performed upon determining that a predetermined time interval has elapsed since the first or previous time point, rather than a predetermined distance interval. During these time / distance intervals, other less computationally intensive localization methods (e.g., dead reckoning) may be used to determine the position of the vehicle. Additionally, although the use of fixed time and / or distance intervals is primarily disclosed herein, it should be understood that the fixed time and / or distance intervals used in determining the location of the vehicle on various road segments may either be constant relative to one another along the various road segments and / or may be variable as the disclosure is not limited in this manner.

[0025] In some cases, employing GNSS instead of dead reckoning may reduce errors related to distances determined during periods when there may be no reliance on road surface positioning, and in some embodiments, GNSS may be used in combination with dead reckoning to further reduce errors related to a given distance, as the disclosure is not so limited.

[0026] In some embodiments, the road segment architecture may segment a given road into a series of road segments of predetermined length (which may be equal to one another in some embodiments), although embodiments are contemplated in which road segments of unequal predetermined length are used. Each road segment may include one or more road surface profiles that may be employed for terrain-based localization as described herein.

[0027] The road surface profile may be obtained, for example, by measuring the vertical motion of a part of the vehicle (e.g., unsprung mass, wheel assembly, sprung mass, body of the vehicle) by using one or more motion-sensing sensors (e.g., accelerometers, displacement sensors, IMUs) attached to one or more points on the vehicle as the vehicle traverses the road segment. Road segments of predetermined equal or unequal length may be referred to as "slices." In some embodiments, consecutive road segments may be arranged in an adjacent manner such that the end point of one road segment coincides or nearly coincides with the start point of a subsequent road segment. In some embodiments, consecutive road segments may be non-overlapping such that the end point of one road segment coincides with the start point of a subsequent road segment. Alternatively, in some embodiments, the road segments may overlap such that the start point of a subsequent road segment may be located within the boundary of the previous road segment. The road segments may be of any suitable length, including, for example, but not limited to, a range between any combination of the following lengths: 20 meters, 40 meters, 50 meters, 60 meters, 80 meters, 100 meters, 120 meters, 200 meters, or more. In some embodiments, the road segments may have lengths between 20 and 200 meters, 20 and 120 meters, 40 and 80 meters, 50 and 200 meters, and / or any other suitable range of lengths. Other lengths longer or shorter than these lengths are contemplated as the disclosure is not so limited. In some embodiments, the length of the road segments into which the road is divided may depend on the type of road and / or the average speed traveled by vehicles on the road or other suitable considerations. For example, on a single lane city road, vehicles may typically travel at a relatively low speed ratio compared to a multi-lane highway. Thus, on city roads (or other roads with relatively low travel speeds), it may be advantageous or otherwise desirable to have relatively shorter road segments (e.g., 20-60 meters) than on highways or other roads with relatively high travel speeds (e.g., 80-120 meters) so that each road segment can correspond to an approximate average travel time from the start point to the end point of the road segment regardless of the average travel speed on the road.

[0028] In some embodiments, the method of localizing a vehicle using a road segment includes measuring a current road surface profile using one or more sensors in the vehicle. The method may also include determining that the vehicle is within a threshold distance of a position or point on the road segment (e.g., from an end of the segment). For example, in some embodiments, determining that the vehicle is within a threshold distance of a road segment end includes estimating the location of the vehicle by GNSS, dead reckoning, and / or any other suitable localization method from a last known vehicle location. The method may also include comparing a reference road surface profile corresponding to a road segment along the vehicle's travel path with a current road surface profile determined at least in part by a system onboard the vehicle during a current traversal of the road segment. In some embodiments, the measured current road surface profile may be compared to the reference road surface profile as the vehicle traverses the road segment, where the current road surface profile and the reference road surface profile have approximately equal (e.g., equal) lengths. The method may include determining a correlation between the current road surface profile and the reference road surface profile, for example, by using a cross-correlation function or another suitable function (e.g., dynamic time warping) that evaluates the similarity between the current road surface profile and the reference road surface profile. The method may also include determining whether the correlation between the current road surface profile and the reference road surface profile exceeds a threshold correlation. The threshold correlation may be pre-determined based at least in part on the road type, as discussed in more detail below. If the correlation exceeds the threshold correlation, the location of the vehicle may be determined to be, for example, an end of a segment. If the correlation does not exceed the threshold correlation, the location of the vehicle may still not be determined, and the method may continue to collect additional current data as the vehicle travels along the road. With the current road surface profile enhanced in this manner, the correlation between the current road surface profile (including the additional data measured while traveling along the road) and the reference road surface profile may be recalculated.It should be noted that when the current data set is augmented in this manner, an appropriate amount of data at the beginning of the data set can be dropped so that the length of road associated with the current road surface profile is equal or effectively equal to the length of road associated with the reference road surface profile.

[0029] As the vehicle approaches a predetermined point (e.g., an end point) in the road, the correlation between the current road surface profile and the reference road surface profile may increase to a peak as a function of the vehicle position. Thus, in some embodiments, the method may include detecting a peak in the correlation between the current road surface profile and the reference road surface profile (determined at multiple locations of the vehicle or continuously) as the vehicle progresses through an area within a threshold distance of a predetermined position of the road segment (e.g., the end point of the segment). Additional details of such peak detection are discussed in more detail below.

[0030] Various embodiments disclosed herein relate to determining a location of a vehicle on a road surface and / or for generating a map of a road segment (including information that can be used to locate a vehicle along the road surface). Based on such information, a relative position of the vehicle with respect to one or more surface features and / or surface regions can be determined.

[0031] As previously noted, access to such a priori information regarding a portion of a road segment may enable effective control of one or more systems in a vehicle (e.g., an automatic and / or semi-automatic system of the vehicle). Accordingly, any of the several embodiments disclosed herein may also provide information (e.g., vehicle, road surface feature characteristics, and / or location, and / or location-specific road surface parameters (e.g., coefficient of friction)) that may be used by one or more vehicles to control one or more vehicle systems. Thus, in some embodiments, one or more systems of a vehicle may be controlled based at least in part on the determined location of the vehicle, dead reckoning, and information regarding one or more characteristics of the road segment (e.g., the profile and coefficient of friction of the road segment). Examples of systems that may be controlled based on a priori road surface information may include a suspension system (semi-active or fully active), a propulsion system, an advanced driver assistance system (ADAS), an electric power steering (EPS), an anti-lock system (ABS), an autonomous vehicle controller, and / or any other suitable type of vehicle system.

[0032] The vehicle controller may include one or more microprocessors. The one or more processors may be configured to execute computer readable instructions stored in a volatile or non-volatile computer readable memory to perform any of the methods disclosed herein. The one or more processors may communicate with one or more actuators associated with various systems of the vehicle (e.g., braking system, active or semi-active suspension system, driver assistance system, etc.) to control activation, motion, or other operating parameters of various systems of the vehicle. The one or more processors may receive information from one or more sensors that provide feedback regarding various parts of the vehicle. For example, the one or more processors may receive location information regarding the vehicle from a Global Navigation Satellite System (GNSS) (such as a Global Positioning System or other positioning system). Sensors on the vehicle may include, but are not limited to, wheel rotation speed sensors, inertial measurement units (IMUs), optical sensors (e.g., cameras, LIDAR), radar, suspension position sensors, gyroscopes, etc. In this manner, the vehicle control system may implement proportional, integral, differential, combinations thereof (e.g., PID control), or other control strategies for the various systems of the vehicle. Other feedback or feedforward control schemes are also contemplated, and thus the disclosure is not limited in this respect. Any desired number of any suitable sensors may be employed to provide feedback information to one or more processors. It should be noted that although the exemplary embodiments described herein may be described with reference to a single processor, any suitable number of processors may be employed as part of the vehicle, as the disclosure is not so limited.

[0033] According to the exemplary embodiments described herein, the one or more processors of the vehicle may also communicate with other controllers, computers, processors on the local area network and / or wide area network or the Internet by using an appropriate wired or wireless communication protocol. For example, the one or more processors of the vehicle may communicate wirelessly by using any suitable protocol, including but not limited to WiFi, GSM, GPRS, EDGE, HSPA, CDMA, and UMTS. Of course, any suitable communication protocol may be employed as the disclosure is not so limited. For example, the one or more processors may communicate with one or more servers from which the one or more processors may access road segment information. In some embodiments, the one or more servers may include one or more server processors configured to communicate with one or more vehicles in two-way communication. The one or more servers may be configured to receive road surface profile information from one or more vehicles and store and / or utilize the road surface profile information to form road segment information. The one or more servers may also be configured to transmit reference road surface profile information to one or more vehicles so that the vehicles may employ terrain-based positioning according to the exemplary embodiments described herein, such that one or more vehicle systems may be controlled or one or more parameters of one and / or more vehicle systems may be adjusted based on the forward-view road surface profile information.

[0034] In various embodiments described herein, in some cases, the method of terrain-based localization may be based on peak detection of cross-correlation between a reference road surface profile and a current road surface profile when the vehicle passes a point in a road segment (e.g., an end point of the segment). In some embodiments, a predetermined length of the current road surface profile approximately equal to the predetermined length of the reference road surface profile may be cross-correlated with the appropriate reference road surface profile when the vehicle enters a threshold range (e.g., between 0 and 1) of a predetermined point in the road (e.g., a road segment end point) to obtain a correlation value. In some embodiments, the threshold range of the predetermined point (e.g., a road segment end point) may be 5 m, 10 m, less than 5 m, and / or any other suitable range. In some embodiments, the threshold range of the road segment end point may be based at least in part on the resolution of the vehicle's onboard GNSS. In such embodiments, the threshold range may be approximately equal (e.g., equal) to the resolution of the GNSS.

[0035] According to some exemplary embodiments described herein, when the vehicle enters within a threshold range of a predetermined point in the road (e.g., a road segment end), a cross-correlation between the current road surface profile and the reference road surface profile may be performed and the correlation value or magnitude may be determined. If the correlation does not exceed the threshold correlation value or magnitude, the vehicle location may be uncertain, and therefore the process of terrain-based localization may be repeated as the vehicle progresses along the road. The correlation may be determined again while the vehicle may be within a threshold range of a predetermined point in the road segment (e.g., a road segment end). The correlation may be determined multiple times, or repeatedly, or substantially continuously (e.g., at each time step). The current road surface profile may be modified to capture more recent data from the vehicle and to drop the oldest data that falls outside of a predetermined length. In some embodiments, the predetermined length may be equal to or less than the length of the current segment. Each time the correlation is determined, it may be determined whether the correlation exceeds the threshold correlation. If the correlation exceeds the threshold correlation at a predetermined time step, it may be determined that the vehicle may be located at the road segment end or other predetermined location on the road segment at that time step. In some embodiments, a peak detection algorithm may be applied to determine whether the correlation between the current road surface profile and the reference road surface profile is a maximum correlation. In some such embodiments, the slope of the correlation may be determined between the most recent time step and an earlier time step. In some embodiments, a peak may be determined where the slope is negative, and the correlation falls off after exceeding a threshold correlation. Of course, any suitable peak detection function may be applied as the disclosure is not so limited. In some embodiments, the threshold correlation may be equal to or greater than 0.6, 0.7, 0.8, 0.9, and / or any other suitable value. In some embodiments, the threshold correlation may be based at least in part on the type of road segment. For example, a highway or freeway may have a higher threshold correlation than a low-speed road where there may be greater variation in the path taken by a vehicle. Following this example, in some embodiments, the threshold correlation for a highway may be equal to or greater than 0.8, and the threshold correlation for a non-highway road may be equal to or greater than 0.5.

[0036] According to exemplary embodiments described herein, the road segment information may be stored in one or more databases onboard the vehicle and / or in one or more remotely located servers and / or databases. In some embodiments, the database may be included in a non-transitory computer-readable memory. In some embodiments, the database may be stored in a memory located exclusively or partially remotely from the vehicle (e.g., "in the cloud"), and the database and the vehicle may exchange information via a wireless network (e.g., a cellular network (e.g., 5G, 4G), WiFi, etc.). Alternatively, in some embodiments, the database may be stored in a non-transitory memory on the vehicle. In some embodiments. The road segments may be specific to the direction of travel, such that for "two-way" roads (i.e., roads that support simultaneous travel in opposite directions), there may be a unique set of road segments for each direction of travel (e.g., a first set of road segments for travel in a first direction and a second set of individual road segments for travel in a second direction).

[0037] As used herein, the term "road surface profile" refers to any suitable description or characterization of a road surface as a function of distance. For example, a road surface profile may refer to a road height profile that describes the variation in height of the surface of the road as a function of distance along a given road segment. Alternatively or additionally, a road surface profile may refer to a mathematically related description of a road surface. For example, a road surface profile may refer to a "road slope" profile that describes the road slope as a function of distance along a road segment. For example, a road surface profile of a road segment may be obtained by measuring the vertical motion (e.g., acceleration data, velocity data, position data, or displacement) of a portion of a vehicle (e.g., relative to a wheel, wheel assembly, or other portion of the unsprung mass of the vehicle; or a portion of the sprung mass of the vehicle) as the vehicle traverses the road segment, and optionally processing this data (e.g., to remove wheel hop effects, etc.) (e.g., by converting this data from the time domain to the distance domain based on the speed of motion, integrating this data with respect to time, and filtering it). For example, if the vertical acceleration of the wheels is measured by using accelerometers attached to the wheels, the vertical velocity of the wheels can be obtained through integration of the acceleration signal, and the vertical height can be obtained through further integration. With knowledge of the vehicle's operating speed (i.e., the speed at which the vehicle traverses the road segment, e.g., in a forward direction), the vertical height can be obtained for the distance traveled. In some embodiments, further filtering can be advantageous. In one example, a road height profile can be obtained from the wheel vertical height data (e.g., determined by measuring the wheel acceleration) by applying a notch filter or low-pass filter (e.g., to the measured vertical acceleration of the wheels) to remove the effects of wheel hop and / or low frequency components. The road surface profile can capture information describing or characterizing discrete road surface anomalies, such as potholes (or other "negative" events) and / or bumps (or other "positive" events). Additionally or alternatively, the road surface profile can capture information about distributed road surface features, such as road roughness and / or road friction.

[0038] According to the exemplary embodiments described herein, if a vehicle travels on a road (or a section of a road) for which no reference road surface profile data is available, reference data (including, for example, a reference road surface profile, a characterization of the surface of the road, and / or the presence of irregular events such as bumps or potholes) may be generated by collecting motion data from one or more motion sensors (e.g., accelerometers, position sensors, etc.) attached to one or more points of the vehicle (e.g., attached to the wheels of the vehicle, the wheel assemblies of the vehicle, a damper, another part of the unsprung mass of the vehicle, or a part of the sprung mass of the vehicle). Data collected from a road or road section (where no usable reference data may be available) may be used to generate the reference data. The reference data may then be stored in a database and associated with a particular road segment of the road or road section. Alternatively, data may be collected from multiple vehicle traverses and merged together (e.g., averaged by using the mean, mode, and / or median of the reference data) to generate the reference data.

[0039] According to example embodiments described herein, the location of the vehicle may be estimated or at least partially determined by an absolute positioning system, such as, for example, a satellite-based system. Such a system may be used, for example, to provide an estimate of the vehicle's absolute geographic coordinates (i.e., geographic coordinates on the Earth's surface, such as longitude, latitude, and / or altitude). Satellite-based systems, commonly referred to as Global Navigation Satellite Systems (GNSS), may include satellite constellations that provide Earth or area-based positioning, navigation, and timing (PNT) services. While the U.S.-based GPS is the most prevalent GNSS, other countries are or have field-tested their own systems to provide complementary or independent PNT capabilities. These include, for example: BeiDou / BDS (China), Galileo (Europe), GLONASS (Russia), IRNSS / NavIC (India), and QZSS (Japan). Systems and methods according to example embodiments described herein may employ any suitable GNSS, as the disclosure is not so limited.

[0040] According to example embodiments described herein, dead reckoning is used to update the location of the vehicle at a point in time after a previously confirmed location of the vehicle by using the vehicle's measured path of travel and / or displacement from a previously confirmed location. For example, the distance and direction of travel may be used to determine a path of travel from the vehicle's known location to determine the vehicle's current updated location. Suitable inputs that may be used to determine a change in the vehicle's location after the vehicle's previously confirmed location may include, but are not limited to, an inertial measurement unit (IMU), an accelerometer, a steering system sensor, a wheel angle sensor, a wheel speed sensor, a relative offset of the measured GNSS location between various times, and / or any other suitable sensor and / or input that may be used to determine the relative motion of the vehicle on the road surface with respect to the vehicle's known location. This overview of dead reckoning may be used with any of the several embodiments described herein to determine the location of a vehicle for use with the methods and / or systems disclosed herein.

[0041] In some cases, a road may include more than one line per direction of travel (e.g., whether the lanes of travel are physically marked (e.g., by lane markers) or not), and each line or lane may have a road surface profile that may differ from line to line. How many lines (e.g., lanes) are in a road or road segment may not be known in the reference database, which may lead to difficulties in generating reference data for a road or road section. For example, if the reference road surface profile for a given road is based on data generated by one or more vehicles traveling in the leftmost line or lane of a multi-lane road, subsequent attempts to use the reference road surface profile to locate (e.g., determine the position of) a vehicle traveling in the rightmost line or lane may fail due to differences in the road surface between the leftmost line or lane and the rightmost line or lane. Thus, knowing both how many tracks or lanes a road has and which tracks a vehicle is traveling in may be desirable for both generating a reference road surface profile and for subsequent positioning in order to use the information to control the vehicle and / or one or more vehicle systems. Previous attempts to determine the track of a road surface profile have created computational challenges, such as data storage for road surface profiles with multi-lane use (e.g., lane changing) that may not be useful for road segment crossings that may occur in a single lane.

[0042] In some embodiments, it may be beneficial to have a road segment organizational structure in which multiple road surface profiles may be associated with a single road segment, which allows multiple road surface profiles to be associated with a road segment in a manner that may be less data- and computationally-intensive.

[0043] In some embodiments, a method for identifying a line (or lane) profile of a road segment includes measuring a road surface profile of the road segment by any suitable on-board sensor (e.g., by employing a vehicle according to an exemplary embodiment described herein) as the vehicle traverses the road segment. A current road surface profile of the road or road segment may be transmitted to a server as the vehicle traverses the road segment, such that multiple vehicles may transmit multiple measured road surface profiles, e.g., of a line or lane of the road, to the server. The method may also include determining whether the number of stored road surface profiles can exceed a threshold number of road surface profiles. The threshold number of road surface profiles can be determined to allow a sufficient number of road surface profiles to be collected prior to data computation. In some cases, the threshold number of road surface profiles can be based on the type of road segment. For example, a highway, such as a freeway, may have a larger threshold number of road surface profiles since a highway typically includes more lanes than a low-speed road. In some embodiments, the threshold number of road surface profiles can be between 2 and 64 road surface profiles, between 8 and 12 road surface profiles, and / or any other suitable number. If the server or data center receives the road surface profiles from the vehicle and the threshold number of stored road surface profiles is not exceeded, the received measured road surface profiles may be stored and associated with the road segment. However, if the threshold number of road surface profiles is reached or exceeded by the received measured road surface profiles, the method may include identifying the two most similar road surface profiles between the measured road surface profiles and the stored road surface profiles. The two most similar road surface profiles may be identified based on a cross-correlation function performed on each pair of road surface profiles and by comparing the degree of similarity values ​​of the results. If the degree of similarity of the two most similar road surface profiles exceeds a predetermined similarity threshold, the two most similar road surface profiles may be merged into a merged road surface profile. If the degree of similarity of the two most similar profiles does not exceed the similarity threshold, the oldest road surface profile may be discarded and the new measured road surface profile may be stored.In this way, similar surface profiles may be retained by the server while outlier surface profiles may eventually be dropped. Once similar surface profiles are merged, information regarding how many surface profiles have been merged into a single merged profile may be maintained as metadata along with more surface profiles in the single merged profile that represent the alignment (e.g. lanes) of the road segment.

[0044] In some embodiments, the degree of similarity may be a value between 0 and 1 that is the output of the cross-correlation function. In some embodiments, the similarity threshold for merging road surface profiles may be greater than or equal to 0.6, 0.7, 0.8, 0.9, and / or any other suitable value. In some embodiments, the similarity threshold may be based at least in part on the type of road segment. For example, a highway or freeway may have a greater threshold correlation than a slower road where there may be more variation in the path taken by a vehicle. Following this example, in some embodiments, the threshold correlation for a highway may be greater than or equal to 0.8, and the threshold correlation for a non-highway road may be greater than or equal to 0.5.

[0045] In some embodiments, if the set of road surface profiles includes a sufficiently large number of road surface profiles (e.g., exceeding a threshold number of road surface profiles), a correlation clustering algorithm may be used on the set of road surface profiles. Many suitable correlation clustering algorithms are known in the art, including, for example, hierarchical or segmental clustering methods (e.g., k-means clustering, c-means clustering, principal component analysis, hierarchical constellation clustering, partitional clustering, Bayesian clustering, spectral clustering, density-based clustering, etc.). Following the correlation clustering process, the set of road surface profiles may be grouped into one or more clusters, where each road surface profile included in a given cluster is substantially similar to each of the road surface profiles included in the given cluster. For example, a set of road surface profiles in a road segment may be divided at least into a first cluster of road surface profiles and a second cluster of road surface profiles, where each road surface profile in the first cluster is generally similar to each other road surface profile in the first cluster, and each road surface profile in the second cluster is generally similar to each other road surface profile in the second cluster. In some embodiments, the similarity of the multiple road surface profiles in each cluster may be more similar to other road surface profiles in the same road cluster compared to the road surface profiles in other clusters as determined by using any suitable comparison method (including, for example, cross-correlation functions described herein). In some embodiments, each cluster may be considered to correspond to a line (or lane) of a road or a road segment that may or may not be marked (e.g., by lane markers). In some embodiments, all of the road surface profiles in a given cluster may be merged (e.g., averaged) to obtain a single-line merged road surface profile.Such merged road surface profiles may serve as reference road surface profiles for a given run within a road segment (e.g., for future terrain-based positioning or future predictive control of a vehicle (e.g., to control one or more vehicle systems based on knowledge of upcoming road features)), and such merged road surface profiles may be stored in an appropriate database and associated with a particular run within a road segment. This merging may be performed for each identified cluster. In some embodiments, the clustering algorithm may be repeated periodically (e.g., after a certain number of new road surface profiles have been collected for a given road segment). Alternatively, the clustering algorithm may be repeated after each new road surface profile is collected to determine which cluster the new profile belongs to.

[0046] In some embodiments, rather than considering each cluster to correspond to a line, only clusters with a number of road surface profiles exceeding a threshold number of road surface profiles may be considered to correspond to a line. A line represents a path taken by a vehicle when traversing a road segment. For example, a cluster containing a single road surface profile or a small number of profiles less than a threshold number of road surface profiles may be considered an outlier rather than a distinct line. An outlier may occur, for example, when a vehicle experiences an atypical event when traversing a road segment (e.g., the vehicle may change lanes within a road segment or may cross some temporary debris or trash on the road that is not normally present). In some embodiments, road surface profiles considered to be outliers may be erased after a predetermined period of time to conserve memory or storage space, not to cause confusion, or for other suitable reasons.

[0047] According to exemplary embodiments described herein, one or more road surface profiles may be merged into a merged road surface profile. In some embodiments, merging two or more road surface profiles may include averaging the two or more profiles. In some embodiments, merging two or more road surface profiles may include considering a range of frequencies where the information provided in the measured road surface profiles is reasonable or sufficiently accurate. In some cases, two or more measured road surface profiles may have an acceptably accurate degree of accuracy within overlapping but non-identical frequency ranges. In such cases, the overlapping portions may be averaged while the non-overlapping portions of data with an acceptably accurate degree of accuracy may be used. A reference profile generated from multiple overlapping but non-identical measured road surface profiles may have a wider frequency range than the individual measured road surface profiles. According to such embodiments, sensors of varying quality and operating frequency ranges may be merged into the merged profile without distorting the merged road surface profile because the most available data from each measured profile may be combined.

[0048] Any suitable technique for merging two or more road surface profiles may be employed as the disclosure is not so limited.

[0049] In some embodiments, tracks associated with consecutive or abutting road segments may be linked in the database. These links may form a directed graph that indicates how tracks on consecutive road segments are visited. For example, a given road may include a first road segment and a second road segment, where the first road segment and the second road segment are consecutive or abutting road segments or road slices. If it is determined that the first road segment includes two tracks (which in some embodiments may correspond to physically marked lanes on a roadway) and the second road segment includes two tracks, each track of the first road segment may be linked in the database to a respective track in the second road segment. This "track linking" may be performed based on historical information: for example, if it is observed that a majority of vehicles (or other suitable threshold) travel from one track (having a first reference road surface profile) in the first road segment to a corresponding track (having a second reference road surface profile) in the second road segment, these tracks may be linked together in a database that includes the road surface profiles of the various road segments. For example, if a vehicle successfully travels from "Line 1" in a first road segment to "Line 1" in a second road segment, Line 1 of the first road segment may be connected to Line 1 in the second road segment. These connections may be used to predict travel such that if a vehicle at a given time is positioned on "Line 1" in the first road segment, it may be assumed, for example, that "the vehicle is likely to continue on "Line 1" in the second road segment." Thus, the vehicle may use the line identifier to prepare and / or control one or more vehicle systems for the upcoming road surface profile in a subsequent road segment or slice.

[0050] In some embodiments, the road surface profile may include additional information regarding vehicle traversals to assist in clustering and / or lane identification according to the exemplary embodiments described herein. For example, in some embodiments, the road surface profile may include an average speed, which may be determined by averaging the speeds of vehicles traversing a road segment when measuring the various measured profiles used to determine the road surface profile. According to such an example, the average speed may assist in lane identification and clustering since lanes may differ in terms of average speed. For example, in the United States, the rightmost lane may have the lowest average speed while the leftmost lane may have the highest average speed. Thus, a first line having a lower or lowest average speed may be associated with the rightmost lane of the roadway, and a second line having a higher or highest average speed may be associated with the leftmost lane of the roadway. Of course, any suitable information, including, for example, optical data or subsurface data, may be collected and employed to identify vehicle lanes of a road segment, as the disclosure is not so limited.

[0051] The "location" or "position" of a vehicle may be expressed in absolute coordinates or may refer to the location of the vehicle relative to a road or road segment. For example, the location or position of a vehicle may also be expressed as a distance relative to a feature of the road (e.g., relative to the start of the road, relative to an intersection, relative to a feature located on the road (e.g., a pothole, an artificial marker, etc.)).

[0052] While particular types of sensors for measuring the road surface profile may be described in some embodiments below, it should be understood that any suitable type of sensor may be used that can directly measure height variations in the road surface or that can measure other parameters related to height variations in the road surface from which height variations may be derived (e.g., acceleration of one or more parts of the vehicle (such as the vehicle's sprung or unsprung mass) as it traverses the road surface) or any other road surface characteristic (e.g., coefficient of friction) may be used as the disclosure is not limited in this manner. For example, inertial measurement units (e.g., (IMU)), accelerometers, displacement detectors, optical sensors (e.g., cameras, LIDAR), radar, suspension position sensors, gyroscopes, and / or any other suitable type of sensor may be used in various embodiments disclosed herein to measure the road surface profile of the road segment the vehicle is traversing as the disclosure is not limited in this manner.

[0053] As used herein, the term "average" may refer to the result of any suitable type of averaging used with any of the parameters, road surface profiles, or other road characteristics associated with various embodiments described herein. This may include averaging of mean values, modes, and / or medians, etc. However, it should be understood that any suitable combination of normalization, smoothing, filtering, interpolation, and / or any other suitable type of data operation may be applied to the data to be averaged prior to averaging, as the disclosure is not limited in this manner.

[0054] As used herein, a "road surface profile" or "road surface features" (in some instances these two terms may be used interchangeably) may correspond to a "line" or a "lane." As used herein, a "line" may be a path taken by one or more vehicles to traverse a length of a road segment. In some embodiments, a "cluster" corresponds to a "line" and / or a "lane" over which two or more measured road surface profiles are averaged. In some embodiments, a "line" corresponds to a physically marked "lane" on a road. In other embodiments, a "line" may not necessarily correspond to a physically marked "lane" on a road.

[0055] Specific non-limiting embodiments are described in further detail with reference to the accompanying drawings. It should be understood that the present disclosure is not limited to the particular embodiments described herein, and that the systems, components, features, and methods described with respect to these embodiments can be used either individually and / or in any desired combination.

[0056] FIG. 1 depicts an embodiment of a road map including a road 100 divided into a set of road segments. As shown in FIG. 1, the road map includes a road 100 and a cross road 101 that intersects the road 100 at one or more locations along the length of the road. For simplicity, the cross road is not shown divided into road segments. In addition, for illustration purposes, a number of buildings 10 are represented by rectangles on the road map. As shown in FIG. 1, a vehicle 150 is traveling on the road 100. The road 100 is decomposed into six road segments in the embodiment of FIG. 1: a first road segment 102, a second road segment 104, a third road segment 106, a fourth road segment 108, a fifth road segment 110, and a sixth road segment 112. In this illustrated example, each road segment 102, 104, 106, 108, 110, 112 has a common length "L" and is associated with at least a start point and an end point. However, segments having unequal lengths and / or segments that include a beginning portion that overlaps with a portion at the end of a previous segment may also be used. Although the beginning and end points shown in FIG. 1 are shown as dashed lines, in some embodiments, the beginning and end points may be single points defined by geographic coordinates. In some embodiments, the beginning point of a given road segment may coincide with the end point of a previous abutting road segment, as shown in FIG. 1. In some embodiments, the length of each road segment may be between 60m and 100m, although road segments of other lengths may be used as discussed herein, as the disclosure is not so limited. Exemplary methods of employing the road segments of FIG. 1 will be discussed further below.

[0057] FIG. 2 depicts a schematic diagram of one embodiment of a vehicle 150. The vehicle 150 may be employed in various methods according to exemplary embodiments described herein. As shown in FIG. 2, the vehicle includes a vehicle control system 151 configured to control one or more systems of the vehicle. In some embodiments, as shown in FIG. 2, the vehicle control system includes one or more processors 152, non-transitory computer readable memory 154 associated with the one or more processors, and a communication module 156. The processor may be configured to execute computer readable instructions that may be stored in the non-transitory computer readable memory to perform various methods described herein and control various systems of the vehicle. The communication module 156 may be a wireless communication module configured to enable the vehicle control system to communicate with remote devices (e.g., other vehicles, servers, the Internet, etc.). The communication module 156 may employ any suitable wireless communication protocol. In some embodiments, the communication module 156 may be configured for one-way or two-way communication with the remote devices such that the communication module may transmit and / or receive information. According to some embodiments, as shown in FIG. 2, the vehicle 150 may include a global navigation satellite system receiver (GNSS receiver) 158 that may be employed to estimate the location of the vehicle, supplemented by using a terrain-based positioning method implemented by a terrain-based positioning system described herein. According to the embodiment of FIG. 2, the vehicle 150 includes wheels 160 and 162 that traverse a road 100 having road features 114. The vehicle 150 includes one or more sensors associated with one or more parts of the vehicle (such as the depicted first sensor 164 and / or second sensor 166 configured to measure the displacement of the wheels to measure the road surface profile of the road 100). For example, the first sensor 164 and the second sensor 166 may be accelerometers configured to measure the motion of, for example, the vehicle body or the wheel assembly. However, different types of sensors associated with different parts of the vehicle may be used to measure the road surface profile as previously described.Regardless of the particular sensor used, the measured information from the sensor may be transmitted to a processor 152 which may aggregate the sensor signals to form a measured road surface profile.

[0058] According to the embodiment of FIG. 2, the vehicle 150 is configured to communicate with one or more remote servers, other vehicles, and / or any other suitable systems via the communication module 156. In some embodiments, as shown in FIG. 2, the communication module 156 may communicate with the server 250 via a network 260 (e.g., a local area network, a wide area network, the Internet, etc.). The communication module may send information (e.g., measured road surface profile information) to the server 250 and may receive information (e.g., reference road surface profile information, road segment information) from the server. The organizational structure of the road segment information received from the server 250 is further discussed with reference to FIG. 3. Although the embodiment of FIG. 2 shows the vehicle communicating with a single server, the vehicle may communicate with any number of servers or other remote devices (e.g., microprocessors) as the disclosure is not so limited. In some embodiments, the server may include a database of road segment information for a road network.

[0059] FIG. 3 depicts a flow chart of an embodiment of a method for localizing a vehicle with a terrain-based localization system utilizing a road segment architecture. In some embodiments, a current road surface profile may be continuously acquired (e.g., by using one or more on-board sensors such as accelerometers) as the vehicle travels along the road. Additionally, a controller controlling one or more systems in the vehicle may be in communication with a database (e.g., on a remote or local server) that stores previously measured and / or processed information regarding a series of road segments. This information may include, for example, (i) end locations (e.g., as shown in FIG. 3 ) of the series of one or more road segments and (ii) at least one reference road surface profile associated with those one or more road segments. Alternatively or additionally, this information may include, for example, (i) locations of predetermined points (not shown in FIG. 3 ) within the series of one or more road segments and (ii) at least one reference road surface profile of at least a portion associated with the one or more road segments.

[0060] In block 300 of the illustrated example of FIG. 3, an approximate location of the vehicle may be determined by using a first positioning system having a first resolution. In some embodiments, this approximate location, which is precise within the resolution of the GNSS employed, may be determined by using the reported GNSS (e.g., GPS) coordinates of the vehicle. Alternatively or additionally, this approximate location may be determined by using dead reckoning (e.g., by using vehicle speed, direction, and / or acceleration or speed integral) relative to the known position of the vehicle. In block 302, the approximate location of the vehicle may be compared to the relative position of a predetermined point of one or more road segments of the road, where the predetermined point may be an end point of the road segment. If it is determined that the vehicle is near (e.g., within a threshold distance of) a previously selected point of any road segment, then the corresponding road segment (i.e., the current road segment on which the vehicle is located) may be selected for comparison. In some embodiments, the vehicle may be considered to be near a predetermined point (e.g., an end point, a midpoint, or other suitable point) within a segment if the approximate location of the vehicle is within a threshold distance of the predetermined point of the road segment. For example, in some embodiments, the threshold distance may be 0.05L, 0.1L, 0.2L, 0.4L, or 0.5L, where "L" is the length of the road segment. Other ranges of threshold distances, longer or shorter, may be utilized, including thresholds provided in terms of absolute lengths as described herein, as the disclosure is not so limited. If it is determined that the vehicle is not within a predetermined distance of any road segment from a predetermined point of the segment (e.g., an end point, a midpoint, or other suitable point), the system may return to step 300 and reapproximate the location of the vehicle during a subsequent or next time step. In some embodiments, the vehicle may reapproximate its position substantially continuously (e.g., every predetermined time step). Alternatively, in some embodiments, the vehicle's position may be reapproximated according to a predetermined interval (e.g., a predetermined time and / or distance interval).

[0061] As shown in the embodiment depicted in FIG. 3, after it is determined in block 304 that the vehicle is within a predetermined distance or other threshold of an end point or other predetermined point of a road segment, the process may include comparing the current road surface profile, either continuously or on multiple occasions, to a reference road surface profile of a road segment of the same or equivalent length as the current road surface profile. In an embodiment in which the predetermined point is an end point, this comparison (e.g., cross-correlation) may be performed for a portion of the road segment that is "L" meters long. In some embodiments, the current road surface profile may be compared to the reference road surface profile continuously or on multiple occasions (e.g., at some time interval (e.g., once every 0.01 seconds, once every 0.1 seconds, once every 0.2 seconds) and / or at some distance interval (e.g., 0.05L, 0.1L, 0.2L, 0.3L, etc.)) while the vehicle is near (e.g., within a predetermined threshold distance of) the road segment end point or other predetermined point, for example. Other time or distance intervals, shorter or longer, may be employed, as the disclosure is not so limited. The length of the road over which the comparison is made may be any suitable length, for example equal to L or the length of the entire road segment or slice or equal to the length of a portion of the road segment.

[0062] In some embodiments, the comparison of the equivalent length of the current road surface profile with the equivalent length of the reference road surface profile may be performed by using a cross-correlation function that may output correlation values ​​at various locations as the vehicle approaches a predetermined point on the road (e.g., a road segment end). In block 306, the time and / or location of maximum correlation between the current road surface profile and the reference road surface profile may be determined (e.g., by using peak detection) as the vehicle approaches the predetermined point on the road (e.g., the end of the segment). In block 308, once the time or location of maximum correlation is determined, it may be assumed that the vehicle is at the predetermined point (e.g., the end) of the road segment. Thus, the precise position of the vehicle along the road at a point in time (e.g., the time of maximum correlation) may be determined to coincide with the predetermined point of the road segment. In optional block 310, further movement of the vehicle after this point in block 308 and prior to identifying the predetermined point of the next road segment may be tracked by using dead reckoning to approximate the position of the vehicle, thus returning the process to block 300 shown in FIG. 3.

[0063] Alternatively, the method may return to block 300 without dead reckoning, as this disclosure is not so limited. In some embodiments, as the vehicle approaches the end of the subsequent road segment, the method of FIG. 3 may be repeated as the vehicle traverses any number of road segments until the vehicle is precisely located at the end of the subsequent road segment or other predetermined point, etc. Thus, the vehicle may be precisely located, for example, each time it crosses a road segment end or other predetermined point. In some embodiments, unique anomalies or road surface features on the road may alternatively or additionally be used as predetermined points for locating the vehicle as it travels along the road.

[0064] In accordance with the embodiment of Figure 3, the method may be performed in some embodiments by a processor configured to execute computer-readable instructions (e.g., stored in a non-transitory memory). For example, the method of Figure 3 may be stored as a series of instructions in a non-transitory computer memory for execution by a processor. In some embodiments, the method of Figure 3 may be performed by a vehicle processor (e.g., see processor 152 in exemplary Figure 2).

[0065] FIG. 4 illustrates a method for terrain-based localization of a vehicle according to an exemplary embodiment as the vehicle travels along a road 100 divided into multiple road segments 102, 104, 106, 108, 110, 112. A point 401 at each time T1-T4, which is typically unknown but shown for clarity, represents the true location of the vehicle. The letter "X" 403 at each time represents the location of the vehicle as approximated by a first localization system (e.g., by GNSS, dead reckoning, or other location approximation system), while the circle around the X represents a potential region of uncertainty (i.e., the range of the actual location as determined by the accuracy of the first localization system). As shown in FIG. 4, the approximated location may differ somewhat from the true location due to resolution limitations of the GNSS or other system. However, the true location of the vehicle does not necessarily lie within the region of uncertainty. Note that "X" is used here to represent a location approximated by GNSS, but could also represent a location approximated by dead reckoning or other first localization method.

[0066] 4, at a first time point represented as T1, in an exemplary embodiment, the location of the vehicle may be approximated as being within the second road segment 104 but not near the end of the second road segment 104 (represented as a dashed line). Thus, in this embodiment, at time T1, the current road surface profile that terminates at the vehicle's current location 401 at T1 may not correlate well with the reference profile of the second road segment 104 (that terminates at the end of the road segment 104). Thus, at time T1, rather than using terrain-based positioning, the location of the vehicle may be continuously or periodically approximated by other less computationally intensive positioning methods (e.g., by GNSS positioning and / or dead reckoning).

[0067] As shown in FIG. 4, at a second subsequent time T2, the vehicle's approximate location (e.g., as reported by using a GNSS receiver) may be determined to be within a predetermined threshold distance from a preselected point in the road (e.g., the end of the second road segment 104). As a result, terrain-based localization may be used to more precisely determine the location of the vehicle than by using, for example, GNSS or dead reckoning. In the embodiment shown in FIG. 4, at T2, terrain-based localization may be performed by comparing appropriate portions of the reference road profile and the current road profile. In FIG. 4, beginning at time T2, L meters before or after the current road profile may be compared (e.g., continuously or periodically) with the reference road profile that terminates at the end of the second road segment. After it is determined that the vehicle is within the threshold distance of the end of the road segment 104, the current road profile may be updated continuously or periodically as the vehicle approaches the preselected point. At various times, a current road surface profile of length L following the vehicle may be updated, and the updated current road surface profile may be compared to an equivalent length reference road surface profile terminating at a preselected point. For example, as shown in FIG 4, in some embodiments, a portion of a predetermined length of the current road surface profile may be compared to a portion of an equivalent length of the reference road surface profile.

[0068] As the vehicle approaches the end of the segment, the correlation between the current road surface profile and the reference road surface profile will increase. Thus, the actual location of the vehicle will coincide with the end of the second road segment 104 (shown as time T3 in FIG. 4) when the correlation between the current road surface profile of length L meters and the reference road surface profile of an equivalent length associated with the road segment reaches a maximum value. Thus, by determining the time and / or position of the vehicle where the current road surface profile and the reference road surface profile show a maximum correlation, or if the correlation exceeds a threshold (e.g., by peak detection and / or correlation threshold), the location of the vehicle along the road 100 can be precisely determined (at least within better accuracy than the first localization system) to coincide with the end of the second road segment 104 at that time (e.g., T3).

[0069] Following this refined determination of the vehicle's location, vehicle positioning may revert to relying on dead reckoning, GNSS, or other methods may then be used to track further movement of the vehicle as shown at T4. This dead reckoning and / or GNSS positioning may continue until the vehicle is determined to be at or sufficiently near another preselected point, such as the end of the next road segment (e.g., the third road segment 106), in which case the process may be repeated for subsequent road segments once the vehicle has traversed any number of road segments.

[0070] 5, it should be noted that the predetermined point in one or more road segments may be a point having a known location other than an end point, and thus the comparison of the current road surface profile to the reference profile may be over an appropriate length that is less than the current road segment length "L".

[0071] FIG. 5 depicts a flow chart of another embodiment of a method for localizing a vehicle by utilizing a terrain-based localization system. At optional block 320, data associated with a plurality of road segments may be acquired (e.g., downloaded), where the data associated with each road segment includes at least one reference road surface profile. In some embodiments, the road segments may be downloaded from a remote server via a wireless network. At block 322, a current road surface profile is determined while traversing at least a portion of the road segment. For example, vertical wheel motion and / or vertical motion of the vehicle body may be measured by using one or more sensors, and the road surface profile may be based on the input of the one or more sensors. At block 324, it is determined whether the vehicle is within a threshold distance of a predetermined point of the road segment (e.g., a road segment end point, midpoint, or other preselected point within the road). This determination may be based on an approximate location via approximate localization techniques (e.g., GNSS and / or dead reckoning relative to a known location of the vehicle). At block 326, the reference road surface profile is compared to an equivalent length of the current road surface profile. For example, the reference road surface profile and the current road surface profile may be cross-correlated to determine a correlation between the reference road surface profile and the current road surface profile. At block 328, it is determined whether the correlation between the road surface profile and the reference road surface profile exceeds a threshold or a threshold magnitude. For example, the correlation (e.g., a number between 0 and 1) may be compared to a predetermined correlation threshold (e.g., 0.5, 0.6, 0.7, 0.8, or 0.9 or greater). If the correlation does not exceed the threshold, the method may continue at block 330 and resume at block 322. If the correlation does exceed the threshold, a location may be determined at block 332 based on the threshold correlation being exceeded. In some embodiments, the method may also include determining whether the correlation is a peak correlation before determining that the "location of the vehicle corresponds to a time or position at which the correlation exceeds the threshold correlation." At optional block 334, one or more systems of the vehicle may be controlled based at least in part on the determined location of the vehicle and / or the road surface profile of the road segment ahead of the vehicle.For example, in some embodiments, a suspension system of the vehicle may be controlled based at least in part on the determined location. In some embodiments, one or more systems may also be controlled based on the position of the vehicle determined by using terrain-based orientation followed by less precise orientation using dead reckoning or GNSS. By using a combination of terrain-based orientation and other less precise orientations such as GNSS or dead reckoning, acceptable overall vehicle orientation accuracy may be achieved while reducing the need for computational resources.

[0072] FIG. 6 is a flow chart of another embodiment of a method for localizing a vehicle with a terrain-based localization system. In particular, the method of FIG. 6 may be employed to localize a vehicle to a position on a particular line of a particular road segment. At optional block 380, a road segment may be obtained that includes a plurality of reference road profiles corresponding to various lines within the road segment. For example, the road segments may be downloaded or otherwise available to the vehicle's on-board processor from a local or remote server. At block 382, ​​a current road surface profile may be determined for at least a portion of the road segment while the vehicle traverses a lane within the road segment. At block 384, the current road surface profile may be compared to each of the reference road surface profiles corresponding to each cluster of the road segment. In some embodiments, the comparison at block 384 may be triggered by the approximate location of the vehicle being within a threshold distance of an end point or a predetermined point, as described herein with reference to other exemplary embodiments. In some embodiments, the comparison at block 384 may be a cross-correlation of the current road surface profile and the reference road surface profile. At block 386, it is determined whether the correlation between the current road surface profile and the reference road surface profile exceeds a threshold correlation. For example, the correlation (e.g., a number between 0 and 1) may be compared to a predetermined threshold correlation (e.g., greater than or equal to 0.5, 0.6, 0.7, 0.8, or 0.9). If the threshold has not been exceeded, the method continues at block 382 and resumes at block 388. If the threshold has been exceeded, then at block 390, a path for the vehicle may be identified based on the threshold correlation between the current road surface profile and a reference road surface profile associated with a particular cluster being exceeded. At optional block 392, one or more systems of the vehicle (e.g., active suspension, semi-active suspension, steering, and / or braking systems) may be controlled based at least in part on the road surface profile information associated with the determined path along which the vehicle is traveling.

[0073] According to the embodiment of Figure 6, the method may in some embodiments be performed at least in part by a remote or on-board processor configured to execute computer-readable instructions stored in a non-transitory memory. For example, the method of Figure 6 may be stored as a series of instructions in a non-transitory computer-readable memory for execution by a processor. In some embodiments, the method of Figure 6 may be performed by a vehicle processor (e.g., see processor 152 in exemplary Figure 2).

[0074] FIG. 7 illustrates a flow chart of another embodiment of collecting multiple road surface profiles for a multi-track road segment for terrain-based orientation. In particular, FIG. 7 illustrates a method of defining a road segment having multiple tracks without explicitly or necessarily running a clustering algorithm to cluster an existing set of road surface profiles. In block 400, a road current profile is determined based on information collected while traversing the road segment. Alternatively, in some embodiments, the method may include obtaining the current road surface profile from a vehicle that transmits measured data to a remote database. In block 402, it is determined whether the number of individual stored road surface profiles exceeds a predetermined threshold number of road surface profiles (e.g., 4-64 road surface profiles). If the threshold is not exceeded, the measured road surface profiles may be stored in block 404. If the threshold is exceeded, the method may include identifying (in block 406) the two (or more) road surface profiles that are most similar to the measured road surface profile and the stored road surface profile. In some embodiments, the two or more most similar road surface profiles may be determined by determining a degree of similarity between each of the road surface profiles and selecting the road surface profile having the greatest degree of similarity. The two most similar road surface profiles may be stored road surface profiles, or may be a measured road surface profile and a stored road surface profile. In block 408, it is determined whether the degree of similarity of the two (or more) most similar road surface profiles exceeds a similarity threshold. For example, the degree of similarity may be determined by using a cross-correlation (e.g., a number between 0 and 1) and may be compared to a predetermined similarity threshold (e.g., 0.5, 0.6, 0.7, 0.8, or 0.9 or more). If the degree of similarity exceeds the threshold, the two (or more) most similar road surface profiles are merged (e.g., averaged) in block 410. If the degree of similarity does not exceed the threshold, the oldest of the set of stored or previously recorded road surface profiles may be discarded in block 412.In some embodiments, the oldest stored road surface profile may be discarded only if it is not a merged road surface profile. In such a case, the oldest unmerged road surface profile may be an outlier. In some embodiments, the oldest merged road surface profile may be discarded as the disclosure is not so limited. In accordance with the embodiment of FIG. 7, the method may be performed by a processor configured to execute computer readable instructions stored in a non-transitory memory in some embodiments. For example, the method of FIG. 7 may be stored as a series of instructions in a non-transitory computer readable memory for execution by a processor. In some embodiments, the method of FIG. 7 may be performed by a server processor (e.g., see server 250 in exemplary FIG. 2).

[0075] The inventors have recognized that, alternatively or additionally, when determining the location of a vehicle, the current road surface profile and the reference road surface profile may be compared continuously or at frequent intervals without incurring significant computational overhead. These road surface profiles may be efficiently compared by calculating a moving correlation between the real-time road surface profile current dataset and a previously collected reference road surface profile dataset at multiple relative alignments of the two datasets. In this continuous correlator method, at a particular point in time, the position of the vehicle may be assumed to be at many potential locations relative to the reference profile. At each of these locations (hereafter referred to as nodes), a moving correlation may be calculated. The node or alignment with the highest correlation may be the best estimate of the vehicle's location within the road segment.

[0076] As the vehicle travels along the road, the stored reference road surface profile data for the road can be accessed by a processor, which can be onboard the vehicle or located at a remote location. An onboard positioning system (e.g., GNSS, or dead reckoning from a previously determined location) can be used to estimate in real time the vehicle's current location relative to the previously determined reference road surface profile.

[0077] 8 shows an example of where the position of a vehicle relative to a reference road surface profile is shown at various time steps. The solid line 500 represents a previously collected reference road surface profile, while the dotted lines 502a, 502b, 502c, and 502d represent the true location of the vehicle (not shown) at four different points at time T=k, k+1, k+2, k+3, respectively, as the vehicle travels along the road. The vehicle may also use on-board sensors to determine the current road surface profile in real time.

[0078] In FIG. 9, dotted lines 510a, 510b, 510c, and 510d represent current road surface data that may be obtained in real time by using on-board sensors when a vehicle (not shown) is at locations 502a, 502b, 502c, and 502d. The current road surface profile that may follow the vehicle may be stored in a buffer on-board the vehicle or at a remote location. In some embodiments, the buffer may be, for example, a buffer of length N (e.g., N=500). As the vehicle travels along the road, at each time step, new road surface measurements may be added to the buffer and the oldest measurements in the buffer may be discarded. Buffers with N in the range of 300 to 700 may also be used. Values ​​of N both greater than and less than the above ranges are contemplated as the disclosure is not so limited.

[0079] In the example shown in Figure 9, a correlation coefficient may be determined at each time step (T = k, k+1, k+2 and k+3) between the current road surface profile (510a-510d) and a corresponding segment of equivalent length of the reference road surface profile 500. If the position of the vehicle at each time step is precisely known, the correlation coefficient so determined will be high and may approach or be equal to 1 or 100%. In some embodiments, the magnitude of the correlation coefficient may be used as an indicator of the accuracy of the vehicle's current position.

[0080] The example shown in Figure 10 is a duplicate of Figure 9, except that in this case the vehicle's position is not precisely known. The range of uncertainty in the vehicle's position is represented by rectangles 520a, 520b, 520c, and 520d at time steps T = k, k+1, k+2, and k+3, respectively. In the example of Figure 10, the vehicle's location is indicated as a range rather than a hard point, as in the example of Figure 9. In some embodiments, the approximate position of the vehicle may be determined by a GNSS system or a dead reckoning system, and the ranges 520a-520d may represent typical measurement errors of the GNSS or dead reckoning errors, or confidence windows from a Kalman filter, or the like.

[0081] 10, for example, at time step T=k, the magnitude of the correlation coefficient between the current road surface profile 510a and the corresponding portion of the reference road surface profile 500 will depend on the estimated position of the vehicle within the uncertainty range 520a. Thus, at any given time step, the estimated position of the vehicle within the uncertainty range will determine the alignment of the current road surface profile data with the corresponding portion of the reference road surface profile data.

[0082] In some embodiments, since the precise location of the vehicle within the uncertainty range may not be known, multiple correlation coefficients may be determined for a given current road surface profile (510a-510d) by assuming that the vehicle is at various points within the uncertainty range. For example, as shown in FIG. 11, at time step T=k where the vehicle is determined to be within the uncertainty range 520a (e.g., based on using a GNSS or other suitable positioning system), the vehicle may be assumed to be at any one of eight different locations 530a, 530b, 530c, 530d, 530e, 530f, 530g, and 530h. In the embodiment of FIG. 11, the assumed locations at any time step (T=k, k+1, k+2, and k+3) may be distributed throughout the uncertainty range. They may be distributed uniformly, randomly, according to a suitable probability distribution, etc. FIG. 11 shows a uniform distribution of potential locations of the vehicle at time steps T=k to T=k+3. The number of possible locations of the vehicle within the uncertainty range can be greater than or equal to 3 and less than or equal to 20. Of course, both greater and lesser numbers of possible locations are also contemplated as the disclosure is not so limited.

[0083] In the embodiment shown in FIG. 11, the same current road surface profile 510a (eg, recent current road surface profile data) may be correlated with a portion of the reference road surface profile 500 (which is of equal length but trails behind the assumed vehicle positions 530a-530h).

[0084] FIG. 12 shows an example distribution of correlation coefficients 540a-540d for the uncertainty ranges 520a-520d, respectively. A single correlation coefficient (triangle) corresponds to each correlated alignment point determined in the inferred position of the vehicle relative to the reference profile 500. In the example shown in FIG. 12, the distribution of coefficients forms a circular curve with a peak. The location of the maximum of this curve may represent the best (highest correlated) alignment between the real-time current road surface profile 510a and the previously collected reference profile 500, and therefore may be used on a continuous or near continuous basis as a real-time positioning signal to determine the position of the vehicle relative to the reference profile.

[0085] In some embodiments, a peak value close to 1 or 100% may represent a good match between the current and previously determined reference data indicating the vehicle's likely location. However, if the value begins to drop significantly, the value may indicate a less reliable localization. For example, if a road is, for example, repaved, or if the vehicle changes lanes, a lower value peak may occur, and thus the previously collected reference profile may no longer be appropriate for active control of various vehicle systems, such as active suspension, propulsion, steering, or braking.

[0086] If separate road surface profiles have been collected or are available for various lanes or lines of a road or road segment, then a continuous correlator embodiment may be used to process multiple profiles simultaneously. In such a case, the highest peak correlation among the various lanes or lines may correspond to the lane in which the vehicle is traveling and for which the road surface profile is currently being determined. If the vehicle changes lanes from a first lane or line to a second lane or line, the peak in the first lane or line may begin to drop while the correlator peak for the other lane may begin to rise. This behavior may be used not only as an indicator that a lane change has occurred but also to determine which lane the vehicle is changing into.

[0087] Thus, the methods disclosed herein for continuous longitudinal localization ("one-dimensional continuous correlation") may be extended to allow for some degree of lateral localization continuous correlation ("two-dimensional continuous correlation"). When performing only one-dimensional localization, a moving measure of correlation may be maintained at various longitudinal locations or positions along a reference road surface profile. To extend this to allow for lateral localization, similar measures of correlation may be maintained not only along a single road surface profile, but for other road surface profiles representing various lanes or lines on a given road segment. By maintaining moving correlations for multiple potential lanes or lines on a given road or road segment, the most likely lateral position of the vehicle may be identified as the one having the highest peak correlation.

[0088] Because the number of correlation calculations grows with the number of lateral lines or lanes, the computational load can increase significantly on roads with many lanes or lines. To reduce this load, once the vehicle's current lane is identified, correlation calculations for lateral lines that are not laterally adjacent to the current lane can be suspended.

[0089] A lane change may be identified by detecting that the peak correlation has dropped in what was previously identified as the current lane / line and that the peak correlation may be rising in a different line or lane. When this occurs, the lane / line previously considered to be an adjacent line may also change so that future lane changes may also be detected.

[0090] A naive implementation of a continuous correlator may require a large number of calculations. The formula for the correlation coefficient between vectors a and b of length n can be determined by using the following formula:

number

[0091] This may require approximately 6n operations. In some embodiments, the value of n may be greater than or equal to 200 and less than or equal to 1000. Values ​​of n greater than or equal to the above ranges are contemplated as the disclosure is not so limited. If n=500, a single correlation coefficient calculation may require approximately 3000 operations.

[0092] In some embodiments of the continuous correlator, a large number of coefficients may need to be recalculated at each time step. The number of coefficients required may depend on the size of the uncertainty window and the desired distribution density. The number of coefficients may be between 10 and 100. Both numbers of coefficients larger and smaller than the above range are contemplated as the disclosure is not so limited. A number of coefficients of 50 would scale the number of operations up to 150,000 operations per update. In some embodiments, with such a number of operations per update, updates at 50 Hz or 100 Hz may not be feasible on some microprocessors.

[0093] In some embodiments, the computational load may be reduced by replacing the naive correlation coefficient with a moving calculation. This may be accomplished by replacing each of the three sums in the above formula with a moving average. The formula that may be utilized is as follows:

number

[0094] A downside to using moving averages can be that each moving average requires memory to store a buffer of length 'n', which can result in a need for more memory for 3n points per coefficient or a total of 75,000 points.

[0095] In some embodiments, the computational load may also be reduced by replacing the moving average with an infinite impulse response (IIR) filter. The moving average may be thought of as a finite impulse response low-pass filter. In some embodiments, the moving average may be approximated by a first or second order Butterworth low-pass filter.

[0096] As a result, the equation for each correlation coefficient can be determined by the following formula:

number

[0097] With a first order Butterworth, the storage requirements can be reduced to a single value per filter for a total of 450 points (reduced from 75,000). This improvement comes at the cost of a minor increase in computation to approximately 20 operations per update.

[0098] Regardless of whether a moving average or an IIR filter is used for the correlation calculation, a warm-up period may be required to either fill the moving average buffer or to allow IIR filter transients to settle. During this period, the continuous correlator output may be noisy or unreliable. This warm-up period may last several seconds (e.g., 0.1 to 5 seconds).

[0099] In the example shown in FIG. 12, the correlation nodes are uniformly distributed within the uncertainty range. In some embodiments, the distribution may change over time. For example, initially, e.g., during startup of a continuous correlator, the nodes may be uniformly distributed throughout the uncertainty range but with fairly wide spacing between nodes to limit the number of nodes (and thus the computational limitations). As the correlator warms up, it may begin to determine the location of the vehicle more precisely. In this case, nodes far away from the peak correlation may be dropped and new nodes may be added near the peak to improve the localization resolution.

[0100] In some embodiments, the correlation peak may drift over time relative to the node due to inaccuracies (e.g., in dead reckoning.) As the correlation peak drifts, nodes may be removed from one side of the peak and added to the other side of the peak to recenter the correlation peak relative to the node.

[0101] In some embodiments, the warm-up process for new nodes may be accelerated by initializing their state by using their nearest neighbors. The localization resolution may also be further improved by fitting a quadratic curve to the correlation coefficient curve and finding the peak of the resulting parabola. In this way, the peak may be estimated even if it is between two correlated nodes rather than directly located at one of the nodes.

[0102] In some embodiments, the road surface profile may be filtered (e.g., by using a bandpass filter) prior to calculating the correlation coefficient, which may be applied to both the current and previously collected reference profiles.

[0103] The continuous correlator described herein compares a real-time or current profile to a previously collected profile. In some embodiments, a real-time pre-profile may be compared to a real-time post-profile. This comparison may be used as a diagnostic to ensure that the road is presumed to be the same on both axles. This comparison is also used to estimate the true vehicle speed by using the known distance between the front and rear axles.

[0104] A continuous correlator can be used to quickly detect a drop in profile similarity before the next line is reached during a lane change, thus allowing algorithms that control various vehicle systems that rely on localization to decay or fail more quickly. In some embodiments, dynamically placed nodes provide greater flexibility depending on the level of localization uncertainty or desired localization resolution, which can be beneficial at low speeds.

[0105] The above embodiments of the technology described herein may be implemented in any of a myriad of ways. For example, some embodiments may be implemented using hardware, software, or a combination thereof. When implemented in software, the software code may be executed on any suitable processor or collection of processors, whether provided in a single computer or distributed among multiple computers. Such a processor may be implemented as an integrated circuit with one or more processors in an integrated circuit component (including commercially available integrated circuit components known in the art by names such as CPU chips, GPU chips, microprocessors, microcontrollers, or coprocessors). Alternatively, the processor may be implemented in custom circuitry such as an ASIC, or in semi-custom circuitry resulting from the construction of programmable logic devices. As a further alternative, the processor may be part of a larger circuit or semiconductor device, whether commercially available, semi-custom, or custom. As a specific example, some commercial microprocessors have multiple cores such that one or a subset of those cores may constitute a processor. However, the processor may be implemented using circuitry in any suitable format.

[0106] Further, it should be understood that a computer may be embodied in any of many forms, such as a rack-mounted computer, a desktop computer, a laptop computer, or a tablet computer, etc. In addition, a computer may be embedded within a device not generally considered to be a computer, but having suitable processing capabilities, including a personal digital assistant (PDA), a smart phone, or any other suitable portable or fixed electronic device.

[0107] A computer may also have one or more input / output devices. These devices may be used specifically to present a user interface. Examples of output devices that may be used to provide a user interface include a printer or display screen for visual presentation of output, and a speaker or other sound generating device for audible presentation of output. Examples of input devices that may be used for a user interface include keyboards and pointing devices (such as mice, touch pads, and digitizing tablets). As another example, a computer may receive input information via speech recognition or in other audible formats.

[0108] Such computers may be interconnected by one or more networks of any suitable type, including a local area network or a wide area network (such as an enterprise network or the Internet). Such networks may be based on any suitable technology and operate according to any suitable protocol, and may include wireless networks, wired networks, or fiber optic networks.

[0109] Also, the various methods or processes outlined herein may be coded as software executable on one or more processors employing any one of a wide variety of operating systems or platforms. In addition, such software may be written using any of a number of suitable programming languages ​​and / or programming or scripting tools, and compiled as executable machine code or intermediate code that runs on a framework or virtual machine.

[0110] In this regard, the embodiments described herein may be embodied as a computer-readable storage medium (or multiple computer-readable media) (e.g., a computer memory, one or more floppy disks, compact disks (CDs), optical disks, digital video disks (DVDs), magnetic tapes, flash memories, circuitry in field programmable gate arrays or other semiconductor devices, or other tangible computer storage media) encoded with one or more programs that, when executed on one or more computers or other processors, perform methods to implement the various embodiments discussed above. As is evident from the foregoing examples, a computer-readable storage medium may retain information for a sufficient time to provide computer-executable instructions in a non-transitory form. Such computer-readable storage medium or media may be portable such that a program or programs stored thereon may be loaded onto one or more different computers or other processors to implement various aspects of the present disclosure as discussed above. As used herein, the term "computer-readable storage medium" encompasses only non-transitory computer-readable media that may be considered to be an article of manufacture (i.e., an article of manufacture) or a machine. Alternatively or additionally, the present disclosure may be embodied as a computer-readable medium other than a computer-readable storage medium, such as a propagating signal.

[0111] The terms "program" or "software" are used herein in a general sense to refer to any type of computer code or any set of computer-executable instructions that may be employed to program a computer or other processor to implement various aspects of the present disclosure as discussed above. In addition, it should be understood that "according to one aspect of this embodiment, one or more computer programs that, when executed, perform the methods of the present disclosure need not reside on a single computer or processor, but may be distributed in a modular manner among many different computers or processors to implement various aspects of the present disclosure."

[0112] Computer-executable instructions may be in many forms, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically the functionality of the program modules may be combined or distributed as desired in various embodiments.

[0113] Also, the data structures may be stored within the computer-readable medium in any suitable format. For simplicity of illustration, the data structures may be shown as having fields that are related through locations within the data structure. Such relationships may also be realized by allocating storage of the fields with locations within the computer-readable medium that convey the relationships between the fields. However, any suitable mechanism may be used to establish relationships between information within the fields of the data structure, including through the use of pointers, tags, or other mechanisms that establish relationships between data elements.

[0114] Various aspects of the disclosure may be used alone, in combination, or in a wide variety of configurations not specifically discussed in the embodiments described above, and therefore are not limited in their application to the details and arrangements of parts set forth in the foregoing specification or illustrated in the accompanying drawings. For example, aspects described in one embodiment may be combined in any manner with aspects described in other embodiments.

[0115] Also, the embodiments described herein may be embodied as methods, examples of which are provided. The acts performed as part of a method may be ordered in any suitable manner. Thus, even if shown as sequential acts in an example embodiment, embodiments may be constructed in which the acts are performed in a different order than shown, and which may include performing some acts simultaneously.

[0116] Additionally, certain actions are described that are taken by a "user." It should be recognized that a "user" need not be a single individual, and that in some embodiments actions attributed to a "user" may be performed by an individual and / or a team of individuals working in conjunction with computer-assisted tools or other mechanisms.

[0117] While the present teachings have been described in conjunction with various embodiments and examples, it is not intended that the present teachings be limited to such embodiments or examples. On the contrary, the present teachings encompass various alternatives, modifications, and equivalents, as will be recognized by those skilled in the art. Accordingly, the foregoing description and drawings are for illustrative purposes only.

Claims

1. 1. A method for precisely determining a current location of a vehicle traveling along a road, the method comprising: traveling, by the vehicle, along a first road segment to arrive at the current location of the vehicle; receiving a current road surface profile of the first road segment, the first road segment terminating at the current location of the vehicle; determining, by a location system, that the current location of the vehicle is within an area of ​​uncertainty of the location system; obtaining, from a data storage system, reference road surface profiles for a number of road segments, each of the number of road segments being equal in length to the first road segment, and each of the number of road segments having an end point located within the area of ​​uncertainty; comparing each of the plurality of reference road surface profiles with the current road surface profile; and determining a precise current location of the vehicle based at least in part on the comparison; A method comprising:

2. 2. The method of claim 1, wherein the plurality of nodes is greater than two but less than twenty.

3. 3. The method of claim 1 or 2, wherein the comparing involves calculating a magnitude of correlation between each pair of road surface profiles, each pair including one of the multiple reference road surface profiles and the current road surface profile.

4. 4. The method of claim 3, further comprising determining a maximum value of the calculated correlations and determining a precise current location of the vehicle that is the segment end point associated with the correlation with the maximum value.

5. The method of claim 1 , wherein each reference road surface profile is based at least in part on crowd-sourced data.

6. The method of claim 1 or 2, wherein said comparing involves using a moving average of said current and / or reference data sets.

7. The method of claim 1 or 2, wherein said comparing involves applying a filter to said current and / or reference data sets.

8. The method of claim 7 , wherein the filter is an IIR filter.

9. 3. The method of claim 1 or 2, wherein the current road surface profile and the first reference road surface profile include an equal number of data points, and the comparing step includes determining the degree of similarity between the first reference road surface profile and the current road surface profile based at least on a moving average of the squares of the data points in each of the first reference road surface profile and the current road surface profile.

10. 1. A method for determining a current position of a vehicle relative to a road segment during a current traverse of said road segment, comprising: (a) receiving a current road surface profile of a portion of a first road segment during the current traverse of the first road segment terminating at the current location of the vehicle, the current road surface profile data being collected at least in part by sensors onboard the vehicle; (b) receiving a pre-recorded road surface profile of a second road segment, the second road segment being longer than the first road segment; (c) determining a magnitude of correlation of multiple of the first road segments in (a) with multiple subsets of the second road segments in (b); and (d) determining the current position of the vehicle relative to the second road segment based on the comparison of the at least two magnitudes in (c). A method comprising:

11. 1. A method of localizing a vehicle, the method comprising: obtaining an approximate location of the vehicle; determining that the approximate location is within a threshold distance of a predetermined point on a first road segment of a series of road segments, the first road segment being associated with a first reference road surface profile; and comparing the current road surface profile with the first reference road surface profile, and determining a first time point at which the vehicle will be found at the predetermined point on the first road segment based on the comparison of the current road surface profile with the first reference road surface profile, thereby orienting the vehicle to the predetermined point on the first road segment at the first time point. A method comprising:

12. The method of claim 11 , wherein obtaining the approximate location of the vehicle is based at least in part on a Global Navigation Satellite System (GNSS) location of the vehicle.

13. The method of claim 11 , wherein obtaining the approximate location of the vehicle is based at least in part on dead reckoning.

14. The method of claim 11 , further comprising obtaining, for each road segment: a predetermined point location of the respective road segment; and a reference road surface profile of the respective road segment.

15. The method of claim 14 , further comprising using dead reckoning to track further movement of the vehicle after the first time point.

16. 16. The method of any one of claims 11 to 15, further comprising generating the current road surface profile.

17. The method of claim 16 , wherein generating the current road surface profile includes measuring vertical movement of one or more portions of the vehicle as the vehicle operates.

18. 18. The method of claim 17, wherein generating the current road surface profile further comprises filtering the current vertical motion to remove the effects of wheel hop.

19. 19. The method of any one of claims 11 to 18, wherein generating the current road surface profile further comprises differentiating the current vertical motion with respect to time or distance.

20. 20. The method of any one of claims 11 to 19, wherein generating the current road surface profile further comprises transforming the current vertical movement from the time domain to the distance domain.

21. 21. The method of claim 11, wherein the comparison of the current road surface profile with the first reference road surface profile is made in response to a determination that the approximate location is within a threshold distance of the predetermined point of the first road segment.

22. 21. The method of any one of claims 11 to 20, wherein the predetermined point is not an end point.

23. 1. A method of determining a location of a vehicle while the vehicle is traveling along a road, the method comprising: (a) using a first vehicle location system to determine whether the vehicle is traveling within a predetermined threshold distance of a predetermined point within the roadway; (b) traveling within the predetermined threshold distance from a predetermined point within the road; (c) determining the location of the vehicle by using a second location system during step (b). Including; The method, wherein the second localization system is a terrain-based localization system, and the second localization system is more precise than the first localization system.

24. 24. The method of claim 23, wherein the first vehicle positioning system is selected from the group consisting of a GNSS and a dead reckoning system.

25. 25. A method according to claim 23 or 24, wherein the predetermined points are selected from the group consisting of end points and midpoints of the road segments.

26. Step (c) comprises: obtaining multiple road surface profiles terminating at multiple locations of the vehicle on the road; comparing each of the multiple road surface profiles with a reference road surface profile terminating at the predetermined point within the road; determining that a peak correlation of the comparison is greater than a predetermined value; 26. A method according to any one of claims 23 to 25, comprising determining that the vehicle was effectively at the predetermined time when the road surface profile associated with the peak correlation was acquired.

27. 1. A method of determining a location of a vehicle while the vehicle is traveling along a road, the method comprising: receiving a reference road surface profile for the road from a database; using a first localization system to estimate a current location of the vehicle relative to the reference road surface profile, the first localization system having an area of ​​uncertainty; receiving a current road surface profile based at least in part on data from sensors on the vehicle, the current road surface profile terminating at a current position of the vehicle and being shorter than the reference road surface profile; selecting multiple segments of the reference road surface profile that are equal in length to the current road surface profile and that terminate within the area of ​​uncertainty, the terminations of the multiple segments being distributed within the area of ​​uncertainty; comparing the current road surface profile with each of the multiple segments; identifying the segment with the best correlation value; and determining that the end point of the segment of the road surface profile associated with the best correlation value is the location of the vehicle when the best correlation value is greater than a predetermined threshold; A method comprising:

28. 28. The method of claim 27, wherein the first vehicle positioning system is selected from the group consisting of a GNSS and a dead reckoning system.

29. 29. A method according to claim 27 or 28, wherein the ends of the multiple segments are uniformly distributed within the area of ​​uncertainty.

30. 1. A method of determining a location of a vehicle while the vehicle is traveling along a road, the method comprising: determining, based on data from a first vehicle location system, that the vehicle is traveling within a predetermined threshold distance of a predetermined point within the roadway; determining a location of the vehicle using a second location system while traveling within the predetermined threshold distance from a predetermined point within the roadway; Including; The method, wherein the second localization system is a terrain-based localization system, the second localization system being more precise than the first localization system.

31. 31. The method of claim 30, wherein the first vehicle positioning system is selected from the group consisting of a GNSS and a dead reckoning system.

32. 32. A method according to claim 30 or 31, wherein the predetermined points are selected from the group consisting of end points and midpoints of the road segments.