Adaptive cruise control

A system includes a computer having a processor and a memory storing instructions executable by the processor to determine a braking distance based on a gap distance between a primary vehicle and a second vehicle in an adjacent lane, and based on a speed of the second vehicle in the adjacent lane. The instructions include instructions to actuate a braking system of the primary vehicle when the primary vehicle is the braking distance from a third vehicle in a same lane as the primary vehicle.

BACKGROUND

Autonomous and partially autonomous vehicles can perform operations such as setting or maintaining a vehicle velocity, following a particular route, and maintaining a specified distance from other vehicles. A vehicle velocity can be set and maintained according to user input and/or based on a velocity and/or relative position of a reference vehicle, typically an immediately preceding vehicle.

DETAILED DESCRIPTION

A system includes a computer having a processor and a memory storing instructions executable by the processor to determine a braking distance based on a gap distance between a primary vehicle and a second vehicle in an adjacent lane, and based on a speed of the second vehicle in the adjacent lane. The instructions include instructions to actuate a braking system of the primary vehicle when the primary vehicle is the braking distance from a third vehicle in a same lane as the primary vehicle.

The instructions may include instructions to further determine the braking distance based on a difference between a speed of the primary vehicle and the speed of the second vehicle in the adjacent lane.

The instructions may include instructions to further determine the braking distance based on a difference between a speed of the third vehicle in the same lane as the primary vehicle and the speed of the second vehicle in the adjacent lane.

The instructions may include instructions to further determine the braking distance based on a determination of whether the second vehicle in the adjacent lane is forward of the primary vehicle.

The instructions may include instructions to further determine the braking distance based on a determination of whether the second vehicle in the adjacent lane is rearward of the primary vehicle.

The instructions may include instructions to further determine the braking distance based on a determination of whether the primary vehicle is indicating a lane change.

The instructions may further include instructions to actuate the braking system to decelerate the primary vehicle at a rate associated with the determined braking distance.

The instructions may include instructions to further determine the braking distance based on a determination of whether the second vehicle in the adjacent lane is in a passing lane.

The system may include a sensor and the braking system in communication with the computer, and the instructions may include instructions to determine the speed of the second vehicle in the adjacent lane based on data from the sensor.

A method includes determining a braking distance based on a gap distance between a primary vehicle and a second vehicle in an adjacent lane, and based on a speed of the second vehicle in the adjacent lane. The method includes actuating a braking system of the primary vehicle when the primary vehicle is at the braking distance from a third vehicle in a same lane as the primary vehicle.

The method may include determining the braking distance based on a difference between a speed of the primary vehicle and the speed of the second vehicle in the adjacent lane.

The method may include determining the braking distance based on a difference between a speed of the third vehicle in the same lane as the primary vehicle and the speed of the second vehicle in the adjacent lane.

The method may include determining the braking distance based on a determination of whether the second vehicle in the adjacent lane is forward of the primary vehicle.

The method may include determining the braking distance based on a determination of whether the second vehicle in the adjacent lane is rearward of the primary vehicle.

The method may include determining the braking distance based on a determination of whether the primary vehicle is indicating a lane change.

The method may include actuating the braking system to decelerate the primary vehicle at a rate associated with the determined braking distance.

The method may include determining the braking distance based on a determination of whether the second vehicle in the adjacent lane is in a passing lane.

A computer readable medium may store instructions executable by a processor to perform the method.

A system may include a computer having a processor and a memory storing instructions executable by the processor to perform the method.

The system may include a sensor and the braking system in communication with the computer, and wherein the instructions include instructions to determine the speed of the second vehicle in the adjacent lane based on data from the sensor.

A system includes means for determining a braking distance based on a gap distance between a primary vehicle and a second vehicle in an adjacent lane, and based on a speed of the second vehicle in the adjacent lane. The system includes means for braking the primary vehicle when the primary vehicle is at the braking distance from a third vehicle in a same lane as the primary vehicle.

The system may include means for determining the braking distance based on a difference between a speed of the primary vehicle and the speed of the second vehicle in the adjacent lane.

The system may include means for determining the braking distance based on a difference between a speed of the second vehicle in the same lane as the primary vehicle and the speed of the second vehicle in the adjacent lane.

