Robust odometer architecture and method

By combining data correction methods from wheel rotation sensors and IMUs, the problems of pulse loss, drift, and delay in vehicle odometers during stopping and moving are solved, achieving accurate mileage estimation and making it a robust odometer system suitable for autonomous or semi-autonomous driving and parking functions.

CN120991901APending Publication Date: 2025-11-21GM GLOBAL TECHNOLOGY OPERATIONS LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410964364.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-05-20
Filing Date
2024-07-18
Publication Date
2025-11-21

AI Technical Summary

Technical Problem

Existing odometer systems suffer from pulse loss, drift, and delay issues when the vehicle is stopped or moving, resulting in inaccurate mileage estimation, especially in autonomous or semi-autonomous driving and parking functions.

Method used

By combining data from multiple sensors, including wheel rotation sensors and inertial measurement units (IMUs), mileage data is corrected and compensated. This includes using different sensor data for correction when the vehicle is stopped, integrating IMU data to compensate for missing pulses, using a transformation matrix to compensate for delays, adjusting the position origin to prevent calculation inaccuracies, and arbitrating and compensating sensor data to provide accurate mileage information.

Benefits of technology

It enables precise correction of mileage data during vehicle stop and movement, improving the accuracy and stability of mileage estimation. It is suitable for autonomous or semi-autonomous driving and parking functions, providing a robust odometer system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120991901A_ABST
    Figure CN120991901A_ABST
Patent Text Reader

Abstract

A robust odometer architecture and method. A vehicle includes a plurality of sensors and one or more controllers co-programmed to execute instructions to: estimate a mileage of the vehicle based on sensor data from the plurality of sensors to produce a plurality of mileage estimates; monitoring the integrity of one or more of the sensors; correcting sensor data from one or more of the plurality of sensors to provide corrected sensor data; compensating the corrected sensor data to provide compensated data; and using the compensated data to provide at least one of vehicle range, vehicle status, and timestamp information.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] introduction

[0002] This disclosure pertains to the field of vehicle odometers.

[0003] Robust systems for mileage estimation will be helpful for various vehicle functions, including autonomous or semi-autonomous driving and autonomous parking. Summary of the Invention

[0004] A ranging method for a wheel-driven vehicle is provided via one or more controllers, the wheels having wheel rotation sensors that provide pulses as the wheels rotate, and the vehicle having an inertial measurement unit (“IMU”). The method includes estimating the vehicle’s mileage, at least in part, based on sensor data from the wheel rotation sensors to provide mileage data. Additionally, the method includes correcting the sensor data from the wheel rotation sensors to provide corrected data by one or more of the following: correcting the sensor data using data from a different sensor than the wheel rotation sensors when the vehicle is confirmed to be stopped; compensating for missing pulses from the wheel rotation sensors by integrating past IMU data to compensate for missing pulses in a scenario where the vehicle is moving from a stop to a move; compensating for drift in the sensor data from the wheel rotation sensors by using the past position of the wheels as the current position of the wheels in a scenario where the vehicle is moving from a stop; and compensating for delays between wheel speed calculations using pulses from the wheel rotation sensors using a transformation matrix.

[0005] In distance measurement methods, the confirmed stop can be confirmed using the vehicle's gear indicator, such as an indicator showing the vehicle is in park. Different sensors can be IMUs (Insulated Units).

[0006] A second ranging method for a vehicle is provided via one or more controllers. The second ranging method includes estimating the vehicle's mileage based on sensor data from multiple sensors to generate multiple mileage estimates. The method further includes processing the sensor data by one or more of the following to provide the processed sensor data: compensating for calculation inaccuracies by adjusting a first position origin of the vehicle maintained in one or more controllers; compensating for calculation inaccuracies by adjusting a second position origin provided by one or more controllers to an external user for mileage calculation; and adjusting the operating mode of the ranging method and the relative mileage output from the ranging method based on a predetermined number of past and current states of the ranging method. The method also includes using the processed sensor data to provide at least one of vehicle mileage, vehicle status, and timestamp information as output from one or more controllers.

[0007] In the second ranging method, floating-point numbers can be used to estimate the vehicle's mileage. Furthermore, these floating-point numbers can be 32-bit single-precision numbers.

[0008] A vehicle includes multiple sensors. The vehicle also includes one or more controllers jointly programmed to execute the following instructions: estimate the vehicle's mileage based on sensor data from the multiple sensors to generate multiple mileage estimates; monitor the integrity of one or more of the sensors; correct the sensor data from one or more of the multiple sensors to provide corrected sensor data; arbitrate and compensate the corrected sensor data to provide compensated data; and use the compensated data to provide at least one of vehicle mileage, vehicle status, and timestamp information.

