Vehicle collision avoidance based on perturbed object trajectories

The vehicle safety system addresses inaccurate collision predictions by determining perturbed trajectories for dynamic objects, enhancing collision prediction accuracy and vehicle safety through probabilistic analysis and adaptive responses.

JP7840273B2Active Publication Date: 2026-04-03ZOOX INC
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-05-24
Publication Date
2026-04-03

AI Technical Summary

Technical Problem

Existing collision avoidance systems for vehicles fail to accurately predict collisions with dynamic objects due to assumptions of immutable motion parameters, leading to inaccurate collision predictions and potentially dangerous outcomes.

Method used

A vehicle safety system that determines perturbed trajectories for objects by modifying parameters like velocity, acceleration, and steering angular velocity, analyzing these trajectories to predict potential collisions using a probabilistic approach, and determining appropriate vehicle actions based on collision probability calculations.

Benefits of technology

Improves collision prediction accuracy by considering trajectory perturbations, reducing false alarms and enhancing vehicle safety by enabling more nuanced responses to potential collisions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007840273000001
    Figure 0007840273000001
  • Figure 0007840273000002
    Figure 0007840273000002
  • Figure 0007840273000003
    Figure 0007840273000003
Patent Text Reader

Abstract

A vehicle safety system in an autonomous or semi-autonomous vehicle may predict and avoid collisions between the vehicle and other moving objects in the environment. The vehicle safety system may determine one or more perturbed trajectories for another object in the environment, for example, by perturbing state parameters of a perceived trajectory associated with the object. Each perturbed trajectory may be evaluated to determine whether it intersects with or potentially collides with the vehicle's planned trajectory. In some examples, the vehicle safety system may aggregate results of an analysis of multiple perturbed trajectories to determine a collision probability and / or additional weighting or adjustment factors associated with the collision prediction, and may determine an action to be taken by the vehicle based on the collision prediction and probability.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to vehicle collision avoidance based on perturbed object trajectories.

Background Art

[0002] Cross - reference to Related Applications

[0003] This PCT international application was filed on May 27, 2020, and claims the benefit of priority of U.S. Patent Application No. 16 / 884,975, titled "VEHICLE COLLISION AVOIDANCE BASED ON PERTURBED OBJECT TRAJECTORIES", the entire content of which is hereby incorporated by reference in its entirety.

[0004] Vehicles may be equipped with a collision avoidance system used to detect objects in the environment and control the vehicle to avoid the objects. The collision avoidance system can detect both stationary objects such as parked vehicles and road obstacles, and moving objects such as other vehicles, bicyclists, pedestrians, and animals. For example, some collision avoidance systems operate by detecting and identifying the presence of surfaces in the environment that represent objects in the path of the vehicle and then actuating the vehicle's braking and / or steering system to avoid a collision with the surface.

Prior Art Documents

Patent Documents

[0005]

Patent Document 1

Patent Document 2

Brief Description of the Drawings

[0006] Detailed explanations are provided with reference to the attached diagrams. In the diagrams, the number at the left of the reference number identifies the diagram in which that reference number first appears. The use of the same reference number in different diagrams indicates similar or identical components or features.

[0007] [Figure 1] This diagram illustrates a vehicle traversing an environment and depicts the vehicle's track and multiple perturbation tracks for a second vehicle within that environment. [Figure 2A] This diagram illustrates a vehicle traversing an environment and a second vehicle, depicting a potential collision between the vehicles. [Figure 2B] This diagram illustrates a vehicle traversing an environment and a second vehicle, depicting a potential collision between the vehicles. [Figure 3A] This graph illustrates an example of spatiotemporal overlap analysis between a vehicle and an object within a potential collision zone, using certain techniques described herein. [Figure 3B] This graph illustrates an example of spatiotemporal overlap analysis between a vehicle and an object within a potential collision zone, using certain techniques described herein. [Figure 4] This figure illustrates multiple perturbation trajectories based on perturbations to the acceleration and steering angular velocity of a vehicle in an environment, using certain techniques described herein. [Figure 5] This is a block diagram of an exemplary system for implementing the various techniques described herein. [Figure 6] This figure illustrates an exemplary process for determining predictions and / or probabilities associated with potential collisions between a vehicle moving within an environment and an object, using certain techniques described herein. [Figure 7] This chart illustrates the determination of collision predictions between an object and a vehicle for a perturbed trajectory matrix using certain techniques described herein. [Figure 8]This figure illustrates another exemplary process for determining predictions and / or probabilities associated with potential collisions between a vehicle moving within an environment and an object, using certain techniques described herein. [Modes for carrying out the invention]

[0008] This disclosure describes techniques for improving collision prediction and avoidance between a vehicle traversing an environment and other moving objects within that environment. The vehicle may include an autonomous vehicle, a semi-autonomous vehicle, or a manually controlled vehicle, and the moving objects may include other vehicles (e.g., automobiles, trucks, motorcycles, mopeds, etc.), pedestrians, cyclists, animals, etc. A vehicle safety system within the vehicle may predict a potential collision by identifying other objects in the environment, determining one or more perturbed trajectories for the other objects, and then determining the intersection between the vehicle trajectory and the perturbed trajectory (or candidate trajectory) for the object. For example, the vehicle safety system may compare the trajectory (or planned path) for the vehicle with several possible perturbed trajectories for another object moving within the environment. To determine the perturbed trajectory for the object, the vehicle safety system may modify (or perturb) one or more parameters of the object's current (or perceived) trajectory, such as velocity, acceleration, and / or steering angular velocity. For one or more perturbed trajectories, the vehicle safety system may determine whether the perturbed trajectory intersects with the planned trajectory for the vehicle. If one or more perturbation trajectories intersect with the planned vehicle trajectory, the vehicle safety system may then predict that a potential collision between the vehicle and the object is possible and, based on the prediction of the potential collision, determine what action the vehicle should take.