As disclosed herein, adaptive cruise control of a primary vehicle can be provided to actuate brakes to optimize deceleration, e.g., minimize a rate of deceleration for occupant comfort, based on a reference distance from a second vehicle, and also to decelerate at a rate of deceleration higher than the optimized rate (up to zero deceleration) when a distance less than the reference distance is permitted, e.g., maintaining a speed of the primary vehicle as the primary vehicle approaches the second vehicle when a lane change is expected.

FIG. 1illustrates a vehicle100, referred to herein as a primary vehicle100, having an example system102for determining braking distance BD (seeFIG. 2) of the vehicle100. The system102includes a computer104having a processor and a memory storing instructions executable by the processor to determine a braking distance based on a gap distance between the primary vehicle100and a vehicle in an adjacent lane, and based on a speed of the vehicle in the adjacent lane. The instructions further include instructions to actuate a braking system106of the primary vehicle100when the primary vehicle100is the braking distance from a vehicle in a same lane SL as the primary vehicle100.

The primary vehicle100may be any type of passenger or commercial vehicle such as a car, a truck, a sport utility vehicle, a crossover vehicle, a van, a minivan, a taxi, a bus, etc.

The computer104, implemented via circuits, chips, and/or other electronic components, is included in the system102for carrying out various operations, including as described herein. The computer104is a computing device that generally includes a processor and a memory, the memory including one or more forms of computer-readable media, and storing instructions executable by the processor for performing various operations, including as disclosed herein. The memory of the computer104further generally stores remote data received via various communications mechanisms; e.g., the computer104is generally configured for communications on a communication network108or the like, and/or for using other wired or wireless protocols, e.g., Bluetooth, etc. The computer104may also have a connection to an onboard diagnostics connector (OBD-II). Via the communication network108and/or other wired or wireless mechanisms, the computer104may transmit and receive messages to and from various devices in the primary vehicle100, e.g., a steering system110, the braking system106, a propulsion system112, a navigation system114, sensors116, a turn signal118, etc. Although one computer104is shown inFIG. 1for ease of illustration, it is to be understood that the computer104could include, and various operations described herein could be carried out by, one or more computing devices.

The communication network108may facilitate wired or wireless communication among the primary vehicle100components in accordance with a number of communication protocols such as controller area network (CAN), a communication bus, Ethernet, WiFi, Local Interconnect Network (LIN), and/or other wired or wireless mechanisms.

The braking system106resists motion of the primary vehicle100to thereby slow and/or stop the primary vehicle100, e.g., in response to an instruction from the computer104and/or in response to an operator input, such as to a brake pedal. The braking system106may include friction brakes such as disc brakes, drum brakes, band brakes, and so on; regenerative brakes; any other suitable type of brakes; or a combination. The braking system106may be controlled by, and may report data via, an electronic control unit (ECU) or the like in communication with the computer104.

The steering system110controls a steering angle of wheels of the primary vehicle100, e.g., in response to an instruction from the computer104and/or in response to an operator input, such as to a steering wheel. The steering system110may be a rack-and-pinion system with electric power-assisted steering, a steer-by-wire system, or any other suitable system for controlling the steering angle of the wheels. The steering system110can be controlled by, and may report data via, an electronic control unit (ECU) or the like.

The propulsion system112translates energy into motion of the primary vehicle100, e.g., in response to an instruction from the computer104and/or in response to an operator input, such as to an accelerator pedal. For example, the propulsion system112may include a conventional powertrain having an internal-combustion engine coupled to a transmission that transfers rotational motion to wheels; an electric powertrain having batteries, an electric motor, and a transmission that transfers rotational motion to the wheels; a hybrid powertrain having elements of the conventional powertrain and the electric powertrain; or any other type of structure for providing motion to the primary vehicle100. The propulsion system112can be controlled by, and may report data via, an electronic control unit (ECU) or the like.

The navigation system114can determine a location of the primary vehicle100. The navigation system114is implemented via circuits, chips, and/or other electronic components, and can include programming implemented in the foregoing hardware. The navigation system114may be implemented via satellite-based system such as the Global Positioning System (GPS). The navigation system114may triangulate the location of the primary vehicle100based on signals received from various satellites in the Earth's orbit. The navigation system114is programmed to output signals representing the location of the primary vehicle100to, e.g., the computer104via the communication network108. In some instances, the navigation system114is programmed to determine a route from the present location to a future location. The navigation system114may access a virtual map stored in memory of the navigation system114and/or the computer104and develop the route according to the virtual map data. The virtual map data may include lane information, including a number of lanes of a road, widths and edges of such lanes, etc.