[0009] Instructions for monitoring the integrity of one or more sensors may include instructions for monitoring one or more sensors for sensor failure. Instructions for monitoring the integrity of one or more sensors may include instructions for testing the convergence of multiple mileage estimates. Instructions for monitoring the integrity of one or more sensors may include instructions for testing outliers in multiple mileage estimates. Instructions for monitoring the integrity of one or more sensors may include instructions for testing the rationality of estimates for one or both of the vehicle's longitudinal and lateral rates. Instructions for monitoring the integrity of one or more sensors may include instructions for testing the rationality of estimates for the vehicle's yaw rate.

[0010] The vehicle can be driven by its wheels. Rotational position sensors can provide data on the rotational position of the wheels. Instructions for correcting data from one or more of the sensors may include, upon confirming that the vehicle has stopped, using data from a sensor different from the wheel rotational sensors to determine the vehicle's mileage. This different sensor may be an IMU (Integrated Measurement Unit).

[0011] Furthermore, the rotational position sensor can sense wheel rotation by providing pulses as the wheel rotates. Additionally, the vehicle may have an IMU (Integrated Device Unit). Instructions for correcting data from one or more of the sensors may include instructions for compensating for missing pulses from the wheel rotation sensor in a scenario where the vehicle is moving from a standstill to a moving state, by integrating past IMU data to compensate for missing pulses.

[0012] In a vehicle, a rotational position sensor can provide rotational position data of the wheels. Instructions for correcting data from one or more sensors can include instructions for compensating for drift in wheel speed sensor data by using the past position of the wheels as the current position of the wheels in scenarios where the vehicle is moving or stopping.

[0013] Furthermore, in a vehicle, instructions for correcting data from one or more sensors may include instructions for using a transformation matrix to compensate for delays between wheel speed calculations using pulses from wheel speed sensors.

[0014] Furthermore, in the vehicle, instructions for arbitrating and compensating for correction data may include compensation to prevent floating-point calculation inaccuracies by adjusting the vehicle's internal position origin maintained in one or more controllers. Instructions for arbitrating and compensating for correction data may additionally or alternatively include instructions for adjusting the external position origin to compensate for rollover.

[0015] The mileage estimate may include a relative mileage estimate; and the instructions for arbitrating and compensating for the correction data may include instructions for adjusting the odometer operating mode and relative mileage output based on the previous state of a predetermined number of odometers and the current state of the odometers.

[0016] This application provides the following technical solution:

[0017] 1. A distance measurement method for a wheel-driven vehicle, the wheel having a wheel rotation sensor that provides pulses as the wheel rotates, the vehicle having an inertial measurement unit (“IMU”), the method comprising:

[0018] Through one or more controllers:

[0019] The vehicle's mileage is estimated, at least in part, based on sensor data from wheel rotation sensors to provide mileage data;

[0020] The sensor data from the wheel rotation sensor is corrected using one or more of the following methods to provide corrected data:

[0021] When the vehicle is confirmed to be stopped, data from a different sensor than the wheel rotation sensor is used to correct the sensor data.

[0022] In the scenario of a vehicle coming to a stop and moving, missing pulses from the wheel rotation sensor are compensated by integrating past IMU data to compensate for missing pulses.

[0023] In scenarios where the vehicle is moving or stationary, drift in the sensor data is compensated by using the past position of the wheels as their current position; and

[0024] A transformation matrix is ​​used to compensate for the delay between wheel speed calculations using pulses from wheel rotation sensors.

[0025] 2. The ranging method according to technical solution 1, wherein:

[0026] Confirm the stop using the vehicle's gear indicator; and

[0027] The different sensor is the IMU.

[0028] 3. The distance measurement method according to technical solution 2, wherein the gear indicator indicates that the vehicle is in parking gear.

[0029] 4. A distance measurement method for vehicles, comprising:

[0030] Through one or more controllers:

[0031] The vehicle's mileage is estimated based on sensor data from multiple sensors to generate multiple mileage estimates;

[0032] To provide processed sensor data, sensor data from at least a subset of multiple sensors is processed by one or more of the following:

[0033] Compensation is provided to prevent calculation inaccuracies by adjusting the vehicle's first position origin maintained in one or more controllers;

[0034] Compensation is provided to prevent calculation inaccuracies by adjusting the second location origin of the mileage estimate provided by one or more controllers to the external user; and

[0035] Based on a predetermined number of past states and the current state of the ranging method, adjust the operating mode of the ranging method and the relative mileage output from the ranging method; and

[0036] Processed sensor data is used to provide at least one of vehicle mileage, vehicle status, and timestamp information as output from one or more controllers.

[0037] 5. The method according to technical solution 4, wherein floating-point numbers are used when estimating the vehicle's mileage.

[0038] 6. The method according to technical solution 5, wherein the floating-point number is a 32-bit single-precision number.

[0039] 7. A vehicle including an odometer system, the odometer system comprising:

[0040] Multiple sensors; and

[0041] One or more controllers, which are jointly programmed to execute the following instructions:

[0042] The vehicle's mileage is estimated based on sensor data from multiple sensors to generate multiple mileage estimates;

