Abstract:
The present teachings provide for an active steering system for controlling a vehicle. The system can include at least one sensor and a control module. The at least one sensor can be configured to detect a leading obstacle. The control module can be configured to receive a signal from the at least one sensor, to determine a steering profile, and to execute a lane change maneuver based on the steering profile. The steering profile can include a plurality of steering angles and corresponding vehicle positions for maneuvering the vehicle from a current lane to an adjacent lane. The steering angles can be calculated to not increase the acceleration of the vehicle above an occupant comfort threshold value and to not cause the vehicle to cross an outer boundary of the adjacent lane.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims the benefit of U.S. Provisional Application No. 61/948,193, filed on Mar. 5, 2014. The entire disclosure of the above application is incorporated herein by reference. 
     
    
     FIELD 
       [0002]    The present disclosure relates to a vehicle control system for improving time to avoid collision for active steering safety systems. 
       BACKGROUND 
       [0003]    This section provides background information related to the present disclosure which is not necessarily prior art. 
         [0004]    In automating the control of vehicle functions, an active steering system may allow the vehicle to have autonomy and authority independent of the driver. One area where this can create a safety benefit is by allowing the vehicle to override the driver&#39;s steering actions during critical situations where the probability of an accident with a leading vehicle is high, perhaps due to the lead vehicle suddenly stopping. In these situations, and with today&#39;s technology, today&#39;s vehicles can identify which vehicle is in front and its probable path and speed in the near term. 
         [0005]    Some current technologies relate to actively steering a vehicle to avoid collisions. These technologies notably detect and account for a leading vehicle in front of the controlled vehicle. These technologies assume that the leading vehicle is the only obstacle and assume that there are adjacent lanes available to steer into without accounting for adjacent obstacles. These technologies do not account for whether an adjacent lane is actually availabile or the type or condition of an adjacent lane, such as the material or weather that can affect the coefficient of friction between the vehicle&#39;s wheels and the lane. These technologies also do not adequately account for the width of the adjacent lane and the possibility that abrupt steering can cause the vehicle to cross through the adjacent lane without remaining safely within the adjacent lane&#39;s boundaries. 
       SUMMARY 
       [0006]    This section provides a general summary of the disclosure, and is not a comprehensive disclosure of its full scope or all of its features. 
         [0007]    The present teachings provide for an active steering system for controlling a vehicle. The system can include at least one sensor and a control module. The at least one sensor can be configured to detect a leading obstacle. The control module can be configured to receive a signal from the at least one sensor, to determine a steering profile, and to execute a lane change maneuver based on the steering profile. The steering profile can include a plurality of steering angles and corresponding vehicle positions for maneuvering the vehicle from a current lane to an adjacent lane. The steering angles can be calculated to not increase the acceleration of the vehicle above an occupant comfort threshold value and to not cause the vehicle to cross an outer boundary of the adjacent lane. 
         [0008]    The present teachings further provide for an active steering system for controlling a vehicle. The system can include at least one sensor and a control module. The at least one sensor can be configured to detect a leading obstacle and an adjacent obstacle. The control module can be configured to receive a signal from the at least one sensor, to calculate a steering profile, and to execute a lane change maneuver based on the steering profile. The steering profile can include a plurality of steering angles and corresponding vehicle positions for maneuvering the vehicle from a current lane to an adjacent lane. The steering angles can be calculated by the control module to not increase the acceleration of the vehicle above an occupant comfort threshold value and to not cause the vehicle to cross an outer boundary of the adjacent lane. The steering profile can be calculated based on a relative distance and velocity of the vehicle and the leading obstacle, a relative distance and velocity of the vehicle and the adjacent obstacle. 
         [0009]    The present teachings further provide for a method for actively controlling a vehicle traveling in a current lane of a roadway. The method includes providing a vehicle with a control module and a plurality of sensors. The method includes that the sensors can send at least one signal to the control module. The method includes that the control module can determine if a lane change is required. The method includes that the control module can determine if an adjacent lane is available. The method includes that the control module can use occupant comfort and distance between the vehicle and an outer boundary of the adjacent lane to calculate a steering profile wherein the vehicle will not cross the outer boundary of the adjacent lane. The method includes that the control module can control a steering system of the vehicle to perform a lane change maneuver based on the steering profile. 
         [0010]    Further areas of applicability will become apparent from the description provided herein. The description and specific examples in this summary are intended for purposes of illustration only and are not intended to limit the scope of the present disclosure. 
     
    
     
       DRAWINGS 
         [0011]    The drawings described herein are for illustrative purposes only of selected embodiments and not all possible implementations, and are not intended to limit the scope of the present disclosure. 
           [0012]      FIG. 1  is schematic view of a vehicle having a control system for actively controlling systems of a vehicle such as a steering and brake system; 
           [0013]      FIG. 2  is a schematic view of an example roadway showing the vehicle of  FIG. 1  and other vehicles on the roadway; 
           [0014]      FIG. 3  is a flow chart for controlling the vehicle used by the control system of  FIG. 1 , including a step of determining if a lane change is required and a step of determining if an adjacent lane is available; 
           [0015]      FIG. 4  is a flow chart of the step of determining if a lane change is required from the flow chart of  FIG. 3 , and including the step of determining an adequate distance to avoid a leading vehicle; 
           [0016]      FIG. 5  is a flow chart of the step of determining an adequate distance to avoid a leading vehicle from the flow chart of  FIG. 4 ; and 
           [0017]      FIG. 6  is a flow chart of the step of determining if an adjacent lane is available from the flow chart of  FIG. 3 . 
       
    
    
       [0018]    Corresponding reference numerals indicate corresponding parts throughout the several views of the drawings. 
       DETAILED DESCRIPTION 
       [0019]    Example embodiments will now be described more fully with reference to the accompanying drawings. 
         [0020]    With reference to  FIG. 1 , a vehicle  10  is schematically shown to include a pair of first wheels  14 , a pair of second wheels  18 , a control system  22 , a brake system  26 , and a steering system  30 . The vehicle  10  can be any type of land based vehicle, such as an automobile, truck, bus, RV, military vehicle, agricultural vehicle, or commercial vehicle for example. The vehicle  10  can be an autonomous vehicle or a vehicle that is generally controlled by a human operator (not shown) but that the control system  22  is designed to supplement or override the operator&#39;s control of the vehicle  10 . The vehicle&#39;s  10  drive power can be provided by any suitable means, such as an internal combustion engine, one or more electric motors, or a combination thereof for example. 
         [0021]    The pair of first wheels  14  can be a pair of front wheels coupled to the steering system  30  and configured to steer the vehicle  10 . The pair of first wheels  14  can also be drive wheels, such as in a front wheel, all-wheel, or four-wheel drive vehicle for example. The pair of second wheels  18  can be rear wheels and can be drive wheels, such as in a rear-wheel, all-wheel, or four-wheel drive vehicle, or can be non-drive wheels such as in a front-wheel drive vehicle. 
         [0022]    The control system  22  can include a plurality of sensors  50 , a database  54 , and a control module  58 . The plurality of sensors  50  can include sensors for detecting various parameters of the vehicle&#39;s  10  operation, including the vehicle&#39;s  10  geographic location, position on a driving surface, position in a lane, velocity, trajectory, acceleration, steering angle, brake application, engine speed, engine temperature, and brake temperature for example. The plurality of sensors  50  can also include sensors for detecting various parameters of the vehicle&#39;s  10  surroundings, including the type and size of driving surface the vehicle  10  is on, the existence of, type of, and size of driving surface(s) adjacent to the vehicle  10 , the existence of, location of, velocity of, and acceleration of other vehicles or obstacles in the vehicle&#39;s  10  lane or in adjacent lanes, and weather conditions for example. Examples of such sensors include global positioning system (“GPS”) sensors, proximity sensors, radar sensors, laser or light detection and ranging (“LIDAR”) sensors, cameras, accelerometers, gyroscopes, inertial measurement units, rain or water sensors, and temperature sensors for example. 
         [0023]    While other vehicles are referred to throughout, it is understood that the system can be configured to detect and respond to pedestrians, cyclists, barriers, trees, road signs, lamp posts, or other obstacles. Where adjacent lanes are referred to throughout, it is understood that an adjacent lane can be any drivable surface that can support a vehicle, such as driving lanes, road shoulders (paved or unpaved), bike lanes, sidewalks, or medians for example. While shown schematically within the vehicle  10 , the sensors  50  can be appropriately located on the vehicle  10 , depending on the type of sensor, such as on an exterior or interior of the vehicle  10 , or within various components of the vehicle. For example, a proximity sensor can be located on an exterior of the vehicle, or a brake sensor can be located in the brake system  26  for example. Each of the sensors  50  can be configured to output a signal to be received and used by the control module  58  as will be described below. 
         [0024]    The database  54  can be configured to store predetermined values for various controller inputs, such as maps, road data, speed limits, weather data, occupant comfort values, maximum steering or braking rates, and coefficients of friction for different driving surface types relative to the wheels  14 ,  18 . The occupant comfort values can be values such as longitudinal or lateral acceleration that an occupant will find acceptable. Occupant comfort values can be adjusted based on the specific occupant, or based on other settings of the vehicle  10 , such as a sport mode having higher thresholds or a comfort mode having lower thresholds for example. The values stored in the database  54  can be pre-programmed into the database  54  or can be updated periodically or continuously through wireless transmissions. The database  54  can be configured to output requested values to the control module  58  as will be described below. The database  54  can be any type of electronic data storage medium, such as a hard drive, solid state memory, flash drive, random access memory (“RAM”), or read only memory (“ROM”), for example. While the database  54  is described and illustrated as being located within the vehicle  10 , it is appreciated that the database  54  can be located remotely from the vehicle  10  and can be accessed via wireless transmissions, such as being located on a remote server (not shown) or accessible via the internet for example. 
         [0025]    The control module  58  can be configured to receive informational data in the form of electrical signals from the database  54  and one or more of the sensors  50 . The control module  58  can be configured to output control signals to control the steering system  30  and the brake system  26  to actively control the vehicle  10  without input from the operator. The control module  58  can also be configured to control the engine speed of the vehicle&#39;s  10  engine (not shown) or other power plant. 
         [0026]    The brake system  26  can be configured to resist rolling of one or more of the wheels  14 ,  18  in order to decelerate the vehicle  10  or to control the stability of the vehicle  10  to prevent traction loss. In the example provided, the brake system  26  includes a brake  70  on each of the four wheels  14 ,  18 , though other configurations can be used. The brake system  26  can be mechanically or electrically controlled by an operator and can be configured to be automatically controlled by the control module  58 . The brake system  26  can include any suitable type of braking device, such as friction discs or drums, regenerative braking, electromagnetic resistance, or air resistance for example. 
         [0027]    The steering system  30  can include a steering mechanism  90  that can be configured to control a steering angle  110  of the pair of first wheels  14  to control the steering of the vehicle  10 . The steering angle  110  can be the angle at which the pair of first wheels  14  are turned left or right relative to a straight ahead position. The steering system  30  can be configured to be mechanically or electronically controlled by the operator, and can be automatically controlled by the control module  58 . The steering mechanism  90  can be any suitable type of steering mechanism, such as a rack and pinion mechanism, or a recirculating ball mechanism for example. 
         [0028]    With additional reference to  FIG. 2 , a schematic view of an example roadway  210  on which the vehicle  10  can drive is shown. In the example provided, the vehicle  10  is traveling in the direction indicated by arrow  214 . The vehicle  10  is illustrated in a first position A, where the vehicle  10  is driving in a current lane  218  of the roadway  210 . The roadway  210  can also have an adjacent lane  222 . The vehicle  10  is also illustrated, with dashed lines, in a second position B. In the second position B, the vehicle  10  is driving in the adjacent lane  222  after a lane change maneuver, as will be described below. A leading vehicle  226  can be present in the current lane  218 . The leading vehicle  226  can be ahead of the vehicle  10 . A leading adjacent vehicle  230  can be present in the adjacent lane  222  ahead of the vehicle  10 . A trailing adjacent vehicle  234  can be present in the adjacent lane  222  behind the vehicle  10 . It is understood that additional vehicles (not shown) can be on the roadway  210  and that the positions of the vehicles  226 ,  230 ,  234  relative to one another can be different than those shown in  FIG. 2 . 
         [0029]    With additional reference to  FIG. 3 , a flow chart for a logic routine  310  that can be used by the control module  58  to autonomously control the vehicle  10  through a lane change maneuver is shown. The logic routine  310  can run continuously or be triggered to begin by the operator&#39;s input or by the detection of certain conditions by one or more of the sensors  50 , such as speed and position of the vehicle  10  relative to the other vehicles  226 ,  230 ,  234  or obstacles, for example. At step  314 , the control module  58  can receive inputs from the sensors  50 . After receiving inputs from the sensors  50 , the routine  310  can proceed to step  318 . At step  318 , the control module  58  can then determine if a lane change is required. 
         [0030]    With additional reference to  FIG. 4 , step  318  of  FIG. 3  of the logic routine  310 , i.e. determining whether a lane change is required, is shown in more detail. At step  410 , the control module  58  can analyze the signals received from the sensors  50  to determine if a drivable surface exists adjacent to the current lane  218 , such as the adjacent lane  222 . If the control module  58  determines that no drivable adjacent lane  222  exists, then the routine  310  can proceed to step  414  and output that no lane change is required, since no lane change can safely take place without the adjacent lane  222  present. The control module  58  can be configured to differentiate between lanes where traffic travels in the same direction  214  as the vehicle  10  and lanes where traffic travels in the opposite direction, i.e. oncoming traffic lanes (not shown). Depending on the configuration, the control module  58  can be configured to disregard oncoming traffic lanes as not driving surfaces for a lane change maneuver. 
         [0031]    If the control module  58  determines that the adjacent lane  222  exists, then the routine  310  can proceed to step  418 , where the control module  58  can determine the relative velocity of and distance to the leading vehicle  226  (or obstacle). The control module  58  can determine the relative velocity of and distance to the leading vehicle  226  based on input from the sensors  50 . For example, a sensor  50  can determine the velocity of the vehicle  10  and a sensor  50  can determine the velocity of the leading vehicle  226 . The control module  58  can subtract the velocity of the vehicle  10  from the velocity of the leading vehicle  226  to determine the relative velocity. A sensor  50  can determine a distance  250  ( FIG. 2 ) to the leading vehicle  226  and send a signal indicative of that distance to the control module  58 . 
         [0032]    After determining the relative velocity of and distance  250  to the leading vehicle  226 , the routine  310  can proceed to step  422 . At step  422 , the control module  58  can use the relative velocity of the vehicle  10  to the leading vehicle  226  and the distance  250  to the leading vehicle  226 , determined in step  418 , to calculate the stopping or deceleration rate of the vehicle  10  required to avoid a collision with the leading vehicle  226 . 
         [0033]    After calculating the deceleration rate required to avoid a collision with the leading vehicle  226 , the routine  310  can proceed to step  426 . At step  426 , the control module  58  can estimate the coefficient of friction of the current lane  218  and of the adjacent lane  222 . The control module  58  can estimate the coefficient of friction based on data stored in the database  54  and signals received by the sensors  50 . For example, the database  54  can have different coefficients of friction stored for different road surfaces and conditions and the controller can use input from the sensors  50  or the database  54  to determine the road surface and condition of the current lane  218  and adjacent lane  222 . For example, GPS or map data stored in the database  54  can include information about the road surface material in the current lane  218  and adjacent lane  222 . Weather data stored in the database  54  can be used to modify the coefficient of friction value, such as when the road surface may be wet or icy for example. Alternatively or additionally, the sensors  50  can be configured to detect the type and condition of the road surface, such as with cameras, water sensors, or temperature sensors for example. It is understood that the coefficient of friction for the current lane  218  can be different from the coefficient of friction for the adjacent lane  222 . 
         [0034]    After estimating the coefficients of friction, the routine  310  can proceed to step  430 . At step  430 , the control module  58  can calculate the available stopping or deceleration rate. The available deceleration rate can be the rate at which the vehicle  10  can safely decelerate on the road surface of the current lane  218 . The available deceleration rate can be calculated based on the velocity of the vehicle  10  and the coefficient of friction between the wheels  14 ,  18  and the road surface. 
         [0035]    After calculating the available deceleration rate, the routine  310  can proceed to step  434 . At step  434 , the control module  58  can compare the available deceleration rate to the deceleration rate required to avoid collision with the leading vehicle  226 . If the available deceleration rate is greater than the required deceleration rate, then the routine  310  can proceed to step  414  and output that no lane change is required, since the vehicle  10  can safely decelerate to avoid the collision. 
         [0036]    If the control module  58  determines that the available deceleration rate is not greater than the required deceleration rate, the routine  310  can proceed to step  438 . At step  438 , the control module  58  can determine an adequate distance between the vehicle  10  and the leading vehicle  226  needed for avoiding the leading vehicle  226 . 
         [0037]    With additional reference to  FIG. 5 , step  438  of  FIG. 4  of the logic routine  310 , i.e. determining the adequate distance to avoid the leading vehicle  226 , is shown in more detail. At step  510 , the control module  58  can determine a width  254  ( FIG. 2 ) of the current lane  218  and determine a lateral distance  258  ( FIG. 2 ) to an outer boundary  262  ( FIG. 2 ) of the adjacent lane  222 . The outer boundary  262  can be the boundary of the adjacent lane  222  furthest from the current lane  218 . The control module  58  can determine the width  254  of the current lane  218  based on input from the sensors  50  or stored data in the database  54 . The lateral distance  258  to the outer boundary  262  of the adjacent lane  222  can be the distance the vehicle  10  would need to move laterally to reach the outer boundary  262  of the adjacent lane  222 . The control module  58  can determine the lateral distance  258  to the outer boundary  262  of the adjacent lane  222  based on input from the sensors  50  or a combination of the input from the sensors  50  and information stored in the database  54 . 
         [0038]    After determining the width  254  of the current lane  218  and the lateral distance  258  to the outer boundary  262  of the adjacent lane  222 , the routine  310  can proceed to step  514 . At step  514 , the control module  58  can determine the maximum steering rate for the current lane  218  and adjacent lane  222 . The maximum steering rate can be the maximum rate at which the steering system  30  can change the steering angle  110  ( FIG. 1 ) of the wheels  14  without losing traction. The maximum steering rate can depend on the velocity of the vehicle  10 , the current steering angle  110 , and the coefficient of friction between the wheels  14  and the road surface of the current lane  218  and adjacent lane  222 . It is understood that the maximum steering rate of the current lane  218  can be different from the maximum steering rate of the adjacent lane  222 . 
         [0039]    After determining the maximum steering rates, the routine  310  can proceed to step  518 . At step  518 , the control module  58  can determine a lateral distance  266  ( FIG. 2 ) that the vehicle  10  must move to avoid the leading vehicle  226 . The control module  58  can determine the lateral distance  266  needed for the vehicle  10  to avoid the leading vehicle  226  by analyzing signals received from the sensors  50  that can sense the relative lateral position of the leading vehicle  226 . The lateral distance  266  to avoid the leading vehicle  226  can be the distance from an outer perimeter  270  of the vehicle  10 , which is away from the adjacent lane  222 , to an inner perimeter  274  of the leading vehicle  226 , which is proximate to the adjacent lane  222 . 
         [0040]    After determining the lateral distance  266  needed to avoid the leading vehicle  226 , the routine  310  can proceed to step  522 . At step  522 , the control module  58  can calculate an adequate distance between the vehicle  10  and the leading vehicle  226 , which is adequate in order to change lanes without exceeding the comfort requirements of the occupants, and without crossing the outer boundary  262  of the adjacent lane  222 . The comfort requirements can be maximum acceleration values stored in the database  54  as discussed above. 
         [0041]    After calculating the adequate distance to change lanes at step  522  of  FIG. 5 , the routine  310  can proceed to step  442  of  FIG. 4 . At step  442 , the control module  58  can compare the distance  250  to the leading vehicle  226  with the adequate distance to avoid the leading vehicle  226  when changing lanes. If the distance  250  to the leading vehicle  226  is less than the adequate distance to avoid the leading vehicle  226  when changing lanes, then the routine  310  can proceed to step  414  and output that a lane change is not required, as there is inadequate room between the vehicle  10  and the leading vehicle  226  to perform a lane change maneuver within the comfort levels or without crossing the outer boundary  262  of the adjacent lane  222 . 
         [0042]    If the distance  250  to the leading vehicle  226  is not less than the adequate distance to avoid the leading vehicle  226  when changing lanes, then the routine  310  can proceed to step  446  and output that a lane change is required. In short, a lane change can be determined to be required if the adjacent lane  222  exists, the vehicle  10  cannot decelerate to otherwise avoid the leading vehicle  226 , and the distance  250  between the vehicle  10  and the leading vehicle  226  is adequate to change lanes without crossing the outer boundary  262  of the adjacent lane  222  and without exceeding occupant comfort levels. 
         [0043]    Returning to  FIG. 3 , if a lane change is not required as determined by step  414  and  FIG. 4 , then the routine  310  can proceed to step  322 . At step  322 , the routine  310  can end. Alternatively, step  322  can restart the routine  310  by returning to step  314 . If a lane change is determined to be required, the routine  310  can proceed to step  326 . In step  326 , the control module  58  can determine if the adjacent lane  222  is actually available for the vehicle  10  to enter. 
         [0044]    With additional reference to  FIG. 6 , step  326  of  FIG. 3  of the logic routine  310 , i.e. determining whether the adjacent lane  222  is available, is shown in more detail. At step  610 , the control module  58  can check if any vehicles are detected in the adjacent lane  222 , such as the leading adjacent vehicle  230  or the trailing adjacent vehicle  234 , for example. Vehicles in the adjacent lane  222  can be detected by the sensors  50 . If no vehicles are detected in the adjacent lane  222 , then the routine  310  can proceed to step  614 , and output that the adjacent lane is available. 
         [0045]    If a vehicle is detected in the adjacent lane  222 , then the routine  310  can proceed to step  618 . At step  618 , the control module  58  can determine the longitudinal distances between the vehicle  10  and any adjacent vehicles. In the example provided, the sensors  50  can detect a leading adjacent distance  278  ( FIG. 2 ) between the vehicle  10  and the leading adjacent vehicle  230 , and a trailing adjacent distance  282  ( FIG. 2 ) between the vehicle  10  and the trailing adjacent vehicle  234 . 
         [0046]    After determining the leading adjacent distance  278  and trailing adjacent distance  282 , the routine  310  can proceed to step  622 . At step  622 , the control module  58  can determine a safe leading distance and a safe trailing distance. The safe leading distance can be the minimum distance between the vehicle  10  and the leading adjacent vehicle  230  that can be allowed based on safety considerations. The safe trailing distance can be the minimum distance between the vehicle  10  and the trailing adjacent vehicle  234  that can be allowed based on safety considerations. The safety considerations can include occupant comfort values, velocity of the vehicle  10 , velocity of the leading adjacent vehicle  230 , the road type and conditions of the adjacent lane  222 , and the coefficient of friction of the adjacent lane  222 , for example. The safety consideration values can be stored in the database  54  or determined by sensors  50 . 
         [0047]    After determining the safe leading and trailing distances, the routine  310  can proceed to step  626 . At step  626 , the control module  58  can compare the leading adjacent distance  278  to the safe leading distance. It is understood that if there is no leading adjacent vehicle  230  within range of the sensors  50 , then the routine  310  can skip step  626  and proceed to step  630 . 
         [0048]    If the leading adjacent distance  278  is not greater than the safe leading distance, then the routine  310  can proceed to step  634 . At step  634 , the control module  58  can determine if the vehicle&#39;s  10  speed can be safely reduced. If the vehicle&#39;s  10  speed cannot be safely reduced, then the routine  310  can proceed to step  638 . The vehicle&#39;s  10  speed can be safely reduced if the control module  58  can safely apply the brakes  70  without losing traction. Other factors can be considered, such as if a vehicle (not shown) is following the vehicle  10  in the current lane at a distance such that reducing the vehicle&#39;s  10  speed would cause the vehicle  10  to be rear ended, for example. At step  638 , the routine  310  can output that the adjacent lane  222  is not available, as the leading adjacent vehicle  230  is too close longitudinally to the vehicle  10  for the vehicle  10  to safely enter the adjacent lane  222 . 
         [0049]    If the vehicle  10  can safely reduce its speed, then the routine  310  can proceed to step  642 . At step  642 , the control module  58  can send a signal to the brake system  26  to activate the brakes  70  in order to decelerate the vehicle  10 . The brake system  26  can activate the brakes  70  together or can activate individual ones of the brakes  70  separately. After the brake system  26  has reduced the velocity of the vehicle  10  a predetermined amount or the brakes  70  have been applied for a predetermined time period, then the routine  310  can proceed back to step  618  to re-determine the distances from the adjacent vehicles  230 ,  234 . 
         [0050]    Returning to step  626 , if the control module  58  determines that the leading adjacent distance  278  is greater than the safe leading distance, then the routine  310  can proceed to step  630 . At step  630 , the control module  58  can compare the trailing adjacent distance  282  to the safe trailing distance. It is understood that if there is no trailing adjacent vehicle  234  within range of the sensors  50 , then the routine  310  can skip step  630  and proceed to step  646 . 
         [0051]    If the trailing adjacent distance  282  is not greater than the safe trailing distance, then the routine  310  can proceed to step  638  to output that the adjacent lane  222  is not available, as the trailing adjacent vehicle  234  is too close longitudinally to the vehicle  10  for the vehicle  10  to safely enter the adjacent lane  222 . If the trailing adjacent distance  282  is greater than the safe trailing distance, then the routine  310  can proceed to step  646 . 
         [0052]    At step  646 , the control module  58  can determine the relative velocity of the leading adjacent vehicle  230  and the relative velocity of the trailing adjacent vehicle  234 . The relative velocity of the leading adjacent vehicle  230  can be the velocity of the vehicle  10  subtracted from the velocity of the leading adjacent vehicle  230 . The relative velocity of the trailing adjacent vehicle  234  can be the velocity of the vehicle  10  subtracted from the velocity of the trailing adjacent vehicle  234 . The velocity of the leading adjacent vehicle  230  and of the trailing adjacent vehicle  234  can be determined by the sensors  50 . 
         [0053]    After the relative velocities of the leading and trailing adjacent vehicles  230 ,  234  are determined, the routine  310  can proceed to step  650 . At step  650 , the control module  58  can calculate the time that the leading adjacent distance  278  will remain greater than the safe leading distance, and the time that the trailing adjacent distance  282  will remain greater than the safe trailing distance. The control module can calculate these times based on the relative velocity of the leading adjacent vehicle  230  and the relative velocity of the trailing adjacent vehicle  234 . 
         [0054]    After calculating the time that the leading adjacent distance  278  will remain greater than the safe leading distance, and the time that the trailing adjacent distance  282  will remain greater than the safe trailing distance, the routine  310  can then proceed to step  654 . At step  654 , the control module  58  can calculate a steering profile  286  ( FIG. 2 ). The steering profile  286  can include the steering angles  110  ( FIG. 1 ) and vehicle positions that the vehicle  10  can use to change lanes from the current lane  218  to the adjacent lane  222  without crossing the adjacent lane&#39;s  222  outer boundary  262  and without exceeding the occupant comfort levels. The control module  58  can calculate more than one possible steering profile  286 . For example, these steering profiles  286  can include a critical steering profile, a nominal steering profile, and a maximum comfort steering profile. The critical steering profile can be such that the occupant comfort values are the lowest. The maximum comfort steering profile can be such that the occupant comfort values are the highest. The nominal profile can be between the critical and maximum comfort profiles. The steering profiles can be stored in the database  54  or held in temporary storage. 
         [0055]    After calculating the steering profile  286 , the routine  310  can proceed to step  658 . At step  658 , the control module can calculate the time that completing the lane change will take based on the steering profile  286 . 
         [0056]    After calculating the time necessary to complete the lane change, the control module  58  can proceed to step  662 . At step  662 , the control module  58  can compare the time necessary to complete the lane change to the time that the leading adjacent distance  278  will remain greater than the safe leading distance and the time that the trailing adjacent distance  282  will remain greater than the safe trailing distance. 
         [0057]    If the time necessary to complete the lane change is not less than the time that the leading adjacent distance  278  will remain greater than the safe leading distance, and the time necessary to complete the lane change is not less than the time that the trailing adjacent distance  282  will remain greater than the safe trailing distance, then the routine  310  can proceed to step  638 , and output that the adjacent lane is not available, as the lane change maneuver cannot be completed before either the leading or trailing adjacent vehicle  230 ,  234  is too close to the vehicle  10 . 
         [0058]    If the time necessary to complete the lane change is less than the time that the leading adjacent distance  278  will remain greater than the safe leading distance, and the time necessary to complete the lane change is less than the time that the trailing adjacent distance  282  will remain greater than the safe trailing distance, then the routine  310  can proceed to step  614  and output that the adjacent lane is available, as the vehicle  10  can safely complete the lane change maneuver. In this way, the control module  58  can account for the future locations of the trailing adjacent vehicle  234  and the leading adjacent vehicle  230  when determining if the vehicle can change lanes safely. If there is a second adjacent lane (not shown), such as one on each side of the vehicle  10 , the control module  58  can similarly check the availability of the second adjacent lane and choose the adjacent lane  222 , if any, which allows for the steering profile  286  with the greatest margin of safety and comfort. 
         [0059]    Returning to step  328  of  FIG. 3 , if the adjacent lane is not available, as determined by step  638  of  FIG. 6 , then the routine  310  can proceed to step  322  and end or restart as described above. If the adjacent lane is available, as determined by step  638  of  FIG. 6 , then the routine  310  can proceed to step  330 . At step  330 , the control module  58  can send a signal to the steering system  30  to control the steering system  30  to adjust the steering angle  110  in accordance with the steering profile  286  and begin changing lanes. It is understood that if multiple steering profiles  286  were calculated, then the control module  58  can choose an optimal one of the steering profiles  286  based on any number of factors including safety margins of error, or occupant comfort levels. 
         [0060]    After the vehicle  10  has begun the lane change maneuver, the routine  310  can proceed to step  334 . At step  334 , the control module  58  can determine the vehicle&#39;s  10  position. The vehicle&#39;s  10  position relative to the current lane  218 , outer boundary  262  of the adjacent lane  222 , leading vehicle  226 , leading adjacent vehicle  230  and trailing adjacent vehicle  234  can be determined by the sensors  50 . 
         [0061]    After determining the vehicle&#39;s  10  position, the routine  310  can proceed to step  338 . At step  338 , the control module  58  can compare the vehicle&#39;s  10  position to the expected position from the steering profile  286 . If the vehicle&#39;s  10  position is not within a predetermined margin of error of the expected position from the steering profile  286 , then the routine  310  can proceed to step  342 . 
         [0062]    At step  342 , the control module  58  can calculate a new steering profile. The new steering profile can be similar to the steering profile  286 , but can account for changes or differences between the actual vehicle position and the expected vehicle position. After calculating a new steering profile, the routine  310  can return to step  330  to continue changing lanes based on the new steering profile. 
         [0063]    Returning to step  338 , if the vehicle&#39;s  10  position is within the predetermined margin of error for the expected position from the steering profile  286  (or new steering profile), then the routine  310  can proceed to step  346 . At step  346 , the control module  58  can check if the lane change maneuver is complete. If the lane change maneuver is not complete, then the routine  310  can return to step  334  to re-determine the vehicle&#39;s  10  position. If the lane change maneuver is complete, then the routine  310  can proceed to step  322  and end, or restart as appropriate. 
         [0064]    Example embodiments are provided so that this disclosure will be thorough, and will fully convey the scope to those who are skilled in the art. Numerous specific details are set forth such as examples of specific components, devices, and methods, to provide a thorough understanding of embodiments of the present disclosure. It will be apparent to those skilled in the art that specific details need not be employed, that example embodiments may be embodied in many different forms and that neither should be construed to limit the scope of the disclosure. In some example embodiments, well-known processes, well-known device structures, and well-known technologies are not described in detail. 
         [0065]    When an element or layer is referred to as being “on,” “engaged to,” “connected to,” or “coupled to” another element or layer, it may be directly on, engaged, connected or coupled to the other element or layer, or intervening elements or layers may be present. In contrast, when an element is referred to as being “directly on,” “directly engaged to,” “directly connected to,” or “directly coupled to” another element or layer, there may be no intervening elements or layers present. Other words used to describe the relationship between elements should be interpreted in a like fashion (e.g., “between” versus “directly between,” “adjacent” versus “directly adjacent,” etc.). As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.