Patent Description:
<CIT> discloses a method for assisting a driver of a vehicle in a driving maneuver, in which at least the surrounding area of the vehicle in front of the vehicle in the direction of travel is monitored to detect objects with which the vehicle would collide if it maintained its direction of travel. In response to an imminent collision with an object, at least one of a necessary steering action or a necessary braking action is indicated to the driver and initiated in order to prevent a collision with the object. The contour of the body of the vehicle is taken into account for ascertaining if a collision with an object is imminent.

<CIT> discloses a steer-by-wire man-machine sharing control method for an intelligent vehicle for driving assistance of the intelligent vehicle. <CIT> discloses in particular a method comprising: determining that an evasive steering assist, ESA, of a host vehicle is providing an ESA steering input to the host vehicle to avoid a collision with a target; determining a manual steering input to the host vehicle provided by a driver of the host vehicle; determining a score for the manual steering input, the score quantifying an amount of additional steering input provided by the manual steering input relative to the ESA steering input; determining that the score meets a first threshold for modifying the ESA steering input; determining whether the score meets a second threshold that is higher than the first threshold for cancelling the ESA steering input; and adjusting, based on whether the score meets the second threshold, the ESA steering input to provide a different ESA steering input than the ESA steering input prior to adjustment.

This document is directed to a method, a system and a computer-readable storage media according to the independent claims. Embodiments are given in the subclaims, the description and the drawings.

In one aspect, the present disclosure is directed at a system including at least one processor configured to determine that an evasive steering assist (ESA) of a host vehicle is providing an ESA steering input to the host vehicle to avoid a collision with a target. The processor is also configured to determine a manual steering input to the host vehicle provided by a driver of the host vehicle, determine an expected steering angle provided by the ESA steering input to the host vehicle, determine a manual steering torque applied by the driver to a steering column of the host vehicle, and determine an additional steering angle provided by the driver relative to the ESA steering input based on a difference between the manual steering input and the expected steering angle. The processor is further configured to calculate a score based on the additional steering angle and the manual steering torque. The score quantifies an amount of additional steering input provided by the manual steering input relative to the ESA steering input. The processor is further configured to determine whether the score meets a first threshold for modifying the ESA steering input and to determine whether the score meets a second threshold that is higher than the first threshold for cancelling the ESA steering input. In response to the score not meeting the first threshold, the processor is configured to maintain the ESA steering input. In response to the score meeting the first threshold but not meeting the second threshold, the processor is configured to adjust, based on the additional steering angle, the ESA steering input to provide a different ESA steering input than the ESA steering input prior to the adjustment. In response to the score meeting the second threshold, the processor is configured to cancel the ESA steering input and allow the driver to manually steer the host vehicle.

In another aspect, the present disclosure is directed at a method that includes determining that an evasive steering assist (ESA) of a host vehicle is providing an ESA steering input to the host vehicle to avoid a collision with a target. The method also includes determining a manual steering input to the host vehicle provided by a driver of the host vehicle and determining an expected steering angle provided by the ESA steering input to the host vehicle. The method further includes determining a manual steering torque applied by the driver to a steering column of the host vehicle, determining an additional steering angle provided by the driver relative to the ESA steering input based on a difference between the manual steering input and the expected steering angle, and calculating a score based on the additional steering angle and the manual steering torque. The score quantifies an amount of additional steering input provided by the manual steering input relative to the ESA steering input. The method further includes determining whether the score meets a first threshold for modifying the ESA steering input and whether the score meets a second threshold that is higher than the first threshold for cancelling the ESA steering input. In response to the score not meeting the first threshold, the method includes maintaining the ESA steering input and in response to the score meeting the first threshold but not meeting the second threshold, the method also includes adjusting, based on the additional steering angle, of the ESA steering input to provide a different ESA steering input than the ESA steering input prior to the adjustment. In response to the score meeting the second threshold, the method further includes cancelling the ESA steering input and allowing the driver to manually steer the host vehicle.

In further another aspect, the present disclosure is directed at a computer-readable storage media including instructions that, when executed by at least one processor, cause the processor to perform the method as described herein.