[0043] Monitor the integrity of one or more of multiple sensors;

[0044] Correct sensor data from one or more of multiple sensors to provide corrected sensor data;

[0045] Compensated sensor data to provide data for compensation; and

[0046] Use the compensated data to provide at least one of the following: vehicle mileage, vehicle status, and timestamp information.

[0047] 8. The vehicle according to claim 7, wherein the instructions for monitoring the integrity of one or more of the plurality of sensors include instructions for monitoring one or more of the sensors in response to sensor failure.

[0048] 9. The vehicle according to claim 7, wherein the instructions for monitoring the integrity of one or more of the plurality of sensors include instructions for testing the convergence of the plurality of mileage estimates.

[0049] 10. The vehicle according to claim 7, wherein the instructions for monitoring the integrity of one or more of the plurality of sensors include instructions for testing for outliers in the plurality of mileage estimates.

[0050] 11. The vehicle according to claim 7, wherein the instructions for monitoring the integrity of one or more of the plurality of sensors include instructions for testing the reasonableness of an estimate of one or both of the vehicle’s longitudinal and lateral speeds.

[0051] 12. The vehicle according to claim 7, wherein the instructions for monitoring the integrity of one or more of the plurality of sensors include instructions for testing the reasonableness of the estimated yaw rate of the vehicle.

[0052] 13. The vehicle according to technical solution 7, wherein:

[0053] Vehicles are driven by wheels;

[0054] The rotary position sensor provides the rotational position data of the wheel; and

[0055] Instructions for correcting data from one or more sensors include using data from a sensor different from the rotary position sensor to confirm the vehicle's mileage when the vehicle is confirmed to be stopped.

[0056] 14. The vehicle according to technical solution 7, wherein:

[0057] Vehicles are driven by wheels;

[0058] The rotary position sensor senses the rotation of the wheel by providing pulses as the wheel rotates;

[0059] The vehicle has an inertial measurement unit (“IMU”); and

[0060] Instructions for correcting data from one or more sensors include instructions for compensating for missing pulses from the rotary position sensor in a scenario where the vehicle is moving from a stopped state to a moving state, by integrating past IMU data to compensate for missing pulses.

[0061] 15. The vehicle according to technical solution 7, wherein:

[0062] Vehicles are driven by wheels;

[0063] The rotary position sensor provides the rotational position data of the wheel; and

[0064] Instructions for correcting data from one or more of multiple sensors include instructions for compensating for drift in rotational position data in scenarios where the vehicle is moving to a stop by using the past position of the wheels as the current position of the wheels.

[0065] 16. The vehicle according to technical solution 7, wherein:

[0066] Vehicles are driven by wheels;

[0067] The rotary position sensor provides the rotational position data of the wheel; and

[0068] Instructions for correcting data from one or more of multiple sensors include instructions for using a transformation matrix to compensate for delays between wheel speed calculations using rotational position data.

[0069] 17. The vehicle according to technical solution 7, wherein the instructions for compensating for correction data include compensation to prevent floating-point calculation inaccuracies by adjusting the origin of the vehicle's internal position maintained in one or more controllers.

[0070] 18. The vehicle according to claim 7, wherein the instructions for compensating and correcting the data further include instructions for adjusting the external position origin of the vehicle provided by one or more controllers to an external user of the vehicle mileage.

[0071] 19. The vehicle according to technical solution 7, wherein:

[0072] Mileage estimates include relative mileage estimates; and

[0073] Instructions for compensating and correcting data include instructions for adjusting the odometer operating mode and relative mileage output based on a predetermined number of previous states of the odometer system and the current state of the odometer system.

[0074] 20. The vehicle according to technical solution 13, wherein:

[0075] The confirmed stop is confirmed by the vehicle's gear indicator, which indicates that the vehicle is in parking gear; and

[0076] The different sensor is the IMU.

[0077] The foregoing description does not represent every embodiment or aspect of this disclosure. The foregoing features and advantages, as well as other possible features and advantages, will become readily apparent from the following detailed description of embodiments and preferred modes for carrying out this disclosure, taken in conjunction with the accompanying drawings and appended claims. Furthermore, this disclosure explicitly includes combinations and sub-combinations of the elements and features presented above and below. Attached Figure Description

[0078] Figure 1 The illustration shows a vehicle equipped with a mileage estimation system.

[0079] Figure 2 The diagram shows Figure 1 Mileage estimation system.

[0080] Figure 3 The diagram shows Figure 2 Sensor integrity monitor for mileage estimation system.

[0081] Figure 4 The diagram shows Figure 2 Reference frame adjustment routines for the mileage estimation system. Detailed Implementation

[0082] This disclosure allows for numerous different embodiments. Representative examples of this disclosure are shown in the accompanying drawings and are described in detail herein as non-limiting examples of the disclosed principles. Accordingly, elements and limitations described in the abstract, introduction, summary, and detailed description but not expressly set forth in the claims should not be incorporated into the claims, individually or collectively, by implication, inference, or otherwise.

