Lane centering disturbance mitigation

A vehicle computer includes a memory and a processor programmed to execute instructions stored in the memory. The instructions include determining a first lane center, autonomously operating a host vehicle relative to the first lane center, detecting a change in the first lane center to a second lane center, selecting a filter, and applying the filter while transitioning autonomous operation of the host vehicle from the first lane center to the second lane center.

BACKGROUND

An automotive lane departure warning system warns a driver when an equipped vehicle is inadvertently drifting toward or into a different lane. A lane centering system attempts to keep a vehicle centered between two lane markers.

DETAILED DESCRIPTION

Lane centering systems work by detecting lane markers on either side of the vehicle and autonomously controlling the vehicle to stay centered in the lane. Lane markers are not always present or detectable, however. For instance, when the vehicle goes under an overpass or is otherwise operating in a low-light environment, sensors supporting the lane centering system may not be able to detect one or both lane marks. Another issue arises when one or both lane markers is not present. Lane markers may disappear as the paint on the road wears away over time. Some sections of the road purposely omit one of the lane marks. For example, when two lanes merge or diverge, including at entrance ramps and exit ramps, sometimes one lane marker is omitted for a brief period of time to signal where vehicles can pass from one lane to the next.

Accordingly, simply losing sight of a lane marker does not mean that the lane centering system should attempt to re-center the vehicle in the lane, especially because re-centering the vehicle after suddenly losing sight of a lane marker can cause a disturbance (also called a “jump”). The disturbance may be in the form of one or more sudden lateral lurches that are unpleasant for the vehicle occupants.

One way to mitigate such disturbances is with vehicle lane centering, implemented by a vehicle computer with a memory and a processor. The processor is programmed to execute instructions stored in the memory. The instructions include determining a first lane center, autonomously operating a host vehicle relative to the first lane center, detecting a change in the first lane center to a second lane center, selecting a filter, and applying the filter while transitioning autonomous operation of the host vehicle from the first lane center to the second lane center.

The first lane center may be defined by a first lane marker and a second lane marker and the second lane center may be defined by the first lane marker and not the second lane marker. In that instance, the processor may be programmed to detect the first lane marker and the second lane marker from an image captured by a camera. The processor may be programmed to detect the first lane marker and the second lane marker by applying an image processing technique to the image captured by the camera.

Selecting the filter may include selecting from among at least one of a low filter, a moderate filter, a high filter, and a coasting filter. Selecting and applying the low filter may cause the processor to operate the host vehicle toward the second lane center more quickly than selecting and applying the coasting filter, the high filter, or the moderate filter. Selecting and applying the moderate filter cause the processor to operate the host vehicle toward the second lane center more quickly than selecting and applying the coasting filter or the high filter. Selecting and applying the high filter may cause the processor to operate the host vehicle toward the second lane center more quickly than selecting and applying the coasting filter.

Selecting the filter may include determining a steerable path prediction confidence level and selecting the filter according to the steerable path prediction confidence level.

Selecting the filter may include detecting a steerable path prediction model change and selecting the filter according to the steerable path prediction model change.

A vehicle lane centering system includes a camera programmed to capture a first image of an area ahead of a host vehicle, the image including a first lane marker and a second lane marker and a processor programmed to process the first image to determine a first lane center based on the first lane marker and the second lane marker and autonomously operate the host vehicle relative to the first lane center. The camera is programmed to capture a second image including the first lane marker and not the second lane marker, and the processor is programmed to process the second image to determine a second lane center different from the first lane center, select a filter, and apply the filter while transitioning autonomous operation of the host vehicle from the first lane center to the second lane center.

The first lane center may be defined by a first lane marker and a second lane marker and the second lane center may be defined by the first lane marker and not the second lane marker. The processor may be programmed to detect the first lane marker and the second lane marker in the first image by applying an image processing technique to the first image captured by the camera. The processor may be programmed to detect the first lane marker in the second image by applying the image processing technique to the second image captured by the camera.

