Wheel diagnostic

A system includes a computer including a processor and a memory, the memory storing instructions executable by the computer to determine a recursive standard deviation and a recursive mean offset of a plurality of steering component angles and to identify a wheel misalignment fault upon determining that the recursive standard deviation is below a deviation threshold and the recursive mean offset is above an offset threshold.

BACKGROUND

Wheels in a vehicle are typically aligned to allow the vehicle to move substantially straight ahead when a steering wheel is at a neutral position. During operation of the vehicle, one or more of the wheels may become misaligned, causing the vehicle to move away from straight ahead motion. To compensate, a user may rotate the steering wheel away from the neutral position. Misaligned wheels can damage to wheels and other vehicle parts, and increase maintenance needed for the vehicle.

DETAILED DESCRIPTION

A system includes a computer including a processor and a memory, the memory storing instructions executable by the computer to determine a recursive standard deviation and a recursive mean offset of a plurality of steering component angles and to identify a wheel misalignment fault upon determining that the recursive standard deviation is below a deviation threshold and the recursive mean offset is above an offset threshold.

The instructions can further include instructions to determine a vehicle yaw rate and to determine the recursive standard deviation and the recursive mean offset upon determining that the vehicle yaw rate is below a yaw rate threshold.

The instructions can further include instructions to increment a yaw counter upon determining that the yaw rate is below the yaw rate threshold and to determine the recursive standard deviation and the recursive mean offset upon determining that the yaw counter exceeds a yaw counter threshold.

The instructions can include instructions to reset the yaw counter upon determining that the yaw rate exceeds the yaw rate threshold.

The instructions further can include instructions to determine a roll angle based on a lateral acceleration and a vertical acceleration and to determine the recursive standard deviation and the recursive mean offset upon determining that the roll angle is below a roll angle threshold.

The instructions can further include instructions to collect a second plurality of steering component angles upon determining that the recursive standard deviation is above the deviation threshold.

The instructions can further include instructions to determine that a vehicle is moving straight and then to determine the recursive standard deviation and the recursive mean offset of the plurality of steering component angles.

The instructions can further include instructions to determine that a vehicle speed is above a speed threshold and then to determine the recursive standard deviation and the recursive mean offset of the plurality of steering component angles.

The plurality of steering component angles can be a plurality of steering wheel angles. The plurality of steering component angles can be a plurality of steering pinion angles.

The plurality of steering component angles can be an ordered set of steering component angles including a first steering component angle and a last steering component angle.

The instructions to determine the recursive standard deviation can further include instructions to determine a first standard deviation based on the first steering component angle and a second steering component angle in the ordered set of steering component angles, to determine a second standard deviation based on the first standard deviation and a third steering component angle, and to determine the recursive standard deviation based on a last steering component angle and a penultimate standard deviation.

A method includes determining a recursive standard deviation and a recursive mean offset of a plurality of steering component angles and identifying a wheel misalignment fault upon determining that the recursive standard deviation is below a deviation threshold and the recursive mean offset is above an offset threshold.

The method can further include determining a vehicle yaw rate and determining the recursive standard deviation and the recursive mean offset upon determining that the vehicle yaw rate is below a yaw rate threshold.

The method can further include determining a roll angle based on a lateral acceleration and a vertical acceleration and determining the recursive standard deviation and the recursive mean offset upon determining that the roll angle is below a roll angle threshold.

The method can further include determining that a vehicle is moving straight and then determining the recursive standard deviation and the recursive mean offset of the plurality of steering component angles.

A system includes a steering component movable to a steering component angle, means for determining a recursive standard deviation and a recursive mean offset of a plurality of steering component angles of the steering component, and means for identifying a wheel misalignment fault upon determining that the recursive standard deviation is below a deviation threshold and the recursive mean offset is above an offset threshold.

The system can further include means for determining a vehicle yaw rate and means for determining the recursive standard deviation and the recursive mean offset upon determining that the vehicle yaw rate is below a yaw rate threshold.

The system can further include means for determining a roll angle based on a lateral acceleration and a vertical acceleration and means for determining the recursive standard deviation and the recursive mean offset upon determining that the roll angle is below a roll angle threshold.

The system can further include means for determining that a vehicle is moving straight and means for determining, then, the recursive standard deviation and the recursive mean offset of the plurality of steering component angles.

Further disclosed is a computing device programmed to execute any of the above method steps. Yet further disclosed is a vehicle comprising the computing device. Yet further disclosed is a computer program product, comprising a computer readable medium storing instructions executable by a computer processor, to execute any of the above method steps.