[0083] For the purposes of this specification, unless otherwise stated, the use of the singular includes the plural, and vice versa; the terms “and” and “or” shall be both conjunctions and disjunctive words; “any” and “all” shall mean “any and all”; and the words “including,” “contains,” “includes,” “has,” “has,” and the like shall mean “including but not limited to.” Furthermore, approximate words such as “approximately,” “almost,” “substantially,” “largely,” “approximately,” etc., may be used herein in the meaning of “within, near, or almost within” or “within 0-5% of” or “within acceptable manufacturing tolerances,” or logical combinations thereof.

[0084] First refer to Figure 1 The illustration shows vehicle 10. Vehicle 10 can be any type of vehicle, such as a car, truck, van, SUV, motorcycle, scooter, bicycle, or other vehicle. Vehicle 10 can be an electric vehicle, an internal combustion engine vehicle, or a hybrid vehicle having a powertrain comprising one or more electric motors and an internal combustion engine. Vehicle 10 can be driven manually, autonomously, or semi-autonomously. Vehicle 10 may have autonomous driving features, such as automatic parking. Vehicle 10 may have a mileage estimation system 12 (see also...). Figure 2 The system measures and / or estimates the absolute distance traveled by vehicle 10 (i.e., the distance traveled from the origin) and the relative distance (i.e., the incremental distance traveled from one or more previous positions). Vehicle 10 may be driven by one or more wheels (such as four wheels, which may include wheels 14 and 16).

[0085] For the purposes of this disclosure, "mileage" can be used to refer to an estimated or measured distance traveled by vehicle 10. It can be a two-dimensional distance traveled. It can also be a distance traveled in both forward and backward directions relative to the front of vehicle 10. It can be a distance traveled relative to an absolute origin, and mileage can be referred to as "absolute mileage." Furthermore, "relative mileage" can mean an incremental distance traveled relative to one or more past positions of vehicle 10 rather than relative to an absolute origin.

[0086] The mileage estimation system 12 may include one or more electronic control units (ECUs), such as ECU 100. ECU 100 may be a microprocessor-based controller and should be understood to have electronic resources (microcontroller, software, memory, inputs, outputs, circuitry, and the like) to perform the functions attributed to ECU 100 in this disclosure. The functions described in this disclosure may also be distributed among one or more electronic control units in the vehicle 10, which may be networked together via a data bus and / or hardwired, and thus may share data and computational responsibilities.

[0087] Since the ECU 100 and other controllers on vehicle 10 can be microprocessor-based devices, they can operate based on instructions; such instructions can include one or more programmed software commands. Furthermore, some or all of these instructions can include additional instructions or software commands.

[0088] The inputs to ECU 100 may include an inertial measurement unit (“IMU”) 102. IMU 102 can measure the longitudinal and lateral accelerations of vehicle 10 relative to the x-axis and y-axis, and the yaw rate relative to the z-axis. The inputs to ECU 100 may include one or more wheel rotation (i.e., wheel rotational position) or wheel speed sensors, such as wheel encoder 104; one such encoder may be provided for each wheel of vehicle 10. Wheel encoder 104 can generate pulses as the wheels of vehicle 10 rotate, through which the distance traveled by the wheels of vehicle 10 (such as wheels 14 and 16) can be measured or calculated. The wheel speed can be calculated by integrating the rate at which the encoder generates pulses. As used in this disclosure, “wheel speed” can refer to the rotational speed of the wheel or the linear velocity of the outer circumference of the tire on the wheel; speed is directly related to the radius of the tire, and therefore, for the purposes of this disclosure, speeds can be substantially interchangeable.

[0089] The inputs to ECU 100 may also include one or more steering sensors 106, which can sense the angle of rotation of the vehicle's steering wheel or the angle of rotation of one or more of the wheels (such as wheels 14 and / or wheels 16) of vehicle 10. Another input to ECU 100 may be one or more motor speed sensors 108, which provide the speed of one or more motors that can drive vehicle 10. The inputs to ECU 100 may also include a gear position sensor 110. The gear position sensor 110 can sense whether vehicle 10 is in parking gear (and, presumably, not moving) or not in parking gear. The gear position sensor 110 can also sense which non-parking gear vehicle 10 is in in order to understand the ratio of the speed between the motors driving vehicle 10 to the speed of the wheels of vehicle 10.

[0090] The inputs of ECU 100 may also include TCP (“Transmission Control Protocol”) 112 and a global positioning sensor (“GPS”) sensor input that can provide the three-dimensional position of vehicle 10.

