GNSS statistically derived ABS speedometer calibration

Method and apparatus are disclosed for GNSS statistical speed calibration An example vehicle includes a wheel, a speed sensor for determining a first vehicle speed, an inertial sensor, and a processor. The processor may be configured for determining a second vehicle speed based on information from the inertial sensor and information from a satellite based system, determining that a difference between the first and second vehicle speeds is statistically significant, and responsively adjusting a value of the radius of the wheel.

TECHNICAL FIELD

The present disclosure generally relates to measurement accuracy of a vehicle speed and, more specifically, Global Navigation Satellite System (GNSS) statistically derived anti-lock brake system (ABS) speedometer calibration.

BACKGROUND

Modern vehicles indicate the speed of the vehicle to within a predetermined accuracy threshold. This threshold may be a few percent different from actual speed, and may be the result of extrapolation of the vehicle speed based on indirect sensor measurements. The indicated speed may be used by many systems of the vehicle, such as indicating miles-to-empty, indicating fuel efficiency (miles-per-gallon), and many others.

GNSS measurements include the use of satellite technology to determine characteristics of a vehicle such as speed and location. These systems incorporate the use of sight lines in order to operate, and as such are less effective in areas with tall buildings or with impeded views of the sky. Further, these systems may have spotty or incomplete coverage of a given area, and therefore may not be robust in providing the speed of a vehicle.

SUMMARY

Example embodiments are shown for GNSS statistically derived ABS speedometer calibration. An example disclosed vehicle includes a wheel, a speed sensor for determining a first vehicle speed, an inertial sensor, and a processor. The processor may be configured for determining a second vehicle speed based on information from the inertial sensor and information from a satellite based system. The processor may also be configured for determining that a difference between the first and second vehicle speeds is statistically significant, and responsively adjusting a value of the radius of the wheel.

An example disclosed method for increasing accuracy of the measurement of a vehicle speed includes determining a first vehicle speed using a speed sensor. The method also include determining a second vehicle speed using an inertial sensor and a satellite based system. The method further includes determining that a difference between the first and second vehicle speeds is statistically significant. And the method yet further includes responsively adjusting a value of the radius of a wheel of the vehicle.

Another example may include means for determining a first vehicle speed using a speed sensor, means for determining a second vehicle speed using an inertial sensor and a satellite based system, means for determining that a difference between the first and second vehicle speeds is statistically significant, and means for responsively adjusting a value of the radius of a wheel of the vehicle.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

Modern vehicles may indicate the speed of the vehicle to within a predetermined accuracy threshold. This threshold may be a few percent different from actual speed, and may be the result of extrapolation of the vehicle speed based on indirect sensor measurements. For instance, a visual sensor may be used to measure the number of rotations of a wheel, and the number of rotations per time period may then be used as a variable in an equation including the radius or circumference of the wheel and/or the time between wheel rotations, in order to arrive at a calculated speed. One or more of these values may be used by many systems of the vehicle, such as indicating miles-to-empty, indicating fuel efficiency (miles-per-gallon), or for many other uses.

Wheel based vehicle speed systems may have inherent errors introduced by manufacturing variations, temperature, and dynamic properties of the tires. Typical vehicle speed accuracy may therefore be within some percentage of actual speed. Errors may propagate to other systems, and may result in measurements of distance that are off by some percentage as well. Some applications may require more accurate measurement. For instance, rental vehicles that charge customers by the distance traveled may wish to have more accurate measurement. Further, with the increasing prevalence of autonomous or self driving vehicles, accuracy of measurement may impact vehicle safety, and may be essential to manufacturers looking to provide robust, safe vehicles.

GNSS measurements (such as GPS) may include the use of satellite technology to determine characteristics of a vehicle such as speed and location. In some examples, a GPS receiver associated with a vehicle may determine the position of the vehicle at several different moments in time, and use the resulting locations and times to determine a speed of the vehicle. GNSS measurements may have the benefit of long-term absolute accuracy over time, and may be immune from or resistant to drift.

