Patent Description:
Driver assistance systems typically have factory programmed responses that may not control a vehicle in a same manner as an operator. Actions by the system, such as braking and accelerating, may be too aggressive and/or too conservative compared to the operator's typical driving habits. <CIT> discloses a method for an automated operation of a vehicle. <CIT> discloses a method for configuration and personalization of control system behavior. <CIT> discloses an adaptive vehicle control system with driving style recognition based on headway distance.

Embodiments and developments are defined by the dependent claims.

<FIG> illustrates a speed control system <NUM>, hereafter the system <NUM>. The system <NUM> is an improvement over other systems, because the system <NUM> learns a driver's preference for speed control. The system <NUM> includes a controller circuit <NUM> configured to monitor a speed change response of an operator of a host vehicle <NUM>, based on a movement of a first vehicle <NUM> traveling on a roadway. That is, the controller circuit <NUM> monitors the operator changing a speed of the host vehicle <NUM>, and associates the operator's response with the movement of the first vehicle <NUM>. The speed change response may be an increase in speed (i.e., an acceleration), and/or a decrease in speed (i.e., a deceleration). The movement of the first vehicle <NUM> may be a lane change, or an impending or anticipated lane change, as will be described in more detail below. The controller circuit <NUM> monitors and learns the speed change response of the operator while the host vehicle <NUM> is operated in a manual driving mode (the learning phase), then applies this learned behavior while the host vehicle <NUM> is operated in an autonomous driving mode under similar traffic scenarios. Benefits of the system <NUM> are described herein using traffic scenarios where the first vehicle <NUM> cuts into a travel lane (i.e., a cut-in maneuver) ahead of the host vehicle <NUM> where the machine learning by the system <NUM> may be characterized as reactive learning, and where the first vehicle <NUM> performs a lane merge maneuver where the machine learning by the system <NUM> may be characterized as anticipatory learning. In an example, the reactive learning is executed when perception sensors (e.g., camera, radar, LiDAR, etc.) on the host vehicle <NUM> indicate that the first-vehicle <NUM> is crossing the lane boundary and is confirmed by the operator's action (e.g. applying the brakes). In an example, the anticipatory learning is executed prior to the perception sensors detecting the lane merge maneuver, and is executed when a perceived or anticipated trajectory of the first vehicle <NUM> indicates that the first vehicle <NUM> will merge in the future, and it is also confirmed by operator's action (e.g. applying the brakes). It will be appreciated that the system <NUM> may be applied to other traffic scenarios besides the cut-in and lane merge maneuvers, and may also employ any of the known machine learning algorithms.

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 samples 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. It 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.

The host vehicle <NUM> may be characterized as an automated vehicle. As used herein, the term automated vehicle may apply to instances when the host vehicle <NUM> is being operated in the automated driving mode, i.e. a fully autonomous driving mode, where the operator of the host vehicle <NUM> may do little more than designate a destination to operate the host vehicle <NUM>. The host vehicle <NUM> may also be operated in the manual driving mode where the degree or level of automation may be little more than providing an audible or visual warning to the human operator who is generally in control of the steering, accelerator, and brakes of the host vehicle <NUM>. For example, the system <NUM> may merely assist the operator as needed to change lanes and/or avoid interference with and/or a collision with, an object such as another vehicle, a pedestrian, or a road sign. According to the invention, the manual driving mode includes semi-automated driver assistance features, such as lane keeping, cruise control, and collision avoidance.

The controller circuit <NUM> may include a processor (not shown) such 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) or field programmable gate arrays (FPGAs) that are programmed to perform the techniques, or may include 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 accomplish 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 special 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, such as dynamic random-access memory (DRAM), static random-access memory (SRAM). The one or more routines may be executed by the processor to perform steps for determining the speed change response of the operator, based on signals received by the controller circuit <NUM> from sensors associated with the host vehicle <NUM> as described herein.