The primary vehicle100includes sensors116. The sensors116may detect internal states of the primary vehicle100, for example, wheel speed, wheel orientation, and engine and transmission values. The sensors116may detect the position or orientation of the primary vehicle100, for example, global positioning system (GPS) sensors; accelerometers such as piezo-electric or microelectromechanical systems (MEMS) sensors; gyroscopes such as rate, ring laser, or fiber-optic gyroscopes; inertial measurements units (IMU); and magnetometers. The sensors116may detect the external world, for example, radar sensors, scanning laser range finders, light detection and ranging (LIDAR) devices, and image processing sensors such as cameras. The primary vehicle100may further include communications devices, for example, vehicle-to-infrastructure (V2I) or vehicle-to-vehicle (V2V) devices.

The turn signal118can be illuminated, e.g., in response to an instruction from the computer104and/or in response to an operator input, to a tun signal control lever on a steering column of the vehicle100. The turn signal118may include structure that transforms electricity into visible light, e.g., a light bulb with a filament, an LED, etc.

FIG. 2is a diagram of an example traffic scene TS. The traffic scene TS includes the primary vehicle100and a second vehicle200in front of, and in a same lane SL as, the primary vehicle100. The traffic scene TS includes a third vehicle225in front of, and a in left adjacent lane LAL relative to, the primary vehicle100. The traffic scene TS includes a fourth vehicle250behind, and in the left adjacent lane LAL relative to, the primary vehicle100. The traffic scene TS includes a fifth vehicle275in front of, and in a right adjacent lane RAL relative to, the primary vehicle100. Gap distances GD1, GD2between the primary vehicle100and the third vehicle225and the fourth vehicle250are also shown, respectively, as is the braking distance BD in front of the primary vehicle100.

The computer104is programmed to, i.e., typically the memory stores instruction executable by the processor to, actuate the braking system106. For example, the computer104may transmit an instruction to the braking system106via the communication network108instructing the braking system106to slow the primary vehicle100. The instruction may specify a rate at which to slow the primary vehicle100, e.g., a percent of total braking ability (such as 50%), a deceleration amount (such as 3 meters per second per second), etc.

The computer104is programmed to identify one or more vehicles, such as a second vehicle200, a third vehicle225, etc. The computer104may identify such vehicles based on data from the sensors116received via the communication network108. The computer104may identify the one or more vehicles based on parameters, such as a size, shape, color, brightness, etc., of objects represented by data received from the sensors116, e.g., image data from a camera and/or data from a LIDAR sensor, etc., e.g., using known image recognition and data processing techniques.

The computer104is programmed to determine lanes of the identified vehicles. The computer104may determine whether the identified vehicle is in the same lane SL as the primary vehicle100. The computer104may determine whether the identified vehicle is in one of the adjacent lanes LAL, RAL to the primary vehicle100. For example, the computer104may determine whether the identified vehicle is in the right adjacent lane RAL of the primary vehicle100. As another example, the computer104may determine whether the vehicle is in left adjacent lane LAL of the primary vehicle100. The computer104may determine the lane of the identified vehicle by using image data from a camera to identify lane markers of the lane SL of the primary vehicle100according to image recognition techniques and may identify that the identified vehicle is between such lane markers, to the left of such markers, or to the right of such markers. As another example, the computer104may determine the lane of the identified vehicle based on a position of the identified vehicle relative to the primary vehicle100as detected by the sensors116, e.g., the identified vehicle may be determined to be in the same lane SL when the identified vehicle is within 5 degrees of being within a vehicle forward or rearward direction relative to the primary vehicle100, the identified vehicle may be determined to be in the adjacent lane when the secondary vehicle is between 5 and 45 degrees of being within the vehicle forward or rearward direction relative to the primary vehicle100. The computer104may use other techniques to determine the lane of the identified vehicle, such as using data from LIDAR sensors116to perform simultaneous location and mapping (SLAM) as is known.

The computer104is programmed to determine a longitudinal position of the identified vehicle relative to the primary vehicle100. For example, the computer104may determine whether the identified vehicle225,250in the adjacent lane is forward, rearward, or next to the primary vehicle100. Forward of the primary vehicle100means that a rearmost point of the vehicle225is forward of a frontmost point of the primary vehicle100. Rearward of the primary vehicle100means that a frontmost point of the vehicle250is rearward of a rearmost point of the primary vehicle100. Next to the primary vehicle100means any point of the second vehicle200is between the frontmost point and the rearmost point of the primary vehicle100.