Identifying a wheel misalignment fault with recursively-evaluated statistics allows a computer in a vehicle to quickly determine whether one or more wheels are misaligned using data available to the computer. Because a steering wheel angle can change to compensate for misaligned wheels, using steering wheel angle data can indicate that one or more wheels are misaligned. Thus, the computer can identify the wheel misalignment fault and mitigate wear from the misaligned wheels.

FIG. 1illustrates an example system100for identifying a wheel misalignment fault in a vehicle101. A computer105in the vehicle101is programmed to receive collected data115from one or more sensors110. For example, vehicle101data115may include a location of the vehicle101, data about an environment around a vehicle, data about an object outside the vehicle such as another vehicle, etc. A vehicle101location is typically provided in a conventional form, e.g., geo-coordinates such as latitude and longitude coordinates obtained via a navigation system that uses the Global Positioning System (GPS). Further examples of data115can include measurements of vehicle101systems and components, e.g., a vehicle101velocity, a vehicle101trajectory, etc.

The computer105is generally programmed for communications on a vehicle101network, e.g., including a conventional vehicle101communications bus. Via the network, bus, and/or other wired or wireless mechanisms (e.g., a wired or wireless local area network in the vehicle101), the computer105may transmit messages to various devices in a vehicle101and/or receive messages from the various devices, e.g., controllers, actuators, sensors, etc., including sensors110. Alternatively or additionally, in cases where the computer105actually comprises multiple devices, the vehicle network may be used for communications between devices represented as the computer105in this disclosure. In addition, the computer105may be programmed for communicating with the network125, which, as described below, may include various wired and/or wireless networking technologies, e.g., cellular, Bluetooth®, Bluetooth® Low Energy (BLE), wired and/or wireless packet networks, etc.

The data store106can be of any type, e.g., hard disk drives, solid state drives, servers, or any volatile or non-volatile media. The data store106can store the collected data115sent from the sensors110.

Sensors110can include a variety of devices. For example, various controllers in a vehicle101may operate as sensors110to provide data115via the vehicle101network or bus, e.g., data115relating to vehicle speed, acceleration, position, subsystem and/or component status, etc. Further, other sensors110could include cameras, motion detectors, etc., i.e., sensors110to provide data115for evaluating a position of a component, evaluating a slope of a roadway, etc. The sensors110could, without limitation, also include short range radar, long range radar, LIDAR, and/or ultrasonic transducers.

Collected data115can include a variety of data collected in a vehicle101. Examples of collected data115are provided above, and moreover, data115are generally collected using one or more sensors110, and may additionally include data calculated therefrom in the computer105, and/or at the server130. In general, collected data115may include any data that may be gathered by the sensors110and/or computed from such data.

The vehicle101can include a plurality of vehicle components120. In this context, each vehicle component120includes one or more hardware components adapted to perform a mechanical function or operation—such as moving the vehicle101, slowing or stopping the vehicle101, steering the vehicle101, etc. Non-limiting examples of components120include a propulsion component (that includes, e.g., an internal combustion engine and/or an electric motor, etc.), a transmission component, a steering component (e.g., that may include one or more of a steering wheel, a steering rack, etc.), a brake component (as described below), a park assist component, an adaptive cruise control component, an adaptive steering component, a movable seat, or the like.

When the computer105operates the vehicle101, the vehicle101is an “autonomous” vehicle101. For purposes of this disclosure, the term “autonomous vehicle” is used to refer to a vehicle101operating in a fully autonomous mode. A fully autonomous mode is defined as one in which each of vehicle101propulsion (typically via a powertrain including an electric motor and/or internal combustion engine), braking, and steering are controlled by the computer105. A semi-autonomous mode is one in which at least one of vehicle101propulsion (typically via a powertrain including an electric motor and/or internal combustion engine), braking, and steering are controlled at least partly by the computer105as opposed to a human operator. In a non-autonomous mode, i.e., a manual mode, the vehicle101propulsion, braking, and steering are controlled by the human operator.

The system100can further include a network125connected to a server130and a data store135. The computer105can further be programmed to communicate with one or more remote sites such as the server130, via the network125, such remote site possibly including a data store135. The network125represents one or more mechanisms by which a vehicle computer105may communicate with a remote server130. Accordingly, the network125can be one or more of various wired or wireless communication mechanisms, including any desired combination of wired (e.g., cable and fiber) and/or wireless (e.g., cellular, wireless, satellite, microwave, and radio frequency) communication mechanisms and any desired network topology (or topologies when multiple communication mechanisms are utilized). Exemplary communication networks include wireless communication networks (e.g., using Bluetooth®, Bluetooth® Low Energy (BLE), IEEE 802.11, vehicle-to-vehicle (V2V) such as Dedicated Short Range Communications (DSRC), etc.), local area networks (LAN) and/or wide area networks (WAN), including the Internet, providing data communication services.

