U.S. patent application number 16/679798 was filed with the patent office on 2021-05-13 for enhanced vehicle operation.
This patent application is currently assigned to Ford Global Technologies, LLC. The applicant listed for this patent is Ford Global Technologies, LLC. Invention is credited to Joshua Guerra, Scott J. Lauffer, Zhong Ren, Lodewijk Wijffels.
Application Number | 20210139075 16/679798 |
Document ID | / |
Family ID | 1000004467531 |
Filed Date | 2021-05-13 |
United States Patent
Application |
20210139075 |
Kind Code |
A1 |
Ren; Zhong ; et al. |
May 13, 2021 |
ENHANCED VEHICLE OPERATION
Abstract
A computer includes a processor and a memory, the memory storing
instructions executable by the processor to detect an actual
steering column torque and an actual steering wheel angle, predict
a steering wheel torque with a state-estimation algorithm that
outputs a plurality of vehicle states including the predicted
steering wheel torque, adjust the plurality of vehicle states based
on an algorithm noise that is based on a steering wheel angular
speed to generate estimated vehicle states, output the estimated
vehicle states including an estimated user-applied steering wheel
torque, and transition from an autonomous mode to a manual mode
when the estimated steering wheel torque exceeds a threshold. The
state-estimation algorithm accepts input including the actual
steering column torque and the actual steering wheel angle and
outputs the plurality of vehicle states.
Inventors: |
Ren; Zhong; (Troy, MI)
; Wijffels; Lodewijk; (Northville, MI) ; Guerra;
Joshua; (Farmington Hills, MI) ; Lauffer; Scott
J.; (Northville, MI) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Ford Global Technologies, LLC |
Dearborn |
MI |
US |
|
|
Assignee: |
Ford Global Technologies,
LLC
Dearborn
MI
|
Family ID: |
1000004467531 |
Appl. No.: |
16/679798 |
Filed: |
November 11, 2019 |
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G05D 2201/0213 20130101;
B62D 6/10 20130101; B62D 6/007 20130101; B62D 6/02 20130101; B60W
10/20 20130101; G05D 1/0061 20130101; G05D 1/0088 20130101 |
International
Class: |
B62D 6/10 20060101
B62D006/10; B62D 6/00 20060101 B62D006/00; B60W 10/20 20060101
B60W010/20; G05D 1/00 20060101 G05D001/00; B62D 6/02 20060101
B62D006/02 |
Claims
1. A system, comprising a computer including a processor and a
memory, the memory storing instructions executable by the processor
to: detect an actual steering column torque and an actual steering
wheel angle; predict a user-applied steering wheel torque with a
state-estimation algorithm that accepts input including the actual
steering column torque and the actual steering wheel angle, and
outputs a plurality of vehicle states including the predicted
user-applied steering wheel torque; adjust the plurality of vehicle
states based on an algorithm noise that is based on a steering
wheel angular speed to generate estimated vehicle states; output
the estimated vehicle states including an estimated user-applied
steering wheel torque; and transition from an autonomous mode to a
manual mode when the estimated user-applied steering wheel torque
exceeds a threshold.
2. The system of claim 1, wherein the plurality of vehicle states
include the steering wheel torque, an estimated steering wheel
angle, and an estimated steering wheel angle speed.
3. The system of claim 2, wherein the estimated steering wheel
angle speed includes a time rate of change of the steering wheel
angle and a steering wheel inertia generated by the actual steering
wheel torque turning a steering wheel to the actual steering wheel
angle.
4. The system of claim 1, wherein the instructions further include
instructions to transition from the autonomous mode to the manual
mode when the estimated user-applied steering wheel torque exceeds
the threshold for an elapsed time exceeding a time threshold.
5. The system of claim 1, wherein the instructions further include
instructions to input the actual steering column torque, the actual
steering wheel angle, a stiffness of a steering column, and a
damping coefficient of the steering wheel to the state-estimation
algorithm to estimate the user-applied steering wheel torque.
6. The system of claim 1, wherein the algorithm noise is a
covariance of a modeling error, the steering wheel angular speed,
and a noise factor that is inversely proportional to the steering
wheel angular speed.
7. The system of claim 1, wherein the instructions further include
instructions to initiate the state-estimation algorithm with a set
of predetermined parameters including a reference steering motor
torque and a reference steering wheel angle.
8. The system of claim 1, wherein the state-estimation algorithm is
a Kalman filter.
9. The system of claim 1, wherein the estimated user-applied
steering wheel torque is a torque applied to a steering wheel by an
operator of a vehicle.
10. The system of claim 1, wherein the instructions further include
instructions to input a damping coefficient of a steering column
and a damping coefficient of a steering wheel to the
state-estimation algorithm to estimate the user-applied steering
wheel torque.
11. A method, comprising: detecting an actual steering column
torque and an actual steering wheel angle; predicting a
user-applied steering wheel torque with a state-estimation
algorithm that accepts input including the actual steering column
torque and the actual steering wheel angle, and outputs a plurality
of vehicle states including the predicted user-applied steering
wheel torque; adjusting the plurality of vehicle states based on an
algorithm noise that is based on a steering wheel angular speed to
generate estimated vehicle states; outputting the estimated vehicle
states including an estimated user-applied steering wheel torque;
and transitioning from an autonomous mode to a manual mode when the
estimated user-applied steering wheel torque exceeds a
threshold.
12. The method of claim 11, wherein the plurality of vehicle states
include the steering wheel torque, an estimated steering wheel
angle, and an estimated steering wheel angle speed.
13. The method of claim 12, wherein the estimated steering wheel
angle speed includes a time rate of change of the steering wheel
angle and a steering wheel inertia generated by the actual steering
wheel torque turning a steering wheel to the actual steering wheel
angle.
14. The method of claim 11, further comprising transitioning from
the autonomous mode to the manual mode when the estimated
user-applied steering wheel torque exceeds the threshold for an
elapsed time exceeding a time threshold.
15. The method of claim 11, wherein the estimated user-applied
steering wheel torque is a torque applied to a steering wheel by an
operator of a vehicle.
16. A system, comprising: a steering wheel; a steering column
connected to the steering wheel; means for detecting an actual
steering column torque and an actual steering wheel angle of the
steering wheel; means for predicting a user-applied steering wheel
torque with a state-estimation algorithm that accepts input
including the actual steering column torque and the actual steering
wheel angle, and outputs a plurality of vehicle states including
the predicted user-applied steering wheel torque; means for
adjusting the plurality of vehicle states based on an algorithm
noise that is based on a steering wheel angular speed to generate
estimated vehicle states; means for outputting the estimated
vehicle states including an estimated user-applied steering wheel
torque; and means for transitioning from an autonomous mode to a
manual mode when the estimated user-applied steering wheel torque
exceeds a threshold.
17. The system of claim 16, wherein the plurality of vehicle states
include the steering wheel torque, an estimated steering wheel
angle, and an estimated steering wheel angle speed.
18. The system of claim 17, wherein the estimated steering wheel
angle speed includes a time rate of change of the steering wheel
angle and a steering wheel inertia generated by the actual steering
wheel torque turning a steering wheel to the actual steering wheel
angle.
19. The system of claim 16, further comprising means for
transitioning from the autonomous mode to the manual mode when the
estimated user-applied steering wheel torque exceeds the threshold
for an elapsed time exceeding a time threshold.
20. The system of claim 16, wherein the estimated user-applied
steering wheel torque is a torque applied to the steering wheel by
an operator of a vehicle.
Description
BACKGROUND
[0001] Vehicles can travel along roadways that are typically shared
by other vehicles. Autonomous or semi-autonomous vehicles, i.e.,
vehicles that operate wholly or at least partly without
intervention of a human operator, can adjust their speed and
distance from other vehicles based on the position of the other
vehicles. For example, a vehicle could adjust steering without
input from the human operator.
BRIEF DESCRIPTION OF THE DRAWINGS
[0002] FIG. 1 is a block diagram of an example system for operating
a vehicle.
[0003] FIG. 2 is a perspective view of an example steering
system.
[0004] FIG. 3 is a block diagram of the example steering
system.
[0005] FIG. 4 is a block diagram of an example process for
operating the vehicle.
DETAILED DESCRIPTION
[0006] A system includes a computer including a processor and a
memory, the memory storing instructions executable by the processor
to detect an actual steering column torque and an actual steering
wheel angle, predict a user-applied steering wheel torque with a
state-estimation algorithm that accepts input including the actual
steering column torque and the actual steering wheel angle, and
outputs a plurality of vehicle states including the predicted
user-applied steering wheel torque, adjust the plurality of vehicle
states based on an algorithm noise that is based on a steering
wheel angular speed to generate estimated vehicle states, output
the estimated vehicle states including an estimated user-applied
steering wheel torque, and transition from an autonomous mode to a
manual mode when the estimated user-applied steering wheel torque
exceeds a threshold.
[0007] The plurality of vehicle states can include the steering
wheel torque, an estimated steering wheel angle, and an estimated
steering wheel angle speed.
[0008] The estimated steering wheel angle speed can include a time
rate of change of the steering wheel angle and a steering wheel
inertia generated by the actual steering wheel torque turning a
steering wheel to the actual steering wheel angle.
[0009] The instructions can further include instructions to
transition from the autonomous mode to the manual mode when the
estimated user-applied steering wheel torque exceeds the threshold
for an elapsed time exceeding a time threshold.
[0010] The instructions can further include instructions to input
the actual steering column torque, the actual steering wheel angle,
a stiffness of a steering column, and a damping coefficient of the
steering wheel to the state-estimation algorithm to estimate the
user-applied steering wheel torque.
[0011] The algorithm noise is can be a covariance of a modeling
error, the steering wheel angular speed, and a noise factor that is
inversely proportional to the steering wheel angular speed.
[0012] The instructions can further include instructions to
initiate the state-estimation algorithm with a set of predetermined
parameters including a reference steering motor torque and a
reference steering wheel angle.
[0013] The state-estimation algorithm can be a Kalman filter.
[0014] The estimated user-applied steering wheel torque can be a
torque applied to a steering wheel by an operator of a vehicle.
[0015] The instructions can further include instructions to input a
damping coefficient of a steering column and a damping coefficient
of a steering wheel to the state-estimation algorithm to estimate
the user-applied steering wheel torque.
[0016] A method includes detecting an actual steering column torque
and an actual steering wheel angle, predicting a user-applied
steering wheel torque with a state-estimation algorithm that
accepts input including the actual steering column torque and the
actual steering wheel angle, and outputs a plurality of vehicle
states including the predicted user-applied steering wheel torque,
adjusting the plurality of vehicle states based on an algorithm
noise that is based on a steering wheel angular speed to generate
estimated vehicle states, outputting the estimated vehicle states
including an estimated user-applied steering wheel torque, and
transitioning from an autonomous mode to a manual mode when the
estimated user-applied steering wheel torque exceeds a
threshold.
[0017] The method can further include transitioning from the
autonomous mode to the manual mode when the estimated user-applied
steering wheel torque exceeds the threshold for an elapsed time
exceeding a time threshold.
[0018] The method can further include inputting the actual steering
column torque, the actual steering wheel angle, a stiffness of a
steering column, and a damping coefficient of the steering wheel to
the state-estimation algorithm to estimate the user-applied
steering wheel torque.
[0019] The method can further include initiating the
state-estimation algorithm with a set of predetermined parameters
including a reference steering motor torque and a reference
steering wheel angle.
[0020] The method can further include inputting a damping
coefficient of a steering column and a damping coefficient of a
steering wheel to the state-estimation algorithm to estimate the
user-applied steering wheel torque.
[0021] A system, includes a steering wheel, a steering column
connected to the steering wheel, means for detecting an actual
steering column torque and an actual steering wheel angle of the
steering wheel, means for predicting a user-applied steering wheel
torque with a state-estimation algorithm that accepts input
including the actual steering column torque and the actual steering
wheel angle, and outputs a plurality of vehicle states including
the predicted user-applied steering wheel torque, means for
adjusting the plurality of vehicle states based on an algorithm
noise that is based on a steering wheel angular speed to generate
estimated vehicle states, means for outputting the estimated
vehicle states including an estimated user-applied steering wheel
torque; and means for transitioning from an autonomous mode to a
manual mode when the estimated user-applied steering wheel torque
exceeds a threshold.
[0022] The system can further include means for transitioning from
the autonomous mode to the manual mode when the estimated
user-applied steering wheel torque exceeds the threshold for an
elapsed time exceeding a time threshold.
[0023] 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.
[0024] Human users can provide input to a steering wheel to
transition from an autonomous mode to a semiautonomous mode or a
manual mode. The input can be measured as a torque applied to the
steering wheel. When a steering assembly is operated autonomously,
i.e., without input from the human user, a steering motor applies
steering torque to a steering rack without input from the user. In
some instances, it may be necessary to detect that the human user
intends to manually operate the vehicle while the vehicle is in an
autonomous or semiautonomous mode. The user may input manual torque
to the steering rack by rotating the steering wheel when the user
desires to assume manual control of the steering assembly.
Differentiating the torque provided by the user from the resulting
torque of the steering column inertia can be difficult. Using a
Kalman filter as a state-estimation algorithm to estimate user
applied torque of the steering wheel and column based on
measurements of steering torque and steering wheel angles provides
a substantially real-time estimation of the torque applied to the
steering wheel by the user to determine whether the user intends to
transition autonomous control of the steering to manual
control.
[0025] FIG. 1 illustrates an example system 100 for operation of a
vehicle 101. A computer 105 in the vehicle 101 is programmed to
receive collected data 115 from one or more sensors 110. For
example, vehicle 101 data 115 may include a location of the vehicle
101, data about an environment around a vehicle, data about an
object outside the vehicle such as another vehicle, etc. A vehicle
101 location 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 data 115 can include measurements of
vehicle 101 systems and components, e.g., a vehicle 101 velocity, a
vehicle 101 trajectory, etc.
[0026] The computer 105 is generally programmed for communications
on a vehicle 101 network, e.g., including a conventional vehicle
101 communications bus such as a CAN bus, LIN bus etc., and or
other wired and/or wireless technologies, e.g., Ethernet, WIFI,
etc. Via the network, bus, and/or other wired or wireless
mechanisms (e.g., a wired or wireless local area network in the
vehicle 101), the computer 105 may transmit messages to various
devices in a vehicle 101 and/or receive messages from the various
devices, e.g., controllers, actuators, sensors, etc., including
sensors 110. Alternatively or additionally, in cases where the
computer 105 actually comprises multiple devices, the vehicle
network may be used for communications between devices represented
as the computer 105 in this disclosure. In addition, the computer
105 may be programmed for communicating with the network 125,
which, as described below, may include various wired and/or
wireless networking technologies, e.g., cellular, Bluetooth.RTM.,
Bluetooth.RTM. Low Energy (BLE), wired and/or wireless packet
networks, etc.
[0027] The data store 106 can be of any type, e.g., hard disk
drives, solid state drives, servers, or any volatile or
non-volatile media. The data store 106 can store the collected data
115 sent from the sensors 110.
[0028] Sensors 110 can include a variety of devices. For example,
various controllers in a vehicle 101 may operate as sensors 110 to
provide data 115 via the vehicle 101 network or bus, e.g., data 115
relating to vehicle speed, acceleration, position, subsystem and/or
component status, etc. Further, other sensors 110 could include
cameras, motion detectors, etc., i.e., sensors 110 to provide data
115 for evaluating a position of a component, evaluating a slope of
a roadway, etc. The sensors 110 could, without limitation, also
include short range radar, long range radar, LIDAR, and/or
ultrasonic transducers.
[0029] Collected data 115 can include a variety of data collected
in a vehicle 101. Examples of collected data 115 are provided
above, and moreover, data 115 are generally collected using one or
more sensors 110, and may additionally include data calculated
therefrom in the computer 105, and/or at the server 130. In
general, collected data 115 may include any data that may be
gathered by the sensors 110 and/or computed from such data.
[0030] The vehicle 101 can include a plurality of vehicle
components 120. In this context, each vehicle component 120
includes one or more hardware components adapted to perform a
mechanical function or operation--such as moving the vehicle 101,
slowing or stopping the vehicle 101, steering the vehicle 101, etc.
Non-limiting examples of components 120 include 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, a park
assist component, an adaptive cruise control component, an adaptive
steering component, a movable seat, and the like.
[0031] When the computer 105 operates the vehicle 101, the vehicle
101 is an "autonomous" vehicle 101. For purposes of this
disclosure, the term "autonomous vehicle" is used to refer to a
vehicle 101 operating in a fully autonomous mode. A fully
autonomous mode is defined as one in which each of vehicle 101
propulsion (typically via a powertrain including an electric motor
and/or internal combustion engine), braking, and steering are
controlled by the computer 105. A semi-autonomous mode is one in
which at least one of vehicle 101 propulsion (typically via a
powertrain including an electric motor and/or internal combustion
engine), braking, and steering are controlled at least partly by
the computer 105 as opposed to a human operator. In a
non-autonomous mode, i.e., a manual mode, the vehicle 101
propulsion, braking, and steering are controlled by the human
operator.
[0032] The system 100 can further include a network 125 connected
to a server 130 and a data store 135. The computer 105 can further
be programmed to communicate with one or more remote sites such as
the server 130, via the network 125, such remote site possibly
including a data store 135. The network 125 represents one or more
mechanisms by which a vehicle computer 105 may communicate with a
remote server 130. Accordingly, the network 125 can 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.RTM., Bluetooth.RTM.
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.
[0033] FIG. 2 is a perspective view of an example steering assembly
200 for a vehicle 101. The steering assembly 200 includes a
steering wheel 205, a steering column 210, a steering motor 215, a
torsion bar 220, a pinion 225, and a steering rack 230. The
computer 105 and/or a user operates the steering assembly 200 to
steer the vehicle 101.
[0034] The steering assembly 200 includes the steering wheel 205.
The steering wheel 205 allows the user to steer the vehicle 101 by
transmitting rotation of the steering wheel 205 to movement of the
steering rack 230. The steering wheel 205 may be, e.g., a rigid
ring fixedly attached to the steering column 210.
[0035] The steering assembly 200 includes the steering column 210.
The steering column 210 transfers rotation of the steering wheel
205 to movement of the steering rack 230. The steering column 210
may be, e.g., a shaft connecting the steering wheel 205 to the
steering rack 230.
[0036] The steering assembly 200 includes the steering motor 215.
The steering motor 215 can move the steering rack 230. That is, the
computer 105 can actuate the steering motor 215 to move the
steering rack 230 without input from the user. The computer 105 can
actuate the steering motor 215 to provide additional steering
torque for the user (e.g., during power steering) or to steer the
vehicle 101 without input from the user. Alternatively, not shown
in the Figures, the steering motor 215 can be rotatably connected
to the steering column 210 to provide additional steering torque to
the steering column 210.
[0037] The steering assembly 200 includes the torsion bar 220. The
torsion bar 220 can be a device that connects the steering column
210 to the pinion 225. The torsion bar 220 allows rotation of the
pinion 225 by the steering column 210. The torsion bar 220 can
resist external forces to the pinion 225, e.g., changes in road
grade, potholes, etc., to reduce rotation of the pinion 225 from
forces other than the steering wheel 205. The torsion bar 220 can
be, e.g., a flexible spring.
[0038] The steering assembly 200 includes the pinion 225. The
pinion 225 transfers rotation of the steering column 210 to
translational motion of the steering rack 230. For example, the
pinion. 225 can be a circular gear. The pinion 225 defines a pinion
angle .theta..sub.p, i.e., an angle of the pinion 225 relative to a
neutral position. The pinion angle .theta..sub.p is proportional to
a steering wheel angle .theta..sub.sw, as described below. That is,
changes to the steering wheel angle .theta..sub.sw generate
predictable and proportional changes to the pinion angle
.theta..sub.p.
[0039] The steering assembly 200 includes the steering rack 230.
The steering rack 230 can transfer rotational motion of the
steering column 210 to rotation of wheels (not shown) of the
vehicle 101. The steering rack 230 can be, e.g., a rigid bar or
shaft having teeth engaged with the pinion 225.
[0040] FIG. 3 is a block diagram of the steering assembly 200
illustrating forces applied to steer the vehicle 101. The computer
105 can measure an actual steering column torque T.sub.m. The
steering column torque T.sub.m is an actual torque applied by the
steering column 205 to the torsion bar 220. The computer 105 can
determine the steering column torque T.sub.m from data 115 from a
torque sensor 110 in communication with the torsion bar 220.
[0041] The computer 105 can measure a pinion angle .theta..sub.p.
The "pinion angle" is the angle of the pinion 225 relative to a
specified or defined neutral position. The pinion angle
.theta..sub.p is directly proportional to an actual steering wheel
angle .theta..sub.sw by a steering ratio r. That is,
.theta..sub.sw=r.theta..sub.p. The pinion 225 and the steering
wheel 205 can be separated by one or more gears that translate
rotation of the steering wheel 205 to rotation of the pinion 225,
and the combined gear ratios of the gears between the steering
wheel 205 and the pinion 225 can be the steering ratio r. The
computer 105 can determine the pinion angle .theta..sub.p with an
angle sensor 110 on the pinion 225.
[0042] The data store 106 and/or the server 130 can store
coefficients associated with damping effects of the components 120
in the steering assembly 200. That is, each component 120 in the
steering assembly 200 can reduce energy transfer from the steering
wheel 205 and/or the steering motor 210 to the steering rack 230
from, e.g., friction, slippage, etc. The damping coefficients can
be empirically determined from tests of one or more steering
assemblies 200. The empirical tests can include operating a
steering assembly 200 with according to specified steering torques
and determining the damping coefficients from measured pinion
angles according to a conventional dynamic model correlating
steering torque to steering angle. The empirical tests can be
performed for a plurality of steering assemblies 200 with differing
characteristics for parts of the steering assemblies 200, e.g.,
different lengths of steering columns 210, different material
properties, etc., to determine the damping coefficients for a
steering assembly 200 installed in the vehicle 101. The
coefficients can include, e.g., a damping coefficient of the
steering wheel c.sub.sw, a damping coefficient of the steering
column c.sub.cl, a stiffness coefficient of the column k.sub.cl,
and a stiffness coefficient of the torsion bar k.sub.t. The
stiffness coefficients k.sub.ci, k.sub.t can be combined into an
effective stiffness
k e .times. f .times. f = k c .times. l .times. k t k c .times. l +
k t . ##EQU00001##
The steering assembly 200 defines a coefficient b.sub..theta. that
is a combined viscous friction coefficient of components of the
steering assembly 200. The shape of the steering wheel 205 defines
a moment of inertia J.sub.sw according to conventional moment of
inertia dynamic equations, and the moment of inertia J.sub.sw can
be stored in the data store 106 and/or the server 130.
[0043] The computer 105 can identify a plurality of states for a
state-estimation algorithm to estimate a steering torque generated
by a user T.sub.u of the vehicle 101, i.e., a user-applied steering
wheel torque. In this context, to "estimate" the steering torque
means to predict a value for the steering torque and to correct the
value based on noise generated by a prediction algorithm. The
state-estimation algorithm, explained further below, rapidly
discretizes and calculates the estimated user-applied steering
wheel torque T.sub.u in real time based on the parameters
describing the steering assembly 200 above. In this context, the
state-space algorithm "discretizes" theoretical kinematic models of
the steering assembly 200 by collecting data 115 in predetermined
timesteps according to the resolution of the sensors 110 and
calculating the estimated user-applied steering torque T.sub.u for
each timestep. By estimating the steering torque T.sub.u, the
computer 105 can compare the estimated steering wheel torque
T.sub.u to a predetermined torque threshold T.sub.d to determine
whether the user intends to transition the vehicle 101 from
autonomous control of the steering assembly 200 to manual control,
i.e., from one of the autonomous mode or the semiautonomous mode to
one of the semiautonomous mode or the manual mode. The computer 105
can identify two state equations describing three states:
[ x . 1 x . 2 T . u ] = [ 0 1 0 - k eff J sw - c cl + c sw J sw 1 J
sw 0 0 0 ] .function. [ x 1 x 2 T u ] + .times. [ c cl J sw k eff -
b .theta. J sw - c cl .function. ( c cl + c sw ) J sw 2 0 ] .times.
.theta. p .times. ( 1 ) T m = [ k eff 0 0 ] .function. [ x 1 x 2 T
u ] + ( - k eff ) .times. .theta. p ( 2 ) ##EQU00002##
where x.sub.1, x.sub.2 and T.sub.u are the vehicle states to be
estimated by the state-estimation algorithm and T.sub.m is the
actual steering column torque, as described above. As described
above, T.sub.u is the estimated user-applied steering torque. The
states x.sub.1, x.sub.2 are defined as:
x 1 = .theta. s .times. w ( 3 ) x 2 = .theta. . sw - c c .times. l
J s .times. w .times. .theta. p ##EQU00003##
The dot notation indicates a time rate of change of a variable,
e.g., {dot over (x)}.sub.1 is the time rate of change of the state
x.sub.1. Equations 1-3 can be discretized for timesteps [1,k] and
each matrix can be represented for clarity as a single alphanumeric
variable:
x.sub.k+1=Ax.sub.k+Bu.sub.k+G.xi..sub.k (4)
y.sub.k=Cx.sub.k+Du.sub.k+v.sub.k (5)
where x.sub.k+1 is the value for the vehicle states [x.sub.1
x.sub.2 T.sub.u].sup.T at a predicted timestep k+1, x.sub.k is a
current value for the vehicle states [x.sub.1 x.sub.2
T.sub.u].sup.T at a current timestep k, u.sub.k is the current
pinion angle .theta..sub.p, .xi..sub.k is an algorithm noise, as
described below, y.sub.k is the measured torque applied by the
steering motor 215, v.sub.k is a noise value from the sensors 110
determined as an average scatter of data 115 collection of the
sensors 110, A is the 3.times.3 matrix of Equation 1, B is the
3.times.1 matrix multiplied to .theta..sub.p in equation 1, C is
the 1.times.3 matrix of Equation 2, D is the factor -k.sub.eff in
Equation 2, and G is a predetermined noise effectiveness matrix, as
described below, for the algorithm noise .xi..sub.k. The timestep
between two steps k, k+1 can be, e.g., 4 milliseconds. In this
context, the symbol k without a subscript is an index referring to
a specific timestep and the symbols k.sub.c,k.sub.t,k.sub.eff with
subscripts refer to stiffness coefficients of components 120 of the
steering assembly 200 as described above. The T superscript refers
to the matrix transposition function, as is known, that transposes
rows of a matrix to columns and columns of a matrix to rows.
[0044] To estimate the vehicle states x.sub.k+1 (and thus the
user-applied steering wheel torque T.sub.u), the computer 105 can
input the current values x.sub.k, y.sub.k into a Kalman filter to
propagate the states to the k+1 timestep. The Kalman filter
predicts the vehicle states at the k+1 timestep by determining an
expected value of the vehicle states {circumflex over (x)}.sub.k
that is determined as a conditional mean of measurements of x up to
the k timestep:
{circumflex over (x)}.sub.k=E[x.sub.k|y.sub.i,i.di-elect
cons.[0,k]] (6)
where E is the conventional expected value function that outputs an
expected value {circumflex over (x)}.sub.k for inputs of the
vehicle states x.sub.k provided the values for the states y from
the timesteps 0 to k. That is, the expected value {circumflex over
(x)}.sub.k is the probability-weighted sums of the vehicle states
x.sub.k provided states y.di-elect cons.[y.sub.0,y.sub.k]. To
estimate the states x.sub.k, based on the predicted states
{circumflex over (x)}.sub.k, the computer 105 can determine an
estimation error covariance P.sub.k|k, a process noise covariance
Q.sub.k, and a measurement noise covariance R.sub.k:
P.sub.k|k=E[(x.sub.k-{circumflex over
(x)}.sub.k)(x.sub.k-{circumflex over (x)}.sub.k).sup.T] (7)
Q.sub.k=cov(.xi..sub.k,.xi..sub.k) (8)
R.sub.k=cov(v.sub.k,v.sub.k) (9)
where cov is the known covariance function, i.e., the covariance of
two variables a, b having average values , b is cov(a, b)=E[(a-
)(b-b)]=.sigma..sub.ab.sup.2, where .sigma..sub.ab is the standard
deviation of a, b.
[0045] The states can be initialized according to simulation
testing in one or more test vehicles 101. For example, based on
open-loop simulations in a test vehicle 101, an initial value for
the vehicle states {circumflex over (x)}.sub.0 can be determined
and stored in the data store 106 and/or the server 130. The initial
value {circumflex over (x)}.sub.0 can be determined based on, e.g.,
free structured estimation of kinematic models compared with
empirically tested parameters of steering assemblies 200 operating
according to specified steering torques and adjusted to align with
the empirically tested parameters. An initial estimation error
covariance P.sub.0=E[{circumflex over (x)}.sub.0,{circumflex over
(x)}.sub.0.sup.T] can be stored in the data store 106 and/or the
server 130.
[0046] The computer 105 can determine a Kalman gain K.sub.k for the
timestep k:
K.sub.k=P.sub.k|k-1C.sub.k.sup.T[C.sub.kP.sub.k|k-1C.sub.k.sup.T+R.sub.k-
].sup.-1 (10)
The Kalman gain K.sub.k is an estimation of a change between
expected values of the states {circumflex over (x)} between two
timesteps k-1 and k. That is, the computer 105 uses the Kalman gain
K.sub.k to estimate the expected value {circumflex over
(x)}.sub.k+1|k given previous expected values {circumflex over
(x)}.sub.k|k,{circumflex over (x)}.sub.k-1|k, as described below.
The computer 105 can, based on the Kalman gain, update the expected
value {circumflex over (x)}.sub.k|k:
{circumflex over (x)}.sub.k|k={circumflex over
(x)}.sub.k-1|k+K.sub.k[y.sub.k-C.sub.k{circumflex over
(x)}.sub.k-1|k] (11)
P.sub.k|k=[I-K.sub.kC.sub.k]P.sub.k|k-1 (12)
where I is the identity matrix. That is, the computer 105 updates
the expected value of the states {circumflex over (x)}.sub.k|k
based on the Kalman gain K.sub.k and the measured values of
y.sub.k, C.sub.k.
[0047] The computer 105 can estimate the values of the vehicle
states at timestep k+1, {circumflex over (x)}.sub.k-1|k:
{circumflex over (x)}.sub.k+1|k=A.sub.k{circumflex over
(x)}.sub.k|k+B.sub.ku.sub.k (13)
P.sub.k+1|k=A.sub.kP.sub.k|kA.sub.k.sup.T+G.sub.kQ.sub.kG.sub.k.sup.T
(14)
As described above, the vehicle states x.sub.k include the
estimated steering torque T.sub.u of the user. By estimating the
vehicle states {circumflex over (x)}.sub.k+1|k, the computer 105
estimates a steering torque T.sub.u,k+1 at the timestep k+1.
[0048] The computer 105 can determine the process noise covariance
Q.sub.k based on an angular speed {dot over (.theta.)}.sub.sw of
the steering wheel. That is, the algorithm noise .xi..sub.k can be
difficult to directly calculate, and the process noise covariance
Q.sub.k can be tuned to simulate the distribution of the algorithm
noise. The process noise covariance Q.sub.k can be defined as a
3.times.3 diagonal matrix:
Q k = [ Q 1 , k 0 0 0 Q 2 , k 0 0 0 Q 3 , k ] ( 15 )
##EQU00004##
where Q.sub.1, Q.sub.2, Q.sub.3 represent different noise factors.
The noise factor Q.sub.1 can be determined as the modeling error
for the pinion angle .theta..sub.p, and can be a constant
dimensionless value, e.g., 10.sup.-3.
[0049] The noise factor Q.sub.2 can be a factor that accounts for
noise generated by changes to the speed of the steering wheel:
Q.sub.2,k=a.sub.21{dot over ({circumflex over
(.theta.)})}.sub.sw,k+a.sub.22 (16)
where a.sub.21, a.sub.22 are coefficients determined from a least
squares fit of open-loop errors in collected data 115 about the
steering wheel angular speed {dot over (.theta.)}.sub.sw and {dot
over ({circumflex over (.theta.)})}.sub.sw,k is an expected value
of the steering wheel angular speed {dot over (.theta.)}.sub.sw at
the timestep k, i.e., {dot over ({circumflex over
(.theta.)})}.sub.sw,k=E[{dot over
(.theta.)}.sub.sw,k|.theta..sub.sw,i,i.di-elect cons.[0,k]].
[0050] The noise factor Q.sub.3 can be a factor that accounts for
high frequency surface noise that causes changes to the steering
wheel angular speed {dot over (.theta.)}.sub.sw without user
intervention. The noise factor Q.sub.3 can reduce false positive
detection by increasing inversely proportional to the steering
wheel angular speed {dot over (.theta.)}.sub.sw:
Q 3 , k = a 3 .times. 1 .theta. . ^ sw , k + a 3 .times. 2 ( 17 )
##EQU00005##
where a.sub.31, a.sub.32 are coefficients determine through
empirical testing on road surfaces with differing roughness to
determine surface noises that can affect algorithm noise.
[0051] The measurement noise covariance R.sub.k can be a
predetermined value based on a resolution of the sensors 110 used
to measure the pinion angle .theta..sub.p and the column torque
T.sub.m. For example, the measurement noise covariance R.sub.k can
be, e.g., 10.sup.-5. The ratio of the noise covariances
Q k R k ##EQU00006##
describes the apportionment of errors between the algorithm noise
and the sensor 110 resolution. For example, if
Q k R k >> 1 , ##EQU00007##
the errors from the algorithm noise outweigh the errors from the
sensor 110 resolution.
[0052] The algorithm noise .xi..sub.k is an error term that adjusts
the vehicle states x.sub.k+1 according to errors in the
state-estimation algorithm. That is, outputs from the Kalman filter
can differ from measured results, as described with respect to the
algorithm noise covariance Q.sub.k above. The matrix G.sub.k for
the algorithm noise .xi..sub.k can be a predetermined constant
matrix that weights the algorithm noise .xi..sub.k. That is, the
matrix G.sub.k can be determined to tune the algorithm noise
.xi..sub.k to account for simplifications of physical models used
in the steering models that defined the A.sub.k, B.sub.k matrices.
That is, the values in G.sub.k can be determined based on empirical
testing to compensate for differences between virtual steering
models and actual steering operation.
[0053] The computer 105 can compare the estimated user-applied
steering wheel torque T.sub.u,k+1 at the timestep k+1 to a torque
threshold. The torque threshold can be determined as an average
torque applied by users as determined from empirical testing to
turn the vehicle 101, i.e., a torque applied to the steering wheel
205 to transition the vehicle 101 from autonomous control of the
steering assembly 200 to manual control. That is, the user may
inadvertently bump the steering wheel 205, generating a torque on
the steering wheel 205 without intending to transition out of the
autonomous mode; inadvertently applied torque should not be
interpreted as an input to initiate a mode transition. The torque
threshold can be determined as higher than inadvertent torques to
avoid false positive indications to transition out of the
autonomous mode.
[0054] The computer 105 can determine whether the estimated
user-applied steering wheel torque T.sub.u,k+1 exceeds the torque
threshold for an elapsed time exceeding a time threshold. The time
threshold can be determined by empirical testing as a time greater
than an inadvertent bump on the steering wheel 205 and less than a
typical time for the user to apply torque to request to transition
out of the autonomous mode. That is, the time threshold can be
determined to reduce false positive indications from inadvertent
bumps from the user while recognizing intent by the user to
transition from autonomous control of the steering assembly 200 to
manual control.
[0055] Upon determining to transition from autonomous control of
the steering assembly 200 to manual control, the computer 105 can
transition to one of the semiautonomous mode or the manual mode.
The computer 105 can include a mode manager, i.e., programming that
determines the specific mode to transition upon leaving the
autonomous mode or the semiautonomous mode. For example, the mode
manager can include programming to transition the vehicle 101 from
the autonomous mode to the semiautonomous mode upon receiving user
input to the steering wheel 205, allowing user input to the
steering wheel 205 and maintaining computer 105 control of the
propulsion and/or the braking. In another example, the mode manager
can include programming to transition the vehicle 101 to the manual
mode, allowing the user to control the steering, the propulsion,
and the braking.
[0056] FIG. 4 is a block diagram of an example process 400 for
vehicle operation. The process 400 begins in a block 405, in which
the computer 105 detects a steering column torque T.sub.m and a
steering pinion angle .theta..sub.p. As described above, the
computer 105 can actuate one or more sensors 110 to detect the
current steering column torque T.sub.m and the current steering
pinion angle .theta..sub.p.
[0057] Next, in a block 410, the computer 105 inputs the detected
steering column torque T.sub.m, the pinion angle .theta..sub.p, and
parameters describing a steering assembly 200 to a Kalman filter.
As described above, the Kalman filter is a state-estimation
algorithm that estimates a plurality of vehicle states x.sub.1,
x.sub.2, T.sub.u based on the input values, an algorithm noise, and
a gain factor that accounts for changes in expected values of the
states.
[0058] Next, in a block 415, the computer 105 applies noise
correction to estimate the vehicle states x.sub.1, x.sub.2,
T.sub.u. As described above, the computer 105 predicts values for
the vehicle states x.sub.1, x.sub.2, T.sub.u and then applies noise
factors .xi., .nu. that result from algorithm noise and resolution
noise to correct the predicted vehicle states x.sub.1, x.sub.2,
T.sub.u to output estimated vehicle states x.sub.1, x.sub.2,
T.sub.u.
[0059] Next, in a block 420, the computer 105 outputs an estimated
user-applied steering wheel torque T.sub.u. As described above, the
state-estimation algorithm can output predicted vehicle states
x.sub.1, x.sub.2, T.sub.u that include an estimation of a
user-applied steering wheel torque T.sub.u applied to the steering
wheel 205 from a user. The state-estimation algorithm outputs an
estimation for the user-applied steering wheel torque T.sub.u at a
time indicated by a timestep k+1, where the timestep k corresponds
to the current time.
[0060] Next, in a block 425, the computer 105 determines whether
the estimated user-applied steering wheel torque exceeds a torque
threshold. The torque threshold is a torque that indicates that the
user intends to transition the vehicle 101 from the autonomous mode
to the semiautonomous mode or the manual mode. If the estimated
user-applied steering wheel torque exceeds the torque threshold,
the process 400 continues in a block 430. Otherwise, the process
400 continues in a block 440.
[0061] In the block 430, the computer 105 determines whether the
estimated user-applied steering wheel torque exceeds the torque
threshold for an elapsed time exceeding a time threshold. The time
threshold can be determined to reduce false positive indications
from inadvertent bumps from the user while recognizing intent by
the user to transition to the semiautonomous mode or the manual
mode. If the elapsed time exceeds the time threshold, the process
400 continues in a block 435. Otherwise, the process 400 continues
in the block 440.
[0062] In the block 435, the computer 105 transitions the vehicle
101 from autonomous control of the steering assembly 200 to manual
control. As described above, the computer 105 can include a mode
manager, i.e., programming to determine to which of the
semiautonomous mode and the manual mode the computer 105 should
transition upon receiving input from the user. For example, the
computer 105 can transition to the semiautonomous mode, allowing
manual input to the steering while operating the propulsion and the
braking with the computer 105.
[0063] In the block 440, the computer 105 determines whether to
continue the process 400. For example, the computer 105 can
determine to continue the process if the estimated steering wheel
torque T.sub.u indicates that the user does not intend to
transition out of the autonomous mode. If the computer 105
determines to continue, the process 400 returns to the block 405.
Otherwise, the process 400 ends.
[0064] As used herein, the adverb "substantially" modifying an
adjective means that a shape, structure, measurement, value,
calculation, etc. may deviate from an exact described geometry,
distance, measurement, value, calculation, etc., because of
imperfections in materials, machining, manufacturing, data
collector measurements, computations, processing time,
communications time, etc.
[0065] Computing devices discussed herein, including the computer
105 and server 130, include 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.TM., C, C++, Visual Basic, Java
Script, Python, 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 computer 105 is generally a collection of data
stored on a computer readable medium, such as a storage medium, a
random access memory, etc.
[0066] A computer readable medium includes any medium that
participates in providing data (e.g., instructions), which may be
read by a computer. Such a medium may take many forms, including,
but not limited to, non volatile media, volatile media, etc. Non
volatile media include, for example, optical or magnetic disks and
other persistent memory. Volatile media include dynamic random
access memory (DRAM), which typically constitutes a main memory.
Common forms of computer readable media include, for example, a
floppy disk, a flexible disk, hard disk, magnetic tape, any other
magnetic medium, a CD ROM, DVD, any other optical medium, punch
cards, paper tape, any other physical medium with patterns of
holes, a RAM, a PROM, an EPROM, a FLASH EEPROM, any other memory
chip or cartridge, or any other medium from which a computer can
read.
[0067] 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 process 400, one or more of the steps could be
omitted, or the steps could be executed in a different order than
shown in FIG. 4. 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.
[0068] Accordingly, it is to be understood that the present
disclosure, including the above description and the accompanying
figures and below claims, is intended to be illustrative and not
restrictive. Many embodiments and applications other than the
examples provided would be apparent to those of skill in the art
upon reading the above description. The scope of the invention
should be determined, not with reference to the above description,
but should instead be determined with reference to claims appended
hereto and/or included in a non provisional patent application
based hereon, along with the full scope of equivalents to which
such claims are entitled. It is anticipated and intended that
future developments will occur in the arts discussed herein, and
that the disclosed systems and methods will be incorporated into
such future embodiments. In sum, it should be understood that the
disclosed subject matter is capable of modification and
variation.
[0069] 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.
* * * * *