Decision tree-based trajectory prediction
Through the optimization of decision tree and tree search algorithms, the problem of trajectory prediction when autonomous vehicles interact with multiple objects in complex environments is solved, and the vehicle's safe navigation capabilities are improved.
Patent Information
- Application Number
- CN202380062912.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-08-31
- Filing Date
- 2023-08-30
- Publication Date
- 2025-04-11
Smart Images

Figure CN119816793A_ABST
Abstract
Description
Background Art
[0001] Machine learning models can be employed to predict the actions of various robotic devices. For example, planning systems in autonomous and semi-autonomous vehicles determine the actions that the vehicle is to take in the operating environment. The actions of the vehicle can be determined in part based on avoiding objects present in the environment. For example, actions can be generated to avoid pedestrians, change lanes to avoid another vehicle on the road, etc. Accurately predicting future object trajectories can be used to safely operate the vehicle near objects. BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The detailed description is described with reference to the accompanying drawings. In the drawings, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears. The use of the same reference numbers in different drawings indicates similar or identical components or features.
[0003] Figure 1 is an illustration of an example environment in which an example vehicle applies a model to predict occupancy of one or more example objects at a future time.
[0004] Figure 2 is a pictorial flow chart of an exemplary process for controlling an exemplary vehicle based on occupancy prediction output from a model.
[0005] Figure 3 An exemplary block diagram of an exemplary computer architecture for implementing techniques for generating the exemplary decision trees described herein is illustrated.
[0006] Figure 4 An exemplary block diagram of an exemplary computer architecture for implementing techniques for evaluating the output of the exemplary decision trees described herein is illustrated.
[0007] Figure 5 is a block diagram of an exemplary system for implementing the techniques described herein.
[0008] Figure 6 is a flow chart depicting an example process for determining a vehicle trajectory using one or more example models. DETAILED DESCRIPTION
[0009] The present application describes a technique for determining a vehicle trajectory that enables a vehicle to navigate relative to one or more objects in an environment. A computing device can generate a decision tree having nodes representing different object intentions and / or nodes representing vehicle actions at future times. A tree search algorithm can search the decision tree, thereby evaluating the potential interaction of a vehicle with one or more objects within a time period. The tree search algorithm can be optimized to generate an output (e.g., a vehicle trajectory) after searching a specific number of branches, nodes, or scenes, and determine whether to continue searching other parts of the decision tree and / or generate new branches or nodes of the decision tree to continuously update vehicle trajectory predictions. By using a decision tree as described herein, object intentions (e.g., the level of attention that an object reacts to a vehicle) can be considered during vehicle planning, thereby improving vehicle safety when the vehicle is navigating in an environment by planning the possibility that an object may intersect with the vehicle.
[0010] Generating the decision tree can include the computing device determining whether to add, remove, or modify nodes, branches, etc. of the decision tree (e.g., before or during the application of the tree search algorithm). In some examples, the computing device can receive data (e.g., sensor data, map data, object state data, vehicle state data, control strategy data, etc.) and determine multiple object trajectories that an object may take at future times. For each object trajectory, the computing device can output an occupancy map at various time intervals (e.g., every 0.1 seconds within 8 seconds), thereby capturing the "local" uncertainty of the object's position at different times in the future. The decision tree can represent potential interactions between the vehicle and the object, and take into account potential actions of the object, including predetermining the responsiveness or attention level of the object relative to the vehicle when taking potential actions. In some examples, the computing device can output a data distribution representing object behavior that varies over time in multiple scenarios, and determine the vehicle trajectory based at least in part on the data distribution.
[0011] In various examples, the computing device can determine a sample set or condition for consideration during a scenario. For example, the sample set can indicate a control strategy for (one or more) objects in the vehicle and / or environment as well as traffic rules, signal information, or other map features of the environment. In some examples, the sample set can indicate attributes of an object (e.g., position, category, speed, acceleration, yaw, turn signal state, etc.), a history of an object (e.g., position history, speed history, etc.), attributes of a vehicle (e.g., speed, position, etc.), a crosswalk permit, a traffic light permit, etc. The sample set can be associated with a node of the decision tree so that the scenario is customized for at least some conditions. Thus, the decision tree can represent a scenario that includes information associated with the sample set to determine potential intersections with objects and optional vehicle trajectories to avoid potential intersections.
[0012] In some examples, the computing device can implement a model component including one or more machine learning models to predict future characteristics (e.g., state, action, etc.) of an object (e.g., a bicycle, a pedestrian, another vehicle, an animal, etc.) that may result in an impact on the operation of the autonomous vehicle. For example, the machine learning model can determine multiple trajectories (e.g., directions, speeds, and / or accelerations) that the object will follow in the environment at future times. In such an example, the vehicle computer device of the autonomous vehicle can consider the output from the machine learning model (e.g., object trajectories) to predict candidate trajectories for the vehicle (using the same or different models), thereby improving vehicle safety by providing the autonomous vehicle with trajectories that can safely avoid potential future positions of objects that may affect the operation of the vehicle (e.g., intersecting the trajectory of the autonomous vehicle, causing the autonomous vehicle to swerve or emergency brake, etc.).
[0013] In some examples, the model component can implement a decision tree that evaluates future positions of multiple objects (at least one object having multiple object intentions) in a simulated environment to determine a vehicle response to the objects, including various response levels for one or more of the objects. In some examples, a vehicle computing device can control the vehicle in a real-world environment based at least in part on the response.
[0014] In some examples, the model component can receive data associated with one or more objects in the environment to generate the decision tree. For example, the model component can receive (or in some examples determine) one or more of the following: position data, orientation data, heading data, rate data, velocity data, acceleration data, yaw rate data, or turn rate data associated with the object at different times. In various examples, the model component can determine the rate of braking, steering, or acceleration of the object operating in the environment and / or taking action relative to the vehicle based at least in part on the data. For example, the object can be associated with different thresholds for maximum braking, maximum acceleration, maximum steering rate, etc., thereby capturing different potential behaviors of the object (e.g., the object can react to the vehicle with different levels of attention).
[0015] In various examples, the decision tree can determine an action to be taken by the vehicle when operating (e.g., to control the trajectory of the vehicle) based on one or more outputs of the decision tree. For example, the decision tree can include nodes for potential vehicle actions. The action can include a reference action (e.g., one of a set of actions that the vehicle is configured to perform in response to a dynamic operating environment), such as a right lane change, a left lane change, staying in a lane, bypassing an obstacle (e.g., a double-parked vehicle, a group of pedestrians, etc.), etc. The action can further include sub-actions, such as speed changes (e.g., maintaining speed, accelerating, decelerating, etc.), position changes (e.g., changing position in a lane), etc. For example, an action can include staying in a lane (action) and adjusting the position of the vehicle in the lane from a centered position to operating on the left side of the lane (sub-action).
[0016] For each applicable action and sub-action, the vehicle computing system may implement (one or more) different models and / or (one or more) components to simulate a future state (e.g., an estimated state) by projecting the autonomous vehicle and (one or more) related objects forward in the environment for a period of time (e.g., 5 seconds, 8 seconds, 12 seconds, etc.). The (one or more) models may project (one or more) objects forward (e.g., estimate the future position of the objects) based on the predicted trajectory associated therewith. The (one or more) models may predict the trajectory of the vehicle and predict properties about the vehicle, including whether the vehicle will use the trajectory to reach the predicted position in the future. The vehicle computing device may project the vehicle forward (e.g., estimate the future position of the vehicle) based on the vehicle trajectory or action output by the model (taking into account multiple object intentions). The (one or more) estimated states may represent the estimated position (e.g., estimated position) of the autonomous vehicle and the estimated position of (one or more) related objects at a certain time in the future. In some examples, the vehicle computing device may determine relative data between the autonomous vehicle and (one or more) objects in the (one or more) estimated states. In such examples, the relative data may include the distance, position, speed, direction of travel, and / or other factors between the autonomous vehicle and the object. In various examples, the vehicle computing device may determine the estimated state at a predetermined rate (e.g., 10 Hz, 20 Hz, 50 Hz, etc.) In at least one example, the estimated state may be performed at a rate of 10 Hz (e.g., 80 estimated intents in an 8 second period).
[0017] In various examples, the vehicle computing system may store sensor data associated with the actual position of the object at the end of the estimated set of states (e.g., the end of a time period), and use the data as training data to train one or more models. For example, the stored sensor data (or perception data derived therefrom) may be retrieved by the model and used as input data to identify clues to the object (e.g., identify features, attributes, or postures of the object). In addition, the detected position within such a time period associated with the object may be used to determine a ground truth trajectory associated with the object. In some examples, the vehicle computing device may provide the data to a remote computing device (i.e., a computing device separate from the vehicle computing device) for data analysis. In such examples, the remote computing device may analyze the sensor data to determine one or more labels of the image, the actual position of the object at the end of the estimated set of states, yaw, velocity, acceleration, direction of travel, etc. In some such examples, ground truth data associated with one or more of position, trajectory, acceleration, direction, etc. (manually labeled or determined by another machine learning model) may be determined, and such ground truth data may be used to determine the trajectory of the object. In some examples, corresponding data can be input into the model to determine an output (e.g., a trajectory, etc.), and the difference between the determined output and the actual motion (or actual trajectory) of the object can be used to train the model.
[0018] The machine learning model can be configured to determine the initial position of each object in the environment indicated by the sensor data (e.g., the physical area and / or simulated environment in which the vehicle is operating). Each determined or predicted trajectory can represent a potential direction, speed, and acceleration that the object may move through the environment. The object trajectories predicted by the models described herein can be based on passive predictions (e.g., independent of the actions taken by the vehicle and / or another object in the environment, substantially unresponsive to the actions of the vehicle and / or other objects, etc.), active predictions (e.g., based on a reaction to the actions of the vehicle and / or another object in the environment), or a combination thereof.
[0019] As described herein, a model may refer to a machine learning model, a statistical model, a heuristic model, or a combination thereof. That is, a model may refer to a machine learning model that learns from a training data set to improve the accuracy of an output (e.g., a prediction). Additionally or alternatively, a model may refer to a statistical model that represents a logical and / or mathematical function that generates an approximation that can be used to make a prediction.
[0020] The techniques discussed herein can improve the functionality of a vehicle computing system in a variety of ways. The vehicle computing system can determine the actions to be taken by an autonomous vehicle based on object trajectories and object intent that affect how an object "reacts" to a vehicle (e.g., being able to independently test different reaction thresholds for different object intents) to identify unlikely actions of an object that, if taken by the object, might not be considered (e.g., in a system that only considers the most likely actions taken by an object). In some examples, using the trajectory prediction techniques described herein, a model can output a vehicle trajectory based on a decision tree representing the object's intent, which improves the safe operation of the vehicle by accurately characterizing the object's motion in more detail than previous models.
[0021] The techniques discussed herein can also improve the functionality of computing devices in a variety of additional ways. In some cases, evaluating the output of the model(s) can allow the autonomous vehicle to generate a more accurate and / or safer trajectory for the autonomous vehicle to traverse an environment. In at least some examples described herein, decision tree-based predictions can take into account object-to-object dependencies, resulting in safer system decisions. These and other improvements to the functionality of computing devices are discussed herein.
[0022] The methods, devices, and systems described herein can be implemented in a variety of ways. Exemplary implementations are provided below with reference to the following figures. Although discussed in the context of an autonomous vehicle in some of the examples below, the methods, devices, and systems described herein can be applied to a variety of systems. In one example, a machine learning model can be used for a driver-controlled vehicle, where such a system can provide an indication of whether it is safe to perform various operations. In another example, the methods, devices, and systems can be used in contexts such as aviation, navigation, manufacturing, agriculture, etc. Additionally or alternatively, the techniques described herein can be used for real data (e.g., captured using sensors), simulated data (e.g., generated by a simulator), or any combination thereof.
[0023] Figure 1An autonomous vehicle (vehicle 102) in an exemplary environment 100 is illustrated, wherein an exemplary model component 104 can process input data to predict a vehicle trajectory. As illustrated, the vehicle 102 includes a model component 104 that represents one or more machine learning models for processing various types of input data (e.g., feature vectors, top-down representation data, sensor data, map data, etc.) associated with one or more objects in the environment 100, and determining output data 106 representing potential object trajectories, object intents, (one or more) occupancy maps, and / or vehicle trajectories. In some examples, the prediction techniques described herein may be implemented at least in part by or associated with a vehicle computing device (e.g., vehicle computing device 504) and / or a remote computing device (e.g., computing device 550). In general, an object intent can represent how an object reacts to another object or vehicle in a simulated environment and / or a real-world environment. Throughout the disclosure, such an object intent may include a set (e.g., zero, one, or more) of potential responses of an object to an environmental condition (which may include an action of an autonomous vehicle).
[0024] In some instances, the vehicle 102 may be an autonomous vehicle configured to operate in accordance with the Level 5 classification issued by the National Highway Traffic Safety Administration, which describes a vehicle capable of performing all safety-critical functions throughout a trip without the driver (or occupant) being expected to control the vehicle at any time. However, in other examples, the vehicle 102 may be a fully or partially autonomous vehicle having any other level or classification.
[0025] In various examples, a vehicle computing device associated with vehicle 102 may be configured to detect one or more objects (e.g., object 108 and object 110) in environment 100, such as via a perception component. In some examples, the vehicle computing device may detect an object based on sensor data received from one or more sensors. In some examples, the sensor may include a sensor mounted on vehicle 102 and include, but are not limited to, an ultrasonic sensor, a radar sensor, a light detection and ranging (lidar) sensor, a camera, a microphone, an inertial sensor (e.g., an inertial measurement unit, an accelerometer, a gyroscope, etc.), a global positioning satellite (GPS) sensor, etc. In various examples, vehicle 102 may be configured to send and / or receive data from other autonomous vehicles and / or sensors. The data may include sensor data, such as data about objects detected in environment 100.
[0026] In various examples, the vehicle computing device can receive the sensor data and can semantically classify the detected objects (e.g., determine the object type), such as, for example, whether the object is a vehicle (such as object 108), a pedestrian (such as object 110), a building, a truck, a motorcycle, a moped, etc. The objects can include static objects (e.g., buildings, bridges, signs, etc.) and dynamic objects (such as other vehicles, pedestrians, cyclists, etc.). In some examples, the classification can include another vehicle (e.g., a car, a pickup truck, a semi-trailer truck, a tractor, a bus, a train, etc.), a pedestrian, a child, a cyclist, a skateboarder, a horse rider, an animal, etc. In various examples, the model can use the classification of the object to determine object characteristics (e.g., maximum speed, acceleration, maneuverability, etc.). In this way, the potential trajectory of the object can be considered based on the characteristics of the object (e.g., how the object may move in the environment).
[0027] In general, the model component 104 provides functionality for determining a first object track 112 and a second object track 114 associated with the object 108, and determining a vehicle track 116 associated with the vehicle 102. The model component 104 can also or alternatively predict occupancy maps 118A, 118B, ..., 118N (collectively referred to as "occupancy maps 118"), where N is an integer, and / or predict occupancy maps 120A, 120B, ..., 120N (collectively referred to as "occupancy maps 120"), where N is an integer. For example, the model component 104 can output one or more tracks, object intent, etc. that can be used in a simulation (also referred to as a scenario or estimated state) to determine a response of the vehicle 102 to the object. In some examples, the model component 104 can generate output data 106 to represent one or more heat maps. In some examples, a probability heat map can be used to determine or represent one or more predicted trajectories to predict object behavior, such as described in U.S. patent application Ser. No. 15 / 807,521, filed on Nov. 8, 2017, entitled “Probability Heat Maps for Behavior Prediction,” which is incorporated herein by reference in its entirety and for all purposes.
[0028] In some examples, the vehicle computing device can determine a first confidence (e.g., 70% confidence) that the object 108 follows the first object trajectory 112 and a second confidence (e.g., 30% confidence) that the object 108 follows the second object trajectory 114. The confidence values can also or alternatively be associated with the occupancy map 118 and / or the occupancy map 120. The confidence values can be used to assess potential interactions between the vehicle and the object 108, or to determine a speed (or other metric) associated with the vehicle trajectory 116 (e.g., to prepare the vehicle 102 for a left turn due to the object 108).
[0029] In some examples, model component 104 can be configured to receive input data representing features of the environment (e.g., roads, crosswalks, buildings, etc.), current states of objects (e.g., vehicle 108 and / or pedestrians 110), and / or current states of vehicle 102. Additional details regarding inputs to model component 104 are provided in this disclosure.
[0030] In some examples, model component 104 can represent one or more machine learning models configured to determine one or more trajectories, occupancy maps, or intent of additional objects such as pedestrian 110. For example, model component 104 can predict that the most likely trajectory for pedestrian 110 is to remain off the road, but model component 104 can also predict that pedestrian 110 will follow another object trajectory that results in pedestrian 110 entering the road in front of vehicle 102. Vehicle 102 can prepare for pedestrian 110 entering the road by determining a vehicle trajectory that takes into account multiple object trajectories or intents as part of a decision tree described herein.
[0031] Additional details for predicting object behavior using machine learning models are described in U.S. patent application serial number 17 / 681,461, filed on February 22, 2022, entitled "Generating Predictions Based on Object Type," which is incorporated herein by reference in its entirety and for all purposes. Additional details for predicting object location using machine learning models are described in U.S. patent application serial number 17 / 535,357, filed on November 24, 2021, entitled "Encoding Relative Object Information into Node Edge Features," which is incorporated herein by reference in its entirety and for all purposes.
[0032] The vehicle computing device can use the output data 106 from the model component 104 in a variety of ways. For example, information about object trajectories, object intent, and / or sampled conditions can be used by a planning component of the vehicle computing device to control the vehicle 102 in the environment 100 (e.g., determine trajectories and / or control propulsion systems, braking systems, or steering systems). The output data 106 can also or alternatively be used to perform simulations by setting conditions (e.g., intersections, number of objects, likelihood of objects exhibiting abnormal behavior, etc.) for use during the simulation, such as for testing the response of a vehicle safety system.
[0033] The model component 104 can determine the output data 106 based at least in part on applying a tree search algorithm to the decision tree. For example, the tree search algorithm can execute functions associated with various nodes and subnodes to identify paths between nodes with minimum costs in various paths (e.g., including different nodes representing object intent, object trajectory, or vehicle action). The sample set can test various potential interactions between the vehicle 102 and objects in the environment 100. For example, the samples in the sample set can represent instances of (one or more) object intents, which can be multiple potential intents relative to different vehicle actions. In various examples, the model component 104 can group object intents with similar results into the same node. For example, a node can convey the results of testing different samples, including grouping object intents, object trajectories, etc., which exhibit the same object position and object speed at the end of testing each sample in the sample set. For example, the first node of the decision tree can include an object intent associated with an object (e.g., turn left), and the second node can include an object intent set associated with the object. In some examples, multiple object intents in the object intent set can include the same intent, such as the object will go straight in the future.
[0034] In some examples, a first object intent for a first object can be associated with a first node, and a second object intent for a second object can be associated with a second node (e.g., a decision tree can include two or more objects, each with one or more intents). The present disclosure discusses additional details for determining nodes and samples.
[0035] A training component of a remote computing device, such as computing device(s) 550 (not shown) and / or vehicle computing device 504 (not shown), can be implemented to train model component 104. Training data can include a variety of data, such as image data, video data, lidar data, radar data, audio data, other sensor data, etc., which are associated with values (e.g., desired classifications, inferences, predictions, etc.). In some examples, the training data can include determinations based on sensor data, such as bounding boxes (e.g., two-dimensional and / or three-dimensional bounding boxes associated with objects), segmentation information, classification information, object trajectories, etc. Such training data can generally be referred to as "ground truth". For illustration, the training data can be used for image classification and, therefore, can include images of an environment captured by an autonomous vehicle and associated with one or more classifications. In some examples, such classifications can be based on user input (e.g., user input indicating that an image depicts a particular type of object) or can be based on the output of another machine learning model. In some examples, such labeled classifications (or more generally, labeled outputs associated with training data) can be referred to as ground truth. The training model component 104 can improve vehicle trajectory determination over time by learning how to build decision trees to produce optimized results.
[0036] Figure 2 is a flow chart of an exemplary process 200 for controlling a vehicle (eg, vehicle 102 or vehicle 502) based on occupancy prediction output from a model. The exemplary process 200 may be performed by a computing device such as Figure 5 In some examples, the vehicle computing device 504 and / or the vehicle safety system 534 may be implemented. Figure 2 The described techniques can be performed while the vehicle 102 is navigating an environment 100 (eg, a real-world environment or a simulated environment).
[0037] Operation 202 can include defining nodes of a decision tree to represent the intentions of the vehicle's actions and objects in the environment. In some examples, defining nodes can include generating nodes to represent multiple object intentions. For example, the first node of the decision tree (or its object intention) can represent a feature (e.g., state or action) of an object, such as one or more of the following: a yielding action, a straight-ahead action, a left turn action, a right turn action, a braking action, an acceleration action, a steering action, or a lane-changing action, and a second node can represent an action or state associated with the vehicle 102 (e.g., one of the following: a yielding action, a straight-ahead action, a left turn action, a right turn action, a braking action, an acceleration action, a steering action, or a lane-changing action).
[0038] In some examples, operation 202 can include vehicle 102 implementing model component 104 to associate a first node with a vehicle action, a second node with a second vehicle action, a third node with a first object intent, a fourth node with a second object intent, etc. The decision tree can represent one or more objects (e.g., vehicle 108) in environment 204 (e.g., a simulated environment or a real-world environment). In various examples, environment 204 can correspond to Figure 1 environment 100. For example, additional nodes can represent actions, states, and / or intentions of additional objects, etc. In some examples, a single node can represent potential interactions of two or more objects with respect to each other and / or with respect to the vehicle.
[0039] In various examples, the computing device can generate a decision tree based at least in part on state data associated with the vehicle and / or object(s). The state data can include descriptions of objects (e.g., Figure 1 The state data may include data of a vehicle 108, a pedestrian 110, and / or a vehicle (e.g., vehicle 102). In various examples, the state data may include one or more of position data, orientation data, heading data, velocity data, speed data, acceleration data, yaw rate data, or turn rate data associated with the object and / or vehicle.
[0040] Operation 206 can include determining an uncertainty associated with the future object position. For example, operation 206 can include the vehicle 102 implementing the model component 104 to receive one or more object tracks that can be used to determine an occupancy map 118 and / or an occupancy map 120 associated with the object 108 at different times in the future. In various examples, the occupancy map 118 and / or the occupancy map 120 can represent the future object position at various times in the future.
[0041] Operation 208 can include determining a sample set representing potential interactions between the vehicle and the object. For example, operation 208 can include the vehicle 102 implementing the model component 104 to determine data representing vehicle control strategies, object control strategies, map data, environmental data, etc., and sending the data to the model component 104 for inclusion in a decision tree. Thus, the sample set can model potential interactions, which can include different object intentions that cause the vehicle 102 to take different future actions. The samples in the sample set can, for example, represent discrete selections or combinations of potential interactions from various sets of possibilities (e.g., a specific scenario with a street intersection, traffic rules, multiple objects with different intentions, etc.). For example, each sample in the sample set can represent various types of object behaviors to capture possible actions that the object may take (e.g., the object goes straight) and impossible actions (e.g., the object unexpectedly turns in front of the vehicle). Therefore, uniformly determining responses to the sample set can capture various object behaviors and vehicle actions, which can improve determinations based on the sample set.
[0042] Operation 210 can include determining, for each sample in the sample set, an intended vehicle action (or reaction) for the object. For example, operation 210 can include the vehicle 102 implementing the model component 104 to determine a vehicle trajectory for each sample scenario in the sample set. For example, the model component 104 can determine a first vehicle trajectory 212 associated with a first sample and a second vehicle trajectory 214 associated with a second sample.
[0043] Operation 216 can include controlling operation of the vehicle based on the aggregated vehicle response. For example, operation 216 can include the vehicle computing device determining a cost for each sample in the sample set and aggregating the costs (e.g., a weighted average, etc.) to determine a candidate vehicle trajectory for transmission to a planning component of the vehicle computing device. The vehicle trajectory can be based at least in part on a minimum cost of traversing the decision tree.
[0044] Figure 3 An exemplary block diagram 300 of an exemplary computer architecture for implementing techniques for generating an exemplary decision tree as described herein is illustrated. Example 300 includes a computing device 302 (e.g., vehicle computing device(s) 504 and / or computing device(s) 550) including Figure 1 Model component 104. In some examples, Figure 3 The described techniques can be performed while vehicle 102 navigates environment 100 .
[0045] As in Figure 3As depicted in , the model component 104 includes a decision tree component 304 and a sample determination component 306. The decision tree component 304 can be configured to manage nodes of a decision tree 308, including determining the number and / or intent type of nodes, adding nodes, removing nodes, etc. The sample determination component 306 can be configured to determine samples for identifying whether a vehicle and an object intersect. The decision tree 308 includes one or more object intents 310 (e.g., future actions) and one or more vehicle actions 312 (e.g., turning actions, braking actions, acceleration actions, such as giving way or slowing down to allow an object to safely enter the front of the vehicle). The object intent can represent the attention level of the object, such as whether the object will react to the vehicle at a first reaction level or a second reaction level, or in some cases, not react to the vehicle during the sampling period. In various examples, different reaction levels can be associated with different maximum thresholds for object acceleration, braking, or steering. The object intent 310 can include, for example, one or more of the following: a) a reactive intent, in which the object changes lanes, brakes, accelerates, decelerates, etc. relative to the vehicle; b) a nominal intent, in which the object changes lanes, brakes, accelerates, decelerates, etc., which is less aggressive than a reactive intent, such as decelerating to allow the vehicle to change lanes; c) an inattentive intent, in which the object avoids reacting to the vehicle; d) an intention to turn right; e) an intention to turn left; f) an intention to go straight; g) an intention to accelerate; h) an intention to decelerate; i) an intention to stop; j) an intention to stay where you are, etc.).
[0046] In some examples, the object intent of the decision tree 308 can be associated with the object(s) that are most relevant to the vehicle. For example, the decision tree component 304 can receive one or more objects determined to be relevant to the vehicle by another machine learning model, and the other machine learning model is configured to identify relevant objects from a set of objects in the environment of the vehicle. The machine learning model can determine the relevant objects based at least in part on a relevance score associated with each object in the set of objects and / or (one or more) objects within a threshold distance from the vehicle. Other examples of determining the relevance of objects are described in U.S. Patent Application Nos. 16 / 530,515 (filed on August 2, 2019, entitled "Related Object Detection"), 16 / 417,260 (filed on May 30, 2019, entitled "Object Relevance Determination"), and 16 / 389,720 (filed on May 6, 2019, entitled "Dynamic Object Relevance Determination"), all of which are incorporated herein by reference in their entirety and for all purposes.
[0047] In some examples, the (one or more) nodes of the decision tree 308 can be associated with one or more areas around the vehicle (e.g., areas that are most likely to include potential intersections with objects). For example, the decision tree component 304 can receive one or more areas through the model component 104 or another machine learning model, and the other machine learning model is configured to identify relevant areas from a set of areas in the environment of the vehicle. For example, the decision tree can include (one or more) nodes to represent occluded areas, areas in front of the vehicle, or other areas within a predetermined distance of the vehicle. In some examples, the vehicle is a two-way vehicle, and therefore, when the vehicle navigates in the environment, the model component 104 can define, identify, or otherwise determine the rear area relative to the direction of travel. For example, the rear area of the vehicle can vary depending on the direction of travel. In at least some examples, the environment can be encoded as a vector representation and output from the machine learning model in an embedded form. Such an embedding can be used to predict (one or more) future states or (one or more) intentions of the object.
[0048] The decision tree includes a first node 314, a second node 316, a third node 318, a fourth node 320, a fifth node 322, a sixth node 324, a seventh node 326, an eighth node 328, and a ninth node 330, but other numbers of nodes are possible. For example, the first node 314 can include four different object intentions, as depicted by different shading. The second node 316, the third node 318, and the fourth node 320 can be associated with corresponding vehicle actions (e.g., proposed actions or actions that the vehicle will take in the future). In various examples, the second node 316, the third node 318, and / or the fourth node 320 can represent actions for applying to the vehicle within a time period.
[0049] In the illustrated example, intents grouped together may elicit similar or identical responses from the vehicle and / or have substantially similar probabilities / confidence / likelihoods of occurrence. As illustrated, the vehicle taking characteristic actions may help differentiate the responses of the objects, as illustrated by changing the grouping of the object intents in response to the vehicle actions. In some instances, further differentiation of the object intents may enable the vehicle to respond better to the environment (e.g., safer, more efficient, more comfortable, etc.).
[0050] Decision tree 308 and Figure 3 For example, time T0 represents the first time of decision tree 308 and is generally associated with first node 314 and second node 316. Each progression to a new node in decision tree 308 does not necessarily mean a new time (e.g., T0, T1, etc. are not scaled to Figure 3, but is generally used to show the progression of time). In some examples, each layer of the decision tree can be associated with a specific time, for example, the first node 314, the second node 316, the third node 318, and the fourth node 320 are associated with time T0, the fifth node 322, the sixth node 324, the seventh node 326, the eighth node 328, and the ninth node 330 are associated with time T1, and others for additional branches or nodes (not shown) until time TN, where N is an integer. In various examples, different layers, branches, or nodes can be associated with different times in the future. In various examples, scenarios associated with one or more of the nodes of the decision tree 308 can be run in parallel on one or more processors (e.g., a graphics processing unit (GPU) and / or a tensor processing unit (TPU), etc.).
[0051] In some examples, at time T1, the vehicle takes an action 322 associated with the third node 318 at the fifth node, followed by an additional scenario to test how the vehicle responds to the four object intentions of the fifth node 322. Therefore, the fifth node 322 can represent multiple scenarios within a time period. In addition, the decision tree 308 can represent the vehicle action associated with the second node 316, and perform additional tests at time T1 to determine how the vehicle responds to the object intention (e.g., left turn intention) of the sixth node 324 and the three object intentions of the seventh node 326. In some examples, the three object intentions of the seventh node 326 can include the same result, such as the object has a straight intention, but each straight intention may be associated with a different response level to the vehicle (e.g., different speeds, accelerations and / or braking capabilities). In various examples, the sixth node 324 (or another node with a single object intention) can evaluate a specific object intention in the vehicle trajectory determination (e.g., a left turn that is unlikely to occur, for example, the object continues to go straight without turning left).
[0052] In various examples, different vehicle actions at the fourth node 320 can cause additional tests (scenarios) to be performed to determine how the vehicle responds to the two object intentions of the eighth node 328 and the two object intentions of the ninth node 330 .
[0053] Note that Figure 3In the depicted embodiment of FIG, the nodes following the vehicle action at a time (e.g., nodes 316, 318, and 320) can be considered child nodes, and the total number of object intents between the child nodes is equal to the number of object intents in the first node 314. For example, the sixth node 324 and the seventh node 326 have four object intents combined, which is equal to the four object intents of the first node 314. However, in other examples, the object intents can change between nodes, and the number of object intents can also vary from node to node (e.g., can be more or less than the number of object intents in the first node of the decision tree).
[0054] In some examples, additional nodes (not shown) can be searched in the decision tree 308 to test another object intent or group of object intents. For example, at time T2, a new sample set and / or a new set of object intents can be associated with a node of the decision tree 308 based at least in part on the output of a previous node. In some examples, the model component 104 can assign new object intent combinations to nodes to further consider different object actions when determining vehicle trajectories. For example, by receiving a new sample set that is different from the sample set used in the previous node, the nodes of the decision tree 308 can be dynamically "resampled", for example, during a tree search.
[0055] In various examples, the decision tree component 304 can generate a decision tree 308 based at least in part on one or more of the following: properties of the object 108 (e.g., position, velocity, acceleration, yaw, etc.), the history of the object 108 (e.g., position history, velocity history, etc.), properties of the vehicle 102 (e.g., velocity, position, etc.), and / or environmental features (e.g., road boundaries, road centerlines, crosswalk permits, traffic light permits, etc.). In some examples, nodes of the decision tree 308 can be associated with various costs (e.g., comfort costs, safety costs, distance costs, braking costs, obstacle costs, etc.), which can be used to determine potential intersections between future vehicles and objects.
[0056] In some examples, computing device 302 can implement decision tree component 304 to generate decision tree 308 based at least in part on state data associated with the vehicle and one or more objects in the environment. The state data can include a description of the object(s) in the environment (such as in exemplary environment 100) (e.g., Figure 1 The state data may include data of a vehicle 108, a pedestrian 110, and / or a vehicle (e.g., vehicle 102). The state data may include one or more of position data, direction data, heading data, velocity data, speed data, acceleration data, yaw rate data, or turn rate data associated with the object(s) and / or vehicle.
[0057] In general, the sample determination component 306 can provide functionality for identifying, generating, or otherwise determining a set of samples representing different simulation scenarios. For example, the sample determination component 306 can identify one or more samples for execution in association with individual nodes of the decision tree 308 (e.g., samples for testing object intent, vehicle action, etc.). In a non-limiting embodiment, the sample determination component 306 can identify samples for testing three object intents of the seventh node 326 in response to the vehicle action at the second node 316.
[0058] In various examples, the decision tree component 304 and / or the sample determination component 306 can assign a specific number of object intents to different nodes. For example, the decision tree component 304 can predict a vehicle trajectory based on three different object intents assigned to the seventh node 326 and one object intent assigned to the sixth node 324. In such an example, the object intent of the seventh node 326 can be uniformly considered before determining the vehicle trajectory based on the output of the seventh node 326. Regardless of whether the environment includes dynamic objects, the decision tree component 304 and / or the sample determination component 306 can also or alternatively assign intent to one or more regions to indicate the intent of the objects (if any) in the region. Occluded regions can be associated with various possible object intents that may later emerge from the occluded regions.
[0059] In some examples, the cost associated with a node, sample, or scenario (e.g., the cost of the vehicle taking an action) can be compared to a risk threshold, and when the cost is below the risk threshold, the vehicle trajectory can be output for use by the vehicle computing device. In some examples, the decision tree component 304 can aggregate the costs associated with the nodes, samples, or scenarios, and determine the vehicle trajectory based at least in part on the aggregated costs. By way of example and not limitation, the decision tree 308 can consider 40 actions out of 100 samples, where the object has 4 different intents.
[0060] In some examples, the decision tree component 304 can use heuristics and / or machine learning models to determine whether to expand a branch or node of the decision tree 308. For example, the machine learning model can be trained to determine whether to expand child branches / nodes, group all intent parts, expand upper and lower bounds of leaf nodes to determine the best trajectory.
[0061] Figure 4 An example block diagram 400 of an example computer architecture for implementing techniques for evaluating the output of an example decision tree as described herein is illustrated. The techniques described in example 400 may be performed by a computing device such as computing device 302, vehicle computing device 504, and / or computing device 550.
[0062] The decision tree component 304 can use the input data 402 (e.g., log data, sensor data, map data, object state data, vehicle state data, control strategy data, etc.) to perform a search setup 404 (e.g., determine a first search algorithm, determine the number of samples for a tree search, etc.). In various examples, the search setup 404 can include identifying a search algorithm to search a decision tree by a first computing device (e.g., vehicle computing device (s) 504) having fewer computing resources than a second computing device (e.g., computing device (s) 550). In some examples, the search setup 404 can include determining a set of object intents for one or more objects in an environment, and assigning the intents to different nodes of a decision tree (such as decision tree 308). The search setup 404 can also or alternatively include determining conditions for testing a response of a vehicle controller or other device configured to control the operation of the vehicle to the object intents. The decision tree component 304 can apply a tree search algorithm to perform a tree search 406 based at least in part on the search setup 404. The tree search algorithm can, for example, initiate one or more scenarios for determining the future position of the object based on various object intents. Thus, tree search 406 is able to represent various potential interactions between an object relative to another object and / or an object relative to the autonomous vehicle.
[0063] Typically, the nodes of the decision tree 308 represent "belief" states of an environment, object, vehicle, etc. rather than the actual state of the environment, object, etc. For example, a "belief" state can represent a future state or simulated state of an object, an autonomous vehicle, an environment, etc. In some examples, a "belief" state can be associated with a future time as part of a sample or scenario. For example, a "belief" state can represent multiple object intentions, the subject being an embodiment in which two different object intentions lead to the same state within a time period. In various examples, (one or more) "belief" state nodes can represent the uncertainty of a state associated with one or more objects. In some examples, (one or more) "belief" state nodes can represent a probability distribution of a state (e.g., object position, etc.) associated with a time period.
[0064] The decision tree component 304 can perform optimization 408 to optimize the vehicle trajectory output (e.g., the vehicle trajectory determined by the vehicle) as a result of the tree search 406. For example, the machine learning model can perform a global optimization technique to improve the accuracy of the vehicle trajectory to avoid the object. In some examples, the tree search algorithm associated with the tree search 406 can be optimized separately by comparing the results of one or more scenarios and identifying the paths between nodes that determine the vehicle trajectory to be followed by the vehicle in the environment. The potential interaction between the object and the vehicle can be tested in one or more scenarios based on the object intent associated with each node. In some examples, the computing device 302 can implement the machine learning model to determine whether to continue to another node or add a new node to the decision tree, which is based at least in part on the possibility that the addition of the node causes the improvement in the vehicle trajectory determination to exceed a threshold. In some examples, the decision tree component 304 can determine a cost gap distribution (or other scheme) to add another node to reduce the "gap cost" between the predicted vehicle trajectory and the actual trajectory of the vehicle.
[0065] As in Figure 4 As shown in , the decision tree component 304 can determine settings 410 based at least in part on the input data 402. The settings 410 can include the same number or a different number of object intents as the search settings 404. In various examples, the second search settings can include identifying an algorithm to evaluate the output of the decision tree or optimization 408 by a second computing device (e.g., (one or more) computing devices 550), which has more computing resources than the first computing device associated with the search settings 404 (e.g., (one or more) vehicle computing devices 504). Therefore, the settings 410 can include determining a larger number of samples (e.g., 1000 or other number) and / or a different algorithm than the number of samples associated with the search settings 404 (e.g., 3 or other number) to evaluate the optimized vehicle trajectory from the optimization 408. The settings 410 can also or alternatively identify a set of policies associated with one or more objects in the vehicle and / or environment to evaluate the vehicle trajectory output by the tree search 406 or the optimized vehicle trajectory output by the optimization 408.
[0066] In various examples, the decision tree component 308 can perform a policy evaluation 412 based at least in part on the output of the tree search 406, the optimization 408, and / or the setting 410. In general, the policy evaluation 412 represents testing the output of the tree search 406 and / or the optimization 408 against the policy set in the setting 410. The policy evaluation 412 can, for example, use an algorithm trained at least in part based on previous results to improve determinations over time compared to the tree search 406 (e.g., predict a more accurate vehicle trajectory). In some examples, the policy evaluation 412 can represent an intent distribution associated with the object intent of the setting 410. In a non-limiting embodiment, the policy evaluation 412 can represent an open-loop trajectory evaluation.
[0067] In some examples, the decision tree component 304 can perform an evaluation 414, including determining a metric for evaluating the performance of an algorithm (such as a tree search algorithm) (e.g., accuracy of vehicle trajectory, rate of determining outputs, size of the decision tree, whether to add or remove nodes from the decision tree, etc.). In some examples, the evaluation 414 can include determining costs associated with the scenario and aggregating the costs of the nodes of the decision tree or multiple models (e.g., weighted average, etc.). In some examples, the nodes of the decision tree 308 can be associated with various costs (e.g., comfort cost, safety cost, distance cost, braking cost, obstacle cost, etc.), which can be used to determine potential intersections between future vehicles and objects.
[0068] Figure 5 5 is an example block diagram of an example system 500 for implementing the techniques described herein. In at least one example, system 500 can include a vehicle, such as vehicle 502 .
[0069] Vehicle 502 may include a vehicle computing device 504 (also referred to as vehicle computing device 504 or vehicle computing device(s) 504 ), one or more sensor systems 506 , one or more transmitters 508 , one or more communication connections 510 , at least one direct connection 512 , and one or more drive systems 514 .
[0070] The vehicle computing device(s) 504 may include one or more processors 516 and a memory 518 communicatively coupled to the one or more processors 516. In the illustrated example, the vehicle 502 is an autonomous vehicle; however, the vehicle 502 may be any other type of vehicle, such as a semi-autonomous vehicle, or any other system having at least an image capture device (e.g., a camera-enabled smartphone). In the illustrated example, the memory 518 of the vehicle computing device 504 stores a positioning component 520, a perception component 522, a planning component 524, one or more system controllers 526, one or more maps 528, and a model component 530, the model component 530 including one or more models, such as a first model 532A, a second model 532B, up to an Nth model 532N (collectively referred to as "models 532"), where N can be any integer greater than 1. Although for purposes of illustration, in Figure 5 502, but it is contemplated that the positioning component 520, the perception component 522, the planning component 524, the one or more system controllers 526, the one or more maps 528, and the model component 530 including the model 532 may additionally or alternatively be accessible to the vehicle 502 (e.g., stored on or otherwise accessible to memory remote from the vehicle 502, such as, for example, on memory 548 of a remote computing device 550).
[0071] Additionally, vehicle 502 can include vehicle safety system 534, including object trajectory component 540, intersection component 542, probability component 544, and action component 546. As shown in this example, vehicle safety system 534 can be implemented separately from vehicle computing device(s) 504, e.g., to improve performance of the vehicle safety system, and / or to provide redundancy, error checking, and / or validation of determinations and / or commands determined by vehicle computing device(s) 504. However, in other examples, vehicle safety system 534 can be implemented as one or more components within the same vehicle computing device(s) 504.
[0072] For example, (one or more) vehicle computing devices 504 can be considered as primary systems, while vehicle safety systems 534 can be considered as secondary systems. The primary system can generally perform processing to control how the vehicle maneuvers in the environment. The primary system can 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 in the environment. For example, the primary system can implement AI techniques to locate the vehicle, detect objects around the vehicle, segment sensor data, determine the classification of objects, predict object trajectories, generate trajectories for the vehicle 502 and objects around the vehicle, etc. In some examples, the primary system can 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, structured light, etc.), cameras, etc. within the sensor system 506.
[0073] In some examples, the vehicle safety system 534 can operate as a separate system that receives state data (e.g., perception data) based on the sensor data and AI techniques implemented by the host system (e.g., (one or more) vehicle computing devices 504), and can perform various techniques described herein to improve collision prediction and avoidance of the vehicle 502. As described herein, the vehicle safety system 534 can implement techniques for predicting intersections / collisions based on sensor data, as well as probabilistic techniques based on the location, velocity, acceleration, etc. of the vehicle and / or objects surrounding the vehicle. In some examples, the vehicle safety system 534 can process data from sensors, such as a subset of sensor data processed by the host system. For illustration, the host system can process lidar data, radar data, image data, depth data, etc., while the vehicle safety system 534 can only process lidar data and / or radar data (and / or time of flight data). However, in other examples, the vehicle safety system 534 can 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 host system, etc.
[0074] Additional examples of vehicle architectures including primary and secondary computing systems can be found, for example, in U.S. patent application Ser. No. 16 / 189,726, filed on Nov. 13, 2018, entitled “Perceptual Collision Avoidance,” the entire contents of which are incorporated herein by reference and for all purposes.
[0075] Despite Figure 5502, but it is contemplated that the localization component 520, the perception component 522, the planning component 524, the model component 530, the system controller 526, and the map 528 may additionally or alternatively be accessed by the vehicle 502 (e.g., stored on a memory remote from the vehicle 502 or otherwise accessible thereto, such as, for example, on a memory 548 of a remote computing device 550). Similarly, the object trajectory component 540, the intersection component 542, the probability component 544, and / or the action component 546 are depicted as residing in the memory 538 of the vehicle safety system 534, and one or more of these components may additionally or alternatively be implemented within the vehicle computing device(s) 504 or may be accessed by the vehicle 502 (e.g., stored on a memory remote from the vehicle 502 or otherwise accessible thereto, such as, for example, on a memory 548 of a remote computing device 550).
[0076] In at least one example, the positioning component 520 may include functionality to receive data from the sensor system(s) 506 to determine the position and / or orientation (e.g., one or more of x, y, z position, roll, pitch, or yaw) of the vehicle 502. For example, the positioning component 520 may include and / or request / receive a map of the environment, such as from the map(s) 528 and / or the map component 528, and may continuously determine the position and / or orientation of the autonomous vehicle within the map. In some cases, the positioning component 520 may utilize SLAM (simultaneous localization and mapping), CLAMS (simultaneous calibration, localization, and mapping), relative SLAM, bundle adjustment, nonlinear least squares optimization, etc. to receive image data, lidar data, radar data, IMU data, GPS data, wheel encoder data, etc. to accurately determine the position of the autonomous vehicle. In some cases, the positioning component 520 may provide data to various components of the vehicle 502 to determine the initial position of the autonomous vehicle in order to determine the relevance of an object to the vehicle 502, as discussed herein.
[0077] In some instances, the perception component 522 may include functionality to perform object detection, segmentation, and / or classification. In some examples, the perception component 522 may provide processed sensor data indicating the presence of an object (e.g., an entity) proximate to the vehicle 502 and / or the classification of the object as an object type (e.g., a car, a pedestrian, a cyclist, an animal, a building, a tree, a pavement, a curb, a sidewalk, an unknown, etc.). In some examples, the perception component 522 may provide processed sensor data indicating the presence of a stationary entity proximate to the vehicle 502 and / or the classification of the stationary entity as a type (e.g., a building, a tree, a pavement, a curb, a sidewalk, an unknown, etc.). In additional or alternative embodiments, the perception component 522 may provide processed sensor data indicating one or more features associated with a detected object (e.g., a tracked object) and / or the environment in which the object is located. In some examples, object-related features may include, but are not limited to: 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), object type (e.g., classification), object velocity, object acceleration, object extent (size), etc. Environment-related features may include, but are not limited to: presence of another object in the environment, state of another object in the environment, time of day, day of the week, season, weather conditions, indication of darkness / light, etc.
[0078] Typically, the planning component 524 can determine the path that the vehicle 502 will follow when traversing the environment. For example, the planning component 524 can determine various routes and trajectories and various levels of detail. For example, the planning component 524 can determine a driving route from a first location (e.g., a current location) to a second location (e.g., a target location). For the purpose of discussion, a route may include a series of waypoints for traveling between two locations. As a non-limiting example, waypoints include streets, intersections, global positioning system (GPS) coordinates, etc. In addition, the planning component 524 can generate instructions for guiding the autonomous vehicle to travel along at least a portion of the route from the first location to the second location. In at least one example, the planning component 524 can determine how to guide the autonomous vehicle from a first waypoint in a sequence of waypoints to a second waypoint in a sequence of waypoints. In some examples, the instructions can be a trajectory, or a portion of a trajectory. In some examples, multiple trajectories can be generated substantially simultaneously according to the receding horizon technique (e.g., within a technical tolerance range), wherein one of the multiple trajectories is selected for navigation by the vehicle 502.
[0079] In some examples, planning component 524 can implement one or more tree search algorithms to determine the path of vehicle 502. For example, planning component 524 can implement model component 530 (having at least Figure 1 The vehicle computing device(s) 504 may be configured to apply a tree search algorithm to a decision tree to determine a vehicle trajectory for the vehicle 502. In some examples, the vehicle computing device(s) 504 may be configured to exchange data with the computing device(s) 550, including sending log data associated with the tree search algorithm to the computing device(s) 550 and receiving an updated or optimized algorithm from the computing device(s) 550.
[0080] In some examples, planning component 524 can include a prediction component to generate predicted trajectories of objects in the environment (e.g., dynamic objects such as pedestrians, cars, trucks, bicycles, animals, etc.). For example, the prediction component can generate one or more predicted trajectories for objects within a threshold distance from vehicle 502. In some examples, planning component 524 can include or otherwise perform functions associated with decision tree component 304 and / or sample determination component 306.
[0081] In at least one example, the vehicle computing device 504 can include one or more system controllers 526, which can be configured to control steering, propulsion, braking, safety, transmitter, communication, and other systems of the vehicle 502. The system controller(s) 526 can communicate with and / or control corresponding systems of the drive system(s) 514 and / or other components of the vehicle 502.
[0082] The memory 518 may also include one or more maps 528, which can be used by the vehicle 502 to navigate within the environment. For the purposes of this discussion, a map may be any number of data structures modeled in two, three, or N dimensions that can provide information about the environment, such as, but not limited to: topology (such as intersections), streets, mountains, roads, terrain, and general environment. In some cases, a map may include, but is not limited to: texture information (e.g., color information (e.g., RGB color information, Lab color information, HSV / HSL color information), etc.), intensity information (e.g., lidar information, radar information, etc.); spatial information (e.g., image data projected onto a grid, individual "surfels" (e.g., polygons associated with individual colors and / or intensities)), reflectivity information (e.g., specular reflectivity information, retroreflectivity information, BRDF information, BSSRDF information, etc.). In one example, a map may include a three-dimensional grid of the environment. In some examples, the vehicle 502 may be controlled based at least in part on (one or more) maps 528. That is, map(s) 528 may be used in conjunction with positioning component 520, perception component 522, and / or planning component 524 to determine the location of vehicle 502, detect or determine gravity, detect objects in the environment, generate routes, determine actions and / or trajectories for navigating within the environment.
[0083] In some examples, one or more maps 528 may be stored on a remote computing device(s) (such as computing device(s) 550) accessible via network(s) 556. In some examples, multiple maps 528 may be stored based on, for example, characteristics (e.g., type of entity, time of day, day of week, season of year, etc.). Storing multiple maps 528 may have similar memory requirements, but may increase the speed of accessing data in the maps.
[0084] As in Figure 5 As illustrated in FIG. 5 , the vehicle computing device 504 may include a model component 530. The model component 530 may be configured to determine intersection probabilities between objects in the environment of the vehicle 502. For example, the model component 530 may be capable of determining Figure 1 output data 106. In various examples, model component 530 can receive sensor data associated with the object from positioning component 520, perception component 522, and / or from sensor system(s) 506. In some examples, model component 530 can receive map data from positioning component 520, perception component 522, map 528, and / or sensor system(s) 506. Figure 5502 , but model component 530 can be part of positioning component 520 , perception component 522 , planning component 524 , or other components of vehicle 502 .
[0085] In various examples, model component 530 can send (one or more) outputs from first model 532A, second model 532B, and / or Nth model 532N, which perception component 522 can use to change or modify the amount of perception performed in the area of the object based on the associated intersection value. In some examples, planning component 524 can determine one or more actions (e.g., reference actions and / or sub-actions) for vehicle 502 based at least in part on the outputs from model component 530. In some examples, model component 530 can be configured to output information indicating a vehicle trajectory to avoid objects that may cause a collision. In some examples, model component 530 can include at least one of Figure 1 The functionality provided by the model component 104.
[0086] In some examples, model component 530 can transmit output to perception component 522 to cause an update of one or more parameters (e.g., bias values, drift values, etc.) associated with sensor system(s) 506. In some examples, model component 530 can transmit output to planning component 524 for consideration in planning operations (e.g., determining a final vehicle trajectory).
[0087] In various examples, the model component 530 can utilize machine learning techniques to determine object intent, nodes of a decision tree, vehicle trajectories, object locations, intersection probabilities, etc., such as relative to Figure 1 and as described elsewhere. In such examples, a machine learning algorithm can be trained to predict vehicle trajectories with increasing accuracy over time.
[0088] Vehicle safety system 534 may include object trajectory component 540, which is configured to determine the trajectory of vehicle 502 and / or the trajectory of other objects identified within the environment using various systems and techniques described herein. In some examples, object trajectory component 540 can receive planning data, perception data, and / or map data from components 520-526 to determine the planned trajectory of vehicle 502 and the trajectory of other objects in the environment.
[0089] In some examples, the object trajectory component 540 determines a single planned trajectory for the vehicle 502 (e.g., based on planning data and map data received from the planning component 524 and the map 528), and can determine multiple trajectories of one or more other mobile objects (e.g., the vehicle 108) in the environment in which the vehicle 502 is operating. In some examples, the trajectory of another object can include any number of possible paths in which the object can travel from a current location (e.g., at the time of perception) and / or based on a direction of travel. Based on a determination that the agent is within a threshold distance or time from the vehicle 502, the object trajectory component 540 can determine a trajectory associated with the object. In some examples, the object trajectory component 540 can be configured to determine a possible trajectory for each detected mobile object in the environment.
[0090] In various examples, the action component 546 can determine one or more actions that the vehicle 502 should take based on the prediction and / or probability determination of the intersection between the vehicle 502 and another object (e.g., the vehicle 102) and other factors. The action can include slowing the vehicle to yield to the object, stopping the vehicle to yield to the object, changing lanes or turning left, or changing lanes or turning right, etc. Based on the determined action, the (one or more) vehicle computing devices 504 (such as through (one or more) system controllers 526) can cause the vehicle 502 to perform the action. In at least some examples, such an action can be based on a collision probability, which is determined by the probability component 544 based on multiple trajectories of the object, as described in detail. In various examples, in response to determining to adjust the lateral position of the vehicle, such as changing lanes to the left or right, the vehicle safety system 534 can cause the components 540-546 to generate an updated vehicle trajectory, draw additional object trajectories relative to the updated vehicle trajectory, determine an updated potential collision area, and perform a spatiotemporal overlap analysis to determine whether there may still be an intersection risk after the vehicle 502 performs the determined action.
[0091] In some examples, action component 546 can determine one or more actions for vehicle 502 to take based on receiving signals from model component 530. For example, model component 530 can determine the probability of intersection between vehicle 502 and one or more objects and generate signals for sending to action component 546.
[0092] It is understood that the components discussed herein (e.g., localization component 520, perception component 522, planning component 524, one or more system controllers 526, one or more maps 528, and vehicle safety system 534 including object trajectory component 540, intersection component 542, probability component 544, and action component 546) are described as being separate for illustrative purposes. However, the operations performed by the various components may be combined or performed in any other component.
[0093] In some cases, aspects of some or all of the components discussed herein may include any model, technique, and / or machine learning technique. For example, in some cases, the components in memory 518 (and memory 548 discussed below) may be implemented as a neural network.
[0094] As described herein, an exemplary neural network is a biologically inspired technique that passes input data through a series of connected layers to produce an output. Each layer in a neural network may also include another neural network, or may include any number of layers (whether convolutional or not). As can be understood in the context of the present disclosure, a neural network may utilize machine learning, which may refer to a broad class of such techniques that generate outputs based on learned parameters.
[0095] Although discussed in the context of neural networks, any type of machine learning consistent with the present disclosure may be used. For example, machine learning techniques may include, but are not limited to, regression techniques (e.g., ordinary least squares regression (OLSR), linear regression, logistic regression, stepwise regression, multivariate adaptive regression splines (MARS), local estimated scatter plot smoothing (LOESS)), instance-based techniques (e.g., ridge regression, least absolute shrinkage and selection operator (LASSO), elastic net, least angle regression (LARS)), decision tree techniques (e.g., classification and regression trees (CART), iterative dichotomy 3 (ID3), chi-squared automatic interaction detection (CHAID), decision stumps, conditional decision trees), Bayesian techniques (e.g., naive Bayes, Gaussian naive Bayes, multinomial naive Bayes, average one-dependence estimator (AODE), Bayesian belief network (BNN), Bayesian network), clustering techniques (e.g., k-means, k-median, expectation maximization (EM), hierarchical clustering), association rule learning techniques (e.g., k-means, k-median, expectation maximization (EM), hierarchical clustering), For example, perceptron, back propagation, Hopfield network, radial basis function network (RBFN), deep learning techniques (such as deep Boltzmann machine (DBM), deep belief network (DBN), convolutional neural network (CNN), stacked autoencoder), dimensionality reduction techniques (such as principal component analysis (PCA), principal component regression (PCR), partial least squares regression (PLSR), Samon mapping, multidimensional scaling (MDS), projection pursuit, linear discriminant analysis (LDA), hybrid discriminant analysis (MDA), quadratic discriminant analysis (QDA), flexible discriminant analysis (FDA)), integration techniques (such as Boosting, guided aggregation (Bagging), AdaBoost, stacked generalization (blending), gradient boosting machine (GBM), gradient boosting regression tree (GBRT), random forest), SVM (support vector machine), supervised learning, unsupervised learning, semi-supervised learning, etc. Other examples of architectures include neural networks such as ResNet50, ResNet101, VGG, DenseNet, PointNet, etc.
[0096] In at least one example, the sensor system(s) 506 may include a lidar sensor, a radar sensor, an ultrasonic transducer, a sonar sensor, a position sensor (e.g., GPS, compass, etc.), an inertial sensor (e.g., inertial measurement unit (IMU), accelerometer, magnetometer, gyroscope, etc.), a camera (e.g., RGB, IR, intensity, depth, time of flight, etc.), a microphone, a wheel encoder, an 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 a single lidar sensor located at a corner, front, back, side, and / or top of the vehicle 502. As another example, the camera sensor may include multiple cameras arranged 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 send sensor data to the one or more computing devices 550 over one or more networks 556 in near real time at a specific frequency, after a predetermined period of time has passed. In some examples, model component 530 can receive sensor data from one or more sensor systems 506 .
[0097] The vehicle 502 may also include one or more transmitters 508 for emitting light and / or sound. The transmitters 508 may include transmitters for internal audio and video to communicate with occupants of the vehicle 502. By way of example and not limitation, the internal transmitters may include speakers, lights, signs, display screens, touch screens, tactile transmitters (e.g., vibration and / or force feedback), mechanical actuators (e.g., seat belt tensioners, seat positioners, headrest positioners, etc.), etc. The transmitter(s) 508 may also include external transmitters. By way of example, but not limitation, the external transmitters may include lights for signaling a direction of travel or other indicators for indicating vehicle action (e.g., indicator lights, signs, light arrays, etc.), and one or more audio transmitters (e.g., speakers, speaker arrays, horns, etc.) for audio communication with pedestrians or other nearby vehicles, wherein the one or more audio transmitters include acoustic beam steering technology.
[0098] The vehicle 502 may also include one or more communication connections 510 for enabling communication between the vehicle 502 and one or more other local or remote computing devices. For example, the communication connection(s) 510 may facilitate communication with other local computing devices on the vehicle 502 and / or the drive system 514. Similarly, the communication connection(s) 510 may allow the vehicle to communicate with other nearby computing devices (e.g., remote computing device 550, other nearby vehicles, etc.) and / or one or more remote sensor systems 558 to receive sensor data. The communication connection 510 also enables the vehicle 502 to communicate with a remote control computing device or other remote services.
[0099] Communication connection(s) 510 may include physical and / or logical interfaces for connecting vehicle computing device 504 to another computing device or a network, such as network 556. For example, communication connection 510 may implement Wi-Fi-based communications, frequencies such as those defined by the IEEE 802.11 standard, short-range wireless frequencies (e.g., Bluetooth), cellular communications (e.g., 2G, 3G, 4G, 4G LTE, 5G, etc.), or any suitable wired or wireless communication protocol that enables the respective computing device to interface with other computing devices.
[0100] 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 respective drive systems 514 may be located at opposite ends of the vehicle 502 (e.g., front and rear, etc.). In at least one example, the drive system 514 may include one or more sensor systems to detect conditions of the drive system 514 and / or the environment surrounding the vehicle 502. By way of example and not limitation, the sensor system may include one or more wheel encoders (e.g., rotary encoders) to sense the rotation of the wheels of the drive system, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) to measure the orientation and acceleration of the drive system, cameras or other image sensors, ultrasonic sensors to acoustically detect objects around the drive system, lidar sensors, radar sensors, etc. Some sensors (such as wheel encoders) may be unique to the drive system 514. In some cases, the sensor system on the drive system 514 may overlap or complement the corresponding system (e.g., sensor system 506) of the vehicle 502.
[0101] The drive system 514 may include many vehicle systems, including a high-voltage battery, an electric motor for propelling the vehicle, an inverter for converting direct current from the battery into alternating current for use by other vehicle systems, a steering system including a steering motor and a steering rack (which may be electric), a braking system including a hydraulic or electric actuator, a suspension system including hydraulic and / or pneumatic components, a stability control system for distributing braking force to mitigate traction loss and maintain control, an HVAC system, lighting (e.g., lighting for illuminating the vehicle's exterior environment, such as headlights / taillights), and one or more other systems (e.g., cooling systems, safety systems, on-board charging systems, other electrical components, such as DC / DC converters, high-voltage connectors, high-voltage cables, charging systems, charging ports, etc.). In addition, the drive system 514 may include a drive system controller that may receive and pre-process data from a sensor system and control the operation of various vehicle systems. In some examples, the drive system controller may include one or more processors and a memory coupled to one or more processors in communication. The memory may store one or more modules to perform various functions 514 of the drive system. Additionally, the drive system 514 may also include one or more communication connections that enable the corresponding drive system to communicate with one or more other local or remote computing devices.
[0102] In at least one example, direct connection 512 can provide a physical interface to couple one or more drive systems 514 to the body of vehicle 502. For example, direct connection 512 can allow for the transfer of energy, fluids, air, data, etc. between drive system 514 and the vehicle. In some cases, direct connection 512 can further releasably secure drive system 514 to the body of vehicle 502.
[0103] In at least one example, the positioning component 520, the perception component 522, the planning component 524, the one or more system controllers 526, the one or more maps 528, and the model component 530 can process the sensor data, as described above, and can send their respective outputs to the computing device 550 via the one or more networks 556. In at least one example, the positioning component 520, the perception component 522, the planning component 524, the one or more system controllers 526, the one or more maps 528, and the model component 530 can send their respective outputs to the computing device 550 at a particular frequency, after a predetermined period of time has passed, in near real time, etc.
[0104] In some examples, vehicle 502 can send sensor data to computing device 550 via network 556. In some examples, vehicle 502 can receive sensor data from computing device 550 and / or remote sensor system 558 via network 556. The sensor data can include raw sensor data and / or processed sensor data and / or representations of sensor data. In some examples, the sensor data (raw or processed) can be sent and / or received as one or more log files.
[0105] Computing device 550 may include a processor 552 and a memory 548 storing a training component 554 .
[0106] In some cases, the training component 554 can include functionality to train the machine learning model to output values, parameters, and the like associated with one or more algorithms. For example, the training component 554 can receive data representing log data (e.g., publicly available data, sensor data, and / or a combination thereof) associated with a real-world environment. At least a portion of the log data can be used as an input for training the machine learning model. As a non-limiting example, sensor data, audio data, image data, map data, inertial data, vehicle state data, historical data (log data), or a combination thereof can be input into the machine learning model. Thus, by providing data of the vehicle traversing the environment, the training component 554 can be trained to output a vehicle trajectory that avoids objects in the real-world environment, as described herein.
[0107] In some examples, training component 554 can be implemented as training model component 530. Training data can include a variety of data, such as image data, video data, lidar data, radar data, audio data, other sensor data, observed object trajectories, labeled data (e.g., labeled collision data, labeled object intent data), etc., which are associated with values (e.g., desired classification, reasoning, prediction, etc.). Such data and associated values can generally be referred to as "ground truth". In such an example, training component 554 can determine the difference between the ground truth (e.g., training data) and the output of model component 530. Based at least in part on the difference, training of training component 554 can include changing the parameters of the machine learning model to minimize the difference to obtain a trained machine learning model, which is configured to determine potential intersections between objects in the environment and vehicle 502.
[0108] In various examples, during training, model component 530 can adjust weights, filters, connections between layers, and / or parameters for training each untrained neural network to predict potential intersections (or other tasks), as described herein. In some cases, model component 530 can use supervised or unsupervised training.
[0109] In some examples, training component 554 can include training data generated by a simulator. For example, simulated training data can represent examples of vehicles colliding with objects in the environment or nearly colliding with objects in the environment to provide additional training examples.
[0110] In some examples, the functionality provided by training component 554 may be included in and / or performed by vehicle computing device 504 .
[0111] Processor 516 of vehicle 502, processor 536 of vehicle safety system 534, and / or processor 552 of computing device 550 may be capable of executing instructions to process data and perform operations described herein. By way of example and not limitation, processors 516, 536, and 552 may include one or more central processing units (CPUs), graphics processing units (GPUs), or any other device or portion of a device that processes electronic data to convert the electronic data into other electronic data that can be stored in registers and / or memory. In some examples, integrated circuits (e.g., ASICs, etc.), gate arrays (e.g., FPGAs, etc.), and other hardware devices may also be considered processors as long as they are configured to execute coded instructions.
[0112] Memory 518, memory 538, and memory 548 are examples of non-transitory computer-readable media. Memory 518, memory 538, and / or memory 548 may store an operating system and one or more software applications, instructions, programs, and / or data to implement the methods described herein and the functions attributed to various systems. In various implementations, the 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 architecture, system, and various elements described herein may include many other logical, programmatic, and physical components, of which the components shown in the figures are merely examples relevant to the discussion herein.
[0113] In some cases, memory 518, memory 538, and memory 548 may include at least working memory and storage memory. For example, the working memory may be a high-speed memory (e.g., cache memory) of limited capacity for storing data to be operated by processors 516, 536, and / or 552. In some cases, memory 518, memory 538, and memory 548 may include storage memory, which may be a relatively large capacity, low-speed memory for long-term storage of data. In some cases, processors 516, 536, and / or 552 may not be able to directly operate on data stored in storage memory, and may need to load data into working memory to perform operations based on the data, as described herein.
[0114] It should be noted that although Figure 5 Although illustrated as a distributed system, in alternative embodiments, 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 functions associated with computing device 550, and vice versa. For example, vehicle 502 and / or computing device 550 may perform training operations associated with one or more models described herein.
[0115] Figure 6 is a flow chart depicting an exemplary process 600 for determining a vehicle trajectory using one or more example models. Part or all of process 600 may be performed by Figure 1-5 600 may be performed by one or more components of , as described herein. For example, some or all of process 600 may be performed by Figure 5 The vehicle computing device 504 and / or the computing device 550 are executed.
[0116] At operation 602, the process can include defining a first node of a decision tree to represent a first intention of an object relative to the autonomous vehicle and a second intention of the object relative to the autonomous vehicle. For example, the vehicle computing device 504 can implement a model component 530 to generate object trajectories for one or more objects in the vehicle's environment. In some examples, the object trajectories (e.g., the first object trajectory 112 and the second object trajectory 114) can cause the object to behave differently relative to the autonomous vehicle. In various examples, the object trajectories can be based at least in part on sensor data from a perception component 522 and map data from (one or more) maps 528. In some examples, the first intention and the second intention of the object can represent potential turning actions, or a level of reactivity of the object relative to the autonomous vehicle.
[0117] At operation 604, the process can include defining a second node of the decision tree to represent the first action of the autonomous vehicle. In some examples, the decision tree component 304 can determine the second node 316, the third node 318, or the fourth node 320 to represent the potential action of the autonomous vehicle (although a different number of vehicle actions (one or more) can be used in other embodiments). In some examples, the number of vehicle actions or nodes associated therewith can be determined based at least in part on the number of object intents.
[0118] At operation 606, the process may include defining a third node of the decision tree to represent a second action of the autonomous vehicle. For example, the decision tree component 304 can associate another potential action of the vehicle with another node of the decision tree 308 (e.g., the second node 316, the third node 318, or the fourth node 320).
[0119] At operation 608, the process may include determining a sample set to test the first intention of the object, the second intention of the object, the first action of the autonomous vehicle, and the second action of the autonomous vehicle. For example, the sample determination component 306 can be configured to determine a sample for identifying whether the vehicle and the object intersect based on the vehicle action and the object intention.
[0120] At operation 610, the process can include testing the sample set in a simulated scenario, the simulated scenario including an object taking a first action according to the first intent and taking a second action according to the second intent. For example, operation 610 can include the model component 104 applying a tree search algorithm to the decision tree 308, including identifying different paths through different nodes to simulate potential interactions. In some examples, the tree search algorithm can be determined by a machine learning model trained to improve cost gap distribution.
[0121] At operation 612, the process may include determining a vehicle trajectory that can be used to control the autonomous vehicle in a real environment based at least in part on one or more results of the test. For example, operation 612 may include determining the vehicle trajectory based at least in part on the lowest cost of traversing the decision tree (e.g., selecting the trajectory by the node combination that results in the lowest combined cost). In some examples, the model component 104 can send the vehicle trajectory to a vehicle computing device of the autonomous vehicle. In various examples, the vehicle computing device is configured to determine the trajectory of the vehicle (e.g., vehicle trajectory 116) based at least in part on the output. For example, the output from the model component 530 can be sent to the perception component 522 or the planning component 524, to name a few examples. In various examples, the vehicle computing device can control the operation of the vehicle, such as the planning component 524. The vehicle computing device can determine a final vehicle trajectory based at least in part on the vehicle trajectory, thereby improving vehicle safety by planning the likelihood that an object may intersect with the vehicle in the future. Additional details of controlling a vehicle using one or more outputs are discussed throughout the disclosure.
[0122] Figure 2 and Figure 6 Illustrated is an exemplary process according to an example of the present disclosure. These processes are illustrated as a logical flow chart, wherein each operation represents a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the operation represents a computer executable instruction stored on one or more computer-readable storage media, and when executed by one or more processors, the operation is performed. Typically, computer executable instructions include routines, programs, objects, components, data structures, etc. that perform specific functions or implement specific abstract data types. The order of describing the operations should not be understood as a limitation, and any number of the operations described can be omitted or combined in any order and / or in parallel to implement the process. In some examples, one or more operations of the method can be completely omitted. As an example and not a limitation, operations 602, 604, 608, and 610 can be performed without operations 606 and 612. In addition, the methods described herein can be combined with each other in whole or in part or with other methods.
[0123] The methods described herein represent a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, a block represents a computer-executable instruction stored on one or more computer-readable storage media that, when executed by one or more processors, performs the operations. Typically, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform specific functions or implement specific abstract data types. The order in which the operations are described should not be construed as limiting, and any number of the operations described may be omitted or combined in any order and / or in parallel to implement the processes.
[0124] The various techniques described herein can be implemented in the context of computer-executable instructions or software (such as program modules) that are stored in a computer-readable memory and executed by a processor of one or more computing devices, such as the computing devices shown in the figures. Typically, program modules include routines, programs, objects, components, data structures, etc., and define operating logic for performing specific tasks or implementing specific abstract data types.
[0125] Other architectures may be used to implement the described functionality and are intended to be within the scope of the present disclosure.In addition, although specific allocations of responsibilities are defined above for discussion purposes, the various functions and responsibilities may be allocated and divided in different ways depending on the circumstances.
[0126] Similarly, software can be stored and distributed in various ways and using different means, and the specific software storage and execution configuration described above can be changed in many different ways. Therefore, the software implementing the above technology can be distributed on various types of computer-readable media, and is not limited to the form of the memory specifically described.
[0127] Example clauses
[0128] Any example clause in this section may be used with any other example clause and / or any other embodiments or implementations described herein.
[0129] A: A system, comprising: one or more processors; and one or more non-transitory computer-readable media storing instructions executable by the one or more processors, wherein, when the instructions are executed, the one or more processors perform operations including: defining a first node of a decision tree to represent a first intention of an object relative to an autonomous vehicle and a second intention of the object relative to the autonomous vehicle; defining a second node of the decision tree to represent a first action of the autonomous vehicle; defining a third node of the decision tree to represent a second action of the autonomous vehicle; determining a sample set for testing the first intention of the object, the second intention of the object, the first action of the autonomous vehicle, and the second action of the autonomous vehicle; testing the sample set in a simulated scenario, including the object taking a first action according to the first intention and taking a second action according to the second intention; and determining a vehicle trajectory that can be used to control the autonomous vehicle in a real environment based at least in part on one or more results of the test.
[0130] B: The system in paragraph A, wherein the operation further includes: determining a cost of a sample in the sample set, wherein the cost represents an impact on the operation of the autonomous driving vehicle; and controlling the autonomous driving vehicle at least in part based on the cost.
[0131] C: The system of paragraph A or B, wherein determining the vehicle trajectory is based at least in part on applying a tree search algorithm to the decision tree.
[0132] D: The system of any of paragraphs AC, the operations further comprising: determining a number of branches of the decision tree based at least in part on a probability that processing an additional branch results in a vehicle trajectory determination having a lower cost than a cost associated with a previous vehicle trajectory determination.
[0133] E: A system of any of paragraphs AD, wherein: the first action or the second action represents one of the following: a giving way action, a straight action, a left turn action, a right turn action, a braking action, an acceleration action, a steering action, or a lane changing action, and the first intention or the second intention represents one of the following: a first possibility that the object reacts to the autonomous driving vehicle using the first behavior during the simulated scenario, a second possibility that the object reacts to the autonomous driving vehicle using the second behavior during the simulated scenario, or a third possibility that the object does not react to the autonomous driving vehicle during the simulated scenario.
[0134] F: One or more non-transitory computer-readable media storing instructions that, when executed, cause one or more processors to perform operations including: defining a decision tree to include a first node and a second node, the first node defining a proposed action to be taken by a vehicle at a future time, the second node being associated with an object intent at the future time; generating a simulation based at least in part on the decision tree, including the object taking an action in accordance with the object intent, the object intent representing a response of the object relative to the proposed action of the vehicle; and controlling the vehicle based at least in part on an output of the simulation.
[0135] G: One or more non-transitory computer-readable media in paragraph F, the operation further comprising: identifying a related object from a set of objects in the vehicle environment based at least in part on a relevance score, wherein the object is intended to be associated with the related object.
[0136] H: One or more non-transitory computer-readable media of paragraphs F or G, wherein the simulation includes a sample set that represents potential interactions between the vehicle and the object at future times based on the vehicle's control strategy and the object's intention, and the operation also includes: determining a cost for the samples in the sample set, the cost representing an impact on the operation of the vehicle; and controlling the vehicle based at least in part on the cost.
[0137] I: One or more non-transitory computer-readable media of any of paragraphs FH, wherein generating the simulation comprises: testing a set of samples in a simulated scenario, including testing each sample in the set of samples over a period of time.
[0138] J: One or more non-transitory computer-readable media of any of paragraphs FI, the operations further comprising: determining a number of branches of the decision tree based at least in part on a probability that processing an additional branch results in a vehicle trajectory determination having a lower cost than a cost associated with a previous vehicle trajectory determination.
[0139] K: One or more non-transitory computer-readable media of any one of paragraphs FJ, wherein: the action of the vehicle represents one of the following: a yielding action, a straight-moving action, a left turn action, a right turn action, a braking action, an accelerating action, a steering action, or a lane changing action.
[0140] L: One or more non-transitory computer-readable media of any of paragraphs FK, wherein: the object is intended to represent a first likelihood that the object reacts to the vehicle during the simulation or a second likelihood that the object does not react to the vehicle during the simulation.
[0141] M: One or more non-transitory computer-readable media of any one of paragraphs FL, the operation further comprising: defining a first node of the decision tree to represent the object intention; and defining a second node of the decision tree to represent the action of the vehicle.
[0142] N: One or more non-transitory computer-readable media of any of paragraphs FM, wherein the object intent is a first object intent, and the operation further comprises grouping the first object intent and a second object intent associated with the object in nodes of the decision tree, wherein controlling the vehicle is also based at least in part on applying a tree search algorithm to the nodes of the decision tree.
[0143] O: One or more non-transitory computer-readable media of any of paragraphs FN, the operation further comprising: determining a vehicle trajectory of the vehicle based at least in part on applying a tree search algorithm to the decision tree, and controlling the vehicle comprises navigating in an environment using the vehicle trajectory.
[0144] P: One or more non-transitory computer-readable media of any of paragraphs FO, wherein the object intent is a first object intent associated with a first object, and the operation further includes: defining the decision tree to include a third node associated with a second object intent, the second object intent being associated with a second object different from the first object; and determining a vehicle trajectory to control the vehicle based at least in part on applying a tree search algorithm to the third node of the decision tree.
[0145] Q: A method comprising: defining a decision tree to include a first node and a second node, the first node defining a proposed action to be taken by a vehicle at a future time, the second node being associated with an object intent at the future time; generating a simulation based at least in part on the decision tree, the simulation including the object taking an action based on the object intent, the object intent representing a response of the object relative to the proposed action of the vehicle; and controlling the vehicle based at least in part on an output of the simulation.
[0146] R: The method in paragraph Q also includes: identifying a related object from a set of objects in the environment of the vehicle, wherein the object is intended to be associated with the related object.
[0147] S: The method in paragraph Q or R, wherein: the action of the vehicle represents one of the following: giving way, moving straight, turning left, turning right, braking, accelerating, turning, or changing lanes.
[0148] T: The method of any of paragraphs QS, wherein: the object is intended to represent a first likelihood that the object will react to the vehicle during the simulation or a second likelihood that the object will not react to the vehicle during the simulation.
[0149] Although the exemplary clauses described below are described for a specific implementation, it should be understood that in the context of this document, the content of the exemplary clauses can also be implemented by a method, an apparatus, a system, a computer-readable medium, and / or another implementation. In addition, any one of the example ATs can be implemented alone or in combination with any other one or more examples in the example ATs.
[0150] in conclusion
[0151] While one or more embodiments of the technology described herein have been described, various alterations, additions, permutations, and equivalents are included within the scope of the technology described herein.
[0152] In the description of the embodiments, reference is made to the accompanying drawings that form a part of this document, which show specific embodiments of the claimed subject matter in an exemplary manner. It should be understood that other embodiments may be used, and changes or modifications, such as structural changes, may be made. These embodiments, changes or modifications do not necessarily deviate from the scope of the claimed subject matter. Although the steps herein may be presented in a certain order, in some cases, the order may be changed so that certain inputs are provided at different times or in different orders without changing the functionality of the system and method. The disclosed procedures may also be performed in different orders. In addition, the various calculations herein do not need to be performed in the order disclosed, and other examples of alternative orders using calculations may be easily implemented. In addition to reordering, calculations may also be decomposed into sub-calculations with the same results.
Claims
1. A method comprising: defining a decision tree to include a first node defining a proposed action to be taken by the vehicle at a future time and a second node associated with an object intent at the future time; generating a simulation based at least in part on the decision tree, the simulation including an object taking an action according to the object intent, the object intent representing a response of the object relative to the proposed action of the vehicle; and The vehicle is controlled based at least in part on an output of the simulation.
2. The method according to claim 1, further comprising: identifying related objects from a set of objects in an environment of the vehicle based at least in part on the relevance scores, Wherein, the object is intended to be associated with the related object.
3. The method according to any one of claims 1 or 2, wherein: The simulation includes a set of samples representing potential interactions between the vehicle and an object at a future time based on a control strategy of the vehicle and an intention of the object, and the method further includes: determining a cost for a sample in the sample set, the cost representing an impact on operation of the vehicle; and The vehicle is controlled based at least in part on the cost.
4. The method according to any one of claims 1 to 3, wherein: Generating the simulation includes: Testing the sample set in a simulated scenario includes testing each sample in the sample set over a period of time.
5. The method according to any one of claims 1 to 4, further comprising: The number of branches of the decision tree is determined based at least in part on a probability that processing an additional branch results in a vehicle trajectory determination having a lower cost than a cost associated with a previous vehicle trajectory determination.
6. The method according to any one of claims 1 to 5, wherein: The action of the vehicle represents one of the following: a yielding action, a straight-moving action, a left-turning action, a right-turning action, a braking action, an accelerating action, a steering action, or a lane-changing action.
7. The method according to any one of claims 1 to 6, wherein: The object is intended to represent a first possibility that the object reacts to the vehicle during the simulation using a first behavior during the simulation, a second possibility that the object reacts to the vehicle during the simulation using a second behavior during the simulation, or a third possibility that the object does not react to the vehicle during the simulation.
8. The method according to any one of claims 1 to 7, further comprising: defining a first node of the decision tree to represent the object intent; defining a second node of the decision tree to represent a first action of the vehicle; as well as A third node of the decision tree is defined to represent a second action of the vehicle.
9. The method according to any one of claims 1 to 8, wherein: The object intent is a first object intent, and the method further comprises: grouping the first object intent and a second object intent associated with the object in nodes of the decision tree, Wherein controlling the vehicle is also based at least in part on applying a tree search algorithm to the nodes of the decision tree.
10. The method according to any one of claims 1 to 9, further comprising: determining a vehicle trajectory for the vehicle based at least in part on applying a tree search algorithm to the decision tree, and Controlling the vehicle includes navigating an environment using the vehicle trajectory.
11. A method according to any one of claims 1 to 10, wherein The object intent is a first object intent associated with a first object, and the method further comprises: defining the decision tree to include a third node associated with a second object intent associated with a second object different from the first object; and A vehicle trajectory is determined to control the vehicle based at least in part on applying a tree search algorithm to the third node of the decision tree.
12. A computer program product comprising coded instructions which, when executed on a computer, implement the method according to any one of claims 1 to 11.
13. A system comprising: one or more processors; as well as One or more non-transitory computer-readable media storing instructions executable by the one or more processors, wherein the instructions, when executed, cause the one or more processors to perform operations including: defining a decision tree to include a first node defining a proposed action to be taken by the vehicle at a future time and a second node associated with an object intent at the future time; generating a simulation based at least in part on the decision tree, the simulation including an object taking an action according to the object intent, the object intent representing a response of the object relative to the proposed action of the vehicle; and The vehicle is controlled based at least in part on an output of the simulation.
14. The system of claim 13, wherein the operations further comprise: identifying related objects from a set of objects in an environment of the vehicle based at least in part on the relevance scores, Wherein, the object is intended to be associated with the related object.
15. A system according to any one of claims 13 or 14, wherein: The simulation includes a set of samples representing potential interactions between the vehicle and an object at a future time based on a control strategy of the vehicle and an intent of the object, and the operations further include: determining a cost for a sample in the sample set, the cost representing an impact on operation of the vehicle; and The vehicle is controlled based at least in part on the cost.
Citation Information
Patent Citations
Probabilistic heat maps for behavior prediction
US11055624B1
Relevant object detection
US11370424B1
Object relevance determination
US11772643B1
Dynamic object relevance determination
US12128887B1
Perception collision avoidance
US20200148201A1