Selecting the filter may include selecting from among at least one of a low filter, a moderate filter, a high filter, and a coasting filter. Selecting and applying the low filter may cause the processor to move the host vehicle toward the second lane center more quickly than selecting and applying the coasting filter, the high filter, or the moderate filter. Selecting and applying the moderate filter may cause the processor to move the host vehicle toward the second lane center more quickly than selecting and applying the coasting filter or the high filter. Selecting and applying the high filter may cause the processor to move the host vehicle toward the second lane center more quickly than selecting and applying the coasting filter.

Selecting the filter may include determining a steerable path prediction confidence level and selecting the filter according to the steerable path prediction confidence level.

Selecting the filter may include detecting a steerable path prediction model change and selecting the filter according to the steerable path prediction model change.

The elements shown may take many different forms and include multiple and/or alternate components and facilities. The example components illustrated are not intended to be limiting. Indeed, additional or alternative components and/or implementations may be used. Further, the elements shown are not necessarily drawn to scale unless explicitly stated as such.

As illustrated inFIGS. 1 and 2, a host vehicle100includes a virtual driver system105and an automated vehicle platform110that executes lane centering, which includes keeping the host vehicle100centered between two lane markers. At least some parts of the virtual driver system105may be implemented by a vehicle computer115(sometimes called an autonomous vehicle controller) having a processor120and a memory125. Although illustrated as a sedan, the host vehicle100be a passenger or commercial automobile such as a car, a truck, a sport utility vehicle, a crossover vehicle, a van, a minivan, a taxi, a bus, etc. The virtual driver system105and the automated vehicle platform110may allow the host vehicle100to operate in an autonomous (e.g., driverless) mode, a partially autonomous mode, and/or a non-autonomous mode. The partially autonomous mode may refer to the SAE Level2mode of operation where the host vehicle100can control steering, acceleration, and braking, individually or in combination, under certain circumstances without human interaction. The partially autonomous mode may further refer to the SAE Level3mode of operation where the host vehicle100can handle steering, acceleration, and braking, individually or in combination, under certain circumstances, as well as monitoring of the driving environment, even though some human interaction is sometimes needed. Fully autonomous operations taken by the host vehicle100may be consistent with SAE Levels4or5modes of operation.

The virtual driver system105is a computing platform, implemented via sensors, controllers, circuits, chips, and other electronic components, that control various autonomous or partially autonomous operations of the host vehicle100. The virtual driver system105includes an autonomous vehicle controller programmed to process the data captured by the sensors, which may include a camera130as well as, e.g., a lidar sensor, a radar sensor, ultrasonic sensors, etc. The autonomous vehicle controller is programmed to output control signals to components of the automated vehicle platform110to autonomously control the host vehicle100according to the data captured by the sensors.

The automated vehicle platform110refers to the components that carry out the autonomous vehicle operation upon instruction from the virtual driver system105, and specifically, from an autonomous vehicle controller. As such, the automated vehicle platform110includes various actuators incorporated into the host vehicle100that control the steering, propulsion, and braking of the host vehicle100. The automated vehicle platform110further includes various platform controllers (sometimes referred to in the art as “modules”), such as a chassis controller, a powertrain controller, a body controller, an electrical controller, etc. Each actuator is controlled by control signals output by the vehicle computer115or one of the platform controllers. Electrical control signals output by the vehicle computer115or platform controller may be converted into mechanical motion by the actuator. Examples of actuators may include a linear actuator, a servo motor, or the like.

The camera130is a vision sensor that is programmed to capture images of an area ahead of the host vehicle100, including the roadway on which the host vehicle100is traveling. To capture such images, the camera130may include a lens that projects light toward, e.g., a CCD image sensor, a CMOS image sensor, etc. The camera130processes the light and generates the image. The image may be output to the vehicle computer115and, as discussed in greater detail below, can be used to detect lane markings on the roadway, confirm that the host vehicle100is centered between the lane markers, determine whether the lane centering system is working properly, etc. Some images captured by the camera130may include a first lane marker135(seeFIGS. 5A-6B) on one side of the host vehicle100and a second lane marker140(seeFIGS. 5A-6B) on the other side of the host vehicle100. Other images captured by the camera130may include only the first lane marker135or the second lane marker140, but not both, for at least some stretch of the road. This may occur when, e.g., the host vehicle100is approaching an entrance ramp or an exit ramp, where two lanes merge, where the lane marker has worn away over time, when visibility is low (which may occur because of the weather, because the host vehicle100is traveling through a tunnel or under a bridge, etc.), or the like.