FIG. 2shows an example steering component200. The steering component200can include a steering wheel205, a steering column210, a steering assist motor215, a motor actuator220, and a steering rack225. The steering component200can move one or more wheels230to steer the vehicle101.

The steering component200can include the steering wheel205. The steering wheel205allows an operator to steer the vehicle by transmitting rotation of the steering wheel205to movement of a steering rack225. The user and/or the computer105can rotate the steering wheel205to the steering wheel angle, i.e., an angle of rotation of the steering wheel205relative to a predetermined (sometimes referred to as “default” or “nominal”) orientation of the steering wheel205. The predetermined orientation of the steering wheel205, defining a steering wheel angle of 0 degrees, can be the orientation of the steering wheel205in which the vehicle101moves forward when all wheels230are aligned. The steering wheel205may be, e.g., a rigid ring fixedly attached to a steering column210.FIG. 3is a view of an example steering wheel205illustrating rotation of the steering wheel205.

The steering component200can include the steering column210. The steering column210transfers rotation of the steering wheel205to movement of the steering rack225. The steering column210may be, e.g., a shaft connecting the steering wheel205to the steering rack225.

The steering component200can include the steering assist motor215and the motor actuator220. The motor actuator220can include a processor and a memory. The motor actuator220instructs the steering assist motor215to apply a torque to the steering column210, providing power assist to the steering column210. The steering assist motor215can provide torque in a direction in which the steering wheel205is rotated by the user, allowing the user to turn the steering wheel205with less effort. The steering assist motor215can be an electrically powered motor. The motor actuator220can include a sensor110that detects a motor angle of the steering assist motor215. Based on the motor angle of the steering assist motor215, the computer105can determine an absolute steering wheel angle x. The computer105can receive motor angle data115from the motor actuator220over the network125. The motor angle data115can include an ordered set of steering assist motor angles. Each steering assist motor angle in the ordered set is an angle relative to an immediately previous steering motor angle in the ordered set.

The computer105can determine a steering component angle of the steering component200. A steering component angle is defined herein as an angle of rotation of a component that accepts steering input, i.e., a steering wheel angle x or a steering pinion angle. Thus, the steering component angle may also be referred to as a steering input angle. The computer105can determine a relative steering wheel angle ξrelfrom the rotation of the steering assist motor215. A “relative” steering wheel angle ξrelis a change in the steering wheel angle relative to an immediately previously determined steering wheel angle, as shown inFIG. 3. For example, a sensor110can detect a change in the steering wheel angle from a previous position of the steering wheel205, i.e., the relative change of the steering wheel205. In general, the relative steering wheel angle ξrelis related to a steering assist motor angle according to a transfer function of a conventional Electronic Power Assist Steering model. The motor actuator220can, upon determining the steering assist motor angle, determine the relative steering wheel angle ξrelwith the transfer function and communicate the relative steering wheel angle ξrelto the computer105. Alternatively or additionally, the motor actuator220can determine a steering pinion angle of a steering pinion (not shown) based on steering assist motor angle and can communicate the steering pinion angle to the computer105.

The computer105can determine an absolute steering wheel angle x. An “absolute” steering wheel angle is an angle of rotation of the steering wheel205relative to a position of the steering wheel205with no rotation, as shown inFIG. 3. As described above, the computer105can determine the relative steering wheel angle ξrelbased on motor angle data of the steering assist motor215. The relative steering wheel angle ξrelis the change in the steering wheel angle resulting from the most recent actuation of the steering motor215. If the steering wheel205is already rotated upon actuation of the steering motor215, i.e., the absolute steering wheel angle x is nonzero, then the relative steering angle ξrelcan capture only the current change in the absolute steering wheel angle x and not the entire absolute steering wheel angle x.

The computer105can determine an offset μ of the steering wheel205. The offset μ is the difference between the absolute steering wheel angle x and the relative steering wheel angle ξrel, i.e., μ=x−ξrel, as shown inFIG. 3. Thus, the computer105can determine the absolute steering wheel angle x based on a determined relative steering wheel angle ξreland a determined offset μ.