This Summary introduces simplified concepts for enabling ESA modification based on manual steering inputs that are further described in the Detailed Description and Drawings. 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.

Systems and techniques for enabling ESA modification based on manual steering inputs are described with reference to the following drawings that use some of the same numbers throughout to reference like or examples of like features and components.

ESA systems are able to apply steering inputs to vehicles in order to mitigate potential collisions with objects. During such interventions, drivers of the vehicles are able to provide additional steering inputs to the vehicles (e.g., through a steering wheel). Doing so, however, can cause conventional ESA systems to operate irregularly. For example, many conventional ESA systems cancel ESA when a steering torque provided by a driver surpasses a threshold. In many cases, merely canceling the ESA may be dangerous because the driver may inadvertently be reacting to the ESA intervention.

The techniques and systems herein enable ESA modification based on manual steering inputs. Specifically, a score is determined for a manual steering input to a host vehicle while an ESA is actively applying an ESA steering input to the host vehicle. The score quantifies an amount of additional steering input relative to the ESA steering input (e.g. additional steering angle, steering wheel torque). The ESA steering input is maintained, modified, or canceled based on the score. By doing so, the system is able to effectively adapt the ESA to the manual steering inputs thereby allowing for effective collision mitigation while ensuring that the vehicles operate as intended by the drivers.

<FIG> illustrates an example environment <NUM> where ESA modification based on manual steering inputs may be used. The example environment <NUM> contains a host vehicle <NUM> and a target <NUM>. The host vehicle <NUM> may be any type of system (automobile, car, truck, motorcycle, e-bike, boat, air vehicle, and so on). The target <NUM> may be any type of moving or stationary object (automobile, car, truck, motorcycle, e-bike, boat, pedestrian, cyclist, boulder, and so on).

In the example environment <NUM>, the host vehicle <NUM> determines that a collision with the target <NUM> is imminent and activates ESA. The ESA generates a path <NUM> to avoid the target <NUM> and provides an ESA steering input to the host vehicle <NUM> to follow the path <NUM>.

In addition to the ESA steering input, a manual steering input is provided by a driver of the host vehicle <NUM>. For example, the driver may wish to modify the path <NUM> or to manually control the host vehicle <NUM>. In some situations, there may be another object or target (e.g., to the left of the path), that may cause the driver to want to more-closely avoid the target <NUM> (e.g., by pushing the path <NUM> to the right). In other situations, the driver may wish to further avoid the target <NUM> (e.g., by pushing the path further to the left).

The total steering input (e.g., that provided by ESA and the driver) is illustrated by a steering angle <NUM> and by a manual steering torque <NUM>. The steering angle <NUM> may be an angle of steering wheels relative to a zero point (e.g., straight). The steering angle <NUM> is a combination of a steering angle provided by the ESA and that provided by the driver. Thus, a manual steering angle (e.g., that provided in addition to the ESA) may be a difference between the steering angle <NUM> and an expected steering angle to follow the path <NUM>. The manual steering torque <NUM> is indicative of an amount of torque provided to a steering column of the host vehicle <NUM>.

An ESA module <NUM> of the host vehicle, which is implemented at least partially in hardware, calculates a score <NUM> for the manual steering input (e.g., the additional steering input provided by the driver relative to the ESA steering input). The score is based on the steering angle <NUM>, an expected steering angle (e.g., that to follow the path <NUM>) from the ESA, and the manual steering torque <NUM>. The calculation of the score <NUM> is described further below.

The ESA module <NUM> uses the score <NUM> to determine whether to maintain the ESA steering input (e.g., at <NUM>), modify the ESA steering input (e.g., at <NUM>), or cancel the ESA steering input (e.g., at <NUM>). Maintaining the ESA steering input may involve the ESA continuing to steer the host vehicle <NUM> along the path <NUM>. Canceling the ESA steering input may involve the ESA ceasing the ESA steering input to allow the driver to manually steer the host vehicle <NUM>. Modifying the ESA steering input may involve the ESA module <NUM> modifying the path <NUM>. The modification of the ESA steering input is discussed further below.

