Collision avoidance and mitigation

Information

  • Patent Grant
  • 11400927
  • Patent Number
    11,400,927
  • Date Filed
    Monday, January 29, 2018
    6 years ago
  • Date Issued
    Tuesday, August 2, 2022
    2 years ago
Abstract
A system includes a computer including a processor and a memory, the memory storing instructions executable by the processor to determine respective threat numbers for each of a plurality of targets based on an angular acceleration of a host vehicle and actuate a component in the host vehicle based on the threat numbers.
Description
BACKGROUND

Vehicle collisions often occur at intersections. Collision mitigation between a host vehicle and a target may be difficult and expensive to implement. For example, determining a threat assessment indicating a probability of a collision between the target and the host vehicle may require data from a plurality of sensors. Furthermore, performing the threat assessment for several targets can require significant computing resources, especially when certain targets in certain intersections may have a lower risk of a collision. Unfortunately, technology is lacking to reduce certain costly computing expenditures associated with target threat assessment. For example, the present inventors have recognized that present technology suffers from inefficiencies because it is lacking with respect to identifying targets moving near a vehicle in an intersection for which a threat assessment need not be performed.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram of an example system for collision avoidance and mitigation.



FIG. 2 illustrates an example intersection with a host vehicle and a target.



FIGS. 3A-3F illustrate example intersections with the host vehicle.



FIG. 4 is an example diagram of measurements taken by the host vehicle between the host vehicle and the target.



FIG. 5 illustrates the host vehicle in an example intersection.



FIG. 6 illustrates the host vehicle in an example intersection.



FIG. 7 illustrates the host vehicle in an example intersection.



FIG. 8 illustrates the host vehicle taking measurement from a plurality of targets.



FIG. 9 is a block diagram of an example process for operating the host vehicle in an intersection.





DETAILED DESCRIPTION

A system includes a computer including a processor and a memory, the memory storing instructions executable by the processor to determine respective threat numbers for each of a plurality of targets based on an angular acceleration of a host vehicle and actuate a component in the host vehicle based on the threat numbers.


The instructions can further include instructions to determine the threat number for each of the targets based on an angular speed of the host vehicle. The instructions can further include instructions to determine the threat number for each of the targets based on a forward speed of the host vehicle and the angular speed. The instructions can further include instructions to determine that the host vehicle is leaving a current roadway lane based on the forward speed and the angular speed.


The instructions can further include instructions to determine the threat number for each of the targets based on at least one of a target heading angle of the respective target and a target heading angle rate of the respective target.


The instructions can further include instructions to actuate a brake in the host vehicle when the threat number is above a threat number threshold.


The instructions can further include instructions to determine the threat number for each of the targets based on a steering wheel angle of the host vehicle.


The instructions can further include instructions to determine the threat number for at least one of the targets when a sign of a first value of the angular acceleration differs from a sign of a subsequent value of the angular acceleration.


A system includes a host vehicle, means for determining respective threat numbers for each of a plurality of targets based on an angular acceleration of the host vehicle, and means for braking the host vehicle based on the threat numbers.


The system can further include means for determining the threat number for each of the targets based on an angular speed of the host vehicle. The system can further include means for determining the threat number for each of the targets based on a forward speed of the host vehicle and the angular speed. The system can further include means for determining that the host vehicle is leaving a current roadway lane based on the forward speed and the angular speed.


A method includes determining respective threat numbers for each of a plurality of targets based on an angular acceleration of a host vehicle and actuating a component in the host vehicle based on the threat numbers.


The method can further include determining the threat number for each of the targets based on an angular speed of the host vehicle. The method can further include determining the threat number for each of the targets based on a forward speed of the host vehicle and the angular speed. The method can further include determining that the host vehicle is leaving a current roadway lane based on the forward speed and the angular speed.


The method can further include determining the threat number for each of the targets based on at least one of a respective target heading angle for the respective target and a target heading angle rate of the respective target.


The method can further include actuating a brake in the host vehicle when the threat number is above a threat number threshold.


The method can further include determining the threat number for each of the targets based on a steering wheel angle of the host vehicle.


The method can further include determining the threat number for at least one of the targets when a sign of a first value of the angular acceleration differs from a sign of a subsequent value of the angular acceleration.


Further disclosed is a computer programmed to execute any of the above method steps. Yet further disclosed is a vehicle comprising the computer. Yet further disclosed is a computer program product, comprising a computer readable medium storing instructions executable by a computer processor, to execute any of the above method steps.


In an intersection, a computer in a vehicle can detect a plurality of targets moving toward the vehicle and actuate components to avoid and/or mitigate collisions with the targets. Typically, not all targets in an intersection have a high enough probability of a collision with the host vehicle to warrant extensive threat analysis and consideration. Threat analysis can then be performed on the targets selected for the reduced set, and the vehicle can then be operated based on the threat analysis of the selected targets. The computer can collect data about the targets and the host vehicle and, based on the collected data, reduce the total number of targets to consider for extensive threat analysis. Thus, by focusing only on targets most likely to collide with the host vehicle, computing resources can be conserved and thereby made available for other purposes and/or the computer can operate more efficiently, e.g., make threat assessments in less time and/or by consuming fewer resources, such as processor cycles, memory, network bandwidth, etc.



FIG. 1 illustrates an example system 100 for collision avoidance and mitigation. Unless indicated otherwise in this disclosure, an “intersection” is defined as a location where two or more vehicles' current or potential future trajectories cross. Thus, an intersection could be at any location on a surface where two or more vehicles could collide, e.g. a road, a driveway, a parking lot, an entrance to a public road, driving paths, etc. Accordingly, an intersection is determined by identifying a location where two or more vehicles may meet, i.e., collide. Such determination uses potential future trajectories of a host vehicle 101 as well as nearby other vehicles and/or other objects.


A computer 105 in the vehicle 101 is programmed to receive collected data 115 from one or more sensors 110. For example, vehicle 101 data 115 may include a location of the vehicle 101, data about an environment around a vehicle, data about an object outside the vehicle such as another vehicle, etc. A vehicle 101 location is typically provided in a conventional form, e.g., geo-coordinates such as latitude and longitude coordinates obtained via a navigation system that uses the Global Positioning System (GPS). Further examples of data 115 can include measurements of vehicle 101 systems and components, e.g., a vehicle 101 velocity, a vehicle 101 trajectory, etc.


The computer 105 is generally programmed for communications on a vehicle 101 network, e.g., including a conventional vehicle 101 communications bus. Via the network, bus, and/or other wired or wireless mechanisms (e.g., a wired or wireless local area network in the vehicle 101), the computer 105 may transmit messages to various devices in a vehicle 101 and/or receive messages from the various devices, e.g., controllers, actuators, sensors, etc., including sensors 110. Alternatively or additionally, in cases where the computer 105 actually comprises multiple devices, the vehicle network may be used for communications between devices represented as the computer 105 in this disclosure. In addition, the computer 105 may be programmed for communicating with the network 125, which, as described below, may include various wired and/or wireless networking technologies, e.g., cellular, Bluetooth®, Bluetooth® Low Energy (BLE), wired and/or wireless packet networks, etc.


The data store 106 can be of any type, e.g., hard disk drives, solid state drives, servers, or any volatile or non-volatile media. The data store 106 can store the collected data 115 sent from the sensors 110.


Sensors 110 can include a variety of devices. For example, various controllers in a vehicle 101 may operate as sensors 110 to provide data 115 via the vehicle 101 network or bus, e.g., data 115 relating to vehicle speed, acceleration, position, subsystem and/or component status, etc. Further, other sensors 110 could include cameras, motion detectors, etc., i.e., sensors 110 to provide data 115 for evaluating a position of a component, evaluating a slope of a roadway, etc. The sensors 110 could, without limitation, also include short range radar, long range radar, LIDAR, and/or ultrasonic transducers.