The computer105can determine an initial offset μ0based on a reference absolute steering wheel angle xref. The reference absolute steering wheel angle xrefis a predetermined steering wheel angle stored in the data store106that corresponds to the vehicle101moving straight with properly aligned wheels230, e.g., 0 degrees.

The computer105can identify a wheel misalignment fault. As used herein, a “wheel misalignment fault” is a detection of misaligned wheels230in the vehicle101. When the wheels230are aligned, the absolute steering wheel angle x to maintain straight movement of the vehicle101defines an offset μ that is below an offset threshold, e.g., 1 degree, 2 degrees, etc. . . . When the wheels230are misaligned, the steering wheel angle x to maintain straight movement of the vehicle101defines an offset μ above the offset threshold. That is, when the wheels230are misaligned, the steering wheel can rotate beyond the offset threshold to compensate for the misaligned wheels230. Upon identifying the wheel misalignment fault, the computer105can, e.g., notify a user over the network125, notify a repair station over the network125, etc.

The steering rack225transfers rotational motion of the steering column210to rotation of the wheels230of the vehicle. The steering rack225is engaged with the rotators that translate rotational motion of the steering assist motor215to translational motion of the steering rack225, e.g., a rigid bar or shaft having teeth engaged with the steering assist motor215.

The vehicle101includes one or more wheels230.FIG. 2shows two wheels230. The wheels230allow the vehicle101to move along the roadway. The wheels230can be connected to the steering rack225via, e.g., a steering knuckle240.

FIGS. 4A and 4Bshow a vehicle101with misaligned wheels230.FIG. 3Ashows wheels230misaligned in a “toe in” configuration, andFIG. 3Bshows the wheels230misaligned in a “toe out” configuration. As used herein, “toe” is defined as the angle α between a center line of a wheel230parallel to a center line C of the vehicle101and a line extending in the direction that the wheel230faces. When the wheel230faces toward the center line C of the vehicle101, the angle α is “toe in.” When the wheel230faces away from the center line C of the vehicle101, the angle α is “toe out.”FIG. 3Ashows two wheels230with toe in, andFIG. 3Bshows two wheels230with toe out. Alternatively, not shown in the Figures, the vehicle101can have, e.g., one wheel230with toe in and another wheel230with toe out, one wheel230with toe in and another wheel230aligned, one wheel230with toe out and another wheel230aligned, etc. When the toe α is nonzero and the absolute steering wheel angle x is zero, the wheel can pull the vehicle101in the direction of the toe α, moving the vehicle101away from a straight path. The computer105can actuate the steering wheel205and/or the assist motor215to return the vehicle101to the straight path, resulting in an offset μ. For example, when the wheels230have a 1.65 degree toe out, i.e., α=−1.65, the offset μ can be 14 degrees. In another example, when the wheels230have a 1.10 degree toe out, i.e., α=−1.10, the offset μ can be 9 degrees. In yet another example, when the wheels230have a 0.55 degree toe out, i.e., α=−0.55, the offset μ can be 5 degrees.

FIG. 5shows a roll angle estimation for the vehicle101. As used herein, the “roll angle” ϕ is the angle about a longitudinal axis of the vehicle101relative to a horizontally flat ground in a lateral direction. The roll angle ϕ can be nonzero when, e.g., a road crown, a banked highway ramp, etc., moves one of the left side and the right side of the vehicle101above the other of the left side and the right side.

FIG. 6shows a pitch angle of the vehicle101. As used herein, a “pitch” angle θ is the angle about a lateral axis of the vehicle101relative to a horizontally flat ground in a longitudinal direction. As described below, directional components of the gravitational acceleration on the vehicle101can be described according to the pitch angle θ and the roll angle ϕ.

The vehicle101includes at least one accelerometer110. The accelerometer110can determine the gravitational acceleration on the vehicle101. The accelerometer110can determine the longitudinal component alongof gravitational acceleration of the vehicle101in a longitudinal direction (i.e., a longitudinal acceleration), a lateral component alatof gravitational acceleration the vehicle101in a lateral direction (i.e., a lateral acceleration), and a vertical component avertof gravitational acceleration the vehicle101in a vertical direction (i.e. a vertical acceleration). The acceleration components along, alat, avertcan be correlated to the pitch angle θ and the roll angle ϕ:

[alongalatavert]=g⁡[sin⁡(θ)-sin⁡(ϕ)⁢cos⁢⁢(θ)-cos⁡(ϕ)⁢sin⁡(θ)](1)
where g is the gravitational acceleration constant, i.e., 9.8 m/s2.