However, GNSS systems may incorporate the use of sight lines in order to operate, for instance by direct line-of-sight between the GPS receiver and the satellites. As such, GNSS measurements may be less effective in areas with tall buildings or with impeded views of the sky, or in areas without extensive satellite coverage. There may also be problems from interference, scattering, and signal attenuation or degradation.

To counter the lack of robustness in GNSS systems, example embodiments described herein may include combining GNSS information with information from one or more inertial sensors integrated with the vehicle. For instance, the vehicle may have one or more gyroscopes, accelerometers, torque sensors, yaw and pitch sensors, or other sensors configured to detect one or more inertial values of the vehicle. These inertial sensors may have good short term accuracy, but may suffer from drift and noise which may cause measurement accuracy to degrade over time.

In order to increase the measurement accuracy of the speed of a vehicle, embodiments may include using both the measurement of vehicle speed via the vehicle speed sensor, as well as measurement of the vehicle speed using GNSS and inertial sensors. When a difference is detected between the two speed measurements, the value may be added to a distribution. When the distribution grows large enough, a standard deviation may be determined. When a difference between the two speed measurements is larger than a threshold percentage of the standard deviation, that may indicate that the difference between the two speed measurements is statistically significant. Embodiments disclosed herein may then apply a correction factor to the value of the radius of the wheel, such that the two speed measurements are in agreement. The overall accuracy of the speed measurement may thus be increased, and, for example, may result in a system that can operate with a reduced error, such as less than 1% error in accuracy, and the reduction or removal of static and calibration errors.

In one example, to increase the accuracy of the measurement of vehicle speed, a vehicle may include a wheel and a speed sensor for determining a first vehicle speed. The vehicle sensor may be integrated with the vehicle, and may determine the speed of the vehicle by measuring the rotation of the wheel. In some examples, the speed sensor may be a part of the anti-lock brake system of the vehicle. The vehicle may also include an inertial sensor, such as an accelerometer, gyroscope, and/or sensor for measuring wheel pulses of a wheel.

The example vehicle may further include a processor, configured to determine a second vehicle speed based on information from the inertial sensor(s) and information from a satellite based system. The processor may determine the second vehicle speed by receiving data from the satellite based system and one or more inertial sensors, and solving an algorithm based on the received data. The resulting speed may be the second vehicle speed.

In some examples, the second speed may be determined for the same point in time as the first vehicle speed. As such, the first and second vehicle speeds may be measurements of the same speed of the vehicle done through two different means. Alternatively, the first and second vehicle speed may be determined for two points in time that are within a threshold of each other (e.g., within 1 second). Other arrangements are possible as well.

After the first and second vehicle speeds are determined, a difference may be calculated. This difference may be termed a “delta.” A plurality of deltas may be calculated over time and stored to develop a distribution. The distribution may then be used to determine that the difference between the first and second vehicles speeds is statistically significant.

But first, some examples may require that one or more preconditions be met before a delta can be added to the distribution. For instance, before a delta may be added to the distribution the delta must be determined for a time in which (i) the acceleration of the vehicle is below a threshold acceleration, (ii) the torque acting on the powertrain is below a threshold torque, and (iii) the vehicle is on a flat surface (i.e., not on a sloped road). If these preconditions are met, the measured delta may be added to the distribution.

Once the distribution contains a sufficient number of deltas, a standard deviation (or “sigma”) value may be calculated. Then, it may be determined whether a measured delta is greater than a threshold percentage of the sigma. As an example, a distribution of deltas may include 100 values determined over a period of several minutes. A sigma may be calculated, and compared to a most recent delta. If the most recent delta is greater than 100% of sigma, that may indicate that the most recent delta is one standard deviation away from a predicted or expected value. In that case, the most recent delta may be termed statistically significant, and corrective measures may be taken.

The corrective measures may include applying a correction factor to a value of the radius of the wheel. The correction factor may be determined based on the distribution of deltas, the sigma, and/or one or more other values. In some examples, the correction factor may be determined such that when it is applied to the value of the radius of the wheel, the first vehicle speed measured by the speed sensor is brought in line with the second vehicle speed.