The memory125is implemented via circuits, chips or other electronic components and can include one or more of read only memory (ROM), random access memory (RAM), flash memory, electrically programmable memory (EPROM), electrically programmable and erasable memory (EEPROM), embedded MultiMediaCard (eMMC), a hard drive, or any volatile or non-volatile media etc. The memory125may store instructions executable by the processor120and data such as the images captured by the camera130. The instructions and data stored in the memory125may be accessible to the processor120and possibly other components of the virtual driver system105, the host vehicle100, or both.

The processor120is implemented via circuits, chips, or other electronic component and may include one or more microcontrollers, one or more field programmable gate arrays (FPGAs), one or more application specific integrated circuits (ASICs), one or more digital signal processors (DSPs), one or more customer specific integrated circuits, etc. The processor120can receive the data from the sensors, such as the image captured by the camera130, and determine, from the image whether the host vehicle100is centered between two lane markers. The processor120may be further programmed to output control signals to the actuators to, e.g., keep the host vehicle100centered between the lane markers using images captured by the camera130as feedback.

The processor120may be programmed to perform an image processing technique on the images captured by the camera130to identify the first lane marker135and the second lane marker140in the image. The processor120may be further programmed to determine a center between the first lane marker135and the second lane marker140and output control signals that keep the host vehicle100centered between the first lane marker135and the second lane marker140. The processor120may continue to do so periodically, such as for each image (or frame) captured by the camera130. Periodically recentering the host vehicle100may be referred to below as the recentering action.

If the processor120only detects one of the lane markers (such as the first lane marker135), the processor120may apply a path filter to the recentering action to prevent the host vehicle100from taking a drastic measure (i.e., lurching laterally) that startles the vehicle occupant or otherwise makes the vehicle occupant uncomfortable. If the camera130loses sight of one of the lane markers, without the path filter, the processor120may determine that the center has moved a large distance toward the missing lane marker. In other words, without the path filter, the processor120may misinterpret the missing lane marker as a sudden increase in the distance between the first lane marker135and the second lane marker140. Applying the path filter to the recentering action prevents the processor120, and thus the host vehicle100, from immediately reacting to the sudden perceived increase in the distance between the first lane marker135and the second lane marker140.

The processor120may be programmed to apply any number of path filters, and different path filters may be applied under different circumstances. The processor120may be programmed to consider various factors when selecting which path filter to apply. The factors may include the output of the camera130(including some processing of the images captured by the camera130), steerable path prediction (SPP) parameters, a reported SPP confidence, a change in the SPP prediction model, a change in the SPP coefficients (see Equation 1) that can be used to infer the situation or path, or the like.

An example path filter with SPP coefficients is shown in Equation 1,
y(x)=a0+a1x+a2x2+a3x3,  (1)
where y(x) represents the lateral distance between the path and the centerline of the host vehicle100at x range, a0represents the lateral distance between the path and the centerline of the host vehicle100at its origin, a1represents the steering path heading angle, a2represents the steering path curvature at the origin point, and a3represents the steering path curvature rate.

The processor120may be programmed to apply different path filters given the circumstances. Examples of different path filters may include a light path filter, a moderate path filter, a heavy path filter, and a coasting filter. The light path filter may be selected when recentering the host vehicle100will not result in a sudden lateral lurch. The light path filter may apply, therefore, in circumstances where both lane markers are visible or where one lane marker disappears very briefly (on the order of milliseconds). As a result of applying the light path filter, the processor120may allow the host vehicle100to recenter itself. The moderate path filter may be applied to allow some recentering (although less than when light path filtering is applied) but not enough to cause a sudden and significant lateral lurch. The moderate path filter may be selected when one lane marker is not detectable for, e.g., up to a second among other factors. The heavy path filter may be applied to allow very little recentering (less than when moderate path filtering is applied) to prevent a sudden and significant lateral lurch. The heavy path filter may be selected when one lane marker is not detectable for, e.g., several seconds among other factors. The coasting filter may be applied to prevent the host vehicle100from recentering at all. The coasting filter may be selected when one lane marker is not detectable for, e.g., more than several seconds among other factors. The coasting filter, therefore, may keep the host vehicle100where it is relative to the lane marker that is detectable.