Because the accelerometer110measures the component accelerations along, alat, avert, the computer105can determine the roll angle ϕ from the lateral acceleration and the vertical acceleration:

The roll angle ϕ can result in a steering wheel offset μ above the offset threshold even when the wheels230are aligned. Because one side of the vehicle101is above the other side of the vehicle101when the roll angle ϕ≠0, the vehicle101can turn away from the straight path, and the user can rotate the steering wheel205and/or the computer105can actuate the steering motor215so that the offset μ exceeds the offset threshold. For example, when the roll angle ϕ is substantially 4 degrees, the offset μ can be substantially 2 degrees, which can exceed the offset threshold of 1 degree. When the roll angle ϕ exceeds a roll angle threshold, determined based on, e.g., empirical testing, steering models, etc., the computer105can determine not to identify the wheel misalignment fault. When the roll angle ϕ is below the roll angle threshold, the computer105can determine to identify the wheel misalignment fault. The roll angle threshold can be, e.g., 3 degrees.

The computer105can determine a vehicle101speed. The computer105can actuate sensors110, e.g., speedometers, to determine the vehicle101speed. The computer105can determine to identify the wheel misalignment fault when the vehicle101is moving substantially straight, i.e., moving along a line in a vehicle-forward direction with substantially no lateral movement, and at a speed above which the misaligned wheel230may result in offsets μ in the absolute steering wheel angle x. The speed threshold can be determined based on, e.g., empirical testing, steering models, etc. The speed threshold can be, e.g., 20 mph, 30 mph, etc.

The computer105can determine a yaw rate {dot over (ψ)} of the vehicle101. As shown inFIGS. 4A-4B, a “yaw angle” ψ of the vehicle101is the rotation of the vehicle101about a vertical axis, e.g., an angle θ defined between a line in a vehicle101forward direction and a trajectory of the vehicle101when the vehicle101turns. The “yaw rate” {dot over (ψ)} is a time rate of change of the yaw, i.e., the rate at which the vehicle101turns. When the computer105and/or the user turns the steering wheel205, the resulting movement of the steering rack225and the wheels230changes the yaw ψ of the vehicle101at the yaw rate {dot over (ψ)}. The absolute steering wheel angle x, i.e., an angle of rotation of the steering wheel205relative to a default position of the steering wheel205as described above, can correspond to a specific yaw rate {dot over (ψ)}:

ψ.=V·xL(3)
where V is a current vehicle101speed and L is a wheelbase of the vehicle101, i.e., a distance between a front axle of the vehicle101and a rear axle of the vehicle101.

The computer105can identify the wheel misalignment fault when the vehicle101is moving substantially straight. To determine whether the vehicle101is moving substantially straight, the computer105can determine the yaw rate {dot over (ψ)} for a specified period of time, and if a magnitude of the yaw rate |{dot over (ψ)}| remains below a yaw rate threshold, the computer105can determine that the vehicle101is moving substantially straight. The yaw rate threshold can be determined based on, e.g., empirical testing, steering dynamics models, etc. The yaw rate threshold can be, e.g., 0.05 rad/s, 0.01 rad/s, etc.

To determine the yaw rate {dot over (ψ)} for the specified period of time, the computer105can define and increment a yaw counter. The “yaw counter” can be an integer value that indicates a number of consecutive data115points of the yaw rate {dot over (ψ)} below the yaw rate threshold. The computer105can collect a specified number of data115points during the specified period of time based on a sampling rate of the steering assist motor angle sensor110. The computer105can, for each data115point, determine the corresponding yaw rate {dot over (ψ)}. The computer105can set the yaw counter to 0 upon activation of the vehicle101. When the computer105determines that the magnitude of the yaw rate |{dot over (ψ)}| is below the yaw rate threshold, the computer105can increment the yaw counter, i.e., increase the yaw counter by 1. Then, the computer105can determine the magnitude of the yaw rate |{dot over (ψ)}| of the next data115point. If the magnitude of the yaw rate |{dot over (ψ)}| is below the yaw rate threshold, the computer105increments the yaw counter. Otherwise, the computer105determines that the vehicle101is not moving substantially straight and resets the yaw counter to 0. The computer105can determine a yaw counter threshold corresponding to the number of consecutive data115points collected in the specified period of time. When the yaw counter exceeds the yaw counter threshold, the magnitude of the yaw rate |{dot over (ψ)}| has remained below the yaw rate threshold for the number of consecutive data115points collected in the specified period of time, i.e., the vehicle101has moved substantially straight for the specified period of time. The computer105can then determine to identify the wheel misalignment fault when the yaw counter exceeds the yaw counter threshold.