Collected data 115 can include a variety of data collected in a vehicle 101. Examples of collected data 115 are provided above, and moreover, data 115 are generally collected using one or more sensors 110, and may additionally include data calculated therefrom in the computer 105, and/or at the server 130. In general, collected data 115 may include any data that may be gathered by the sensors 110 and/or computed from such data.


The vehicle 101 can include a plurality of vehicle components 120. In this context, each vehicle component 120 includes one or more hardware components adapted to perform a mechanical function or operation—such as moving the vehicle 101, slowing or stopping the vehicle 101, steering the vehicle 101, etc. Non-limiting examples of components 120 include a propulsion component (that includes, e.g., an internal combustion engine and/or an electric motor, etc.), a transmission component, a steering component (e.g., that may include one or more of a steering wheel, a steering rack, etc.), a brake component, a park assist component, an adaptive cruise control component, an adaptive steering component, a movable seat, and the like.


When the computer 105 operates the vehicle 101, the vehicle 101 is an “autonomous” vehicle 101. For purposes of this disclosure, the term “autonomous vehicle” is used to refer to a vehicle 101 operating in a fully autonomous mode. A fully autonomous mode is defined as one in which each of vehicle 101 propulsion (typically via a powertrain including an electric motor and/or internal combustion engine), braking, and steering are controlled by the computer 105. A semi-autonomous mode is one in which at least one of vehicle 101 propulsion (typically via a powertrain including an electric motor and/or internal combustion engine), braking, and steering are controlled at least partly by the computer 105 as opposed to a human operator. In a non-autonomous mode, i.e., a manual mode, the vehicle 101 propulsion, braking, and steering are controlled by the human operator.


The system 100 can further include a network 125 connected to a server 130 and a data store 135. The computer 105 can further be programmed to communicate with one or more remote sites such as the server 130, via the network 125, such remote site possibly including a data store 135. The network 125 represents one or more mechanisms by which a vehicle computer 105 may communicate with a remote server 130. Accordingly, the network 125 can be one or more of various wired or wireless communication mechanisms, including any desired combination of wired (e.g., cable and fiber) and/or wireless (e.g., cellular, wireless, satellite, microwave, and radio frequency) communication mechanisms and any desired network topology (or topologies when multiple communication mechanisms are utilized). Exemplary communication networks include wireless communication networks (e.g., using Bluetooth®, Bluetooth® Low Energy (BLE), IEEE 802.11, vehicle-to-vehicle (V2V) such as Dedicated Short Range Communications (DSRC), etc.), local area networks (LAN) and/or wide area networks (WAN), including the Internet, providing data communication services.



FIG. 2 illustrates an example host vehicle 101 in an intersection with an example target 200 (in this example, a second vehicle 101) that can cross the path of the host vehicle 101 in an intersection on a roadway. The target 200 can be, e.g., another vehicle 101, a bicycle, an obstacle, etc. The roadway includes a plurality of roadway lanes 205, including the roadway lanes 205a, 205b, 205c, 205d. FIG. 2 illustrates an oncoming turn-across path (OCTAP) intersection, in which the host vehicle 101 has a projected path 210h that crosses a projected path 210a of the target 200. As used herein, a “projected path” is a predicted set of points over which the host vehicle 101 or target 200 will follow based on one or more elements of the host vehicle 101 or target 200 trajectory, e.g., a speed, a direction of travel, a position, an acceleration, etc. As used herein, a “turn” is a projected path 210h that extends from a first roadway lane 205 into a second roadway lane 205 that in many examples is substantially perpendicular to the first roadway lane 205, e.g., from the roadway lane 205a to the roadway lane 205c.


A host vehicle 101 making a left-hand turn on a 2-way right-hand driving roadway will move the host vehicle 101 across lanes where targets 200 can move opposite to the direction of the host vehicle 101 before making the left-hand turn. That is, the host vehicle 101 in a left-hand turn has to cross lanes 205 where targets 200 move toward the host vehicle 101 in the intersection, increasing a probability of a collision. The computer 105 can be programmed to actuate one or more components 120 in an OCTAP intersection to avoid and/or mitigate a collision with the targets 200.


When the host vehicle 101 is not in an OCTAP intersection, the computer 105 can determine not to perform a threat assessment on detected targets 200 and not to actuate one or more components 120 to avoid or mitigate a collision with the detected targets 200. FIGS. 3A-3F illustrate a plurality of example intersections in which the host vehicle 101 is at a lower risk of a collision with the target 200 than in an OCTAP intersection. In intersections that are not OCTAP intersections, not all targets 200 warrant extensive threat estimation. For example, as shown in FIG. 3A, the example path 210h of the host vehicle 101 does not cross the example path 210a of the target 200, and the computer 105 should not perform a threat assessment on the target 200. As described below, the computer 105 can determine one or more indicators that indicate whether the host vehicle 101 is in an intersection that is not an OCTAP intersection.



FIG. 3A illustrates an example intersection in which a target 200 is turning away from the host vehicle 101. The host vehicle 101 has an example path 210h that extends from the roadway lane 205a, the current position of the host vehicle 101, to the roadway lane 205c, i.e., a left-hand turn. The target 200 has an example path 210a that extends from the roadway lane 205b, the current position of the target 200, to the roadway lane 205d. In the example of FIG. 3A, the risk of a collision between the host vehicle 101 and the target 200 is low because the example paths 210h, 210a do not cross, and thus the computer 105 can determine not to perform extensive threat analysis on the target 200.



FIG. 3B illustrates an example intersection in which a target 200 and the host vehicle 101 are turning into the same roadway lane 205. The host vehicle 101 has an example path 210h that extends from the roadway lane 205a, the current position of the host vehicle 101, to the roadway lane 205c, i.e., a left-hand turn. The target 200 has an example path 210a that extends from the roadway lane 205b, the current position of the target 200, to the roadway lane 205c. The example path 210a of target 200 can indicate that the target 200 will move into the roadway lane 205c before the host vehicle 101, and the risk of a collision between the host vehicle 101 and the target 200 is low. Thus, the computer 105 can determine not to perform extensive threat analysis on the target 200.



FIG. 3C illustrates an example intersection in which a target 200 is moving in an opposing roadway lane 205 from a turning host vehicle 101. The host vehicle 101 has an example path 210h that extends from the roadway lane 205a, the current position of the host vehicle 101, to the roadway lane 205d, i.e., a right-hand turn. The target 200 has an example path 210a that extends along the roadway lane 205c. The computer 105 can detect the oncoming target 200 and determine whether to perform a threat analysis on the target 200 and actuate components 120 to avoid the target 200. Because the example paths 210h, 210a do not cross, the risk of a collision between the host vehicle 101 and the target 200 is low. Thus, the computer 105 can determine not to perform extensive threat analysis on the target 200.



FIG. 3D illustrates an example intersection in which a host vehicle 101, a first target 200a, and a second target 200b are traveling in roadway lanes 205a, 205b, 205c. The first target 200a moves along an example path 210a in the roadway lane 205a. The second target 200b moves along an example path 210b in the roadway lane 205c. The host vehicle 101 moves along an example path 210h from the roadway lane 205a to the roadway lane 205b. The computer 105 can detect the oncoming second target 200b. The risk of a collision between the host vehicle 101 and either of the first target 200a or the second target 200b is low, at least because the example paths 210h, 210a, and 210b do not cross. Furthermore, the computer 105 can determine that the risk of a collision between the host vehicle 101 and the targets 200a, 200b is low based on other data 115, e.g., based on a distance between the host vehicle 101 and each of the targets 200a, 200b. Thus, the computer 105 can determine not to perform extensive threat analysis on either the first target 200a or the second target 200b.