The computer104may determine the longitudinal position of the identified vehicle based on data received from the sensors116. For example, the computer104may determine the identified vehicle225is forward of the primary vehicle100based on image data from a forward-facing camera, proximity data from a forward-facing proximity sensor, and/or LIDAR data specifying the identified vehicle225as forward of the primary vehicle100. As another example, the computer104may determine the identified vehicle250is rearward of the primary vehicle100based on image data from a rear-facing camera, proximity data from a rear-facing proximity sensor, and/or LIDAR data specifying the identified vehicle250is rearward of the primary vehicle100.

The computer104is programmed to determine a distance from the primary vehicle100to the identified vehicle, e.g., a gap distance GD1, GD2, between the primary vehicle100and the vehicle225,250. The computer104may determine the distance from the primary vehicle100to such identified vehicle225,250based on data from the sensors116. For example, the computer104may use image data from a pair of cameras, e.g., based on binocular disparity analysis of the identified vehicle225,250in such image data. As another example, the computer104may use data from a LIDAR sensor that specifies the distance. As a final example, the computer104may use data from a sonar sensor, radar sensor, etc., configured to determine the distance.

The computer104is programmed to determine a speed of one or more identified vehicles200,225,250,275. The speed of the identified vehicle200,225,250,275may be absolute, i.e., relative to being stationary. The speed of the identified vehicle200,225,250,275may be relative to the primary vehicle100. The computer104may determine the speed of the identified vehicle200,225,250,275based on data from the sensors116. The computer104may determine the speed of the identified vehicle200,225,250,275relative to the primary vehicle100by determining a change in the distance between the identified vehicle200,225,250,275and the primary vehicle100over time.

For example, the computer104may determine the speed of the identified vehicle200,225,250,275relative to the primary vehicle100with the formula ΔD/ΔT, where ΔD is a difference between a pair of distances from the primary vehicle100to the identified vehicle200,225,250,275taken at different times and ΔT is an amount of time between when the pair of distances was determined. When ΔD is determined by subtracting the distance determined earlier in time from the distance determined later in time, and the identified vehicle200,225,250,275is rearward of the primary vehicle100, a positive value indicates that the identified vehicle200,225,250,275is traveling faster than the primary vehicle100. When ΔD is determined by subtracting the distance determined earlier in time from the distance determined later in time, and the identified vehicle200,225,250,275is forward of the primary vehicle100, a positive value indicates that the identified vehicle200,225,250,275is traveling slower than the primary vehicle100. The computer104may use other techniques to determine the speed of the identified vehicle200,225,250,275relative to the primary vehicle100.

The computer104may determine the absolute speed, i.e., speed with respect to the surface of the earth, of the identified vehicle200,225,250,275by combining a speed of the primary vehicle100with the speed of the identified vehicle200,225,250,275relative to the primary vehicle100. The computer104may determine the speed of the primary vehicle100based on data from the sensors116, e.g., data from a wheel speed sensor. The computer104may combine the speed of the primary vehicle100with the speed of the identified vehicle200,225,250,275relative to the primary vehicle100by adding the speed of the primary vehicle100to the vehicle200,225,250,275speed when the speed of the identified vehicle200,225,250,275relative to the primary vehicle100indicates that the identified vehicle200,225,250,275is traveling faster than the primary vehicle100. The computer104may combine the speed of the primary vehicle100with the speed of the identified vehicle200,225,250,275relative to the primary vehicle100by subtracting the speed of the identified vehicle200,225,250,275relative to the primary vehicle100from the speed of the primary vehicle100when the speed of the identified vehicle200,225,250,275relative to the primary vehicle100indicates that the identified vehicle200,225,250,275is traveling slower than the primary vehicle100. The computer104may use other techniques to determine the absolute speed of the identified vehicle200,225,250,275.