To identify the wheel misalignment fault, the computer105can calculate statistics for the steering component angles. For example, the computer105can calculate statistics for the absolute steering wheel angles x. The computer105can determine a standard deviation a and a mean offset μ. The standard deviation σ is a measure of the variation of the absolute steering wheel angles x. The “mean” offset μ is an average of the offsets e.g., an arithmetic average, a geometric average, etc. The computer105can determine the standard deviation a and the mean offset μ when the vehicle101is moving straight, e.g., when the yaw counter exceeds the yaw counter threshold, the roll angle ϕ is below the roll angle threshold, etc. Alternatively, the computer105can identify the wheel misalignment fault based on statistics of the steering pinion angles, e.g., a standard deviation σ of the pinion angles and a mean offset μ of the steering pinion angles as described for the absolute steering wheel angles x below.

The computer105can determine an ordered set of absolute steering wheel angles x. The computer105can actuate the sensor110to collect data115of the relative steering angle ξrel. Each data115point can be collected according to the sampling rate of the sensor110. The computer105can order the data115into an ordered set of relative steering angles ξrel, e.g., the computer105can, upon receiving a data115point from the sensor110corresponding to a relative steering angle ξrel, record the data115point in an array after the immediately previously received data115point. The computer105can determine an absolute steering wheel angle x corresponding to each relative steering angle ξrelin the array in the order in which the array is stored, recording the absolute steering wheel angles x as an “ordered set” in the order of capture from the sensor110. That is, for an ordered set of N data points115and i is an integer between 0 and N, the ith absolute steering wheel angle xican be determined:
xi=ξrel,i+μi−1(4)
where ξrel,iis the ith term in the ordered set of relative steering angles ξreland μi−1is the i−1th offset. The computer105can determine the first absolute steering wheel angle x1=ξrel,1+μ0, i.e., with the initial offset μ0, because there is no previously determined offset for the first absolute steering wheel angle x1. The ordered set of absolute steering wheel angle includes the first absolute steering wheel angle x1and a last absolute steering wheel angle xN.

The computer105can determine recursive statistics of the steering wheel angles x. As used herein, “recursive” means “calculated based on an immediately preceding value.” The “recursive” standard deviation σ is based on an immediately preceding value of the standard deviation a determined by the computer105. The “recursive” mean offset μ is based on an immediately preceding value of the mean offset μ determined by the computer105. For the ordered set of absolute steering wheel angle x, the computer105can iteratively determine the recursive standard deviation σ and the recursive mean offset μ for each data115point in the ordered set.

The computer105can determine the recursive standard deviation σ(N) and the recursive mean offset μ(N) for an ordered set of N absolute steering wheel angle {x1, x2, . . . xN}. Starting with the first absolute steering wheel angle x1and the second absolute steering wheel angle x2, the computer105can determine a first standard deviation σ(1). Then, for each i∈[2, N], the computer105can determine the ith standard deviation σ(i) based on the previously determined standard deviation σ(i−1), the ith mean offset μ(i), and the ith steering when angle xi:

The number of data points N in the ordered set can be determined based on, e.g., statistical modeling, steering models, etc., and can be, e.g.,200data points. The computer105can determine a last recursive standard deviation σ(N) and a last recursive mean offset μ(N):

The computer105can identify the wheel misalignment fault based on the recursive standard deviation σ(N) and the recursive mean offset μN). The computer105can determine whether the recursive standard deviation σ(N) is below a standard deviation threshold. When the recursive standard deviation σ(N) is below the standard deviation threshold, the computer105can determine that the absolute steering wheel angles x have low variance and are accurate and can then determine to identify the wheel misalignment fault. When the recursive standard deviation σ(N) is above the standard deviation threshold, the computer105can determine that the absolute steering wheel angles x have high variance and are inaccurate. The computer105can then collect a new ordered set of absolute steering wheel angles x. The standard deviation threshold can be determined based on, e.g., statistical models, steering models, etc. The standard deviation threshold can be, e.g., 0.05.

When the recursive standard deviation σ(N) is below the standard deviation threshold, the computer105can determine whether the recursive mean offset μ(N) is above the offset threshold. When the recursive mean offset μ(N) is below the offset threshold, the computer105can determine that there is no wheel misalignment fault, i.e., the wheels230are not misaligned. When the recursive mean offset μ(N) is above the offset threshold, the computer105can identify the wheel misalignment fault.