By using the score <NUM> to maintain, modify, or cancel the ESA steering input, the techniques described herein enable the ESA module <NUM> to tune ESA steering input in light of additional manual steering inputs. In doing so, the collision with the target <NUM> may still be mitigated while providing further control by the driver of the host vehicle <NUM> as to how the host vehicle <NUM> avoids the target <NUM>. Furthermore, the use of the steering angle <NUM> in calculating the score <NUM> enables the ESA module <NUM> to determine intentions of the driver more-accurately, which may lead to increased safety and driver satisfaction.

<FIG> is an example illustration <NUM> of an ESA modification (e.g., at <NUM>). As described above, modifying the ESA may involve adjusting the path <NUM> based on the manual steering input. As illustrated, the path <NUM> has a corresponding destination point <NUM>. The destination point <NUM> represents a point on the path <NUM> that is laterally adjacent to the target <NUM> and at a longitudinal distance proximate to the target <NUM>. In many cases, the path <NUM> may end once the host vehicle <NUM> is laterally clear of the target <NUM>. Thus, the end of the path <NUM> may be the destination point <NUM>. Regardless of where the destination point <NUM> is longitudinally relative to the host vehicle <NUM>, the destination point <NUM> has a certain lateral distance <NUM>. The lateral distance <NUM> may be calculated any datum relative to the host vehicle <NUM> or target <NUM> (e.g., centerline <NUM>).

The ESA module <NUM> uses the steering angle <NUM> and the path <NUM> to determine the manual steering angle (or use the manual steering angle calculated as part of the score <NUM>). Again, the manual steering angle is that provided by the driver in addition to that expected via the ESA. The manual steering angle is used to generate a modified destination point <NUM> with a modified lateral distance <NUM> from the datum (e.g., the centerline <NUM>). For example, the modified lateral distance <NUM> may be calculated based on Equation <NUM>. <MAT> where y is the lateral distance <NUM>, c is a constant, and AngleAdd is the additional steering angle provided by the driver (e.g., the steering angle <NUM> minus the steering angle expected via the ESA and/or the path <NUM>).

Based on the modified destination point <NUM> relative to a current location of the host vehicle <NUM>, the ESA module <NUM> generates a polynomial <NUM> of a curve from the current location to the modified destination point <NUM>. The polynomial <NUM> may be any order (e.g., <NUM>th or <NUM>th order polynomial). The ESA module <NUM> may then use the polynomial <NUM> to create a modified path <NUM> for the ESA module <NUM> or an associated ESA system to follow.

By generating the modified path <NUM> based on the additional steering angle, the ESA module enables the host vehicle <NUM> to better adapt to driver inputs during ESA events. For example, a driver of the host vehicle <NUM> may intend to modify the ESA without canceling it. As many conventional systems would simply cancel the ESA due to the driver input, the techniques described herein enable increased safety and driver satisfaction.

<FIG> illustrates an example system <NUM> configured to be disposed in the host vehicle <NUM> and configured to implement ESA modification based on manual steering inputs. Components of the example system <NUM> may be arranged anywhere within or on the host vehicle <NUM>. The example system <NUM> may include at least one processor <NUM>, computer-readable storage media <NUM> (e.g., media, medium, mediums), and a vehicle component <NUM>. The components are operatively and/or communicatively coupled via a link <NUM>.

The processor <NUM> (e.g., application processor, microprocessor, digital-signal processor (DSP), controller) is coupled to the computer-readable storage media <NUM> via the link <NUM> and executes instructions (e.g., code) stored within the computer-readable storage media <NUM> (e.g., non-transitory storage device such as a hard drive, solid-state drive (SSD), flash memory, read-only memory (ROM)) to implement or otherwise cause the ESA module (or a portion thereof) to perform the techniques described herein. Although shown as being within the computer-readable storage media <NUM>, the ESA module <NUM> may be a stand-alone component (e.g., having dedicated computer-readable storage media comprising instructions and/or executed on dedicated hardware, such as a dedicated processor, pre-programmed field-programmable-gate-array (FPGA), system on chip (SOC), and the like). The processor <NUM> and the computer-readable storage media <NUM> may be any number of components, comprise multiple components distributed throughout the host vehicle <NUM>, located remote to the host vehicle <NUM>, dedicated or shared with other components, modules, or systems of the host vehicle <NUM>, and/or configured differently than illustrated without departing from the scope of this disclosure.