FIG. 3illustrates example inputs and outputs of an example lane centering implementation performed by the processor120. The inputs include system status, SPP confidence, and raw SPP coefficients. Additional inputs include SPP prediction model changes, whether the host vehicle100is driving straight (as opposed to turning or on a curved road), and a lookahead offset. The implementation further includes a path coefficient filter145that outputs a filtered SPP coefficient. The path coefficient filter145includes a filter state manager150in communication with a gain scheduling block155and has a low pass filter block160. The output of the low pass filter block160is the filtered SPP coefficient.

The system status represents the overall status of the lane centering system. The system status may include an “active” status and a “canceled” status. The path coefficient filter145may be activated when the system status is “active.” The path coefficient filter145may be reset and its operations canceled with the status is “canceled.”

The SPP confidence may represent the confidence of the predicted steerable path from the sensor. Example confidence levels may include “invalid,” “low,” “medium,” and “high.” “Invalid” may refer to an instance where the confidence cannot be determined from the sensor data. “Low” may reflect a low level of certainty in the sensor data, “medium” may reflect a moderate level of certainty in the sensor data, and “high” may reflect a high level of certainty in the sensor data. The path coefficient filter145may process data differently given the different SPP confidence levels. For instance, the path coefficient filter145may not do anything in response to “invalid” sensor data and may react slowly to sensor data with “low” confidence. The path filter may immediately process sensor data with “medium” and “high” levels of confidence.

The SPP prediction model change input may include logic to determine if the SPP prediction model has changed. Examples of prediction models include a “both lane model” (BLM), a “right lane model” (RLM), a “left lane model” (LLM), and a “PO-only model (Lead Vehicle Trail).” The “both lane model” may apply when both lane markers are present and detected by the sensors. The “right lane model” may apply when only the right lane is detected by the sensors. The “left lane model” may apply when only the left lane is detected by the sensors. The “PO-only model” may apply when the host vehicle100is in a platoon or otherwise following a lead vehicle. The path coefficient filter145may use a change in the model as an indicator that recentering may be needed.

Determining that the road is straight may involve a logic block that computes the moving average of the road curvature over the last “n” seconds where “n” is a tunable parameter on the order of, e.g., 3 seconds. The path coefficient filter145may be programmed to act on the SPP model if, e.g., the host vehicle100has been traveling straight for at least the last “n” seconds when the path coefficient filter145is activated. In other words, traveling on a straight road for at least “n” seconds may be threshold for applying the path coefficient filter145.

The monitoring of the look ahead offset may be implemented via a logic block that computes the offset at a lookahead time on the order of, e.g., 1 second. The lookahead time may be a function of the SPP polynomial shown in Equation 1. The logic block may apply the offset at a time when the path coefficient filter145is triggered for, e.g., the next 2 seconds. If another SPP model change occurs within that time (i.e., within those 2 seconds), regardless of the confidence in that model change, resulting in the offset returning to where it was at the time the path coefficient filter145was activated, the path coefficient filter145may respond aggressively to the SPP model change.

The path coefficient filter145may further include the filter state manager150and the filter itself. The filter may include the gain scheduling block155and the low pass filter block160. The filter state manager150is a logic block that determines the state of the filter based on its trigger (or activation) condition. Example operations of the filter state manager150are shown in the state diagram400ofFIG. 4. The filter state manager150turns the path coefficient filter145“off” when the filter has reached a steady state or the lane centering system is turned off or canceled. The filter manager may have the path coefficient filter145operate in an “on” state as a result of the SPP coefficient changing even if there is no change in the SPP model. In that instance, the “on” state may refer to a value change only state until the SPP model change occurs. The path coefficient filter145may also be operated in the “on” state immediately in instances where the SPP model changes (regardless of the SPP coefficient and regardless of the present operating state, including if the path coefficient filter145is already operating in the “on” state).