The stored distribution of deltas and sigma may then be reset, allowing the process of measuring vehicle speeds, determining a plurality of deltas and sigma, and applying a correction factor to restart.

I. Example Vehicle

FIGS. 1A and 1Billustrate two views of an example vehicle100according to embodiments of the present disclosure.FIG. 1Ashows a top down view, whileFIG. 1Bshows a side view. The vehicle100may be a standard gasoline powered vehicle, a hybrid vehicle, an electric vehicle, a fuel cell vehicle, and/or any other mobility implement type of vehicle. The vehicle100may include parts related to mobility, such as a powertrain with an engine, a transmission, a suspension, a driveshaft, and/or wheels, etc. The vehicle100may be non-autonomous, semi-autonomous (e.g., some routine motive functions controlled by the vehicle100), or autonomous (e.g., motive functions are controlled by the vehicle100without direct driver input). In the illustrated example, the vehicle100includes four wheels102, a speed sensor104, an inertial sensor106, a processor110, and an antenna112. Vehicle100may also include one or more components described below with respect toFIG. 2.

The wheel102may be any standard or custom wheel configured for operation with vehicle100. Wheel102may have a wheel radius, rolling radius, or other metric stored and/or used by one or more systems of vehicle100. For example, a radius of wheel102may be used in combination with speed sensor104to determine a speed of vehicle100.

Speed sensor104may be a wheel speed sensor configured to detect a number of revolutions of wheel102. In practice, this may take the form of an optical sensor or a magnetic sensor, for example. Speed sensor104may be separate from or integrated with one or more components of vehicle100, such as the anti-lock brake system, wheel, or powertrain.

Inertial sensor106may be any of the sensors described herein, configured to detect one or more inertial metrics of vehicle100. For instance, inertial sensor106may be an accelerometer, and may be configured to detect changes in the acceleration of vehicle100. The measured changes may be used to determine an acceleration and/or speed of vehicle100.

Processor110(described in more detail below) may be configured to carry out one or more actions, steps, blocks, or methods described herein. Processor110may be separate from or integrated with the systems of vehicle100.

Antenna112may be coupled to or connected to one or more systems and modules described herein, such as processor110, on-board computing platform202, communication module206, and GPS module220.

II. Example Electronics

FIG. 2illustrates an example block diagram200showing the electronic components of an example vehicle, such as vehicle100. As illustrated inFIG. 2, the electronic components200include an on-board computing platform202, an infotainment head unit204, a communication module206, a global positioning satellite (GPS) module220, sensors230, and electronic control units240, all in communication with each other via vehicle data bus250.

The on-board computing platform202includes a microcontroller unit, controller or processor110and memory212. The processor110may be any suitable processing device or set of processing devices such as, but not limited to, a microprocessor, a microcontroller-based platform, an integrated circuit, one or more field programmable gate arrays (FPGAs), and/or one or more application-specific integrated circuits (ASICs). The memory212may be volatile memory (e.g., RAM including non-volatile RAM, magnetic RAM, ferroelectric RAM, etc.), non-volatile memory (e.g., disk memory, FLASH memory, EPROMs, EEPROMs, memristor-based non-volatile solid-state memory, etc.), unalterable memory (e.g., EPROMs), read-only memory, and/or high-capacity storage devices (e.g., hard drives, solid state drives, etc). In some examples, the memory212includes multiple kinds of memory, particularly volatile memory and non-volatile memory.

The memory212may be computer readable media on which one or more sets of instructions, such as the software for operating the methods of the present disclosure, can be embedded. The instructions may embody one or more of the methods or logic as described herein. For example, the instructions reside completely, or at least partially, within any one or more of the memory212, the computer readable medium, and/or within the processor110during execution of the instructions.

In some examples, the memory212may include a value of the radius of the wheel214. This value214may be used by or modified by processor110and/or one or more other processors, systems, or devices. For instance, the infotainment head unit204may use the stored value214of the wheel radius to determine and/or display a vehicle speed, and in one or more calculations that are used to determine a vehicle fuel efficiency (i.e., mpg), distance to empty, or other vehicle metric.