The computer104is programmed to determine whether the primary vehicle100is indicating a lane change. Indicating a lane change means that the primary vehicle100manifests one or more physical states detectable by the computer104in which the primary vehicle100is deemed more likely to navigate to the lane adjacent the primary vehicle100as compared to when such condition is not detected. For example, the computer104may identify actuation of the turn signal118of the primary vehicle100as indicating the lane change. The computer104may determine the turn signal118has been actuated based on data from the sensors116, e.g., indicating a human operator has actuated the turn signal118. As another example, the computer104may determine the primary vehicle100is indicating a lane change based on lateral acceleration of the vehicle100, e.g., indicated by data from the sensors116. As another example, the computer may determine the primary vehicle100is indicating a lane change based on image a data from a camera indicating the primary vehicle100is approaching or crossing a boundary between the lane SL the primary vehicle100is in and one of the adjacent lanes RAL, LAL. As one more example, the computer104may determine the primary vehicle100is indicating a lane change based on data from the navigation system114, e.g., indicating the primary vehicle100is approaching or crossing a boundary between the lanes SL, LAL, RAL as specified in map data.

The computer104is programmed to determine the braking distance BD. Braking distance BD is a linear distance in front of the primary vehicle100. The computer104uses the braking distance BD for control of the braking system106, e.g., to command actuation the braking system106when an object, such as the second vehicle200, is at the braking distance BD. The computer104determines the braking distance BD to control the braking system106in a manner that balances occupant comfort and vehicle performance, e.g., by determining a longer distance where the vehicle100is not expected to change lanes and a shorter distance where the vehicle100is expected to change lanes. The longer distance may be more comfortable for the occupant, while the shorter distance may be used to maintain speed of the vehicle100when changing lanes to pass the second vehicle200.

The computer104determines the braking distance BD based on parameters, i.e., values that can change over time, that are detected and/or determined from data from the sensors116, e.g., as described herein. The parameters include a gap distance GD1, GD2between the primary vehicle100and a vehicle225,250in an adjacent lane, a speed of the vehicle225,250in the adjacent lane, a difference between a speed of the primary vehicle100and the speed of the vehicle225,250in the adjacent lane, and/or a difference between a speed of the second vehicle200in the same lane SL as the primary vehicle100and the speed of the vehicle225,250in the adjacent lane.

For example, the computer104may determine the braking distance BD with an equation, or the like that includes one or more of the parameters as input variables and the braking distance BD an output. The computer104may store multiple equations, e.g., one for use when the vehicle in the adjacent lane is forward of the primary vehicle100, and another for use when the vehicle in the adjacent lane is rearward of the primary vehicle100. An example equation for determining a braking score BS as a function of scores S1, S2, and S3, is shown below:

In Equation 1, the variable S1specifies a unitless score, e.g., between zero and one, that is calculated based on the gap distance GD1, GD2between the primary vehicle100and a vehicle225,250in an adjacent lane. The score S1may be calculated in relation to a predetermined gap distance high threshold, e.g., 100 meters, and a predetermined gap distance low threshold, e.g., 0 meters. The gap distance GD1, GD2may be normalized to result in a score S1of between zero and one. For example, the predetermined gap distance high threshold (and greater distances) may be associated with a score of zero. The predetermined gap distance low threshold (and lower distances) may be associated with a score S1of one. The normalized unitless score S1may be linearly scaled to the gap distance GD1, GD2. For example, a gap distance 50 percent above the low threshold and toward the high threshold, e.g., 50 meters, would have a score S1of 0.5.

The predetermined gap distance high threshold and the predetermined gap distance low threshold for calculating the variable S1may be stored in the memory of the computer104. The predetermined gap distance high threshold and the predetermined gap distance low threshold may be determined based on empirical testing, simulation, analysis of real-world data, e.g., to identify situations where the predetermined gap distance high threshold and the predetermined gap distance low threshold correlate to whether an operator of the vehicle100is anticipated to change lanes to pass the vehicle200in front of and in the same lane SL as the primary vehicle100. For example, the predetermined gap distance high threshold may be identified with analysis showing that an operator of the primary vehicle100is likely to change lanes to pass the vehicle200in front of and in the same lane SL of the primary vehicle100when the gap distance is equal to, or greater than the predetermined gap distance high threshold, and is increasing less likely to change lanes as the gap distance decreases from the predetermined gap distance high threshold. As another example, the predetermined gap distance low threshold may be identified with analysis showing that an operator of the primary vehicle100is unlikely to change lanes to pass the vehicle200in front of and in the same lane SL of the primary vehicle100when the gap distance is equal to, or less than the predetermined gap distance low threshold. As one more example, the predetermined gap distance low threshold may be identified with analysis showing that the vehicle225,250in the adjacent lane LAL is likely to interfere with navigation the primary vehicle100(e.g., inhibiting the primary vehicle from changing lanes and passing the vehicle200in front of and in the same lane SL as the primary vehicle100by blocking a path of the primary vehicle100).

