Patent Description:
<CIT> discloses a method for automated operation of a vehicle. <CIT> discloses in particular a method, comprising: receiving from a driver-monitoring sensor, with a controller circuit, identity data indicating an identity of a driver of a vehicle; receiving from one or more vehicle sensors, with the controller circuit, vehicle lateral-response data based on steering maneuvers performed as the vehicle operates under control of the driver; determining, based on the vehicle lateral-response data, with the controller circuit, a plurality of lateral-steering parameters of the vehicle; adjusting based on the plurality of lateral-steering parameters, with the controller circuit, lateral-control parameters of the vehicle; associating the adjusted lateral-control parameters of the vehicle with the identity of the driver; and operating the vehicle, with the controller circuit, according to the lateral-control parameters associated with the identity of the driver. <CIT> discloses a method for guiding vehicles through vehicle maneuvers using machine learning models. <CIT> discloses a method for fail-safe speed profiles for cooperative autonomous vehicles. <CIT> discloses a method for controlling an autonomous driving configuration. <CIT> discloses a steering control device with which it is possible to reduce a steering amount while maintaining operability by a driver in accordance with travel conditions.

The present disclosure provides a method, a system and a computer readable storage medium according to the independent claims. Embodiments are given in the subclaims, the description and the drawings.

This document describes one or more aspects of a vehicle lateral-control system with adjustable parameters. In one example, the system includes a controller circuit configured to receive, from a driver-monitoring sensor, identity data indicating an identity of a driver of a vehicle. The controller circuit receives, from one or more vehicle sensors, vehicle lateral-response data based on steering maneuvers performed as the vehicle operates under control of the driver. The controller circuit determines, based on the vehicle lateral-response data, a plurality of lateral-steering parameters of the vehicle. The controller circuit adjusts, based on the plurality of lateral-steering parameters, lateral-control parameters of the vehicle. The controller circuit associates the adjusted lateral-control parameters of the vehicle with the identity of the driver. The controller circuit operates the vehicle according to the lateral-control parameters associated with the identity of the driver.

In another example, a method includes receiving from a driver-monitoring sensor, with a controller circuit, identity data indicating an identity of a driver of a vehicle. The method includes receiving from one or more vehicle sensors, with the controller circuit, vehicle lateral-response data based on steering maneuvers performed as the vehicle operates under control of the driver. The method includes determining, based on the vehicle lateral-response data, with the controller circuit, a plurality of lateral-steering parameters of the vehicle. The method includes adjusting based on the plurality of lateral-steering parameters, with the controller circuit, lateral-control parameters of the vehicle. The method includes associating the adjusted lateral-control parameters of the vehicle with the identity of the driver. The method includes operating the vehicle, with the controller circuit, according to the lateral-control parameters associated with the identity of the driver.

This summary is provided to introduce aspects of a vehicle lateral-control system with adjustable parameters, which is further described below in the Detailed Description and Drawings. For ease of description, the disclosure focuses on vehicle-based or automotive-based systems, such as those that are integrated on vehicles traveling on a roadway. However, the techniques and systems described herein are not limited to vehicle or automotive contexts but also apply to other environments where sensors can be used to determine dynamics of a moving body. This summary is not intended to identify essential features of the claimed subject matter, nor is it intended for use in determining the scope of the claimed subject matter.

The details of one or more aspects of a vehicle lateral-control system with adjustable parameters are described in this document with reference to the following drawings. The same numbers are used throughout the drawings to reference like features and components:.

The techniques of this disclosure relate to a vehicle lateral-control system with adjustable parameters. A controller circuit receives data from in-cabin sensors that indicate an identity of a driver while the driver is operating a vehicle in a manual-driving mode. The system learns the driver's steering habits or behaviors that affect a lateral response of the vehicle, for example, how aggressively the driver steers into and out of curves or positions the vehicle relative to lane markings and adjacent vehicles. The system associates or matches the learned steering behavior with the identity of the driver and adjusts lateral-control parameters that are used to control the vehicle when the vehicle is operated in an autonomous-driving mode. The system can store the adjusted lateral-control parameters for different drivers in a memory and recall the adjusted parameters when the driver's identity is recognized by the system. The driver can further adjust an aggressiveness of the lateral-control parameters by inputting a preference into a human machine interface (HMI) that can be presented to the driver on a console display of the vehicle. The HMI can include preset and adjustable selections that relate to lane biasing and corner-cutting on curves. The vehicle lateral-control system with adjustable parameters can improve driver and passenger comfort by reproducing the driver's steering behavior when the vehicle is operating in the autonomous-driving mode, resulting in an improved user experience.

<FIG> illustrates an example of a vehicle lateral-control system <NUM> with adjustable parameters, hereafter referred to as the system <NUM>. The system <NUM> includes a controller circuit <NUM> configured to receive identity data <NUM> from a driver-monitor sensor <NUM>, indicating an identity of a driver of a vehicle <NUM>. The driver-monitor sensor <NUM> can be a component of an occupant-monitor system <NUM> (OMS <NUM>) installed on the vehicle <NUM> that monitors some or all occupants or passengers inside the vehicle cabin. The controller circuit <NUM> receives vehicle lateral-response data <NUM> based on steering maneuvers performed as the vehicle <NUM> operates under control of the driver, for example, as the driver steers the vehicle on a roadway and executes various turns or lane changes. The vehicle lateral-response data <NUM> is received from vehicle sensors <NUM> that directly or indirectly detect or measure lateral movement or lateral accelerations of the vehicle <NUM>. For example, a difference between wheel speeds detected by left and right wheel-speed sensors can indirectly indicate the vehicle <NUM> is turning, compared to a yaw-rate sensor that directly measures an angular rotation of the vehicle <NUM>.