During the learning phase, the controller circuit <NUM> is configured to identify at least one speed parameter <NUM> based on the speed change response. In an example, the speed parameter <NUM> is a timing <NUM> of the response. In this example, controller circuit <NUM> determines the timing <NUM> of the operator adjusting a speed control actuator <NUM> of the host vehicle <NUM> in response to the movement of the first vehicle <NUM>. That is, the controller circuit <NUM> determines an amount of time (i.e. a response time, reaction time, etc.) between the movement of the first vehicle <NUM>, as detected by the system <NUM>, and the operator adjusting the speed control actuator <NUM>. In another example, the speed parameter <NUM> is a speed rate of change <NUM>. In this example, the controller circuit <NUM> determines how rapid the speed is changing as the operator is adjusting the speed control actuator <NUM> in response to the movement of the first vehicle <NUM>. That is, the controller circuit <NUM> determines how "hard" the operator is braking or accelerating the host vehicle <NUM>. The controller circuit <NUM> learns the operator's response time and speed control preferences while the host vehicle <NUM> is under the control of the operator (i.e., the manual driving mode) and stores the speed parameters <NUM> in the memory of the controller circuit <NUM> for later application under the autonomous driving mode. This learning feature is beneficial because it enables the automated vehicle to perform as the operator would drive under similar traffic conditions, as the factory programmed speed control parameters may be either too aggressive, or too conservative, for the particular operator and/or passengers of the host vehicle <NUM>. After the learning phase is completed, and when the host vehicle <NUM> is controlled in the autonomous driving mode, the controller circuit <NUM> applies the at least one speed parameter <NUM> based on the movement of a second vehicle <NUM> traveling on the roadway. That is, the controller circuit <NUM> applies the learned operator's speed control preferences when the second vehicle <NUM>, that is a different vehicle from the first vehicle <NUM>, performs the cut-in maneuver, or the lane merge maneuver, while the host vehicle <NUM> is operated in the autonomous driving mode.

In an example, the speed control actuator <NUM> is a brake pedal of the host vehicle <NUM>. In this example, the controller circuit <NUM> monitors the speed change response when the operator depresses the brake pedal (i.e., applies the brakes) in response to the movement of the first vehicle <NUM> (e.g. the cut-in or lane merge), thereby reducing the speed of the host vehicle <NUM>. In another example, the speed control actuator <NUM> is an accelerator pedal of the host vehicle <NUM>. In this example, the controller circuit <NUM> monitors the speed change response when the operator changes a position of the accelerator pedal in response to the movement of the first vehicle <NUM>, thereby increasing or decreasing the speed of the host vehicle <NUM>. In yet another example, the speed control actuator <NUM> is a cruise control switch of the host vehicle <NUM>. In this example, the controller circuit <NUM> monitors the speed change response when the operator changes a cruise control setting in response to the movement of the first vehicle <NUM>, thereby increasing or decreasing the speed of the host vehicle <NUM>.

In an example, the controller circuit <NUM> determines an actuation severity level <NUM> of the operator adjusting the speed control actuator <NUM>. In the example of the braking actuator, the controller circuit <NUM> determines a force applied to the braking actuator, and/or a distance the braking actuator is moved (i.e. a pedal travel), and/or how rapidly the operator depresses and/or releases the braking actuator (i.e. a rate of actuation). That is, the actuation severity level <NUM> indicates how rapidly the operator is depressing, or how rapidly the operator is releasing the brake pedal. In the example of the accelerator pedal, the controller circuit <NUM> determines the force applied to the accelerator pedal, and/or the distance the accelerator pedal is moved (i.e. the pedal travel), and/or how rapidly the operator depresses and/or releases the accelerator pedal (i.e. the rate of actuation). That is, the actuation severity level <NUM> indicates how rapidly the operator is depressing or releasing the accelerator pedal. In the example of the cruise control switch, the controller circuit <NUM> determines whether the switch is moved to increase or decrease the speed setting, and/or the duration of time that the operator actuates the cruise control switch. The controller circuit <NUM> stores the actuation severity level <NUM> in the memory associated with the speed parameters <NUM> for later application under the autonomous driving mode (see <FIG>).