FIG. 3E illustrates an example intersection in which a host vehicle 101, a first target 200a, and a second target 200b are traveling in roadway lanes 205a, 205b. The host vehicle 101 and the first target 200a are in the roadway lane 205a. The host vehicle 101 can move along an example path 210h, and the first target 200a can move along an example path 210a. The second target 200b is moving opposite the host vehicle 101 in the roadway lane 205b along an example path 210b. The example path 210h that extends from the roadway lane 205a, into the roadway lane 205b (to pass the target 200a), and back into the roadway lane 205a ahead of the target 200a. FIG. 3E shows an “overtake” intersection, in which the host vehicle 101 passes from behind the target 200a to a position in front of the target 200a by passing through an adjacent roadway lane 205.


The computer 105 can detect the oncoming second target 200b. Because the host vehicle 101, following the example path 210h, can return to the roadway lane 205a before the second target 200b reaches the position of the host vehicle 101 when the host vehicle 101 is in the roadway lane 205b, the risk of a collision between the host vehicle 101 and either of the first target 200a and the second target 200b is low. Thus, the computer 105 can determine not to perform extensive threat analysis on either the first target 200a or the second target 200b.



FIG. 3F illustrates an example intersection in which a host vehicle 101 and a target 200 are traveling in roadway lanes 205a, 205b. The roadway lanes 205a, 205b curve, and the computer 105 can determine that the host vehicle 101 is in a turn and that threat analysis of the target 200 should be performed. The host vehicle 101 can follow an example path 210h in the roadway lane 205a, and the target 200 can follow an example path 210a in the roadway lane 205b. The computer 105 can detect the target 200 and determine whether to perform extensive threat analysis and actuate one or more components 120 to avoid the target 200. The risk of a collision between the host vehicle 101 and the target 200 is low at least because the host vehicle 101 and the target 200 remain in their respective roadway lanes 205a, 205b. Thus, the computer 105 can determine not to perform extensive threat analysis on the target 200.



FIG. 4 illustrates parameters based on data 115 measured by the sensors 110 of the host vehicle 101 and one example target 200 as determined by the computer 105. The data 115 collected by the sensors 110 can include, e.g., a position, a speed, an acceleration, a trajectory, etc. of the host vehicle 101. The host vehicle 101 has a projected path 210h, and the target 200 has a projected path 210a, as described above. The host vehicle 101 can define an origin at a center point of a front end of the host vehicle 101. The computer 105 can define a rectangular coordinate system based on the origin. The computer 105 can use the origin to specify the position, speed, and/or acceleration of the host vehicle 101 and the target 200.


The rectangular coordinates start at the origin of the host vehicle 101 and are specified according to orthogonal directions: a lateral direction, designated with the label X, and a longitudinal direction, designated with the label Y. The computer 105 can predict the position, speed, and acceleration of the host vehicle 101 and the target vehicle in the rectangular coordinates.


The host vehicle 101 has a forward speed that can be denoted u. The forward speed u is a change in position of the host vehicle 101 along the projected path 210h. The computer 105 can determine the forward speed u based on a sensor 110, e.g., a speedometer. The forward speed u has units of distance per time, e.g., meters per second (m/s), miles per hour (mph), etc.


The host vehicle 101 can have an angular speed ω. The angular speed ω is a change in value of an angle relative to the longitudinal axis Y in the plane of the lateral axis X and the longitudinal axis Y. The angular speed ω has units of angle per time, e.g., radians per second (rad/s), degrees per second (deg/sec), etc. The computer 105 can determine the angular speed ω with a sensor 110, e.g., a gyroscope.


The host vehicle 101 can have an angular acceleration {dot over (ω)}. The angular acceleration {dot over (ω)} is a change in the angular speed ω over a period of time, i.e.,







ω
.

=



d





ω

dt

.






The angular acceleration {dot over (ω)} has units of angle per time squared, e.g., radians per second squared (rad/sec2), degrees per second squared (deg/sec2), etc. The computer 105 can determine the angular acceleration {dot over (ω)} based on the angular speed ω and a time elapsed between measurements of the angular speed ω.


The computer 105 can determine the angular speed ω as a yaw rate. As used herein, “yaw” is a movement around an axis normal to a horizontal plane (an example is the X-Y plane in FIG. 4) that changes the direction of the vehicle 101, e.g., to the left or right of the direction that the vehicle 101 is heading. The angular speed ω can be a rate at which the host vehicle 101 moves in the yaw direction.


The computer 105 can determine a steering wheel angle θ. The steering wheel angle θ is an angle of a host vehicle 101 steering wheel (not shown) relative to a central axis (e.g., an axis of a steering column) in the host vehicle 101. A host vehicle 101 user can turn the steering wheel, and the computer 105 can determine the steering wheel angle θ based on, e.g., a steering wheel sensor 110.


The computer 105 can determine a steering ratio rs. The steering ratio rs is the ratio of the steering wheel angle θ, as described above, and a steering angle α of the host vehicle 101 resulting from moving the steering wheel to the steering wheel angle θ. Moving the steering wheel to the steering wheel angle θ turns a steering column and one or more components 120 to turn one or more wheels to the steering angle α, the steering angle α being the angle between the wheel and a front end of the vehicle 101. The steering ratio rs can thus be defined as rs=θ/α. For example, a steering ratio rs of 7.5 means that when the user rotates the steering wheel 150 degrees (i.e., θ=150°), the steering angle α changes 20 degrees.


The host vehicle 101 has a wheelbase d. The wheelbase d is a distance between a front axle and a rear axle of the host vehicle 101. The wheelbase d can be a predetermined value measured by, e.g., a service worker, and stored in the data store 106 and/or the server 130.


The computer 105 can determine a curvature Kh of the host vehicle 101 trajectory at a time t. The curvature Kh is a measure of a radius of curvature of the host vehicle 101 trajectory along the projected path 210h. The curvature Kh has units of reciprocal length, e.g., 1/m, reciprocal meters. The curvature Kh can be determined according to one of two example formulas:











K
h



(
t
)


=


ω


(
t
)



u


(
t
)







(
1
)
















K
h



(
t
)


=


sin


(


θ


(
t
)



r
s


)


d





(
2
)







The computer 105 can determine the curvature Kh according to Equation 1 when the forward speed u is above a predetermined forward speed threshold and according to Equation 2 when the forward speed u is below the predetermined forward speed threshold. The forward speed threshold can be 2.2 meter/sec (corresponding to 5 mile per hour), a speed threshold below which the division operation in Equation 1 could be inaccurate or approaches division by zero. The forward speed threshold can be determined based on, e.g., empirical data correlating a forward speed u of the host vehicle 101 to measurements of the curvature Kh. Based on the curvature Kh and the change in the curvature Kh, the computer 105 can determine whether the host vehicle 101 is in an OCTAP intersection.



FIG. 5 illustrates example curvature Kh determinations for the projected path 210h of the host vehicle 101. The roadway lanes 205a, 205b in the example of FIG. 5 have a substantially S-shaped curve, i.e., the curvature Kh changes from a positive value to a negative value. In the example of FIG. 5, a “first phase” indicates a portion of the projected path 210h where the computer 105 determines that the curvature Kh is positive or zero, i.e., Kh≥0, and a “second phase” where the computer 105 determines that the curvature Kh is negative, i.e., Kh<0. When the computer 105 determines that the sign of the curvature Kh changes, i.e., the value of Kh changes from a positive value to a negative value or from a negative value to a positive value, the computer 105 can determine that the host vehicle 101 is moving in an S-shaped curve. As described below, when the computer 105 determines that the sign of the curvature Kh changes, the computer 105 can determine a threat number for targets 200. As described above in the example of FIG. 3F, the host vehicle 101 remains in the roadway lane 205a along the projected path 210h, and thus the host vehicle 101 does not perform a turn and the computer 105 should not actuate components 120 based on the threat number of the target 200.