The infotainment head unit204may provide an interface between the vehicle100and a user. The infotainment head unit204may include digital and/or analog interfaces (e.g., input devices and output devices) to receive input from and display information for the user(s). The input devices may include, for example, a control knob, an instrument panel, a digital camera for image capture and/or visual command recognition, a touch screen, an audio input device (e.g., cabin microphone), buttons, or a touchpad. The output devices may include instrument cluster outputs (e.g., dials, lighting devices), actuators, a heads-up display, a center console display (e.g., a liquid crystal display (LCD), an organic light emitting diode (OLED) display, a flat panel display, a solid state display, etc.), and/or speakers. In the illustrated example, the infotainment head unit204includes hardware (e.g., a processor or controller, memory, storage, etc.) and software (e.g., an operating system, etc.) for an infotainment system of vehicle100(such as SYNC® and MyFord Touch® by Ford®, Entune® by Toyota®, IntelliLink® by GMC®, etc.). In some examples the infotainment head unit204may share a processor with on-board computing platform202. Additionally, the infotainment head unit204may display the infotainment system on, for example, the center console display108.

Communication module206inFIG. 2may include one or more wired or wireless network interfaces to enable communication between the vehicle100an one or more external systems or devices. In the illustrated example ofFIG. 2, the communication module206may include one or more communication controllers for standards-based networks (e.g., Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Long Term Evolution (LTE), Code Division Multiple Access (CDMA), WiMAX (IEEE 802.16m); Near Field Communication (NFC); local area wireless network (including IEEE 802.11 a/b/g/n/ac or others), dedicated short range communication (DSRC), and Wireless Gigabit (IEEE 802.11ad), etc.). In some examples, the communication module206may include a wired or wireless interface (e.g., an auxiliary port, a Universal Serial Bus (USB) port, a Bluetooth® wireless node, etc.) to communicatively couple with a mobile device (e.g., a smart phone, a smart watch, a tablet, etc.). In such examples, the vehicle100may communicate with the external network via the coupled mobile device. The external network(s) may be a public network, such as the Internet; a private network, such as an intranet; or combinations thereof, and may utilize a variety of networking protocols now available or later developed including, but not limited to, TCP/IP-based networking protocols.

Communication module206may be coupled to, connected, to or otherwise may make use of antenna112for communication via the processes and protocols described above.

Global Positioning System (GPS) module220may be configured to receive, decode, and/or otherwise process GPS data. This data may be used to determine a vehicle position, speed, and/or one or more other vehicle metrics. GPS module220may be a separate from, or may be integrated with one or more other systems, modules, and devices disclosed herein.

The sensors230may be arranged in and around the vehicle100to monitor properties of the vehicle100and/or an environment in which the vehicle100is located. One or more of the sensors230may be mounted on the outside of vehicle100to measure properties around an exterior of the vehicle100. Additionally or alternatively, one or more of the sensors230may be mounted inside a cabin of the vehicle100or in a body of the vehicle100(e.g., an engine compartment, wheel wells, etc.) to measure properties in an interior of the vehicle100. For example, the sensors230may include a vehicle speed sensor104and one or more inertial sensors106.

Vehicle speed sensor104may include a sensor configured to detect a number of revolutions per time period (i.e., revolutions per minute). This value may correspond to the speed of vehicle100, which may be determined, for instance, by multiplying the rate of wheel revolutions by the circumference of the wheel. In some embodiments, vehicle speed sensor104is mounted on vehicle100. Vehicle speed sensor104may directly detect a speed of vehicle100, or may indirectly detect the speed (e.g., by detecting a number of wheel revolutions).

Inertial sensors106may include one or more accelerometers and/or gyroscopes. These inertial sensors may detect one or more forces acting on vehicle100, which may be used to determine a speed. Other inertial sensors may be used in addition to or instead of an accelerometer or gyroscope.

Sensors230may also include odometers, tachometers, pitch and yaw sensors, wheel speed sensors, magnetometers, microphones, tire pressure sensors, biometric sensors and/or sensors of any other suitable type.