<FIG> illustrates the traffic scenario of the cut-in maneuver, where the first vehicle <NUM> (i.e., the cut-in vehicle) is moving into a travel lane traveled by the host vehicle <NUM>, while the host vehicle <NUM> is operated in the manual driving mode. The arrows in the vehicles indicate a direction of travel. In the example illustrated in <FIG>, the controller circuit <NUM> monitors the speed change response of the operator when the controller circuit <NUM> determines that the first vehicle <NUM>, traveling ahead of the host vehicle <NUM> and in an adjacent lane, moves from the adjacent lane into the travel lane traveled by the host vehicle <NUM>. The controller circuit <NUM> determines that the first vehicle <NUM> enters the travel lane when a portion of the first vehicle <NUM> overlaps a boundary (e.g., a lane marking) of the travel lane by a predefined distance, typically referred to as an overlap distance. The overlap distance is defined as a lateral distance the first vehicle <NUM> overlaps the boundary of the travel lane traveled by the host vehicle <NUM>. In the example illustrated in <FIG>, the overlap distance is measured from the left lane marking (i.e., the dashed lane marking) to a right front corner of the first vehicle <NUM>. The overlap distance is a parameter typically set by the manufacturer used to indicate that another vehicle has actually entered the travel lane, and may be used in various advanced safety vehicle subsystems installed on the host vehicle <NUM>. In an example, the overlap distance set by the manufacturer is in a range of <NUM> meters (m) to <NUM>, and may be determined by a camera <NUM> installed on the host vehicle <NUM>.

The system <NUM> further includes the camera <NUM> in communication with the controller circuit <NUM> that captures images of the roadway traveled by the host vehicle <NUM>. The controller circuit <NUM> determines that the first vehicle <NUM> enters the travel lane based on the images that may include, but are not limited to, a position of the first vehicle <NUM> in relation to the lane markings on a left side and right side of a travel lane of the roadway traveled by the host vehicle <NUM>. The images may also include the lane markings on the left side and the right side of adjacent lanes to the travel lane. The lane markings may include a solid line, as is typically used to indicate the boundary of the travel lane. The lane markings may also include a dashed line, as is also typically used to indicate the boundary of the travel lane. The controller circuit <NUM> is generally configured (e.g. programmed or hardwired) to determine a width of the travel lane (i.e. a lane width) based on the lane markings detected by the camera <NUM>. That is, the images detected or captured by the camera <NUM> are processed by the controller circuit <NUM> using known techniques for image analysis to determine the lane width. Vision processing technologies, such as the EYE Q® platform from Mobileye Vision Technologies, Ltd. of Jerusalem, Israel, or other suitable devices may be used. In an example, the lane width is determined based on a known dimension of the host vehicle <NUM> that is stored in the memory of the controller circuit <NUM>. In an example, the known lane width is used to determine the overlap distance of the first vehicle <NUM>.

Referring back to <FIG>, the controller circuit <NUM> determines an overlap threshold <NUM> based on the images. The overlap threshold <NUM> indicates a maximum lateral distance that the first vehicle <NUM> has overlapped the boundary of the travel lane at the time of the speed change response by the operator. That is, the controller circuit <NUM> uses the camera <NUM> to determine how far the first vehicle <NUM> has moved into the travel lane before the operator responds by changing the speed of the host vehicle <NUM>, such as applying the brakes. The controller circuit <NUM> stores the overlap threshold <NUM> in the memory and associates the overlap threshold <NUM> with the stored speed parameters <NUM> (e.g., the timing <NUM> and speed rate of change <NUM> - see <FIG>).