The computer-readable storage media <NUM> also contains sensor data <NUM> generated by one or more sensors (not shown) that may be local or remote to the example system <NUM>. The sensor data <NUM> indicates or otherwise enables the determination of information usable to perform the techniques described herein. For example, sensors may generate sensor data <NUM> indicative of the steering angle <NUM> (e.g., in a steering rack, steering column, at the wheels) and the manual steering torque (e.g., in the steering column). The sensor data <NUM> may be used to determine other attributes, as discussed below.

In some implementations, the sensor data <NUM> may come from a remote source (e.g., via link <NUM>). The example system <NUM> may contain a communication system (not shown) that receives sensor data <NUM> from the target <NUM> or another remote source.

The vehicle component <NUM> contains one or more systems or components that are communicatively coupled to the ESA module <NUM> and configured to apply the outputs of the ESA module <NUM> to control the host vehicle <NUM> (e.g., to adjust the ESA steering input, follow the path <NUM>, follow the modified path <NUM>). For example, the vehicle component <NUM> may comprise an ESA system with means for steering the host vehicle <NUM> (e.g., hydraulics, servos, actuators). The vehicle component <NUM> is communicatively coupled to the ESA module <NUM> via the link <NUM>. Although shown as separate components, the ESA module <NUM> may be part of the vehicle component <NUM> and visa-versa.

By using the example system <NUM>, the host vehicle <NUM> may adapt to manual steering inputs provided by a driver. For example, the example system <NUM> can maintain, modify, or cancel an ESA intervention based on the manual steering inputs. Doing so enables the driver to have more control of the host vehicle <NUM> during ESA events while still ensuring that the ESA works as intended (e.g., causes the host vehicle <NUM> to avoid the target <NUM>), thereby maintaining or improving safety of the host vehicle <NUM>.

<FIG> is an example data flow <NUM> of ESA modification based on manual steering inputs. The example data flow <NUM> may be implemented in any of the previously described environments and by any of the previously described systems or components. For example, the example data flow <NUM> can be implemented in the example environment <NUM>, according to the example illustration <NUM>, and/or by the example system <NUM>. The example data flow <NUM> may also be implemented in other environments, by other systems or components, and utilizing other data flows or techniques. Example data flow <NUM> may be implemented by one or more entities (e.g., the ESA module <NUM>). The order in which the operations are shown and/or described is not intended to be construed as a limitation, and the order may be rearranged without departing from the scope of this disclosure. Furthermore, any number of the operations can be combined with any other number of the operations to implement the example data flow or an alternate data flow.

The example data flow <NUM> starts with attributes <NUM> of an environment (e.g., example environment <NUM>) being obtained by the ESA module <NUM>. As shown, the attributes <NUM> include the steering angle <NUM>, the manual steering torque <NUM>, the path <NUM>, and an ESA activation <NUM>. The ESA activation <NUM> is an indication that ESA is active, e.g., ESA is providing an ESA steering input into the host vehicle <NUM>. As discussed above, when activated, the ESA creates the path <NUM>. Thus, the existence of the path <NUM> may act as the ESA activation <NUM>. In other scenarios, a separate indication (e.g., the ESA activation <NUM>) may be used. The path <NUM> may be received from another module or component that generated the path <NUM> (e.g., an ESA activation module), or the path <NUM> may be generated by the ESA module <NUM> (e.g., the ESA module <NUM> is also configured to activate the ESA).

The attributes <NUM> may be acquired, received, or determined by the ESA module <NUM>. For example, the ESA module <NUM> may determine the attributes <NUM> directly from the sensor data <NUM>, from a bus or interface connected to sensors that interface with the example system <NUM>, or from another module or system of the example system <NUM>. Regardless of how or where the attributes <NUM> are gathered, received, derived, or calculated, the ESA module <NUM> is configured to use the attributes <NUM> to maintain the ESA steering input (e.g., at <NUM>), modify the ESA steering input (e.g., at <NUM>), or cancel the ESA steering input (e.g., at <NUM>).