[0091] The inputs to the ECU 100 described above can be used in the mileage estimation system 12, which can estimate or measure the distance traveled by the vehicle 10 using various algorithms employing the inputs to the ECU 100. For example, the wheel encoder 104 can be used to sense the distance traveled by the vehicle 10, while the steering sensor 106 can be used to sense the contour of the path traveled by the vehicle 10. The IMU 102 can also be used as an alternative or additional mechanism for determining the distance traveled by the vehicle 10 (e.g., by integrating the longitudinal and / or lateral accelerations of the vehicle 10 twice). The TCP 112 can provide alternative or additional means for measuring the position of the vehicle 10 and the distance traveled by the vehicle 10.

[0092] Since high-precision odometers can be important, especially in semi-autonomous or autonomous driving or parking features, some additional processing of the calculated odometer data may be desirable. Such additional processing may include functions performed at block 122 (sensor correction) and block 124 (compensation), each of which will be described in more detail below.

[0093] Next, mileage transformation 126 occurs. Mileage transformation may include transforming data received at different parts of the vehicle (e.g., at the wheels) to the center of gravity of the vehicle 10. This may then result in an output from the ECU 100, which may include vehicle mileage 128, vehicle status 130, and timestamp 132.

[0094] The integrity monitor 150 can test the integrity of sensors that serve as inputs to the ECU 100. (See also...) Figure 3 The integrity monitor 150 may include block 152, namely the sensor fault test block. This may include tests to determine the basic functionality of the respective sensors, such as whether they are actually outputting voltage and / or signals, or whether the voltage and / or signals are within the sensor's reasonable range. Sensor faults may also manifest themselves as sensor output diagnostic, error, or fault codes, conveying information that the sensor has malfunctioned.

[0095] If one or more sensors have been found to be faulty, the algorithm updates the fault by marking the fault mode at block 154 (updating the fault mode).

[0096] If no sensor(s) failure has been detected at block 152, the algorithm proceeds via block 120 to calculate the mileage estimate for vehicle 10. These mileage estimates can then undergo statistical testing at any or all of blocks 156, 158, 160, 162, and 164 as a further means of inferring the reliability of the data received from the sensors. At block 156 (convergence), it is determined whether a sufficient number of consistent or converged mileage estimate updates have been received to conclude that the sensor data is likely reliable. At block 158 (outlier detection), outliers can be identified, for example, by a chi-square test, as a means of helping to determine whether the sensor data is likely reliable or whether a subset of inconsistent data is merely an outlier.

[0097] In block 160 ( and At the section on (reasonableness), several tests can be performed regarding the reasonableness of the estimated longitudinal and lateral rates of vehicle 10. For example, cross-checking can be performed between the sensed or counted wheel sensor pulses and the calculated wheel speeds for each wheel. The consistency between data (such as sensed or counted wheel sensor pulses and calculated wheel speeds) between wheels can also be checked. Furthermore, the estimated rate of vehicle 10 can be compared with the rate calculated using data from the individual wheel encoders / sensors. Further still, the estimated lateral rate of vehicle 10 can be compared with the lateral rate calculated using differences in wheel speeds (e.g., the difference between the outer and inner wheels when driving on a curve) and / or the vehicle lateral rate (the vehicle lateral rate calculated using lateral acceleration from IMU 102).

[0098] In block 162 ( At the point of reasonableness, the reasonableness of the yaw rate of vehicle 10 can be tested. For example, on the one hand, a comparison can be made between the steering angle of the steering wheel of vehicle 10 or the steering angle of one or more of the wheels of vehicle 10, and on the other hand, the difference in wheel speed between radially inward and radially outward wheels ("radially inward" and "radially outward" relative to the curve on which vehicle 10 may be traveling) can be compared. If the comparison is inconsistent, one or more sensors can be determined to be suspicious.

[0099] For clarity, when used as geometric variables in this disclosure, “x” refers to the longitudinal (front-to-back) axis, “y” refers to the lateral (left-to-right) axis, and “z” refers to the vertical axis relative to the vehicle 10.

[0100] At block 164 (Noise covariance check normal?), the sensor measurement is determined to be suspicious by measuring the noise covariance.

[0101] If the test result at any of the blocks 156, 158, 160, 162, or 164 is negative (i.e., the corresponding statistical test performed at that block is questionable), the algorithm can proceed to block 154 to update the failure mode. On the other hand, if the tests at all blocks indicate yes, and the sensors appear to provide reasonable data, the system's operating mode can be updated at block 166.

[0102] Next, block 122 (sensor calibration) can be executed. (If block 122 is executed, one or more of blocks 122a, 122b, 122c, and 122d can be executed). Sensor calibration may include block 122a (speed-based sensor source update). Here, it has been observed that using wheel speed as input, there may be a delay-induced error pattern in the estimated travel distance of vehicle 10; this may occur above a predetermined speed. The predetermined speed can be a crawl speed, below which the vehicle and wheels are considered to be "crawling"; this could be two meters per second. The predetermined speed can also be half a meter per second, one meter per second, or three meters per second. Below this speed, where wheel pulse counts can be used instead of wheel speed to sense the distance traveled by vehicle 10, there may be no delay. Furthermore, delay may also be introduced in the movement to stop event of vehicle 10, because the distance traveled between wheel sensor pulses may be unknown for very precise ranging purposes. Furthermore, similar inaccuracies may be introduced during the stop to movement event. And due to multiple vehicle maneuvers (such as automatic parking situations), errors may accumulate. At block 122a, errors can be corrected by using alternative sensor data to help correct sensor data that may have experienced accumulated errors. For example, accumulated mileage errors can be corrected using past IMU data that has sensed the motion of vehicle 10, for example by double integration of the acceleration of vehicle 10; such correction can occur when vehicle 10 is identified as stationary or stopped, such as when the gear position sensor 110 indicates that vehicle 10 is parked.

[0103] Block 122 (sensor correction) may also include block 122b (missing pulse compensation), which can be used for a stop-to-move scenario of vehicle 10. The observation model of the distance traveled by the wheels of vehicle 10 can be considered by starting with the following:

[0104]

[0105] in

[0106] d whl It is the outer circumference of the tire on the wheel from time t s By time t c Distance traveled

[0107] u whl It is the linear velocity of the tire's outer circumference.

[0108] R tire It is the radius of the tire.

[0109] N is the number of teeth on the wheel encoder sensor, and

[0110] Δn(t s , t c ) is time t s and time t c The number of tooth pulses between.

[0111] t s The first update after vehicle 10 stops is unknown. There is a delay in the stationary indication because stationary is inferred after the pulses from the corresponding wheel sensors have stopped (i.e., after the pulses have been lost). (There is no explicit wheel sensor pulse data indicating the moment vehicle 10 has stopped at its location.) During this time, incorrect zero-rate observations may be used. Therefore, this error state can be corrected by integrating past IMU data during the stop-to-move detection period to understand the position of vehicle 10. The integration start time can be taken as the time of the last wheel edge detected by the stationary indication logic. This may result in a half-second or approximately half-second lookback.

[0112] In the moving-to-stop scenario of vehicle 10, block 122 (sensor correction) may also include block 122c (drift compensation). Consider that when vehicle 10 stops, there may be a delay in the indication that vehicle 10 is stationary; no additional wheel encoder edge counts are available to determine that vehicle 10 has stopped. An assumption is made at some point that if no more wheel encoder edge counts are available, vehicle 10 has stopped. The estimation of the stopping state might be done simply by integrating the acceleration data from IMU 102, but this could lead to rapidly accumulating position errors. To compensate for those errors, the following calculations can be used:

[0113] u x =x(t) stop )-x(t current )as well as

[0114] u y =y(t) stop )-y(t current ).