The system <NUM> further includes a ranging sensor <NUM> in communication with the controller circuit <NUM>. The controller circuit <NUM> is further configured to determine a longitudinal distance <NUM> between the host vehicle <NUM> and the first vehicle <NUM> based on the ranging sensor <NUM>, at the time of the speed change response. The controller circuit <NUM> uses the longitudinal distance <NUM>, to, among other uses, limit the learning conditions of the system <NUM>, as will be described in more detail below.

<FIG> illustrate two examples of the operator's speed change response to the cut-in maneuver. In the example illustrated in <FIG>, the operator of the host vehicle <NUM> (driving in the manual mode) applies the brakes when the first vehicle <NUM> overlaps the dashed lane marking by the overlap threshold <NUM> of T1. In this example, the controller circuit <NUM> determines the first vehicle <NUM> is a longitudinal distance <NUM> of X1 ahead of the host vehicle <NUM> at the time the operator applies the brakes. The controller circuit <NUM> stores the overlap threshold <NUM> of T1 in the memory of the controller circuit <NUM>, along with the associated longitudinal distance <NUM> of X1, the speed parameters <NUM>, and the actuation severity level <NUM>, for use later when the host vehicle <NUM> is operated in the autonomous driving mode. In the example illustrated in <FIG>, the operator applies the brakes when the first vehicle <NUM> overlaps the dashed lane marking by the overlap threshold <NUM> of T2, where T2 is greater than T1 (i.e., the first vehicle <NUM> in <FIG> is farther into the travel lane before the operator applies the brakes). In this example, the controller circuit <NUM> determines that the first vehicle <NUM> is a longitudinal distance <NUM> of X2 ahead of the host vehicle <NUM> at the time the operator applies the brakes, where X2 is less than X1. That is, the host vehicle <NUM> in <FIG> is closer to the rear bumper of the first vehicle <NUM>, compared to <FIG>, because the operator in <FIG> waited a longer time to apply the brakes. The operator in <FIG> may be considered a more aggressive driver compared to the operator in <FIG>, and/or may be more comfortable allowing the shorter longitudinal distance <NUM> between the host vehicle <NUM> and the first vehicle <NUM> before applying the brakes. In the example illustrated in <FIG>, the controller circuit <NUM> also stores the overlap threshold <NUM> of T2 in the memory of the controller circuit <NUM>, along with the associated longitudinal distance <NUM> of X2, the speed parameters <NUM>, and the actuation severity level <NUM>, for use later when the host vehicle <NUM> is operated in the autonomous driving mode. The controller circuit <NUM> applies this learning (i.e., reactive learning) when the host vehicle <NUM> is operated in the autonomous driving mode, and when the second vehicle <NUM> performs the cut-in maneuver.

In an example, the ranging sensor <NUM> is a radar sensor. In another example, the ranging sensor <NUM> is a light detection and ranging (LiDAR) sensor. The ranging sensor <NUM> is configured to detect objects proximate to the host vehicle <NUM>. In the examples illustrated herein, the ranging sensor <NUM> is the radar sensor. The radar sensor detects a radar signal that is reflected by the features of the first vehicle <NUM>. Typical radar systems on vehicles are capable of only determining a distance (i.e. range) and azimuth-angle to the target so may be referred to as a two-dimensional (2D) radar system. Other radar systems are capable of determining an elevation angle to the target so may be referred to as a three-dimensional (3D) radar system. The radar sensor may include left sensors and right sensors mounted on both a front and rear of the host vehicle <NUM>. It is contemplated that the teachings presented herein are applicable to both 2D radar systems and <NUM>-D radar systems with one or more sensor devices, i.e. multiple instances of the radar sensor. The radar sensor is generally configured to detect the radar signal that may include data indicative of the detected targets present on the first vehicle <NUM>. As used herein, the detected target present on the first vehicle <NUM> may be a feature of the first vehicle <NUM> that is detected by the radar sensor and tracked by the controller circuit <NUM>. In an example, the radar sensor may be configured to output a continuous or periodic data stream that includes a variety of signal characteristics associated with each target detected. The signal characteristics may include or be indicative of, but are not limited to, the range to the target from the host vehicle <NUM>, the azimuth angle (not specifically shown) to the target relative to a host vehicle longitudinal axis, an amplitude of the radar signal, and a relative velocity of closure (i.e. a range rate) relative to the target.