[0009] In various examples described herein, a vehicle safety system may receive state data associated with one or more objects moving in the same environment as the vehicle. The state data for an object may be based on sensor data captured by a sensor system on the vehicle and may include the classification of the object and the perceived state of the object (e.g., the object's current perceived velocity, the object's current perceived yaw rate, the object's current perceived linear acceleration and / or angular acceleration, etc.). In some cases, the vehicle safety system may receive state data from other systems within the vehicle, such as separate sensor systems, perception systems, and / or main vehicle control systems of the vehicle. Additionally or alternatively, the vehicle safety system may directly use raw sensor data from one or more sensors (e.g., LIDAR, RADAR, etc.) to determine object data, and may use the sensor data to determine perceived state parameters for an object (e.g., velocity, acceleration, steering angular velocity, etc.).

[0010] Using the current (or perceived) state parameters of an object, a vehicle safety system may determine multiple perturbation trajectories for the object. Each perturbation trajectory may represent one possible path the object can take from its currently perceived position. For example, the current perceived position and state parameters of an object may correspond to a first time (t0), and each perturbation trajectory may include a path with a series of points at subsequent times (t1, t2, t3, etc.) moving away from the object's position at time t0. Each perturbation trajectory determined by the vehicle safety system for an object is obtained based on different combinations of state parameters, which are modified from the object's current state parameters. For example, to determine a single perturbation trajectory for an object, the vehicle safety system may use one or more perturbation parameters to modify the object's perceived acceleration, the object's perceived steering angular velocity, or both. To determine multiple perturbation trajectories, Vehicle safety systems may use different combinations of perturbation parameters, including positive and / or negative perturbation parameters of different magnitudes. In at least some examples, such modifications and perturbations can be minimized so that the parameter space around the most likely trajectory, the most extreme trajectories, dynamically or kinematically restricted trajectories, or others are perturbed to minimize the computational resources required, while still ensuring that all possible scenarios of interaction are considered.

[0011] A vehicle safety system may analyze the perturbed trajectory of an object by comparing the perturbed trajectory with the planned trajectory of a vehicle and determine whether the trajectories intersect. In some examples, based on the vehicle trajectory and the perturbed trajectory of the object, the vehicle safety system may determine expected regions, including bounding boxes, path polygons (or corridors), etc., for the vehicle and the object, and determine whether spatiotemporal overlap occurs between vehicles following their respective trajectories. Intersections between trajectories may represent potential collisions, and the vehicle safety system may analyze the overlap detected between regions (e.g., bounding boxes or corridors) at different time intervals based on the vehicle trajectory and the object trajectory to determine the likelihood of a potential collision between each perturbed trajectory of the vehicle and the object. Additional examples of techniques for controlling vehicles and avoiding collisions between vehicles and other moving objects in an environment can be found, for example, in Patent Document 1, filed on September 19, 2018, entitled "Collision Prediction and Avoidance for Vehicles," the entirety of Patent Document 1 is incorporated herein by reference for all purposes.

[0012] In some examples, a vehicle safety system may determine a collision prediction based on the vehicle trajectory and a single perturbation trajectory of an object. For each individual perturbation trajectory, the collision prediction may be a binary decision (e.g., crossing or not crossing, collision or not collision). In other examples, a vehicle safety system may determine and analyze multiple perturbation trajectories of an object and determine a single collision prediction based on the results from the multiple perturbation trajectories. In such examples, the collision prediction may be calculated as the ratio and / or probability of collisions occurring, based on the results from the individual perturbation trajectories. The vehicle safety system may then determine one or more actions that the vehicle should take based on the collision prediction. Such actions may include activating the vehicle's automated braking and / or steering functions (and / or other vehicle control systems) to avoid or mitigate the risk of a potential collision.

[0013] The techniques and systems described herein can improve the operation and functionality of autonomous or semi-autonomous vehicles by more accurately predicting and avoiding potential collisions with other objects moving within the environment. For example, a system that predicts collisions based on a straight trajectory and / or a trajectory that assumes constant velocity, acceleration, and steering angular velocity for objects in the environment may not take into account potential changes in the trajectory due to dynamic objects. For example, dynamic objects such as vehicles driven by human agents or controlled by intelligent software-based agents often do not follow a single trajectory, but their velocity, acceleration, and steering angular velocity may change in response to other objects in the environment, traffic or weather conditions, or for purposes such as navigation or route optimization. A system that assumes that dynamic objects have immutable motion parameters (e.g., constant velocity, acceleration, and / or steering angular velocity) and move along a fixed trajectory may not be able to accurately predict potential collisions with objects. The inability to predict trajectory perturbations that may occur due to dynamic objects means that such systems may inaccurately predict collisions when they are unlikely to occur, triggering unnecessary collision avoidance actions, or fail to predict collisions when they are likely to occur, resulting in more serious and dangerous collisions.

[0014] To address these issues, the techniques and systems described herein include improved vehicle-based collision prediction by determining perturbed trajectories for objects in an environment based on trajectory perturbations (or modifications), and by analyzing / evaluating these perturbed trajectories to better predict potential collisions between a vehicle and an object. Some techniques involve using a probabilistic approach to predict collisions, in which the vehicle safety system determines multiple perturbed trajectories for a moving object in an environment, evaluates the individual perturbed trajectories, and aggregates the results to calculate the overall probability of the collision that will occur. For example, the vehicle safety system determines a first number of perturbed trajectories that will cause an object to collide with a vehicle. And it is possible to determine a second number of perturbation trajectories that will prevent the object from colliding with the vehicle. Next, the vehicle safety system may calculate the probability of a collision based on the ratio of the first number to the second number. After calculating the collision probability, the vehicle safety system may compare the probability to one or more threshold ranges to determine the action the vehicle should take to avoid or mitigate a potential collision.

[0015] As described above, the vehicle safety system can determine a set of perturbed trajectories by perturbing the state parameters of the perceived trajectory of an object. Using one or more perturbation parameters, the vehicle safety system can determine perturbed (or modified) state parameters that include one or more perturbed speeds, accelerations, yaw rates, and / or steering angular velocities (or angular accelerations). Each set of perturbed state parameters can correspond to a perturbed trajectory for the object. In some examples, the vehicle safety system can use a first perturbation parameter to generate a set of modified acceleration (e.g., linear acceleration) values for the object and a second perturbation parameter to generate a set of modified steering angular velocity (or angular acceleration) values for the object. In some cases, a set of perturbed (or modified) state parameters for the object can be calculated by modifying the perceived state parameters perceived for the object based on a plus or minus coefficient of the perturbation parameter. For example, a set of perturbed (or modified) linear acceleration parameters for the object can include the perceived linear acceleration of the object + / − the linear acceleration perturbation parameter, the perceived linear acceleration + / − twice the linear acceleration perturbation parameter, and so on. Similarly, a set of perturbed steering angular velocities for the object can be generated based on the current (or perceived) steering angular velocity of the object perturbed by positive and negative coefficients of the steering angular velocity perturbation parameter. Next, the vehicle safety system can determine a set of perturbed trajectories for the object that includes a perturbed trajectory for each unique combination of the perturbed acceleration and the perturbed steering angular velocity.

[0016] In some examples, the perturbed (or modified) state parameters (e.g., perturbed speed, perturbed acceleration, perturbed steering cornerPerturbation parameters used to determine a set of parameters (such as speed) may be based on the classification of the object. For example, a vehicle safety system may receive an object classification along with state data, or it may determine the classification of an object based on perceived or sensor data, as well as different perturbation parameters for different types of vehicles (e.g., cars, trucks, motorcycles, etc.) and / or various other object types (e.g., bicycles, animals, pedestrians, etc.). For example, the perturbation parameter values, as well as the number and / or range of perturbation trajectories generated for an object, may be based on kinematic and / or dynamic constraints, as well as capabilities associated with the type / classification of the object. For example, for a given perceived trajectory of an object in the environment, a vehicle safety system may generate one set of perturbation trajectories based on the kinematic and / or dynamic constraints of a bicycle if the object is a bicycle, and a different set of perturbation trajectories based on different kinematic and / or dynamic constraints of a car if the object is a car, and so on. Furthermore, while the above example refers to determining the perturbed trajectory by perturbing the perceived acceleration and perceived steering angular velocity of an object, in other examples, the vehicle safety system may determine a different perturbed trajectory based on perturbing other state parameters, such as perturbed object velocity, perturbed object yaw rate, etc.

[0017] Also, in some implementation examples, the vehicle safety system may determine a probability associated with each perturbation trajectory. In contrast to the overall collision probability calculation discussed above, the trajectory probability for a perturbation trajectory refers to the probability that an object will follow the perturbation trajectory. For example, if the vehicle safety system determines N different perturbation trajectories for an object, it may default to determining that each perturbation trajectory has an equal chance (e.g., 1 / N) of being followed by the object. However, in other examples, the vehicle safety system may determine that some perturbation trajectories are more likely to be followed by the object than other perturbation trajectories and may assign different probabilities to different perturbation trajectories. In such examples, the vehicle safety system uses the different probabilities to weight the results of the evaluation of the perturbation trajectories, thereby weighting the overall collision probability calculation advantageously for the more likely perturbation trajectories and disadvantageously for the less likely perturbation trajectories.

[0018] In certain examples, the calculation of the collision probability between the vehicle and the object may be weighted and / or adjusted based on additional factors such as the predicted importance of a potential collision, the physical proximity of a predicted non - collision (e.g., predicted abnormal proximity), and the consistency and reliability of the state data or sensor data associated with the object. The vehicle safety system may determine and use each of these factors, as described herein, to weight and / or adjust the calculation of the collision prediction between the vehicle and the object. For example, the vehicle safety system may weight a potential collision predicted to be more important than a less important collision. The vehicle safety system may adjust the collision probability to account for an abnormal - proximity perturbation trajectory and / or to account for less reliable or inconsistent state data and / or state parameters associated with the object.

[0019] As illustrated by these examples, the techniques and systems described herein can improve the operation and functionality of autonomous and semi-autonomous vehicles by more accurately predicting and avoiding potential collisions with other moving objects in the environment. Using the predictive approaches described herein, including determining and evaluating multiple perturbation trajectories for an object, vehicle safety systems can more accurately and comprehensively predict potential collisions with objects. In contrast to systems that assume objects will continue along their current course or trajectory, the techniques described herein involve calculating collision probabilities based on different perturbation trajectories for an object, which can reduce inaccurate predictions of collisions and non-collisions caused by assuming that dynamic objects will follow a constant trajectory.

[0020] Furthermore, the techniques and systems described herein can also improve vehicle behavior and functionality in determining the actions the vehicle should take in response to a predicted collision. When using a probabilistic approach to predict collisions based on multiple perturbation trajectories, the vehicle safety system does not need to make a binary choice of taking a single action or not taking one. Instead, the vehicle safety system may initiate one of several different actions based on different collision probability thresholds and ranges. The techniques described herein also enable the vehicle safety system to further determine the actions the vehicle should take based on a combination of collision probability calculations and additional factors, such as the confidence level in the collision probability calculations and the predicted importance of the potential collision. Thus, the vehicle safety system can improve vehicle behavior in avoiding and / or mitigating potential collisions by performing a wider range of possible actions based on collision probabilities and related factors.

[0021] Figure 1 illustrates a vehicle 102 traversing an environment 100 that includes various additional vehicles and other objects. A vehicle track 104 (which may also be called a route or planned route) is illustrated for the vehicle 102, illustrating the process of the vehicle 102 changing lanes. Medium This demonstrates that the environment 100 also includes several other vehicles and other objects, including a second vehicle 106 traveling in the opposite direction from vehicle 102. In this example, it is shown that the second vehicle 106 is in the process of rapidly changing lanes (or diverting) to avoid a third vehicle 108 that has slowed down due to a pedestrian 110 crossing the road. From the perspective of vehicle 106, it is moving from right to left on the road, but also has a left to right steering angle, indicating that vehicle 106 is in the process of returning to a straighter trajectory relative to its direction of travel.

[0022] Three different perturbation trajectories 112 are also shown for the vehicle 106, representing three potential paths that the vehicle 106 may travel in the time period following the scene depicted in Figure 1. In this example, perturbation trajectories 112(1), 112(2), and 112(3) differ with respect to the steering angular velocity (e.g., angular velocity and / or acceleration) that the vehicle 106 will travel from its location as depicted in Figure 1. Perturbation trajectory 112(1) depicts the sharpest steering angular velocity for the vehicle 106, in which the vehicle 106 does not approach or cross the center line 114 of the road. Perturbation trajectory 112(2) depicts a wider (or less acute) steering angular velocity for the vehicle 106, in which the vehicle 106 approaches the center line 114 but does not cross it. The perturbed track 112(3) depicts a wider steering angular velocity for vehicle 106, which causes vehicle 106 to intersect with the center line 114 and with the track 104 for vehicle 102 at point 116.

[0023] In some implementations, the vehicle 102 may be equipped with a vehicle safety system that includes various components configured to perform various collision prediction and avoidance techniques as described herein. As will be described in more detail with reference to Figure 5, the vehicle safety system 534 may be implemented as a separate and / or independent system (e.g., a separate computing device) operating within the vehicle 102. In other examples, the collision prediction and avoidance techniques described herein may be implemented by other vehicle systems, components, and / or computing devices. For example, certain techniques described herein may be implemented at least in part by, or in connection with, the planning component 524 and / or the prediction component 526.

[0024] As further described below, the vehicle 102 may include a sensor system, which includes sensors configured to detect and identify objects in the environment 100. In various examples, the vehicle 102 may also receive and use sensor data from remote sensors, e.g., sensors operating on another vehicle, and / or sensors mounted and operating elsewhere in the environment 100 (e.g., traffic surveillance cameras). The vehicle safety system may receive state data (also referred to as perception data) based on sensor data captured by various systems in or outside the vehicle 102. The state data may identify multiple objects detected in the environment 100 and may include various object attributes, e.g., object classification, size, position, pose, orientation, and state parameters (e.g., velocity, yaw rate, linear acceleration, angular acceleration, etc.) about the object. Additionally or alternatively, the vehicle safety system may include one or more dedicated sensors located near the vehicle 102 and configured to detect objects in the environment 100. Such sensors may include sensors mounted on the vehicle 102, such as cameras, motion detectors, LiDAR, RADAR, etc.

[0025] Although three perturbation trajectories 112 are shown in this example, the vehicle safety system may determine any number of different trajectories in other examples. Also, in this example, the perturbation trajectories 112 are determined by changing the steering angular velocity of the vehicle 106. However, in other examples, the vehicle safety system may determine a set of perturbation trajectories 112 by changing any other state parameters (e.g., velocity, yaw rate, linear acceleration, angular acceleration, etc.) individually or in any combination.

[0026] Furthermore, while this example depicts a perturbation trajectory 112 for a single object (e.g., vehicle 106), in other examples, the vehicle safety system of vehicle 102 may determine a set of perturbation trajectories for multiple objects in the environment. For example, vehicle 102 may determine perturbation trajectories for vehicle 106, vehicle 108, pedestrian 110, and / or other moving objects in environment 100. In some examples, the vehicle safety system may analyze state data to determine which objects near vehicle 102 are moving and which are not. The vehicle safety system may then determine perturbation trajectories for moving objects (e.g., cars, trucks, motorcycles, etc.), pedestrians, cyclists, animals, and obstacles on the moving path, such as tumbleweeds and debris, but it is not necessary to determine perturbation trajectories for non-moving objects (e.g., trees, parked vehicles, etc.). In some implementations, the vehicle safety system may perform standard collision avoidance maneuvers for non-moving objects, but non-moving objects may be ignored when determining perturbation trajectories and collision probability calculations.

[0027] In some examples, the vehicle safety system may determine the perturbation trajectory for moving objects within the proximity range of vehicle 102, but not for objects outside the proximity range. In some examples, the proximity range may be a distance range (e.g., 50m, 100m, 200m, etc.) and / or time range (e.g., 2 seconds, 3 seconds, ..., 6 seconds, ..., 10 seconds, etc.) corresponding to when vehicle 102 and object 106 may potentially intersect. In such cases, the vehicle safety system may compare the locations and / or speeds of vehicle 102 and vehicle 106 to determine whether vehicle 106 is close enough to determine the perturbation trajectory for vehicle 106. In other examples, the vehicle safety system may determine the proximity range on the fly based on the estimated stopping distance of vehicle 102 and / or other objects in the environment 100. In such cases, the vehicle safety system may receive or determine various attributes of vehicle 102 and / or other objects in the environment 100 (e.g., vehicle 106), such as object classification, weight, current speed, braking system specifications, etc. Using the object attributes and other data (e.g., weather, road conditions, etc.), the vehicle safety system may determine the estimated stopping distance for vehicle 102 and / or vehicle 106, and use the estimated stopping distance to determine whether vehicle 106 is close enough to determine the perturbation trajectory for vehicle 106.

[0028] As described above, Figure 1 depicts the intersection 116 between the vehicle track 104 and the perturbation track 112(3) for vehicle 106. To determine the intersection between the vehicle track and the perturbation track of an object, such a system may compare the generated track paths and / or coordinate sets, and by comparing the tracks in a common coordinate system, it may detect any overlapping points. In the example in Figure 1, tracks 104 and 112(3) are drawn as lines and the intersection 116 is drawn as a single point, but in other examples, the vehicle safety system may determine the vehicle / object track as a two- or three-dimensional polygonal object with an expected path of movement through the environment 100. For example, the vehicle safety system may determine bounding boxes for the vehicle and other objects in the environment 100 based on the respective sizes and shapes of the vehicle and the object. The vehicle safety system may predict the movement of the bounding boxes through a virtual coordinate system based on the environment 100, including changing the angle of the bounding boxes based on the orientation of the vehicle / object and / or applying an optional safety buffer around the bounding boxes. In such an example, if the determined trajectories for a vehicle / object intersect, the vehicle safety system may define the intersection as a polygonal collision zone based on the expected movement of bounding boxes representing the vehicle and object in a virtual coordinate system. As discussed below, the vehicle safety system may then predict a potential collision by determining the amount of spatiotemporal overlap between the vehicle 102 and the object in the collision zone based on the entry and exit times of the vehicle and object in the collision zone.

[0029] Figures 2A and 2B illustrate environments 200A and 200B, respectively, which may be similar to or identical to environment 100, and in environments 200A and 200B, the vehicle safety system of vehicle 102 may determine a potential collision based on the trajectory 104 of vehicle 102 and the perturbed trajectory 112(3) of objects such as vehicle 106.

[0030] In some examples, a vehicle safety system may determine the size and / or spatial area associated with vehicle 102 and object vehicle 106, and use the size or area in conjunction with the vehicle trajectory to determine the likelihood or possibility of a potential collision between vehicle 102 and vehicle 106. As shown in Figure 2A, in some examples, a vehicle safety system may determine a bounding box 202 associated with vehicle 102 and a bounding box 204 associated with object vehicle 106. The bounding boxes 202 and 204 may be based on the dimensions (e.g., length, width, and height) and shape of each vehicle, including safety buffers representing a safe distance around vehicle 102 and vehicle 106 to avoid a collision. For example, the vehicle safety system may determine the dimensions of the bounding box 204 for object vehicle 106 based on the perceived edges of vehicle 106 along the perceived trajectory of vehicle 106 (foremost and last points, leftmost and rightmost points), including additional safety buffers around the perceived edges of vehicle 106. In various examples, the size and shape of the safety buffers used for bounding boxes 202 and 204 may depend on the size, speed, type, or other characteristics of vehicles 102 and 106. For example, larger safety buffers may be used for faster vehicles, more vulnerable vehicles / objects (e.g., bicycles or pedestrians), or in scenarios where the vehicle safety system has less confidence in the perceived data about the size, shape, trajectory, or other state parameters of the object vehicle 106.

[0031] In Figure 2A, the bounding boxes 202 and 204 for vehicles 102 and 106, respectively, are shown at a first (current) time t0, and then shown as predictions for several different time intervals following the current time. In this example, the first bounding box 202(t0) is shown for vehicle 102 at the current time, and a series of predicted bounding boxes 202(t1), 202(t2), 202(t3), and 202(t4) are shown at constant time intervals moving forward from the current time, based on the planned trajectory of vehicle 102. Similarly, the first bounding box 204(t0) is shown based on the perceived state of vehicle 106 at the current time, and a series of predicted bounding boxes 204(t1) and 204(t2) are shown at the same time intervals (t1 and t2), based on the perturbed trajectory 112(3) of object vehicle 106. As shown in this example, when calculating the expected areas for bounding boxes 202 and 204 in subsequent time intervals, the vehicle safety system may also take into account expected vehicle actions (e.g., turning) and their corresponding effects on the orientation and position of vehicles 102 and 106.

[0032] In some cases, the vehicle safety system may compare the regions associated with bounding boxes 202 and 204 at each time interval to determine whether any overlap exists, which may indicate a crossing or potential collision between vehicle 102 and vehicle 106. For example, the vehicle safety system may compare the size, shape, and location of bounding boxes 202(t1) and 204(t1) to determine whether an overlap exists at time t1, and similarly compare bounding boxes 202(t2) and 204(t2) to determine whether an overlap exists at time t2, and so on. As shown in Figure 2A, there is no overlap between bounding box 202 and bounding box 204 at any time interval, and therefore the vehicle safety system may determine that there is no crossing and / or that the likelihood of a potential collision between vehicle 102 and vehicle 106 is low.

[0033] In contrast, in Figure 2B, the vehicle safety system has determined a first set of expected bounding boxes 206(t1), 206(t2), and 206(t3) based on the planned trajectory 104 of vehicle 102, and a second set of expected bounding boxes 208(t1), 208(t2), and 208(t3) based on the perturbed trajectory 112(3) of object vehicle 106. As shown in this example, there is an overlap between bounding box 206(t2) and bounding box 208(t2), indicating that a potential collision may occur between vehicle 102 and vehicle 106 at or around time t2.

[0034] The above example illustrates how potential collisions are determined by predicting bounding boxes in individual time intervals, but vehicle safety systems may implement various other techniques in other examples. For example, in some cases, Vehicle safety systemsThe expected path polygons or free-form corridors for each vehicle 102 and 106 may be determined based on their respective tracks 104 and 112(3), and a spatiotemporal overlap analysis of potential collision zones determined based on the overlap of path polygons (or corridors) may be performed. For example, as described in more detail in Patent Document 1, filed September 19, 2018, titled "Collision Prediction and Avoidance for Vehicles," which is incorporated herein by reference in its entirety for all purposes, the potential collision zone between vehicle 102 and vehicle 106 may be based on the intersection between track 104 and track 112(3), as well as one or more offset distances associated with vehicle 102 and vehicle 106. The vehicle safety system may determine the offset distances based on the length and / or width of vehicle 102 and vehicle 106, and may also apply any other distances representing a safety buffer or a safe distance from an object (e.g., vehicle 106) that vehicle 102 will not collide with. For example, the vehicle safety system may calculate an offset distance used to define the dimensions of a potential collision zone based on the overlap of the expected moving corridor for vehicle 102 and the expected moving corridor for vehicle 106, and the measurement is performed at points before and after the intersection 116 of track 104 and track 112(3). In various examples, the size of the moving corridors may be measured along their tracks from the centers of vehicles 102 and 106, and / or from the foremost and last points of vehicles 102 and 106. When calculating the offset distance for a potential collision zone, the vehicle safety system may also take into account vehicle maneuvers (e.g., turning) and their corresponding effects on the vehicle's position.

[0035] The vehicle safety system may also determine the entry and exit points, as well as entry and exit times, for vehicles 102 and 106, corresponding to the first and last points of overlap between the bounding box for the vehicles and the potential collision zone. For example, vehicle 102 may have an entry point into the potential collision zone and an exit point from the potential collision zone, and vehicle 106 may have separate entry and exit points to each. In some examples, the vehicle trajectory 104 and / or perturbed trajectory 112(3) may be defined as a series of trajectory sample points. In such examples, the vehicle safety system may determine the entry and exit points for vehicles 102 and 106 by identifying the last trajectory sample point before crossing the boundary of the potential collision zone and the first trajectory sample point after crossing the boundary of the potential collision zone.

[0036] The offset distance defining the dimensions of the potential collision zone may be determined by the vehicle safety system based on a predefined distance (e.g., a constant value), such as the known or perceived length and width of vehicles 102 and 106, and / or a buffer value. In some cases, the vehicle safety system may determine the offset distance relative to the vehicle tracks 104 and 112(3) before the intersection 116, which may be the same distance as, or different from, the distance determined based on the tracks 104 and 112(3) after the intersection 116. For example, the entry point for vehicle 102 may represent a position with an offset distance of 10 feet (3.048 m) along the track 104 before the intersection 116, and the exit point for vehicle 102 may represent a position with an offset distance of 5 feet (1.524 m) along the track 104 after the intersection 116. Similarly, the entry point for vehicle 106 may represent a position with an offset distance of 12 feet (3.658 m) along track 112(3) before intersection 116, and the exit point 210 for vehicle 106 may represent a position with an offset distance of 8 feet (2.438 m) along track 112(3) after intersection 116. It should be understood that these offset distances are merely examples, and that in other examples, the vehicle safety system may determine different offset distances based on safety buffers, object type and orientation, impact angle of collision, and / or various other factors.

[0037] Figures 3A and 3B illustrate graphs 300A and 300B, illustrating two examples of spatiotemporal overlap analysis between a vehicle 302 and an object 306 within a potential collision zone 304. Vehicle 302 may be similar to or identical to vehicle 102, and object 306 may be a second vehicle (e.g., vehicle 106) or some other moving object in the environment.

[0038] As discussed above, the vehicle safety system within vehicle 302 may perform spatiotemporal overlap analysis to determine the risk of collision between vehicle 302 and object 306 in the potential collision zone 304. Referring here to Figure 3A, graph 300A illustrates the analysis and determination by the vehicle safety system that vehicle 302 and object 306 may intersect (or collide) or have a high risk of intersecting / colliding, based on the spatiotemporal overlap between the trajectories of vehicle 302 and object 306 in the potential collision zone 304. In some examples, the vehicle safety system may determine that an intersection may occur by calculating and comparing the entry and exit points of vehicle 302 and object 306 into and out of the potential collision zone 304. For example, in Figure 3A, position line 308 represents the planned trajectory of vehicle 302, and vehicle 302 is at time 31 6 At time 31, the vehicle entered the potential collision zone 304. 8 This shows that the object can exit the potential collision zone 304 at time 31. In this example, the position line 310 represents the perturbed trajectory of object 306, and object 306 is at time 31. 2 At time 31, the vehicle entered the potential collision zone 304. 4 This indicates that the vehicle can exit the potential collision zone 304. Based on the overlap in the time window for the vehicle 302 and object 306 within the potential collision zone 304, and / or the intersection 320 between position line 308 and position line 310 within the potential collision zone 304, the vehicle safety system may determine an intersection representing a potential collision between the vehicle 302 and object 306.

[0039] In the above example, the vehicle safety system may determine spatiotemporal overlap based on a single trajectory for vehicle 302 (corresponding to position line 308) and a single perturbed trajectory for object 306 (corresponding to position line 310). In other examples, the vehicle safety system may receive or determine multiple potential velocities associated with vehicle 302 and / or object 306. For example, referring here to Figure 3B, graph 300B illustrates the analysis and determination by the vehicle safety system that vehicle 302 and object 306 will not intersect (or collide), or have a low risk of intersecting / colliding, based on the predicted times when vehicle 302 and object 306 will enter and exit the potential collision zone 304. In this example, the vehicle safety system determines that vehicle 302 and Based on the different possible speeds at which object 306 can proceed to and through the potential collision zone 304, position cones 322 and 324 are used to position vehicle 302 within the potential collision zone 304. and The spatiotemporal overlap between the trajectories of object 306 is analyzed. As shown in this example, the vehicle safety system may determine the vehicle position cone 322 based on the planned trajectory of vehicle 302 and estimates of the minimum and maximum speeds that vehicle 302 can take along its planned trajectory. Similarly, the vehicle safety system may determine the object position cone 324 based on the perturbed trajectory of object 306 and estimates of the minimum and maximum speeds that object 306 can take along its planned trajectory. In this example, the vehicle position cone 322 and the object position cone 324 do not overlap within the potential collision zone 304, and based on the non-overlap of position cones 322 and 324, the vehicle safety system may determine that vehicle 302 and object 306 will not intersect, or that the risk of intersection / collision is low. In some examples, the spatiotemporal overlap may also be expressed as one or more probability density functions (PDF) associated with the estimated positions of vehicle 302 and object 306 based on time.

[0040] In some implementations, the vehicle safety system may determine a binary collision prediction (e.g., collision or non-collision) for vehicle 302 and object 306. Additionally or alternatively, the vehicle safety system may determine the collision prediction as a binary prediction combined with probability or confidence. For example, the vehicle safety system may determine the collision probability and / or collision prediction confidence based on the time (T) between when object 306 exits the potential collision zone 304 and when vehicle 302 enters the potential collision zone 304, or vice versa. For a relatively small non-overlapping time period (T), the vehicle safety system may predict a lower confidence in a higher probability collision and / or non-collision between vehicle 302 and object 306. In contrast, for a larger non-overlapping time period (T), the vehicle safety system may predict a higher confidence in a lower probability collision and / or non-collision between vehicle 302 and object 306.

[0041] Figure 4 illustrates a vehicle 106 moving within the environment 400. In this example, vehicle 106 may be an object vehicle detected by vehicle 102, which includes a vehicle safety system. In this example, the vehicle safety system of vehicle 102 has already determined several perturbation trajectories 402 for vehicle 106 based on perturbations to acceleration parameters and steering angular velocity parameters determined for vehicle 106. As described above, the vehicle safety system may receive or determine object state data and / or attributes for vehicle 106 and other moving objects within the environment 400, including the classification of vehicle 106, the position and orientation / attitude of vehicle 106, and currently perceived state parameters for vehicle 106 (e.g., velocity, acceleration, yaw rate, steering angular velocity, etc.).

[0042] Using perceived state parameters received or determined for vehicle 106, the vehicle safety system may determine a perturbed trajectory 402 for vehicle 106. In some examples, the vehicle safety system may determine a perturbed trajectory by perturbing (or modifying) one or more of the perceived state parameters of vehicle 106 by an amount based on one or more perturbation parameters. The example in Figure 4 illustrates that the vehicle safety system for vehicle 102 has received or determined perceived acceleration (a) for object vehicle 106, and has generated two perturbed acceleration values ​​(ap, a+p) based on acceleration perturbation parameter (p). Also in this example, the vehicle safety system has received or determined perceived steering speed (s) for object vehicle 106, and has generated two perturbed steering speed values ​​(sq, s+q) based on a separate steering speed perturbation parameter (q). For illustrative purposes only, the acceleration perturbation parameter (p) is + / -0.5 m / s². 2 , 1.0 m / s 2 , 1.5 m / s 2 The steering speed perturbation parameter (q) may be a gradient of + / -0.1 g / s per second, 0.2 g / s, 0.3 g / s, etc. The vehicle safety system may determine the perturbed values ​​by using the perturbation parameter to correct the perceived acceleration and steering angular velocity values, thereby determining a set of perturbed acceleration values ​​(ap, a, a+p) and a set of perturbed steering angular velocity values ​​(sq, s, s+q). The vehicle safety system may then determine the perturbed trajectory based on a unique combination of each perturbed acceleration value and each perturbed steering angular velocity. In this example, the vehicle safety system has already determined nine perturbed trajectories 402(1) to 402(9) based on combinations of three perturbed accelerations and three perturbed steering angular velocities.

[0043] This example illustrates how different perturbed trajectories are determined by perturbing (or modifying) the perceived acceleration and steering angular velocity of vehicle 106. In other examples, the vehicle safety system may perturb other attributes of vehicle 106, including one or any combination of the state parameters of vehicle 106 (e.g., velocity, yaw, yaw rate, steering angular velocity, linear acceleration, and / or angular acceleration). The vehicle safety system may also determine perturbed trajectories by perturbing other perceived data, such as the position of vehicle 106, the orientation of vehicle 106 (e.g., attitude), the size or classification of vehicle 106, etc.

[0044] Furthermore, although nine perturbation trajectories 402 are depicted in this example, the vehicle safety system may determine any number of trajectories in various other examples. For example, for a state parameter (e.g., acceleration (a)), the vehicle safety system may determine a plus and minus acceleration perturbation parameters (p), a plus and minus 2 * p, a plus and minus 3 *A set of perturbed acceleration values, including p, may be determined. In some examples, the vehicle safety system may determine the perturbed trajectories for an object within a bundled pattern, as shown in Figure 4, and in other examples, the perturbed trajectories may be calculated to be more uniformly distributed throughout the environment. For example, the vehicle safety system may calculate the distance between adjacent perturbed trajectories 402 for vehicle 106 to ensure that the space between each pair of adjacent perturbed trajectories 402 is smaller than the size (e.g., width) of vehicle 102. In some examples, the vehicle safety system may determine the outer boundary of the perturbed set of values ​​based on the dynamic and / or kinetic capabilities of the moving object. For example, the set of perturbed acceleration values ​​and perturbed steering angular velocity values ​​for vehicle 106 may be determined based on the type or classification of the vehicle (e.g., car, truck, motorcycle, bicycle, pedestrian, etc.) and the possible set of acceleration and steering capabilities associated with a given type or classification of vehicle 106. Also in some examples, the vehicle safety system may change or limit the number of perturbed values ​​based on the range of capabilities of vehicle 106. For example, if the perceived acceleration and / or steering angular velocity for vehicle 106 is equal to or near the acceleration and / or steering speed capacity for vehicle 106, the vehicle safety system may exclude perturbation trajectories that exceed the acceleration and / or steering speed capacity for vehicle 106.

[0045] Figure 5 shows an exemplary system computing for implementing the techniques described herein. system This is a block diagram of 500. In at least one example, the computing system 500 may include a vehicle 502 such as vehicle 102.

[0046] In some examples, vehicle 502 may be an unmanned vehicle, such as an autonomous vehicle configured to operate according to the Level 5 classification issued by the U.S. National Highway Traffic Safety Administration, which describes a vehicle capable of performing all safety-critical functions for the entire journey without expecting any driver (or occupant) to control the vehicle at any time. In such examples, vehicle 502 may be configured to control all functions from the start to the end of the journey, including all parking functions, and therefore may not include a driver and / or control unit for driving vehicle 502, such as a steering wheel, accelerator pedal, and / or brake pedal. This is merely an example, and the systems and methods described herein may be incorporated into any ground-based, air-based, or water-based vehicle, ranging from vehicles that always require manual control by a driver to vehicles that are partially or fully autonomously controlled.

[0047] The vehicle 502 may include one or more vehicle computing devices 504, one or more sensor systems 506, one or more emitters 508, one or more communication connection units 510, at least one direct connection unit 512, and one or more drive systems 514.

[0048] The vehicle computing device 504 may include one or more processors 516 and a memory 518 communicably coupled to one or more processors 516. In the illustrated example, the memory 518 of the vehicle computing device 504 stores a location component 520, a perception component 522, a planning component 524, a prediction component 526, one or more system controllers 528, and one or more maps 530.

[0049] The vehicle 502 may also include a vehicle safety system 534, which includes an object trajectory component 540, an intersection component 542, a probability component 544, and an action component 546. As shown in this example, the vehicle safety system 534 may be implemented separately from the vehicle computing device 504, for example, for improved performance of the vehicle safety system and / or to provide redundancy, error checking, and / or validation of decisions and / or commands determined by the vehicle computing device 504. However, in other examples, the vehicle safety system 534 may be implemented as one or more components within the same vehicle computing device 504.

[0050] For example, the vehicle computing device 504 may be considered a primary system, while the vehicle safety system 534 may be considered a secondary system. The primary system may generally perform processing to control how the vehicle operates within the environment. The primary system may implement various artificial intelligence (AI) techniques, such as machine learning, to understand the environment around the vehicle 502 and / or instruct the vehicle 502 to move within the environment. For example, the primary system may implement AI techniques to locate the vehicle, detect objects around the vehicle, segment sensor data, determine object classification, predict object tracks, and generate trajectories for the vehicle 502 and objects around the vehicle. In some examples, the primary system may process data from multiple types of sensors on the vehicle, such as light detection and ranging (lidar) sensors, radar sensors, image sensors, depth sensors (time of flight, structural light, etc.), cameras, etc., within the sensor system 506.

[0051] In some examples, the vehicle safety system 534 may operate as a separate system that receives state data (e.g., perceptual data) based on sensor data and AI techniques implemented by a primary system (e.g., vehicle computing device 504), and may perform various techniques described herein to improve collision prediction and avoidance by the vehicle 502. As described herein, the vehicle safety system 534 may implement techniques for determining perturbation trajectories and predicting intersections / collisions based on perturbation trajectories, as well as probabilistic techniques based on the positioning, speed, acceleration, etc., of the vehicle and / or objects around the vehicle. In some examples, the vehicle safety system 534 may process data from sensors, such as a subset of sensor data processed by a primary system. For example, the primary system may process lidar data, radar data, image data, depth data, etc., while the vehicle safety system 534 may process only lidar data and / or radar data (and / or time-of-flight data). However, in other examples, the vehicle safety system 534 may process sensor data from any number of sensors, such as data from each of the sensors, data from the same number of sensors as the primary system, and so on.

[0052] An additional example of a vehicle architecture comprising a primary computing system and a secondary computing system can be found, for example, in Patent Document 2, filed on November 13, 2018, entitled “Perception Collision Avoidance,” the entirety of which Patent Document 2 is incorporated herein by reference for all purposes.

[0053] For illustrative purposes, the localization components 520, perception components 522, planning components 524, prediction components 526, system controller 528, and map 530 are depicted in Figure 5 as residing in memory 518, but it is expected that they may be additionally or alternatively accessible from the vehicle 502 (for example, stored in memory remote from the vehicle 502, such as memory 554 of the remote computing device 550, or otherwise accessible by such memory). Similarly, the object trajectory component 540, the intersection component 542, the probability component 544, and / or the action component 546 are depicted as existing within the memory 538 of the vehicle safety system 534, but one or more of these components may additionally or alternatively be implemented within the vehicle computing device 504 or be accessible to the vehicle 502 (for example, stored in memory remote from the vehicle 502, such as on the memory 554 of the remote computing device 550, or otherwise accessible by this memory).

[0054] In at least one example, the localization component 520 may include functionality to receive data from the sensor system 506 and determine the position and / or orientation of the vehicle 502 (e.g., one or more of x, y, z, roll, pitch, or yaw). For example, the localization component 520 may include and / or request / receive a map of the environment and continuously determine the location and / or orientation of the autonomous vehicle within the map. In some examples, the localization component 520 may accurately determine the location of the autonomous vehicle by receiving image data, LIDAR data, radar data, IMU data, GPS data, wheel encoder data, etc., using SLAM (simultaneous localization and mapping), CLAMS (calibration, localization and mapping, simultaneously), relative SLAM, bundle adjustment, nonlinear least-squares optimization, etc. In some examples, the positioning component 520 may provide data to various components of the vehicle 502, as discussed herein, to determine the initial position and / or trajectory of the vehicle 502.

[0055] In some examples, the perceptual component 522 may include functionality for performing object detection, segmentation, and / or classification. In some examples, the perceptual component 522 may provide processed sensor data indicating the presence of objects (e.g., entities or agents) in proximity to the vehicle 502 and / or the classification of the objects as object types (e.g., automobile, pedestrian, cyclist, animal, building, tree, road surface, curb, sidewalk, unknown, etc.). In some examples, the perceptual component 522 may provide processed sensor data indicating the presence of stationary objects in proximity to the vehicle 502 and / or the classification of stationary objects as types (e.g., building, tree, road surface, curb, sidewalk, unknown, etc.). In additional or alternative examples, the perceptual component 522 may provide processed sensor data indicating one or more characteristics associated with detected objects (e.g., tracked objects) and / or the environment in which the objects are located. In some examples, the properties associated with an object may include, but are not limited to, the x-position (global and / or local position), y-position (global and / or local position), z-position (global and / or local position), orientation (e.g., roll, pitch, yaw), size of the object, type of object (e.g., classification), and state parameters such as the object's velocity, acceleration, steering angular velocity and / or angular acceleration. The properties associated with an environment may include, but are not limited to, the presence of other objects in the environment, the state of other objects in the environment, time of day, day of the week, season, weather conditions, road conditions, darkness / light indication, etc.

[0056] In general, the planning component 524 can determine the path that the vehicle 502 should follow to traverse the environment. For example, the planning component 524 can determine various routes and trajectories as well as various levels of detail. For example, the planning component 524 may determine a route to travel from a first location (e.g., the current location) to a second location (e.g., the target location). For the purposes of this discussion, the route may include a sequence of how-to points for traveling between the two locations. In non-limiting examples, how-to points include streets, intersections, Global Positioning System (GPS) coordinates, etc. Furthermore, the planning component 524 can generate instructions for guiding the autonomous vehicle along at least part of the route from the first location to the second location. In at least one example, the planning component 524 may determine how to guide the vehicle 502 from a first how-to point in the sequence of how-to points to a second how-to point in the sequence of how-to points. In some examples, the instructions may be a trajectory or part of a trajectory. In some examples, multiple tracks may be generated substantially simultaneously (e.g., within technical limits) according to the reverse horizon technique, and one of the multiple tracks is selected to navigate vehicle 502.

[0057] In some examples, the prediction component 526 may generate perturbation trajectories for other objects in the environment (e.g., agents). For example, the prediction component 526, which may be implemented within the planning component 524 in some cases, may generate one or more perturbation trajectories for objects within a threshold distance from the vehicle 502. In some examples, the prediction component 526 may measure the trace of an object (e.g., vehicle 106) and generate a trajectory for the object based on the observed and predicted behavior.

[0058] In at least one example, the vehicle computing device 504 may include one or more system controllers 528, which may be configured to control the steering, propulsion, braking, safety, emitter, communication, and other systems of the vehicle 502. The system controllers 528 may communicate with and / or control the corresponding systems of the drive system 514 and / or other components of the vehicle 502.

[0059] Memory 518 may further include one or more maps 530 that can be used by the vehicle 502 to navigate within the environment. For the purposes of this discussion, the maps may be any number of data structures modeled in two, three, or N dimensions that can provide information about the environment, including, but not limited to, topology (intersections, etc.), streets, mountain ranges, roads, terrain, and the environment in general. In some examples, the maps may include, but are not limited to, texture information (e.g., color information (e.g., RGB color information, Lab color information, HSV / HSL color information), intensity information (e.g., LIDAR information, RADAR information, etc.), spatial information (e.g., image data projected onto a mesh, individual "surfaces" (e.g., polygons associated with individual colors and / or intensities)), and reflectivity information (e.g., specularity information, retroreflectiveness information, BRDF information, BSSRDF information, etc.). In one example, the map may include a three-dimensional mesh of the environment. In some examples, the vehicle 502 may be controlled at least in part on a map 530. That is, the map 530 may be used in conjunction with a localization component 520, a perception component 522, a planning component 524, and / or a prediction component 526 to determine the location of the vehicle 502, detect objects in the environment, and / or generate a route and / or trajectory to navigate through the environment.

[0060] In some examples, one or more maps 530 are part of network 5 48The maps can be stored on a remote computing device (such as computing device 550) that is accessible via the map. In some examples, multiple maps 530 may be stored based on characteristics such as the type of entity, time of day, day of the week, season of the year, etc. Storing multiple maps 530 may have similar memory requirements but may increase the speed at which the data in the maps can be accessed.

[0061] The vehicle safety system 534 may include an object trajectory component 540 configured to determine the trajectory of the vehicle 502 and / or the perturbed trajectory of other objects identified in the environment, using various systems and techniques described herein. In some examples, the object trajectory component 540 may receive planning data, prediction data, perception data, and / or map data from components 522-526 to determine the planned trajectory of the vehicle 502 and the perturbed trajectory of other objects in the environment.

[0062] In some examples, the object trajectory component 540 may determine the trajectory as a path polygon, which includes multiple points and represents a two-dimensional representation of the planned path of the vehicle 502 and / or other objects through the environment. The path polygon may be represented as pairs of points, each representing the left and right boundaries (or outermost edges) of the vehicle 502 or object whose trajectory is being determined. In some examples, the left and right boundaries (e.g., minimum distance) may additionally include a buffer outside the outermost edge of the vehicle 502 or object. Furthermore, the path polygon, or other sets of points defining the trajectory, may be individually adjusted based on operations on the vehicle 502 or other objects, such as turning. In such examples, the object trajectory component 540 may adjust the left and / or right points of the point pairs for the trajectory outward by a certain distance (e.g., 3 inches (7.62 cm), 5 inches (12.7 cm), 8 inches (20.32 cm), etc.) based on the operation. In various examples, the point on the left and / or the point on the right may be adjusted outward by a certain distance based on the radius of curvature associated with the bend.

[0063] In various examples, the object trajectory component 540 may generate a set of single points and / or related pairs of points representing a trajectory (e.g., for a path polygon). As shown in Figure 4, in some examples, pairs of points and / or single points for a single trajectory may be at constant intervals from each other (e.g., 0.2-second intervals, 0.5-second intervals, etc.). In some examples, pairs of points and / or single points may be at variable intervals from each other. In various examples, pairs of points and / or single points may be represented by lengths of equal distance from each other (e.g., length along the path). In such examples, each left / right point of a point pair may be at a predetermined distance (e.g., 1 meter, 3 feet (91.44 cm), 18 inches (45.72 cm), etc.) from the next left / right point of that point pair. In some examples, pairs of points may be at different lengths of distance from each other. In various examples, distance may be determined based on vehicle / object operation, speed, traffic density in the environment, and / or other factors affecting the vehicle 502 or object whose trajectory is determined.

[0064] In some examples, the object trajectory component 540 may determine a single planned trajectory for a vehicle 502 (based on planning and map data received from, for example, the planning component 524 and the map 530) and determine multiple perturbed trajectories for one or more other moving objects (e.g., vehicle 106) in the environment on which the vehicle 502 is operating. In some examples, the trajectory of another object may include any number of possible paths that the object can take based on its current position (e.g., at perception) and / or direction of travel. For example, as described herein, the object trajectory component 540 may determine multiple perturbed trajectories by determining and then perturbing one or more perceived state parameters (e.g., velocity, acceleration, steering angular velocity, etc.) for an object. In some examples, the object trajectory component 540 may receive data from the perception component 522 regarding objects in the environment. In some examples, the object trajectory component 540 may determine that an object is within a threshold distance (e.g., 1 block, 200 meters, 300 feet (91.44 m), etc.) or threshold time (e.g., 2 seconds, 3 seconds, 6 seconds, etc.) of the vehicle 502. Based on the determination that the agent is within a threshold distance or time of the vehicle 502, the object trajectory component 540 may determine the trajectory associated with the object. In some examples, the object trajectory component 540 may be configured to determine the possible trajectories of each detected moving object in the environment.

[0065] In various examples, the intersecting component 542 may determine the intersection of one or more perturbation trajectories of the vehicle 502 and / or other objects in the environment using various techniques described herein, to determine whether a potential collision zone may exist in the environment. The potential collision zone may include an area where a collision may occur between the vehicle 502 and an object (e.g., vehicle 106) based on the path polygon and trajectory. In at least some examples, the perturbation trajectory and object attributes (e.g., object size, position, orientation, posture, etc.) for the object may be used to calculate the object polygon for the object. In such examples, the collision zone may be defined by the overlapping area between the path polygon for the vehicle 502 and the object polygon for the other object.

[0066] In some examples, if the trajectory associated with vehicle 502 intersects with at least one perturbed trajectory associated with an object, a potential collision zone may exist between vehicle 502 and the object. In various examples, the intersecting component 542 may determine that a potential collision zone may exist between vehicle 502 and the object based on the fact that the vehicle trajectory and the object trajectory are within a threshold distance (e.g., 2 feet (60.96 cm), 3 feet (91.44 cm), 4 meters, 5 meters, etc.). In some examples, the threshold distance may be based on a predefined distance. In various examples, the threshold distance may be determined based on the known or perceived width of the vehicle and / or object. In some examples, the threshold distance may be further determined to a buffer that may represent a safety buffer around vehicle 502 and / or the object.

[0067] In some examples, the intersection component 542 may enlarge the edges of the perturbed trajectories for the vehicle trajectory and / or object from the centers of the vehicle 502 and the object, respectively, based on the known or perceived widths of the vehicle and the object. If the enlarged widths of the vehicle trajectory (or path polygon) and the object trajectory (or path polygon) intersect and / or pass within a minimum tolerable distance (e.g., 3 inches (7.62 cm), 5 inches (12.7 cm), 1 foot (30.48 cm)), the intersection component 542 may determine that a potential collision zone exists. If the enlarged widths of the vehicle trajectory and / or path polygon do not intersect and / or pass beyond the minimum tolerable distance, the intersection component 542 may determine that no collision zone exists. The minimum tolerable distance may be based on whether occupants are present in the vehicle, the width of the road in the environment, occupant comfort and / or reaction, occupant learned tolerance, local driving etiquette, etc.

[0068] In various examples, based on the determination that a potential collision zone may exist, the intersection component 542 may be configured to determine the boundary of the potential collision zone. In some examples, the potential collision zone may include four elements: a vehicle entry point, a vehicle exit point, an object entry point, and an object exit point. Each of the vehicle 502 and object entry and exit points may include position and distance. The object entry and exit points may include trajectory samples, such as trajectory samples, along the object's trajectory. In some examples, the object entry and exit points may represent trajectory samples where there is no risk of collision. In various examples, the object entry point position may be determined by identifying the last trajectory sample associated with the object's perturbed trajectory prior to the intersection (e.g., convergence) with the trajectory or path polygon for the vehicle 502. In some examples, the object exit point position may be determined by identifying the first trajectory sample associated with the object's trajectory after the convergence between the object's perturbed trajectory and the trajectory or path polygon of the vehicle 502. The distances associated with the object's entry and exit points can be derived from their respective positions as distances along the trajectory.

[0069] The intersection component 542 may determine the vehicle entry and exit points based on the offset distances before and after the vehicle track or path polygon. In some examples, the offset distance may include a distance measured perpendicular to the track of the vehicle 502. In some examples, the offset distance may include a distance measured along the path polygon (e.g., the vehicle path) before and after the track. In various examples, the offset distance may be measured from the center of the path polygon. In some examples, the offset distance may be measured from the foremost point of the vehicle along the path polygon. In such examples, the offset distance may take into account vehicle operation (e.g., turning) and its effect on the position of the vehicle 502.

[0070] As discussed above, in various examples, the intersection component 542 may perform spatiotemporal overlap analysis on one or more potential collision zones (their boundaries, e.g., vehicle entry and exit points and object entry and exit points). In various examples, spatiotemporal overlap may be represented as a position cone associated with the predicted or perturbed object trajectory and the planned trajectory of the vehicle 502. In various examples, the intersection component 542 may be configured to determine the vehicle position cone and the agent position cone. The vehicle position cone may be determined based on the estimated velocity of the vehicle 502 along the planned trajectory (e.g., a path polygon) through the potential collision zone. The object position cone may be determined based on the estimated velocity of the agent along the perturbed trajectory for the object associated with the potential collision zone.

[0071] In various examples, the estimated velocity of an object may be derived from the estimated acceleration (e.g., positive and negative acceleration) of the intersecting component 542. The acceleration may include positive acceleration based on a high-speed behavior model (e.g., aggressive behavior) and negative acceleration based on a low-speed behavior model (e.g., conservative behavior). In various examples, the positive acceleration associated with an object may be based on traffic laws, road regulations, local driving etiquette, traffic patterns, the semantic classification of the agent, etc. In some examples, the positive acceleration may represent the highest possible positive acceleration in the environment based on the initial velocity. In various examples, the negative acceleration associated with an object may represent the highest possible negative acceleration in the environment, for example, based on the object's initial velocity.

[0072] In various examples, the intersection component 542 may determine position lines (e.g., 308 and 310) and / or position cones (e.g., 322 and 324) for the object and vehicle 502 relative to the potential collision zone. The position lines and / or cones for the vehicle 502 and the object may be based on the object entry time, object exit time, vehicle entry time, and vehicle exit time relative to the potential collision zone. For the object position cone 322 and vehicle position cone 324, the intersection component 542 may determine the object entry time and vehicle entry time based on their respective maximum speeds. In such examples, the entry time into the potential collision zone may be associated with the most optimistic estimate of speed. In various examples, the object exit time and vehicle exit time may be associated with their respective minimum speeds. In such examples, the exit time into the potential collision zone may be associated with the most conservative estimate of speed.

[0073] In some examples, spatiotemporal overlap can be represented as one or more probability density functions associated with the estimated position of an object, based on time. The estimated position of an object can be derived from the estimated acceleration and the output of the velocity and / or other system or subsystem (e.g., a predictive system which may be a subsystem of perceptual component 522). The probability density functions may represent aggressive and conservative driving speeds, as well as uncertainties based on the object's acceleration, such as traffic laws, road rules, local driving etiquette, traffic patterns, or the semantic classification of the agent. The probability density functions may represent a two-dimensional or three-dimensional region associated with the object. The sum of the regions under the curve of the probability density function may equal 1.

[0074] In various examples, the stochastic component 544 may predict a collision between vehicle 502 and / or another object (e.g., vehicle 106) and / or determine the probability / risk of a collision based on spatiotemporal overlap analysis performed by the intersection component 542. In some examples, the stochastic component 544 may determine a collision between vehicle 502 and / or another object (e.g., vehicle 106) based on a single trajectory of vehicle 502 and a single perturbed trajectory of an object. or The probability of a collision can be determined based on the overlap between the position lines and / or position cones of the vehicle 502 and the object in relation to the potential collision zone. For example, based on where the position lines overlap within the potential collision zone and / or the amount of overlap between the position cones (e.g., time difference, percentage of cone overlap, etc.), the probability component 544 can be determined to indicate that the risk of collision may be relatively high, moderate, or low.

[0075] Furthermore, using various techniques described herein, the probability component 544 may also determine the probability of a collision between the vehicle 502 and an object based on the planned trajectory of the vehicle 502 and multiple perturbed trajectories of the object. For example, the intersection component 542 may analyze multiple perturbed trajectories of the object (e.g., based on perturbations of the object state parameters), and the probability component 544 may determine a single collision prediction based on the results of the analysis of the multiple perturbed trajectories. In some cases, the probability component 544 may determine the collision probability based on the proportion (or ratio) of perturbed trajectories for an object that is determined to intersect or collide with the vehicle 502, based on the planned vehicle trajectory.

[0076] In some implementations, the probability component 544 may also determine the trajectory probability associated with each of several perturbation trajectories for an object. For example, for vehicle 106, each of the perturbation trajectories 402 described above (see Figure 4) may have an associated trajectory probability. The trajectory probability may refer to the probability that the object (e.g., vehicle 106) will follow a perturbation trajectory. In some examples, the probability component 544 may also determine that some perturbation trajectories 402 are more likely to be followed by vehicle 106 than others, and may assign different probabilities to different perturbation trajectories. In such examples, the probability component 544 may use different trajectory probabilities to weight the results of the perturbation trajectory analysis and / or weight the overall collision probability calculation in favor of more likely perturbation trajectories and unfavorably of less likely perturbation trajectories. For example, as described below, the probability component 544 may run rules and / or models based on observed movement patterns and behaviors from other vehicles to determine more likely or less likely perturbation trajectories.

[0077] In various examples, the action component 546 may, along with other factors, determine one or more actions that vehicle 502 should take, based on the prediction and / or probability determination of a collision between vehicle 502 and another object (e.g., vehicle 106). The actions may include slowing down the vehicle to yield to the object, stopping the vehicle to yield to the object, changing or diverting lanes to the left, or changing or diverting lanes to the right. Based on the determined actions, the vehicle computing device 504 may cause vehicle 502 to perform the actions, for example, through a system controller 528. In at least some examples, such actions may be based on collision probabilities determined by the probability component 544 based on multiple perturbation trajectories of the object, as described in detail. In various cases, in response to a decision to adjust the lateral position of the vehicle, for example, in a lane change to the left or right, the vehicle safety system 534 may cause components 540-546 to generate an updated vehicle trajectory (or path polygon), plot additional object trajectories on the updated vehicle trajectory, determine updated potential collision zones, and perform spatiotemporal overlap analysis to determine whether a collision risk may still exist after the determined action has been performed by the vehicle 502.

[0078] To the extent that it can be understood, the components discussed herein include (for example, the localization component 520, the perception component 522, the planning component 524, the prediction component 526, one or more system controllers 528, one or more maps 530, and the object trajectory component 540, the intersection component 542, the probability component 544, and the action component 546) ) The vehicle safety system 534, including the above, is described as a separate entity for illustrative purposes. However, the actions performed by the various components may be combined or performed by any other component.

[0079] In some examples, some or all aspects of the components discussed herein may include any model, technique, and / or machine learning technique. For example, in some examples, the components in memories 518 and 538 (and memory 554 discussed below) may be implemented as neural networks.

[0080] In at least one example, the sensor system 506 may include a LiDAR sensor, radar sensor, ultrasonic transducer, sonar sensor, location sensor (e.g., GPS, compass, etc.), inertial sensor (e.g., inertial measurement unit (IMU), accelerometer, magnetometer, gyroscope, etc.), camera (e.g., RGB, IR, intensity, depth, time of flight, etc.), microphone, wheel encoder, environmental sensor (e.g., temperature sensor, humidity sensor, light sensor, pressure sensor, etc.), etc. The sensor system 506 may include multiple instances of each of these or other types of sensors. For example, the LiDAR sensor may include individual LiDAR sensors located at the corners, front, rear, sides, and / or top of the vehicle 502. In another example, the camera sensor may include multiple cameras positioned at various locations on the exterior and / or interior of the vehicle 502. The sensor system 506 may provide input to the vehicle computing device 504. Additionally, or alternatively, the sensor system 506 may, at a specific frequency, after a predetermined time period has elapsed, send sensor data to the vehicle safety system 534 and / or the computing device 550 via one or more networks 548 in near real-time or otherwise.

[0081] Vehicle 502 may also include one or more emitters 508 for emitting light and / or sound, as described above. Emitters 508 in this example include internal audio emitters and internal visual emitters for communicating with occupants of vehicle 502. Internal emitters may include, but are not limited to, speakers, lights, signs, display screens, touch screens, haptic emitters (e.g., vibration and / or force feedback), mechanical actuators (e.g., seat belt tensioners, seat positioners, headrest positioners, etc.). Emitters 508 in this example also include external emitters. External emitters in this example may include, but are not limited to, lights or other indicators of vehicle action for indicating direction of travel (e.g., indicator lights, signs, light arrays, etc.), and one or more audio emitters for audible communication with pedestrians or other nearby vehicles (e.g., speakers, speaker arrays, horns, etc.), one or more of which include acoustic beam steering technology.

[0082] The vehicle 502 may also include one or more communication connections 510 that enable communication between the vehicle 502 and one or more other local or remote computing devices. For example, the communication connections 510 may facilitate communication with other local computing devices and / or the drive system 514 on the vehicle 502. The communication connections 510 may also enable the vehicle to communicate with other nearby computing devices (e.g., computing device 550, other nearby vehicles, etc.) and / or one or more remote sensor systems 532 for receiving sensor data.

[0083] The communication connection unit 510 may include a physical and / or logical interface for connecting the vehicle computing device 504 to another computing device or network, such as network 548. For example, the communication connection unit 510 can enable Wi-Fi-based communication via frequencies defined by the IEEE 802.11 standard, short-range radio frequencies such as Bluetooth, cellular communication (e.g., 2G, 3G, 4G, 4G LTE, 5G, etc.), or any suitable wired or wireless communication protocol that enables each computing device to interface with other computing devices.

[0084] In at least one example, the vehicle 502 may include one or more drive systems 514. In some examples, the vehicle 502 may have a single drive system 514. In at least one example, if the vehicle 502 has multiple drive systems 514, the individual drive systems 514 may be located at opposing ends of the vehicle 502 (e.g., front and rear). In at least one example, the drive system 514 may include one or more sensor systems for detecting conditions around the drive system 514 and / or the vehicle 502. For example, but not limited to, the sensor systems may include one or more wheel encoders (e.g., rotary encoders) for sensing the rotation of the wheels of the drive module, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) for measuring the orientation and acceleration of the drive system, cameras or other image sensors, ultrasonic sensors, LIDAR sensors, radar sensors, etc. for acoustically detecting objects around the drive system. Some sensors, such as wheel encoders, may be specific to the drive system 514. In some cases, the sensor system on the drive system 514 may overlap with or supplement the corresponding system on the vehicle 502 (e.g., sensor system 506).

[0085] The drive system 514 may include many of the vehicle systems, including a high-voltage battery, a motor for propelling the vehicle, an inverter for converting DC from the battery to AC for use by other vehicle systems, a steering system including a steering motor and steering rack (which may be electric), a braking system including hydraulic or electric actuators, a suspension system including hydraulic and / or pneumatic components, a stabilization control system for distributing braking force to reduce traction loss and maintain control, an HVAC system, lighting (e.g., headlights / taillights for illuminating the exterior around the vehicle), and one or more other systems (e.g., a cooling system, safety systems, an on-board charging system, other electrical components such as DC / DC converters, high-voltage contacts, high-voltage cables, a charging system, a charging port, etc.). The drive system 514 may also include a drive system controller that can receive and preprocess data from sensor systems and control the operation of various vehicle systems. In some examples, the drive system controller may include one or more processors and a memory communicatively coupled to one or more processors. The memory may store one or more components for performing various functionalities of the drive system 514. Furthermore, the drive system 514 may also include one or more communication connections that enable each drive system to communicate with one or more other local or remote computing devices.

[0086] In at least one example, the direct connection section 512 may provide a physical interface for coupling one or more drive systems 514 to the body of the vehicle 502. For example, the direct connection section 512 may enable the transmission of energy, fluids, air, data, etc., between the drive system 514 and the vehicle. In some examples, the direct connection section 512 may further removably secure the drive system 514 to the body of the vehicle 502.

[0087] In at least one example, the positioning component 520, the perception component 522, the planning component 524, the prediction component 526, one or more system controllers 528, one or more maps 530, and the vehicle safety system 534 and its various components can process sensor data as described above and send their respective outputs to a remote computing device 550 over one or more networks 548. In at least one example, the positioning component 520, the perception component 522, the planning component 524, the prediction component 526, one or more system controllers 528, one or more maps 530, and the vehicle safety system 534 can send their respective outputs to the computing device 550 at a specific frequency, after a predetermined time period has elapsed, or in near real-time.

[0088] In some examples, vehicle 502 may send sensor data to computing device 550 via network 548. In some examples, vehicle 502 may receive sensor data from remote sensor system 532 and / or computing device 550 via network 548. Sensor data may include raw sensor data and / or processed sensor data and / or representations of sensor data. In some examples, sensor data (raw or processed) may be sent and / or received as one or more log files.

[0089] The computing device 550 may include a processor 552 and a memory 554 for storing map components 556 and sensor data processing components 558. In some examples, the map component 556 may include functionality for generating maps of various resolutions. In such examples, the map component 556 may send one or more maps to the vehicle computing device 504 for navigation purposes. In various examples, the sensor data processing component 558 may be configured to receive data from one or more remote sensors, such as sensor system 506 and / or remote sensor system 532. In some examples, the sensor data processing component 558 may be configured to process the data and send the processed sensor data to the vehicle 502 for use by the vehicle safety system 534, for example. In some examples, the sensor data processing component 558 may be configured to send raw sensor data to the vehicle computing device 504 and / or the vehicle safety system 534.

[0090] The processor 516 of the vehicle 502, the processor 536 of the vehicle safety system 534, and / or the processor 552 of the computing device 550 may be any suitable processor capable of processing data and executing instructions for performing operations as described herein. For example, but not limited to, processors 516, 536, and 552 may include one or more central processing units (CPUs), graphics processing units (GPUs), or any other device or part of a device that processes electronic data and converts that electronic data into other electronic data that can be stored in registers and / or memory. In some examples, integrated circuits (e.g., ASICs), gate arrays (e.g., FPGAs), and other hardware devices may also be considered processors, insofar as they are configured to implement encoded instructions.

[0091] Memory systems 518, 538, and / or 554 are examples of non-temporary computer-readable media. Memory systems 518, 538, and / or 554 may store an operating system, as well as one or more software applications, instructions, programs, and / or data, to implement the methods and functions attributed to various systems described herein. In various implementations, memory may be implemented using any suitable memory technology, such as static random-access memory (SRAM), synchronous dynamic RAM (SDRAM), non-volatile / flash memory, or any other type of memory capable of storing information. The architectures, systems, and individual elements described herein may include many other logical, programmatic, and physical components, of which those shown in the accompanying figures are merely examples relevant to the discussion herein.

[0092] In some examples, memory systems 518, 538, and / or 554 may include at least working memory and storage memory. For example, working memory may be a limited-capacity, high-speed memory (e.g., cache memory) used to store data to be manipulated by processors 516, 536, and / or 552. In some examples, memory systems 518, 538, and / or 554 may include storage memory, which may be a relatively large-capacity, lower-speed memory used for long-term storage of data. In some cases, processors 516, 536, and / or 552 may not be able to directly manipulate the data stored in storage memory, and the data may need to be loaded into working memory in order to perform operations based on the data, as discussed herein.

[0093] Although Figure 5 illustrates a distributed system, it should be noted that in alternative examples, components of vehicle 502 may be associated with computing device 550, and / or components of computing device 550 may be associated with vehicle 502. That is, vehicle 502 may perform one or more of the functions associated with computing device 550, and vice versa.

[0094] Figure 6 illustrates an exemplary process 600 for determining predictions and / or probabilities associated with a potential collision between a vehicle and an object moving in the environment, and for determining the action the vehicle should take based on the collision predictions and / or probabilities. In some examples, some or all of the exemplary process 600 may be performed by one or more components within the computing system 500, as described herein. For example, the exemplary process 600 may be described with reference to the vehicle safety system 534 in Figure 5, based on state data received from components of the vehicle computing device 504. However, it is expected that the process 600 may also utilize computing environments and architectures other than those depicted in the computing system 500.

[0095] In operation 602, the vehicle safety system 534 may receive or determine data identifying the trajectory of a vehicle traversing the environment. The vehicle may be similar to or identical to vehicle 102, and the vehicle trajectory may be the planned trajectory 104 of vehicle 102, as discussed above. In some cases, the vehicle safety system 534 may receive vehicle attributes about vehicle 102 (e.g., position / location data, classification data, size data, orientation / attitude data, state parameters, etc.) from the components of the vehicle computing device 504, and may determine the planned trajectory for vehicle 102 based on the vehicle attribute data. Additionally or alternatively, the vehicle safety system 534 may determine the planned vehicle trajectory for vehicle 102 from the planning components 524 and / or other components of the vehicle computing device 504. from It may be received. As discussed above, the trajectory for vehicle 102 received or determined by the vehicle safety system 534 may include a set of planned path points and / or a path polygon representing a two-dimensional representation of the planned path of vehicle 102 through the environment 100.

[0096] In operation 604, the vehicle safety system 534 may receive state data associated with one or more other objects moving within the same environment in which the vehicle 102 is moving. In this example, the received state data may relate to a second vehicle 106 moving within the environment 100, but in other examples, the received state data may relate to any type / classification of automobile, truck, motorcycle, bicycle, animal, pedestrian, etc. etc.The state data received by the vehicle safety system 534 for the object vehicle 106 (and / or other objects) may include object attributes, e.g., object position / location, object classification / type, object size data, object orientation and posture data, as well as various state parameters associated with the vehicle 106. As discussed above, state parameters may include, for example, perceived velocity, linear acceleration, angular acceleration, steering angular velocity, yaw rate, and / or any other perceived motion characteristics of the vehicle 106. In some examples, the vehicle safety system 534 may receive state data associated with the vehicle 106 from the perceptual components 522 and / or other components of the vehicle computing device 504. The state data may be determined using AI techniques within the components of the vehicle computing device 504 to locate the vehicle 106, determine the distance and orientation between the vehicle 102 and the vehicle 106, segment sensor data, determine the classification of the vehicle 106, perceive and predict vehicle movement, and generate a planned path or trajectory for the vehicle 106.

[0097] In operation 606, the vehicle safety system 534 may determine a perturbed trajectory for an object (e.g., vehicle 106) based on state data received for the object in operation 604. As described above, the object trajectory component 540 may determine a perturbed trajectory for vehicle 106 by perturbing (or modifying) one or more of the vehicle 106's current perceived state parameters. For example, the vehicle safety system 534 may perturb the vehicle 106's current perceived velocity based on a velocity perturbation parameter, or perturb the vehicle 106's current perceived acceleration based on an acceleration perturbation parameter, or perturb the vehicle 106's current perceived steering angular velocity based on a steering angular velocity perturbation parameter. In this example, one or more perturbed parameters determined by the vehicle safety system 534 may be combined with additional unperturbed parameters to determine a perturbed trajectory for vehicle 106. For example, the vehicle safety system 534 may determine the perturbed trajectory in operation 606 using perturbed acceleration parameters (e.g., a+p) and unperturbed parameters such as velocity and steering angular velocity.

[0098] In operation 608, the vehicle safety system 534 may determine the intersection between the vehicle trajectory received or determined in operation 602 and the perturbed trajectory of an object (e.g., vehicle 106) determined in operation 606. In some examples, the intersection component 542 may determine the intersection of the vehicle trajectory and the perturbed trajectory for vehicle 106 by performing one or more of the various techniques described herein. For example, the intersection component 542 may determine a potential collision zone between vehicle 102 and vehicle 106 and perform a spatiotemporal overlap analysis within the potential collision zone, as described above. In some cases, the vehicle safety system 534 may, in operation 608, determine whether vehicle 102 and vehicle 106 are predicted to collide or not, based on their trajectories. In other examples, the vehicle safety system 534 may, in operation 608, determine the probability or prediction (e.g., intersection or non-intersection, collision or non-collision) of a collision between vehicle 102 and vehicle 106, along with the confidence level associated with that prediction.

[0099] In operation 610, the vehicle safety system 534 may determine whether there are additional perturbation trajectories for an object (e.g., vehicle 106) that should be analyzed and / or evaluated. As described above, the vehicle safety system 534 may determine multiple perturbation trajectories based on various combinations of perturbed parameters for vehicle 106. For example, the example in Figure 1 depicts three perturbation trajectories, the example in Figure 4 depicts nine perturbation trajectories 402, the example in Figure 7 depicts 49 perturbation trajectories, and the object trajectory component 540 of the vehicle safety system 534 may determine any number of perturbation trajectories in other examples. If the vehicle safety system 534 determines that additional trajectories should be determined and / or analyzed for vehicle 106 (610: yes), process 600 returns to operation 606, and the vehicle 106 Determine and / or analyze another perturbed orbit for [the object].

[0100] In contrast, if the vehicle safety system 534 determines that all perturbation trajectories associated with vehicle 106 have been determined and analyzed (610: no), process 600 proceeds to 612 to perform one or more collision predictions based on the perturbation trajectories for vehicle 106. In some examples, the vehicle safety system 534 may use a probabilistic approach by determining multiple perturbation trajectories for vehicle 106, analyzing each of the individual perturbation trajectories for a potential collision with vehicle 102, and then aggregating the results of the analysis to calculate the overall probability of the collision occurring. For example, if the object trajectory component 540 determines multiple trajectories for an object (e.g., vehicle 106), the vehicle safety system 534 may determine a first number of trajectories predicted to intersect with the trajectory of vehicle 102 and a second number of trajectories predicted not to intersect with the trajectory of vehicle 102. The vehicle safety system 534 may then calculate the probability of intersection / collision between vehicle 102 and vehicle 106 based on the ratio between the first number and the second number.

[0101] Referring briefly to Figure 7, Chart 700 is shown illustrating a perturbation trajectory matrix for an object (e.g., vehicle 106). In this example, the vehicle safety system 534 determines the perturbation trajectory matrix based on seven sets of perturbed acceleration values ​​(a-3p to a+3p) and seven sets of perturbed steering angular velocity values ​​(s-3q to s+3q), resulting in 49 different perturbation trajectories for vehicle 106. In this example, the vehicle safety system 534 has analyzed each perturbation trajectory to determine the crossover prediction (e.g., potential collision prediction) associated with each perturbation trajectory. In this example, the crossover prediction is a binary (Y / N) value, and the vehicle safety system 534 has determined positive crossover predictions for 17 of the 49 perturbation trajectories. Therefore, in the example shown in Chart 700, the vehicle safety system 534 may determine in operation 612 that there is a 35% probability (e.g., 17 / 49) of crossing (or collision) between vehicle 102 and vehicle 106.

[0102] In the example in Figure 7, the crossover prediction is represented as a binary value (yes / no), but in other examples, the crossover component 542 of the vehicle safety system 534 may determine a distinct probability (e.g., from 0.00 to 1.00) for each perturbation trajectory associated with vehicle 106. In such examples, the vehicle safety system 534 may calculate the overall probability of crossover between vehicle 102 and vehicle 106 based on the distinct probabilities, for example, by averaging the distinct probabilities and / or by performing other statistical methods on the distinct probabilities.

[0103] The predictions and / or probabilities determined in operation 612 may include predictions or probabilities of a collision between vehicle 102 and vehicle 106, and additional predictions and / or probabilities regarding potential collisions. For example, as will be described in more detail below, the vehicle safety system 534 may also determine potential collision characteristics in operation 612 based on the vehicle trajectory and other vehicle attributes. Such collision characteristics may include, for example, a measure of the importance of a potential collision and a confidence level associated with the potential collision.

[0104] In operation 614, the vehicle safety system 534 may determine one or more actions that vehicle 102 should take based on the collision prediction and / or calculated probability determined in operation 612. For example, the action component 546 of the vehicle safety system 534 may determine the action that vehicle 102 should take based on the prediction of an intersection (or non-intersection) and / or collision (or non-collision), the probability and / or confidence associated with the prediction, and other factors (e.g., the importance of the potential collision). In various examples, the action component 546 may cause vehicle 102 to slow down or stop in order to yield to an object, change or divert its lane to the left or right to avoid an object, and / or alert any other vehicle via the system controller 528. Operation Actions can be determined regarding vehicle 102, including performing actions that increase the likelihood of avoiding and / or mitigating potential collision damage.

[0105] In some cases, the vehicle safety system 534 may determine in action 614 what action the vehicle 102 should take based on a plurality of collision probability thresholds and / or ranges. For example, if the vehicle safety system 534 determines a collision probability (e.g., a probability of collision of N%) in action 612, then in action 614, the vehicle safety system 534 may compare the probability value with one or more collision probability thresholds or ranges. For example, if the vehicle safety system 534 determines a 95% collision probability, it may determine a first set of actions for the vehicle 102; if it determines a 75% collision probability, it may determine a second set of actions for the vehicle 102; if it determines a 50% collision probability, it may determine a second set of actions for the vehicle 102. 3 This could determine the set, for example.

[0106] Figure 8 illustrates another exemplary process 800 for determining predictions and / or probabilities associated with a potential collision between a vehicle and an object moving in the environment, and for determining the action the vehicle should take based on the collision predictions and / or probabilities. In some examples, process 800 may represent one or more specific implementations of process 600, including additional features and techniques. For example, as described below, process 800 may be used to describe a technique in which a vehicle safety system 534 determines different probabilities for different perturbation trajectories of an object (e.g., vehicle 102). Process 800 may also include a technique in which the collision probability and / or determined action for vehicle 102 may be weighted and / or adjusted based on additional factors, such as the predicted importance of the potential collision, the predicted abnormal approach, and the integrity and reliability of state data or sensor data used to determine the perturbation trajectory for object vehicle 106. As discussed above using process 600, some or all of the exemplary processes 800 may be performed by one or more components within the computing system 500. For example, an exemplary process 600 may be described with reference to the vehicle safety system 534 in Figure 5, based on state data received from the components of the vehicle computing device 504. However, it is expected that process 600 may also utilize computing environments and architectures other than those depicted within the computing system 500.

[0107] In operation 802, the vehicle safety system 534 may receive and / or determine the trajectory of the vehicle 102 traversing the environment. In some cases, operation 802 may be similar to or identical to operation 602 described above. For example, in operation 802, the vehicle safety system 534 may receive or determine data identifying the trajectory of the vehicle 102 traversing the environment 100. In some cases, the vehicle safety system 534 may receive the perceived (or current) trajectory of the vehicle 102, along with additional vehicle attributes (e.g., position / location, classification, size, orientation / attitude, state parameters, etc.) from the planning component 524 or other components of the vehicle computing device 504.

[0108] In operation 804, the vehicle safety system 534 receives state data and multiple different predicted values ​​associated with another object (e.g., vehicle 106) moving within the environment. orbit Based on the received state data, multiple perturbation trajectories for the object can be determined. In some examples, action 802 may be similar to or identical to actions 604 and 606 in process 600. As described above, the object trajectory component 540 of the vehicle safety system 534 may determine a set of perturbation trajectories for the vehicle 106 by perturbing (or modifying) the vehicle 106's current perceived state parameters. For example, the object trajectory component 540 may perturb the state parameters of the vehicle 106 (e.g., velocity, acceleration, steering angular velocity, etc.) using one or more perturbation parameters.

[0109] As shown in Figure 8, process 800 branches in operation 806, indicating that the vehicle safety system 534 may perform operations 806-812 separately for each perturbation trajectory determined for vehicle 106 in operation 804. As described below, for each different perturbation trajectory for an object (e.g., vehicle 106), the vehicle safety system 534 may determine weights or modifications based on the probabilities associated with the perturbation trajectory, the prediction and / or probability of crossing or colliding between vehicle 102 and vehicle 106, and / or additional factors that may be specific to the perturbation trajectory. In various examples, the separate operations 806-812 may be performed by the vehicle safety system 534 in parallel or sequentially for different perturbation trajectories.

[0110] In each of operations 806(1) to 806(N) (collectively, operation 806), the vehicle safety system 534 may determine a probability (e.g., from 0.00 to 1.00) associated with a perturbation trajectory. In some examples, the vehicle safety system 534 may determine the probability of a perturbation trajectory based on the historical / observed movement patterns of similar objects and / or the object in a scenario similar to the current scenario of the vehicle 106. For example, the vehicle safety system 534 may train and run a machine learning model based on observed vehicle behavior and / or movement patterns while driving or performing a specific operation (e.g., reversing, parking, merging, etc.). For example, the trained model may determine that certain operations for certain vehicle types, such as maintaining high linear or lateral acceleration in a car or truck over a long period of time, are rare, and the vehicle safety system may mitigate the probability of the perturbation trajectory determined by the trained model to be lower. In some examples, the vehicle safety system 534 may use one or more filters (e.g., Extended Kalman Filters (EKF), Unscented Kalman Filter (UKF)) based on perceived state data and covariance to determine the output probability that object 106 is following a particular perturbed trajectory. Additionally or alternatively, the vehicle safety system 534 may perform heuristic rule-based analysis based on historical data of objects having similar orientation, velocity, and positioning to other objects in the environment to predict the likelihood that vehicle 106 is following a particular trajectory. Thus, the historical data may represent previous objects that performed operations similar to the operation being performed by vehicle 106 at the current time. In some examples, the vehicle safety system 534 may use historical data associated with objects having similar classification, size, orientation, and velocity to vehicle 106 to more accurately predict the trajectory that vehicle 106 will take.

[0111] Additionally, or alternatively, the vehicle safety system 534 may determine in operation 806 the probability that the vehicle 106 will follow a particular trajectory, based on the road configuration within the environment 100 (e.g., lane markings, center position, traffic signals and signs, pedestrian crossings, etc.), along with traffic laws, road regulations, local driving etiquette, traffic patterns, etc.

[0112] Furthermore, in some cases, the vehicle safety system 534 may determine the probability of a perturbation trajectory in operation 806 based on the positions of other stationary objects in the environment 100 (e.g., trees, curbs, median strips, parked cars, etc.) and the current or perturbed trajectories of other moving objects in the environment 100. For example, the vehicle safety system 534 may determine a lower probability of a perturbation trajectory that would drive vehicle 106 towards a tree, a parked car, or the current path of a moving object (e.g., a bicycle, car, or pedestrian) currently within the vehicle 106's field of view. Similarly, the vehicle safety system 534 may determine a relatively higher probability of a perturbation trajectory that would drive vehicle 106 towards a clearly visible stationary or moving object.

[0113] In each of operations 808(1) to 808(N) (collectively, operation 808), the vehicle safety system 534 may perform one or more intersection decisions based on the planned trajectory of vehicle 102 and a specific perturbation trajectory associated with vehicle 106. In some examples, operation 808 may be similar to or identical to operation 608 in process 600. For example, in operation 808, the vehicle safety system 534 may determine the intersection between the vehicle trajectory received or determined in operation 802 and a specific perturbation trajectory of vehicle 106. As discussed above, the intersection component 542 may determine a potential collision zone and perform a spatiotemporal overlap analysis within the potential collision zone between vehicle 102 and vehicle 106. In operation 808, the vehicle safety system 534 may perform one or more predictive decisions and / or probability calculations, including a prediction of whether vehicle 102 and vehicle 106 will collide based on the trajectories, the probability of a collision between the vehicles, and / or a collision prediction and associated confidence.

[0114] In each of operations 810(1) to 810(N) (collectively, operation 810), the vehicle safety system 534 may determine one or more weight values ​​and / or modifications to be applied to the collision prediction and / or probability determined in operation 808. In some examples, the vehicle safety system 534 may determine the importance associated with a potential collision between vehicle 102 and vehicle 106. For example, in the case of a positive collision prediction (or a collision probability greater than 0%) in operation 808, the vehicle safety system 534 may determine one or more importance metrics for the potential collision based on the impact angle, the impact location of the vehicles, and other characteristics of the potential collision. Using such factors, the vehicle safety system 534 may determine whether the potential collision is a graze collision or a center-of-mass impact collision. The vehicle safety system 534 may also determine whether the potential collision is a rear impact collision, a side impact collision, or a front impact collision, etc. In some cases, the vehicle safety system 534 may use additional factors, such as vehicle and object classification types (e.g., trucks, cars, motorcycles, bicycles, pedestrians, etc.) as well as vehicle speed, size / weight, number of occupants, road conditions, and weather conditions, etc., to determine the importance metric for a potential collision.

[0115] Furthermore, in operation 810, the vehicle safety system 534 may determine one or more weight values ​​and / or modifications based on the confidence associated with the collision prediction and / or collision probability calculation determined in operation 808. For example, the vehicle safety system 534 may determine a lower confidence level for non-collision predictions where the predicted distance and / or time difference between vehicle 102 and vehicle 106 in a potential collision zone is below a certain threshold (e.g., an abnormal proximity). The vehicle safety system 534 may also determine a lower confidence level for collision or non-collision predictions in situations where sensor data or perceptual data is determined to be potentially unreliable, inconsistent, and / or impaired by environmental factors (e.g., partial occlusion between vehicles, darkness, fog, rain, etc.).

[0116] In operation 812, the vehicle safety system 534 may perform one or more overall collision predictions and / or collision probability determinations for vehicles 102 and 106 based on the individual trajectory combinations or aggregations determined in operations 806-810. In some examples, operation 812 may be similar to or identical to operation 612 in process 600. For example, the vehicle safety system 534 may calculate the overall probability of a collision between vehicles 102 and 106 by averaging or aggregating the intersection / collision prediction results or probabilities determined in operation 806 for all perturbation trajectories of vehicle 106. In various examples, in operation 812, the vehicle safety system 534 may calculate the ratio of collision predictions to non-collision predictions for multiple perturbation trajectories. Additionally or alternatively, the vehicle safety system 534 may average separate collision probabilities determined in operation 808 for multiple perturbation trajectories.

[0117] In some examples, decisions and / or calculations performed by the vehicle safety system 534 in operation 812 may also be based on trajectory probabilities determined in operation 806. For example, when aggregating, averaging, or otherwise combining collision predictions or probabilities for different perturbation trajectories, the vehicle safety system 534 may use trajectory probability variables to weight or modify the calculations so that higher-probability trajectories have a greater impact on the overall collision prediction and probability than lower-probability trajectories. In various examples, the vehicle safety system 534 may scale and / or normalize the various probabilities determined in operation 806 to determine the overall collision probability in operation 812. The vehicle safety system 534 may also modify the overall collision prediction and probability determined in operation 812 based on additional weights and / or modifications from operation 810. For example, the vehicle safety system 534 may increase the collision probability or other relevant prediction based on determining a higher level of importance for potential collisions from one or more perturbation trajectories in operation 810. Similarly, in some examples, the vehicle safety system 534 may, in operation 810, increase the collision probability or other related prediction based on determining a lower confidence or reliability associated with the collision prediction / probability for a perturbed trajectory. Exemplary clause

[0118] A. A system comprising one or more processors and one or more non-temporary computer-readable media storing computer-executable instructions, wherein, when executed, the instructions cause one or more processors to receive state data associated with an object in an environment, the state data being at least partially based on sensor data captured by sensors of a vehicle, the state data being associated with a first time, the state data being at least partially based on the state data and perturbation parameters

[0119] B. The system of paragraph A further comprises determining the number of intersections associated with a plurality of perturbation trajectories, at least partially based on the plurality of perturbation trajectories and the trajectories associated with the vehicle, determining whether the number of intersections meets or exceeds a threshold number, and determining an action for the vehicle, at least partially further based on the number of intersections.

[0120] C. The system of paragraph A or B, further comprising determining the probability associated with a first perturbation trajectory, where the probability indicates the likelihood that an object will follow the first perturbation trajectory, and determining an action for the vehicle, at least in part further based on the probability and the number of intersections.

[0121] D. The state data includes acceleration data associated with the object, steering angular velocity associated with the object, and classification associated with the object, and determining the first perturbation trajectory includes changing at least one of the acceleration data or steering angular velocity, at least in part on the perturbation parameter, the perturbation parameter being a system of any one of paragraphs A to C, at least in part on the classification associated with the object.

[0122] E. A system of any one of paragraphs A to D, wherein determining the intersection includes determining a first region associated with a vehicle at a second time based at least partially on the trajectory, determining a second region associated with an object at a second time based at least partially on the first perturbed trajectory, and determining the overlap between the first region and the second region.

[0123] F. A method comprising the steps of: receiving state data associated with an object in an environment; receiving a perceived trajectory associated with the object; determining a perturbed trajectory based at least in part on the perceived trajectory; receiving a trajectory associated with a vehicle in an environment; determining the likelihood of a collision between the object and the vehicle based at least in part on the perturbed trajectory and the trajectory; and determining an action for the vehicle based at least in part on the likelihood of a collision.

[0124] G. The step of determining a perturbation trajectory includes the step of determining a plurality of perturbation trajectories, and the method further includes the steps of determining a plurality of potential collisions between a vehicle and an object based at least in part on the plurality of perturbation trajectories and trajectories, determining whether the number of potential collisions meets or exceeds a threshold number, and determining an action for the vehicle based at least in part on the number of potential collisions.

[0125] H. A method according to any one of paragraphs F to G, further comprising the step of determining the probability of a collision between a vehicle and an object, at least in part, based on the number of potential collisions for a number of perturbation trajectories.

[0126] I. The state data includes acceleration data associated with the object and steering angular velocity associated with the object, and the step of determining a plurality of perturbation trajectories associated with the object includes the step of changing at least one of the acceleration data or steering angular velocity, according to any one of paragraphs F to H.

[0127] J. The state data further includes a classification associated with the object, and the step of determining the perturbation trajectory is the method of any one of paragraphs F to I, which is at least partially based on the classification associated with the object.

[0128] K. A method according to any one of paragraphs F to J, further comprising the steps of determining a probability associated with a perturbed trajectory, modifying the likelihood of a collision based at least in part on the probability, and determining an action for the vehicle based at least in part on the probability.

[0129] L. The method of any one of paragraphs F to K, wherein the step of determining the intersection includes the steps of determining a first bounding box associated with a vehicle, determining a second bounding box associated with an object, determining a first position of the first bounding box at a second time based at least partially on the trajectory, determining a second position of the second bounding box at a second time based at least partially on the perturbed trajectory, and determining the overlap between the first bounding box and the second bounding box at a second time based at least partially on the first and second positions.

[0130] M. The method of any one of paragraphs F to L, wherein the state data is at least in part based on sensor data captured by the vehicle's sensors, the state data includes acceleration data associated with an object and steering angular velocity associated with an object, and the step of determining the perturbation trajectory includes the step of changing one or more of the acceleration data or steering angular velocity at least in part based on the perturbation parameters.

[0131] N. One or more non-temporary computer-readable media for storing instructions executable by a processor, wherein the instructions, when executed, cause the processor to perform an operation including receiving state data associated with an object in an environment; receiving a perceived trajectory associated with the object; determining a perturbed trajectory at least in part based on the perceived trajectory; receiving a trajectory associated with a vehicle in an environment; determining the likelihood of a collision between the object and the vehicle at least in part based on the perturbed trajectory and the trajectory; and determining an action for the vehicle at least in part based on the likelihood of a collision.

[0132] O. Determining a perturbation trajectory includes determining a number of perturbation trajectories, and the operation further includes determining the number of potential collisions between a vehicle and an object based at least partially on the number of perturbation trajectories and trajectories, determining whether the number of potential collisions meets or exceeds a threshold number, and determining an action for the vehicle based at least partially further on the number of potential collisions in one or more non-temporary computer-readable media of paragraph N.

[0133] P. The operation further comprises determining the probability of a collision between a vehicle and an object based at least in part on the number of potential collisions for a number of perturbation trajectories in one or more non-temporary computer-readable media of any one of paragraphs N through O.

[0134] Q. State data includes acceleration data associated with an object, steering angular velocity associated with an object, and determining multiple perturbation trajectories associated with an object includes changing at least one of the acceleration data or steering angular velocity in one or more non-temporary computer-readable media of any one of paragraphs N to P.

[0135] R. The state data further includes the classification associated with the object, and determining the perturbation trajectory is done in one or more non-temporary computer-readable media of any one of paragraphs N through Q, at least in part, based on the classification associated with the object.

[0136] S. One or more non-temporary computer-readable media of any one of paragraphs N through R, further comprising determining probabilities associated with a perturbed trajectory, modifying the likelihood of a collision based at least in part on the probabilities, and determining an action for a vehicle based at least in part further on the probabilities.

[0137] T. Determining the likelihood of a collision between an object and a vehicle is one or more non-temporary computer-readable media of any one of paragraphs N to S, which includes determining a first region associated with the predicted position of the vehicle at a first time, at least partially based on the trajectory; determining a second region associated with the predicted position of the object at a first time, at least partially based on the perturbed trajectory; and determining the overlap between the first region and the second region.

[0138] While the exemplary clauses described above illustrate specific implementations, it should be understood that, in the context of this document, the content of the exemplary clauses can be implemented through methods, devices, systems, computer-readable media, and / or other implementations. Furthermore, any of Examples A through T may be implemented alone or in combination with any one or more of the other Examples A through T. conclusion

[0139] While one or more examples of the techniques described herein have been described, various modifications, additions, substitutions, and equivalents thereof are included within the scope of the techniques described herein.

[0140] In describing the examples, references are made to the accompanying drawings, which form part of this specification, illustrating specific examples of the claimed subject matter. It should be understood that other examples may be used, and that changes or modifications, such as structural changes, may be made. Such examples, changes or modifications do not necessarily deviate from the intended scope of the claimed subject matter. The steps in this specification may be presented in a fixed order, but in some cases the ordering may be changed so that certain inputs are provided at different times or in different orders, without changing the function of the systems and methods described. The disclosed procedures may also be performed in different orders. Furthermore, the various calculations in this specification do not need to be performed in the order disclosed, and other examples using alternative orderings of calculations can be readily implemented. In addition to being rearranged, calculations may be broken down into subcalculations having the same results.

[0141] While subject matter has been described in language specific to structural features and / or methodological behavior, it should be understood that the subject matter as defined in the attached claims is not necessarily limited to the specific features or behaviors described. Rather, specific features and behaviors are disclosed as exemplary forms that implement the claims.

[0142] The components described herein represent instructions that can be stored in any type of computer-readable medium and implemented in software and / or hardware. All of the methods and processes described above can be embodied in software code and / or computer-executable instructions, which are executed by one or more computers or processors, hardware, or any combination thereof, and can be fully automated through these. Some or all of the methods may, alternatively, be embodied in dedicated computer hardware.

[0143] Conditional language, particularly "may," "may," "may," or "may," is understood, unless otherwise specified, in contexts indicating that certain examples include certain features, elements, and / or steps, but other examples do not. Therefore, such conditional language is not generally intended to suggest that certain features, elements, and / or steps are required in some way for one or more examples, or that there is necessarily logic for determining whether one or more examples include certain features, elements, and / or steps, or should be performed in any particular example, with or without user input or prompts.

[0144] Connecting phrases such as "at least one of X, Y, or Z" should be understood, unless otherwise specified, to indicate that an item, term, etc., may be X, Y, Z, or any combination thereof, including multiples of each element. Unless explicitly stated as singular, "one" can mean singular or plural.

[0145] Any routine description, element, or block in the flowcharts described herein and / or depicted in the accompanying diagrams should be understood as potentially representing a module, component, segment, or a portion of code containing one or more computer-executable instructions for implementing a particular logical function or element in the routine. Alternative implementations are included within the scope of the examples described herein, to which elements or functions may be omitted or performed in a non-linear order from that illustrated or discussed, depending on the relevant functionality as understood by those skilled in the art, including substantially synchronously, in reverse order, with additional actions, or by omitting actions.

[0146] Many variations and modifications may be made to the examples described above, and their elements should be understood as being within other acceptable examples. Any such modifications and variations are intended to be included herein within the scope of this disclosure and are protected by the following claims.

Claims

1. One or more processors, When executed, one or more processors will Receiving state data associated with an object in the environment, which is at least partially based on sensor data captured by the vehicle's sensors, Based at least partially on the aforementioned state data, the perceived trajectory associated with the object is determined, Determining a plurality of perturbed trajectories for the perceived trajectory by performing a plurality of modifications on the state data based at least in part on perturbation parameters that perturb the state data, wherein the plurality of perturbed trajectories are at least in part on the plurality of modifications and are associated with the object. Receiving the track associated with the vehicle in the aforementioned environment, Determining the likelihood of a collision between the object and the vehicle, at least partially based on the plurality of perturbed trajectories associated with the object and the trajectory associated with the vehicle, To determine an action regarding the vehicle based at least partially on the possibility of the aforementioned collision, One or more non-temporary computer-readable media that store computer executable instructions that cause an action including, A system equipped with these features.

2. The aforementioned operation is, Determining the number of potential trajectory intersections between the vehicle and the object, based at least partially on the plurality of perturbed trajectories associated with the object and the trajectory associated with the vehicle, Determining the likelihood of a collision between the vehicle and the object, at least partially based on the number of potential trajectory intersections, Determining the action to take regarding the vehicle to avoid the collision, at least partially based on the possibility of the collision, The system according to claim 1, further comprising:

3. The state data includes acceleration data associated with the object and steering angular velocity associated with the object. The system according to claim 1 or 2, wherein determining the plurality of perturbed trajectories associated with the object includes changing at least one of the acceleration data or the steering angular velocity.

4. The state data further includes the type of the object, The system according to any one of claims 1 to 3, wherein determining the plurality of perturbed trajectories is at least partially based on the type.

5. The aforementioned operation is, A probability associated with each of the plurality of perturbed trajectories, each of which determines the probability that the object will follow each of the plurality of perturbed trajectories, Modifying the likelihood of the collision based at least partially on each of the aforementioned probabilities, The action for the vehicle is determined based at least partially on each of the aforementioned probabilities, The system according to any one of claims 1 to 4, further comprising:

6. Determining the possibility of the collision between the object and the vehicle is, Determining a first region associated with the predicted position of the vehicle at a first time, based at least partially on the track associated with the vehicle, Determining a second region associated with the predicted position of the object at the first time, based at least partially on the plurality of perturbed trajectories, Determining the overlap between the first region and the second region, The system according to any one of claims 1 to 5, further comprising:

7. A method performed by one or more processors of a vehicle, wherein the method is The steps include receiving state data associated with an object in the environment, which is at least partially based on sensor data captured by the vehicle's sensors, A step of determining the perceived trajectory associated with the object based at least partially on the state data, A step of determining a plurality of perturbed trajectories for a perceived trajectory by performing a plurality of modifications on the state data based at least in part on perturbation parameters that perturb the state data, wherein the plurality of perturbed trajectories are at least in part on the plurality of modifications and are associated with the object, The steps include receiving the track associated with the vehicle in the environment, A step of determining the likelihood of a collision between the object and the vehicle, based at least in part on the plurality of perturbed trajectories associated with the object and the trajectory associated with the vehicle, A step of determining an action regarding the vehicle based at least partially on the possibility of the collision, Methods that include...

8. The aforementioned method, A step of determining the number of potential trajectory intersections between the vehicle and the object, based at least partially on the plurality of perturbed trajectories associated with the object and the trajectory associated with the vehicle, A step of determining the likelihood of a collision between the vehicle and the object, at least in part, based on the number of potential trajectory intersections; A step of determining the action to take for the vehicle to avoid the collision, based at least in part on the possibility of the collision; The method according to claim 7, further comprising:

9. The state data includes acceleration data associated with the object and steering angular velocity associated with the object. The step of determining the plurality of perturbed trajectories associated with the object is: The method according to claim 7 or claim 8, comprising the step of changing at least one of the acceleration data or the steering angular velocity.

10. The state data further includes the type of the object, The method according to any one of claims 7 to 9, wherein the step of determining the plurality of perturbed trajectories is at least partially based on the type.

11. The steps include determining a probability associated with each of the plurality of perturbed trajectories, each of which is a probability indicating that the object will follow each of the plurality of perturbed trajectories, A step of modifying the likelihood of the collision based at least in part on each of the aforementioned probabilities, The steps include determining the action for the vehicle based at least partially on each of the aforementioned probabilities, The method according to any one of claims 7 to 10, further comprising:

12. The step of determining the likelihood of the aforementioned collision is: A step of determining a first bounding box associated with the vehicle, The steps include determining a second bounding box associated with the object, A step of determining the first position of the first bounding box at a second time, based at least partially on the track associated with the vehicle, A step of determining the second position of the second bounding box at the second time based at least partially on the plurality of perturbed trajectories, A step of determining the overlap between the first bounding box and the second bounding box at a second time, based at least partially on the first and second positions, The method according to any one of claims 7 to 11, further comprising:

13. One or more non-temporary computer-readable media, which, when executed by the one or more processors, includes instructions causing the one or more processors to perform the method according to any one of claims 7 to 12.

Citation Information

Patent Citations

  • Route evaluation device

    JP2010287109A

  • Method for determining information about route of on-road vehicle

    JP2013218678A

  • Collision prediction and avoidance for vehicles

    US11001256B2

  • Perception collision avoidance

    US20200148201A1