The variable S2specifies a unitless score, e.g., between zero and one, that is calculated based on a difference between the speed of the primary vehicle100and the speed of the vehicle225,250in the adjacent lane LAL, i.e., the relative speed between the vehicles100,225,250. The computer104may calculate the difference between the speeds by subtracting the speed of the primary vehicle100from the speed of the vehicle225,250in the adjacent lane LAL, as described herein, or with other techniques. The score S2may be calculated in relation to a predetermined high relative speed threshold, e.g., 10 kilometers per hour (kph), and a predetermined low relative speed threshold, e.g., 0 kph. The difference between the speed of the primary vehicle100and the speed of the vehicle225,250in the adjacent lane LAL may be normalized to result in a score S2of between zero and one. For example, the predetermined high relative speed threshold (and higher relative speeds) may be associated with a score S2of one. The predetermined low relative speed threshold (and lower relative speeds) may be associated with a score S2of zero. The normalized unitless score S2may be linearly scaled to the relative speed between the vehicles100,225,250. For example, a relative speed of 50 percent above the predetermined low relative speed threshold and toward predetermined high relative speed threshold would have a score S2of 0.5.

The predetermined high relative speed threshold and the predetermined low relative speed threshold for determining the score S2may be stored in the memory of the computer104and may be determined based on based on empirical testing, simulation, analysis of real-world data, e.g., as described for the predetermined gap distance low and high thresholds.

The variable S3specifies a unitless score, e.g., between zero and one, that is calculated based on a difference between a speed of the vehicle200in the same lane SL as the primary vehicle100and the speed of the vehicle225,250in the adjacent lane LAL, i.e., the relative speed between the vehicles200,225,250. The computer104may calculate the difference between the speeds by subtracting the speed of the vehicle200in the same lane SL as the primary vehicle100from the speed of the vehicle225,250in the adjacent lane LAL. The score S3may be calculated in relation to a predetermined high relative speed threshold, e.g., 10 kilometers per hour (kph), and a predetermined low relative speed threshold, e.g., 0 kph. The difference between the speed of the vehicle200in the same lane SL as the primary vehicle100and the speed of the vehicle225,250in the adjacent lane LAL may be normalized to result in a score S3of between zero and one. For example, the predetermined high relative speed threshold (and higher relative speeds) may be associated with the score S3of zero. The predetermined low relative speed threshold (and lower relative speeds) may be associated with the score S3of one. The normalized unitless score S3may be linearly scaled to the relative speed between the vehicles200,225,250. For example, a relative speed of 50 percent above the predetermined low relative speed threshold and toward predetermined high relative speed threshold would have a score S2of 0.5.

The predetermined high relative speed threshold and the predetermined low relative speed threshold for determining the score S3may be stored in the memory of the computer104and may be determined based on based on empirical testing, simulation, analysis of real-world data, e.g., as described for the predetermined gap distance low and high thresholds.

The brake score BS output from Equation 1 specifies a unitless score that is correlated with various braking distances BD. For example, the brake score BS may be between zero and one. Zero may be associated with a predetermined minimum braking distance, e.g., 20 meters, and may have a scaled increase relative to the brake score BS, e.g., a brake score BS of 0.25 would yield a braking distance BD of 125% of the minimum braking distance, a brake score BS of 0.75 would yield a braking distance BD of 175% of the minimum braking distance, etc.

The predetermined minimum braking distance, may be stored in the memory of the computer104. The predetermined minimum braking distance may be determined based on empirical testing, simulation, analysis of real-world data, e.g., to identify a minimum distance at which the braking system106may be actuated to avoid the primary vehicle100from impacting the vehicle200in front of and in the same lane SL as the primary vehicle100.

Multiple thresholds, e.g., multiple predetermined minimum braking distances may be stored in the computer104and the computer104may select from among the multiple thresholds. For example, the computer104may store a lookup table or the like associating various speeds, e.g., speeds of the primary vehicle100, relative speeds between the primary vehicle100and the vehicle200in front of and in the same lane SL as the primary vehicle100, etc., with various predetermined minimum braking distances. An example lookup table is shown below:

The lookup table may be populated based on empirical testing, simulation, analysis of real-world data, e.g., to identify minimum distances at which the braking system106may be actuated to avoid the primary vehicle100from impacting the vehicle200for various relative speeds and/or based on data indicating occupant comfort at various braking distances.