[0115] u x and u y This can be taken as a correction for the x and y positions of vehicle 10, which can be used to compensate for drift. In the above equation, t stopIt can be the assumed time when vehicle 10 stops, and t current It can be the current time. t current The x and y positions at that time can be obtained from a buffer of the vehicle 10's most recent past position. A lookback in a buffer of a few hundred milliseconds (e.g., 500 milliseconds, a non-limiting example based on the minimum speed to be detected) can be used.

[0116] Correcting the inaccuracies introduced by the stop-to-move and move-to-stop scenarios just discussed above (the delays involved in classifying and declassifying a vehicle as stationary) may be important in certain scenarios where such events repeat. One such scenario could be automatic parking.

[0117] Block 122 (sensor calibration) may also include block 122d (sensor delay compensation) to compensate for the wheel speed (integrated from the wheel encoder) used for wheel travel distance measurement. This problem arises because the state of vehicle 10 is expected to be known now, but the wheel speed measurement may be from several milliseconds ago. To compensate, a transformation matrix that correlates the current time with the previous observation time can be used, as follows:

[0118]

[0119] δz(t z )=H(t z )δx(t z )+v

[0120] =H(t) z )Φ(t z ,t)δx(t)+v

[0121] =H(t) z ,t)δx(t)+v,

[0122] in

[0123] Φ(t z ,t) is the transformation matrix;

[0124] I is the identity matrix;

[0125] F(t i ) is a dynamic matrix;

[0126] t is the current time;

[0127] t z This is the previous observation time;