To do so, the attributes <NUM> are input into a score module <NUM>. The score module <NUM> is configured to generate the score <NUM> that is indicative of the manual steering input provided by the driver. The score <NUM> may be calculated using Equation <NUM>. <MAT> where α is a weighting constant for weighting the additional steering angle and the manual steering torque <NUM>, σ(x) is Sigmoid function, e.g., <MAT> that saturates x and returns a value in the range <NUM> to <NUM>, β<NUM> and β<NUM> are tuning constants, <MAT> is the AngleAdd where <MAT> is the steering angle <NUM> and <MAT> is the expected steering angle from the ESA (e.g., to follow the path <NUM>), n is a number of data points for a moving average of the manual steering torque <NUM> (e.g., for the latest <NUM> second), and Torquei is the manual steering torque.

Thus, the score <NUM> may be based on the additional steering angle provided by the driver (relative to the ESA steering input) and a moving average of the manual steering torque <NUM>. In some implementations, an instantaneous manual steering torque <NUM> may be used to calculate the score (instead of a moving average). The score <NUM>, according to Equation <NUM> may be between <NUM> and <NUM>. When a different saturation function is used, the score <NUM> may be between different values (e.g., -<NUM> to <NUM>). Different equations may be used to calculate the score (e.g., based on the additional steering angle and manual steering torque <NUM>) without departing from the scope of this disclosure. By using both the additional steering angle and the manual steering torque <NUM>, the ESA module may more accurately determine an intention of the driver (e.g., to maintain, modify, or cancel the ESA) and react accordingly. Furthermore, when the moving average is used, transient spikes in the manual steering torque <NUM> may be compensated for (e.g., due to the driver being startled by the ESA activation).

The score <NUM> is input into an ESA steering module <NUM> that compares the score <NUM> to a plurality of thresholds <NUM>. The thresholds <NUM> may comprise a first threshold indicative of modifying the ESA and a second threshold, that is higher than the first threshold, indicative of canceling the ESA. Responsive to the score <NUM> not meeting the first threshold, the ESA steering module <NUM> may determine to maintain the ESA (e.g., at <NUM>). Doing so may involve causing the vehicle component <NUM> to maintain the ESA steering input (e.g., that to follow the path <NUM>). Responsive to the score <NUM> meeting the second threshold, the ESA steering module <NUM> may determine to cancel the ESA (e.g., at <NUM>). Doing so may involve causing the vehicle component <NUM> to stop providing the ESA steering input.

Responsive to the score <NUM> meeting the first threshold but not the second threshold, the ESA steering module <NUM> may determine to modify the ESA (e.g., at <NUM>), as described above. For example, a path modification module <NUM> may generate the modified path <NUM> based on the modified destination point <NUM> determined from the additional steering angle provided by the driver (e.g., the AngleAdd) and the destination point <NUM>. The modified path <NUM> may be sent to the vehicle component <NUM> or otherwise used to control the vehicle component <NUM> such that the vehicle component <NUM> can cause the host vehicle <NUM> to follow the modified path <NUM>.

Although shown as being within the ESA module <NUM>, the score module <NUM>, the ESA steering module <NUM>, and/or the path modification module <NUM> may be separate from the ESA module <NUM>. For example, the score module <NUM>, the ESA steering module <NUM>, and/or the path modification module <NUM> may be a stand-alone component and/or executed via dedicated hardware.

By using the above techniques, ESA may be adapted for additional steering inputs provided by a driver of the host vehicle <NUM>. More specifically, the ESA may be maintained, modified, or canceled based on the additional steering angle and manual steering torque <NUM> provided by the driver. In this way, the ESA can still be maintained while allowing the driver more control over how the ESA mitigates the potential collision with the target <NUM>. This allows for increased safety and experience of passengers of the host vehicle <NUM>, the target <NUM>, and/or other people proximate to the host vehicle <NUM>.