The computer104may select a specific predetermined minimum braking distance that is associated in the lookup table with a detected speed of the primary vehicle100, a relative speed between the primary vehicle100and the vehicle200in front of and in the same lane SL as the primary vehicle100, etc.

The computer104may determine the braking distance BD based on a determination of whether a secondary vehicle225,250in the adjacent lane is forward or rearward of the primary vehicle100. Whether the vehicle225,250in the adjacent lane is forward or rearward of the primary vehicle100affects whether the vehicle225,250may interfere with navigation the primary vehicle100(e.g., inhibiting the primary vehicle from changing lanes and passing the vehicle200in front of and in the same lane SL as the primary vehicle100) for various relative speeds of the vehicles. For example, if the vehicle225is forward of and traveling faster than the primary vehicle100, then the gap distance GD1between the vehicle225and the primary vehicle100is increasing and the vehicle225is unlikely to interfere with navigation of the primary vehicle100. On the other hand, if the vehicle250is rearward of and traveling faster than the primary vehicle100, then the gap distance GD2between the vehicle250and the primary vehicle100is decreasing and the vehicle250may be likely to interfere with navigation of the primary vehicle100. As another example, if the vehicle225is forward of and traveling slower than the primary vehicle100, then the gap distance GD1between the secondary vehicle225and the primary vehicle100is decreasing and the vehicle225may be likely to interfere with navigation of the primary vehicle100. On the other hand, if the secondary vehicle250is rearward of and traveling slower than the primary vehicle100, then the gap distance GD2between the vehicle250and the primary vehicle100is increasing and the vehicle250is unlikely to interfere with navigation of the primary vehicle100.

The computer104may determine the braking distance BD based on the determination of whether the vehicle225,250is forward or rearward of the primary vehicle100by first determining whether the vehicle225,250is forward or rearward based on data from the sensors116, e.g., as described herein. Next, the computer104may select one of the stored equations or look-up tables based on such determination. For example, the computer104may select one equation or lookup table when the vehicle225is determined to be forward of the primary vehicle100and may select another equation or lookup table when the vehicle250is determined to be rearward of the primary vehicle100. The stored lookup tables and/or equations may include data specifying whether such lookup table or equation is for use when the vehicle225,250is forward or rearward. The computer104may select the lookup table or equation with data specifying the determined forward or rearward position of the vehicle225,250relative to the primary vehicle100.

The computer104may determine the braking distance BD based on a determination of whether the vehicle225,250,275is in a passing lane. The passing lane is a lane of the road designated for passing other vehicles. The passing lane may be relative to the lane of the primary vehicle100. For example, in the United States, the passing lane is typically the left adjacent lane LAL to the lane of the primary vehicle100. The computer104may store data specifying the passing lane. The data may specify a relative relationship, e.g., the left adjacent lane LAL, or may specify a specific lane in map data. Upon determining the vehicle275is not in the passing lane, i.e., the passing lane is free other vehicles, the computer104may determine the braking distance BD as the minimum distance.

When multiple vehicles225,250,275are present in the adjacent lanes, the computer104may determine a braking distance for each of the vehicles225,250,275, and then may select the greatest of such braking distances as the determined braking distance BD.

The computer104may determine the braking distance BD based on a determination of whether the primary vehicle100is indicating a lane change. The computer104may determine the primary vehicle100is indicating a lane change based on data from the sensors116, e.g., as described herein. Upon determining the primary vehicle100is indicating a lane change, the computer104may determine the braking distance BD as the minimum distance.

In addition to determining the braking distance BD, the computer104may also determine a braking rate, i.e., a rate at which to decrease speed of the vehicle, e.g., e.g., a percent of total braking ability (such as 50%), a deceleration amount (such as 3 meters per second per second), etc. The computer104may determine the braking rate based on the determined braking distance BD or based on the brake score BS. As one example, the computer104may store a lookup table or the like associating various braking distances BD with various braking rates.

TABLE 2Braking DistanceBraking Rate50 meters15 meters per second per second75 meters10 meters per second per second100 meters5 meters per second per second

The lookup table may be populated based on empirical testing, simulation, analysis of real-world data, e.g., to identify braking rates at which the braking system106may be actuated to avoid the primary vehicle100from impacting the vehicle200for various relative speeds and/or based on data indicating occupant comfort at various braking rates. The lookup table may be populated to slow the vehicle100at the maximum rate when the minimum braking distance BD is determined and to provide a progressively lower rate of deceleration as the braking distance BD increases.