The ECUs240may monitor and control the subsystems of the vehicle100. For example, the ECUs240may be discrete sets of electronics that include their own circuit(s) (e.g., integrated circuits, microprocessors, memory, storage, etc.) and firmware, sensors, actuators, and/or mounting hardware. The ECUs240may communicate and exchange information via a vehicle data bus (e.g., the vehicle data bus250). Additionally, the ECUs240may communicate properties (e.g., status of the ECUs240, sensor readings, control state, error and diagnostic codes, etc.) to and/or receive requests from each other. For example, the vehicle100may have seventy or more of the ECUs240that are positioned in various locations around the vehicle100and are communicatively coupled by the vehicle data bus250. In the illustrated example, the ECUs240include a body control242, a telematic control244, a speed control246, and a brake control248.

The body control unit242may controls one or more subsystems throughout the vehicle100, such as power windows, power locks, an immobilizer system, power mirrors, etc. For example, the body control module242may includes circuits that drive one or more of relays (e.g., to control wiper fluid, etc.), brushed direct current (DC) motors (e.g., to control power seats, power locks, power windows, wipers, etc.), stepper motors, LEDs, etc.

The telematic control unit244may control tracking of the vehicle100, for example, utilizing data received by the GPS receiver220of the vehicle100, alone or in combination with information from one or more other sensors, modules, or systems. The speed control unit246may receive a signal from one or more systems or devices of vehicle100to autonomously control a speed at which the vehicle100travels. The brake control unit248may receive a signal from one or more systems or devices of vehicle100to autonomously operate brakes of the vehicle100.

The vehicle data bus250may communicatively couple the various modules, systems, and components described with respect toFIG. 2. In some examples, the vehicle data bus250may includes one or more data buses. The vehicle data bus250may be implemented in accordance with a controller area network (CAN) bus protocol as defined by International Standards Organization (ISO) 11898-1, a Media Oriented Systems Transport (MOST) bus protocol, a CAN flexible data (CAN-FD) bus protocol (ISO 11898-7) and/a K-line bus protocol (ISO 9141 and ISO 14230-1), and/or an Ethernet™ bus protocol IEEE 802.3 (2002 onwards), etc.

FIGS. 3 and 4illustrate flowcharts of example methods300and400according to embodiments of the present disclosure. Methods300and400may provide increased accuracy in the measurement of a vehicle speed. The flowcharts ofFIGS. 3 and 4are representative of machine readable instructions that are stored in memory (such as memory212) and may include one or more programs which, when executed by a processor (such as processor110) may cause vehicle100to carry out one or more functions described herein. While the example program is described with reference to the flowcharts illustrated inFIGS. 3 and 4, many other methods for carrying out the functions described herein may alternatively be used. For example, the order of execution of the blocks may be rearranged, blocks may be changed, eliminated, and/or combined to perform methods300and400. Further, some blocks may be performed in tandem with each other, although they are shown sequentially inFIGS. 3 and 4. And because methods300and400are disclosed in connection with the components ofFIGS. 1-2, some functions of those components will not be described in detail below.

Initially, at block302, method300includes determining the (anti-lock brake system) ABS speed. As described above, a speed sensor may be integrated with the ABS, in order to provide the vehicle with a signal to determine the vehicle speed. At block304, method300may include determining the GNSS and inertial sensor speed. This block may involve the processor receiving information from one or more satellites and inertial sensors, to determine a vehicle speed separate from the determined ABS speed. Other satellite based systems and inertial sensors may be used.

At block306, method300may include determining a difference in speeds between the ABS speed (first vehicle speed) and GNSS/inertial sensor speed (second vehicle speed). This difference may be called a delta, and may be calculated constantly or near constantly, based on the refresh rate or update rate of the speed sensor and received data.