FIG. 6 illustrates example angular speed ω determinations for the projected path 210h of the host vehicle 101 in the example intersection shown in FIG. 3D. The host vehicle 101 moves from the roadway lane 205a to the roadway lane 205b along the projected path 210h. The steering wheel of the host vehicle 101 would rotate to the left to move the host vehicle 101 into the roadway lane 205b and then rotate to the right to move the host vehicle 101 straight in the roadway lane 205b. Thus, the angular speed ω changes as the host vehicle 101 moves into the roadway lane 205b. In the example of FIG. 6, the computer 105 determines a “first phase” indicating a portion of the projected path 210h in which the computer 105 determines that the angular speed ω is positive or zero, i.e., ω≥0, and a “second phase” indicating a portion of the projected path 210h in which the computer 105 determines that the angular speed ω is negative, i.e., ω<0. As described below, when the computer 105 determines that the angular speed ω changes sign, i.e., from a positive value to a negative value or from a negative value to a positive value, the computer 105 can determine that the host vehicle 101 is moving from the roadway lane 205a to the roadway lane 205b. Thus, the computer 105 can determine that the host vehicle 101 is not performing a turn and not to actuate components 120 based on the threat numbers of the targets 200a, 200b.



FIG. 7 illustrates example angular acceleration {dot over (ω)} determinations for the projected path 210h of the host vehicle 101 in the example intersection shown in FIG. 3E. The host vehicle 101 can move along the projected path 210h from the roadway lane 205a into the roadway lane 205b and then into the roadway lane 205a, passing the first target 200a and moving toward the second target 200b. In the example of FIG. 7, the computer 105 determines a “first phase” indicating a portion of the projected path 210h in which the computer 105 determines that the angular acceleration {dot over (ω)} is positive or zero, i.e., {dot over (ω)}≥0, and a “second phase” indicating a portion of the projected path 210h in which the computer 105 determines that the angular acceleration {dot over (ω)} is negative, i.e., {dot over (ω)}<0. As described below, when the computer 105 can determine that when the angular acceleration {dot over (ω)} changes sign, i.e., from a positive value to a negative value or from a negative value to a positive value, that the host vehicle 101 is passing a target 200. Thus, the computer 105 can determine that the host vehicle 101 is not performing a turn and not to actuate components 120 based on the threat numbers of the targets 200a, 200b.



FIG. 8 illustrates an example intersection in which the computer 105 determines a heading angle ψt and a heading angle rate








ψ
.

t

=


d






ψ
t


dt






for a first target 200a and a second target 200b. The computer 105 can determine a heading angle ψt defined between the projected path 210h of the host vehicle 101 and a target 200. In the example of FIG. 8, the computer 105 can determine a first heading angle ψt,1 and a first heading angle rate {dot over (ψ)}t,1 between the projected path 210h of the host vehicle 101 and a projected path 210a of the first target 200a. The computer 105 can determine a second heading angle ψt,2 and a second heading angle rate {dot over (ψ)}t,2 between the projected path 210h of the host vehicle 101 and a projected path 210b of the second target 200b. As described below, based on the heading angle ψt and the heading angle rate {dot over (ψ)}t, the computer 105 can determine whether to actuate components 120 based on the threat numbers of the targets 200a, 200b.


The computer 105 can determine a threat number TNm for each target 200. A threat number is a prediction of whether a specific target 200 will intersect or collide with the host vehicle 101. As used herein, the symbol m is an index that is a natural number and identifies one of the targets 200, and the symbol M is a natural number that indicates the total number of targets 200 identified by the computer 105. Thus, the threat number TNm is the threat number for the specific target 200 indicated by the index m. Specifically, the computer 105 may determine the acceleration threat number ATN, the brake threat number BTN, and the steering threat number STN for the host vehicle 101 and the target 200, and based on the threat numbers ATN, BTN, STN, which may be combined into a single threat number TN, to actuate components 120.


The BTN is a measure of a needed longitudinal deceleration to allow the host vehicle 101 to stop before colliding with the target 200. The BTN can be based on a measured host vehicle 101 speed, a distance between the target 200 and the host vehicle 101, and the projected paths 210h, 210a. The computer 105 can determine a longitudinal deceleration to stop the host vehicle 101 before colliding with the target 200, e.g., 2 m/s2. The computer 105 can determine a maximum deceleration of the host vehicle 101, e.g., 8 m/s2. The BTN can be the ratio of the needed deceleration to the maximum deceleration, e.g., BTN= 2/8=0.25. If the needed deceleration to avoid a collision with the target 200 exceeds the maximum deceleration of the host vehicle 101, i.e., BTN>1, then the computer 105 can set the value of the BTN to 1, i.e., if BTN>1, BTN=1.


The STN is a measure of a needed lateral acceleration to allow the host vehicle 101 to steer away from the target 200. As with the BTN, the computer 105 can determine a needed lateral acceleration to avoid a collision between the host vehicle 101 and the target 200. The STN can be the ratio of the needed lateral acceleration to a maximum lateral acceleration of the host vehicle 101. If the needed lateral acceleration exceeds the maximum lateral acceleration, the computer 105 can set the STN to 1.


The ATN is a measure of a needed longitudinal acceleration to allow the host vehicle 101 to accelerate and pass the target 200. As described above for the BTN and the STN, the computer 105 can determine a needed acceleration to allow the host vehicle 101 to pass the target 200 and a maximum available acceleration of the host vehicle 101. The ATN can be the ratio of the needed longitudinal acceleration to the maximum longitudinal acceleration of the host vehicle 101. If the needed longitudinal acceleration exceeds a maximum longitudinal acceleration, the computer 105 can set the ATN to 1. The computer 105 may determine the STN, BTN, and/or ATN to produce a respective threat number TNm for each target 200.


The computer 105 can determine the threat number TNm based on the predicted trajectories of the host vehicle 101 and the target 200. That is, based on the position, velocity, acceleration, and turn rate of the host vehicle 101 and the target 200, the computer 105 can determine the threat number TNm for the target 200. In one non-limiting example, the BTN, STN, and ATN can be determined in a manner described in U.S. patent application Ser. No. 15/005,037, Pub. No. 2016/0362104, filed Jan. 25, 2016, which is incorporated herein by reference in its entirety. Other techniques for determining threat numbers TNm could alternatively be used, e.g., the threat number may be a ratio of a required deceleration to stop the target 200 prior to entering the host vehicle path 210h (i.e., a “zero-range” deceleration) to a predetermined maximum deceleration of the target 200.


The computer 105 can determine the overall threat number TN as the maximum value of threat numbers TN1, TN2, . . . , TNm, i.e. the respective threat numbers of the M targets 200. However, as described below, the computer 105 can determine that one or more targets 200 have a low probability of a collision with the host vehicle 101, and the computer 105 can exclude those targets 200 from further threat analysis and collision avoidance and mitigation. The computer 105 can determine a plurality of indicators ξ, each indicator being a Boolean value of either 0 or 1, based on the curvature Kh, the angular speed ω, the angular acceleration {dot over (ω)}, the heading angle ψt, and the heading angle rate {dot over (ψ)}t. As used herein, an “indicator” is a value that indicates, whether the host vehicle 101 is in an intersection that is not an OCTAP scenario. Thus, based on the indicators ξ, the computer 105 can determine whether a specific target 200 should be considered for further threat analysis or removed from further threat analysis. When at least one of the indicators ξ=1, the computer 105 can reduce the threat number TNm for the m target 200 to 0, excluding the target 200 from further threat analysis and collision avoidance and mitigation. For example, the computer 105 can determine 5 indicators ξ1, ξ2, ξ3, ξ4, ξ5 and determine the overall threat number TN based on the threat numbers TNm:










TN


(
t
)


=


max


m
=
1

,









,
M




(



TN
m



(
t
)


·




j
=
1

5







(

1
-


ξ
j



(
t
)



)



)






(
3
)







The computer 105 can actuate one or more vehicle components 120 based on the threat number TN, e.g., when the threat number TN is above a predetermined threat number threshold. The computer 105 can actuate one or more components 120 based on a comparison of the threat number to a plurality of thresholds. For example, if the threat number TN is above 0.7, the computer 105 can actuate a brake 120 to decelerate the host vehicle 101, e.g., at −6.5 meters per second squared (m/s2). In another example, if the threat number TN is above 0.4 but less than or equal to 0.7, the computer 105 can actuate the brake 120 to, e.g., a deceleration of −2.0 m/s2. In another example, if the threat number TN is greater than 0.2 but less than or equal to 0.4, the computer 105 can display a visual warning on a host vehicle 101 human-machine interface and/or play an audio warning over a speaker.


The computer 105 can determine a first indicator ξ1 based on a curvature Kh. The computer 105 can use the first indicator ξ1 to determine whether the host vehicle 101 is in an S-curve as shown in FIG. 5. Specifically, the first indicator ξ1 can indicate whether the host vehicle 101 is in the second phase of the S-curve and whether the computer 105 should actuate components 120 to avoid targets 200. The computer 105 can determine intermediate indicators ξ1a, ξ1b, ξ1c, ξ1d, ξ1e, ξ1f to indicate current movement of the host vehicle 101 at a time t:











ξ

1

a




(
t
)


=