When the vehicle101is operating in the autonomous mode or the semi-autonomous mode, it is a problem to detect misaligned wheels230. In certain scenarios it is impossible for a misalignment to be detected and/or reported by a human. In such scenarios, conventional techniques, such as a human detecting vehicle vibration or steering “pull” are to no avail. Advantageously, misaligned wheels230can be detected when the computer105executed programming to actuate the steering component200to steer the misaligned wheels230, moving a steering wheel205away from a default position. The computer105can determine absolute steering wheel angles x based on rotation of the steering assist motor215that results in movement of the steering wheel205. Determining the recursive standard deviation σ(N) and the recursive mean offset μ(N) of the ordered set of the absolute steering wheel angles x allows the computer105to identify that one or more wheels230are misaligned. Using the rotation angles of the steering assist motor215to determine the absolute steering wheel angles x, the computer105can identify the wheel misalignment fault. Thus, the computer105addresses the problem of detecting misaligned wheels230by analyzing actuation of the steering component200.

FIG. 7illustrates an example process700for determining when to calculate the recursive standard deviation of the steering wheel angle. The process700begins in a block705, in which the computer105determines a relative steering wheel angle μrel. As described above, the computer105can determine the relative steering wheel angle ξrelbased on rotation of the steering assist motor215and a transfer function, as described above, that correlates rotation of the steering assist motor215to the relative steering wheel angle μrel.

Next, in a block710, the computer105determines an absolute steering wheel angle x based on the relative steering wheel angle ξreland a predetermined offset μ0. As described above, the predetermined offset μ0can be determined based on a reference absolute steering wheel angle xrefthat can be stored in the data store106. The reference absolute steering wheel angle xrefcan be determined based on, e.g., empirical testing, steering models, etc.

Next, in a block715, the computer105determines whether a magnitude of a yaw rate |ψ| of the vehicle101is below a yaw rate threshold. When the yaw rate |ψ| is below the yaw rate threshold, the vehicle101can move substantially straight, and the absolute steering wheel angle x can result from a misaligned wheel230rather than conventional vehicle101operation. As described above, the absolute steering wheel angle x can correlate to the yaw rate |ψ| of the vehicle101. The yaw rate threshold can be determined based on, e.g., empirical testing, steering models, etc. The yaw rate threshold can be, e.g., 0.05 rad/s, 0.01 rad/s, etc. If the magnitude of the yaw rate |ψ| is below the yaw rate threshold, the process700continues in a block720. Otherwise, the computer105resets a yaw counter, as described below, and the process700returns to the block705.

In the block720, the computer105increments the yaw counter. As described above, persistent yaw rates of the vehicle101exceeding the yaw rate threshold can indicate that one or more wheels230are misaligned and temporary yaw rates above the yaw rate threshold can indicate conventional vehicle101operation, e.g., turning, lane changing, etc.

Next, in a block725, the computer105determines whether the yaw counter exceeds a yaw counter threshold. To distinguish between a misaligned wheel230and conventional vehicle101operation, the yaw counter threshold can be determined to correspond to a period of time beyond which conventional vehicle101operation could end. The yaw counter threshold can be determined based on, e.g., empirical testing, steering models, etc. If the yaw counter exceeds the yaw counter threshold, the process700continues in a block730. Otherwise, the process700continues in a block745.

In the block730, the computer105determines whether a current vehicle101speed exceeds a speed threshold. As described above, the computer105can determine the recursive standard deviation when the vehicle101is moving substantially straight and at a speed above which the misaligned wheel230may result in offsets μ in the absolute steering wheel angle x. The speed threshold can be determined based on, e.g., empirical testing, steering models, etc. The speed threshold can be, e.g., 20 mph, 30 mph, etc. If the current vehicle101speed exceeds the speed threshold, the process700continues in a block735. Otherwise, the process700continues in the block745.

In the block735, the computer105determines whether a roll angle ϕ is below a roll angle threshold. As described above, when the roll angle ϕ exceeds the roll angle threshold, the offset μ can be above the offset threshold while the wheels230are aligned. To reduce the effect of the roll angle ϕ on the offset μ, the computer105can determine to identify the wheel misalignment fault when the roll angle ϕ is below the roll angle threshold. If the roll angle ϕ is below the roll angle threshold, the process500continues in a block740. Otherwise, the process700continues in the block745.

In the block740, the computer105determines to identify the wheel misalignment fault. The computer105can identify the wheel misalignment fault based on recursive statistics of an ordered set of absolute steering wheel angles x, as described above. For example, the computer105can identify the wheel misalignment fault according to an example process800below.