As another example, a brake score BS of zero may be associated with a predetermined maximum braking rate, e.g., 10 meters per second per second, and may have a scaled decrease relative to an increase of the brake score BS. The brake score BS may be linearly scaled to the braking rate.

The computer104is programmed to actuate the braking system106of the primary vehicle100. For example, the computer104may transmit a command to the braking system106via the communication network108. The command may specify a rate at which to decelerate the primary vehicle100.

The computer104may actuate the braking system106of the primary vehicle100when the primary vehicle100is at the braking distance BD from the vehicle200in the same lane SL as the primary vehicle100. For example, the computer104may transmit a command to the braking system106when data from the sensors116specifies a distance between the primary vehicle100and the vehicle200is equal to or less that the determined braking distance BD. The computer104may actuate the braking system106to decelerate the primary vehicle100at the determined rate associated with the determined distance, e.g., the command transmitted to the braking system106may specify the rate determined with a lookup table or equation.

FIG. 3is a process flow diagram illustrating an exemplary process300for operating the system102. The process300begins in a block305where the computer104receives data from the sensors116, the navigation system114, etc., e.g., via the communication network108. The computer104may receive such data substantially continuously or at time intervals, e.g., every 50 milliseconds. The computer104may store the data, in the memory.

Next at a block310the computer104determines whether the primary vehicle100is indicating a lane change, e.g., based on data from the sensors116and as described herein. Upon determining the primary vehicle100is indicating a lane change the process300moves to a block315. Upon determining the primary vehicle100is not indicating a lane change the process300moves to a block320.

At the block315the computer104determines the braking distance BD as the minimum distance. The computer104may also determine the braking rate as the maximum rate. After the block315the process300moves to a block335.

At the block320the computer104determines whether a vehicle225,250is detected in a passing lane, e.g., the left adjacent lane LAL, relative to the primary vehicle100. Upon determining that the vehicle225,250is in the left adjacent lane LAL the process moves to a block325. Upon determining that no vehicles are detected in the left adjacent lane LAL the process300moves to the block315.

At the block325the computer104determines whether the vehicle225,250is forward or rearward of the primary vehicle100. The computer104then selects an equation based on whether the vehicle225,250is forward or rearward of the primary vehicle100. For example, the computer104may select an equation specifying forward when the vehicle225is forward of the primary vehicle100. The computer104may select an equation specifying rearward when the vehicle250is rearward of the primary vehicle100.

At a block330the computer104determines the braking distance BD based a gap distance GD1, GD2between the primary vehicle100and the vehicle225,250, the speed of the vehicle225,250, a difference between the speed of the primary vehicle100and the speed of the vehicle225,250, and/or a difference between a speed of a vehicle200in the same lane SL as the primary vehicle100and the speed of the vehicle225,250in the left adjacent lane LAL. For example, the computer104may use data from the sensors116and the equation or lookup table selected at the block325, and as described herein. The computer may additionally determine a braking rate, e.g., as described above.

When multiple vehicles225,250are detected in the left adjacent lane LAL, the computer104may execute the blocks320-330for each of the vehicles225,250, and select the longest braking distance BD thus obtained as the braking distance BD for use in subsequent blocks of the process300, beginning with a block335.

At the block335the computer104determines whether the primary vehicle100is the braking distance BD from the vehicle200. In other words, the computer104determines whether a distance between the primary vehicle100and the vehicle200in the same lane SL and in front of the primary vehicle100is equal to or less than the braking distance BD determined at the block315or the block330. Upon determining that the primary vehicle100is the braking distance BD from the vehicle200the process300moves to a block340. Upon determining that the primary vehicle100is not the braking distance BD from the vehicle200the process300returns to the block310.

At the block340the computer104actuates the braking system106to slow the primary vehicle100. For example, the computer104may transmit a command to a braking system106ECU, including data specifying the braking rate determined at the block315or the block330. After the block340the process300may end. Alternately, the process300may return to the block310.

With regard to the process described herein, it should be understood that, although the steps of such process have been described as occurring according to a certain ordered sequence, such process could be practiced with the described steps performed in an order other than the order described herein. It further should be understood that certain steps could be performed simultaneously, that other steps could be added, or that certain steps described herein could be omitted. In other words, the description of the process herein is provided for the purpose of illustrating certain embodiments and should in no way be construed so as to limit the disclosed subject matter.