<FIG> is a plot that illustrates the learning limitations of the overlap threshold <NUM>. The controller circuit <NUM> adjusts the overlap threshold <NUM> based on the longitudinal distance <NUM> by limiting the learning of the system <NUM> to longitudinal distances <NUM> that do not pose a collision risk to the host vehicle <NUM> and/or the first vehicle <NUM>. The controller circuit <NUM> is configured to adjust the overlap threshold <NUM> around a default value between a lower limit and a upper limit based on the longitudinal distance <NUM> between the host vehicle <NUM> and the first vehicle <NUM>. That is, once the controller circuit <NUM> determines that the cut-in event has occurred, the controller circuit <NUM> determines whether the overlap threshold <NUM> is within the bounds of the upper and lower limits indicated in <FIG>. If the overlap threshold <NUM> is within the upper and lower limits, the controller circuit <NUM> will store the overlap threshold <NUM> in the memory for later use during autonomous driving. If the overlap threshold <NUM> is outside the upper and lower limits, the controller circuit <NUM> will not store the overlap threshold <NUM> in the memory. An example of a logic flow of the overlap threshold <NUM> learning is shown in <FIG>.

Referring back to <FIG>, in an example, the line labeled "DEFAULT VALUE", is a starting value that may be set by the original equipment manufacturer (OEM). The longitudinal distance axis of <FIG> is divided into three zones. Zone <NUM> indicates the shortest distance between the host vehicle <NUM> and the first vehicle <NUM>, and in an example has a range from zero meters (m) to <NUM>. Zone <NUM> has the range of <NUM> to <NUM>, and zone <NUM> has the range of <NUM> to <NUM>. The distance ranges for the various zones may be user defined, and may also vary with the speed of the host vehicle <NUM> and/or the speed of the first vehicle <NUM>. In an example, the controller circuit <NUM> ignores the first vehicle's <NUM> cut-in maneuver at distances beyond zone <NUM>, as it may be unlikely that the operator will respond to such an event with a speed control change. The equations of the lines that define the upper limit, the lower limit, and the default value may be user defined, and may be linear, first order, second order, third order, or any equation as determined by the user. A feature of plot of the lower limit line is that a slope or gain of the line in zone <NUM> is substantially flatter than the slopes of the default value and upper limit lines. This feature is intended to prevent the system <NUM> learning any driving behavior that may be considered dangerous and/or too aggressive when the distance between the host vehicle <NUM> and the first vehicle <NUM> are within the range of zone <NUM>.

In an example, the controller circuit <NUM> determines a aggressiveness index <NUM> of the operator by the equation, <MAT> where |absc| is the absolute value of the baseline speed control maximum acceleration applied during the cut-in event (i.e., the default acceleration set by the OEM), and |aopr| is the absolute value of the operator's maximum acceleration control as learned by the controller circuit <NUM> in response to the cut-in event, as described above. In an example, the aggressiveness index <NUM> is typically in a range between -<NUM> and +<NUM>. In this example, if the operator decelerates, or brakes faster than the baseline value, the aggressiveness index <NUM> will be a negative value. The controller circuit <NUM> further determines an aggressiveness level <NUM> of the operator by the equation, <MAT> where the operator "round" is a MATLAB ® function developed by the MathWorks, Inc. of Natick, Massachusetts, USA, used to round the calculated value to the nearest decimal or integer. It will be understood that other rounding operators may be used.