In the block745, the computer105determines whether to continue the process700. For example, if the vehicle101is powered off, the computer105can determine not to continue the process700. If the computer105determines to continue, the process700returns to the block705to collect additional data115. Otherwise, the process700ends.

FIG. 8is a block diagram of an example process800for identifying a wheel misalignment fault. The process800begins in a block805, in which the computer105retrieves an ordered set of absolute steering wheel angles x. As described above, the ordered set of absolute steering wheel angle x is an array of absolute steering wheel angles x ordered based on a sampling rate of a sensor110. The ordered set of absolute steering wheel angles x can have N values of absolute steering wheel angle x, i.e., {x1, x2. . . xN}.

Next, in a block810, the computer105determines a recursive mean offset μ for the ith term in the ordered set, where i∈[1,N]. As described above, the computer105can determine the recursive mean offset μ(i) based on an immediately preceding recursive mean offset μ(i−1).

Next, in a block815, the computer105determines a recursive standard deviation σ(i) for the ith term in the ordered set. As described above, the computer105can determined the recursive standard deviation σ(i) based on an immediately preceding recursive standard deviation σ(i−1).

Next, in a block820, the computer105determines whether the computer105has reached the end of the ordered set. The computer105determines whether i=N for an ordered set with N terms. If the computer105has reached the end of the ordered set, the process800continues in a block830. Otherwise, the process800continues in a block825.

In the block825, the computer105advances to the next absolute steering wheel angle x in the ordered set. The computer105can increment the index i to i+1. The process800continues in the block815.

In the block830, the computer105determines whether the recursive standard deviation σ(N) is below a standard deviation threshold. As described above, when the computer105determines that the recursive standard deviation σ(N) is below the standard deviation threshold, the computer105can determine that the absolute steering wheel angles x were reliably collected. If the recursive standard deviation σ(N) is below the standard deviation threshold, the process800continues in a block835. Otherwise, the process800returns to the block805to collect additional data115.

In the block835, the computer105determines whether the recursive mean offset μNis above a mean offset threshold. As described above, when the recursive mean offset μNis above the mean offset threshold, the steering wheel205is turned to compensate the vehicle101moving away from a straight path. If the recursive mean offset μNis above the mean offset threshold, the process800continues in a block840. Otherwise, the process800returns to the block805to collect additional data115.

In the block840, the computer105identifies a wheel misalignment fault. The recursive mean offset μNcan indicate that the wheels230are misaligned, e.g., the wheels230are in a toe in configuration, the wheels230are in a toe out configuration, etc. Upon identifying the wheel misalignment fault, the computer105can, e.g., notify a user over the network125, notify a repair station over the network125, etc.

Next, in a block845, the computer105determines whether to continue the process800. For example, the computer105can determine not to continue the process800when the vehicle101is powered off. If the computer105determines to continue, the process800returns to the block805to collect additional data115. Otherwise, the process800ends.

Computing devices discussed herein, including the computer105and server130include processors and memories, the memories generally each including instructions executable by one or more computing devices such as those identified above, and for carrying out blocks or steps of processes described above. Computer executable instructions may be compiled or interpreted from computer programs created using a variety of programming languages and/or technologies, including, without limitation, and either alone or in combination, Java™, C, C++, Visual Basic, Java Script, Perl, HTML, etc. In general, a processor (e.g., a microprocessor) receives instructions, e.g., from a memory, a computer readable medium, etc., and executes these instructions, thereby performing one or more processes, including one or more of the processes described herein. Such instructions and other data may be stored and transmitted using a variety of computer readable media. A file in the computer105is generally a collection of data stored on a computer readable medium, such as a storage medium, a random access memory, etc.

With regard to the media, processes, systems, methods, etc. described herein, it should be understood that, although the steps of such processes, etc. have been described as occurring according to a certain ordered sequence, such processes could be practiced with the described steps performed in an order other than the order described herein. It further should be understood that certain steps could be performed simultaneously, that other steps could be added, or that certain steps described herein could be omitted. For example, in the process700, one or more of the steps could be omitted, or the steps could be executed in a different order than shown inFIG. 7. In other words, the descriptions of systems and/or processes herein are provided for the purpose of illustrating certain embodiments, and should in no way be construed so as to limit the disclosed subject matter.

The article “a” modifying a noun should be understood as meaning one or more unless stated otherwise, or context requires otherwise. The phrase “based on” encompasses being partly or entirely based on.