Block308of method300may include determining whether one or more preconditions are met. If one or more preconditions are not met, the measured difference (delta) may be erased, removed, or otherwise discarded. Alternatively, the preconditions may be required before a delta is determined in the first place. The preconditions may ensure consistency and accuracy of measurement. As described above, the preconditions may include that the acceleration is below a threshold acceleration, the torque is below a threshold torque, and that the vehicle is on a flat surface. The acceleration may be measured by an accelerometer, and may required to be below a threshold so that no large changes in speed occur during the measurement of the vehicle speeds. In one example, the threshold acceleration is an increase or decrease of one mph/sec. The torque threshold may be used to ensure that the vehicle is not accelerating or decelerating. Torque acting on the power train may be determined by a torque sensor, which may be part of a powertrain control module. A third precondition may include that the vehicle is on a flat or relatively flat surface. For example, one or more pitch or yaw sensors, or a gyroscope may be used to determine whether the slope of the vehicle is above a threshold. An example threshold may be that the slop of the vehicle is below two degrees. One or more other preconditions may be used as well, and may include any metric that can be used to ensure the accuracy of the speed measurements.

If the preconditions are not met, method300may include restarting the method at block302. However if the preconditions are met, method300may include block310. Block310may include adding the measured difference (delta) to a distribution. The distribution may include tens, hundreds, or thousands of data points corresponding to deltas determined over time.

At block312, method300may include calculating a standard deviation of the distribution. Then, at block314, method300may include determining whether the sample size of the distribution is large enough. This threshold may be predetermined, or dynamically changed based on deltas measured over the course of time. The sample size threshold may be any size, for example as small as 10 samples, or as large as hundreds or thousands of samples. Smaller or larger sample sizes are included as well.

If the sample size is not large enough (i.e., there are not enough deltas in the distribution) then method300may return to block302in order to measure the speed of the vehicle and add additional deltas to the distribution.

If the distribution sample size is large enough, then block316may include determining whether the most recent delta is larger than a threshold percentage of the calculated standard deviation. In effect, block316determines whether the most recent difference in speeds of the vehicle, measured by the two techniques, is large enough that corrective action should be taken. Block316may determine when the determined deltas are off by a large enough margin to warrant correction. If the most recent delta is not large enough, then the method may return to block302to determine additional deltas.

But if the most recent delta is larger than the threshold percentage of the standard deviation, method300may include block318. Block318may include applying a correction factor. The correction factor may be determined based on the distribution of deltas, the determined standard deviation, or one or more other values. In some examples, the correction factor is applied to a stored value of the radius of the wheel of the vehicle. The wheel radius value may be used by various systems and modules in the vehicle to determine one or more values (speed, mpg, distance traveled, etc.). By applying a correction factor to this value, the first vehicle speed and the second vehicle speed may be brought into alignment.

Block320of method300may involve resetting the distribution and standard deviation. In practice, this may include discarding the calculated deltas in the distribution, and resetting the standard deviation to zero.

FIG. 4illustrates an example method400. At block410, method400may include determining a first vehicle speed using a speed sensor. This block may be carried out in any manner, such as those described herein with reference to speed sensors. Further, the speed sensor may be any sensor described herein such as an optical or magnetic sensor.

At block420, method400may include determining a second vehicle speed using an inertial sensor and a satellite based system. In some examples, the first and second vehicle speeds may be determined at the same or nearly the same time. Further, the first and second speeds may be determined continuously or near continuously over a time period.

At block430, method400may include determining that a difference between the first and second vehicle speeds is statistically significant. This determination may take place after a sufficient number of first and second vehicle speed shave been determined. Further, this determination may include determining that a most recent difference between the first and second vehicle speeds is greater than a threshold.

Then, at block440, method400may include responsively adjusting the value of the radius of a wheel of the vehicle. The value of the radius of the wheel may be used to determine the first and/or second vehicle speeds, and as such adjusting this value may change a value used in the determination of the first and/or second vehicle speeds.

In some examples, block440of method400may alternatively include adjusting or modifying one or more other stored values, such as a wheel diameter or circumference. However it should be noted that any modification to the value of the radius also modifies any determination of the vehicle diameter and circumference.

In some examples, method400may additionally or alternatively include one or more blocks, such as those described with reference toFIG. 3.