<FIG> is an example method <NUM> for ESA modification based on manual steering inputs. The example method <NUM> may be implemented in any of the previously described environments, by any of the previously described systems or components, and by utilizing any of the previously described data flows, process flows, or techniques. For example, the example method <NUM> can be implemented in the example environment <NUM>, as illustrated by the example illustration <NUM>, by the example system <NUM>, and/or by following the example data flow <NUM>. The example method <NUM> may also be implemented in other environments, by other systems or components, and utilizing other data flows, process flows, or techniques. Example method <NUM> may be implemented by one or more entities (e.g., the ESA module <NUM>). The order in which the operations are shown and/or described is not intended to be construed as a limitation, and the order may be rearranged without departing from the scope of this disclosure. Furthermore, any number of the operations can be combined with any other number of the operations to implement the example process flow or an alternate process flow.

At <NUM>, it is determined that a manual steering input is being provided by a driver while an ESA is providing an ESA steering input. For example, the ESA module <NUM> may determine that the ESA activation <NUM> is present and/or that the path <NUM> exists and determine the steering angle <NUM> and the manual steering torque <NUM>.

At <NUM>, a score is determined for the manual steering input. For example, the score module <NUM> may determine the score <NUM> based on the manual steering angle (e.g., the steering angle <NUM> minus a steering angle expected from the ESA steering input) and the manual steering torque <NUM> (e.g., instantaneous or time-averaged).

At <NUM>, it is determined that the score meets a first threshold. For example, the ESA steering module <NUM> may determine that the score <NUM> meets the first threshold of the thresholds <NUM>.

At <NUM>, it is determined whether the score meets a second threshold. For example, the ESA steering module <NUM> may determine whether the score <NUM> meets the second threshold of the thresholds <NUM>.

At <NUM>, the ESA steering input is adjusted based on whether the score meets the second threshold. For example, the ESA module <NUM> (or the ESA steering module <NUM>) may cause the vehicle component <NUM> to modify the ESA steering input (e.g., at <NUM>) responsive to the score <NUM> not meeting the second threshold. The modification may involve the path modification module <NUM> creating the modified path <NUM>. Alternatively, the ESA module <NUM> (or the ESA steering module <NUM>) may cause the vehicle component <NUM> to cancel the ESA steering input (e.g., at <NUM>) responsive to the score <NUM> meeting the second threshold. The cancellation may involve allowing the driver to have full control of the vehicle with no ESA steering input.

By using the example method <NUM>, ESA can effectively adapt to manual steering inputs provided by drivers during ESA events/activations. In doing so, drivers may acquire more control of a vehicle than conventional techniques while still allowing the ESA to function as designed (e.g., to effectively avoid collisions with targets).

Claim 1:
A method (<NUM>) comprising:
determining that an evasive steering assist, ESA, of a host vehicle (<NUM>) is providing an ESA steering input to the host vehicle (<NUM>) to avoid a collision with a target (<NUM>);
determining (<NUM>) a manual steering input to the host vehicle (<NUM>) provided by a driver of the host vehicle (<NUM>);
determining an expected steering angle provided by the ESA steering input to the host vehicle (<NUM>);
determining a manual steering torque (<NUM>) applied by the driver to a steering column of the host vehicle (<NUM>);
determining an additional steering angle provided by the driver relative to the ESA steering input based on a difference between the manual steering input and the expected steering angle;
calculating (<NUM>) a score (<NUM>) based on the additional steering angle and the manual steering torque (<NUM>), the score (<NUM>) quantifying an amount of additional steering input provided by the manual steering input relative to the ESA steering input;
determining (<NUM>) whether the score (<NUM>) meets a first threshold for modifying the ESA steering input;
determining (<NUM>) whether the score (<NUM>) meets a second threshold that is higher than the first threshold for cancelling the ESA steering input;
responsive to the score (<NUM>) not meeting the first threshold, maintaining the ESA steering input;
responsive to the score (<NUM>) meeting the first threshold but not meeting the second threshold, adjusting (<NUM>), based on the additional steering angle, of the ESA steering input to provide a different ESA steering input than the ESA steering input prior to adjustment; and
responsive to the score (<NUM>) meeting the second threshold, cancelling the ESA steering input and allowing the driver to manually steer the host vehicle (<NUM>).