Trajectory prediction based on decision trees
The decision tree-based approach for vehicle trajectory prediction in autonomous vehicles addresses the challenge of object intents and interactions, enhancing safety by optimizing trajectory planning and reducing collision risks through improved interaction evaluation.
Patent Information
- Application Number
- JP2025513032
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-08-31
- Filing Date
- 2023-08-30
- Publication Date
- 2025-09-17
AI Technical Summary
Existing machine learning models for predicting vehicle trajectories in autonomous vehicles do not adequately account for object intents and interactions, leading to potential safety risks due to inaccurate trajectory planning.
A decision tree-based approach that generates nodes representing object intents and vehicle actions, using a tree search algorithm to optimize vehicle trajectory predictions by considering object responsiveness and uncertainty, allowing for continuous updates and improved safety through enhanced interaction evaluation.
Enhances vehicle safety by accurately predicting object trajectories and interactions, enabling safer navigation by accounting for object intents and responsiveness, thereby improving decision-making and reducing the likelihood of collisions.
Smart Images

Figure 2025530784000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to decision tree based trajectory prediction. [Background technology]
[0002] Machine learning models can be used to predict actions of various robotic devices. For example, planning systems for autonomous and semi-autonomous vehicles determine actions that the vehicle should take in its operating environment. Vehicle actions can be determined in part based on avoiding objects present in the environment. For example, actions may be generated to yield to pedestrians, change lanes to avoid other vehicles on the road, or the like. Accurately predicting future object trajectories can be used to safely drive the vehicle in the vicinity of the object. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] U.S. Patent Application Serial No. 15 / 807,521 [Patent Document 2] U.S. Patent Application Serial No. 17 / 681,461 [Patent Document 3] U.S. Patent Application Serial No. 17 / 535,357 [Patent Document 4] U.S. Patent Application Serial No. 16 / 530,515 [Patent Document 5] U.S. Patent Application Serial No. 16 / 417,260 [Patent Document 6] U.S. Patent Application Serial No. 16 / 389,720 [Patent Document 7] U.S. Patent Application Serial No. 16 / 189,726 [Brief explanation of the drawings]
[0004] The detailed description will be set forth with reference to the accompanying drawings, in which the leftmost digit(s) of a reference number identifies the figure in which the reference number first appears, and the use of the same reference number in different figures indicates similar or identical components or features.
[0005] [Figure 1] FIG. 1 is a diagram of an exemplary environment in which an exemplary vehicle applies a model to predict the occupancy of one or more exemplary objects at a future time. [Figure 2] 1 is a pictorial flow diagram of an exemplary process for controlling an exemplary vehicle based on occupancy prediction output from a model. [Figure 3] FIG. 1 is an exemplary block diagram of an exemplary computer architecture for implementing the exemplary decision tree generating techniques described herein. [Figure 4] FIG. 1 is an exemplary block diagram of an exemplary computer architecture for implementing techniques for evaluating outputs by exemplary decision trees described herein. [Figure 5] FIG. 1 is a block diagram of an example system for implementing the techniques described herein. [Figure 6] 1 is a flowchart illustrating an example process for determining a vehicle trajectory using one or more example models. DETAILED DESCRIPTION OF THE INVENTION
[0006] This application describes techniques for determining a vehicle trajectory for a vehicle relative to one or more objects in an environment. A computing device can generate a decision tree having nodes to represent different object intents and / or nodes to represent vehicle actions at future times. A tree search algorithm can search the decision tree to evaluate potential interactions between the vehicle and one or more objects over a period of time. The tree search algorithm can be optimized to generate an output (e.g., a vehicle trajectory) after exploring a certain number of branches, nodes, or scenarios, and to determine whether to continue exploring additional portions of the decision tree and / or generate new branches or nodes of the decision tree to continuously update the vehicle trajectory prediction. By using the decision trees described herein, object intent (e.g., the level of attentiveness of an object in response to the vehicle) can be considered during vehicle planning, thereby improving vehicle safety as the vehicle navigates through an environment by planning the likelihood that an object may intersect with the vehicle.
[0007] Generating a decision tree may include the computing device determining whether to add, remove, or modify nodes, branches, etc. of the decision tree (e.g., before or during application of the tree search algorithm). In some examples, the computing device may receive data (e.g., sensor data, map data, object state data, vehicle state data, control policy data, etc.) and determine multiple object trajectories that an object may take in the future. For each object trajectory, the computing device may output an occupancy map at various time intervals (e.g., every 0.1 seconds over an 8-second period), thereby capturing the "local" uncertainty of the object's position at different times in the future. The decision tree may represent potential interactions between a vehicle and an object by considering potential actions by the object, including predetermining the object's level of responsiveness or attentiveness to the vehicle when performing the potential action. In some examples, the computing device may output a distribution of data representing object behavior over time throughout multiple scenarios and determine a vehicle trajectory based at least in part on the distribution of data.
[0008] In various examples, the computing device can determine a set of samples, or conditions, to consider during a scenario. For example, the set of samples can represent control policies for vehicles and / or objects in the environment, as well as traffic rules, traffic light information, or other map features of the environment. In some examples, the set of samples can represent object attributes (e.g., position, class, speed, acceleration, yaw, turn signal status, etc.), object history (e.g., location history, speed history, etc.), vehicle attributes (e.g., speed, position, etc.), crosswalk permissions, traffic light permissions, and the like. The set of samples can be associated with nodes of a decision tree to adapt the scenario to at least some conditions. Thus, the decision tree can represent a scenario including information associated with the set of samples to determine intersections with potential objects and, optionally, vehicle trajectories to avoid the potential intersections.
[0009] In some examples, a computing device may implement a model component including one or more machine-learned models to predict future characteristics (e.g., states, actions, etc.) of objects (e.g., bicycles, pedestrians, other vehicles, animals, etc.) that may affect the operation of the autonomous vehicle. For example, the machine-learned models may determine multiple trajectories (e.g., direction, speed, and / or acceleration) that an object should follow in an environment at a future time. In such examples, the vehicle computing device of the autonomous vehicle may predict candidate trajectories for the vehicle (using the same or different models) while considering output from the machine-learning models (e.g., object trajectories), 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., intersect with the trajectory of the autonomous vehicle, cause the autonomous vehicle to suddenly swerve or brake, etc.).
[0010] In some examples, the model component may implement a decision tree that evaluates future positions of multiple objects (at least one object having multiple object intents) in the simulated environment to determine a response by the vehicle to the objects, including various levels of responsiveness by one or more of the objects. In some examples, the vehicle computing device may control the vehicle in the real-world environment based at least in part on the response.
[0011] In some examples, the model component may receive data associated with one or more objects in the environment to generate a decision tree. For example, the model component may receive (or, in some examples, determine) 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 at various times. In various examples, the model component may determine braking, steering, or acceleration rates for the object to drive in the environment and / or take actions with respect to the vehicle based at least in part on the data. For example, objects may be associated with different thresholds for maximum braking, maximum acceleration, maximum steering speed, and the like, thereby capturing different potential behaviors by the objects (e.g., objects may react with different levels of attentiveness to the vehicle).
[0012] In various examples, the decision tree can determine an action to be taken by the vehicle while driving (e.g., a trajectory to use to control the vehicle) based on one or more outputs by the decision tree. For example, the decision tree can include nodes of potential vehicle actions. The actions can include a reference action (e.g., one of a group of maneuvers that the vehicle is configured to perform in response to a dynamic driving environment), such as a right lane change, a left lane change, staying within the lane, going around an obstacle (e.g., a double-parked vehicle, a group of pedestrians, etc.), or the like. The actions can further include sub-actions, such as a speed change (e.g., maintaining speed, accelerating, decelerating, etc.), a position change (e.g., changing position within the lane), or the like. For example, the actions can include staying within the lane (action) and adjusting the vehicle's position within the lane from a center position to driving on the left side of the lane (sub-action).
[0013] For each applicable action and sub-action, the vehicle computing system may implement different models and / or components to simulate a future state (e.g., an estimated state) by projecting the autonomous vehicle and associated objects forward in the environment for a time period (e.g., 5 seconds, 8 seconds, 12 seconds, etc.). The model may project the object forward (e.g., estimate the object's future position) based on a predicted trajectory associated with it. The model may predict the vehicle's trajectory and predict attributes for the vehicle, including whether the trajectory will be used by the vehicle to arrive at a future predicted location. The vehicle computing device may project the vehicle forward (e.g., estimate the vehicle's future position) based on the vehicle trajectory or the actions output by the model (while considering multiple object intents). The estimated state may represent the estimated position (e.g., estimated location) of the autonomous vehicle and the estimated positions of the associated objects at a future time. In some examples, the vehicle computing device may determine relative data between the autonomous vehicle and the object in the estimated state. In such examples, the relative data may include distance, location, speed, direction of movement, 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 Hertz, 20 Hertz, 50 Hertz, etc.) In at least one example, the estimated state may be performed at a 10 Hertz rate (e.g., 80 estimated intents over an 8 second period).
[0014] In various examples, the vehicle computing system may store sensor data associated with the object's actual location at the end of the set of estimated states (e.g., the end of the time period) and use this data as training data for training one or more models. For example, the stored sensor data (or sensory data derived therefrom) may be retrieved by a model and used as input data to identify object cues (e.g., identify features, attributes, or postures of the object). Furthermore, detected positions over such time periods associated with the object may be used to determine a ground truth trajectory to associate with the object. In some examples, the vehicle computing device may provide 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, actual location, yaw, speed, acceleration, direction of movement, or the like, of the object at the end of the set of estimated states. In some such examples, ground truth data associated with one or more of the position, trajectory, acceleration, direction, etc. may be determined (manually labeled or determined by another machine-learned model), and such ground truth data may be used to determine the object's trajectory. In some examples, the corresponding data may be input into a model to determine an output (e.g., a trajectory), and the difference between the determined output and the actual action (or actual trajectory) by the object may be used to train the model.
[0015] The machine-learned model may be configured to determine an initial position for each of the objects in the environment (e.g., the physical domain and / or simulated environment in which the vehicle operates) indicated by the sensor data. Each of the determined or predicted trajectories may represent potential directions, speeds, and accelerations along which the object may move through the environment. The object trajectories predicted by the models described herein may be based on passive predictions (e.g., independent of actions taken by the vehicle and / or other objects in the environment, substantially unresponsive to the actions of the vehicle and / or other objects, etc.), active predictions (e.g., based on reactions to the actions of the vehicle and / or other objects in the environment), or a combination thereof.
[0016] As described herein, a model may refer to a machine-learned model, a statistical model, a heuristic model, or a combination thereof. That is, a model may refer to a machine-learned model that learns from a training dataset to improve the accuracy of its 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.
[0017] The techniques discussed herein may improve the functionality of vehicle computing systems in several ways. The vehicle computing system may determine actions for an autonomous vehicle to take based on object trajectories and object intents (e.g., separate reaction thresholds for different object intents that can be tested independently) that affect how an object "responds" to the vehicle, to identify unlikely actions by an object that may not otherwise be considered if taken by the object (e.g., in a system that considers only the most likely actions by an object). In some examples, using the trajectory prediction techniques described herein, a model may output a vehicle trajectory based on a decision tree representing object intent, improving safe vehicle operation by accurately characterizing object movement in more detail compared to previous models.
[0018] The techniques discussed herein can also improve the functionality of computing devices in several additional ways. In some cases, evaluating model outputs may enable an autonomous vehicle to generate more accurate and / or safer trajectories for moving around an environment. In at least some examples described herein, decision tree-based predictions may account for dependencies between objects, resulting in safer decision-making for the system. These and other improvements to the functionality of computing devices are discussed herein.
[0019] The methods, apparatus, and systems described herein can be implemented in several ways. Exemplary implementations are presented below with reference to the following figures. While discussed in some examples below in the context of autonomous vehicles, the methods, apparatus, and systems described herein can be applied to a variety of systems. In one example, machine-learned models may be utilized in driver-controlled vehicles, where such systems may provide indications of whether it is safe to perform various maneuvers. In another example, the methods, apparatus, and systems can be utilized in the context of aviation, navigation, manufacturing, agriculture, etc. Additionally or alternatively, the techniques described herein can be used with real data (e.g., captured using sensors), simulated data (e.g., generated by a simulator), or any combination thereof.
[0020] FIG. 1 illustrates an autonomous vehicle (vehicle 102) in an example environment 100 in which an example model component 104 may process input data to predict a vehicle trajectory. As shown, vehicle 102 includes model component 104, which represents one or more machine-learned 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 environment 100, to determine output data 106 representing potential object trajectories, object intent, occupancy maps, and / or vehicle trajectories. In some examples, the prediction techniques described herein may be implemented at least in part by or in conjunction with a vehicle computing device (e.g., vehicle computing device 504) and / or a remote computing device (e.g., computing device 550). In general, object intent may represent how an object may react to other objects or vehicles in a simulated environment and / or a real-world environment. Throughout this disclosure, such object intent may comprise a set (e.g., zero, one, or more) of potential object responses to environmental conditions (which may include actions of the autonomous vehicle).
[0021] In some cases, vehicle 102 may be an autonomous vehicle configured to operate according to a Level 5 classification issued by the National Highway Traffic Safety Administration, which describes a vehicle capable of performing all safety-critical functions on every trip, and in which a driver (or passenger) is not expected to control the vehicle at any time, although in other examples, vehicle 102 may be a fully autonomous or partially autonomous vehicle having some other level or classification.
[0022] In some 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 the objects based on sensor data received from one or more sensors. In some examples, the sensors may include sensors onboard vehicle 102, including, without limitation, ultrasonic sensors, radar sensors, light detection and ranging (LIDAR) sensors, cameras, microphones, inertial sensors (e.g., inertial measurement units, accelerometers, gyros, etc.), global positioning satellite (GPS) sensors, and the like. In various examples, vehicle 102 may be configured to transmit 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.
[0023] In various examples, the vehicle computing device may receive sensor data and semantically classify detected objects (e.g., determine object type), such as whether the object is a vehicle, such as object 108, a pedestrian, such as object 110, a building, a truck, a motorcycle, a moped, or the like. The objects may include static objects (e.g., buildings, bridges, signs, etc.) and dynamic objects, such as other vehicles, pedestrians, bicyclists, etc. In some examples, the classification may include other vehicles (e.g., cars, pickup trucks, semi-trailer trucks, tractors, buses, trains, etc.), pedestrians, children, bicyclists, skateboarders, horse riders, animals, or the like. In various examples, the object classification may be used by a model to determine object characteristics (e.g., top speed, acceleration, maneuverability, etc.). In this manner, potential trajectories by the object may be considered based on the object's characteristics (e.g., how the object may potentially move in the environment).
[0024] Generally, the model component 104 provides functionality for determining a first object trajectory 112 and a second object trajectory 114 associated with the object 108, as well as functionality for determining a vehicle trajectory 116 associated with the vehicle 102. The model component 104 may also, or instead, predict occupancy maps 118A, 118B, ..., 118N (collectively "occupancy maps 118"), where N is an integer, and / or may predict occupancy maps 120A, 120B, ..., 120N (collectively "occupancy maps 120"), where N is an integer. For example, the model component 104 may output one or more trajectories, object intents, etc. that can be used in a simulation (also referred to as a scenario or estimated state) to determine a response by the vehicle 102 to the object. In some examples, the model component 104 may generate output data 106 to represent one or more heat maps. In some examples, one or more predicted trajectories may be determined or represented using probabilistic heat maps for predicting object behavior, such as those described in U.S. Patent Application Publication No. 2017 / 0129999, entitled "Probabilistic Heat Maps for Behavior Prediction," filed November 8, 2017, which is incorporated by reference in its entirety and for all purposes.
[0025] In some examples, the vehicle computing device may determine a first confidence level (e.g., 70% confidence level) that the object 108 will follow the first object trajectory 112 and a second confidence level (e.g., 30% confidence level) that the object 108 will follow the second object trajectory 114. The confidence values may also, or instead, be associated with the occupancy map 118 and / or the occupancy map 120. The confidence values may be used to evaluate a potential interaction 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 by the object 108).
[0026] In some examples, model component 104 may be configured to receive input data representing features of the environment (e.g., roadways, crosswalks, buildings, etc.), the current state of objects (e.g., vehicle 108 and / or pedestrians 110), and / or the current state of vehicle 102. Further details about inputs to model component 104 are presented throughout this disclosure.
[0027] In some examples, model component 104 may represent one or more machine-learned models configured to determine one or more trajectories, occupancy maps, or intentions of additional objects, such as pedestrian 110. For example, model component 104 may predict that the most likely trajectory of pedestrian 110 is to remain off the roadway, but model component 104 may also predict that pedestrian 110 will follow another object trajectory that will cause pedestrian 110 to enter the roadway in front of vehicle 102. Vehicle 102 may prepare for pedestrian 110 entering the roadway by determining a vehicle trajectory that takes into account multiple object trajectories or intentions as part of a decision tree, as described herein.
[0028] Further details regarding predicting object behavior using machine-learned models are described in U.S. Patent Application Publication No. 2022 / 0232949, entitled "Generating Predictions Based On Object Type," filed February 22, 2022, which is incorporated herein by reference in its entirety for all purposes. Further details regarding predicting object location using machine-learned models are described in U.S. Patent Application Publication No. 2021 / 0132949, entitled "Encoding Relative Object Information Into Node Edge Features," filed November 24, 2021, which is incorporated herein by reference in its entirety for all purposes.
[0029] The output data 106 from the model component 104 can be used in various ways by the vehicle computing device. For example, information about object trajectories, object intent, and / or sampling conditions can be used by a planning component of the vehicle computing device to control the vehicle 102 within the environment 100 (e.g., determine a trajectory and / or control a propulsion system, a braking system, or a steering system). The output data 106 may also, or instead, be used to perform a simulation by setting conditions (e.g., intersections, number of objects, likelihood of objects exhibiting anomalous behavior, etc.) for use during a simulation, such as to test responses by vehicle safety systems.
[0030] 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 perform functions associated with various nodes and subnodes to identify a path between nodes with the lowest cost among various paths (e.g., including different nodes for representing object intents, object trajectories, or vehicle actions). The set of samples can test various potential interactions between the vehicle 102 and objects in the environment 100. For example, the samples in the set of samples can represent instantiations of an object intent, which may be multiple potential intents for 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., that exhibit the same object position and object velocity at the end of each test of the samples in the set of samples. For example, a first node of a decision tree can include an object intent (e.g., turn left) associated with an object, and a second node can include a set of object intents associated with the object. In some examples, multiple object intentions in the set of object intentions may contain the same intention, such as an object going straight ahead in the future.
[0031] In some examples, a first object intent of a first object can be associated with a first node, and a second object intent of a second object can be associated with a second node (e.g., a decision tree can include two or more objects, each having one or more intents). Further details for determining nodes and samples are discussed throughout this disclosure.
[0032] A training component of a remote computing device, such as computing device 550 (not shown) and / or vehicle computing device 504 (not shown), may be implemented to train the model component 104. The training data may include a wide variety of data, such as image data, video data, LIDAR data, radar data, audio data, other sensor data, etc., associated with a value (e.g., a desired classification, inference, prediction, etc.). In some examples, the training data may include decisions 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, and the like. Such training data may generally be referred to as “ground truth.” To illustrate, the training data may be used for image classification and thus may include images of an environment, the images captured by an autonomous vehicle, and associated with one or more classifications. In some examples, such classifications may be based on user input (e.g., user input indicating that an image depicts a particular type of object) or the output of another machine-learned model. In some examples, such labeled classifications (or more generally, labeled outputs associated with training data) may be referred to as ground truth. Training the model component 104 can improve vehicle trajectory determination over time by learning how to construct decision trees to yield optimized results.
[0033] 2 is a pictorial flow diagram of an example process 200 for controlling a vehicle (e.g., vehicle 102 or vehicle 502) based on an occupancy prediction output from a model. The example process 200 may be implemented by a computing device such as vehicle computing device 504 and / or vehicle safety system 534 of FIG. 5. In some examples, the techniques described in connection with FIG. 2 may be performed as vehicle 102 navigates through environment 100 (e.g., a real-world environment or a simulated environment).
[0034] Operation 202 may include defining nodes of a decision tree to represent vehicle actions and intentions by objects in the environment. In some examples, defining the nodes may include generating nodes to represent multiple object intentions. For example, a first node of the decision tree (or its object intention) may represent a characteristic (e.g., a state or action) of an object, such as one or more of a yield action, a go straight action, a left turn action, a right turn action, a brake action, an accelerate action, a steering action, or a lane change action, and a second node may represent an action or state associated with the vehicle 102 (e.g., one of a yield action, a go straight action, a left turn action, a right turn action, a brake action, an accelerate action, a steering action, or a lane change action).
[0035] In some examples, the operation 202 may include the vehicle 102 implementing the 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 may represent one or more objects (e.g., the vehicle 108) in an environment 204 (e.g., a simulated environment or a real-world environment). In various examples, the environment 204 may correspond to the environment 100 of FIG. 1. For example, additional nodes may represent actions, states, and / or intents of additional objects, etc. In some examples, a single node may represent potential interactions between two or more objects with each other and / or with the vehicle.
[0036] In various examples, the computing device can generate a decision tree based at least in part on state data associated with the vehicles and / or objects. The state data can include data describing objects (e.g., vehicles 108, pedestrians 110 of FIG. 1 ) and / or vehicles (e.g., vehicle 102) in an environment, such as exemplary environment 100. The state data, in various examples, can include one or more of position data, orientation data, heading data, velocity data, speed data, acceleration data, yaw rate data, or turning rate data associated with the objects and / or vehicles.
[0037] Operation 206 may include determining an uncertainty associated with a future object position. For example, operation 206 may include vehicle 102 implementing model component 104 to receive one or more object trajectories usable to determine occupancy maps 118 and / or occupancy maps 120 associated with object 108 at different times in the future. In various examples, occupancy maps 118 and / or occupancy maps 120 may represent future object positions at various times in the future.
[0038] Operation 208 may include determining a set of samples representing potential interactions between the vehicle and the object. For example, operation 208 may include the vehicle 102 implementing the model component 104 to determine data representing vehicle control policies, object control policies, map data, environmental data, and the like, and transmitting the data to the model component 104 for inclusion in the decision tree. Thus, the set of samples may model potential interactions that may include different object intentions that result in different future actions by the vehicle 102. The samples in the set of samples may, for example, represent individual selections or combinations of potential interactions from various sets of possibilities (e.g., a particular scenario having a street intersection, traffic rules, multiple objects with different intentions, etc.). Each of the samples in the set of samples may represent different types of object behaviors, for example, to capture potential actions by the object that are both likely (e.g., the object going straight) and unlikely (e.g., the object turning abruptly in front of the vehicle). Thus, collectively determining responses to a set of samples can capture a variety of object behaviors and vehicle actions that can improve decisions based on the set of samples.
[0039] Operation 210 may include determining, for each sample in the set of samples, a vehicle action (or reaction) relative to the object's intent. For example, operation 210 may include vehicle 102 implementing model component 104 to determine a vehicle trajectory for each sample scenario in the set of samples. Model component 104 may, for example, determine a first vehicle trajectory 212 associated with a first sample and a second vehicle trajectory 214 associated with a second sample.
[0040] Operation 216 can include controlling vehicle operation based on the aggregated vehicle responses. For example, operation 216 can include the vehicle computing device determining a cost for each sample in the set of samples and aggregating the costs (e.g., 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 the lowest cost for traversing the decision tree.
[0041] 3 shows an example block diagram 300 of an example computer architecture for implementing the example decision tree generating techniques described herein. The example 300 includes a computing device 302 (e.g., vehicle computing device 504 and / or computing device 550) that includes the model component 104 of FIG. 1. In some examples, the techniques described in connection with FIG. 3 can be performed as the vehicle 102 navigates through the environment 100.
[0042] As depicted in FIG. 3 , 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 the nodes of the decision tree 308, including determining the number of nodes and / or the type of intent, adding nodes, removing nodes, etc. The sample determination component 306 can be configured to determine a sample to identify whether a vehicle and an object intersect. The decision tree 308 includes one or more object intentions 310 (e.g., future actions) and one or more vehicle actions 312 (e.g., a turn action, a braking action, an acceleration action, such as the object yielding or slowing down to safely get in front of the vehicle). The object intention can represent a level of attentiveness of the object, such as whether the object responds to the vehicle with a first level of responsiveness, a second level of responsiveness, or possibly not responding to the vehicle in the sample. In various examples, different levels of responsiveness can be associated with separate maximum thresholds for the object to accelerate, brake, or steer. The object intent 310 may include, for example, one or more of: a) a reactive intent, such as the object changing lanes, braking, accelerating, or slowing down relative to the vehicle; b) a nominal intent, such as the object changing lanes, braking, accelerating, or slowing down less aggressively than a reactive intent, such as slowing down to allow the vehicle to change lanes; c) an un-attentive intent, such as the object refraining from reacting to the vehicle; d) a right turn intent; e) a left turn intent; f) a straight ahead intent; g) an accelerating intent; h) a slowing down intent; i) a parking intent; j) an intent to stay in place; etc.
[0043] In some examples, the object intent of the decision tree 308 can be associated with the object most relevant to the vehicle. For example, the decision tree component 304 can accept one or more objects determined to be relevant to the vehicle by another machine-learned model configured to identify relevant objects from among a set of objects in the vehicle's environment. The machine-learned model can determine the relevant objects based at least in part on relevance scores associated with each of the objects in the set of objects and / or objects within a threshold distance from the vehicle. Further examples of determining object relevance are described in U.S. Patent No. 6,239,492, filed August 2, 2019, entitled "Relevant Object Detection," U.S. Patent No. 6,239,492, filed May 30, 2019, entitled "Object Relevance Determination," and U.S. Patent No. 6,239,492, filed May 6, 2019, entitled "Dynamic Object Relevance Determination," all of which are incorporated by reference in their entirety for all purposes.
[0044] In some examples, nodes of the decision tree 308 can be associated with one or more regions surrounding the vehicle (e.g., regions that are most likely to contain potential intersections with the object). For example, the decision tree component 304 can accept one or more regions by the model component 104 configured to identify relevant regions from among a set of regions in the vehicle's environment or by another machine-learned model. For example, the decision tree can include nodes to represent occlusion regions, regions ahead of the vehicle, or other regions within a predetermined distance of the vehicle. In some examples, the vehicle is a bidirectional vehicle, and thus the model component 104 can define, identify, or otherwise determine a rear region relative to the direction of travel as the vehicle navigates through the environment. For example, the rear region of the vehicle can change depending on the direction of travel. In at least some examples, the environment may be encoded as a vector representation and output from the machine-learned model as an embedding. Such embeddings may be used in predicting the future state or intention of the object.
[0045] 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, although other numbers of nodes are possible. For example, the first node 314 may include four different object intentions depicted with different shading. The second node 316, the third node 318, and the fourth node 320 may be associated with corresponding vehicle actions (e.g., proposed actions or actions the vehicle will take in the future). In various examples, the second node 316, the third node 318, and / or the fourth node 320 may represent actions to apply to the vehicle over a period of time.
[0046] In the illustrated example, intents grouped together may elicit similar or identical responses from the vehicle and / or may have a substantially similar probability / confidence / likelihood of occurrence. As illustrated, taking a particular action by the vehicle may help differentiate object responses as illustrated by changing the grouping of object intents in response to the vehicle's action. Further differentiating object intents may, in some examples, result in a better response by the vehicle to the environment (e.g., safer, more efficient, more comfortable, etc.).
[0047] The decision tree 308 is associated with time periods, as shown in Figure 3. For example, time T0 represents a first time in the decision tree 308 and is generally associated with a first node 314 and a second node 316. Each progression of the decision tree 308 to a new node does not necessarily imply a new time (e.g., T0, T1, etc. are not to the same scale as the nodes in Figure 3, but are used to roughly indicate the progression of time). In some examples, each of the layers of the decision tree can be associated with a particular time (e.g., 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, etc., for additional branches or nodes (not shown) up to time T, 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 executed in parallel on one or more processors (e.g., a graphics processing unit (GPU) and / or a tensor processing unit (TPU)).
[0048] In some examples, at time T1, the vehicle takes the action associated with the third node 318 at the fifth node 322, followed by additional scenarios to test how the vehicle responds to the four object intents at the fifth node 322. In this manner, the fifth node 322 can represent multiple scenarios over a period of time. Further, the decision tree 308 can represent the vehicle's action associated with the second node 316, and at time T1, additional tests can be performed to determine how the vehicle responds to the object intent at the sixth node 324 (e.g., a left turn intent) and the three object intents at the seventh node 326. In some examples, the three object intents at the seventh node 326 may have the same outcome, such as the object having a straight-ahead intent, but each straight-ahead intent may be associated with a different level of response (e.g., different speed, acceleration, and / or braking ability) for the vehicle. In various examples, the sixth node 324 (or another node with a single object intent) allows for evaluation of a particular object intent (e.g., a left turn, which is less likely than the object continuing straight and not turning left) for vehicle trajectory determination.
[0049] In various examples, additional tests (scenarios) can be performed to determine how different vehicle actions at the fourth node 320 cause the vehicle to respond to the two object intents at the eighth node 328 and the two object intents at the ninth node 330.
[0050] 3, nodes that are temporally after the vehicle action (e.g., nodes 316, 318, and 320) can be considered subnodes or child nodes, and it should be noted that the total number of object intentions among the subnodes is equal to the quantity of object intentions in the first node 314. For example, the sixth node 324 and the seventh node 326 have a combined total of four object intentions, which is equal to the four object intentions in the first node 314. However, in other examples, object intentions may vary among nodes, and the number of object intentions may also vary from node to node (e.g., may be more or less than the number of object intentions in the first node of the decision tree).
[0051] In some examples, additional nodes (not shown) in the decision tree 308 may be explored to test different object intents or groups of object intents. For example, at time T2, a new set of samples and / or a new set of object intents may 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, a new combination of object intents may be assigned to a node by the model component 104 to further consider different object actions when determining the vehicle trajectory. By accepting a new set of samples that differs from the set of samples used in the previous node, the node of the decision tree 308 can be dynamically "resampling," for example, during tree exploration.
[0052] In various examples, the decision tree component 304 may generate the decision tree 308 based at least in part on one or more of attributes of the object 108 (e.g., position, velocity, acceleration, yaw, etc.), history of the object 108 (e.g., location history, speed history, etc.), attributes of the vehicle 102 (e.g., speed, position, etc.), and / or features of the environment (e.g., road boundaries, road centerlines, crosswalk permissions, traffic light permissions, and the like). In some examples, the nodes of the decision tree 308 may be associated with various costs (e.g., comfort cost, safety cost, distance cost, braking cost, obstacle cost, etc.) that can be used to determine potential intersections between future vehicles and objects.
[0053] In some examples, the computing device 302 can implement the decision tree component 304 to generate a decision tree 308 based at least in part on state data associated with a vehicle and one or more objects in the environment. The state data can include data describing objects (e.g., vehicle 108, pedestrian 110 of FIG. 1 ) and / or vehicles (e.g., vehicle 102) in an environment, such as exemplary environment 100. The state data can include one or more of position data, orientation data, heading data, velocity data, speed data, acceleration data, yaw rate data, or turning rate data associated with the object and / or vehicle.
[0054] 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 (e.g., samples for testing object intents, vehicle actions, etc.) to execute in association with individual nodes of the decision tree 308. In a non-limiting example, the sample determination component 306 can identify samples for testing three object intents of the seventh node 326 in response to the vehicle action of the second node 316.
[0055] In various examples, the decision tree component 304 and / or the sample determination component 306 can assign a certain 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 for the seventh node 326 and one object intent for the sixth node 324. In such an example, the object intents for the seventh node 326 can be considered together before determining the vehicle trajectory based on the output by 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 instead, assign intents to one or more regions to indicate the intents, if any, of the objects within the region. An occluded region can be associated with various possible object intents that may emerge from the occluded region at a later time.
[0056] In some examples, a cost associated with a node, sample, or scenario (e.g., the cost for a vehicle to perform an action) can be compared to a risk threshold, and when the cost is less than the risk threshold, a vehicle trajectory can be output for use by the vehicle computing device. In some examples, the decision tree component 304 can aggregate costs associated with nodes, samples, or scenarios and determine a vehicle trajectory based at least in part on the aggregated cost. By way of example and not limitation, the decision tree 308 can consider 40 actions in 100 samples for an object with four different intents.
[0057] In some examples, the decision tree component 304 can use heuristic and / or machine-learned models to determine whether to expand a branch or node of the decision tree 308. For example, a machine-learned model can be trained to determine whether to expand a child branch / node, whether to group a subset of all intents, whether to expand leaf node upper and lower bounds to determine an optimal trajectory, etc.
[0058] 4 shows an example block diagram 400 of an example computer architecture for implementing techniques for evaluating outputs by example decision trees described herein. 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.
[0059] The input data 402 (e.g., log data, sensor data, map data, object state data, vehicle state data, control policy data, etc.) can be used by the decision tree component 304 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 for searching a decision tree by a first computing device (e.g., vehicle computing device 504) that has fewer computational resources than a second computing device (e.g., computing device 550). In some examples, the search setup 404 can include determining a set of object intentions for one or more objects in the environment and assigning the intentions to separate nodes of a decision tree (e.g., decision tree 308). The search setup 404 can also, or instead, include determining conditions for testing responses to the object intents by a vehicle controller or by other devices configured to control the operation of the vehicle. 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 initiate one or more scenarios to determine the future location of an object based on, for example, various object intents. Thus, the tree search 406 can represent various potential interactions between objects relative to another object and / or relative to an autonomous vehicle.
[0060] In general, 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 may represent a future or simulated state of an object, autonomous vehicle, environment, etc. In some examples, a "belief" state may be associated with a future time as part of a sample or scenario. A "belief" state may represent multiple object intentions, such as in an example when two different object intentions result in the same state over a period of time. In various examples, a "belief" state node may represent uncertainty in a state associated with one or more objects. In some examples, a "belief" state node may represent a probability distribution over states (e.g., object positions, etc.) associated with a time period.
[0061] The decision tree component 304 can perform optimization 408 to optimize the vehicle trajectory (e.g., the vehicle trajectory determined by the vehicle) output as a result of the tree search 406. For example, the machine-learned model can perform a global optimization technique to improve the accuracy of the vehicle trajectory and avoid objects. In some examples, the tree search algorithm associated with the tree search 406 can be individually optimized by comparing the results of one or more scenarios and identify paths between nodes that determine the vehicle trajectory to be followed by the vehicle in the environment. Potential interactions between objects and the vehicle can be tested in one or more scenarios based on the object intent associated with each of the nodes. In some examples, the computing device 302 can implement a machine-learned model to determine whether to continue to another node in the decision tree or add a new node to the decision tree based at least in part on identifying the likelihood that the additional node will result in an improvement in the vehicle trajectory determination beyond a threshold. In some examples, the decision tree component 304 can determine a cost gap distribution (or other approach) to add another node to reduce the “gap cost” between the predicted vehicle trajectory and the actual trajectory of the vehicle.
[0062] 4 , the decision tree component 304 can determine a setup 410 based at least in part on the input data 402. The setup 410 can include the same or a different number of object intents as that of the search setup 404. In various examples, the second search setup can include identifying an algorithm for evaluating the decision tree or the output of optimization 408 by a second computing device (e.g., computing device 550) that has greater computational resources than the first computing device (e.g., vehicle computing device 504) associated with the search setup 404. Thus, the setup 410 can include determining a greater number of samples (e.g., 1000 or some other number) relative to the number of samples (e.g., 3 or some other number) associated with the search setup 404 and / or determining a different algorithm for evaluating the optimized vehicle trajectory from optimization 408. The setup 410 can also, or instead, identify a set of policies associated with the vehicle and / or one or more objects in the environment for evaluating the vehicle trajectory output by the tree search 406 or the optimized vehicle trajectory output by optimization 408.
[0063] In various examples, the decision tree component 308 can perform policy evaluation 412 based at least in part on the output of the tree search 406, the optimization 408, and / or the setup 410. Generally, the policy evaluation 412 represents testing the output of the tree search 406 and / or the optimization 408 against the set of policies of the setup 410. The policy evaluation 412 can use an algorithm that is trained at least in part on previous results to, for example, improve decisions over time (e.g., predict more accurate vehicle trajectories) compared to the tree search 406. In some examples, the policy evaluation 412 can represent an intent distribution associated with the object intents of the setup 410. In a non-limiting example, the policy evaluation 412 can represent an open-loop trajectory evaluation.
[0064] In some examples, the decision tree component 304 can perform evaluation 414, which includes determining metrics for evaluating the performance of an algorithm, such as a tree search algorithm (e.g., accuracy of vehicle trajectory, speed for determining output, size of the decision tree, whether to add or remove nodes from the decision tree, etc.). In some examples, evaluation 414 can include determining costs associated with a scenario and aggregating costs (e.g., weighted average, etc.) of nodes or multiple modes of the decision tree. In some examples, 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.) that can be used to determine potential intersections between future vehicles and objects.
[0065] 5 is a block diagram of an example system 500 for implementing the techniques described herein. In at least one example, the system 500 may include a vehicle, such as a vehicle 502.
[0066] The vehicle 502 may include a vehicle computing device 504 (also referred to as one vehicle computing device 504 or multiple vehicle computing devices 504), one or more sensor systems 506, one or more emitters 508, one or more communication connections 510, at least one direct connection 512, and one or more drive systems 514.
[0067] Vehicle computing device 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, vehicle 502 is an autonomous vehicle, but 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, memory 518 of vehicle computing device 504 stores a localization 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 including one or more models (collectively “models 532”), such as a first model 532A, a second model 532B, up to an Nth model 532N, where N can be any integer greater than 1. While depicted in FIG. 5 as being within memory 518 for illustrative purposes, it is contemplated that localization component 520, perception component 522, planning component 524, one or more system controllers 526, one or more maps 528, and / or model component 530, including model 532, may additionally or alternatively be accessible to vehicle 502 (e.g., stored in or otherwise accessible by memory remote from vehicle 502, such as on memory 548 of remote computing device 550).
[0068] Additionally, vehicle 502 may include a vehicle safety system 534 including an object trajectory component 540, an intersection component 542, a probability component 544, and an action component 546. As shown in this example, vehicle safety system 534 may be implemented separately from vehicle computing device 504, for example, to improve performance of the vehicle safety system and / or to provide redundancy, error checking, and / or validation of decisions and / or commands determined by vehicle computing device 504. However, in other examples, vehicle safety system 534 may be implemented as one or more components within the same vehicle computing device 504.
[0069] By way of example, the vehicle computing device 504 may be considered a primary system, while the vehicle safety system 534 may be considered a secondary system. The primary system may generally perform processing to control how the vehicle moves within an environment. The primary system may implement various artificial intelligence (AI) techniques, such as machine learning, to understand the environment around the vehicle 502 and / or to direct the vehicle 502 to move within the environment. For example, the primary system may implement AI techniques to identify the vehicle's location, detect objects around the vehicle, segment sensor data, determine object classifications, predict object tracks, generate trajectories for the vehicle 502 and objects around the vehicle, etc. In some examples, the primary system may process data in the sensor system 506 from numerous 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, and the like.
[0070] In some examples, the vehicle safety system 534 may operate as a separate system that receives state data (e.g., perception data) based on sensor data and AI techniques implemented by the primary system (e.g., the vehicle computing device 504) and may implement various techniques for improving collision prediction and avoidance by the vehicle 502, as described herein. As described herein, the vehicle safety system 534 may implement techniques for predicting intersections / collisions based on sensor data, as well as probabilistic techniques based on the positioning, velocity, acceleration, etc. of the vehicle and / or objects around the vehicle. In some examples, the vehicle safety system 534 may process data from sensors, such as a subset of the sensor data processed by the primary system. To illustrate, the primary system may process LIDAR data, radar data, image data, depth data, etc., while the vehicle safety system 534 may process only LIDAR data and / or radar data (and / or time-of-flight data). However, in other examples, the vehicle safety system 534 may process sensor data from any number of sensors, such as data from each of the sensors, data from the same number of sensors as the primary system, etc.
[0071] Further examples of vehicle architectures comprising primary and secondary computing systems can be found, for example, in U.S. Patent Application Publication No. 2018 / 0129999, entitled "Perception Collision Avoidance," filed November 13, 2018, the entirety of which is incorporated herein by reference in its entirety for all purposes.
[0072] 5 as being in memory 518 for illustrative purposes, it is contemplated that the localization component 520, perception component 522, planning component 524, model component 530, system controller 526, and map 528 may additionally or alternatively be accessible to the vehicle 502 (e.g., stored in or otherwise accessible by memory remote from the vehicle 502, such as on memory 548 of a remote computing device 550). Similarly, the object trajectory component 540, intersection component 542, probability component 544, and / or action component 546 are depicted as being in 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 504 or accessible to the vehicle 502 (e.g., stored in or otherwise accessible by memory remote from the vehicle 502, such as memory 548 of a remote computing device 550).
[0073] In at least one example, the localization component 520 may include functionality for receiving data from the sensor system 506 to determine the position and / or orientation of the vehicle 502 (e.g., one or more of x position, y position, z position, roll, pitch, or yaw). For example, the localization component 520 may include and / or request / receive a map of the environment, such as from a map 528 and / or map component 528, and may continuously determine the location and / or orientation of the autonomous vehicle within the map. In some examples, the localization component 520 may receive image data, LIDAR data, radar data, IMU data, GPS data, wheel encoder data, and the like and utilize SLAM (simultaneous localization and mapping), CLAMS (calibration, localization, and mapping simultaneously), relative SLAM, bundle adjustment, nonlinear least-squares optimization, or the like, to accurately determine the location of the autonomous vehicle. In some examples, the localization component 520 may provide data to various components of the vehicle 502 to determine an initial position of the autonomous vehicle for determining object associations with the vehicle 502, as discussed herein.
[0074] In some examples, the perception component 522 may include functionality for performing 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) in proximity to the vehicle 502 and / or a classification of the object such as object type (e.g., a car, a pedestrian, a bicyclist, an animal, a building, a tree, a road surface, 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 in proximity to the vehicle 502 and / or a classification of the stationary entity as a type (e.g., a building, a tree, a road surface, a curb, a sidewalk, an unknown, etc.). In further or alternative examples, 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 associated with an environment in which the object is located. In some examples, features associated with an object 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 range (size), etc. Features associated with an environment may include, but are not limited to, the presence of another object in the environment, the state of another object in the environment, the time of day, the day of the week, the season, weather conditions, an indication of darkness / lightness, etc.
[0075] In general, the planning component 524 may determine a path for the vehicle 502 to follow to move around in an environment. For example, the planning component 524 may determine various routes and trajectories, as well as various levels of detail. For example, the planning component 524 may determine a route for traveling from a first location (e.g., a current location) to a second location (e.g., a target location). For purposes of this discussion, the route may include a series of waypoints for traveling between the two locations. As non-limiting examples, the waypoints include streets, intersections, Global Positioning System (GPS) coordinates, etc. Additionally, the planning component 524 may generate instructions for guiding the autonomous vehicle 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 may determine how to guide the autonomous vehicle from a first waypoint in the series of waypoints to a second waypoint in the series of waypoints. In some examples, the instructions may be a trajectory, or a portion of a trajectory. In some examples, multiple trajectories may be generated substantially simultaneously (e.g., within technical tolerances) according to a receding horizon technique, and one of the multiple trajectories is selected for vehicle 502 to follow.
[0076] In some examples, planning component 524 can implement one or more tree search algorithms to determine a path for vehicle 502. For example, planning component 524 can implement model component 530 (having at least the functionality of model component 104 of FIG. 1 ) to apply the tree search algorithm to a decision tree to determine a vehicle trajectory for vehicle 502. In some examples, vehicle computing device 504 can exchange data with computing device 550, including sending log data associated with the tree search algorithm to computing device 550 and receiving updated or optimized algorithms from computing device 550.
[0077] In some examples, the planning component 524 may include a prediction component for generating predicted trajectories of objects in the environment (e.g., dynamic objects such as pedestrians, cars, trucks, bicyclists, animals, etc.). For example, the prediction component may generate one or more predicted trajectories for objects within a threshold distance from the vehicle 502. In some examples, the planning component 524 may include or otherwise implement functionality associated with the decision tree component 304 and / or the sample decision component 306.
[0078] In at least one example, vehicle computing device 504 may include one or more system controllers 526, which may be configured to control steering, propulsion, braking, safety, emitter, communication, and other systems of vehicle 502. System controller 526 may communicate with and / or control corresponding systems of drive system 514 and / or other components of vehicle 502.
[0079] The memory 518 may further include one or more maps 528 that can be used by the vehicle 502 to navigate through the environment. For 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, mountain ranges, roads, terrain, and the environment in general. In some examples, the 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), and the like), intensity information (e.g., LIDAR information, radar information, and the like); spatial information (e.g., image data projected onto a mesh, individual “surfels” (e.g., polygons associated with individual colors and / or intensities), reflectance information (e.g., specularity information, retroreflectance information, BRDF information, BSSRDF information, and the like). In one example, the map may include a three-dimensional mesh of the environment. In some examples, the vehicle 502 may be controlled based at least in part on the map 528. That is, the map 528 may be used in conjunction with the localization component 520, the perception component 522, and / or the planning component 524 to determine the location of the vehicle 502, detect or determine gravity, detect objects in the environment, generate routes, and determine actions and / or trajectories to navigate through the environment.
[0080] In some examples, one or more maps 528 may be stored on a remote computing device (such as computing device 550) accessible via network 556. In some examples, multiple maps 528 may be stored, for example, based on a characteristic (e.g., type of entity, time of day, day of the week, season, etc.). Storing multiple maps 528 may have similar memory requirements but may increase the speed at which data in the maps can be accessed.
[0081] 5, the vehicle computing device 504 may include a model component 530. The model component 530 may be configured to determine a probability of intersection between objects in the environment of the vehicle 502. For example, the model component 530 may determine the output data 106 of FIG. 1. In various examples, the model component 530 may receive sensor data associated with the objects from the localization component 520, the perception component 522, and / or the sensor system 506. In some examples, the model component 530 may receive map data from the localization component 520, the perception component 522, the map 528, and / or the sensor system 506. Although shown separately in FIG. 5, the model component 530 may be part of the localization component 520, the perception component 522, the planning component 524, or other components of the vehicle 502.
[0082] In various examples, the model component 530 may send output from the first model 532A, the second model 532B, and / or the Nth model 532N, which may be used by the perception component 522 to change or modify the amount of perception performed on the area of the object based on the associated intersection value. In some examples, the planning component 524 may determine one or more actions (e.g., a baseline action and / or sub-actions) for the vehicle 502 based at least in part on the output from the model component 530. In some examples, the model component 530 may be configured to output information indicative of a vehicle trajectory for avoiding an object that may cause a collision. In some examples, the model component 530 may include at least the functionality provided by the model component 104 of FIG. 1 .
[0083] In some examples, the model component 530 may communicate the output to the perception component 522 to update one or more parameters (e.g., bias values, drift values, and the like) associated with the sensor system 506. In some examples, the model component 530 may communicate the output to the planning component 524 for consideration in planning an operation (e.g., determining a final vehicle trajectory).
[0084] In various examples, the model component 530 may utilize machine learning techniques to determine object intent, decision tree nodes, vehicle trajectories, object positions, intersection probabilities, etc., as described with respect to FIG. 1 and others. In such examples, the machine learning algorithm may be trained to predict vehicle trajectories with improved accuracy over time.
[0085] Vehicle safety system 534 may include an object trajectory component 540 configured to determine the trajectory of vehicle 502 and / or the trajectories of other objects identified in the environment using various systems and techniques described herein. In some examples, object trajectory component 540 may receive planning data, perception data, and / or map data from components 520-526 to determine the planned trajectory of vehicle 502 and the trajectories of other objects in the environment.
[0086] 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 may determine multiple trajectories for one or more other moving objects (e.g., vehicle 108) in the environment in which the vehicle 502 is operating. In some examples, the trajectory of another object may include any number of possible paths that the object may take based on its current position (e.g., as perceived) and / or direction of movement. Based on a determination that the agent is within a threshold distance or time to the vehicle 502, the object trajectory component 540 may determine a trajectory associated with the object. In some examples, the object trajectory component 540 may be configured to determine a possible trajectory for each of the detected objects moving in the environment.
[0087] In various examples, the action component 546 may determine one or more actions for the vehicle 502 to take based on a prediction and / or probability determination of an intersection between the vehicle 502 and another object (e.g., vehicle 102), among other factors. The actions may include slowing the vehicle to yield to the object, stopping the vehicle to yield to the object, changing lanes or swerving to the left, or changing lanes or swerving to the right, etc. Based on the determined action, the vehicle computing device 504, such as via the system controller 526, may cause the vehicle 502 to perform the action. In at least some examples, such action may be based on a probability of collision determined by the probability component 544 based on multiple trajectories of the object, as will be described in detail. In various examples, in response to determining to adjust the vehicle's lateral position, such as in a lane change to the left or right, the vehicle safety system 534 may cause components 540-546 to generate an updated vehicle trajectory, plot additional object trajectories against the updated vehicle trajectory, determine updated potential collision zones, and perform a space-time overlap analysis to determine whether an intersection risk may still exist after the determined action is taken by the vehicle 502.
[0088] Action component 546, in some examples, may determine one or more actions for vehicle 502 to take based on receiving a signal from model component 530. For example, model component 530 may determine an intersection probability between vehicle 502 and one or more objects and generate a signal to send to action component 546.
[0089] As can be appreciated, the components discussed herein (e.g., the localization 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 vehicle safety system 534 including the object trajectory component 540, the intersection component 542, the probability component 544, and the action component 546) are described as separate for illustrative purposes. However, the operations performed by the various components may be combined or performed by any other components.
[0090] In some examples, aspects of some or all of the components discussed herein may include any models, techniques, and / or machine-learned techniques. For example, in some examples, the components in memory 518 (and memory 548 discussed below) may be implemented as neural networks.
[0091] As described herein, an exemplary neural network is a biologically inspired technique that passes input data through a series of connected layers to generate an output. Each of the layers of 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 this disclosure, a neural network may utilize machine learning, which may refer to a broad class of such techniques in which output is generated based on learned parameters.
[0092] Although discussed in the context of neural networks, any type of machine learning may be used consistent with this disclosure. For example, machine learning techniques may include regression techniques (e.g., ordinary least squares regression (OLSR), linear regression, logistic regression, stepwise regression, multivariate adaptive regression splines (MARS), local estimation scatterplot 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 automated interaction detection (CHAID), decision stumps, conditional decision trees), Bayesian techniques (e.g., naive Bayes, Gaussian naive Bayes, multinomial naive Bayes, average-one dependent estimator (AODE), Bayesian belief networks (BNN), Bayesian networks), clustering techniques (e.g., k-means, k-medians, expectation maximization (EM), hierarchical clustering), association rule learning techniques (e.g., perceptron, backpropagation, Hopfield networks, radial basis function networks (RBFN)), deep learning techniques (e.g., Examples of architectures may include, but are not limited to, deep Boltzmann machines (DBMs), deep belief networks (DBNs), convolutional neural networks (CNNs), stacked autoencoders), dimensionality reduction techniques (e.g., principal component analysis (PCA), principal component regression (PCR), partial least squares regression (PLSR), Sammon mapping, multidimensional scaling (MDS), projection pursuit, linear discriminant analysis (LDA), mixed discriminant analysis (MDA), quadratic discriminant analysis (QDA), flexible discriminant analysis (FDA), ensemble techniques (e.g., boosting, bootstrap aggregation (bagging), Adaboost, stacked generalization (blending), gradient boosting machines (GBMs), gradient boosted regression trees (GBRTs), random forests), SVMs (support vector machines), supervised learning, unsupervised learning, semi-supervised learning, and the like. Further example architectures include neural networks such as ResNet50, ResNet101, VGG, DenseNet, PointNet, and the like.
[0093] In at least one example, the sensor system 506 may include LIDAR sensors, radar sensors, ultrasonic transducers, sonar sensors, position sensors (e.g., GPS, compass, etc.), inertial sensors (e.g., inertial measurement units (IMUs), accelerometers, magnetometers, gyroscopes, etc.), cameras (e.g., RGB, IR, intensity, depth, time-of-flight, etc.), microphones, wheel encoders, environmental sensors (e.g., temperature sensors, humidity sensors, light sensors, pressure sensors, etc.), etc. The sensor system 506 may include multiple instances of each of these or other types of sensors. For example, the LIDAR sensors may include individual LIDAR sensors installed at the corners, front, rear, sides, and / or top of the vehicle 502. As another example, the camera sensors may include multiple cameras positioned at various locations around 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, sensor systems 506 may transmit sensor data to one or more computing devices 550 at a particular frequency, after a predetermined period of time, in near real-time, etc. over one or more networks 556. In some examples, model component 530 may receive sensor data from one or more of sensor systems 506.
[0094] The vehicle 502 may also include one or more emitters 508 for emitting light and / or sound. The emitters 508 may include internal audio and visual emitters for communicating with occupants of the vehicle 502. By way of example and not limitation, the internal emitters may include speakers, light sources, signs, display screens, touchscreens, tactile emitters (e.g., vibration feedback and / or force feedback), mechanical actuators (e.g., seat belt tensioners, seat positioners, headrest positioners, etc.), and the like. The emitters 508 may also include external emitters. By way of example and not limitation, the external emitters may include light sources for announcing direction of travel or other indicators of vehicle action (e.g., indicator light sources, signs, light source arrays, etc.) and one or more audio emitters (e.g., speakers, speaker arrays, horns, etc.) for audio communication with pedestrians or other nearby vehicles, one or more of which include acoustic beam steering technology.
[0095] Vehicle 502 may also include one or more communication connections 510 that enable communication between vehicle 502 and one or more other local or remote computing devices. For example, communication connection 510 may facilitate communication with other local computing devices on vehicle 502 and / or drive system 514. Communication connection 510 may also enable the vehicle to communicate with other computing devices in the vicinity (e.g., remote computing device 550, other nearby vehicles, etc.) and / or with one or more remote sensor systems 558 for receiving sensor data. Communication connection 510 also enables vehicle 502 to communicate with remotely operated computing devices or other remote services.
[0096] The communications connection 510 may include physical and / or logical interfaces for connecting the vehicle computing device 504 to another computing device or network, such as the network 556. For example, the communications connection 510 may enable Wi-Fi-based communications, such as over frequencies defined by the IEEE 802.11 standard, short-range radio frequencies such as Bluetooth, cellular communications (e.g., 2G, 3G, 4G, 4G LTE, 5G, etc.), or any suitable wired or wireless communications protocol that enables each computing device to interface with other computing devices.
[0097] In at least one example, the vehicle 502 may include one or more drive systems 514. In some examples, the vehicle 502 may have a single drive system 514. In at least one example, if the vehicle 502 has multiple drive systems 514, the individual drive systems 514 may be located at either end of the vehicle 502 (e.g., the front and rear, etc.). In at least one example, the drive system 514 may include one or more sensor systems for detecting conditions surrounding the drive system 514 and / or the vehicle 502. By way of example and not limitation, the sensor systems may include one or more wheel encoders (e.g., rotary encoders) for sensing the rotation of the wheels of the drive system, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) for measuring the orientation and acceleration of the drive system, cameras or other imaging sensors, ultrasonic sensors for acoustically detecting objects surrounding the drive system, LIDAR sensors, radar sensors, etc. Some sensors, such as the wheel encoders, may be specific to the drive system 514. In some examples, the sensor systems of the drive system 514 may overlap with or complement corresponding systems of the vehicle 502 (e.g., the sensor system 506).
[0098] The drive system 514 may include many of the vehicle systems, including a high-voltage battery, a motor for propelling the vehicle, an inverter for converting direct current from the battery to alternating current for use in other vehicle systems, a steering system including a steering motor and a steering rack (which may be electric), a braking system including hydraulic or electric actuators, a suspension system including hydraulic and / or pneumatic components, a stability control system for distributing braking force to mitigate loss of traction and maintain control, an HVAC system, lighting (e.g., lighting such as headlights / taillights for illuminating the exterior surroundings of the vehicle), and one or more other systems (e.g., a cooling system, a safety system, an on-board charging system, other electrical components such as DC / DC converters, high-voltage junctions, high-voltage cables, a charging system, a charge port, etc.). Additionally, the drive system 514 may include a drive system controller for receiving and preprocessing data from sensor systems and for controlling the operation of various vehicle systems. In some examples, the drive system controller may include one or more processors and memory communicatively coupled to the one or more processors. The memory may store one or more modules for performing various functions of drive system 514. Additionally, drive system 514 may also include one or more communication connections that enable the respective drive system to communicate with one or more other local or remote computing devices.
[0099] In at least one example, direct connection 512 may provide a physical interface for coupling one or more drive systems 514 to the body of vehicle 502. For example, direct connection 512 may enable the transfer of energy, fluid, air, data, etc. between drive system 514 and the vehicle. In some examples, direct connection 512 may also releasably secure drive system 514 to the body of vehicle 502.
[0100] In at least one example, the localization 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 may process the sensor data as described above and transmit their respective outputs to the computing device 550 via one or more networks 556. In at least one example, the localization 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 may transmit their respective outputs to the computing device 550 at a particular frequency, after a predetermined period of time, in near real time, etc.
[0101] In some examples, vehicle 502 may transmit sensor data to computing device 550 over network 556. In some examples, vehicle 502 may receive sensor data from computing device 550 and / or remote sensor system 558 over network 556. The sensor data may include raw sensor data, processed sensor data, and / or representations of sensor data. In some examples, sensor data (raw or processed) may be transmitted and / or received as one or more log files.
[0102] The computing device 550 may include a processor 552 and a memory 548 that stores a training component 554 .
[0103] In some examples, the training component 554 may include functionality for training a machine learning model to output values, parameters, and the like associated with one or more algorithms. For example, the training component 554 may 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 may be used as 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 may be input to the machine-learned model. Thus, by providing data of a vehicle moving around an environment, as discussed herein, the training component 554 may be trained to output a vehicle trajectory that avoids objects in the real-world environment.
[0104] In some examples, the training component 554 may be implemented to train the model component 530. The training data may include a wide variety of data associated with a value (e.g., a desired classification, inference, prediction, etc.), 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. Such data and associated values may be generally referred to as “ground truth.” In such examples, the training component 554 may determine a difference between the ground truth (e.g., training data) and an output by the model component 530. Based at least in part on this difference, training by the training component 554 may include altering parameters of the machine-learned model to minimize the difference, to obtain a trained machine-learned model configured to determine potential intersections between objects in the environment and the vehicle 502.
[0105] In various examples, during training, the model component 530 may adjust weights, filters, inter-layer connections, and / or parameters for training individual untrained neural networks to predict potential intersections (or other tasks), as discussed herein. In some examples, the model component 530 may use supervised or unsupervised training.
[0106] In some examples, the training component 554 can include training data generated by a simulator. For example, the simulated training data can represent instances of a vehicle colliding with or nearly colliding with objects in the environment to provide additional training examples.
[0107] In some examples, the functionality provided by the training component 554 may be included in and / or performed by the vehicle computing device 504.
[0108] Processor 516 of vehicle 502, processor 536 of vehicle safety system 534, and / or processor 552 of computing device 550 may be any suitable processor capable of processing data and executing instructions to perform the operations described herein. By way of example and not limitation, processors 516, 536, and 552 may comprise one or more central processing units (CPUs), graphics processing units (GPUs), or any other device or portion of a device that processes electronic data and converts it into other electronic data that may 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 to the extent that they are configured to implement coded instructions.
[0109] 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 for implementing the methods and functions attributed to the various systems described herein. In various embodiments, memory may be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), non-volatile / flash memory, or any other type of memory capable of storing information. The architectures, systems, and individual elements described herein may include many other logical, programmatic, and physical components, of which those shown in the accompanying figures are merely examples relevant to the discussion herein.
[0110] In some examples, memory 518, memory 538, and memory 548 may include at least working memory and storage memory. For example, working memory may be a limited capacity, high-speed memory (e.g., cache memory) used to store data to be operated on by processors 516, 536, and / or 552. In some examples, memory 518, memory 538, and memory 548 may include storage memory, which may be a relatively large capacity, slower memory used for long-term storage of data. In some examples, processors 516, 536, and / or 552 may not be able to operate directly on data stored in storage memory, and as discussed herein, data may need to be loaded into working memory to perform operations based on the data.
[0111] 5 is shown as a distributed system, it should be noted that in alternative examples, components of vehicle 502 may be associated with computing device 550 and / or components of computing device 550 may be associated with vehicle 502. That is, vehicle 502 may perform one or more of the functions associated with computing device 550, or vice versa. For example, either vehicle 502 and / or computing device 550 may perform training operations related to one or more of the models described herein.
[0112] 6 is a flowchart depicting an example process 600 for determining a vehicle trajectory using one or more example models. Part or all of process 600 may be performed by one or more components of FIGS. 1-5, as described herein. For example, part or all of process 600 may be performed by vehicle computing device 504 and / or computing device 550 of FIG. 5.
[0113] At operation 602, the process may include defining a first node of a decision tree to represent a first intention of the 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 may implement the 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) may cause the object to behave differently relative to the autonomous vehicle. In various examples, the object trajectories may be based at least in part on sensor data from the perception component 522 and map data from the map 528. In some examples, the first intention and the second intention of the object may represent a potential turning action or a level of responsiveness by the object toward the autonomous vehicle.
[0114] At operation 604, the process may include defining a second node of the decision tree to represent a first action by the autonomous vehicle. In some examples, the decision tree component 304 may determine a second node 316, a third node 318, or a fourth node 320 to represent a potential action by the autonomous vehicle (although in other examples, a different number of vehicle actions may be used). In some examples, some vehicle actions, or nodes associated therewith, may be determined based at least in part on some object intents.
[0115] At operation 606, the process may include defining a third node of the decision tree to represent a second action by the autonomous vehicle. For example, the decision tree component 304 may associate another potential action by 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).
[0116] At operation 608, the process may include determining a set of samples to test the first intent of the object, the second intent of the object, the first action by the autonomous vehicle, and the second action by the autonomous vehicle. For example, the sample determination component 306 can be configured to determine samples to identify whether the vehicle and the object intersect according to the vehicle action and the object intent.
[0117] At operation 610, the process may include testing a set of samples in a simulated scenario including an object taking a first action according to a first intent and taking a second action according to a second intent. For example, operation 610 may include the model component 104 applying a tree search algorithm to the decision tree 308, including identifying different paths through separate nodes to simulate potential interactions. In some examples, the tree search algorithm may be determined by a machine-learned model trained to improve the cost gap distribution.
[0118] At operation 612, the process may include determining a vehicle trajectory that can be used to control the autonomous vehicle in a real-world 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 a minimum cost for traversing a decision tree (e.g., selecting a trajectory by combining nodes that results in the lowest combination cost). In some examples, 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 a vehicle trajectory (e.g., vehicle trajectory 116) based at least in part on the output. For example, output from model component 530 can be sent to perception component 522 or planning component 524, to name just a few. In various examples, a vehicle computing device such as planning component 524 may control the operation of the vehicle. The vehicle computing device may determine a final vehicle trajectory based at least in part on the vehicle trajectory, thereby improving vehicle safety by planning the likelihood that objects may intersect with the vehicle in the future. Further details regarding using one or more outputs to control a vehicle are discussed throughout this disclosure.
[0119] 2 and 6 illustrate exemplary processes according to examples of the present disclosure. These processes are illustrated as logical flow graphs, each of whose operations represents a sequence of actions that can be implemented in hardware, software, or a combination thereof. In the context of software, the operations represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the referenced operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as limiting, and any numbered operations described can be omitted or combined in any order and / or in parallel to implement the process. In some embodiments, one or more operations of a method may be omitted entirely. By way of example and not limitation, operations 602, 604, 608, and 610 may be performed without operations 606 and 612. Furthermore, the methods described herein can be combined, in whole or in part, with each other or with other methods.
[0120] The methods described herein represent sequences of operations that may be performed in hardware, software, or a combination thereof. In the context of software, the blocks represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the referred operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in which operations are described is not intended to be construed as a limitation, and any numbered operations described can be omitted or combined in any order and / or in parallel to perform a process.
[0121] The various techniques described herein may be implemented in the context of computer-executable instructions or software, such as program modules, stored in computer-readable storage devices and executed by processors of one or more computing devices, such as those illustrated in the figures. Generally, program modules include routines, programs, objects, components, data structures, etc., that define operational logic for performing particular tasks or implement particular abstract data types.
[0122] Other architectures may be used to implement the described functionality and are intended to be within the scope of this disclosure. Additionally, although a particular distribution of responsibilities is defined above for purposes of discussion, the various functions and responsibilities may be distributed and divided in different manners, depending on the circumstances.
[0123] Similarly, software may be stored and distributed in a variety of ways and using different means, and the particular software storage and execution configurations described above may be varied in many different ways. Thus, software implementing the techniques described above may be distributed across various types of computer-readable media, not limited to the specifically described forms of memory.
[0124] Illustrative clauses Any of the example clauses in this section may be used with any other of the example clauses and / or with any of the other examples or embodiments described herein.
[0125] 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, the instructions, when executed, causing the one or more processors to perform operations including: defining a first node of a decision tree to represent a first intention of an object toward an autonomous vehicle and a second intention of the object toward the autonomous vehicle; defining a second node of the decision tree to represent a first action by the autonomous vehicle; defining a third node of the decision tree to represent a second action by the autonomous vehicle; determining a set of samples for testing the first intention of the object, the second intention of the object, the first action by the autonomous vehicle, and the second action by the autonomous vehicle; testing the set of samples in a simulated scenario including the object taking the first action in accordance with the first intention and taking the second action in accordance with the second intention; and determining a vehicle trajectory usable for controlling the autonomous vehicle in a real-world environment based at least in part on one or more results of the testing.
[0126] B: The system of paragraph A, wherein the operations further include: determining a cost of a sample in the set of samples, the cost representing an impact on operation of the autonomous vehicle; and controlling the autonomous vehicle based at least in part on the cost.
[0127] 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 a decision tree.
[0128] D: The system of any of paragraphs A-C, wherein the operations further include determining the number of branches of the decision tree based at least in part on the probability that processing an additional branch will result in a vehicle trajectory determination having a lower cost than a cost associated with a previous vehicle trajectory determination.
[0129] E: The system of any of paragraphs A-D, wherein the first action or the second action represents one of a yield action, a go straight action, a left turn action, a right turn action, a braking action, an accelerating action, a steering action, or a lane change action, and the first intent or the second intent represents one of a first likelihood that the object will react to the autonomous vehicle using the first behavior during the simulated scenario, a second likelihood that the object will react to the autonomous vehicle using the second behavior during the simulated scenario, or a third likelihood that the object will refrain from reacting to the autonomous vehicle during the simulated scenario.
[0130] 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 defining a proposed action for the vehicle to take at a future time and a second node associated with an object intention at the future time; generating a simulation including an object taking an action in accordance with the object intention based at least in part on the decision tree, wherein the object intention represents a reaction of the object to the vehicle's proposed action; and controlling the vehicle based at least in part on an output of the simulation.
[0131] G: The one or more non-transitory computer-readable media of paragraph F, wherein the operation further includes identifying a related object from among a set of objects in an environment of the vehicle based at least in part on the relevance score, and wherein the object intent is associated with the related object.
[0132] H: The one or more non-transitory computer-readable media of paragraph F or G, wherein the simulation includes a set of samples representing potential interactions between the vehicle and the object at a future time based on the vehicle's control policy and the object's intent, and the action further includes determining a cost of a sample in the set of samples, the cost representing an impact on the vehicle's operation; and controlling the vehicle based at least in part on the cost.
[0133] I: One or more non-transitory computer-readable media of any of paragraphs F-H, wherein generating the simulation includes testing the set of samples in a simulated scenario that includes testing each of the samples in the set of samples over a period of time.
[0134] J: The one or more non-transitory computer-readable media of any of paragraphs F-I, wherein the operations further include determining the number of branches of the decision tree based at least in part on the probability that processing an additional branch will result in a vehicle trajectory determination having a lower cost than a cost associated with a previous vehicle trajectory determination.
[0135] K: One or more non-transitory computer-readable media of any of paragraphs F-J, wherein the action by the vehicle represents one of a yield action, a go straight action, a left turn action, a right turn action, a braking action, an accelerating action, a steering action, or a lane change action.
[0136] L: The one or more non-transitory computer-readable media of any of paragraphs F-K, wherein the object intent represents a first likelihood that the object will react to the vehicle during the simulation or a second likelihood that the object will refrain from reacting to the vehicle during the simulation.
[0137] M: The one or more non-transitory computer-readable media of any of paragraphs F-L, wherein the operations further include: defining a first node of a decision tree to represent an object intent; and defining a second node of the decision tree to represent an action by the vehicle.
[0138] N: The one or more non-transitory computer-readable media of any of paragraphs F-M, wherein the object intent is a first object intent, the operation further includes grouping the first object intent with a second object intent associated with the object at a node of the decision tree, and controlling the vehicle is further based at least in part on applying a tree search algorithm to the node of the decision tree.
[0139] O: The one or more non-transitory computer-readable media of any of paragraphs F-N, wherein the operations further include 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 using the vehicle trajectory to navigate through the environment.
[0140] P: The one or more non-transitory computer-readable media of any of paragraphs F-O, further including: defining a decision tree to include a third node associated with a second object intent associated with a second object different from the first object; and determining a vehicle trajectory for controlling the vehicle based at least in part on applying a tree search algorithm to the third node of the decision tree.
[0141] Q: A method comprising: defining a decision tree to include a first node defining a proposed action for a vehicle to take at a future time, and a second node associated with an object intention at a future time; generating a simulation including an object taking an action in accordance with the object intention based at least in part on the decision tree, the object intention representing the object's reaction to the vehicle's proposed action; and controlling the vehicle based at least in part on an output of the simulation.
[0142] R: The method of paragraph Q, further comprising identifying a related object from among a set of objects in the vehicle's environment, wherein the object intent is associated with the related object.
[0143] S: The method of paragraph Q or R, wherein the action by the vehicle represents one of a yielding action, a going straight action, a left turn action, a right turn action, a braking action, an accelerating action, a steering action, or a lane change action.
[0144] T: The method of any of paragraphs Q-S, wherein the object intent represents a first likelihood that the object will react to the vehicle during the simulation or a second likelihood that the object will refrain from reacting to the vehicle during the simulation.
[0145] Although the example clauses set forth below are described with respect to one particular implementation, it should be understood in the context of this document that the content of the example clauses may also be implemented by a method, device, system, computer-readable medium, and / or another implementation. Additionally, any of Examples A-T may be implemented alone or in combination with any other one or more of Examples A-T.
[0146] conclusion Having described one or more examples of the techniques described herein, various modifications, additions, permutations and equivalents thereof fall within the scope of the techniques described herein.
[0147] In describing the examples, reference is made to the accompanying drawings that form a part of this specification, which show, by way of illustration, specific examples of the claimed subject matter. It is understood that other examples may be used and that changes or modifications, such as structural changes, may be made. Such examples, changes, or modifications do not necessarily depart from the intended scope of the claimed subject matter. While steps herein may be presented in a certain order, in some instances, the ordering may be changed so that certain inputs are provided at different times or in a different order without changing the functionality of the described systems and methods. The disclosed procedures may also be performed in a different order. In addition, the various calculations herein need not be performed in the order disclosed, and other examples using alternative calculation orders may be readily implemented. In addition to being reordered, calculations may also be decomposed into sub-calculations that produce the same results.
Claims
1. defining a decision tree to include a first node defining a proposed action for the vehicle to take at a future time, and a second node associated with an object intent at said future time; generating a simulation including objects taking actions according to the object intentions based at least in part on the decision tree, the object intentions representing the reactions of the objects to the proposed actions of the vehicle; controlling the vehicle based at least in part on an output of the simulation; A method comprising:
2. 10. The method of claim 1, further comprising identifying a related object from among a set of objects in the vehicle's environment based at least in part on a relevance score, wherein the object intent is associated with the related object.
3. the simulation includes a set of samples representing potential interactions between the vehicle and the object at a future time based on a control policy of the vehicle and the object intent; determining a cost of a sample in the set of samples, the cost representing an impact on operation of the vehicle; The method of claim 1 or 2, further comprising controlling the vehicle based at least in part on the cost.
4. The step of generating a simulation comprises:
4. The method of claim 1, further comprising testing a set of samples in a simulated scenario comprising testing each of the samples in the set over a period of time.
5. 5. The method of claim 1, further comprising determining the number of branches of the decision tree based at least in part on a probability that processing an additional branch will result in a vehicle trajectory determination having a lower cost than a cost associated with a previous vehicle trajectory determination.
6. The method of claim 1 , wherein the action by the vehicle represents one of a give way action, a go straight action, a left turn action, a right turn action, a braking action, an accelerating action, a steering action, or a lane change action.
7. 7. The method of claim 1, wherein the object intent represents a first likelihood that the object will react to the vehicle during the simulation using a first behavior, a second likelihood that the object will react to the vehicle during the simulation using a second behavior, or a third likelihood that the object will refrain from reacting to the vehicle during the simulation.
8. 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 by the vehicle; The method of claim 1 , further comprising: defining a third node of the decision tree to represent a second action by the vehicle.
9. the object intent is a first object intent, 9. The method of claim 1, further comprising grouping the first object intent with a second object intent associated with the object at a node of the decision tree, and wherein controlling the vehicle is further based at least in part on applying a tree search algorithm to the node of the decision tree.
10. determining a vehicle trajectory of the vehicle based at least in part on applying a tree search algorithm to the decision tree; The method of any preceding claim, wherein the step of controlling a vehicle includes using the vehicle trajectory to navigate through an environment.
11. the object intent is a first object intent associated with a first object; 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 determining a vehicle trajectory for controlling 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, the coded instructions causing, when executed on a computer, to perform the method of any of claims 1 to 11.
13. one or more processors; one or more non-transitory computer-readable media storing instructions executable by the one or more processors, the instructions, when executed, causing the one or more processors to: defining a decision tree to include a first node defining a proposed action for the vehicle to take at a future time and a second node associated with an object intent at a future time; generating a simulation including objects taking actions according to the object intentions based at least in part on the decision tree, the object intentions representing reactions of the objects to the proposed actions of the vehicle; and controlling the vehicle based at least in part on an output of the simulation.
14. The operation is identifying relevant objects from among a set of objects in an environment of the vehicle based at least in part on the relevance scores; The system of claim 13 , further comprising: the object intent being associated with the related object.
15. The simulation includes a set of samples representing potential interactions between the vehicle and the object at a future time based on a control policy of the vehicle and the object intent, and the actions include: determining a cost of a sample in the set of samples, the cost representing an impact on operation of the vehicle; and controlling the vehicle 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
US17/681,461