When operating in the “on” state, the filter state manager150may consider the SPP type, whether the host vehicle100is operating on a straight road, the lookahead offset, the center of the lane, etc. The default state may be “SPP type change only” meaning that the default is for the state to change to the present SPP model changes if, e.g., the SPP model changes. One exception to the default occurs if the SPP type is “Primary Object (PO) only” (i.e., the host vehicle100is coasting or following a lead vehicle) and the host vehicle100is operating on a straight road. In that case, the filter state manager150may set the state of the path coefficient filter145to “SPP PO only type.” Another exception may be if the lookahead offset is equal to the center of the lane. In that case, the state may be “lookahead back,” which as discussed above may refer to SPP model changes that return the offset back to where it was at the time of the filter trigger within, e.g., 2 seconds.

The filter state manager150passes the state to the gain scheduling block155which determines, in accordance with the SPP model confidence and the magnitude of the value jump change, the gain that needs to be used with the path coefficient filter145. The filter levels (low, moderate, high, and coasting) are discussed above.

One example scenario occurs when the SPP model changes and the SPP confidence is not low (i.e., two lane markings are detected, one lane marking with the host vehicle100following a lead vehicle in a PO trail is detected, etc.). In that instance, the low filter may be selected. If a value jump (i.e., a difference between the calculated center of the lane before and after losing sight of one or both lane markers) occurs while the filter is running, the filter block may apply either high filter or coasting filter (depending on whether the value jump was high or low) until the value difference is reduced. This scenario may occur when there is higher uncertainty (i.e., when the SPP model change occurs contemporaneously or nearly contemporaneously with a value jump).

Another example scenario occurs when the SPP model changes and the SPP confidence is low (i.e., only one lane marking is detected, no lane markings are detected but the host vehicle100is following a lead vehicle in a PO trail, etc.). In this example scenario, the filter may apply a high gain if the SPP confidence is low with only one lane marking detected. In the instance where no lane markings are detected but the host vehicle100is following the lead vehicle in a PO trail, the path coefficient filter145may further be programmed to consider whether the host vehicle100has been driving straight for the last n seconds. In that scenario, the coasting filter may be selected until the host vehicle100has traveled a predetermined distance. When the host vehicle100has traveled the predetermined distance, the path coefficient filter145may transition to the SPP model change state and select an appropriate gain.

Another example scenario occurs when there is a difference between an incoming coefficient value and a previous coefficient value (i.e., a value jump) without an SPP model change. In that instance, a moderate filter may be selected. If there is a large value jump while a moderate filter is applied, the gain may transition to either a high filter or coasting filter for a number of samples, on the order of, e.g., 2 samples, until the value difference is reduced. This situation may point toward higher uncertainty in the sensor readings since, e.g., a big value jump was followed by another value jump.

Another example scenario occurs when the filter state changes based on the lookahead monitoring and the gain transitions to a low filter regardless of the previous gain. The lookahead monitoring state suggests that the SPP model changed within the last, e.g., 2 seconds, and this change may bring the offset of the host vehicle100from the center of the lane back to the previous center value (or close to the previous center value) when the SPP model change occurred. This scenario suggests that the host vehicle100has found its previous center regardless of whether the SPP confidence was previously low, medium, or high.

FIG. 5Aillustrates an example scenario where the vehicle computer115mitigates disturbances of the host vehicle100as a result of losing sight of one of the lane markers (i.e., the host vehicle100switches from operating in a both lane model to a left lane model). The path of the host vehicle100is shown by line505.FIG. 5Billustrates an exaggerated path (line510) a non-equipped vehicle165may take under the same circumstances. As shown, the host vehicle100and the non-equipped vehicle165are approaching an exit ramp while following a first lane center170(defined by a first lane marker135and a second lane marker140) but neither vehicle intends to exit. The sensors of both the host vehicle100and the non-equipped vehicle165lose sight of the right-hand lane marker (i.e., the second lane marker140), causing the host vehicle100to switch to a left lane model (i.e., a model where only the first lane marker135is visible to the sensors of the host vehicle100and of the non-equipped vehicle165) with a second lane center175(defined by only one lane marker, such as the first lane marker135, or no lane markers, as a result of a gap in the second lane marker140that occurs because of the exit ramp) offset from the first lane center170. Both vehicles start to drift toward the right (i.e., toward the second lane center175) since the lack of the second lane marker140moves the perceived center of the lane in that direction. InFIG. 5A, the vehicle computer115of the host vehicle100recognizes the missing lane marker and applies a gain filter to slowly recenter the host vehicle100from the second lane center175to the first lane center170. InFIG. 5A, the vehicle computer115responds before the host vehicle100reaches the second lane center175. InFIG. 5B, the non-equipped vehicle165drifts to the right somewhat abruptly toward the second lane center175, causing the driver to intervene. The driver's intervention pulls the vehicle to the left overshooting the first lane center170before eventually stabilizing the non-equipped vehicle165.