The controller circuit <NUM> stores a plurality of aggressiveness levels in the memory of the controller circuit <NUM> and applies at least one of the plurality of aggressiveness levels when the host vehicle <NUM> is controlled in the autonomous driving mode. In an example, the controller circuit <NUM> stores a plurality of personalized control levels <NUM> indicative of various operator preferences (see <FIG>). In an example, the personalized control levels <NUM> indicate a scale of aggressiveness, with level <NUM> being the most conservative and level N being the most aggressive. In an example, the levels of aggressiveness may be associated with different operators of the host vehicle <NUM>. In another example, the levels of aggressiveness may be associated with the number occupants of the host vehicle <NUM>, such as whether the operator is accompanied by other passengers, or whether the operator is alone in the host vehicle <NUM>. It will be appreciated that an operator may exhibit different speed control preferences when driving alone, compared to when driving with passengers. In an example, system <NUM> further includes an occupant recognition system and the controller circuit <NUM> applies the at least one speed parameter <NUM> based on a recognition of the occupants of the host vehicle <NUM>. In an example, the occupant recognition system uses biometric features, such as facial and or retinal recognition of the occupants, via a camera that monitors a passenger compartment of the host vehicle <NUM>. In another example, the occupant recognition system uses a pressure exerted on seats in the passenger compartment to detect a location and number of passengers in the host vehicle <NUM>. In an example, the controller circuit <NUM> applies one of the personalized control levels <NUM> when the host vehicle <NUM> is controlled in the autonomous driving mode, based on the recognition of the operator and/or occupants of the host vehicle <NUM>, when the second vehicle <NUM> performs the cut-in or the lane merge maneuver.

While the system <NUM> has been described above in reference to the cut-in maneuver, it will be appreciated that the system <NUM> applies to the traffic scenario where the first vehicle <NUM>, traveling ahead of the host vehicle <NUM>, moves out from the travel lane traveled by the host vehicle <NUM> into an adjacent lane (i.e., a cut-out maneuver - see <FIG>). In this example, the controller circuit <NUM> monitors the speed change response of the operator when the controller circuit <NUM> determines that the first vehicle <NUM> performs the cut-out maneuver. In this example, the operator of the host vehicle <NUM> may respond by increasing the speed of the host vehicle <NUM> to pass the first vehicle <NUM>. The controller circuit <NUM> stores the learned parameters in the memory, as described above for the cut-in maneuver, and applies the learning when the host vehicle <NUM> is operated in the autonomous driving mode, and the second vehicle <NUM> performs the cut-out maneuver.

<FIG> illustrates the traffic scenario where the first vehicle <NUM>, traveling in the merge lane adjacent to the travel lane traveled by the host vehicle <NUM>, performs the lane merge maneuver. In this example, the controller circuit <NUM> monitors the speed change response of the operator when the controller circuit <NUM> determines that the first vehicle <NUM>, traveling in the merge lane adjacent to the host vehicle <NUM>, intends to merge in front of the host vehicle <NUM>. In the example illustrated in <FIG>, the first vehicle <NUM>, while traveling in the merge lane, is overtaking the host vehicle <NUM> from behind. That is, the first vehicle <NUM> is traveling faster than the host vehicle <NUM> and will pass the host vehicle <NUM> before merging into the travel lane ahead of the host vehicle <NUM>. In response to the impending lane merge, the operator may apply the brakes to slow the host vehicle <NUM> and allow the first vehicle <NUM> to merge into the travel lane ahead of the host vehicle <NUM>.

In an example, the system <NUM> further includes a merge lane detector <NUM> in communication with the controller circuit <NUM>. The merge lane detector <NUM> determines the presence of the merge lane adjacent to the travel lane, and the ranging sensor <NUM> detects the range and range rate of the first vehicle <NUM> traveling in the merge lane. The controller circuit <NUM> is further configured to determine that the first vehicle <NUM> will merge into the travel lane based on the merge lane detector <NUM> and the ranging sensor <NUM>. In an example, the merge lane detector <NUM> is a digital map that indicates the merge lane relative to a position of the host vehicle <NUM> on the roadway. The digital map may be located on-board the host vehicle <NUM> and may be integrated into the controller circuit <NUM>. The digital map may be stored 'in the cloud' and accessed via a transceiver (e.g. Wi-Fi, cellular, satellite - not shown). The digital map and transceiver may also be part of a location-device (e.g. a global positioning system (GPS) - not shown). In another example, the merge lane detector <NUM> is the camera <NUM> that indicates the merge lane based on images of lane markings on the roadway. In yet another example, the merge lane detector <NUM> is a combination of the digital map and the camera <NUM>.