The controller circuit <NUM> can determine, based on the vehicle lateral-response data <NUM>, lateral-steering parameters <NUM> that can be used to tune or adjust lateral-control parameters <NUM> of the vehicle <NUM>. The lateral-steering parameters <NUM> represent a processing of the raw vehicle lateral-response data <NUM> and can be more readily used by the controller circuit <NUM> to match the driver's steering behavior when operating the vehicle <NUM> in the autonomous-driving mode. The lateral-control parameters <NUM> of the vehicle <NUM> are calibratable or tunable parameters that can be interpreted by vehicle controls <NUM> to control the steering, braking, and acceleration of the vehicle <NUM>.

The controller circuit <NUM> can adjust the lateral-control parameters <NUM> of the vehicle <NUM> and associate the adjusted lateral-control parameters <NUM> with the identity of the driver in the memory of the controller circuit <NUM>. The controller circuit <NUM> can recall the adjusted lateral-control parameters <NUM> for a particular driver from the memory when the vehicle <NUM> is operated in the autonomous-driving mode and the driver is identified or recognized while seated in the driver's seat.

Although the vehicle <NUM> can be any vehicle, for ease of description, the vehicle <NUM> is primarily described as being a self-driving automobile that is configured to operate in the autonomous-driving mode to assist the driver riding onboard the vehicle <NUM>. The vehicle <NUM> can be capable of SAE Level <NUM> autonomous operation (as referred to in the Background) that assists the driver with steering, braking, and acceleration, while the driver monitors the operation of the vehicle <NUM> at all times from a driver's seat.

In the example illustrated in <FIG>, the controller circuit <NUM> is installed on the vehicle <NUM> and is communicatively coupled to the driver-monitor sensor <NUM>, the vehicle sensors <NUM>, and the vehicle controls <NUM> via transmission links. The transmission links can be wired or wireless interfaces, for example, BLUETOOTH®, Wi-Fi®, near field communication (NFC), universal serial bus (USB), universal asynchronous receiver/transmitter (UART), or controller area network (CAN). In some examples, the controller circuit <NUM> receives data from other vehicle systems via a CAN bus (not shown), for example, an ignition status and a transmission gear selection.

The controller circuit <NUM> may be implemented as a microprocessor or other control circuitry such as analog and/or digital control circuitry. The control circuitry may include one or more application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs) that are programmed to perform the techniques, or one or more general-purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. The controller circuit <NUM> may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to perform the techniques. The controller circuit <NUM> may include a memory or storage media (not shown), including non-volatile memory, such as electrically erasable programmable read-only memory (EEPROM) for storing one or more routines, thresholds, and captured data. The EEPROM stores data and allows individual bytes to be erased and reprogrammed by applying programming signals. The controller circuit <NUM> may include other examples of non-volatile memory, such as flash memory, read-only memory (ROM), programmable read-only memory (PROM), and erasable programmable read-only memory (EPROM). The controller circuit <NUM> may include volatile memory (e.g., dynamic random-access memory (DRAM), static random-access memory (SRAM)). The controller circuit <NUM> can include one or more clocks or timers used to synchronize the control circuitry or determine an elapsed time of events. The one or more routines may be executed by the processor to perform steps for operating the vehicle <NUM> based on signals received by the controller circuit <NUM> from the driver-monitor sensor <NUM> and the vehicle sensors <NUM> as described herein.

<FIG> illustrates an example of the driver-monitor sensor <NUM> that is located remotely from the system <NUM>. The driver-monitor sensor <NUM> is configured to monitor the driver of the vehicle <NUM>, as will be described in more detail below. The driver-monitor sensor <NUM> can include one or more sensors that detect aspects of the driver and can be components of the OMS <NUM> installed on the vehicle <NUM>. The driver-monitor sensor <NUM> can include a camera that captures images of the driver, and the OMS <NUM> determines whether the driver's seat is occupied by a person based on the images. The camera can be a two-dimensional (2D) camera <NUM>-<NUM> or a 3D time-of-flight camera <NUM>-<NUM> that measures a time for light pulses to leave the camera and reflect back on the camera's imaging array.