[0128] δz(t z ) is the error state (measurement matrix transformation δx,

[0129] δx(t z) is the error state (measurement state - estimation state).

[0130] H is a measurement matrix that correlates the observable value (z) with the expected estimated value;

[0131] as well as

[0132] v is the measurement noise (unknown).

[0133] Following block 122 (sensor calibration), block 124 (compensation) can be executed. (If block 124 is executed, one or more of blocks 124a, 124b, 124c, and 124d can be executed.) Block 124 may include processing that may include block 124a (floating-point compensation). Here, continuous operation of vehicle mileage may potentially lead to accuracy degradation because it may rely on single-precision 32-bit floating-point variables in some implementations. This loss of accuracy can cause problems both inside and outside the vehicle mileage estimation process, where the vehicle position is provided by the mileage estimation system 12 to downstream systems (such as autonomous or semi-autonomous driving or parking systems) that use vehicle mileage information.

[0134] The estimated position of vehicle 10 can be based on the integral of the vehicle speed, as follows:

[0135]

[0136] in

[0137] p is the position; and

[0138] v is the speed.

[0139] Assuming a non-limiting example, where the minimum speed of the vehicle 10 of interest is 1 mm / sec, and the calculations in ECU 100 run in cycles of 10 msec. Given those examples, the minimum position increment to consider is:

[0140] △p(t)=v(t)△t

[0141] = 1 mm / s·10 msec

[0142] =0.01mm

[0143] When the position reaches a value of 100 meters, given the parameters in this example, there may be a loss of accuracy or precision. This can be explained by the properties of 32-bit single-precision floating-point numbers. Such numbers have only about seven decimal places of precision. The larger the integer part of the number, the less space is left for floating-point precision. When the integer part reaches 100 meters, the accuracy of the decimal part drops to 0.008 mm (~0.01 mm).

[0144] Therefore, to avoid introducing calculation inaccuracies during mileage estimation, the internal reference origin maintained in ECU 100 for the position of vehicle 10 can be moved (i.e. updated) every 100 meters, as follows:

[0145] p internal (t)=p intemal (t-△t)+△p(t)

[0146] |p internal |<100 meters

[0147] p = p0 + p internal ,

[0148] in

[0149] p internal It is the location used for internal calculations.

[0150] p is the final position, and

[0151] p0 is the previous position before the reset.

[0152] Block 124 (compensation) may also include block 124b (flip compensation). External "users" of mileage information from the mileage estimation system 12, such as autonomous or semi-autonomous parking or driving systems, may (by way of example) be uninterested in positional accuracy greater than, for example, 1 mm (while internally, accuracy can be tracked to 0.01 mm, as discussed above in conjunction with block 124a). Because in this example, the smallest increment that an external user might be interested in is 1 mm, floating-point accuracy issues may arise for those users every 10 km. Therefore, the origin of the reference provided to those users may be reset every 10 km (again, by way of example). Unless a compensation mechanism is provided, such a sudden change could cause problems for those users, including those calculating relative mileage (i.e., Δ between a location and one or more previous locations). This compensation mechanism can be implemented via block 124b (flip compensation). There, the odometer buffer can be maintained as follows:

[0153]

[0154] The ECU 100 will provide external users with data containing corrections between the old origin (O) and the new origin until the buffer is fully filled with the vehicle 10's position information relative to the new reference frame (N). This is to prevent mileage data used by those external users from jumping drastically due to the change in reference. Such correction can stop once the buffer is filled with all the data from the new reference frame relative to the new origin (e.g., relative time = 5 in the example table above).

[0155] Relative vehicle mileage relies on the number of previous samples to correctly calculate the distance traveled by the vehicle. For the most useful relative mileage, all samples may originate from a single algorithm. To facilitate smooth transitions between states, the following state transition can be used at block 124c (state transition):

[0156]

[0157] In the table above,

[0158] Normal operation means the system is operating normally;

[0159] Sensor failure refers to a failure detected in the relevant sensor (see [reference]). Figure 2 Block 152);

[0160] Non-sensor faults refer to statistical anomalies that have been detected (see [link]). Figure 2 Blocks 156, 158, 160, 162, and 164);

[0161] The estimated value refers to the value based on the normal operation of the system (which may include block 122 and / or block 124). Figure 2 Use estimates of relative mileage;

[0162] Default values ​​refer to the default values ​​that can be selected by the system designer;

[0163] Non-convergence means that the initial and current mileage readings are inconsistent, and therefore the relative mileage may not be reliably calculated; and

[0164] The remedial estimate means that simple sensor integration can be used for mileage estimation without compensation based on blocks 122 and 124.

[0165] The relative mileage output provided to downstream users can follow the "Relative Mileage Output" column for each case in the table above.

[0166] Block 124 (compensation) may also include block 124d (reference frame adjustment); see also Figure 4 There, at block 300, it is determined whether the internal cumulative threshold has been exceeded. If so, the internal reference system is updated at block 302 (see also block 124a). Figure 2 At block 304, it is then determined whether the external cumulative threshold has been exceeded. If so, at block 306, the external reference frame is updated, and at block 308, the position buffer is updated (see also block 124b). Figure 2 Then, at block 310, it is determined whether an external flip has occurred. If so, at block 312, the last position of vehicle 10 is updated to the new origin of vehicle 10's position. If not, the routine proceeds to block 314.

[0167] Then, at block 314, it is determined whether the buffer is filled with the new origin. If yes, given the data in the buffer filled with the reference common origin, the relative mileage can be calculated at block 316. If not, at block 318, the position is updated with the new origin based on the last position before the external flip. The relative mileage can then be calculated at block 318 and provided to the system that consumes / uses the relative mileage.