In an example, the controller circuit <NUM> further determines a buffer zone directly behind the host vehicle <NUM>. The buffer zone includes an area extending laterally into the merge lane from a rear of the host vehicle <NUM> to a distance threshold <NUM> along the longitudinal axis of the host vehicle <NUM>. In an example, the distance threshold <NUM> is initially set to <NUM>. In another example, the distance threshold <NUM> varies with the speed of the host vehicle <NUM>. In an example, the controller circuit <NUM> monitors the speed change response by the operator when the first vehicle <NUM> enters the buffer zone. The controller circuit <NUM> learns the operator's preference for braking for the merging first vehicle <NUM> while the host vehicle <NUM> is operated in the manual driving mode. The controller circuit <NUM> then applies this learning (i.e., anticipatory learning) when the host vehicle <NUM> is operated in the autonomous driving mode, and when the second vehicle <NUM> performs the lane merge maneuver.

The controller circuit <NUM> further determines a time in which the first vehicle <NUM> will enter the buffer zone based on the range and the range rate of the approaching first vehicle <NUM> and the distance threshold <NUM>. When the time in which the first vehicle <NUM> will enter the buffer zone is greater than a time threshold, the controller circuit <NUM> increases the distance threshold <NUM> such that the time in which the first vehicle <NUM> will enter the buffer zone is equal to the time threshold. In an example, the time threshold is set at <NUM> seconds. In this example, the controller circuit <NUM> determines, based on the radar sensor data, that the first vehicle <NUM> will enter the buffer zone, with the distance threshold <NUM> initially set to <NUM>, in <NUM> seconds. In this example, the controller circuit <NUM> then lengthens the distance threshold <NUM> so that the first vehicle <NUM> will enter the buffer zone in <NUM> seconds. It will be understood that the adjusted length of the distance threshold <NUM> will depend on the speeds of the host vehicle <NUM> and the first vehicle <NUM>. The time threshold may be any time and may be user defined. The time threshold may vary with the speeds of the host vehicle <NUM> and/or the speed of the first vehicle <NUM>. The controller circuit <NUM> stores a plurality of distance thresholds <NUM> in a memory of the controller circuit <NUM> and applies at least one of the plurality of distance thresholds <NUM> when the host vehicle <NUM> is controlled in the autonomous driving mode, and when the second vehicle <NUM> performs the lane merge maneuver. In an example, the plurality of distance thresholds <NUM> are included in the plurality of personalized control levels <NUM> indicative of various operator preferences, as described above. In an example the controller circuit <NUM> may apply the learned distance thresholds <NUM> based on the occupant recognition, as described above. An example of the logic flow of the distance threshold <NUM> learning is shown in <FIG>.

While the examples described above disclose the learning of the operator's preferences being applied to a particular host vehicle <NUM>, in an example the controller circuit <NUM> is further configured to apply the at least one speed parameter <NUM> when the operator is an occupant of another vehicle controlled in the autonomous driving mode. In an example, the operator may employ a ride sharing vehicle (e.g., a rental car, etc.) and may wish to have their speed control preferences applied to the ride sharing vehicle. The controller circuit <NUM> of the ride sharing vehicle may download an operator profile supplied by the operator to transfer the operator's speed control preferences to the ride sharing vehicle. In an example, the operator's preferences may be shared through a mobile application installed on the operator's mobile device. In another example, the operator's preferences may be downloaded through a cloud based server. The ride sharing vehicle may apply the operator's speed control preferences when the ride sharing vehicle is operated in the autonomous driving mode, when the second vehicle <NUM> performs the cut-in and/or lane merge maneuvers.