Software executed by the OMS <NUM> can distinguish persons from animals and objects using known image-analysis techniques. The objects in the images are detected in regions of interest that correspond to the seating positions (e.g., the driver's seat position) within the cabin, and the objects are classified by the software into human and other classifications. Processing blocks or models in the software are pre-trained to recognize human forms or shapes of other objects, for example, a shopping bag, a box, or an animal.

The driver-monitor sensor <NUM> can also include a steering-wheel-torque sensor <NUM>-<NUM> that detects a torque applied to the steering wheel. The torque can be detected when the driver places a hand on the steering wheel, even with the autonomous control system steering the vehicle <NUM>. The steering-wheel-torque sensor <NUM>-<NUM> can be an electromechanical device integrated into a power-steering system of the vehicle <NUM> that determines a torsion bar angle required for the steering movement. The steering-wheel-torque sensor <NUM>-<NUM> can also output a steering angle and rate of change of the steering wheel angular position.

The driver-monitor sensor <NUM> can also include a seat-pressure sensor <NUM>-<NUM> that detects a pressure or pressure distribution applied to the seat (similarly, a steering-wheel-pressure sensor may be used to detect a pressure or pressure distribution applied by a driver's hands on the steering-wheel). The OMS <NUM> can determine whether the driver is occupying the driver's seat (or holding the steering-wheel) based on a pressure threshold indicative of a weight of the driver (or force exerted with a grip of the steering-wheel). For example, if the weight of the occupant is greater than thirty kilograms, the OMS <NUM> may determine that the driver is considered an adult. The pressure distribution can indicate whether the object occupying the driver's seat is a person or an object other than a person. The pressure distribution can also indicate whether the driver is in the correct position within the driver's seat; for example, when the driver is leaning over to one side of the seat, the pressure is concentrated on one side of the seat.

The driver-monitor sensor <NUM> can also include a capacitive steering-wheel sensor <NUM>-<NUM> that detects a touch of the driver's hands on the steering wheel. The capacitive steering-wheel sensors <NUM>-<NUM> can be located in a rim of the steering wheel and can detect contact points of the hands with the steering wheel. In some examples, touching the steering wheel with the hands distorts an electric field generated by the sensor and changes a capacitance of the sensor, indicating the presence of the driver's hand. The capacitive steering-wheel sensor <NUM>-<NUM> can detect whether one or both driver's hands are on the steering wheel.

The driver-monitor sensor <NUM> can also include a radar sensor <NUM>-<NUM> that detects a presence of objects in the vehicle cabin, and the OMS <NUM> can determine whether the driver's seat is occupied by the driver or the object based on point cloud data received from the radar sensor <NUM>-<NUM>, and may detect whether the driver's hands are on the steering-wheel. The OMS <NUM> compares the point cloud data to models in the software to determine whether the seat is occupied by the person or the object. In some examples, the radar sensor <NUM>-<NUM> can detect relatively small movements, for example, movements of a chest wall of the driver that is breathing (e.g., a child in a car seat).

The driver-monitor sensor <NUM> can also include a microphone <NUM>-<NUM> that detects a voice of the driver, and the OMS <NUM> can use voice-recognition software to process voice recordings to determine the identifying features that are unique to the voice of the driver. The microphone <NUM>-<NUM> can be a component of an infotainment system of the vehicle <NUM>.

The driver-monitor sensor <NUM> can also include a capacitive fingerprint sensor <NUM>-<NUM> that detects a fingerprint of the driver, and the OMS <NUM> can use fingerprint-recognition software to process the fingerprints to determine the identifying features that are unique to the detected fingerprints of the driver.

The OMS <NUM> and controller circuit <NUM> can use machine learning to detect the various driver aspects and steering behaviors. Machine learning is a data-analytics technique that teaches computers to learn from experience. Machine learning routines, or algorithms, use computational methods to learn information from data without relying on a predetermined equation as a model. The routines improve their performance as the sample size available for learning increases. Machine learning uses two types of techniques: supervised learning, which trains a model on known input and output data so that it can predict future outputs, and unsupervised learning, which finds hidden patterns or intrinsic structures in input data.

Supervised learning uses classification and regression techniques to develop predictive models. Common algorithms for performing classification include support vector machine (SVM), boosted and bagged decision trees, k-nearest neighbor, Naive Bayes, discriminant analysis, logistic regression, and neural networks. Common regression algorithms include linear model, nonlinear model, regularization, stepwise regression, boosted and bagged decision trees, neural networks, and adaptive neuro-fuzzy learning. Unsupervised learning finds hidden patterns or intrinsic structures in data and is used to draw inferences from datasets consisting of input data without labeled responses. Clustering is a common unsupervised learning technique. Common algorithms for performing clustering include k-means and k-medoids, hierarchical clustering, Gaussian mixture models, hidden Markov models, self-organizing maps, fuzzy c-means clustering, and subtractive clustering. In the context of self-driving automobiles, the OMS <NUM> and controller circuit <NUM> can use machine learning specifically to determine, based on the driver-monitor sensor <NUM>, the identity of the driver or other aspects of driving behavior that feed the vehicle lateral-response data <NUM> to ensure the controller circuit <NUM> can accurately determine the lateral-steering parameters <NUM>.

<FIG> illustrates examples of the vehicle sensors <NUM> that are located remotely from the system <NUM>. The vehicle sensors <NUM> can include an inertial measurement unit (IMU) <NUM>-<NUM>, a steering-angle sensor <NUM>-<NUM>, a vehicle-speed sensor <NUM>-<NUM>, a localization sensor <NUM>-<NUM>, external-facing cameras <NUM>-<NUM>, and ranging sensors <NUM>-<NUM>.

The IMU <NUM>-<NUM> is an electronic device that detects a relative movement of the vehicle <NUM> and can include a yaw rate, a longitudinal acceleration, a lateral acceleration, a pitch rate, and a roll rate of the vehicle <NUM>. The IMU <NUM>-<NUM> can use a combination of accelerometers and gyroscopes to detect the relative motion of the vehicle and can be a component of a dynamic control system installed on the vehicle <NUM>.

The steering-angle sensor <NUM>-<NUM> can be a component of the steering-wheel-torque sensor <NUM>-<NUM> that outputs a steering angle and rate of change of the steering wheel's angular position, as described above.

The vehicle-speed sensor <NUM>-<NUM> can be a rotational sensor (e.g., a wheel-speed sensor) where the signal may also be used to operate a speedometer of the vehicle <NUM>. The vehicle-speed sensor <NUM>-<NUM> can also use data from a global navigation satellite system (GNSS) that may be a component of the navigation system installed on the vehicle <NUM>, for example, a global positioning system (GPS) that determines the speed based on a change in positions of the vehicle <NUM>.

The localization sensor <NUM>-<NUM> can be the GNSS. GNSS refers to a constellation of satellites that transmit signals from space that provide positioning and timing data to GNSS receivers located on the vehicle <NUM>. The receivers then use this data to determine a location of the vehicle <NUM>. GNSS provides positioning, navigation, and timing services on a global or regional basis. GPS, BeiDou, Galileo, and GLONASS, IRNSS, and QZSS are examples of GNSS operated by the USA, the People's Republic of China, the European Union, India, and Japan, respectively.

The external-facing cameras <NUM>-<NUM> can be video cameras that capture images of the roadway traveled by the vehicle <NUM> or objects proximate to the vehicle <NUM>. The images can include lane markings that define borders of the roadway or travel lanes and other vehicles. The controller circuit <NUM> can classify the objects in the images using software to identify the objects.

The ranging sensors <NUM>-<NUM> can be radar sensors, LiDAR sensors, or ultrasonic sensors that detect objects proximate to the vehicle <NUM> that may be components of an advanced driver-assistance system (ADAS) that may be installed on the vehicle <NUM>. Radar sensors use radio frequency (RF) signals to detect objects and can determine distances based on a time to send and receive a reflected RF signal or a travel time of the RF signal. The radar sensor can also detect movement of the object based on a change in a phase of the reflected RF signal known as the Doppler effect. LiDAR sensors operate in a similar manner to radar sensors but instead use laser light pulses to detect objects and distances based on the travel time of the laser pulse and the Doppler effect. Ultrasonic sensors use the travel time of sound waves to detect objects and distances.

<FIG> illustrates an example of the system <NUM> with a driver-facing 2D camera <NUM>-<NUM> capturing images of the driver. The 2D camera <NUM>-<NUM> is configured to detect identifying features of a face of the driver of the vehicle <NUM>. For example, the 2D camera <NUM>-<NUM> detects features unique to the driver that can be used to distinguish the driver from other passengers in the vehicle <NUM> or other drivers that may operate the vehicle <NUM>.

The 2D camera <NUM>-<NUM> can capture an image of the face of the driver, and the OMS <NUM> can process the image to determine one or more facial features that are unique to the driver. The OMS <NUM> can use facial-recognition techniques that involve storing a digital image of the driver's face in a memory of the OMS <NUM>. The facial-recognition techniques enable the OMS <NUM> to pinpoint and measure the facial features captured by the image, for example, a distance between two features (e.g., two parts of a mouth, two ears, two eyes, two pupil centers), a position of a feature (e.g., a placement of a nose relative to other facial features), or a shape of a feature (e.g., a face, a brow, a jaw-line). These measured facial features can be determined by the OMS <NUM> and retained the memory of the OMS <NUM> for later use by the system <NUM>, as will be explained in more detail below. The OMS <NUM> can determine and store the identities of multiple drivers, and the identity data <NUM> from the OMS <NUM> can be periodically updated by the OMS <NUM> to ensure the controller circuit <NUM> can accurately associate the driver's identity with the adjusted lateral-control parameters <NUM>. For example, the OMS <NUM> can update the identity data <NUM> at ten-second intervals to account for driver changes during stops.

<FIG> is a flowchart <NUM> illustrating an example of the types of vehicle lateral-response data <NUM> that can be used by the system <NUM> to learn the driver's steering behavior. <FIG> illustrates data flows from the vehicle sensors that feed the determination of the lateral-steering parameters <NUM>.

At <NUM>, upon vehicle ignition, the system identifies the driver using the 2D camera <NUM>-<NUM>, as described above and illustrated in <FIG>. At <NUM>, the controller circuit <NUM> determines whether data from the vehicle sensors <NUM> is available. At <NUM>, the system <NUM> delays the learning process and defaults to factory-installed lateral-control parameters <NUM> if data from the vehicle sensors <NUM> is not available. The factory-installed lateral-control parameters <NUM> are initial lateral-control parameters <NUM> that are not associated with a driver's identity. If data from the vehicle sensors <NUM> is available, the system <NUM> proceeds with the learning process, as will be described in more detail below.

<FIG> illustrates the vehicle <NUM> traveling in the travel lane indicated by lane markings on the left side and right side of the vehicle <NUM>. In this example, the centerline of the travel lane is determined by the forward-facing camera based on the images of the lane markings. The vehicle lateral-response data <NUM> includes a cross-track error <NUM>-<NUM> relative to a lane centerline, a heading error <NUM>-<NUM> relative to a reference point or a look-ahead point <NUM>, and a roadway curvature <NUM>-<NUM> that are detected by the external-facing camera <NUM>-<NUM> or the localization sensor <NUM>-<NUM>. The cross-track error <NUM>-<NUM> indicates a difference between a coordinate center <NUM> of the vehicle <NUM> relative to a closest point on the centerline of the travel lane. In the example illustrated in <FIG>, the coordinate center <NUM> of the vehicle <NUM> is a point at a center of a front bumper. In this example, a positive cross-track error <NUM>-<NUM> indicates the coordinate center <NUM> of the vehicle <NUM> is positioned to a right side of the centerline of the travel lane, and a negative cross-track error <NUM>-<NUM> indicates the coordinate center <NUM> is positioned to a left side of the centerline. The cross-track error <NUM>-<NUM> can be measured in units of distance as detected by the external-facing camera <NUM>-<NUM> or detected by the localization sensor <NUM>-<NUM>. The roadway curvature <NUM>-<NUM> is defined as an inverse of the radius of curvature of the roadway and can be determined by the forward-facing camera or the position from the localization sensor <NUM>-<NUM> in relation to a digital map that includes data for the roadway curvature <NUM>-<NUM>.

In the example illustrated in <FIG>, the heading error <NUM>-<NUM> indicates the deviation in a heading <NUM> or pointing direction of the vehicle <NUM> relative to a reference point or the look-ahead point <NUM> on the centerline of the travel lane ahead of the vehicle <NUM>. In some examples, the heading error <NUM>-<NUM> indicates the deviation between an orientation of the vehicle <NUM> and a tangent vector to the centerline of the travel lane. The heading error <NUM>-<NUM> can be measured in angular units, and a heading error <NUM>-<NUM> of zero degrees indicates that the driver is steering the vehicle <NUM> directly to the look-ahead point <NUM>. The distance between the vehicle coordinate center <NUM> and the look-ahead point <NUM> is a look-ahead distance <NUM>, and the controller circuit <NUM> can change the look-ahead distance <NUM> based on the roadway curvature <NUM>-<NUM>. For example, as the roadway curvature <NUM>-<NUM> decreases approaching a straight road, the controller circuit <NUM> can increase the look-ahead distance <NUM> because the steering corrections needed to keep the vehicle <NUM> centered are smaller than for the roadway with a tighter curve or larger roadway curvature <NUM>-<NUM>.

Referring back to <FIG>, the vehicle lateral-response data <NUM> can also include a turn-reaction time <NUM>-<NUM> that can be determined based on the roadway curvature <NUM>-<NUM>, the vehicle speed from the vehicle-speed sensor <NUM>-<NUM>, and the yaw rate from the IMU <NUM>-<NUM>. The turn-reaction time <NUM>-<NUM> indicates the driver's steering reaction when entering a curve from a straight section of roadway or when encountering a change in the curvature of the roadway.

At <NUM>, the controller circuit <NUM> compares the roadway-curvature rate to the turning rate or yaw rate of vehicle <NUM> to determine the turn-reaction time <NUM>-<NUM>. The roadway-curvature rate can be calculated by the controller circuit <NUM> by multiplying the roadway curvature <NUM>-<NUM> by the velocity of the vehicle <NUM>. The controller circuit <NUM> can subtract the yaw rate from the roadway-curvature rate and compare the result to a threshold to determine whether the driver has steered the vehicle in response to the changing roadway curvature <NUM>-<NUM>. For example, the driver steering the vehicle <NUM> traveling at <NUM> meters per second (m/s), or about <NUM> kilometers per hour (km/h), entering a curve having a radius of curvature of <NUM> meters (e.g., a roadway curvature of <NUM>/m) will need to turn the vehicle <NUM> at a rate of about <NUM> radians/s to follow the roadway. If the yaw rate is close to zero (indicating that the driver has not turned the vehicle <NUM>), the difference between the roadway-curvature rate and the yaw rate will be <NUM> radians/s. The controller circuit <NUM> can determine the turn-reaction time <NUM>-<NUM> by recording the time between when the vehicle <NUM> should turn, based on the roadway-curvature rate, and the time when the vehicle actually turns, based on the yaw rate of the vehicle <NUM>. The controller circuit <NUM> can compare the turn-reaction time <NUM>-<NUM> to a threshold that indicates the driver has steered the vehicle <NUM> to follow the curve when the turn-reaction time <NUM>-<NUM> falls below the threshold. This threshold can be user-defined and can vary with the speed of the vehicle.

The vehicle lateral-response data <NUM> can also include a roadway curvature during a lane change <NUM>-<NUM> and a lane-change time <NUM>-<NUM>. The roadway curvature during a lane change <NUM>-<NUM> can be used to determine the driver's preference for making lane change maneuvers based on the roadway curvature <NUM>-<NUM>. For example, one driver may be comfortable changing lanes on tight curves, while another driver may not be comfortable changing lanes on any curved roads, regardless of the curvature. The lane-change time <NUM>-<NUM> is the time for the driver to steer the vehicle <NUM> from a current travel lane into an adjacent travel lane. The controller circuit <NUM> can use a lateral velocity derived from the lateral acceleration from the IMU <NUM>-<NUM> to determine the time for the driver to make the lane change and can use a vehicle turn signal as a trigger for the calculation. For example, when the driver activates the turn signal to indicate a future lane change, at <NUM>, the controller circuit <NUM> can integrate or perform a summation of the lateral distance moved by the vehicle <NUM> based on the signals received from the IMU <NUM>-<NUM>. At <NUM>, the controller circuit <NUM> determines whether the lateral distance moved by the vehicle <NUM> matches the lane width. If the lateral distance moved by the vehicle <NUM> does not match the lane width, the controller circuit <NUM> continues to integrate the lateral distance until the vehicle <NUM> has moved the lateral distance approximating the lane width. The result of this lateral-distance integration can be used by the controller circuit <NUM> to determine the roadway curvature during a lane change <NUM>-<NUM> and the lane-change time <NUM>-<NUM>.

The vehicle lateral-response data <NUM> can also include a lateral distance to adjacent vehicles <NUM>-<NUM>. The controller circuit <NUM> can use data from the ranging sensors <NUM>-<NUM> or external-facing cameras <NUM>-<NUM> to determine the distance the driver places between the vehicle <NUM> and adjacent vehicles while traveling on the roadway. The lateral distance to adjacent vehicles <NUM>-<NUM> can be used by the controller circuit <NUM> to determine a lane-biasing parameter, as will be described below.

Referring again to <FIG>, the controller circuit <NUM> processes the raw vehicle lateral-response data <NUM> to determine several lateral-steering parameters <NUM> that include a root-mean-square (RMS) lane biasing <NUM>-<NUM>, an average cross-track error <NUM>-<NUM>, an RMS heading error <NUM>-<NUM>, an RMS turn-reaction time <NUM>-<NUM>, a corner-cutting percentage <NUM>-<NUM>, a minimum roadway-curvature enabling a lane change <NUM>-<NUM>, and an RMS lane-change time <NUM>-<NUM>. In this example, the controller circuit <NUM> processes much of the vehicle lateral-response data <NUM> using the RMS technique, or the square root of the arithmetic mean of the squares of the individual data values. The processed vehicle lateral-response data <NUM> is used to reduce a computational load on the controller circuit <NUM> that can occur if only the raw vehicle lateral-response data <NUM> was used in place of the lateral-steering parameters <NUM>. Other techniques of processing the raw data may be used, for example, an arithmetic mean or running average of the data points. Processing the data using the RMS is used for some parameters because the RMS provides a sense of the magnitude of the numbers in a data set without the negative values offsetting the positive values, as can occur when using the arithmetic mean. As a result, the RMS can be the same or slightly larger than the arithmetic mean.

Referring back to <FIG>, at <NUM>, the controller circuit <NUM> determines whether the average cross-track error <NUM>-<NUM> is a positive or negative value and further determines an overshoot or undershoot of the corner-cutting percentage <NUM>-<NUM>, where the positive value indicates the overshoot or a steering path biased to the outside of the curves and the negative value indicates the undershoot or the steering path biased to the inside of the curves. The controller circuit <NUM> can determine the percentage of overshoot or undershoot based on the average cross-track error <NUM>-<NUM> and one half of the lane width.

At <NUM>, the controller circuit <NUM> determines whether the driver has performed a sufficient number of steering maneuvers for the system <NUM> to learn the driver's steering behaviors, and if so, at <NUM>, moves to adjust the settings of the lateral-control parameters <NUM> stored in the memory. If the driver has not performed enough steering maneuvers, the controller circuit <NUM> continues to collect the vehicle lateral-response data <NUM> from the vehicle sensors <NUM> until a data threshold is reached for the learning process to be completed. The data threshold can be determined through experimentation for each lateral-steering parameter <NUM> and may be in a range of thirty to sixty steering events.

<FIG> is a flow chart <NUM> that illustrates an example of the lateral-control parameters <NUM> determined by the controller circuit <NUM> based on the lateral-steering parameters <NUM>. The lateral-control parameters <NUM> include a lane-biasing value <NUM>-<NUM>, a cross-track-error gain <NUM>-<NUM>, a heading-error gain <NUM>-<NUM>, a look-ahead-distance gain <NUM>-<NUM>, a corner-cutting value <NUM>-<NUM>, and lane-change-activation threshold and duration <NUM>-<NUM>.

At <NUM>, the controller circuit <NUM> determines whether the lateral-steering parameters <NUM>-<NUM> to <NUM>-<NUM> are within their respective predetermined factory-set limits or ranges established by the vehicle manufacturer to ensure the system <NUM> does not use learned values that may create a vehicle-handling safety issue. For example, the driver that participates in vehicle racing events where the steering behavior may not be suitable for driving the vehicle <NUM> on the roadway in traffic. If any of the lateral-steering parameters <NUM>-<NUM> to <NUM>-<NUM> are outside of the manufacturer's predetermined limits, the controller circuit <NUM> defaults to the factory settings for the respective lateral-steering parameter <NUM>. If the lateral-steering parameters <NUM> are within predetermined limits, the controller circuit <NUM> proceeds to adjust the lateral-control parameters <NUM>, ensuring the adjusted lateral-control parameters <NUM> remain within the predetermined range.

The controller circuit <NUM> can pass through the RMS lane-biasing parameter <NUM>-<NUM> to become the lane-biasing value <NUM>-<NUM> that indicates the lateral distance the driver places between the vehicle <NUM> and other vehicles that are traveling in adjacent lanes.

At <NUM>, the controller circuit <NUM> compares the average cross-track error <NUM>-<NUM> to a look-up table stored in the memory. In the example illustrated in <FIG>, the look-up table is used to reduce computational loads on the controller circuit <NUM>. In other examples, the controller circuit <NUM> can compute the gain without the look-up table or access the gain from a cloud storage facility that may be accessed by the controller circuit <NUM> via the infotainment system of the vehicle <NUM>. The controller circuit <NUM> can interpolate the cross-track-error gain <NUM>-<NUM> based on the values in the look-up table and store the adjusted gain in the memory.

At <NUM>, the controller circuit <NUM> compares the RMS heading error <NUM>-<NUM> to a heading gain look-up table, interpolates the heading-error gain <NUM>-<NUM>, and stores the updated gain in the memory.

At <NUM>, the controller circuit <NUM> compares the RMS turn-reaction time <NUM>-<NUM> to a look-ahead gain look-up table, interpolates the look-ahead-distance gain <NUM>-<NUM>, and stores the updated gain in the memory.

At <NUM>, the controller circuit <NUM> converts the corner-cutting percentage <NUM>-<NUM> to a distance based on the current lane width and compares this distance to a threshold. The controller circuit <NUM> activates the corner-cutting when the corner-cutting distance is above the threshold. The threshold can be user-defined and can be based on the vehicle speed. For example, a threshold of <NUM> meters would allow the activation of corner-cutting when the corner-cutting distance exceeds <NUM> meters. The controller circuit <NUM> then stores the updated corner-cutting value <NUM>-<NUM> in the memory.

The controller circuit <NUM> can pass through the minimum roadway curvature, enabling a lane change <NUM>-<NUM> and the RMS lane-change time <NUM>-<NUM> to generate the lane-change-activation threshold and duration <NUM>-<NUM>. The controller circuit can set the curvature threshold to the minimum curvature value based on the minimum roadway curvature enabling a lane change <NUM>-<NUM> and can set the lane-change duration based on the RMS lane-change time <NUM>-<NUM>.

The controller circuit <NUM> can store the adjusted lateral-control parameters <NUM> in the memory and associate the adjusted values with the identity of the driver that is also stored in the memory. When the vehicle <NUM> is being operated in the autonomous-driving mode, the controller circuit <NUM> can recognize the driver in the driver's seat and recall the adjusted lateral-control parameters <NUM> from the memory for the recognized driver. The controller circuit <NUM> can then operate the vehicle <NUM> in the autonomous-driving mode using these recalled values to reproduce the driver's steering habits.

<FIG> illustrate examples of a human machine interface <NUM> (HMI <NUM>) that can receive input from the driver indicating the driver's preference for a lateral-control aggressiveness while the vehicle <NUM> is operated in the autonomous-driving mode. The examples shown in <FIG> are not intended to encompass all the possible lateral-control input scenarios and are shown to illustrate the concept for receiving input from the driver. The HMI <NUM> can be presented to the driver on a console display of the vehicle <NUM> or as an application on a mobile device, for example, a mobile phone or tablet that is synchronized with the vehicle <NUM>. The HMI <NUM> can include inputs for preset selections <NUM> and adjustable selections <NUM> that provide the driver with the opportunity to further customize their riding experience when the vehicle <NUM> is operated in the autonomous-driving mode.

In the example illustrated in <FIG>, the HMI <NUM> presents selections for a lane-change aggressiveness that indicates the driver's preference for a minimum road-curvature to enable a lane change <NUM>-<NUM>. The controller circuit <NUM> can further adjust the lateral-control parameters <NUM> associated with the identity of the driver that are stored in the memory and used to operate the vehicle <NUM> in the autonomous-driving mode. In this example, the driver can select from the two preset selections <NUM> (e.g., sport or comfort) or can select from the adjustable selections <NUM> by moving a slider bar between positions A and B. In this example, the sporty selection can indicate the driver prefers lane changes on roadways with more curvature compared to the comfort selection where the driver prefers lane changes on roadways with less curvature. The selections of either A or B on the slider bar provide the driver with a visual concept for the curvature of the roadway, with selection A being less aggressive than selection B. The controller circuit <NUM> can adjust the lateral-control parameters <NUM> that relate to the driver's input, for example, adjusting the previously stored lane-change activation threshold and duration <NUM>-<NUM> that was determined via the driver learning process.

<FIG> illustrates an example where the HMI <NUM> presents selections for a lane-centering aggressiveness that indicates the driver's preference for lane centering on curves. In this example, the sporty selection can indicate the driver's preference for steering closer to the inside of curves, while the comfort selection can indicate the driver's preference for steering closer to the outside of curves where the centrifugal forces perceived by the driver may be reduced. The slider bar offers the driver additional customization options for the lane-centering aggressiveness, as illustrated by positions A, B, and C. The controller circuit <NUM> can adjust the lateral-control parameters <NUM> that relate to the driver's selection, for example, adjusting the lane-biasing value <NUM>-<NUM> or the cross-track-error gain <NUM>-<NUM>.

<FIG> illustrates an example where the HMI <NUM> presents selections for a lane-bias aggressiveness that indicates the driver's preference for positioning the vehicle <NUM> in the lane adjacent to parked cars. In this example, the small bias selection can indicate the driver's preference for driving closer to the line of parked cars, while the large bias selection can indicate the driver's preference for keeping farther away from the parked cars. The slider bar offers the driver additional customization options for the lane-bias aggressiveness, as illustrated by positions A, B, and C. The controller circuit <NUM> can adjust the lateral-control parameters <NUM> that relate to the driver's selection, for example, adjusting the lane-biasing value <NUM>-<NUM>.

The controller circuit <NUM> can adjust the stored lateral-control parameters <NUM> based on values from look-up tables associated with the selections of lateral-control aggressiveness, as illustrated in the flow chart <NUM> in <FIG>. The process for adjusting the lateral-control parameters <NUM> based on the look-up tables is the same as described above and illustrated in <FIG>. At <NUM>, the controller circuit compares the HMI inputs to the factory-set limits to ensure the system <NUM> does not use learned values that may create a vehicle handling safety issue. At <NUM> to <NUM>, the controller circuit compares the HMI inputs to look-up tables or predetermined thresholds to further adjust the lateral-control parameters <NUM>-<NUM> to <NUM>-<NUM>, and <NUM>-<NUM>.

<FIG> is a flow diagram illustrating an example logic flow <NUM> performed by the controller circuit <NUM>. The logic flow starts at <NUM> with vehicle ignition and ends at <NUM> with driver learning. In this example, at <NUM>, upon the driver actuating a vehicle ignition switch inside the vehicle <NUM>, the controller circuit <NUM> receives the identity data <NUM> from the OMS <NUM>, as described above. At <NUM>, the controller circuit <NUM> determines whether the driver is recognized. If the controller circuit <NUM> does not recognize the driver, at <NUM>, the controller circuit <NUM> adds the new driver based on the identity data <NUM> and changes the lateral-control parameters <NUM> to the default factory settings that are not associated with a driver's identity.

If the controller circuit <NUM> recognizes the driver, at <NUM>, the controller circuit <NUM> determines whether previous lateral-control parameters <NUM> are stored in the memory. If no lateral-control parameters <NUM> are stored in the memory, at <NUM>, the controller circuit <NUM> adds the new driver based on the identity data <NUM> and changes the lateral-control parameters <NUM> to the default factory settings. If lateral-control parameters <NUM> are stored in the memory, at <NUM>, the controller circuit <NUM> recalls the previous lateral-control parameters <NUM> from the memory that are associated with the recognized driver.

At <NUM>, the controller circuit <NUM> determines whether input via the HMI <NUM> has been received. If input via the HMI <NUM> has been received, at <NUM>, the controller circuit <NUM> adjusts the lateral-control parameters <NUM> based on the HMI input. If input via the HMI <NUM> has not been received, at <NUM>, the controller circuit <NUM> proceeds with the driver learning process as illustrated in <FIG> and <FIG> and adjusts the lateral-control parameters <NUM> as described above.

The examples described above are related to cameras detecting an image of the face of the driver. In other examples, the system <NUM> can be configured with other inputs that detect other identifying features that can be used to determine the driver's identity. The examples below describe other sensors that can detect other identifying features of the driver. The system architecture and logic flows are similar to the examples illustrated in <FIG>, except for the different sensors and corresponding control circuitry to operate the different sensors.

In this example, microphones installed on the vehicle <NUM> detect the voice of the driver. The OMS <NUM> can use voice-recognition software to process voice recordings to determine the identifying features that are unique to the detected voices and generate feature vectors based on these identifying features. In some examples, the voice-recognition software uses a text-dependent approach where a passphrase spoken by the driver is compared to a recording of the passphrase stored in the memory of the OMS <NUM>. In other examples, the voice-recognition software uses a text-independent approach where the driver can speak freely to the system <NUM>, and the software learns the driver's speech utterances over time. The identifying features of the feature vector can include various components extracted from an acoustic wave speech signal, for example, amplitudes and frequencies from particular bandwidths, formant frequencies or resonances in the frequency spectrum, pitch contours or variations in a fundamental frequency, and coarticulation in which the speech organs prepare to produce the next sound while transitioning from a previous sound.

In this example, capacitive fingerprint sensors installed on the vehicle <NUM> (e.g., on the steering wheel or ignition switch) can detect the fingerprint of the driver. The OMS <NUM> can use fingerprint-recognition software to process the fingerprints to determine the identifying features that are unique to the detected fingerprints and generate feature vectors based on these identifying features. The identifying features of the feature vector can include various components extracted from the fingerprint, for example, ridge endings and ridge bifurcations.

In this example, the cameras are infrared cameras (IR cameras), and the eyes are illuminated with light in the near-IR spectrum by IR illuminators located in the vehicle cabin. In some examples, the OMS <NUM> can use iris-recognition software that processes images of the iris of one or both eyes. In other examples, the OMS <NUM> can use retinal recognition software that processes images of the retina of one or both eyes. The identifying features of the feature vector can include various components extracted from the patterns of the iris or retina using known methods of feature extraction, for example, Gabor filters to extract frequency content, discrete wavelet transform (DWT), discrete cosine transform (DCT), or Harr wavelet transform (HWT).

<FIG> illustrates example methods <NUM> performed by the system <NUM>. For example, the controller circuit <NUM> configures the system <NUM> to perform operations <NUM> through <NUM> by executing instructions associated with the controller circuit <NUM>. The operations (or steps) <NUM> through <NUM> are performed but not necessarily limited to the order or combinations in which the operations are shown herein. Further, any of one or more of the operations may be repeated, combined, or reorganized to provide other operations.

Step <NUM> includes RECEIVE IDENTITY DATA. This can include the controller circuit <NUM> receiving identity data <NUM> from the driver-monitor sensor <NUM>, indicating the identity of the driver of the vehicle <NUM>. The driver-monitor sensor <NUM> may be a component of the OMS <NUM>, as described above. The identity data <NUM> can be image-based, voice-based, fingerprint-based, or eye-based data, and the identity data <NUM> can be stored in the memory of the controller circuit <NUM> for multiple drivers.

Step <NUM> includes RECEIVE VEHICLE LATERAL-RESPONSE DATA. This can include the controller circuit <NUM> receiving vehicle lateral-response data <NUM> from vehicle sensors <NUM> based on steering maneuvers performed as the vehicle <NUM> operates under control of the driver, as described above. The vehicle sensors <NUM> can directly or indirectly detect lateral movement of the vehicle <NUM>. The vehicle lateral-response data <NUM> can be used by the system <NUM> to learn the driver's steering behavior and can include the cross-track error <NUM>-<NUM> relative to a lane centerline, the heading error <NUM>-<NUM> relative to the look-ahead point <NUM>, the roadway curvature <NUM>-<NUM>, the turn-reaction time <NUM>-<NUM>, the roadway curvature during a lane change <NUM>-<NUM>, the lane-change time <NUM>-<NUM>, and the lateral distance to adjacent vehicles <NUM>-<NUM>, as described above.

Step <NUM> includes DETERMINE LATERAL-STEERING PARAMETERS. This can include the controller circuit <NUM> determining the lateral-steering parameters <NUM> based on the vehicle lateral-response data <NUM>, as described above. The controller circuit <NUM> processes the raw vehicle lateral-response data <NUM> to determine the lateral-steering parameters <NUM>. The lateral-steering parameters <NUM> include the RMS lane biasing <NUM>-<NUM>, the average cross-track error <NUM>-<NUM>, the RMS heading error <NUM>-<NUM>, the RMS turn-reaction time <NUM>-<NUM>, the corner-cutting percentage <NUM>-<NUM>, the minimum roadway-curvature enabling a lane change <NUM>-<NUM>, and the RMS lane-change time <NUM>-<NUM>, as described above.

Step <NUM> includes ADJUST LATERAL-CONTROL PARAMETERS. This can include the controller circuit <NUM> adjusting the lateral-control parameters <NUM> that are stored in the memory based on the lateral-steering parameters <NUM> of the identified driver. The lateral-control parameters <NUM> are used to control the vehicle <NUM> when the vehicle <NUM> is operating in the autonomous-driving mode and can reproduce the driver's steering behavior. The lateral-control parameters <NUM> include the lane-biasing value <NUM>-<NUM>, the cross-track-error gain <NUM>-<NUM>, the heading-error gain <NUM>-<NUM>, the look-ahead-distance gain <NUM>-<NUM>, the corner-cutting value <NUM>-<NUM>, and the lane-change-activation threshold and duration <NUM>-<NUM>, as described above. The controller circuit <NUM> adjusts the lateral-control parameters <NUM> within a predetermined range established by the vehicle manufacturer to ensure safe vehicle handling. The controller circuit <NUM> stores the adjusted lateral-control parameters <NUM> in the memory for later recall, as described above.

The controller circuit <NUM> can further adjust the lateral-control parameters <NUM> that are stored in the memory via inputs from the HMI <NUM>, as described above. The HMI <NUM> can include preset selections <NUM> and adjustable selections <NUM> that further enable the driver to customize their experience when operating the vehicle <NUM> in the autonomous-driving mode.

Step <NUM> includes ASSOCIATE ADJUSTED PARAMETERS WITH DRIVER IDENTITY. This can include the controller circuit <NUM> associating or matching the adjusted lateral-control parameters <NUM> stored in the memory with the identity of the driver that is also stored in the memory, as described above. The controller circuit <NUM> can associate several driver's identities with their respective adjusted lateral-control parameters <NUM> in the memory of the controller circuit <NUM> and recall the adjusted lateral-control parameters <NUM> upon recognizing the driver of the vehicle <NUM>.

Claim 1:
A method, comprising:
receiving, via a human machine interface (<NUM>), an input from a driver of a vehicle (<NUM>) indicating a lateral-control aggressiveness, the input comprising a preset selection (<NUM>) or adjustable selection (<NUM>) of a minimum road-curvature to enable a lane change (<NUM>-<NUM>);
receiving from a driver-monitoring sensor, with a controller circuit (<NUM>), identity data indicating an identity of the driver;
receiving from one or more vehicle sensors (<NUM>) separate from the human machine interface (<NUM>), with the controller circuit (<NUM>), vehicle lateral-response data (<NUM>) based on steering maneuvers performed as the vehicle operates under control of the driver, the vehicle lateral-response data (<NUM>) comprising information about lateral movements or lateral accelerations of the vehicle (<NUM>) as it operates under control of the driver;
determining, based on the vehicle lateral-response data (<NUM>), with the controller circuit (<NUM>), a plurality of lateral-steering parameters (<NUM>) of the vehicle (<NUM>), the vehicle lateral-response data (<NUM>) indicative of the lateral movements or lateral accelerations of the vehicle (<NUM>);
adjusting based on the plurality of lateral-steering parameters (<NUM>) and the input from the driver to the human machine interface (<NUM>), with the controller circuit (<NUM>), lateral-control parameters (<NUM>) of the vehicle (<NUM>);
associating the adjusted lateral-control parameters (<NUM>) of the vehicle (<NUM>) with the identity of the driver, the lateral-control parameters (<NUM>) usable to adjust positioning of the vehicle (<NUM>); and
operating the vehicle (<NUM>), with the controller circuit (<NUM>), according to the lateral-control parameters (<NUM>) associated with the identity of the driver.