[0168] Refer again Figure 2 Following block 122 (sensor correction) and block 124 (compensation), block 126 (mileage conversion) can then be executed. The output of the mileage information processed by the mileage estimation system 12 to downstream users can be vehicle mileage 128, vehicle status 130, and timestamp 132. Vehicle status 130 can include the yaw rate, vehicle speed, and vehicle acceleration (lateral and longitudinal) of vehicle 10.

[0169] The embodiments of this disclosure offer numerous advantages. The disclosed architecture can seamlessly switch between various measurement sources to provide continuous and stable mileage information. This architecture can provide accumulated mileage information over long time periods. The disclosed method is robust to single-precision floating-point limitations that can lead to accumulated errors over long periods of operation, potentially causing accuracy issues in fine low-speed maneuvers after extended driving. Even taking into account sensor failures and potential statistical errors, the architecture and method disclosed herein provide robust odometer readings. The architecture and method can also adjust mileage information upon reference frame reset. The architecture and method can also provide vehicle status and mileage along with a timestamp to eliminate potential delays between status and mileage when used by downstream users.

[0170] Embodiments as described herein are depicted. However, it is to be understood that the disclosed embodiments are merely examples, and other embodiments may take various forms and alternative forms. The drawings are not necessarily to scale; some features may be enlarged or minimized to show details of particular components. Therefore, the specific structural and functional details disclosed herein should not be construed as limiting, but only as a representative basis for teaching those skilled in the art to employ this disclosure in different ways.

[0171] Furthermore, the features of the embodiments shown in the accompanying drawings or the various embodiments mentioned in this specification are not necessarily to be construed as independent embodiments. Rather, it is possible that each of the features described in one example of an embodiment may be combined with one or more other desired features from other embodiments, resulting in other embodiments that are not described in words or by reference to the accompanying drawings. Therefore, such other embodiments fall within the scope of the appended claims. Moreover, this disclosure expressly includes combinations and sub-combinations of the elements and features presented above and below.

Claims

1. A vehicle including an odometer system, the odometer system comprising: Multiple sensors; as well as One or more controllers, which are jointly programmed to execute the following instructions: The vehicle's mileage is estimated based on sensor data from multiple sensors to generate multiple mileage estimates; Monitor the integrity of one or more of multiple sensors; Correct sensor data from one or more of multiple sensors to provide corrected sensor data; Compensation and correction of sensor data to provide compensation data; as well as Use the compensated data to provide at least one of the following: vehicle mileage, vehicle status, and timestamp information.

2. The vehicle of claim 1, wherein the instructions for monitoring the integrity of one or more of the plurality of sensors include instructions for testing the reasonableness of an estimate of the vehicle's yaw rate.

3. The vehicle according to claim 1, wherein: Vehicles are driven by wheels; The rotary position sensor provides the rotational position data of the wheel; as well as Instructions for correcting data from one or more sensors include using data from a sensor different from the rotary position sensor to confirm the vehicle's mileage when the vehicle is confirmed to be stopped.

4. The vehicle according to claim 1, wherein: Vehicles are driven by wheels; The rotary position sensor senses the rotation of the wheel by providing pulses as the wheel rotates; The vehicle is equipped with an inertial measurement unit ("IMU"); as well as Instructions for correcting data from one or more sensors include instructions for compensating for missing pulses from the rotary position sensor in a scenario where the vehicle is moving from a stopped state to a moving state, by integrating past IMU data to compensate for missing pulses.

5. The vehicle according to claim 1, wherein: Vehicles are driven by wheels; The rotary position sensor provides the rotational position data of the wheel; and Instructions for correcting data from one or more of multiple sensors include instructions for compensating for drift in rotational position data in scenarios where the vehicle is moving to a stop by using the past position of the wheels as the current position of the wheels.

6. The vehicle according to claim 1, wherein: Vehicles are driven by wheels; The rotary position sensor provides the rotational position data of the wheel; as well as Instructions for correcting data from one or more of multiple sensors include instructions for using a transformation matrix to compensate for delays between wheel speed calculations using rotational position data.

7. The vehicle of claim 1, wherein the instructions for compensating for the correction data include compensation to prevent inaccuracies in floating-point calculations by adjusting the origin of the vehicle's internal position maintained in one or more controllers.

8. The vehicle of claim 1, wherein the instructions for compensating for the correction data further include instructions for adjusting the external position origin of the vehicle provided by one or more controllers to an external user of the vehicle mileage.

9. The vehicle according to claim 1, wherein: Mileage estimates include relative mileage estimates; and Instructions for compensating and correcting data include instructions for adjusting the odometer operating mode and relative mileage output based on a predetermined number of previous states of the odometer system and the current state of the odometer system.

10. The vehicle according to claim 3, wherein: The confirmed stop is confirmed by the vehicle's gear indicator, which indicates that the vehicle is in parking gear; and The different sensor is the IMU.