<FIG> is a flow chart of a method <NUM> of operating the system <NUM>.

Step <NUM>, MONITOR SPEED CHANGE RESPONSE, includes monitoring, with the controller circuit <NUM> while the host vehicle <NUM> is operated in a manual driving mode, the speed change response of the operator of the host vehicle <NUM> based on the movement of a first vehicle <NUM> traveling on the roadway. The controller circuit <NUM> determines a movement of the first vehicle <NUM> traveling on the roadway, as described above. The controller circuit <NUM> monitors the operator changing a speed of the host vehicle <NUM>, and associates the operator's response with the movement of the first vehicle <NUM>, as described above.

Step <NUM>, IDENTIFY SPEED PARAMETER, includes identifying, with the controller circuit <NUM>, at least one speed parameter <NUM> based on the speed change response, as described above. The speed parameters <NUM> include the timing <NUM> of the response and the speed rate of change <NUM> of the host vehicle <NUM>, as described above. The controller circuit <NUM> determines the timing <NUM> of the operator adjusting the speed control actuator <NUM> of the host vehicle <NUM> in response to the movement of the first vehicle <NUM>, as described above. The speed control actuator <NUM> is one of a brake pedal, an accelerator pedal, and a cruise control switch. The controller circuit <NUM> learns the operator's response time and speed control preferences (i.e. reactive learning and/or anticipatory learning) while the host vehicle <NUM> is under the control of the operator (i.e., the manual driving mode) and stores the speed parameters <NUM> in the memory for later application under the autonomous driving mode.

Step <NUM>, APPLY SPEED PARAMETER, includes applying with the controller circuit <NUM>, when the host vehicle <NUM> is controlled in an autonomous driving mode, the at least one speed parameter <NUM> based on the movement of a second vehicle <NUM> traveling on the roadway. That is, the controller circuit <NUM> applies the learned operator's speed control preferences when the second vehicle <NUM>, that is a different vehicle from the first vehicle <NUM>, performs the cut-in maneuver, the cut-out maneuver, or the lane merge maneuver while the host vehicle <NUM> is operated in the autonomous driving mode, as described above.

Accordingly, a vehicle system <NUM> and a method <NUM> of operating the vehicle system <NUM> are provided. The vehicle system <NUM> may provide advantages over other systems because the vehicle system <NUM> enables the automated vehicle to perform as the operator would drive under similar traffic conditions, as the factory programmed speed control parameters may be either too aggressive, or too conservative, for the particular operator and/or passengers of the host vehicle <NUM>.

Claim 1:
A system (<NUM>) comprising:
at least one perception sensor (<NUM>, <NUM>), and
a controller circuit (<NUM>) configured to:
monitor, while a host vehicle (<NUM>) is operated in a manual driving mode including semi-automated driver assistance features, a speed change response of an operator of the host vehicle (<NUM>) based on an indication by the at least one perception sensor (<NUM>, <NUM>) that a first vehicle (<NUM>), traveling ahead of the host vehicle (<NUM>) in an adjacent lane, moves from the adjacent lane into a travel lane of a roadway traveled by the host vehicle (<NUM>);
identify at least one speed parameter (<NUM>) based on the speed change response, the at least one speed parameter (<NUM>) being one of a timing (<NUM>) and a speed rate of change (<NUM>);
determine an overlap threshold (<NUM>) indicating a maximum lateral distance the first vehicle (<NUM>) has overlapped a boundary of the travel lane at the time of the speed change response; and
apply, when the host vehicle (<NUM>) is controlled in an autonomous driving mode, the overlap threshold (<NUM>) and the at least one speed parameter (<NUM>) based on the movement of a second vehicle (<NUM>) traveling on the roadway.