WO2024249077A1 - Action reference generation pipeline - Google Patents
Action reference generation pipeline Download PDFInfo
- Publication number
- WO2024249077A1 WO2024249077A1 PCT/US2024/029326 US2024029326W WO2024249077A1 WO 2024249077 A1 WO2024249077 A1 WO 2024249077A1 US 2024029326 W US2024029326 W US 2024029326W WO 2024249077 A1 WO2024249077 A1 WO 2024249077A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- trajectory
- component
- vehicle
- action
- trajectories
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0015—Planning or execution of driving tasks specially adapted for safety
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W30/00—Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
- B60W30/08—Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
- B60W30/09—Taking automatic action to avoid collision, e.g. braking and steering
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W30/00—Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
- B60W30/08—Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
- B60W30/095—Predicting travel path or likelihood of collision
- B60W30/0956—Predicting travel path or likelihood of collision the prediction being responsive to traffic or environmental parameters
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0011—Planning or execution of driving tasks involving control alternatives for a single driving scenario, e.g. planning several paths to avoid obstacles
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0027—Planning or execution of driving tasks using trajectory prediction for other traffic participants
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2554/00—Input parameters relating to objects
- B60W2554/20—Static objects
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2554/00—Input parameters relating to objects
- B60W2554/80—Spatial relation or speed relative to objects
Definitions
- Planning systems in autonomous and semi-autonomous vehicles determine actions for a vehicle to take in an operating environment. Actions for a vehicle may be determined based in part on avoiding objects present in the environment. For example, an action may be generated by a planning system to yield to a pedestrian, to change a lane to avoid another vehicle in the road, or the like. Accurately predicting future actions may be necessary 7 to safely operate the vehicle in the vicinity of the obj ect. The actions can be based on an output from a tree search.
- FIG. 1 is an illustration of an example environment, in which an example vehicle predicts trajectories usable to avoid a collision with one or more example objects.
- FIG. 2 is a block diagram of an example computing device implementing techniques to determine action trajectories for associating with a tree structure as described herein.
- FIG. 3 is another block diagram of an example computing device implementing techniques to determine action trajectories for associating with a tree structure as described herein.
- FIG. 4 is a block diagram of an example system for implementing the techniques described herein.
- FIG. 5 is a flowchart depicting an example process for determining action trajectories for associating with a tree structure using one or more example components.
- the techniques can include a vehicle computing device that implements a model to generate action references (e.g., reference trajectories) usable, for example, in atree search to control the vehicle (though any other use of such trajectories is contemplated).
- the model can represent one or more trajectory' generators that modify a baseline trajectory in different ways and/or generate one or more alternative traj ectories to output a set of actions that are usable to define a tree.
- the tree can, for example, include branches and/or nodes associated with one of the action trajectories in the set of action trajectories for the vehicle to track such that at any subsequent node the vehicle may switch which action reference is being tracked at that point in time.
- the vehicle computing device can use the tree to determine an action for the vehicle at a future time. By implementing the techniques described herein, a vehicle computing device can predict vehicle actions to control the vehicle with more accuracy and in less time, thereby improving the overall safety of the vehicle.
- the model (e.g., a trajectory' generators )) implemented by the vehicle computing device may provide functionality to determine multiple potential paths for a vehicle to avoid one or more objects in an environment in the future by modifying an input trajectory.
- a single generator or multiple generators can be used to transform, resample, or otherwise modify the input trajectory'. For instance, a first generator can generate an additional trajectory that is laterally offset from the input trajectory' and a second generator can generate an additional trajectory' that includes a scaled velocity relative to the input trajectory.
- a generator can output a single trajectory that is a modified version of the input trajectory and/or a set of traj ectories representing various modifications to the input trajectory.
- the generators can be combined or chained together in a variety of different ways to output action references that represent spatial and temporal profiles through the environment.
- the generators can, for example, be combined in serial and/or in parallel (in any configuration) to generate a variety of trajectories.
- a transform generator can output, generate, or otherwise determine actions trajectories having a starting point that is offset from a point associated with the input trajectory'.
- a resample generator can, for example, change a number of points and/or a position of a point associated with the input trajectory to generate an output trajectory' having a different sampling of points than the input trajectory.
- output data from one or more the generators can be used to define a tree.
- an output from any single generator and/or combination of generators can represent action trajectories which can be input to a tree search algorithm.
- a same or different model can define a branch or a node (or other portion) of a tree to include or otherwise represent the output (e.g., a transformed trajectory, a resampled trajectory, and extrapolated trajectory, and so on).
- a trajectory can include one or more desired orientations (e.g., yaw, pitch, and/or roll), velocities, positions, accelerations, and/or any other vehicle state for the vehicle to navigate in an environment.
- the trajectory can include points to represent a position of the vehicle at different times along the trajectory. Accordingly, the trajectory can represent temporal features and/or spatial features. In some examples, the trajectory can be based on state data such as 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 a vehicle (e.g., an autonomous vehicle) or an object, just to name a few.
- state data such as 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 a vehicle (e.g., an autonomous vehicle) or an object, just to name a few.
- the generators may implement a parallel processing unit to determine an action trajectory (or points thereof). For example, a generator can receive a baseline trajectory as input and generate multiple action trajectories using the parallel processing unit. Additionally, or alternatively, multiple generators may perform various functions using the parallel processing unit to generate outputs that are combinable to represent a set of action trajectories.
- the generators may be chained sequentially such that an output from one generator serves as an input to another generator, and an output from the last generator can represent the set of action trajectories.
- An Application Program Interface can control API calls that define an operation to be performed by a component. Different combinations of generators can generate different sets of action trajectories usable with a tree search to provide a vehicle with a variety of potential paths to navigate in an environment. For instance, an action trajectory' may be used to define a node or branch of the tree for consideration during a tree search used by a vehicle computing device during a planning operation. The vehicle computing device can control a vehicle (e.g., control steering, braking, acceleration, and so on) based at least in part on performing a tree search of the tree (input the action trajectory' to a tree search algorithm).
- a vehicle e.g., control steering, braking, acceleration, and so on
- the generators may be chained in parallel such that the outputs by the generators are processed at substantially a same time, and the outputs from each generator may be combined to represent the set of action trajectories.
- a model can implement a parallel processing unit to process input data to the generators in parallel to determine multiple outputs that are usable as action trajectories.
- the vehicle computing device can implement one or more components to perform planning operations as described herein.
- a prediction component can determine one or more predicted trajectories associated with an object(s) in an environment.
- a planning component may determine a number of potential actions (e.g., reference trajectories) associated with the vehicle.
- An environment can be simulated and predicted trajectories of object(s) and/or possible actions can be updated or otherwise adjusted to account for the potential interactions of the object(s) and/or vehicle, which can provide for more accurate predictions and simulations of objects in an environment.
- the prediction component and/or the planning component can receive data identifying the set of action trajectories for use in determining a potential action for the vehicle.
- a baseline trajectory can represent a trajectory from a planning component, a teleoperator, or another source, and is associated with an intent (e.g., targets an objective). Accordingly, different baseline trajectories can be associated with different intents (e.g., enter or exit a parking space, change lanes, etc.) of a vehicle.
- multiple baseline traj ectories can be input into a generator(s) though in other examples a single baseline trajectory may be received as the input.
- a storage device e.g., memory, database, and the like
- the profile data can identify one or more of: a baseline trajectory identifier, one or more generators to implement with a particular baseline trajectory, a control policy, or a human-readable description for the profile, and the like.
- a set of action trajectories output by a generator can be trimmed, filtered, expanded, or otherwise modified based at least in part on a model applying a control policy to the set of action trajectories.
- the model can determine a modified set of action trajectories based at least in part on results of simulating the set of action trajectories using the control policy (e.g., rules of the road, right of way logic, physics, kinematics, dynamics, and the like).
- control policy may, in some example, be used to expand the set of action trajectories by increasing a length of an action trajectory, changing a stopping distance, and so on.
- the vehicle may comprise an autonomous or semi-autonomous vehicle with a vehicle computing device configured to receive sensor data from one or more sensors of the vehicle.
- the vehicle may detect objects using one or more sensors while navigating in the environment.
- the objects may include static objects (e.g., ground level, buildings, bridges, signs, etc.) and dynamic objects such as other vehicles (e.g., cars, trucks, motorcycles, mopeds, etc.), pedestrians, bicyclists, or the like.
- the objects may be detected based on sensor data from sensors (e.g., cameras, motion detectors, lidar sensors, radar sensors, etc.) of the vehicle.
- the objects may be detected based on sensor data received from remote sensors, such as, for example, sensors associated with another vehicle or sensors situated in the environment that are configured to share data with a plurality of vehicles. Sensor data representing the detected objects may be used to determine input data usable by the model to predict an intersection probability associated with the object and/or one or more tracking trajectories.
- aspects of the processing operations may be parallelized and input to a parallel processor unit such as in parallel by a GPU and/or in parallel by multiple GPUs for efficient processing. Accordingly, implementing the techniques described herein can efficiently make use of available computational resources (e.g., memory and/or processor allocation or usage) while also improving accuracy of predictions.
- a model may define processing resources (e.g., processor amount, processor cycles, processor cores, processor location, processor type, and the like) to use to predict intersection probabilities associated with a potential intersection with the vehicle and/or the set of action trajectories (or points thereof).
- a vehicle computing device can implement a model that may have different processors (e.g., Central Processing Units (CPUs), Graphics Processing Units (GPUs), multicore processor, and the like).
- Models may define processing resources to utilize a processor that most efficiently (e g., uses the least amount of computational time) outputs a prediction.
- a model may generate a set of action trajectories by processing data associated with the object and/or the vehicle using a GPU, CPU, or a combination thereof.
- the model may be defined to utilize the processing resources that enable the model to perform predictions in the least amount of time (e.g., to use the tracking trajectory 7 in planning considerations of the vehicle). Accordingly, a model may make the best use of available processing resources and enable more predictions that may improve how a vehicle navigates in relation to the objects.
- models may be representative of machine learned models, statistical models, heuristic models, or a combination thereof. That is, a model may refer to a machine learning model that learns from a training data set to improve accuracy of an output (e.g., a prediction). Additionally or alternatively 7 , a model may refer to a statistical model that is representative of logic and/or mathematical functions that generate approximations which are usable to make predictions.
- the techniques discussed herein can improve a functioning of a computing device of a vehicle in a number of ways.
- the model may identify which objects to process in an environment to prevent unneeded actions by the vehicle, and/or improves predictions related to the behavior of the vehicle.
- the model improves functioning and safety of the vehicle by preventing the vehicle from taking additional actions that are not required based on conditions in the environment around the vehicle.
- the techniques described herein can improve passenger comfort and/or vehicle safety such as, for example, avoiding sudden braking or swerving when not needed.
- the techniques can include the model optimizing available computational resources by performing operations that limit the impact on the available resources (as compared to not implementing the model).
- Utilizing output data from the model by a vehicle computing device can improve the accuracy and/or reduce a latency for the vehicle to respond to a potential collision in the environment.
- implementing the model can improve safety of a vehicle by outputting one or more action trajectories for consideration during planning operations. For example, a candidate trajectory' determined for the vehicle can be based at least in part on consideration of the action trajectories.
- consideration to a set of action trajectories, and potential actions by each object and/or potential actions by the vehicle over time in a simulation can be determined in substantially real-time before a safest possible route is determined for the vehicle to follow.
- the techniques provide a greater number of action trajectories for consideration (e.g., via a tree search) than previously available, thereby ensuring that additional, and potentially safer, trajectories are available to the vehicle.
- the techniques described herein can be implemented in a number of ways. Example implementations are provided below with reference to the following figures. Although discussed in the context of an autonomous vehicle, the methods, apparatuses, and systems described herein can be applied to a variety of systems and is not limited to autonomous vehicles. In another example, the techniques can be utilized in an aviation or nautical context, or in any system using sensor data. Additionally, the techniques described herein can be used with real data (e.g., captured using sensor(s)), simulated data (e.g., generated by a simulator), or any combination of the two.
- FIG. 1 is an illustration of an example environment 100, in which an example vehicle predicts trajectories usable to avoid a collision with one or more example objects.
- an autonomous vehicle vehicle 102 in the environment 100 can include an example prediction model (trajectory generator 104) that is configured to receive input data 106 and determine output data 108.
- a vehicle computing device e.g.. vehicle computing device 404) and/or a remote computing device (e.g., computing device(s) 436) may implement the trajectory generator 104 of the vehicle 102.
- prediction techniques described herein may be implemented by other vehicle systems, components, and/or computing devices.
- the intersection prediction techniques described herein may be implemented at least partially by or in association with a localization component 420, a perception component 422, a prediction component 424, and/or a planning component 426.
- the input data 106 can comprise one or more of: a baseline trajectory, objective information (e.g., an intent or other metadata associated with the baseline trajectory), a control policy, and/or map data, among others.
- the trajectory generator 104 can receive the input data 106 (e.g., one or more baseline trajectories), and generate the output data 108 comprising one or more action trajectories.
- An action trajectory can represent a transformed baseline trajectory, a resampled baseline trajectory', an extrapolated baseline trajectory', and/or other modification to the input data 106.
- a baseline trajectory can be associated with a trajectory type, such as turn left, turn right, follow, merge left, merge right, and so on.
- the baseline trajectory' may be associated with a parking trajectory (e.g.. a trajectory' to park a vehicle), a trajectory' from a planning component, an object trajectory from a prediction component, or other trajectory’ type.
- the baseline trajectory can be generated from a machine learned model trained to output a “human-like’’ driving decision to simulate real-world driving scenarios.
- multiple baseline trajectories of one or more such types may be provided to create a larger set of candidate trajectories for use by the vehicle (e.g., directly and/or by using a tree search).
- the control pohcy can comprise one or more of a physics policy, a dynamics policy, a kinematics policy, and/or a rules policy indicating how the vehicle and objects can potentially interact or indicating information about rules of the road such as a right of way associated with a roadway, an intersection, or a navigable surface.
- the trajectory generator 104 can implement a model that accesses the control policy to determine actions, trajectories, positions, or other data associated with the vehicle and/or object(s).
- the control policy can be used by a model during a simulation performed by the computing device 202.
- the trajectory' generator 104 can receive map data representing static features of the environment 100 (which, in at least some examples, may also comprise designations for lane markings, lane speed, road control information - e.g., stop signs, traffic signals, crosswalks, school zones, speed bumps, buildings, and the like).
- the map data can be received from one or more components of a vehicle computing device or remote computing device (e.g., a computing device associated with an autonomous vehicle in a fleet of vehicles or other computing device remote from the vehicle 102).
- the trajectory generator 104 can, for example, represent a generative model that applies an algorithm(s) to transform, resample, extrapolate, and/or modify the input data 106.
- traj ectory generator 104 can transform a baseline traj ectory into multiple traj ectories offset from a point along the baseline trajectory (e.g.. additional trajectories laterally offset from an end or other point of the baseline trajectory).
- the traj ectory generator 104 may also or instead resample points of the baseline trajectory' to a change a number of points used to represent an action trajectory.
- the trajectory' generator 104 can extrapolate, extend, or relocate points of the baseline trajectory such that the action trajectory output by the model covers a greater length of time than the baseline trajectory.
- Another generator can add static features to an environment based on map data and output an action trajectory that represents the baseline trajectory avoiding the static object(s).
- Yet another generator may be used to add a vehicle action to an end of the baseline trajectory' such as a stopping profile (e g., different stopping actions can be added to the input data 106).
- a stopping profile e g., different stopping actions can be added to the input data 106.
- other generators having different functionality may also be implemented depending on the example. Functionality associated with the trajectory generator 104 is discussed throughout this disclosure, including in FIGS. 2 and 3.
- the trajectory' generator 104 can determine the output data 108 by implementing generators in different combinations using computer-readable instructions that are determined based on a type of input data 106. For example, different types of baseline trajectories may use different generator combinations so that the output data 108 represents a variety of different potential trajectories for the vehicle to follow at a future time.
- the instruction(s) can cause the generators to determine the output data 108 sequentially or simultaneously in a variety of ways.
- the trajectory generator 104 can determine a set of action trajectories for consideration during planning operations by a vehicle computing device.
- a planning component 110 can receive the output data 108 and determine planning data representing potential vehicle trajectories and/or potential object trajectories usable to control the vehicle 102.
- the output data 108 can, for example, the incorporated into a tree structure usable by the planning component 110 to generate a vehicle trajectory as described herein.
- the trajectory generator 104 can determine the output data 108 while the vehicle 102 navigates in the environment 100.
- the output data 108 may represent a future state(s) of the vehicle 102 and/or one or more objects for different times in the future as the vehicle 102 navigates to a destination in the environment 100.
- the trajectory generator 104 can receive the input data 106 from one or more components of the vehicle computing device and/or computing device(s) remote from the vehicle 102 and may determine actions relative to the action trajectories associated with the output data 108.
- the vehicle computing device associated with the trajectory generator 104 may be configured to receive sensor data representing object(s) of the environment 100, such as via a perception component (e.g., the perception component 422).
- the vehicle computing device may detect, infer, estimate, or otherwise determine object state data representing characteristics of the object in the environment 100.
- object state data may comprise position, velocity’, acceleration, size, semantic type, etc.
- the sensor(s) may include sensors mounted on the vehicle 102, and may include, 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.
- the sensor(s) may include one or more remote sensors, such as, for example, sensors mounted on another autonomous vehicle, and/or sensors mounted in the environment 100.
- the vehicle 102 may be configured to transmit and/or receive data from other autonomous vehicles.
- the data may include sensor data and/or state data, such as sensor data associated with the environment 100.
- the vehicle computing device may be configured to detect an obj ect in the environment 100, such as object 112 and object 114 (e.g., a vehicle), just to name a few.
- the vehicle computing device may be configured to receive, detect, infer, estimate, or otherwise determine one or more trajectories (e.g., orientation, speed, acceleration, etc.) for the vehicle and each detected object.
- the object 112 is associated with obj ect trajectories 116(1) and 116(2)
- the object 114 is associated with object trajectories 118(1) and 118(2).
- the vehicle 102 is associated with the vehicle trajectories 120(1), 120(2), 120(3), and 120(4) determined by the vehicle computing device (e.g., using the perception component 422, the prediction component 424, or another model).
- the trajectory generator 104 may receive path information associated with the aforementioned object trajectories (e g., 116(1), 116(2), 118(1), and 118(2)) from a machine learned model.
- FIG. 1 shows two trajectories associated with the various objects, any number of objects may be detected and any number of object trajectories may be predicted for each object.
- a tree search can be used to determine which of the available vehicle trajectories to employ at a particular time so that an action by the vehicle can be updated based on potential intersections.
- the output may indicate which of the set of trajectories to track to over subsequent points in time.
- the trajectory generator 104 may determine a vehicle state and/or an object state at different times in the future.
- the trajectory' generator 104 may determine an action for the vehicle 112, the vehicle 114, and/or the vehicle 102 during simulation.
- actions e.g.. a steering action, a braking action, an acceleration action, and so on
- the trajectory generator 104 may select, determine, or otherwise predict a vehicle trajectory that the vehicle 102 may use to navigate in the environment 100 relative to one or more paths (e.g., the object trajectories 116(1) and 116(2) associated with the vehicle 112).
- the output data 108 can include a set of action trajectories for use during planning operations to cause the vehicle 102 to avoid the vehicle 112.
- the vehicle computing device may control the vehicle 102 in the environment based at least in part on the output data 108 (e.g., determine action trajectories to avoid the objects in the environment). For instance, the vehicle computing device may provide functionality to identify objects most likely to cause an intersection and communicate intersection information about the identified objects to other components of the vehicle computing device. Accordingly, potential intersections (e.g., a probability or likelihood of an intersection between object(s) and the vehicle) may be taken into account in operations (e.g., simulations, estimated states, interaction modeling, collision estimation, etc.) or other vehicle control planning operation (e.g., as determined by a planning component) to quickly and/or preemptively avoid objects, thereby improving safety of the vehicle.
- operations e.g., simulations, estimated states, interaction modeling, collision estimation, etc.
- vehicle control planning operation e.g., as determined by a planning component
- the output data 108 from the trajectory generator 104 can be used by a vehicle computing device in a variety of ways.
- the trajectory' generator 104 can generate a signal indicating information about the output data 108 (e.g., the action trajectories, tree information) for transmitting to a planning component (e.g., the planning component 110, planning component 426) of the vehicle computing device to control the vehicle 102 in the environment 100 (e.g., determine a vehicle trajectory and/or control a propulsion system, a braking system, or a steering system).
- one or more of: the vehicle trajectories 120(1), 120(2), 120(3), 120(4), and/or the object trajectories may represent a “corridor” as opposed to a line shown in FIG. 1.
- any of the trajectories as described herein may represent an area of the environment 100 that may be occupied by the vehicle 102 and/ or the obj ects 112 and 114 as the vehicle 102 traverses the environment 100.
- a training component of a remote computing device such as the training component 450 of the computing device(s) 436 and/or the vehicle computing device 404 may be implemented to train the trajectory' generator 104.
- 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., that is associated with a known or desired value (e.g., a desired classification, inference, prediction, etc.). Such values may generally be referred to as a “ground truth.”
- the training data may be used for image classification and, as such, may include an image of an environment that is captured by an autonomous vehicle and that is associated with one or more classifications.
- such a classification may be based on user input (e.g., user input indicating that the image depicts a specific ty pe of object) or may be based on the output of another machine learned model.
- labeled classifications (or more generally, the labeled output associated with training data) may be referred to as ground truth.
- FIG. 2 is a block diagram 200 of an example computing device implementing techniques to determine action trajectories for associating with a tree structure as described herein.
- a computing device 202 can implement the trajectory generator 104 to determine the output data 108 representing action trajectories for use with a tree search algorithm that searches the action trajectories as potential trajectories for the vehicle 102 to follow at a future time.
- a tree search can identify a vehicle trajectory to avoid potential interactions (e.g., intersections or near-intersections (e.g., within a threshold distance)) between one or more objects (e g., the object 112 and/or the object 114) and the vehicle 102.
- the computing device 202 may be associated with the vehicle computing device(s) 404 and/or the computing device(s) 436.
- the trajectory 7 generator 104 comprises a transform component 204, a resample component 206, an extrapolate component 208, a static aware component 210, and a stopping component 212.
- Some components e.g., the resample component 206, the extrapolate component 208, the static aware component 210. etc.
- the component e.g., the transform component 204, the stopping component 212, etc.
- the transform component 204. the resample component 206, the extrapolate component 208, the static aware component 210, and/or the stopping component 212 may communicate or exchange data using an API.
- the trajectory 7 generator 104 can receive an API call and route the API call to a component or generator.
- the trajectory generator 104 can employ one or more of the components to modify input data.
- FIG. 2 depicts a baseline trajectory 214A associated with a first example and a baseline trajectory 214B associated with a second example.
- any number of components may be implemented to generate action trajectories as described herein.
- additional baseline trajectories may be processed by the trajectory 7 generator 104 in a single example (e g., by a parallel processor unit).
- the first example and the second example receive a single trajectory 7 as input and generate multiple action trajectories as output.
- the baseline trajectory 214B is shown relative to a coordinate system with the X axis representing length and a velocity axis, in the present example.
- the baseline trajectory 214A can also be associated with a coordinate system, which has been omitted for clarity.
- the coordinate system may instead be associated with a three dimensional space.
- a baseline trajectory (e.g., the baseline trajectory 214A, etc.) can be associated with a trajectory type or region the trajectory wrll be used in (e.g., a region associated with a pick up/drop off area, a school zone, a highway, and the like).
- a baseline trajectory may differ from another baseline traj ectory by an area of intended use or another attribute such as a length, arclength, j ust to name a few.
- the baseline traj ectory can be associated with a traj ectory type (e.g. , follow, merge left, merge, right, turn left, turn right, though other types may also or instead be considered.
- a baseline trajectory can be associated with a lane reference or identifier such as whether the baseline is associated with a current lane (established), an adjacent lane, an adjacent but unusable lane, an oncoming lane, or an upcoming adjacent lane. Additionally, or alternatively, the baseline trajectory can be associated with a lane type as one or: drivable or non-drivable. A baseline trajectory may be used for filtering or identifying a parking lane for use during an emergency or for passenger pick-up/drop-off. In various examples, a type of baseline trajectory' can be based at least in part on the lane reference and/or lane type.
- the baseline trajectory can be. for example, monotonic in time and/or acceleration for ease of downstream processing, such as by the planning component 110 of FIG. 1.
- the baseline trajectory can include a constant acceleration and alike time intervals.
- one or more baseline trajectories can be received by the trajectory' generator 104 from a teleoperator (or model).
- the provided baseline trajectory can identify different velocity profiles for different portions of the baseline trajectory. For instance, a first section along the baseline trajectory can be associated with a first velocity for the vehicle to follow, and a second section can be associated with a second velocity for the vehicle, and so on.
- the transform component 204 can output, generate, or otherwise determine a transform trajectory’ 216A, a transform trajectory 216B, and a transform trajectory 216C (collectively referred to as the transform traj ectories 216).
- the transform component 204 can identify an operation to apply to input data, and in some examples apply a transformation.
- the transform trajectory 216A can, in some examples, be similar to the baseline trajectory' 214A.
- the transform trajectory' 216B and the transform trajectory 216C can each represent a trajectory that is offset laterally from a position associated with the baseline trajectory 214A.
- objective information included as the input data can identify an offset distance, a number of trajectories to produce, or other information for transforming the input data.
- the transform trajectories 216 can be generated up to a lane marker, a centerline, a roadway edge, or other area or region in an environment (e.g., a real-world environment or a simulated environment). As shown in FIG. 2, the transform component 204 can modify a lateral distance associated with one or more points along the baseline trajectory' to generate one or more points associated with the transform trajectory 216B and/or the transform trajectory' 216C. [0053] In various examples, the transform component 204 can modify a position and/or any other variable associated with a state associated with an input trajectory. For example, a vehicle state (e.g. a velocity) can be scaled across points of the baseline trajectory 214A to generate the transformed trajectories 216 (e.g., points having 80% of the velocity' associated with the baseline trajectory).
- a vehicle state e.g. a velocity
- the transformed trajectories 216 e.g., points having 80% of the velocity' associated with the baseline trajectory.
- the transform trajectories 216 can represent action trajectories for associating with a tree structure or for inputting to a tree search algorithm.
- the transform component 204 can be used to generate action trajectories without requiring processing by an additional component.
- the transform trajectories 216 can be input into the static aware component 210 for determining an action trajectory 218A, an action trajectory 218B, and an action trajectory’ 218C (collectively referred to as the action trajectories 218).
- the static aware component 210 can represent functionality’ to modify the transform trajectories 216 based at least in part on a simulated presence of a static object.
- the action trajectory 218A represents a trajectory for the vehicle 102 usable to stop prior to a static object shown as a box.
- the box is also shown relative to the transform trajectories 216 to show a relative position of a respective trajectory'.
- the action trajectory 218B and the action trajectory' 218C represent trajectories for the vehicle to use to avoid the static object.
- the action trajectories 218 in the illustrated example can also be thought of as a transformed, static aware trajectory'.
- the action trajectories 218 can be associated with a time period into the future such as that each point along a respective action trajectory is another point in time.
- the time period for an action trajectory’ is equal to a time period associated with the baseline trajectory 214A, though a length, velocity, or other vehicle state may differ between the action trajectory’ and the baseline trajectory'.
- an output from the static aware component 210 can cover a same time period into the future while another component (e.g., the stopping component 212) can generate an output associated with a different time period. For instance, some modifications to the input data can result in trajectories having a longer time period in the future than the input data.
- each baseline trajectory can include a same or different time period as another baseline trajectory’.
- the action trajectories 218 can be associated with a portion of a tree structure (e. g. , a node, a branch, etc. ) and/ or input to a tree search algorithm.
- a tree structure e. g. , a node, a branch, etc.
- the output from the static aw are component 210 may be input into another component for determining an output for associating with the tree structure.
- the order of the processing by a component can vary to produce different results.
- the resample component 206 can, for example, represent functionality for adding or removing a point along an input trajectory’ and/or modifying a position of the point(s) to generate an output trajectory having a different sampling of points than the input trajectory. For instance, the resample component 206 can modify a sample point position and/or a frequency of points along the input trajectory.
- the input trajectory e g., one or more baseline trajectories
- the resample component 206 can, for instance, modify a sampling of the points of the input traj ectory to provide a same number of control points associated with the output trajectories as a number of control points associated with the input trajectories and/or any other desired number of control points.
- the extrapolate component 208 can, for example, represent functionality for adding points to an end of the input trajectory (e.g., extending a baseline trajectory from a first end or a second end of the input trajectory). Additionally, or alternatively, the extrapolate component 208 can move one or more points of the input traj ectoiy to extend a time period associated with an output from the extrapolate component 208. In some examples, an extrapolated trajectory can include a new traj ectoiy extended from an end of the input trajectory’.
- the extrapolate component 208 can change a shape an input trajectory while retaining a same start position to generate a trajectory' that "covers” a different temporal space than the timeframe associated with the input trajectory'.
- An example including the extrapolate component 208 and the resample component 206 is discussed in relation to FIG. 3, and elsewhere.
- the static aware component 210 can receive an input trajectory(ies) (e.g., a baseline trajectory 7 , a trajectory' output by another component of the computing device 202) for modifying relative to one or more static objects (e.g., ground level, a building, a bridge, a sign, a traffic light, vegetation, and the like).
- the static aware component 210 can determine presence of a static object(s) in a path of the input traj ectoiy (ies). and generate a trajectory to avoid the static object(s).
- the static aware component 210 can receive input data from the transform component 204 (or a baseline trajectory), and provide output data to another component for processing (e.g., serve as an intermediary between components).
- the static aware component 210 can assign or determine a static object relative to a trajectory received as input, and cause the traj ectory to be altered to avoid the static obj ect.
- the trajectory generator 104 can sequentially predict output data at times TO, T1,... TN (where N is an integer greater than 1) using different components to generator, modify, or otherwise determine action trajectories.
- the baseline trajectory 214B can be processed by the transform component 204 and the stopping component 212, though other numbers and/or combinations of components may be used.
- the baseline trajectory 214B represents a constant velocity that begins to change over time although in other examples a variety of other shapes may be represented.
- FIG. 2 shows the baseline trajectory 214B with velocity on a first axis, and X to represent length or another variable on a second axis.
- the transform component 204 outputs a transform trajectory' 220A and a transform trajectory' 220B, each having a different shape from the baseline trajectory' 214B.
- the transform trajectory 220A can include a same number of points as the baseline trajectory 214B with at least some of the points repositioned to modify a shape of the baseline trajectory 214B.
- the transform trajectory 220A and the transform trajectory 220B are input to the stopping component 212.
- the stopping component 212 can, for example, represent functionality for determining a stopping trajectory based at least in part on an input trajectory.
- the stopping component 212 can receive a baseline traj ectory and/or a traj ectory from another component and identify a stopping action to cause a vehicle to safely stop (with consideration to passenger safety 7 and comfort).
- the stopping component 212 can output stopping trajectories for further processing by another component while in other examples, such as FIG. 2, the output represents an action trajectory 222 A. an action trajectory 222B, an action trajectory 222C, and an action trajectory 222D (collectively referred to as the action trajectories 222).
- the action trajectory 222B can represent a stopping action associated with a higher braking force than the action trajectory 222A, for example.
- the action trajectories 222 can represent different deceleration profiles and may continue until the vehicle reaches zero velocity.
- the stopping component 212 can cause a new velocity profile to be applied to any point along the transform trajectory 7 220A and/or the transform trajectory 220B.
- the action trajectories 222 can be transmitted to a vehicle computing device for further processing (e.g., to associate with a tree search configured to determine a vehicle trajectory 7 ).
- the vehicle computing device can simulate possible actions for the vehicle and/or objects over time using the tree search. For instance, if a vehicle takes a first action at a first time, such as 100 milliseconds (ms) into the simulation, the vehicle computing device can determine a second action for the vehicle based on the first action taken by the vehicle. In this way, the vehicle computing device can provide functionality to consider possible actions at each instance of the simulation (e.g.. over 4 seconds).
- the vehicle computing device can determine actions for both the vehicle 102 and one or more objects in the environment (e g., the object 112 and the object 114) that are dependent upon previous actions as time increases during the simulation.
- the computing device 202 can implement a tree search that comprises branches corresponding to action trajectories.
- the computing device 202 can implement a tree search having branches corresponding to different vehicle trajectories (e.g., the action trajectories 218 and/or the action trajectories 222), and a search of the tree structure can occur every 7 100ms (or other interval) identifying one of the vehicle trajectories that is safest for operation in the environment.
- a tree search can determine potential interactions between object trajectories of different objects and/or object trajectories and vehicle trajectories, and the potential interactions determined by the tree search can be used in a simulation.
- the tree search can identify 7 potential interactions over time to reduce a number of potential interactions for a later time (e.g., at each second or other time interval the tree search can determine a most likely interaction between object(s) and the vehicle).
- vehicle actions e.g., action trajectories
- tree branches can be pruned or ignored if a cost associated wi th an action meets or exceeds a threshold cost.
- one or more actions may be contemplated at discrete steps in the future (e.g., at fixed time, distance intervals, or some other event-based step).
- the tree may branch at such discrete points based on differing actions that the vehicle could take at those points and the methods described herein may be used in selecting between those branches when expanding the tree. For instance, branches may be explored having the lowest cost and/or in which there is no adverse event (e.g., collision, uncomfortable control, etc.).
- the trajectory generator 104 can comprise a memory allocation component (not shown) to allocate the input data associated with one or more components in one or more memories of the computing device 202.
- allocating or assigning data in memory' comprises the memory allocation component determining a location or portion of the memory' for efficient processing of the input data.
- a processor e.g., one or more GPUs
- the memory allocation component allocates the input data to a parallel processor unit (e.g., a CPU, GPU, or the like capable of processing input data at substantially a same time).
- the trajectory generator 104 can process multiple baseline trajectories as input substantially simultaneously.
- output from one or more components e.g.., the transform component 204, the resample component 206, etc.
- output from one or more components can be determined in parallel using a parallel processor unit.
- FIG. 3 is a block diagram 300 of an example computing device implementing techniques to determine action trajectories for associating with a tree structure.
- a computing device 202 can implement the trajectory generator 104 to determine the output data 108 representing action trajectories for use with a tree search algorithm that searches the action trajectories as potential trajectories for the vehicle 102 to follow at a future time.
- a tree search can identify a vehicle trajectory' to avoid potential interactions (e.g., intersections or near-intersections (e.g., within a threshold distance)) between one or more objects (e.g.. the object 112, the object 114, and/or the object 114) and the vehicle 102.
- the computing device 202 may be associated with the vehicle computing device(s) 404 and/or the computing device(s) 436.
- FIG. 3 depicts the transform component 204 receiving a baseline trajectory' 302 and outputting a transform trajectory 304A, a transform trajectory 304B, and a transform trajectory 304C (collectively referred to as the transform trajectories 304).
- the transform trajectories 304 can represent a variety of modifications to the baseline trajectory 302 including repositioning of points defining the baseline trajectory' 302.
- the transform component 204 may determine the transform trajectories 304 by determining an offset distance from one or more points along the baseline trajectory 302. Points defining one of the transform trajectories 304 can be determined by the transform component 204 based on input data identifying predetermined values identifying an amount to scale a particular point and/or a number of points to reposition. In some examples, the predetermined values can be determined based on input from a model and/or an administrator (a human) to cause a different number of action trajectories to be determined with a variety of shapes.
- the resample component 206 can, in some examples, receive the transform trajectories 304 and apply one or more algorithms to output a resample traj ectory 306 A, a resample traj ectory 306B, and a resample trajectory’ 306C (collectively referred to as the resample trajectories 306).
- the resample trajectory’ 306A can have a same or different shape as the transform trajectory 304A.
- the resample component 206 can modify a number of points and/or a position of a point along the transform trajectories 304 to generate the resample trajectories 306.
- the block diagram 300 further depicts the extrapolate component 208 receiving the resample trajectories 306 from the resample component 206, and outputting an action trajectory 308A, an action trajectory' 308B, and an action trajectory 308C (collectively referred to as the action trajectories 308).
- the extrapolate component 208 can, for example, modify each of the resample trajectories 306 by generating an additional trajectory portion to an end of the corresponding resample trajectory'.
- the extrapolate component 208 can add the additional trajectory portion to extend a length along a traj ectory received as input, and to cover additional times in the future.
- a tree search 310 may be performed by the trajectory generator 104 using the action trajectories 308.
- the tree search 310 can include node branches, edges, or the like, of a tree structure which can be associated with the action trajectories 308.
- the tree search 310 may be performed using a tree structure which generates outputs at different time intervals as described herein.
- the computing device 202 may perform a variety’ of simulations between a vehicle and one or more objects with consideration to one or more of the action trajectories 308 (or a vehicle trajectory determined therefrom).
- the trajectory generator 104 (or component thereof) can determine output data based at least in part on the vehicle state data such as a position, a velocity', an acceleration, etc. of the vehicle 102.
- the trajectory’ generator 104 can determine the action trajectories based at least in part on the vehicle state data. For instance, based on the velocity' of vehicle 102, the trajectory generator 104 can determine a feasible trajectory for the vehicle 102 to follow in an environment.
- dynamics and/or kinematics of the vehicle 102 can be considered by the trajectory' generator 104 when determining the transform trajectories 216, the action trajectories 218, the action trajectories 222, etc.
- trajectory' generator 104 need not be based on state data or necessarily be feasible dynamically.
- techniques to evaluate trajectories described herein in relation to FIGS. 1-3 may be implemented by other vehicle systems, components, and/or computing devices.
- the prediction techniques described herein in relation to FIGS. 1-3 may be implemented at least partially by or in association with a perception component, a planning component, and/or a model component of FIG. 4.
- FIG. 4 is a block diagram of an example system 400 for implementing the techniques described herein.
- the system 400 may include a vehicle, such as vehicle 402.
- the vehicle 402 may include a vehicle computing device 404, one or more sensor systems 406, one or more emitters 408, one or more communication connections 410, at least one direct connection 412, and one or more drive system(s) 414.
- the vehicle computing device 404 may include one or more processors 416 and memory' 418 communicatively coupled with the one or more processors 416.
- the vehicle 402 is an autonomous vehicle; however, the vehicle 402 could 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).
- the autonomous vehicle 402 may be an autonomous vehicle configured to operate according to a Level 5 classification issued by the U.S. National Highway Traffic Safety Administration, which describes a vehicle capable of performing all safety-critical functions for the entire trip, with the driver (or occupant) not being expected to control the vehicle at any time.
- the autonomous vehicle 402 may be a fully or partially autonomous vehicle having any other level or classification.
- the vehicle computing device 404 may store sensor data associated with actual location of an object at the end of the set of estimated states (e.g., end of the period of time) and may use this data as training data to train one or more models.
- the vehicle computing device 404 may provide the data to a remote computing device (i.e., computing device separate from vehicle computing device such as the computing device(s) 436) for data analysis.
- the remote computing device(s) may analyze the sensor data to determine an actual location, velocity, direction of travel, or the like of the object at the end of the set of estimated states.
- the memory 418 of the vehicle computing device 404 stores a localization component 420, a perception component 422, a prediction component 424, a planning component 426, one or more system controllers 428, one or more maps 430, and a model component 432 including one or more model(s), such as a first model 434A, a second model 434B, up to an Nth model 434N (collectively “models 434”), where N is an integer.
- models 434 including one or more model(s), such as a first model 434A, a second model 434B, up to an Nth model 434N (collectively “models 434”), where N is an integer.
- the planning component 426, one or more system controllers 428, one or more maps 430, and/or the model component 432 including the model(s) 434 may additionally, or alternatively, be accessible to the vehicle 402 (e.g., stored on, or otherwise accessible by, memory remote from the vehicle 402, such as, for example, on memory 440 of a remote computing device 436).
- the localization component 420 may include functionality to receive data from the sensor system(s) 406 to determine a position and/or orientation of the vehicle 402 (e.g., one or more of an x-, y-, z-position, roll, pitch, or yaw).
- the localization component 420 may include and/or request / receive a map of an environment, such as from map(s) 430 and/or map component 446, and may continuously determine a location and/or orientation of the autonomous vehicle within the map.
- the localization component 420 may utilize SLAM (simultaneous localization and mapping), CLAMS (calibration, localization and mapping, simultaneously), relative SLAM, bundle adjustment, non-linear least squares optimization, or the like to receive image data, lidar data, radar data, IMU data, GPS data, wheel encoder data, and the like to accurately determine a location of the autonomous vehicle.
- the localization component 420 may provide data to various components of the vehicle 402 to determine an initial position of an autonomous vehicle for detennining the relevance of an object to the vehicle 402, as discussed herein.
- the perception component 422 may include functionality- to perform object detection, segmentation, and/or classification.
- the perception component 422 may provide processed sensor data that indicates a presence of an object (e.g., entity) that is proximate to the vehicle 402 and/or a classification of the object as an object type (e.g., car, pedestrian, cyclist, animal, building, tree, road surface, curb, sidewalk, unknown, etc.).
- the perception component 422 may provide processed sensor data that indicates a presence of a stationary entity’ that is proximate to the vehicle 402 and/or a classification of the stationary’ entity as a type (e.g., building, tree, road surface, curb, sidewalk, unknown, etc.).
- the perception component 422 may provide processed sensor data that indicates one or more features associated with a detected object (e.g., a tracked object) and/or the environment in which the object is positioned.
- features associated with an object may include, but are not limited to, an x-position (global and/or local position), a y-position (global and/or local position), a z-position (global and/or local position), an orientation (e.g., a roll, pitch, yaw), an object type (e.g., a classification), a velocity of the object, an acceleration of the object, an extent of the object (size), etc.
- the prediction component 424 can generate one or more probability maps representing prediction probabilities of possible locations of one or more objects in an environment. For example, the prediction component 424 can generate one or more probability maps for vehicles, pedestrians, animals, and the like within a threshold distance from the vehicle 402.
- the prediction component 424 can measure a track of an object and generate a discretized prediction probability map, a heat map, a probability distribution, a discretized probability distribution, and/or a trajectory for the object based on observed and predicted behavior.
- the one or more probability maps can represent an intent of the one or more obj ects in the environment.
- the prediction component 424 may generate predicted trajectories of objects (e.g., objects) in an environment and/or to generate predicted candidate trajectories for the vehicle 402. For example, the prediction component 424 may generate one or more predicted trajectories for objects within a threshold distance from the vehicle 402. In some examples, the prediction component 424 may measure a trace of an object and generate a trajectory for the object based on observed and predicted behavior.
- objects e.g., objects
- the prediction component 424 may measure a trace of an object and generate a trajectory for the object based on observed and predicted behavior.
- the planning component 426 may determine a path for the vehicle 402 to follow to traverse through an environment. For example, the planning component 426 may determine various routes and trajectories and various levels of detail. For example, the planning component 426 may determine a route to travel from a first location (e.g., a current location) to a second location (e.g., a target location). For the purpose of this discussion, a route may include a sequence of waypoints for travelling between two locations. As non-limiting examples, waypoints include streets, intersections, global positioning system (GPS) coordinates, etc. Further, the planning component 426 may generate an instruction for guiding the autonomous vehicle along at least a portion of the route from the first location to the second location.
- GPS global positioning system
- the planning component 426 may determine how to guide the autonomous vehicle from a first waypoint in the sequence of waypoints to a second waypoint in the sequence of waypoints.
- the instruction may be a candidate trajectory, or a portion of a trajectory.
- multiple trajectories may be substantially simultaneously generated (e.g., within technical tolerances) in accordance with a receding horizon technique. A single path of the multiple paths in a receding data horizon having the highest confidence level may be selected to operate the vehicle.
- the planning component 426 can select a trajectory for the vehicle 402 based at least in part on receiving data representing an output of the model component 432 and/or otherwise determine a desired set of trajectories by using a tree search with various input trajectories, as discussed herein.
- the planning component 426 can alternatively, or additionally, use data from the localization component 420, the perception component 422, and/or the prediction component 424 to determine a path for the vehicle 402 to follow to traverse through an environment.
- the planning component 426 can receive data from the localization component 420, the perception component 422, and/or the prediction component 424 regarding obj ects associated with an environment. Using this data, the planning component 426 can determine a route to travel from a first location (e.g., a cunent location) to a second location (e.g., a target location) to avoid objects in an environment.
- a first location e.g., a cunent location
- a second location e.g., a target location
- such a planning component 426 may determine there is no such collision free path and, in turn, provide a path which brings vehicle 402 to a safe stop avoiding all collisions and/or otherwise mitigating damage. Additionally or alternatively, the planning component 426 can determine the path for the vehicle 402 to follow based at least in part on data received from the trajectory’ generator 104 described in FIGS. 1-3 and elsewhere.
- the vehicle computing device 404 may include one or more system controllers 428, which may be configured to control steering, propulsion, braking, safety, emitters, communication, and other systems of the vehicle 402.
- the system controller(s) 428 may communicate with and/or control corresponding systems of the drive system(s) 414 and/or other components of the vehicle 402.
- the memory 418 may further include one or more maps 430 that may be used by the vehicle 402 to navigate within the environment.
- a map may be any number of data structures modeled in two dimensions, three dimensions, or N-dimensions that are capable of providing information about an environment, such as, but not limited to, topologies (such as intersections), streets, mountain ranges, roads, terrain, and the environment in general.
- a map may include, but is not limited to: texture information (e.g., color information (e.g., RGB color information, Lab color information, HSV/HSL color information), and the like), intensity information (e.g., lidar information, radar information, and the like); spatial information (e.g..).
- a map may include a three- dimensional mesh of the environment.
- the vehicle 402 may be controlled based at least in part on the map(s) 430. That is, the map(s) 430 may be used in connection with the localization component 420, the perception component 422, the prediction component 424, and/or the planning component 426 to determine a location of the vehicle 402, detect objects in an environment, generate routes, determine actions and/or trajectories to navigate within an environment.
- the one or more maps 430 may be stored on a remote computing device(s) (such as the computing device(s) 436) accessible via network(s) 442.
- multiple maps 430 may be stored based on, for example, a characteristic (e.g., ty pe of entity', time of day, day of week, season of the year, etc.). Storing multiple maps 430 may have similar memory requirements, but increase the speed at which data in a map may be accessed.
- the vehicle computing device 404 may include a model component 432.
- the model component 432 may be configured to perform the functionality of the trajectory' generator 104, including determining one or more action trajectories, such as the action trajectories 218 and 220 of FIG. 2 and the action trajectories 308 of FIG. 3.
- the model component 432 may receive one or more features associated with the detected object(s) from the perception component 422 and/or from the sensor system(s) 406.
- the model component 432 may receive environment characteristics (e.g., environmental factors, etc.) and/or weather characteristics (e.g., weather factors such as snow, rain, ice, etc.) from the perception component 422 and/or the sensor system(s) 406. While shown separately in FIG. 4, the model component 432 could be part of the prediction component 424, the planning component 426, or other component(s) of the vehicle 402.
- the model component 432 may send predictions from the one or more models 434 that may be used by the prediction component 424 and/or the planning component 426 to generate one or more predicted trajectories of the object (e.g., direction of travel, speed, etc.) and/or one or more predicted trajectories of the object (e.g., direction of travel, speed, etc.), such as from the prediction component thereof.
- the planning component 426 may determine one or more actions (e.g., reference actions and/or sub-actions) for the vehicle 402. such as vehicle candidate trajectories.
- the model component 432 may be configured to determine whether an object intersects at an intersection point based at least in part on the one or more actions for the vehicle 402. In some examples, the model component 432 may be configured to determine the actions that are applicable to the environment, such as based on environment characteristics, weather characteristics, or the like.
- the model component 432 may generate sets of estimated states of the vehicle and one or more detected objects forward in the environment over a time period.
- the model component 432 may generate a set of estimated states for each action (e.g., reference action and/or sub-action) determined to be applicable to the environment.
- the sets of estimated states may include one or more estimated states, each estimated state including an estimated position of the vehicle and an estimated position of a detected obj ect(s).
- the estimated positions may be determined based on a detected trajectory and/or predicted trajectories associated with the object. In some examples, the estimated positions may be determined based on an assumption of substantially constant velocity’ and/or substantially constant trajectory (e g., little to no lateral movement of the object). In some examples, the estimated positions (and/or potential trajectories) may be based on passive and/or prediction. In some examples, the model component 432 may utilize physics and/or geometry based techniques, machine learning, linear temporal logic, tree search methods, heat maps, and/or other techniques for determining predicted trajectories and/or estimated positions of objects.
- the estimated states may be generated periodically throughout the time period.
- the model component 432 may generate estimated states at 0. 1 second intervals throughout the time period.
- the model component 432 may generate estimated states at 0.05 second intervals.
- the estimated states may be used by the planning component 426 in determining an action (e.g., the trajectory 120(1), the trajectory 7 120(2), the trajectory 120(3), and the trajectory 7 120(4)) for the vehicle 402 to follow in an environment.
- the model component 432 may utilize machine learned techniques to predict risks associated with evaluated trajectories.
- the machine learned algorithms may be trained to determine, based on sensor data and/or previous predictions by the model, that an object is likely to behave in a particular way relative to the vehicle 402 at a particular time during a set of estimated states (e.g., time period).
- one or more of the vehicle 402 state (position, velocity, acceleration, trajectory, etc.) and/or the object state, classification, etc. may be input into such a machine learned model and, in turn, a behavior prediction may be output by the model.
- characteristics associated with each object ty pe may be used by the model component 432 to determine an object velocity or acceleration usable to predict potential intersection(s) between objects and/or between the vehicle 402 and one or more objects.
- characteristics of an obj ect ty pe may include, but not be limited to: a maximum longitudinal acceleration, a maximum lateral acceleration, a maximum vertical acceleration, a maximum speed, maximum change in direction for a given speed, and the like.
- the components discussed herein e.g., the localization component 420, the perception component 422, the prediction component 424, the planning component 426, the one or more system controllers 428, the one or more maps 430, the model component 432 including the model(s) 434 are described as divided for illustrative purposes. However, the operations performed by the various components may be combined or performed in any other component.
- such an architecture can include a first computing device to control the vehicle 402 and a secondary safety 7 system that operates on the vehicle 402 to validate operation of the primary system and to control the vehicle 402 to avoid collisions.
- aspects of some or all of the components discussed herein may include any models, techniques, and/or machine learned techniques.
- the components in the memon 418 (and the memory 440, discussed below) may be implemented as a neural network.
- an exemplary' neural network is a technique which passes input data through a series of connected layers to produce an output.
- Each layer in a neural network may also comprise another neural network, or may comprise any number of layers (whether convolutional ornot).
- a neural network may utilize machine learning, which may refer to a broad class of such techniques in which an output is generated based on learned parameters.
- machine learning techniques may include, but are not limited to, regression techniques (e.g., ordinary least squares regression (OLSR), linear regression, logistic regression, stepwise regression, multivariate adaptive regression splines (MARS), locally- estimated scatterplot smoothing (LOESS)), instance-based techniques (e.g..
- regression techniques e.g., ordinary least squares regression (OLSR), linear regression, logistic regression, stepwise regression, multivariate adaptive regression splines (MARS), locally- estimated scatterplot smoothing (LOESS)
- instance-based techniques e.g.
- ridge regression ridge regression, least absolute shrinkage and selection operator (LASSO), elastic net, least-angle regression (LARS)), decisions tree techniques (e.g., classification and regression tree (CART), iterative dichotomiser 3 (ID3), Chi-squared automatic interaction detection (CHAID), decision stump, conditional decision trees), Bayesian techniques (e.g., naive Bayes, Gaussian naive Bayes, multinomial naive Bayes, average one- dependence estimators (AODE), Bayesian belief network (BNN), Bayesian networks), clustering techniques (e.g., k-means, k-medians, expectation maximization (EM), hierarchical clustering), association rule learning techniques (e.g., perceptron, back-propagation, hopfield network, Radial Basis Function Network (RBFN)), deep learning techniques (e.g., Deep Boltzmann Machine (DBM), Deep Belief Networks (DBN), Convolutional Neural Network (CNN), Stacked
- the sensor system(s) 406 may include lidar sensors, radar sensors, ultrasonic transducers, sonar sensors, location 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, environment sensors (e.g., temperature sensors, humidity sensors, light sensors, pressure sensors, etc.), etc.
- the sensor system(s) 406 may include multiple instances of each of these or other types of sensors.
- the lidar sensors may include individual lidar sensors located at the comers, front, back, sides, and/or top of the vehicle 402.
- the camera sensors may include multiple cameras disposed at various locations about the exterior and/or interior of the vehicle 402.
- the sensor system(s) 406 may provide input to the vehicle computing device 404. Additionally, or in the alternative, the sensor system(s) 406 may send sensor data, via the one or more networks 442, to the one or more computing device(s) 436 at a particular frequency, after a lapse of a predetermined period of time, in near real-time, etc.
- the vehicle 402 may also include one or more emitters 408 for emitting light and/or sound.
- the emitter(s) 408 may include interior audio and visual emitters to communicate with passengers of the vehicle 402.
- interior emitters may include speakers, lights, signs, display screens, touch screens, haptic emitters (e.g., vibration and/or force feedback), mechanical actuators (e.g., seatbelt tensioners, seat positioners, headrest positioners, etc.), and the like.
- the emitter(s) 408 may also include exterior emitters.
- the exterior emitters may include lights to signal a direction of travel or other indicator of vehicle action (e g., indicator lights, signs, light arrays, etc.), and one or more audio emitters (e.g., speakers, speaker arrays, horns, etc.) to audibly communicate with pedestrians or other nearby vehicles, one or more of which comprising acoustic beam steering technology.
- lights to signal a direction of travel or other indicator of vehicle action e g., indicator lights, signs, light arrays, etc.
- audio emitters e.g., speakers, speaker arrays, horns, etc.
- the vehicle 402 may also include one or more communication connections 410 that enable communication between the vehicle 402 and one or more other local or remote computing device(s).
- the communication connection(s) 410 may facilitate communication with other local computing device(s) on the vehicle 402 and/or the drive system(s) 414.
- the communication connection(s) 410 may allow the vehicle to communicate with other nearby computing device(s) (e g., remote computing device 436, other nearby vehicles, etc.) and/or one or more remote sensor system(s) 444 for receiving sensor data.
- the communications connection(s) 410 also enable the vehicle 402 to communicate with a remote teleoperations computing device or other remote services.
- the communications connection(s) 410 may include physical and/or logical interfaces for connecting the vehicle computing device 404 to another computing device or a network, such as network(s) 442.
- the communications connection(s) 410 can enable Wi-Fi-based communication such as via frequencies defined by the IEEE 802.11 standards, short range wireless frequencies such as Bluetooth, cellular communication (e.g., 2G, 3G, 4G, 4G LTE, 5G, etc.) or any suitable wired or wireless communications protocol that enables the respective computing device to interface with the other computing device(s).
- the vehicle 402 may include one or more drive systems 414. In some examples, the vehicle 402 may have a single drive system 414.
- the vehicle 402 has multiple drive systems 414, individual drive systems 414 may be positioned on opposite ends of the vehicle 402 (e.g.. the front and the rear. etc.).
- the drive system(s) 414 may include one or more sensor systems to detect conditions of the drive system(s) 414 and/or the surroundings of the vehicle 402.
- the sensor system(s) may include one or more wheel encoders (e.g., rotary 7 encoders) to sense rotation of the wheels of the drive modules, inertial sensors (e.g., inertial measurement units, accelerometers, gyroscopes, magnetometers, etc.) to measure orientation and acceleration of the dnve module, cameras or other image sensors, ultrasonic sensors to acoustically detect objects in the surroundings of the drive module, lidar sensors, radar sensors, etc.
- Some sensors, such as the wheel encoders may be unique to the drive system(s) 414. In some cases, the sensor system(s) on the drive system(s) 414 may overlap or supplement corresponding systems of the vehicle 402 (e.g., sensor system(s) 406).
- the drive system(s) 414 may include many of the vehicle systems, including a high voltage battery, a motor to propel the vehicle, an inverter to convert direct current from the battery 7 into alternating current for use by other vehicle systems, a steering system including a steering motor and steering rack (which can be electric), a braking system including hydraulic or electric actuators, a suspension system including hydraulic and/or pneumatic components, a stability 7 control system for distributing brake forces to mitigate loss of traction and maintain control, an HVAC system, lighting (e.g., lighting such as head/tail lights to illuminate an exterior surrounding of the vehicle), and one or more other systems (e.g., cooling system, safety systems, onboard charging system, other electrical components such as a DC/DC converter, a high voltage junction, a high voltage cable, charging system, charge port, etc ).
- the drive system(s) 414 may include a drive module controller which may receive and preprocess data from the sensor sy stem(s) and to control operation of the various vehicle systems.
- the drive module controller may include one or more processors and memory communicatively coupled with the one or more processors.
- the memory may store one or more modules to perform various functionalities of the drive system(s) 414.
- the drive system(s) 414 may 7 also include one or more communication connection(s) that enable communication by the respective drive module with one or more other local or remote computing device(s).
- the direct connection 412 may provide a physical interface to couple the one or more drive system(s) 414 with the body of the vehicle 402.
- the direct connection 412 may allow the transfer of energy, fluids, air, data, etc. between the drive system(s) 414 and the vehicle.
- the direct connection 412 may further releasably secure the drive system(s) 414 to the body of the vehicle 402.
- the localization component 420, the perception component 422, the prediction component 424, the planning component 426, the one or more system controllers 428, the one or more maps 430, and the model component 432 may process sensor data, as described above, and may send their respective outputs, over the one or more network(s) 442. to the computing device(s) 436.
- the localization component 420, the perception component 422, the prediction component 424, the planning component 426, the one or more system controllers 428, the one or more maps 430, and the model component 432 may send their respective outputs to the remote computing device(s) 436 at a particular frequency, after a lapse of a predetermined period of time, in near realtime, etc.
- the vehicle 402 may send sensor data to the computing device(s) 436 via the network(s) 442. In some examples, the vehicle 402 may receive sensor data from the computing device(s) 436 and/or remote sensor system(s) 444 via the network(s) 442.
- the sensor data may include raw sensor data and/or processed sensor data and/or representations of sensor data. In some examples, the sensor data (raw or processed) may be sent and/or received as one or more log files.
- the computing device(s) 436 may include processor(s) 438 and a memory' 440 storing the map component 446, a sensor data processing component 448, and a training component 450.
- the map component 446 may include functionality’ to generate maps of various resolutions.
- the map component 446 may send one or more maps to the vehicle computing device 404 for navigational purposes.
- the sensor data processing component 448 may' be configured to receive data from one or more remote sensors, such as sensor system(s) 406 and/or remote sensor system(s) 444.
- the sensor data processing component 448 may be configured to process the data and send processed sensor data to the vehicle computing device 404, such as for use by the model component 432 (e.g., the model(s) 434). In some examples, the sensor data processing component 448 may be configured to send raw sensor data to the vehicle computing device 404.
- the training component 450 can include functionality to train a machine learning model to output evaluate trajectories.
- the training component 450 can receive sensor data that represents an object traversing through an environment for a period of time, such as 0. 1 milliseconds, 1 second, 3, seconds, 5 seconds, 7 seconds, and the like. At least a portion of the sensor data can be used as an input to train the machine learning model.
- the training component 450 may be executed by the processor(s) 438 to train the a machine learning model based on training data.
- the training data may include a wide variety of data, such as sensor data, audio data, image data, map data, inertia data, vehicle state data, historical data (log data), or a combination thereof, that is associated with a value (e.g., a desired classification, inference, prediction, etc.). Such values may generally be referred to as a “ground truth.”
- the training data may be used for determining risk associated with evaluated trajectories and. as such, may include data representing an environment that is captured by an autonomous vehicle and that is associated with one or more classifications or determinations.
- such a classification may be based on user input (e.g., user input indicating that the data depicts a specific risk) or may be based on the output of another machine learned model.
- labeled classifications (or more generally, the labeled output associated with training data) may be referred to as ground truth.
- the training component 450 can include functionality to train a machine learning model to output classification values.
- the training component 450 can receive data that represents labelled collision data (e.g. publicly available data, sensor data, and/or a combination thereof). At least a portion of the data can be used as an input to train the machine learning model.
- the training component 450 can be trained to output potential intersect! on(s) associated with objects, as discussed herein.
- the training component 450 can include training data that has been generated by a simulator.
- simulated training data can represent examples where a vehicle collides with an object in an environment or nearly collides with an object in an environment, to provide additional training examples.
- the processor(s) 416 of the vehicle 402 and the processor(s) 438 of the computing device(s) 436 may be any suitable processor capable of executing instructions to process data and perform operations as described herein.
- the processor(s) 416 and 438 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 to transform that electronic data into other electronic data that may be stored in registers and/or memory.
- integrated circuits e.g., ASICs, etc.
- gate arrays e.g., FPGAs, etc.
- other hardware devices may also be considered processors in so far as they are configured to implement encoded instructions.
- Memory 418 and memory 7 440 are examples of non-transitory computer-readable media.
- the memory 418 and memory 440 may store an operating system and one or more software applications, instructions, programs, and/or data to implement the methods described herein and the functions attributed to the various systems.
- the memory 7 may be implemented using any suitable memory 7 technology 7 , such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), nonvolatile/Flash-type memory 7 , or any other ty pe of memory 7 capable of storing information.
- SRAM static random access memory
- SDRAM synchronous dynamic RAM
- Flash-type memory 7 any other ty pe of memory 7 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 that are related to the discussion herein.
- FIG. 4 is illustrated as a distributed system, in alternative examples, components of the vehicle 402 may be associated with the computing device(s) 436 and/or components of the computing device(s) 436 may be associated with the vehicle 402. That is, the vehicle 402 may perform one or more of the functions associated with the computing device(s) 436, and vice versa.
- FIG. 5 is a flowchart depicting an example process for detennining action trajectories for associating with a tree structure using one or more example components.
- some or all of the process 500 can be performed by one or more components in FIG. 4, as described herein.
- some or all of the process 500 can be performed by the vehicle computing device 404 or the computing device 202.
- the process may include receiving a trajectory associated with a vehicle in an environment, the trajectory including a direction, a velocity, and an acceleration.
- the operation 502 may include a computing device receiving one or more baseline trajectories as input data.
- the trajectory' e.g., the baseline trajectory(ies)
- the trajectory' may be determined by the prediction component 424, or some other component, for example.
- a storage device e.g. memory, database, and the like
- profile data identifying information about multiple baseline trajectories can be stored in the trajectory' generator 104 as input.
- the profile data can include profiles for different baseline trajectories, and a profile can include one or more of: a baseline trajectory identifier (e.g., a value uniquely identifying each baseline trajectory in the storage device), information about which generators to implement with a particular baseline trajectory, a control policy, or a human-readable description for each baseline trajectory'.
- a baseline trajectory identifier e.g., a value uniquely identifying each baseline trajectory in the storage device
- information about which generators to implement with a particular baseline trajectory e.g., a control policy, or a human-readable description for each baseline trajectory'.
- the process may include receiving an instruction to use a generator from as set of available generators to modify the trajectory.
- the operation 504 may include the trajectory generator 104 implementing the transform component 204. the resample component 206, and/or the extrapolate component 208 (or different model) that is configured to modify the trajectory in a variety' of ways as described herein.
- the computing device 202 can generate the instruction for sending to the trajectory generator 104 based at least in part on identifying the generator(s) to implement with a particular baseline trajectory as indicated by the profile data.
- the process may include inputting, based at least in part on the instruction, the traj ectory to the generator.
- the operation 506 may include the trajectory generator 104 receiving the one or more baseline trajectories as input, identifying which generators to execute based on information associated with the instruction, and inputting the trajectory into the identified generator.
- the process may include determining, by the generator, an output representing a set of action trajectories for the vehicle.
- the operation 508 may include the trajectory generator 104 implementing one or more components or models to modify (e.g., transform, resample, extrapolate, add static awareness, add a stopping trajectory, etc.) a single trajectory to generate multiple action trajectories, such as the action trajectories 218 and 222, and the action trajectories 308, just to name a few.
- the set of action trajectories for the vehicle may include a single modified trajectory, or multiple trajectories, depending on whether or not the generator implemented produces a single output or multiple outputs. In examples when multiple generators are implemented, the set of action trajectories can represent a final output from the last component implemented.
- the operation 508 may include, in some examples, the computing device 202 implementing the memory allocation component to allocate data for input to a parallel processing unit such as the input trajectory and other data usable for determining the set of action trajectories, as discussed herein.
- the set of action trajectories can represent a change in time and/or space from the input trajectory .
- the process may include inputting the set of action trajectories to a tree search algorithm.
- the operation 510 may include the trajectory generator 104 (or another component) assigning each action trajectory in of the set of action trajectories to a portion of a tree structure that is searchable using the tree search algorithm.
- the process may include controlling the vehicle in the environment at a future time based at least in part on an output from the tree search algorithm.
- the operation 512 may include the trajectory generator 104 transmitting data associated with the set of action trajectories to the planning component 110, the planning component 426, or other component usable for planning operations.
- the vehicle computing device can implement a model to generate a vehicle trajectory to control the vehicle in an environment based at least in part on the set of action trajectories.
- the planning component 426 may process information associated with the set of action trajectories to determine a candidate trajectory, or other action for the vehicle, to avoid the potential intersections with the objects.
- the vehicle computing device 404 can control steering, braking, acceleration, and so on, of the vehicle in an environment in the future based at least on the information from the trajectory generator 104.
- process 500 may return to 502 after performing operation 512.
- the vehicle may continuously monitor for potential collisions and update/modify decisions regarding whether to engage a safety system or not (which may, in at least some examples, include performing one or more maneuvers to mitigate or minimize an impact).
- the process may repeat with a given frequency and generate one or more occupancy grids associated with one or more multiple times in the future for making the determinations above.
- FIG. 5 illustrates an example process in accordance with examples of the disclosure. These process is illustrated as logical flow graphs, each operation of which represents a sequence of operations that can be implemented in hardware, software, or a combination thereof.
- 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 recited operations.
- computer-executable instructions include routines, programs, obj ects, components, data structures, and the like that perform particular functions or implement particular abstract data t pes.
- the example process may omit operation 512 and instead verify operation of a vehicle controller.
- the methods described herein represent sequences of operations that can be implemented in hardware, software, or a combination thereof.
- the blocks represent computerexecutable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations.
- 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 a limitation, and any number of the described operations can be combined in any order and/or in parallel to implement the processes. In some examples, one or more operations of the method may be omitted entirely.
- the operations may include determining a first action and a second action by the vehicle relative to a selected trajectory without determining a respective cost for one or more of the actions by the vehicle.
- the methods described herein can be combined in whole or in part with each other or with other methods.
- program modules include routines, programs, objects, components, data structures, etc., and define operating logic for performing particular tasks or implement particular abstract data types.
- a system comprising: one or more processors; and one or more non-transitory computer- readable media storing instructions executable by the one or more processors, wherein the instructions, when executed, cause the system to perform operations comprising: receiving a baseline trajectory associated with a vehicle in an environment, the baseline trajectory including a direction, a velocity, and an acceleration; inputting the baseline trajectory into a first generator to modify a lateral distance associated with one or more points along the baseline trajectory; inputting the baseline trajectory into a second generator to modify a velocity associated with the one or more points along the baseline trajectory'; determining, based at least in part on a first output from the first generator and a second output from the second generator, a set of action trajectories associated with the vehicle; defining a tree structure based at least in part on the set of action trajectories; determining, based at least in part on the tree structure, a candidate trajectory 7 ; and controlling the vehicle based at least in part on the candidate trajectory 7 .
- C The system of paragraph A or B, the operations further comprising: inputting the baseline trajectory 7 to a third generator; determining, by the third generator, presence of a static object in the environment; and receiving, as third output from the third generator, an action trajectory in the set of action trajectories to avoid the static object.
- E The system of any of paragraphs A-D, wherein an output from the first generator is an input to the second generator.
- F One or more non-transitory computer-readable media storing instructions executable by one or more processors, wherein the instructions, when executed, cause the one or more processors to perform operations comprising: receiving a trajectory associated with a vehicle; inputting the trajectory' into a component; receiving, from the component, a set of action trajectories; inputting the set of action trajectories and the trajectory into a tree search algorithm; receiving, as an output of the tree search algorithm, a candidate trajectory; and controlling the vehicle based at least in part on the candidate trajectory'.
- G The one or more non-transitory computer-readable media of paragraph F, wherein the component determines a first trajectory of the set of action trajectories based at least in part on modifying, based at least in part on a control policy, a shape of at least the trajectory.
- H The one or more non-transitory computer-readable media of paragraph F or G, wherein the component is a first component, and the operations further comprises: inputting the trajectory to a second component; determining, by the second component, presence of a static object in an environment; and receiving, from the second component, a second trajectory' of the set of action trajectories configured to control the vehicle to avoid the static object.
- J The one or more non-transitory computer-readable media of any of paragraphs F-I, wherein an output from the component is an input to another component.
- K The one or more non-transitory computer-readable media of any of paragraphs F-J, wherein inputting the set of action trajectories into the tree search algorithm comprises: defining a tree structure to include a branch for each action trajectory' in the set of action trajectories; and controlling the vehicle is further based at least in part on an output of the tree structure.
- L The one or more non-transitory computer-readable media of any of paragraphs F-K, wherein: determining the set of action trajectories comprises the component performing a first transformation using a first model and a second transformation using a second model different form the first model.
- M The one or more non-transitory' computer-readable media of any of paragraphs F-L, further comprising: transmitting the set of actions trajectories associated with the tree search algorithm to a vehicle computing device; determining, based at least in part on a search of a tree structure, a candidate trajectory for the vehicle to use at a future time; and controlling the vehicle in an environment using the candidate trajectory.
- N The one or more non-transitory computer-readable media of any of paragraphs F-M, the operations further comprising: determining an identifier associated with the trajectory'; determining information describing a data structure of the trajectory’; and storing the identifier and the infonnation as profile data in a storage device.
- O The one or more non-transitory computer-readable media of any of paragraphs F-N, the operations further comprising: determining metadata describing an action trajectory' in the set of action trajectories, the metadata including a source of the action trajectory and information of a segment of the action trajectory; and associating the metadata with the tree search algorithm.
- P The one or more non-transitory computer-readable media of any of paragraphs F-O, the operations further comprising: determining the set of action traj ectories based at least in part on an output by a parallel processing unit.
- a method comprising: receiving a trajectory associated with a vehicle; inputting the trajectory' into a component; receiving, from the component, a set of action trajectories; inputting the set of action trajectories and the trajectory into a tree search algorithm; receiving, as an output of the tree search algorithm, a candidate trajectory'; and controlling the vehicle based at least in part on the candidate trajectory.
- R The method of paragraph Q, wherein the component determines a first trajectory of the set of action trajectories based at least in part on modifying, based at least in part on a control policy, a shape of at least the trajectory'.
- T The method of any of paragraphs Q-S, wherein an output from the component is an input to another component.
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Human Computer Interaction (AREA)
- Traffic Control Systems (AREA)
Abstract
Description
Claims
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202480036082.7A CN121219181A (en) | 2023-05-31 | 2024-05-14 | Motion Reference Generation Process |
| EP24816124.2A EP4719857A1 (en) | 2023-05-31 | 2024-05-14 | Action reference generation pipeline |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/204,347 | 2023-05-31 | ||
| US18/204,347 US12617428B2 (en) | 2023-05-31 | Action reference generation pipeline |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024249077A1 true WO2024249077A1 (en) | 2024-12-05 |
Family
ID=93653390
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2024/029326 Ceased WO2024249077A1 (en) | 2023-05-31 | 2024-05-14 | Action reference generation pipeline |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP4719857A1 (en) |
| CN (1) | CN121219181A (en) |
| WO (1) | WO2024249077A1 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009281942A (en) * | 2008-05-23 | 2009-12-03 | Sony Computer Entertainment Inc | Route search apparatus, route search method, and program |
| EP2169500A1 (en) * | 2008-09-25 | 2010-03-31 | Ford Global Technologies, LLC | Method of assessing vehicle paths in a road environment and a vehicle path assessment system. |
| US20220194419A1 (en) * | 2020-12-17 | 2022-06-23 | Zoox, Inc. | Collaborative vehicle path generation |
| US20230041975A1 (en) * | 2021-08-04 | 2023-02-09 | Zoox, Inc. | Vehicle trajectory control using a tree search |
| US20230097121A1 (en) * | 2021-09-24 | 2023-03-30 | Zoox, Inc. | Optimization based planning system |
-
2024
- 2024-05-14 EP EP24816124.2A patent/EP4719857A1/en active Pending
- 2024-05-14 CN CN202480036082.7A patent/CN121219181A/en active Pending
- 2024-05-14 WO PCT/US2024/029326 patent/WO2024249077A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009281942A (en) * | 2008-05-23 | 2009-12-03 | Sony Computer Entertainment Inc | Route search apparatus, route search method, and program |
| EP2169500A1 (en) * | 2008-09-25 | 2010-03-31 | Ford Global Technologies, LLC | Method of assessing vehicle paths in a road environment and a vehicle path assessment system. |
| US20220194419A1 (en) * | 2020-12-17 | 2022-06-23 | Zoox, Inc. | Collaborative vehicle path generation |
| US20230041975A1 (en) * | 2021-08-04 | 2023-02-09 | Zoox, Inc. | Vehicle trajectory control using a tree search |
| US20230097121A1 (en) * | 2021-09-24 | 2023-03-30 | Zoox, Inc. | Optimization based planning system |
Also Published As
| Publication number | Publication date |
|---|---|
| US20240400096A1 (en) | 2024-12-05 |
| CN121219181A (en) | 2025-12-26 |
| EP4719857A1 (en) | 2026-04-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12441308B2 (en) | Active prediction based on object trajectories | |
| US12311972B2 (en) | Conditional trajectory determination by a machine learned model | |
| US12187324B2 (en) | Trajectory prediction based on a decision tree | |
| US12217515B2 (en) | Training a codebook for trajectory determination | |
| US12339658B2 (en) | Generating a scenario using a variable autoencoder conditioned with a diffusion model | |
| US12065140B1 (en) | Object trajectory determination | |
| WO2022132416A1 (en) | Object determination in an occluded region | |
| US20240212360A1 (en) | Generating object data using a diffusion model | |
| US12353979B2 (en) | Generating object representations using a variable autoencoder | |
| US12555043B2 (en) | Training a variable autoencoder using a diffusion model | |
| US12545296B2 (en) | Interaction prediction based on tracking trajectory | |
| US12195040B1 (en) | Graph generation by a generative adversarial network | |
| US12337878B2 (en) | Prediction model with variable time steps | |
| US12428032B2 (en) | Determining prediction times for a model | |
| US12576836B2 (en) | Conditional object position prediction by a machine learned model | |
| US12528515B2 (en) | Trajectory planning based on tree search expansion | |
| US12576887B2 (en) | Route lane matching based on graph search | |
| WO2025071957A1 (en) | Lane ending cost | |
| US12617428B2 (en) | Action reference generation pipeline | |
| US20240400096A1 (en) | Action reference generation pipeline | |
| US12617392B1 (en) | Simulation buildout with dynamic time intervals | |
| US12522207B1 (en) | Determining adversarial cost based on generated deviations | |
| US12612082B1 (en) | Identifying relevant objects based on artificial paths | |
| WO2024137500A1 (en) | Generating object representations using a variable autoencoder |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24816124 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2024816124 Country of ref document: EP |
|
| ENP | Entry into the national phase |
Ref document number: 2024816124 Country of ref document: EP Effective date: 20260102 |
|
| ENP | Entry into the national phase |
Ref document number: 2024816124 Country of ref document: EP Effective date: 20260102 |
|
| ENP | Entry into the national phase |
Ref document number: 2024816124 Country of ref document: EP Effective date: 20260102 |
|
| ENP | Entry into the national phase |
Ref document number: 2024816124 Country of ref document: EP Effective date: 20260102 |
|
| ENP | Entry into the national phase |
Ref document number: 2024816124 Country of ref document: EP Effective date: 20260102 |
|
| ENP | Entry into the national phase |
Ref document number: 2024816124 Country of ref document: EP Effective date: 20260102 |
|
| WWP | Wipo information: published in national office |
Ref document number: 2024816124 Country of ref document: EP |