{



1




if







K
h



(
t
)



>


δ

K
h


_






0


otherwise








(
4
)








ξ

1

b




(
t
)


=

{



1




if







K
h



(
t
)



>


δ

K
h


_






0


otherwise








(
5
)








ξ

1

c




(
t
)


=

{



1




if






(



ξ

1

a




(
t
)


+


ξ

1

b




(
t
)


+


ξ

1

c




(

t
-

Δ





t


)



)



2





0


otherwise








(
6
)








ξ

1

d




(
t
)


=

{



1




if







K
h



(
t
)



<

-


δ

K
h


_







0


otherwise








(
7
)








ξ

1

e




(
t
)


=

{



1




if







K
h



(
t
)



<

-


δ

K
h


_







0


otherwise








(
8
)








ξ

1

f




(
t
)


=

{



1




if






(



ξ

1

d




(
t
)


+


ξ

1

e




(
t
)


+


ξ

1

f




(

t
-

Δ





t


)



)



2





0


otherwise








(
9
)








where Δt is a predetermined time step, δKh is an upper limit of the curvature Kh determined based on an OCTAP intersection and stored in the data store 106 and/or the server 130, and δKh is a lower limit of the curvature Kh determined based on the OCTAP intersection and stored in the data store 106 and/or the server 130. The upper limit δKh and the lower limit δKh can be determined based on curvature Kh calculations of a predetermined OCTAP intersection, e.g., δKh=0.015, δKh=0.010. If ξ1c(t)=1, the host vehicle 101 is moving in a curve to the left. If ξ1f(t)=1, the host vehicle 101 is moving in a curve to the right.


Based on the intermediate indicators ξ1c, ξ1f, the computer 105 can determine whether the host vehicle 101 is exiting the current curve:











ξ

1

g




(
t
)


=

{



1




if







ξ

1

c




(
t
)



<


ξ

1

c




(

t
-

Δ





t


)







0


otherwise








(
10
)








ξ

1

h




(
t
)


=

{



1




if







ξ

1

f




(
t
)



<


ξ

1

f




(

t
-

Δ





t


)







0


otherwise








(
11
)








where ξ1g=1 when the host vehicle 101 is no longer in a leftward curve, and ξ1h=1 when the host vehicle 101 is no longer in a rightward curve. Based on the change in the indicators ξ1g, ξ1h, the computer 105 can determine the indicator ξ1 and whether the host vehicle 101 is in an S-curve:











ξ

1

i




(
t
)


=

{



1



if






(



ξ

1

g




(
t
)


=


1





and







ξ

1

h




(
t
)



=
0


)






0








if






(



ξ

1

g




(
t
)


=


0





and







ξ

1

h




(
t
)



=
1


)






or











(



ξ

1

g




(
t
)


=


1





and







ξ

1

h




(
t
)



=
1


)















ξ

1

i




(

t
-

Δ





t


)




otherwise








(
12
)








ξ
1



(
t
)


=

{



1





if









K
h



(
t
)





>



δ

k
h


_






and







K
h



(
t
)



>

0





and







ξ

1

i




(
t
)




=
1





1






if









K
h



(
t
)





>



δ

k
h


_






and







K
h



(
t
)





0





and







ξ

1

i




(
t
)




=
0
















0


otherwise








(
13
)







When ξ1g(t)=1, the host vehicle 101 is not in an OCTAP intersection, and the computer 105 can reduce the threat numbers TN of identified targets 200 to 0, as shown in Equation (3). Thus, the computer 105 can determine not to actuate components 120 based on the targets 200.


The computer 105 can, upon determining ξ1(t)=1, then start a timer to measure a time elapsed since determining ξ1(t)=1. If the time elapsed since determining ξ1(t)=1 exceeds a predetermined time threshold Td, i.e., ξ1(t+Td)=1, the computer 105 can determine that the host vehicle 101 is not in an OCTAP intersection and reduce the threat number TN of identified targets 200 to 0, as shown in Equation (3). The time threshold Td can be determined based on empirical data from an OCTAP intersection and an S-curve, and can be determined as a period of time beyond which the determination of ξ1(t)=1 indicates an S-curve and not a momentary change in Kh. The time threshold Td can be, e.g., 2.5 seconds.


The computer 105 can determine a second indicator ξ2 based on a current angular speed ω(t). The computer 105 can use the second indicator ξ2 to determine whether the host vehicle 101 is in a roadway lane 205 change as shown in FIG. 6. Specifically, the second indicator ξ2 can indicate whether the host vehicle 101 is in the second phase of the roadway lane 205 change and whether the computer 105 should actuate components 120 to avoid targets 200. The computer 105 can determine intermediate indicators ξ2a, ξ2b, ξ2c, ξ2d, ξ2e to indicate current movement of the host vehicle 101 at a time t:











ξ

2

a




(
t
)


=

{



1




if









ω
h



(
t
)





>


δ

ω
h


_






0


otherwise








(
14
)








ξ

2

b




(
t
)


=

{



1




if









ω
h



(
t
)





>


δ

ω
h


_






0


otherwise








(
15
)








ξ

2

c




(
t
)


=

{



1




if






(



ξ

2

a




(
t
)


+


ξ

2

b




(
t
)


+


ξ

2

c




(

t
-

Δ





t


)



)



2





0


otherwise








(
16
)








ξ

2

d




(
t
)


=

{



1




if







ξ

2

c




(
t
)



<


ξ

2

c




(

t
-

Δ





t


)







0


otherwise








(
17
)








ξ

2

e




(
t
)


=

{



1




if







ξ

2

c




(
t
)



>


ξ

2

c




(

t
-

Δ





t


)







0


otherwise








(
18
)








ξ
2



(
t
)


=

{



1



if






(



ξ

2

d




(
t
)


=


1





and







ξ

2

e




(
t
)



=
0


)






0











if






(



ξ

2

d




(
t
)


=


0





and







ξ

2

e




(
t
)



=
1


)






or











(



ξ

2

d




(
t
)


=


1





and







ξ

2

e




(
t
)



=
1


)












ξ
2



(

t
-

Δ





t


)




otherwise








(
19
)








where Δt is a predetermined time step, δωh is an upper limit of the angular speed ω determined based on an OCTAP intersection and stored in the data store 106 and/or the server 130, and δωh is a lower limit of the angular speed ω determined based on the OCTAP intersection and stored in the data store 106 and/or the server 130. The upper limit δωh and the lower limit δωh can be determined based on angular speed ω calculations of a predetermined OCTAP intersection, e.g., δωh=0.12, δωh=0.008. If ξd (t)=1, the host vehicle 101 is finishing a turn and is in a new roadway lane 205. If ξ2e(t)=1, the host vehicle 101 is starting a turn and is about to move to a new roadway lane 205. Thus, the computer 105 can determine whether the host vehicle 101 is in a roadway lane 205 change intersection and can accordingly reduce the threat numbers TN of one or more targets 200 to 0 as described above in Equation (3). As described above, the computer 105 can determine if the second indicator ξ2 (t)=1 for a predetermined time threshold Td, determined based on a predetermined OCTAP intersection and a roadway lane 205 change intersection described in FIG. 6.


The computer 105 can determine a third indicator ξ3 based on the angular acceleration {dot over (ω)}. The computer 105 can use the third indicator ξ3 to determine whether the host vehicle 101 is in an overtake intersection as shown in FIG. 7. Specifically, the third indicator ξ3 can indicate whether the host vehicle 101 is in the second phase of the overtake intersection, as described above and shown in FIG. 7, and whether the computer 105 should actuate components 120 to avoid targets 200. The computer 105 can determine intermediate indicators ξ3a, ξ3b, ξ3c, ξ3d, ξ3e, ξ3f to indicate current movement of the host vehicle 101 at a time t:











ξ

3

a




(
t
)


=

{



0




if








ω
.

h



(
t
)



<


δ

ω
.


_






1




if








ω
.

h



(
t
)






δ

ω
.


_








ξ

3

a




(

t
-

Δ





t


)




otherwise








(
20
)








ξ

3

b




(
t
)


=

{



0




if








ω
.

h



(
t
)



>

-


δ

ω
.


_







1




if








ω
.

h



(
t
)





-


δ

ω
.


_









ξ

3

b




(

t
-

Δ





t


)




otherwise








(
21
)







where δ{dot over (ω)} is an upper limit of the angular acceleration {dot over (ω)} determined based on an OCTAP intersection and stored in the data store 106 and/or the server 130, and δ{dot over (ω)} is a lower limit of the angular acceleration {dot over (ω)} determined based on the OCTAP intersection and stored in the data store 106 and/or the server 130. The upper limit δ{dot over (ω)} and the lower limit δ{dot over (ω)} can be determined based on angular speed ω calculations of a predetermined OCTAP intersection, e.g., δ{dot over (ω)}=−0.01, δ{dot over (ω)}=−0.05.


The computer 105 can determine the intermediate indicators ξ3cf to determine the third indicator ξ3:











ξ

3

c




(
t
)


=

{



1




if







ξ

3

a




(
t
)



<


ξ

3

a




(

t
-

Δ





t


)







0


otherwise








(
22
)








ξ

3

d




(
t
)


=

{



1




if







ξ

3

b




(
t
)



<


ξ

3

b




(

t
-

Δ





t


)







0


otherwise








(
23
)








ξ

3

e




(
t
)


=

{



1



if






(



ξ

3

c




(
t
)


=


1





and







ξ

3

d




(
t
)



=
0


)






0






if






(



ξ

3

c




(
t
)


=


0





and







ξ

3

d




(
t
)



=
1


)






or






(



ξ

3

c




(
t
)


=


1





and







ξ

3

d




(
t
)



=
1


)










ξ

3

e




(

t
-

Δ





t


)




otherwise








(
24
)








ξ

3

f




(
t
)


=

{



1



if






(



ξ

3

d




(
t
)


=


1





and







ξ

3

c




(
t
)



=
0


)






0






if






(



ξ

3

d




(
t
)


=


0





and







ξ

3

c




(
t
)



=
1


)






or






(



ξ

3

d




(
t
)


=


1





and







ξ

3

c




(
t
)



=
1


)










ξ

3

f




(

t
-

Δ





t


)




otherwise








(
25
)








ξ
3



(
t
)


=



(

1
-

sign


(




ω
.

h



(
t
)


+


δ

ω
.


_


)



)

·


ξ

3

e




(
t
)



+


sign


(




ω
.

h



(
t
)


+


δ

ω
.


_


)


·


ξ

3

f




(
t
)








(
26
)








where the sign( ) function indicates a sign of the input, i.e., whether the input is positive, negative, or zero. That is:










sign


(
x
)


=

{




-
1





if





x

<
0





1




if





x

>
0





0




if





x

=
0









(
27
)







Thus, the computer 105 can determine whether the host vehicle 101 is in an overtake intersection and should reduce the threat numbers TN of one or more targets 200 to 0 as described above in Equation (3). As described above, the computer 105 can determine if the third indicator ξ3(t)=1 for a predetermined time threshold Td, i.e., ξ3(t)=1∀t∈[t0, t0+Td] where t0 is the time t when the computer 105 first determines that ξ3(t)=1. The time threshold Td can be determined based on a predetermined OCTAP intersection and an overtake intersection shown in FIG. 7 and described above.


The computer 105 can determine a fourth indicator ξ4 based on the heading angle ψt and the heading angle rate {dot over (ψ)}t. The computer 105 can use the fourth indicator ξ4 to determine whether to actuate components 120 based on one or more targets 200:











ξ
4



(
t
)


=

{



0




if







sin


(

ψ
t

)


·


ψ
.

t





-


δ

ψ
.


_







1




if







sin


(

ψ
t

)


·


ψ
.

t





-


δ

ψ
.


_









ξ
4



(

t
-

Δ





t


)




otherwise








(
28
)








where δ{dot over (ψ)} is an upper limit of a heading angle rate {dot over (ψ)}t of the target 200 and δ{dot over (ψ)} is a lower limit of the heading angle rate {dot over (ψ)}t of the target 200. The upper limit δ{dot over (ψ)} and the lower limit δ{dot over (ψ)} can be determined based on empirical data from an OCTAP intersection and measurements of vehicles 101 and targets 200 in intersection, e.g., δ{dot over (ψ)}=−0.01 and δ{dot over (ψ)}=−0.02. When the fourth indicator ξ4=1, the target 200 can have a heading angle rate {dot over (ψ)}t that indicates that the target 200 is moving away from the host vehicle 101 and the computer 105 should not actuate components 120 to avoid and/or mitigate a collision with the target 200.


The computer 105 can determine a fifth indicator ξs based on the angular speed ω, a distance traveled by the host vehicle S, and the forward speed u. The fifth indicator ξs indicates when the host vehicle 101 is moving in a curve (e.g., along a roadway lane 205 that curves), briefly stops moving in the curve (e.g., the roadway lane 205 straightens), and then moves along a curve (e.g., the roadway lane 205 curves again). Specifically, the computer 105 can determine an intermediate indicator ξ5a as follows:










t
0

=


t





when






ω


(
t
)



>


ω
1






or






ω


(
t
)



<

ω
2






(
29
)








ξ

5

a




(
t
)


=

{



1




ω
1

<

ω


(
t
)


<

ω
2






0


otherwise








(
30
)








where t0 is a time start index, ω1 is a lower limit for the angular speed and ω2 is an upper limit for the angular speed ω. The limits ω1, ω2 can be predetermined values stored in the data store 106 and/or the server 130 determined based on empirical data of an angular speed ω of the host vehicle 101 on a roadway lane 205.


The computer 105 can then actuate a sensor 110 at the time start index t0 to measure a distance S traveled by the host vehicle 101. The computer 105 can determine the distance S traveled based on, e.g., a forward speed u, geo-coordinate data 115, etc. The computer 105 can determine an intermediate indicator ξ5b based on the distance S:











ξ

5

b




(
t
)


=

{



1





ξ

5

a




(
t
)


=


1





and






S


(
t
)



>

S
1







0





ξ

5

a




(
t
)


=
0









(
31
)








where S1 is a distance threshold based on empirical data of distances of predetermined roadway lanes 205 traveled by the host vehicle 101. The computer 105 can determine a time t* when ξ5b (t*)=0 subsequent to determining that ξ5b(t*−Δt)=1. The computer 105 can determine a time t** where ξ5b(t**)=1 where t**>t*.


The computer 105 can determine the fifth indicator ξ5 based on the intermediate indicators ξ5a, ξ5b, and a time threshold T* determined based on empirical data of the host vehicle 101 traveling in a roadway lane 205:











ξ
5



(
t
)


=

1





if





one





of






{






ξ

5

b




(
t
)


=

1








t


[


t
**

,


t
**

+

T
*



]











u


(
t
)


>


u
1





t
>



t
*






and






S


(

t
*

)



-

S


(
t
)



<

S
2











u


(
t
)


<


u
2






for





any





t

>

t
*











(
32
)








where u1, u2 are speed thresholds and S2 is a distance threshold, the thresholds determined based on empirical data of the host vehicle 101 traveling in a predetermined roadway lane 205 that curves, straightens, and then curves. When the fifth indicator ξ5=1, the computer 105 determines that the host vehicle 101 is not in an OCTAP intersection and determines to reduce the threat numbers TN of the targets 200 to 0.



FIG. 9 illustrates an example process 900 for operating a host vehicle 101 in an intersection. The process 900 begins in a block 905, in which the computer 105 collects data 115 from one or more sensors 110 about one or more targets 200. As described above, the computer 105 can determine a projected path 210 for each target 200 based on the collected data 115.


Next, in a block 910, the computer 105 determines an angular speed ω and an angular acceleration {dot over (ω)} of the host vehicle 101. As described above, the computer 105 can, based on the value and/or the sign of the angular speed ω and/or the angular acceleration {dot over (ω)}, determine whether to actuate components 120 to avoid one or more of the targets 200.


Next, in a block 915, the computer 105 determines a curvature Kh(t) of the projected path 210h of the host vehicle 101 for a time t. As described above, the computer 105 can, based on the value and/or the sign of the curvature Kh, determine whether to actuate components 120 to avoid one or more of the targets 200.


Next, in a block 920, the computer 105 determines a target heading angle ψt and a target heading angle rate ψt for each target 200. As described above, the computer 105 can, based on the target heading angle ψt and the target heading angle rate {dot over (ψ)}t, determine whether to actuate components 120 to avoid one or more of the targets 200.


Next, in a block 925, the computer 105 determines a threat number TNm for each target 200 and an overall threat number TN. As described above, the threat number TNm indicates a probability of a collision between the target 200 and the host vehicle 101. The overall threat number TN can be determined based on the threat numbers TNm for each target 200 and indicators ξ that exclude targets 200 based on the curvature Kh, the angular speed ω, the angular acceleration {dot over (ω)}, the heading angle {dot over (ψ)}t, and the heading angle rate {dot over (ψ)}t.


Next, in a block 930, the computer 105 actuates one or more components 120 in the host vehicle 101 based on the overall threat number TN. As described above, the computer 105 can actuate a brake 120 when the overall threat number TN is above a predetermined threshold, e.g., TN=0.7.


Next, in a block 935, the computer 105 determines whether to continue the process 900. For example, if the host vehicle 101 is moving along the projected path 210h, the computer 105 can continue the process 900 to detect additional targets 200 and perform collision mitigation and/or avoidance for the target 200. If the computer 105 determines to continue, the process 900 returns to the block 905 to collect more data. Otherwise, the process 900 ends.


As used herein, the adverb “substantially” modifying an adjective means that a shape, structure, measurement, value, calculation, etc. may deviate from an exact described geometry, distance, measurement, value, calculation, etc., because of imperfections in materials, machining, manufacturing, data collector measurements, computations, processing time, communications time, etc.


Computers 105 generally each include instructions executable by one or more computing devices such as those identified above, and for carrying out blocks or steps of processes described above. Computer executable instructions may be compiled or interpreted from computer programs created using a variety of programming languages and/or technologies, including, without limitation, and either alone or in combination, Java™, C, C++, Visual Basic, Java Script, Perl, HTML, etc. In general, a processor (e.g., a microprocessor) receives instructions, e.g., from a memory, a computer readable medium, etc., and executes these instructions, thereby performing one or more processes, including one or more of the processes described herein. Such instructions and other data may be stored and transmitted using a variety of computer readable media. A file in the computer 105 is generally a collection of data stored on a computer readable medium, such as a storage medium, a random access memory, etc.


A computer readable medium includes any medium that participates in providing data (e.g., instructions), which may be read by a computer. Such a medium may take many forms, including, but not limited to, non volatile media, volatile media, etc. Non volatile media include, for example, optical or magnetic disks and other persistent memory. Volatile media include dynamic random access memory (DRAM), which typically constitutes a main memory. Common forms of computer readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH EEPROM, any other memory chip or cartridge, or any other medium from which a computer can read.


With regard to the media, processes, systems, methods, etc. described herein, it should be understood that, although the steps of such processes, etc. have been described as occurring according to a certain ordered sequence, such processes 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. For example, in the process 900, one or more of the steps could be omitted, or the steps could be executed in a different order than shown in FIG. 9. In other words, the descriptions of systems and/or processes herein are provided for the purpose of illustrating certain embodiments, and should in no way be construed so as to limit the disclosed subject matter.


Accordingly, it is to be understood that the present disclosure, including the above description and the accompanying figures and below claims, is intended to be illustrative and not restrictive. Many embodiments and applications other than the examples provided would be apparent to those of skill in the art upon reading the above description. The scope of the invention should be determined, not with reference to the above description, but should instead be determined with reference to claims appended hereto and/or included in a non provisional patent application based hereon, along with the full scope of equivalents to which such claims are entitled. It is anticipated and intended that future developments will occur in the arts discussed herein, and that the disclosed systems and methods will be incorporated into such future embodiments. In sum, it should be understood that the disclosed subject matter is capable of modification and variation.


The article “a” modifying a noun should be understood as meaning one or more unless stated otherwise, or context requires otherwise. The phrase “based on” encompasses being partly or entirely based on.

Claims
  • 1. A system, comprising a computer including a processor and a memory, the memory storing instructions executable by the processor to: determine respective threat numbers for each of a plurality of targets;identify a turn-across path intersection between a host vehicle and at least one of the targets, in which a projected path of the host vehicle turns across a projected path of the at least one of the targets, based on determining a Boolean value for each of a plurality of indicators each identifying an intersection other than the turn-across path intersection, wherein each indicator is determined based on at least one of an angular acceleration of the host vehicle, an angular speed of the host vehicle, a curvature of a trajectory of the host vehicle, or a respective heading angle between each target and the projected path of the host vehicle; andactuate a component in the host vehicle based on the threat numbers upon identifying the turn-across path intersection.
  • 2. The system of claim 1, wherein the instructions further include instructions to determine the Boolean value of one of the plurality of indicators based on an angular speed of the host vehicle being between a first threshold and a second threshold and a distance traveled by the host vehicle exceeding a distance threshold, the one indicator identifying the host vehicle is operating along a curve in a roadway lane.
  • 3. The system of claim 1, wherein the instructions further include instructions to determine the Boolean value of one of the plurality of indicators based on, for a respective target, a target heading angle of the respective target and a target heading angle rate of the respective target, the one indicator identifying the host vehicle and the respective target are moving away from each other.
  • 4. The system of claim 1, wherein the instructions further include instructions to actuate a brake in the host vehicle when the threat number is above a threat number threshold.
  • 5. The system of claim 1, wherein the instructions further include instructions to determine the Boolean value of one of the indicators based on a steering wheel angle of the host vehicle and a host vehicle forward speed being below a predetermined forward speed threshold, the one indicator identifying the host vehicle is operating along a curve in a roadway lane.
  • 6. The system of claim 1, wherein the instructions further include instructions to determine the Boolean value of one of the plurality of indicators based on a sign of a first value of the angular acceleration and a sign of a subsequent value of the angular acceleration, the one indicator identifying the intersection other than a turn-across path intersection when the sign of the first value of the angular acceleration differs from the sign of the subsequent value of the angular acceleration.
  • 7. A system, comprising: a host vehicle;means for determining respective threat numbers for each of a plurality of targets;means for identifying a turn-across path intersection between a host vehicle and at least one of the targets, in which a projected path of the host vehicle turns across a projected path of the at least one of the targets, based on determining a Boolean value for each of a plurality of indicators each identifying an intersection other than the turn-across path intersection, wherein each indicator is determined based on at least one of an angular acceleration of the host vehicle, an angular speed of the host vehicle, a curvature of a trajectory of the host vehicle, or a respective heading angle between each target and the projected path of the host vehicle; andmeans for braking the host vehicle based on the threat numbers upon identifying the turn-across path intersection.
  • 8. The system of claim 7, further comprising means for determining that the host vehicle is leaving a current roadway lane based on a forward speed of the host vehicle and the angular speed.
  • 9. A method, comprising: determining respective threat numbers for each of a plurality of targets;identifying a turn-across path intersection between a host vehicle and at least one of the targets, in which a projected path of the host vehicle turns across a projected path of the at least one of the targets, based on determining a Boolean value for each of a plurality of indicators each identifying an intersection other than the turn-across path intersection, wherein each indicator is determined based on at least one of an angular acceleration of the host vehicle, an angular speed of the host vehicle, a curvature of a trajectory of the host vehicle, or a respective heading angle between each target and the projected path of the host vehicle; andactuating a component in the host vehicle based on the threat numbers upon identifying the turn-across path intersection.
  • 10. The method of claim 9, further comprising determining the threat number for each of the targets based on an angular speed of the host vehicle.
  • 11. The method of claim 9, further comprising determining the threat number for each of the targets based on, for a respective target, at least one of a respective target heading angle for the respective target and a target heading angle rate of the respective target.
  • 12. The method of claim 9, further comprising actuating a brake in the host vehicle when the threat number is above a threat number threshold.
  • 13. The method of claim 9, further comprising determining the Boolean value of one of the indicators based on a steering wheel angle of the host vehicle and a host vehicle forward speed being below a predetermined forward speed threshold, the one indicator identifying the host vehicle is operating along a curve in a roadway lane.
  • 14. The method of claim 9, further comprising determining the Boolean value of one of the plurality of indicators based on a sign of a first value of the angular acceleration differs from a sign of a subsequent value of the angular acceleration, the one indicator identifying the intersection other than a turn-across path intersection when the sign of the first value of the angular acceleration differs from the sign of the subsequent value of the angular acceleration.
  • 15. The system of claim 1, wherein the instructions further include instructions to determine the Boolean value of one of the indicators based on a curvature of a roadway lane, the one indicator identifying the intersection other than a turn-across path intersection when the curvature of the roadway lane is one of a leftward curve, a rightward curve, or an S-curve.
  • 16. The system of claim 1, wherein the instructions further include instructions to determine the Boolean value or the absence of a first indicator based on the curvature of the trajectory of the host vehicle, a second indicator based on the angular speed of the host vehicle, a third indicator based on the angular acceleration of the host vehicle, a fourth indicator based on a respective heading angle between each target and a projected path of the host vehicle, and a fifth indicator based on a forward speed of the host vehicle.
  • 17. The system of claim 1, wherein the plurality of indicators include a first indicator identifying an S-curve intersection, a second indicator identifying a lane change intersection, a third indicator identifying an overtake intersection, a fourth indicator identifying a diverging intersection, and a fifth indicator identifying a deviation curve intersection.
  • 18. The system of claim 17, wherein the instructions further include instructions to: determine the Boolean value for the first indicator based on at least the curvature of a trajectory of the host vehicle;determine the Boolean value for the second indicator based on at least the angular speed of the host vehicle;determine the Boolean value for the third indicator based on at least the angular acceleration of the host vehicle;determine the Boolean value for the fourth indicator based on at least the heading angle between each target and the projected path of the host vehicle; anddetermine the Boolean value for the fifth indicator based on at least the angular speed of the host vehicle.
  • 19. The method of claim 9, wherein the plurality of indicators include a first indicator identifying an S-curve intersection, a second indicator identifying a lane change intersection, a third indicator identifying an overtake intersection, a fourth indicator identifying a diverging intersection, and a fifth indicator identifying a deviation curve intersection.
  • 20. The method of claim 19, further comprising: determining the Boolean value for the first indicator based on at least the curvature of a trajectory of the host vehicle;determining the Boolean value for the second indicator based on at least the angular speed of the host vehicle;determining the Boolean value for the third indicator based on at least the angular acceleration of the host vehicle;determining the Boolean value for the fourth indicator based on at least the heading angle between each target and the projected path of the host vehicle; anddetermining the Boolean value for the fifth indicator based on at least the angular speed of the host vehicle.
US Referenced Citations (23)
Number Name Date Kind
6624782 Jocoy et al. Sep 2003 B2
9598009 Christensen et al. Mar 2017 B2
9688273 Mudalige et al. Jun 2017 B2
9751506 Mudalige et al. Sep 2017 B2
10011281 Kang Jul 2018 B1
20010027388 Beverina Oct 2001 A1
20070239408 Manges Oct 2007 A1
20090192675 Yamakado Jul 2009 A1
20110264302 Tsunekawa Oct 2011 A1
20140336844 Schwindt Nov 2014 A1
20150039212 Kido Feb 2015 A1
20160314360 Kizumi Oct 2016 A1
20160368492 Al-Stouhi Dec 2016 A1
20170057499 Kim Mar 2017 A1
20170061797 Lee Mar 2017 A1
20180056995 Deng Mar 2018 A1
20180099665 You Apr 2018 A1
20180118200 Yamaguchi May 2018 A1
20180182247 Baba Jun 2018 A1
20180194347 Nakagawa Jul 2018 A1
20190054916 Akiyama Feb 2019 A1
20200039481 Aitidis Feb 2020 A1
20210403006 Books Dec 2021 A1
Foreign Referenced Citations (2)
Number Date Country
107248320 Oct 2017 CN
WO-2017179391 Oct 2017 WO
Related Publications (1)
Number Date Country
20190232958 A1 Aug 2019 US