Similar events occur in the scenario where the host vehicle100and the non-equipped vehicle165approach an entrance ramp as shown inFIGS. 6A and 6B. Both vehicles lose sight of the second lane marker140, which is shown to the right of the host vehicle100and the non-equipped vehicle165. As shown inFIG. 6A, the vehicle computer115of the host vehicle100recognizes the circumstance and applies the appropriate gain to mitigate the disturbance as the host vehicle100is operated back toward the first lane center170. As shown inFIG. 6B, the non-equipped vehicle165drifts more dramatically toward the right causing the driver to intervene and overshoot the first lane center170.

Although not shown, similar events occur when the sensors of the host vehicle100lose sight of the first lane marker135or second lane marker140under different circumstances, such as low light conditions (which may occur when the host vehicle100travels under an overpass or the road is not adequately lit at night), low visibility situations (which may occur during poor weather conditions), at intersections, etc.

FIG. 7is a flowchart of an example process700that may be executed by the vehicle computer115while implementing lane centering to, e.g., mitigate disturbances resulting from a situation where the sensors of the host vehicle100cannot detect one lane. The process700may begin any time the host vehicle100is operating and the vehicle computer115is applying filtering. At decision block705, the vehicle computer115determines if the value jump was high, meaning that there was an immediate and significant change to the perceived center of the lane. If so, the process proceeds to block710where the vehicle computer115provides the coasting gain filter. As discussed above, applying the coasting gain filter may effectively prevent the host vehicle100from responding to the value jump. From there, the process700may proceed to decision block715where the vehicle computer115compares the distance traveled in its present state (coasting or PO-only) relative to a threshold. If the distance traveled is below the threshold, the process700may continue to coast (block710) and continue to reevaluate the distance relative to the threshold (block715). If the distance is greater than the threshold, the process700may proceed to block720where a low filter is applied until, e.g., the missing lane marker(s) reappears or another value jump occurs. If another value jump occurs, the process700may proceed to block705from block720. If the result of decision block705is “no,” meaning that the vehicle computer115does not determine that the value jump is high, the process700may proceed to decision block725where the vehicle computer115determines if the value jump is low. If so, the process700may proceed to block730where a high filter is applied. The process700may return to block705from block730when the next value jump occurs. If the outcome of decision block725indicates that the value jump is not low, the process700may proceed to block735where the filter state is evaluated. The filter state may be characterized by various features represented by decision blocks740-760. At decision block740, the vehicle computer115evaluates whether the lookahead offset is back to center. If so, the process700may proceed to block720so the low filter may be applied. Otherwise, the process700may proceed to decision block745. At decision block745, the vehicle computer115may evaluate whether the SPP model has changed. If so, the process700may proceed to block750where the vehicle computer115evaluates whether the SPP confidence is not low (i.e., the confidence is either medium or high). If the SPP confidence is not low, the process700may proceed to block720so the low filter may be applied. If the SPP confidence is low, the process700may proceed to decision block755where the vehicle computer115evaluates whether the host vehicle100is operating in the PO-only mode and driving on a straight road. If yes, the process700may proceed to block710so the coasting filter may be applied. Otherwise, the process700may proceed to block730so the high filter may be applied. Returning now to the “no” result of block745, which may occur when the SPP model has not changed, the process700may proceed to decision block760where the vehicle computer115evaluates whether the value has jumped after the SPP model change occurred. If not, the process700returns to block735to reevaluate filter state. Otherwise, the process700proceeds to block765where a moderate filter is applied. The process700may proceed to block705from block765when, e.g., another value jump occurs.