Integration-based vehicle motion planner
Through model integration, selecting the optimal planning model generation trajectory, the navigation problem of autonomous vehicles in uncommon scenarios is solved, navigation performance and safety are improved, and more efficient training and adaptation to new scenarios is achieved.
Patent Information
- Application Number
- CN202380085088.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-05-02
- Filing Date
- 2023-10-09
- Publication Date
- 2025-08-12
AI Technical Summary
The prior art is difficult to effectively generate the trajectory of autonomous vehicles in the absence of training data, especially in the non-frequency scenarios, resulting in navigation instability and potential safety hazards.
The model integration method is adopted to select the best-performing planning model among multiple planning models through the route selection model, and use the strengths of different planning models to improve navigation performance in uncommon scenarios.
Improve navigation performance in uncommon scenarios, ensure that the vehicle can avoid collisions more safely and meet various navigation characteristics requirements, and is more efficient in training and faster in adapting to new scenarios.
Smart Images

Figure CN120476070A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to and the benefit of U.S. Provisional Patent Application No. 63 / 416,346, filed on October 14, 2022, and U.S. Patent Application No. 18 / 310,595, filed on May 2, 2023, the entire contents of which are incorporated herein by reference. Background Art
[0003] An autonomous vehicle is capable of sensing and navigating through its surroundings with little or no human input. In order to safely navigate the vehicle along a selected path, the vehicle may rely on a motion planning process to generate, update, and execute one or more trajectories through its immediate surroundings. The trajectory of the vehicle may be generated based on the current conditions of the vehicle itself and the conditions present in the vehicle's surroundings, where the vehicle's surroundings may include moving objects such as other vehicles and pedestrians, as well as non-moving objects such as buildings and streetpoles. For example, a trajectory may be generated to avoid collisions between the vehicle and objects present in its surroundings. Additionally, trajectories may be generated so that the vehicle operates according to other desired characteristics, such as path length, ride quality or comfort, required travel time, compliance with traffic regulations, and / or adherence to driving practices. BRIEF DESCRIPTION OF THE DRAWINGS
[0004] Figure 1 is an example environment in which a vehicle including one or more components of an autonomous system may be implemented;
[0005] Figure 2 is a diagram of one or more systems of a vehicle including an autonomous system;
[0006] Figure 3 yes Figure 1 and Figure 2 a diagram of one or more devices and / or components of one or more systems;
[0007] Figure 4A is a diagram of some components of an autonomous system;
[0008] Figure 4B is a graph of the implementation of a neural network;
[0009] Figure 4C and Figure 4D is a diagram illustrating an example operation of a CNN;
[0010] Figure 4E is a diagram of the implementation of the transformer model;
[0011] Figure 5is a block diagram of an implementation of a system for vehicle motion planning;
[0012] Figure 6A is a flow chart illustrating an example of a process for integrated based vehicle motion planning;
[0013] Figure 6B is a flow chart illustrating another example of a process for integrated based vehicle motion planning;
[0014] Figure 7A is a flow chart illustrating another example of a process for integrated based vehicle motion planning;
[0015] Figure 7B is a flow chart illustrating another example of a process based on integrated vehicle motion planning. DETAILED DESCRIPTION
[0016] In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it will be apparent that the embodiments described herein can be practiced without these specific details. In some instances, well-known configurations and devices are illustrated in block diagram form to avoid unnecessarily obscuring aspects of the present disclosure.
[0017] In the accompanying drawings, for ease of description, a specific arrangement or order of schematic elements (such as those representing systems, devices, modules, instruction blocks and / or data elements, etc.) is illustrated. However, those skilled in the art will understand that, unless expressly described, the specific order or arrangement of schematic elements in the accompanying drawings is not intended to require a specific processing order or sequence, or separation of processes. Furthermore, unless expressly described, the inclusion of a schematic element in a drawing is not intended to mean that such element is required in all embodiments, nor is it intended to mean that features represented by such element cannot be included in some embodiments or cannot be combined with other elements in some embodiments.
[0018] In addition, in the accompanying drawings, connecting elements (such as solid or dotted lines or arrows) are used to illustrate the connection, relationship or association between or among two or more other schematic elements, and there is no such connecting element and is not intended to mean that there can be no connection, relationship or association. In other words, some connections, relationships or associations between elements are not illustrated in the accompanying drawings, so as not to obscure the present disclosure. In addition, for ease of illustration, a single connecting element can be used to represent multiple connections, relationships or associations between elements. For example, if a connecting element represents the communication of a signal, data or instruction (for example, "software instruction"), it will be understood by those skilled in the art that this element can represent one or more signal paths (for example, bus) that may be needed to affect communication.
[0019] Although the terms "first," "second," and / or "third" are used to describe various elements, these elements should not be limited by these terms. The terms "first," "second," and / or "third" are only used to distinguish one element from another. For example, a first contact may be referred to as a second contact, and similarly, a second contact may be referred to as a first contact without departing from the scope of the described embodiments. Both the first contact and the second contact are contacts, but they are not the same contact.
[0020] The terms used in the description of the various embodiments described herein are included only for the purpose of describing specific embodiments and are not intended to be limiting. As used in the description of the various embodiments described and the appended claims, the singular forms "a", "an", and "the" are also intended to include the plural forms and can be used interchangeably with "one or more than one" or "at least one" unless the context clearly indicates otherwise. It will also be understood that the term "and / or" as used herein refers to and includes any and all possible combinations of one or more than one of the associated listed items. It will also be understood that when the terms "comprises", "comprising", "having", and / or "having" are used in this specification, the presence of the stated features, integers, steps, operations, elements, and / or components is specified, but the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof is not excluded.
[0021] As used herein, the terms "communication" and "communicating" refer to at least one of receiving, receiving, transmitting, transferring, and / or providing information (or information represented by, for example, data, signals, messages, instructions, and / or commands). For a unit (e.g., a device, a system, a component of a device or system, and / or a combination thereof) to communicate with another unit, this means that the unit is able to directly or indirectly receive information from the other unit and / or send (e.g., transmit) information to the other unit. This can refer to a direct or indirect connection that is wired and / or wireless in nature. In addition, two units can communicate with each other even if the transmitted information can be modified, processed, relayed, and / or routed between the first unit and the second unit. For example, a first unit can communicate with a second unit even if the first unit passively receives information and does not actively transmit information to the second unit. As another example, a first unit can communicate with a second unit if at least one intermediary unit (e.g., a third unit located between the first unit and the second unit) processes information received from the first unit and transmits the processed information to the second unit. In some embodiments, a message may refer to a network packet (eg, a data packet, etc.) that includes data.
[0022] As used herein, the term "if" is optionally interpreted to mean "when," "at the time of," "in response to being determined to be," and / or "in response to being detected," etc., depending on the context. Similarly, the phrases "if it is determined" or "if [the stated condition or event] is detected" are optionally interpreted to mean "upon determining," "in response to being determined to be" or "upon detecting [the stated condition or event]," and / or "in response to detecting [the stated condition or event]," etc., depending on the context. Furthermore, as used herein, the terms "have," "have," or "possess," etc. are intended to be open-ended terms. Furthermore, unless expressly stated otherwise, the phrase "based on" is intended to mean "based at least in part on."
[0023] Reference will now be made in detail to the embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the various embodiments described. However, it will be apparent to one of ordinary skill in the art that the various embodiments described may be practiced without these specific details. In other instances, well-known methods, processes, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.
[0024] General Overview
[0025] In some aspects and / or embodiments, the systems, methods, and computer program products described herein include and / or implement techniques for generating trajectories for navigating a vehicle in various scenarios, including infrequent scenarios for which training samples are few or even non-existent. In particular, to generate trajectories for scenarios encountered by a vehicle (e.g., an autonomous vehicle, etc.), a motion planning system may apply a model ensemble in which a routing model selects a trajectory generated by a best-performing planning model from among multiple planning models in the model ensemble.
[0026] In some cases, different planning models may exhibit different performance due to various factors. For example, a model ensemble may include planning models based on different machine learning architectures. Alternatively and / or additionally, the model ensemble may include planning models that have undergone different training (including, for example, different initial parameters (e.g., weights and / or biases), different training data (e.g., different sets of training scenarios), and / or different convergence criteria). As a result, some planning models may exhibit better performance than other planning models for certain scenarios. For example, for a first set of scenarios, a first planning model may exhibit better performance than a second planning model, while for a second set of scenarios, the second planning model may exhibit better performance than the first planning model. The fact that different planning models excel in different scenarios can be exploited to maximize the performance of the model ensemble across a range of scenarios, including infrequent scenarios that tend to be error-prone due to a lack of training data associated with such scenarios. Examples of infrequent, error-prone scenarios include crosswalks, left turns, roundabouts, limited visibility conditions, railroad crossings, and construction zones.
[0027] Particularly in the case of infrequent scenarios where there is a lack of training data for training any planning model in the model ensemble, some planning models can still demonstrate better performance than other planning models, even though these planning models have little or no exposure to these infrequent scenarios. For example, in a U-turn scenario, a planning model trained to make left turns at an intersection can perform better than other planning models trained to make right turns, for example, because agent movement and other considerations are more similar between U-turn scenarios and left turn scenarios than right turn scenarios. As another example, for a school district, a planning model trained using a crosswalk scenario can perform better than other planning models trained using a construction zone scenario.
[0028] As described above, in some example embodiments, the model ensemble may include a routing model that is trained to identify the best performing planning model in different scenarios. In an instance where the model ensemble is trained to perform a two-stage process for generating vehicle trajectories, the routing model may take as input a scenario and a plurality of candidate trajectories generated by different planning models for the scenario, and then generate an output for identifying the best performing planning model among the planning models for the scenario. Alternatively, where the model ensemble is trained to perform an end-to-end process for generating vehicle trajectories, the routing model may continuously enable one or more of the planning models to generate one or more candidate trajectories based on the scenario until the routing model identifies a trajectory that meets one or more criteria. In this context, the performance of the planning model may be quantified based on the difference between the trajectory generated by the planning model for the scenario and the ideal trajectory for the scenario (e.g., average displacement error (ADE), etc.). During training, the ideal trajectory for the scenario may be the ground truth trajectory for the scenario. Thus, training the routing model may include training the routing model to discern how much a candidate trajectory for a scenario deviates from an ideal trajectory for the scenario, such that the routing model can determine, at inference time, when a candidate trajectory generated by the planning model for the scenario is satisfactory (e.g., sufficiently similar to the ideal trajectory for the scenario) or when the candidate trajectory is the best candidate trajectory among the candidate trajectories generated by the planning model (e.g., most similar to the ideal trajectory for the scenario).
[0029] There are several advantages to using model ensembles for motion planning. For example, including multiple planning models (at least some of which are more capable of providing performance advantages than other planning models in certain scenarios) can improve the overall motion planning performance across a full range of scenarios, including infrequent scenarios that tend to defeat individual planning models. In some cases, for example, making full use of multiple planning models can enable model ensembles to generate trajectories that are more likely to avoid collisions between the vehicle and objects in its surrounding environment and meet various desired characteristics (such as path length, ride quality or comfort, required travel time, compliance with traffic regulations and / or adherence to driving practices, etc.). In addition, in some cases, when the diversity of planning models in the model ensemble is greater, the overall motion planning performance can be improved. On the contrary, a single planning model cannot always be trained to respond to multiple scenarios with sufficient performance. That is, in some cases, once a planning model has been trained to respond to a first set of scenarios, training the same planning model to also respond to a second set of scenarios may reduce the performance of the planning model for the first set of scenarios and / or the second set of scenarios. For example, training a single planning model to generate trajectories in a U-turn scenario may cause the planning model to overweight the appropriate factors for the rate of an approaching vehicle making a left turn at an intersection. In another example, training a single planning model to generate trajectories for a U-turn scenario may cause the planning model to overweight the appropriate factors for the vehicle behavior of a vehicle making a right turn onto the target road for the U-turn.
[0030] Training a model ensemble can also be more efficient and modular than training a single planning model. For example, a single planning model may need to be continuously updated as new scenarios are encountered. However, as mentioned above, once a planning model has been trained to respond to a first set of scenarios, further updates to train it to respond to a second set of scenarios may degrade the planning model's performance for the first and / or second set of scenarios. Efforts to detect this phenomenon may require revalidating the updated planning model against the first set of scenarios. Repeatedly testing and validating the planning model to cover new scenarios can be costly and inefficient. Not only is this validation process inefficient and costly, but behavioral changes in the planning models caused by further updates may make it difficult to rebalance factor weights, or worse, require completely retraining the planning model. In contrast, a model ensemble can employ a modular training approach. When one of the planning models is updated, the behavior of the planning models in the ensemble remains unaffected. Any further testing and performance validation required for the updated planning models takes significantly less time and cost. This feature enables model ensembles to adapt to new scenarios, including infrequent ones, more quickly and efficiently than any individual planning model.
[0031] Other technical issues for a single machine learning model include appropriate factor weighting when a vehicle transitions from a common driving scenario to an infrequent scenario. For example, a single planning model trained based on a first set of scenarios (e.g., scenarios encountered at a first geographic location) may place too much or too little weight on certain vehicle movements as the vehicle approaches an intersection in a second set of scenarios (e.g., scenarios encountered at a second geographic location). Such behavioral differences may arise from, for example, differences in weather conditions or street design that are prevalent in the different sets of scenarios. However, once the planning model is trained for the first set of scenarios, the factor weights for other vehicle movements may become misaligned for the second set of scenarios. This misalignment potentially has unpredictable effects on the planning system's ability to safely and continuously navigate in the second set of scenarios. Without model integration with additional planning models, the factor weights of the one planning model may become skewed or misaligned across multiple scenarios, leading to potentially unforeseen and dangerous decisions.
[0032] Now refer to Figure 1 , illustrates an example environment 100 in which vehicles including autonomous systems and vehicles not including autonomous systems operate. As illustrated, environment 100 includes vehicles 102a-102n, objects 104a-104n, routes 106a-106n, area 108, vehicle-to-infrastructure (V2I) devices 110, network 112, remote autonomous vehicle (AV) systems 114, queue management system 116, and V2I system 118. Vehicles 102a-102n, vehicle-to-infrastructure (V2I) devices 110, network 112, autonomous vehicle (AV) systems 114, queue management system 116, and V2I system 118 are interconnected (e.g., establish connections for communication, etc.) via wired connections, wireless connections, or a combination of wired or wireless connections. In some embodiments, objects 104a-104n are interconnected with at least one of vehicles 102a-102n, vehicle-to-infrastructure (V2I) devices 110, network 112, autonomous vehicle (AV) system 114, fleet management system 116, and V2I system 118 via a wired connection, a wireless connection, or a combination of wired or wireless connections.
[0033] Vehicles 102a-102n (individually referred to as vehicles 102 and collectively referred to as vehicles 102) include at least one device configured to transport goods and / or people. In some embodiments, vehicles 102 are configured to communicate with V2I devices 110, remote AV systems 114, fleet management systems 116, and / or V2I systems 118 via network 112. In some embodiments, vehicles 102 include cars, buses, trucks, and / or trains. In some embodiments, vehicles 102 are similar to vehicles 200 described herein (see Figure 2 ) are the same or similar. In some embodiments, vehicles 200 in the set of vehicles 200 are associated with an autonomous queue manager. In some embodiments, as described herein, vehicles 102 travel along corresponding routes 106a-106n (individually referred to as routes 106 and collectively referred to as routes 106). In some embodiments, one or more vehicles 102 include an autonomous system (e.g., an autonomous system that is the same or similar to autonomous system 202).
[0034] Objects 104a-104n (individually referred to as object 104 and collectively referred to as objects 104) include, for example, at least one vehicle, at least one pedestrian, at least one cyclist, and / or at least one structure (e.g., a building, a sign, a fire hydrant, etc.). Each object 104 is stationary (e.g., located at a fixed location and over a period of time) or moving (e.g., having a velocity and associated with at least one trajectory). In some embodiments, objects 104 are associated with corresponding locations in area 108.
[0035] Routes 106a-106n (individually referred to as routes 106 and collectively referred to as routes 106) are each associated with (e.g., specifying) a series of actions (also referred to as trajectories) connecting states along which an AV can navigate. Each route 106 begins at an initial state (e.g., a state corresponding to a first spatiotemporal location and / or speed, etc.) and ends at a final target state (e.g., a state corresponding to a second spatiotemporal location different from the first spatiotemporal location) or a target zone (e.g., a subspace of acceptable states (e.g., terminal states)). In some embodiments, the first state includes a location where one or more individuals will board the AV, and the second state or zone includes one or more locations where the one or more individuals boarding the AV will disembark. In some embodiments, routes 106 include multiple acceptable state sequences (e.g., multiple spatiotemporal location sequences) that are associated with (e.g., define) multiple trajectories. In examples, routes 106 include only high-level actions or imprecise state locations, such as a series of connecting roads indicating a change of direction at a roadway intersection. Additionally or alternatively, the route 106 may include more precise actions or states, such as, for example, a specific target lane or precise locations within a lane zone and target speeds at those locations. In an example, the route 106 includes multiple precise state sequences along at least one high-level action with a limited look-ahead horizon to an intermediate goal, where the combination of consecutive iterations of the limited-horizon state sequences cumulatively corresponds to multiple trajectories that collectively form a high-level route terminating at a final target state or zone.
[0036] The area 108 includes a physical area (e.g., a geographic region) that the vehicle 102 can navigate. In an example, the area 108 includes at least one state (e.g., a country, a province, a separate state within a plurality of states included in a country, etc.), at least a portion of a state, at least one city, at least a portion of a city, etc. In some embodiments, the area 108 includes at least one named thoroughfare (referred to herein as a "road"), such as a highway, an interstate, a parkway, a city street, etc. Additionally or alternatively, in some examples, the area 108 includes at least one unnamed road, such as a driveway, a section of a parking lot, a section of an open space and / or undeveloped area, a dirt road, etc. In some embodiments, the road includes at least one lane (e.g., a portion of the road that the vehicle 102 can traverse). In an example, the road includes at least one lane associated with (e.g., identified based on) at least one lane marking line.
[0037] Vehicle-to-infrastructure (V2I) devices 110 (sometimes referred to as vehicle-to-infrastructure or vehicle-to-everything (V2X) devices) include at least one device configured to communicate with vehicle 102 and / or V2I system 118. In some embodiments, V2I devices 110 are configured to communicate with vehicle 102, remote AV system 114, fleet management system 116, and / or V2I system 118 via network 112. In some embodiments, V2I devices 110 include radio frequency identification (RFID) devices, signs, cameras (e.g., two-dimensional (2D) and / or three-dimensional (3D) cameras), lane markings, streetlights, parking meters, and the like. In some embodiments, V2I devices 110 are configured to communicate directly with vehicle 102. Additionally or alternatively, in some embodiments, the V2I device 110 is configured to communicate with the vehicle 102, the remote AV system 114, and / or the fleet management system 116 via the V2I system 118. In some embodiments, the V2I device 110 is configured to communicate with the V2I system 118 via the network 112.
[0038] The network 112 includes one or more wired and / or wireless networks. In an example, the network 112 includes a cellular network (e.g., a long-term evolution (LTE) network, a third-generation (3G) network, a fourth-generation (4G) network, a fifth-generation (5G) network, a code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., a public switched telephone network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber-optic-based network, a cloud computing network, etc., and / or a combination of some or all of these networks.
[0039] Remote AV system 114 includes at least one device configured to communicate with vehicle 102, V2I device 110, network 112, fleet management system 116, and / or V2I system 118 via network 112. In an example, remote AV system 114 includes a server, a server group, and / or other similar devices. In some embodiments, remote AV system 114 is co-located with fleet management system 116. In some embodiments, remote AV system 114 participates in the installation of some or all of the vehicle's components (including autonomous systems, autonomous vehicle computing, and / or software implemented by autonomous vehicle computing). In some embodiments, remote AV system 114 maintains (e.g., updates and / or replaces) these components and / or software during the vehicle's lifetime.
[0040] The queue management system 116 includes at least one device configured to communicate with the vehicles 102, the V2I devices 110, the remote AV system 114, and / or the V2I system 118. In an example, the queue management system 116 includes a server, a server group, and / or other similar devices. In some embodiments, the queue management system 116 is associated with a ride-sharing company (e.g., an organization that controls the operation of multiple vehicles (e.g., vehicles that include autonomous systems and / or vehicles that do not include autonomous systems).
[0041] In some embodiments, the V2I system 118 includes at least one device configured to communicate with the vehicle 102, the V2I device 110, the remote AV system 114, and / or the fleet management system 116 via the network 112. In some examples, the V2I system 118 is configured to communicate with the V2I device 110 via a connection other than the network 112. In some embodiments, the V2I system 118 includes a server, a server group, and / or other similar devices. In some embodiments, the V2I system 118 is associated with a municipality or a private entity (e.g., a private entity that maintains the V2I device 110).
[0042] supply Figure 1 The number and arrangement of elements illustrated are examples. Figure 1 There may be additional elements, fewer elements, different elements, and / or differently arranged elements than those illustrated. Additionally or alternatively, at least one element of the environment 100 may be described as being Figure 1 Additionally or alternatively, at least one set of elements of environment 100 may perform one or more functions described as being performed by at least one different set of elements of environment 100.
[0043] Now refer to Figure 2 , vehicle 200 (which can be Figure 1 102) includes or is associated with autonomous system 202, powertrain control system 204, steering control system 206, and braking system 208. In some embodiments, vehicle 200 is similar to vehicle 102 (see Figure 1) are the same or similar. In some embodiments, the autonomous system 202 is configured to give the vehicle 200 autonomous driving capabilities (e.g., implementing at least one driving automatic or maneuver-based function, feature and / or device, etc., which enables the vehicle 200 to operate partially or completely without human intervention, including but not limited to fully autonomous vehicles (e.g., vehicles that abandon reliance on human intervention, such as Level 5 ADS operating vehicles, etc.), highly autonomous vehicles (e.g., vehicles that abandon reliance on human intervention in certain situations, such as Level 4 ADS operating vehicles, etc.), and / or conditionally autonomous vehicles (e.g., vehicles that abandon reliance on human intervention in limited situations, such as Level 3 ADS operating vehicles, etc.). In one embodiment, the autonomous system 202 includes the operational or tactical functionality required to enable the vehicle 200 to operate in traffic on the road and continuously perform part or all of a dynamic driving task (DDT). In another embodiment, the autonomous system 202 includes an advanced driver assistance system (ADAS) that includes driver support features. The autonomous system 202 supports various levels of driving automation ranging from no driving automation (e.g., Level 0) to full driving automation (e.g., Level 5). For a detailed description of fully autonomous vehicles and highly autonomous vehicles, reference can be made to SAE International's standard J3016: Taxonomy and Definitions for Terms Related to On-Road Motor Vehicle Automated Driving Systems, the entire contents of which are incorporated by reference. In some embodiments, the vehicle 200 is associated with an autonomous queue manager and / or a ridesharing company.
[0044] Autonomous system 202 includes a sensor suite comprising one or more devices, such as a camera 202a, a LiDAR sensor 202b, a Radar sensor 202c, and a microphone 202d. In some embodiments, autonomous system 202 may include more, fewer, and / or different devices (e.g., ultrasonic sensors, inertial sensors, a GPS receiver (discussed below), and / or an odometer sensor for generating data associated with an indication of the distance traveled by vehicle 200). In some embodiments, autonomous system 202 uses one or more devices included in autonomous system 202 to generate data associated with environment 100, as described herein. The data generated by one or more devices of autonomous system 202 may be used by one or more systems described herein to observe the environment in which vehicle 200 is located (e.g., environment 100). In some embodiments, autonomous system 202 includes a communication device 202e, autonomous vehicle computing 202f, a drive-by-wire (DBW) system 202h, and a safety controller 202g.
[0045] The camera 202a includes a communication device 202e, an autonomous vehicle computer 202f, and / or a safety controller 202g configured to communicate with the communication device 202e via a bus (e.g., Figure 3 The camera 202a includes at least one device for communicating with the bus 302 (the same or similar bus as the bus 302). The camera 202a includes at least one camera (e.g., a digital camera using a light sensor such as a charge coupled device (CCD), a thermal camera, an infrared (IR) camera, and / or an event camera, etc.) to capture images including physical objects (e.g., cars, buses, curbs and / or people, etc.). In some embodiments, the camera 202a generates camera data as output. In some examples, the camera 202a generates camera data including image data associated with the image. In this example, the image data may specify at least one parameter corresponding to the image (e.g., image characteristics such as exposure, brightness, and / or image timestamp, etc.). In such an example, the image may be in a format (e.g., RAW, JPEG, and / or PNG, etc.). In some embodiments, the camera 202a includes a plurality of independent cameras configured (e.g., positioned) on the vehicle to capture images for the purpose of stereoscopic imaging (stereo vision). In some examples, the camera 202a includes a computer system that generates image data and transmits the image data to the autonomous vehicle computing 202f and / or a fleet management system (e.g., with Figure 1The autonomous vehicle computing system 202f may be configured to include multiple cameras (e.g., a fleet management system similar to or similar to the fleet management system 116 of the plurality of cameras). In such an example, the autonomous vehicle computing system 202f determines a depth to one or more objects in the field of view of at least two of the plurality of cameras based on image data from the at least two cameras. In some embodiments, the camera 202a is configured to capture images of objects within a distance relative to the camera 202a (e.g., up to 100 meters and / or up to 1 kilometer, etc.). Accordingly, the camera 202a includes features, such as a sensor and a lens, that are optimized for sensing objects at one or more distances relative to the camera 202a.
[0046] In embodiments, camera 202a includes at least one camera configured to capture one or more images associated with one or more traffic lights, street signs, and / or other physical objects that provide visual navigation information. In some embodiments, camera 202a generates traffic light data associated with the one or more images. In some examples, camera 202a generates TLD (traffic light detection) data associated with the one or more images in a format such as RAW, JPEG, and / or PNG. In some embodiments, camera 202a that generates TLD data differs from other systems incorporating cameras described herein in that camera 202a may include one or more cameras with a wide field of view (e.g., a wide-angle lens, a fisheye lens, and / or a lens with a viewing angle of approximately 120 degrees or greater) to generate images associated with as many physical objects as possible.
[0047] The light detection and ranging (LiDAR) sensor 202b includes a sensor configured to communicate with the communication device 202e, the autonomous vehicle computing 202f and / or the safety controller 202g via a bus (e.g., Figure 3The LiDAR sensor 202b includes at least one device that communicates with a bus (the same or similar bus as the bus 302) that is connected to the LiDAR sensor 202b. The LiDAR sensor 202b includes a system configured to emit light from a light emitter (e.g., a laser emitter). The light emitted by the LiDAR sensor 202b includes light outside the visible spectrum (e.g., infrared light, etc.). In some embodiments, during operation, the light emitted by the LiDAR sensor 202b encounters a physical object (e.g., a vehicle) and is reflected back to the LiDAR sensor 202b. In some embodiments, the light emitted by the LiDAR sensor 202b does not penetrate the physical object encountered by the light. The LiDAR sensor 202b also includes at least one light detector that detects the light emitted from the light emitter after it encounters the physical object. In some embodiments, at least one data processing system associated with the LiDAR sensor 202b generates an image (e.g., a point cloud and / or a combined point cloud, etc.) representing objects included in the field of view of the LiDAR sensor 202b. In some examples, at least one data processing system associated with LiDAR sensor 202b generates an image representing the boundaries of a physical object and / or the surface of the physical object (e.g., the topology of the surface), etc. In such examples, the image is used to determine the boundaries of the physical object in the field of view of LiDAR sensor 202b.
[0048] The radio detection and ranging (Radar) sensor 202c includes a sensor configured to communicate with the communication device 202e, the autonomous vehicle computing 202f and / or the safety controller 202g via a bus (e.g., Figure 3 The radar sensor 202c includes at least one device that communicates with a bus (same or similar to the bus 302) that is connected to the radar sensor 202c. The radar sensor 202c includes a system configured to transmit (pulsed or continuous) radio waves. The radio waves transmitted by the radar sensor 202c include radio waves within a predetermined frequency spectrum. In some embodiments, during operation, the radio waves transmitted by the radar sensor 202c encounter physical objects and are reflected back to the radar sensor 202c. In some embodiments, the radio waves transmitted by the radar sensor 202c are not reflected by some objects. In some embodiments, at least one data processing system associated with the radar sensor 202c generates a signal representing an object included in the field of view of the radar sensor 202c. For example, the at least one data processing system associated with the radar sensor 202c generates an image representing the boundaries of the physical object and / or the surface of the physical object (e.g., the topology of the surface). In some examples, the image is used to determine the boundaries of the physical object in the field of view of the radar sensor 202c.
[0049] The microphone 202d includes a microphone configured to communicate with the communication device 202e, the autonomous vehicle computing device 202f, and / or the safety controller 202g via a bus (e.g., Figure 3 At least one device that communicates with the vehicle 200 (e.g., a bus similar to or similar to bus 302). Microphone 202d includes one or more microphones (e.g., an array microphone and / or an external microphone, etc.) that capture audio signals and generate data associated with (e.g., representing) the audio signals. In some examples, microphone 202d includes a transducer device and / or the like. In some embodiments, one or more systems described herein can receive the data generated by microphone 202d and determine the location (e.g., distance, etc.) of an object relative to the vehicle 200 based on the audio signal associated with the data.
[0050] The communication device 202e includes at least one device configured to communicate with the camera 202a, the LiDAR sensor 202b, the Radar sensor 202c, the microphone 202d, the autonomous vehicle computing 202f, the safety controller 202g, and / or the DBW (drive-by-wire) system 202h. For example, the communication device 202e may include at least one device configured to communicate with the camera 202a, the LiDAR sensor 202b, the Radar sensor 202c, the microphone 202d, the autonomous vehicle computing 202f, the safety controller 202g, and / or the DBW (drive-by-wire) system 202h. Figure 3 In some embodiments, the communication device 202e includes a vehicle-to-vehicle (V2V) communication device (eg, a device for enabling wireless communication of data between vehicles).
[0051] Autonomous vehicle computing 202f includes at least one device configured to communicate with camera 202a, LiDAR sensor 202b, Radar sensor 202c, microphone 202d, communication device 202e, safety controller 202g, and / or DBW system 202h. In some examples, autonomous vehicle computing 202f includes devices such as client devices, mobile devices (e.g., cellular phones and / or tablet computers, etc.), and / or servers (e.g., computing devices including one or more central processing units and / or graphics processing units, etc.). In some embodiments, autonomous vehicle computing 202f is the same as or similar to autonomous vehicle computing 400 described herein. Additionally or alternatively, in some embodiments, autonomous vehicle computing 202f is configured to communicate with an autonomous vehicle system (e.g., with Figure 1 Remote AV system 114 of the same or similar autonomous vehicle system), a queue management system (e.g., Figure 1 The same or similar queue management system as the queue management system 116 of FIG), V2I devices (e.g., Figure 1 V2I device 110 that is the same as or similar to the V2I device 110) and / or a V2I system (e.g., Figure 1The V2I system 118 may communicate with the same or similar V2I system.
[0052] Safety controller 202g includes at least one device configured to communicate with camera 202a, LiDAR sensor 202b, Radar sensor 202c, microphone 202d, communication device 202e, autonomous vehicle computing 202f, and / or DBW system 202h. In some examples, safety controller 202g includes one or more controllers (electrical controllers and / or electromechanical controllers, etc.) configured to generate and / or transmit control signals to operate one or more devices of vehicle 200 (e.g., powertrain control system 204, steering control system 206, and / or braking system 208, etc.). In some embodiments, safety controller 202g is configured to generate control signals that take precedence over (e.g., override) control signals generated and / or transmitted by autonomous vehicle computing 202f.
[0053] The DBW system 202h includes at least one device configured to communicate with the communication device 202e and / or the autonomous vehicle computing device 202f. In some examples, the DBW system 202h includes one or more controllers (e.g., electrical controllers and / or electromechanical controllers, etc.) configured to generate and / or transmit control signals to operate one or more devices of the vehicle 200 (e.g., the powertrain control system 204, the steering control system 206, and / or the braking system 208, etc.). Additionally or alternatively, the one or more controllers of the DBW system 202h are configured to generate and / or transmit control signals to operate at least one different device of the vehicle 200 (e.g., turn signals, headlights, door locks, and / or windshield wipers, etc.).
[0054] The powertrain control system 204 includes at least one device configured to communicate with the DBW system 202h. In some examples, the powertrain control system 204 includes at least one controller and / or actuator. In some embodiments, the powertrain control system 204 receives control signals from the DBW system 202h and causes the vehicle 200 to perform longitudinal vehicle motion (such as starting forward movement, stopping forward movement, starting rearward movement, stopping rearward movement, accelerating in a certain direction, decelerating in a certain direction, etc.) or perform lateral vehicle motion (such as performing a left turn and / or performing a right turn, etc.). In examples, the powertrain control system 204 increases, maintains the same, or decreases the energy (e.g., fuel and / or electricity, etc.) provided to the vehicle's motor, thereby causing at least one wheel of the vehicle 200 to rotate or not rotate.
[0055] Steering control system 206 includes at least one device configured to rotate one or more wheels of vehicle 200. In some examples, steering control system 206 includes at least one controller and / or actuator, etc. In some embodiments, steering control system 206 rotates the two front wheels and / or the two rear wheels of vehicle 200 to the left or right to turn vehicle 200 left or right. In other words, steering control system 206 causes the movement required to regulate the y-axis component of the vehicle's motion.
[0056] Braking system 208 includes at least one device configured to actuate one or more brakes to slow down and / or hold vehicle 200 stationary. In some examples, braking system 208 includes at least one controller and / or actuator configured to cause one or more calipers associated with one or more wheels of vehicle 200 to close on the corresponding rotors of vehicle 200. Additionally or alternatively, in some examples, braking system 208 includes an automatic emergency braking (AEB) system and / or a regenerative braking system, among other things.
[0057] In some embodiments, vehicle 200 includes at least one platform sensor (not explicitly illustrated) for measuring or inferring a property of a state or condition of vehicle 200. In some examples, vehicle 200 includes platform sensors such as a global positioning system (GPS) receiver, an inertial measurement unit (IMU), wheel rate sensors, wheel brake pressure sensors, wheel torque sensors, engine torque sensors, and / or steering angle sensors. Although brake system 208 is illustrated as being located Figure 2 The braking system 208 is located on the proximal side of the vehicle 200 , but the braking system 208 can be located anywhere in the vehicle 200 .
[0058] Now refer to Figure 3 , a schematic diagram of an example device 300. As illustrated, device 300 includes a processor 304, a memory 306, a storage component 308, an input interface 310, an output interface 312, a communication interface 314, and a bus 302. In some embodiments, device 300 corresponds to: at least one device of vehicle 102 (e.g., at least one device of a system of vehicle 102); and / or one or more devices of network 112 (e.g., one or more devices of a system of network 112). In some embodiments, one or more devices of vehicle 102 (e.g., one or more devices of a system of vehicle 102), and / or one or more devices of network 112 (e.g., one or more devices of a system of network 112) include at least one device 300 and / or at least one component of device 300. As Figure 3As shown, apparatus 300 includes a bus 302 , a processor 304 , a memory 306 , a storage component 308 , an input interface 310 , an output interface 312 , and a communication interface 314 .
[0059] Bus 302 includes components that enable communication between components of device 300. In some cases, processor 304 includes a processor (e.g., a central processing unit (CPU), a graphics processing unit (GPU), and / or an accelerated processing unit (APU), etc.), a microphone, a digital signal processor (DSP), and / or any processing component that can be programmed to perform at least one function (e.g., a field programmable gate array (FPGA) and / or an application-specific integrated circuit (ASIC), etc.). Memory 306 includes random access memory (RAM), read-only memory (ROM), and / or another type of dynamic and / or static storage device (e.g., flash memory, magnetic memory, and / or optical memory, etc.) that stores data and / or instructions for use by processor 304.
[0060] The storage component 308 stores data and / or software related to the operation and use of the device 300. In some examples, the storage component 308 includes a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optical disk, and / or a solid-state disk, etc.), a compact disk (CD), a digital versatile disk (DVD), a floppy disk, a cassette, a magnetic tape, a CD-ROM, a RAM, a PROM, an EPROM, a FLASH-EPROM, an NV-RAM, and / or another type of computer-readable medium, and a corresponding drive.
[0061] The input interface 310 includes components that permit the device 300 to receive information, such as via user input (e.g., a touch screen display, a keyboard, a keypad, a mouse, buttons, switches, a microphone, and / or a camera, etc.). Additionally or alternatively, in some embodiments, the input interface 310 includes a sensor for sensing information (e.g., a global positioning system (GPS) receiver, an accelerometer, a gyroscope, and / or an actuator, etc.). The output interface 312 includes components for providing output information from the device 300 (e.g., a display, a speaker, and / or one or more light emitting diodes (LEDs), etc.).
[0062] In some embodiments, the communication interface 314 includes a transceiver-like component (e.g., a transceiver and / or a separate receiver and transmitter, etc.) that allows the device 300 to communicate with other devices via a wired connection, a wireless connection, or a combination of a wired connection and a wireless connection. In some examples, the communication interface 314 allows the device 300 to receive information from another device and / or provide information to another device. In some examples, the communication interface 314 includes an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, interface and / or cellular network interface, etc.
[0063] In some embodiments, the device 300 performs one or more processes described herein. The device 300 performs these processes based on the processor 304 executing software instructions stored by a computer-readable medium such as a memory 306 and / or a storage component 308. A computer-readable medium (e.g., a non-transitory computer-readable medium) is defined herein as a non-transitory memory device. A non-transitory memory device includes a storage space located within a single physical storage device or a storage space distributed across multiple physical storage devices.
[0064] In some embodiments, software instructions are read into memory 306 and / or storage component 308 from another computer-readable medium or from another device via communication interface 314. When executed, the software instructions stored in memory 306 and / or storage component 308 cause processor 304 to perform one or more of the processes described herein. Additionally or alternatively, hardwired circuitry may be used in place of or in combination with the software instructions to perform one or more of the processes described herein. Therefore, unless expressly stated otherwise, the embodiments described herein are not limited to any specific combination of hardware circuitry and software.
[0065] Memory 306 and / or storage component 308 include a data store or at least one data structure (e.g., a database, etc.). Device 300 can receive information from, store information in, communicate information to, or search for information stored in the data store or at least one data structure in memory 306 or storage component 308. In some examples, the information includes network data, input data, output data, or any combination thereof.
[0066] In some embodiments, device 300 is configured to execute software instructions stored in memory 306 and / or a memory of another device (e.g., another device that is the same as or similar to device 300). As used herein, the term "module" refers to at least one instruction stored in memory 306 and / or a memory of another device that, when executed by processor 304 and / or a processor of another device (e.g., another device that is the same as or similar to device 300), causes device 300 (e.g., at least one component of device 300) to perform one or more processes described herein. In some embodiments, a module is implemented in software, firmware, and / or hardware.
[0067] supply Figure 3 The number and arrangement of components illustrated are examples. In some embodiments, Figure 3The apparatus 300 may include additional components, fewer components, different components, or components arranged differently than those illustrated. Additionally or alternatively, a collection of components (e.g., one or more components) of the apparatus 300 may perform one or more functions described as being performed by another component or collection of components of the apparatus 300.
[0068] Now refer to Figure 4A , illustrates an example block diagram of an autonomous vehicle computing system 400 (sometimes referred to as an "AV stack"). As illustrated, autonomous vehicle computing system 400 includes a perception system 402 (sometimes referred to as a perception module), a planning system 404 (sometimes referred to as a planning module), a positioning system 406 (sometimes referred to as a positioning module), a control system 408 (sometimes referred to as a control module), and a database 410. In some embodiments, perception system 402, planning system 404, positioning system 406, control system 408, and database 410 are included in and / or implemented within an autonomous navigation system of a vehicle (e.g., autonomous vehicle computing system 202f of vehicle 200). Additionally or alternatively, in some embodiments, perception system 402, planning system 404, positioning system 406, control system 408, and database 410 are included in one or more independent systems (e.g., one or more systems that are the same as or similar to autonomous vehicle computing system 400, etc.). In some examples, perception system 402, planning system 404, positioning system 406, control system 408, and database 410 are included in one or more independent systems located in the vehicle and / or at least one remote system as described herein. In some embodiments, any and / or all of the systems included in autonomous vehicle computing 400 are implemented in software (e.g., software instructions stored in a memory), computer hardware (e.g., via a microprocessor, microcontroller, application specific integrated circuit (ASIC) and / or field programmable gate array (FPGA)), or a combination of computer software and computer hardware. It will also be understood that in some embodiments, autonomous vehicle computing 400 is configured to communicate with a remote system (e.g., an autonomous vehicle system that is the same as or similar to remote AV system 114, a fleet management system 116 that is the same as or similar to fleet management system 116, and / or a V2I system that is the same as or similar to V2I system 118, etc.).
[0069] In some embodiments, perception system 402 receives data associated with at least one physical object in an environment (e.g., data used by perception system 402 to detect at least one physical object) and classifies the at least one physical object. In some examples, perception system 402 receives image data captured by at least one camera (e.g., camera 202a), the image being associated with (e.g., representing) one or more physical objects within the field of view of the at least one camera. In such examples, perception system 402 classifies at least one physical object based on one or more groups of physical objects (e.g., bicycles, vehicles, traffic signs, and / or pedestrians, etc.). In some embodiments, based on perception system 402 classifying the physical object, perception system 402 transmits data associated with the classification of the physical object to planning system 404.
[0070] In some embodiments, planning system 404 receives data associated with a destination and generates data associated with at least one route (e.g., route 106) along which a vehicle (e.g., vehicle 102) can travel toward the destination. In some embodiments, planning system 404 periodically or continuously receives data (e.g., the data associated with the classification of physical objects described above) from perception system 402, and planning system 404 updates at least one trajectory or generates at least one different trajectory based on the data generated by perception system 402. In other words, planning system 404 can perform tasks related to the tactical functions required to operate vehicle 102 in traffic on the road. Tactical efforts involve maneuvering the vehicle in traffic during the journey, including, but not limited to, deciding whether and when to overtake another vehicle, change lanes, or select an appropriate speed, acceleration, deceleration, etc. In some embodiments, planning system 404 receives data associated with the updated position of the vehicle (e.g., vehicle 102) from positioning system 406, and planning system 404 updates at least one trajectory or generates at least one different trajectory based on the data generated by positioning system 406.
[0071] In some embodiments, positioning system 406 receives data associated with (e.g., representing) a location of a vehicle (e.g., vehicle 102) in an area. In some examples, positioning system 406 receives LiDAR data associated with at least one point cloud generated by at least one LiDAR sensor (e.g., LiDAR sensor 202b). In some examples, positioning system 406 receives data associated with at least one point cloud from multiple LiDAR sensors, and positioning system 406 generates a combined point cloud based on the individual point clouds. In these examples, positioning system 406 compares the at least one point cloud or the combined point cloud with a two-dimensional (2D) and / or three-dimensional (3D) map of the area stored in database 410. Then, based on positioning system 406 comparing the at least one point cloud or the combined point cloud with the map, positioning system 406 determines the position of the vehicle in the area. In some embodiments, the map includes a combined point cloud of the area generated prior to navigation of the vehicle. In some embodiments, the map includes, but is not limited to, a high-precision map of roadway geometry, a map describing road network connectivity, a map describing roadway physical properties (such as traffic speed, traffic volume, number of vehicle and bicycle lanes, lane width, lane traffic direction, or type and location of lane markings, or a combination thereof), and a map describing the spatial location of road features (such as crosswalks, traffic signs, or various other types of traffic signals). In some embodiments, the map is generated in real time based on data received by the perception system.
[0072] In another example, positioning system 406 receives global navigation satellite system (GNSS) data generated by a global positioning system (GPS) receiver. In some examples, positioning system 406 receives GNSS data associated with the location of the vehicle in the area, and positioning system 406 determines the latitude and longitude of the vehicle in the area. In such an example, positioning system 406 determines the position of the vehicle in the area based on the latitude and longitude of the vehicle. In some embodiments, positioning system 406 generates data associated with the position of the vehicle. In some examples, based on positioning system 406 determining the position of the vehicle, positioning system 406 generates data associated with the position of the vehicle. In such an example, the data associated with the position of the vehicle include data associated with one or more semantic properties corresponding to the position of the vehicle.
[0073] In some embodiments, the control system 408 receives data associated with at least one trajectory from the planning system 404, and the control system 408 controls the operation of the vehicle. In some examples, the control system 408 receives data associated with at least one trajectory from the planning system 404, and the control system 408 controls the operation of the vehicle by generating and transmitting control signals to operate the powertrain control system (e.g., the DBW system 202h and / or the powertrain control system 204), the steering control system (e.g., the steering control system 206), and / or the braking system (e.g., the braking system 208). For example, the control system 408 is configured to perform operational functions such as lateral vehicle motion control or longitudinal vehicle motion control. Lateral vehicle motion control causes the necessary actions to regulate the y-axis component of the vehicle's motion. Longitudinal vehicle motion control causes the necessary actions to regulate the x-axis component of the vehicle's motion. In an example, if the trajectory includes a left turn, the control system 408 transmits a control signal to cause the steering control system 206 to adjust the steering angle of the vehicle 200, thereby causing the vehicle 200 to turn left. Additionally or alternatively, the control system 408 generates and transmits control signals to cause other devices of the vehicle 200 (eg, headlights, turn signals, door locks, and / or windshield wipers, etc.) to change states.
[0074] In some embodiments, the perception system 402, planning system 404, positioning system 406, and / or control system 408 implement at least one machine learning model (e.g., at least one multilayer perceptron (MLP), at least one convolutional neural network (CNN), at least one recurrent neural network (RNN), at least one autoencoder, and / or at least one transformer, etc.). In some examples, the perception system 402, planning system 404, positioning system 406, and / or control system 408, alone or in combination with one or more of the above systems, implement at least one machine learning model. In some examples, the perception system 402, planning system 404, positioning system 406, and / or control system 408 implement at least one machine learning model as part of a pipeline (e.g., a pipeline for identifying one or more objects located in an environment, etc.). Figures 4B to 4D Includes examples of implementations of machine learning models.
[0075] Database 410 stores data transmitted to, received from, and / or updated by perception system 402, planning system 404, positioning system 406, and / or control system 408. In some examples, database 410 includes a storage component for storing data and / or software related to operations and using at least one system of autonomous vehicle computing 400 (e.g., Figure 3In some embodiments, database 410 stores data associated with a 2D and / or 3D map of at least one area. In some examples, database 410 stores data associated with a 2D and / or 3D map of a portion of a city, portions of multiple cities, multiple cities, a county, a state, and / or a country (e.g., a country), etc. In such an example, a vehicle (e.g., a vehicle that is the same as or similar to vehicle 102 and / or vehicle 200) can drive along one or more drivable areas (e.g., a single-lane road, a multi-lane road, a highway, a back road, and / or an off-road road, etc.) and cause at least one LiDAR sensor (e.g., a LiDAR sensor that is the same as or similar to LiDAR sensor 202b) to generate data associated with an image representing objects included in the field of view of the at least one LiDAR sensor.
[0076] In some embodiments, database 410 can be implemented across multiple devices. In some examples, database 410 includes a vehicle (e.g., a vehicle that is the same as or similar to vehicle 102 and / or vehicle 200), an autonomous vehicle system (e.g., an autonomous vehicle system that is the same as or similar to remote AV system 114), a fleet management system (e.g., a vehicle ... Figure 1 The same or similar queue management system as the queue management system 116 of FIG) and / or the V2I system (e.g., Figure 1 The V2I system 118 is the same or similar V2I system) and the like.
[0077] Now refer to Figure 4B , a diagram illustrating an implementation of a machine learning model. More specifically, a diagram illustrating an implementation of a convolutional neural network (CNN) 420. For purposes of illustration, the following description of CNN 420 will be with respect to implementing CNN 420 via perception system 402. However, it will be understood that in some examples, CNN 420 (e.g., one or more components of CNN 420) is implemented by other systems other than or in addition to perception system 402 (such as planning system 404, positioning system 406, and / or control system 408). Although CNN 420 includes certain features as described herein, these features are provided for purposes of illustration and are not intended to limit the present disclosure.
[0078] CNN 420 includes a plurality of convolutional layers including a first convolutional layer 422, a second convolutional layer 424, and a convolutional layer 426. In some embodiments, CNN 420 includes a subsampling layer 428 (sometimes referred to as a pooling layer). In some embodiments, subsampling layer 428 and / or other subsampling layers have a dimension that is smaller than the dimension of the upstream system (i.e., the number of nodes). By virtue of subsampling layer 428 having a dimension that is smaller than the dimension of the upstream layer, CNN 420 merges the amount of data associated with the initial input and / or output of the upstream layer, thereby reducing the amount of computation required for CNN 420 to perform downstream convolution operations. Additionally or alternatively, by virtue of subsampling layer 428 being associated with (e.g., configured to perform) at least one subsampling function (as described below with respect to Figure 4C and Figure 4D As described above, CNN 420 incorporates the amount of data associated with the initial input.
[0079] The perception system 402 performs a convolution operation based on the perception system 402 providing respective inputs and / or outputs associated with each of the first convolution layer 422, the second convolution layer 424, and the convolution layer 426 to generate respective outputs. In some examples, the perception system 402 implements the CNN 420 based on the perception system 402 providing data as input to the first convolution layer 422, the second convolution layer 424, and the convolution layer 426. In such examples, the perception system 402 provides data as input to the first convolution layer 422, the second convolution layer 424, and the convolution layer 426 based on receiving data from one or more different systems (e.g., one or more systems of vehicles that are the same as or similar to the vehicle 102, a remote AV system that is the same as or similar to the remote AV system 114, a queue management system that is the same as or similar to the queue management system 116, and / or a V2I system that is the same as or similar to the V2I system 118, etc.). Figure 4C Includes a detailed description of the convolution operation.
[0080] In some embodiments, perception system 402 provides data associated with input (referred to as initial input) to first convolutional layer 422, and perception system 402 uses first convolutional layer 422 to generate data associated with output. In some embodiments, perception system 402 provides the output generated by a convolutional layer as input to a different convolutional layer. For example, perception system 402 provides the output of first convolutional layer 422 as input to subsampling layer 428, second convolutional layer 424, and / or convolutional layer 426. In such an example, first convolutional layer 422 is referred to as an upstream layer, and subsampling layer 428, second convolutional layer 424, and / or convolutional layer 426 are referred to as downstream layers. Similarly, in some embodiments, perception system 402 provides the output of subsampling layer 428 to second convolutional layer 424 and / or convolutional layer 426, and in this example, subsampling layer 428 will be referred to as an upstream layer, and second convolutional layer 424 and / or convolutional layer 426 will be referred to as downstream layers.
[0081] In some embodiments, before the perception system 402 provides input to the CNN 420, the perception system 402 processes the data associated with the input provided to the CNN 420. For example, the perception system 402 processes the data associated with the input provided to the CNN 420 based on normalizing the sensor data (e.g., image data, LiDAR data, and / or Radar data, etc.) by the perception system 402.
[0082] In some embodiments, CNN 420 generates an output based on the convolution operations associated with each convolution layer performed by perception system 402. In some examples, CNN 420 generates an output based on the convolution operations associated with each convolution layer and the initial input performed by perception system 402. In some embodiments, perception system 402 generates an output and provides the output to fully connected layer 430. In some examples, perception system 402 provides the output of convolution layer 426 to fully connected layer 430, where fully connected layer 430 includes data associated with multiple feature values referred to as F1, F2, ..., FN. In this example, the output of convolution layer 426 includes data associated with multiple output feature values representing a prediction.
[0083] In some embodiments, perception system 402 identifies a prediction from the plurality of predictions based on perception system 402 identifying the feature value associated with the highest likelihood of being the correct prediction among the plurality of predictions. For example, if fully connected layer 430 includes feature values F1, F2, ..., FN and F1 is the largest feature value, perception system 402 identifies the prediction associated with F1 as the correct prediction among the plurality of predictions. In some embodiments, perception system 402 trains CNN 420 to generate the prediction. In some examples, perception system 402 trains CNN 420 to generate the prediction based on perception system 402 providing training data associated with the prediction to CNN 420.
[0084] Now refer to Figure 4C and Figure 4D , a diagram illustrating an example operation of CNN 440 utilizing perception system 402. In some embodiments, CNN 440 (e.g., one or more components of CNN 440) is coupled to CNN 420 (e.g., one or more components of CNN 420) (see Figure 4B ) are the same or similar.
[0085] At step 450, perception system 402 provides data associated with the image as input to CNN 440 (step 450). For example, as illustrated, perception system 402 provides data associated with the image to CNN 440, where the image is a grayscale image represented as values stored in a two-dimensional (2D) array. In some embodiments, the data associated with the image may include data associated with a color image represented as values stored in a three-dimensional (3D) array. Additionally or alternatively, the data associated with the image may include data associated with an infrared image and / or a radar image, etc.
[0086] At step 455, CNN 440 performs a first convolution function. For example, CNN 440 performs the first convolution function based on CNN 440 providing a value representing an image as input to one or more neurons (not explicitly shown) included in first convolution layer 442. In this example, the value representing the image can correspond to the value of a region representing the image (sometimes referred to as a receptive field). In some embodiments, each neuron is associated with a filter (not explicitly shown). The filter (sometimes referred to as a kernel) can be represented as an array of values corresponding in size to the value provided as input to the neuron. In one example, the filter can be configured to recognize edges (e.g., horizontal lines, vertical lines, and / or straight lines, etc.). In successive convolution layers, the filters associated with the neurons can be configured to successively recognize more complex patterns (e.g., arcs and / or objects, etc.).
[0087] In some embodiments, CNN 440 performs a first convolution function based on CNN 440 multiplying the value of each neuron provided as input to one or more neurons included in first convolutional layer 442 by the value of the filter corresponding to each neuron in the same or more neurons. For example, CNN 440 may multiply the value of each neuron provided as input to one or more neurons included in first convolutional layer 442 by the value of the filter corresponding to each neuron in the one or more neurons to generate a single value or an array of values as output. In some embodiments, the collective output of the neurons of first convolutional layer 442 is referred to as a convolution output. In some embodiments, when each neuron has the same filter, the convolution output is referred to as a feature map.
[0088] In some embodiments, CNN 440 provides the output of each neuron of the first convolutional layer 442 to the neurons of the downstream layer. For clarity, an upstream layer may be a layer that transmits data to a different layer (referred to as a downstream layer). For example, CNN 440 may provide the output of each neuron of the first convolutional layer 442 to the corresponding neurons of the subsampling layer. In an example, CNN 440 provides the output of each neuron of the first convolutional layer 442 to the corresponding neurons of the first subsampling layer 444. In some embodiments, CNN 440 adds a bias value to the aggregate set of all values provided to the neurons of the downstream layer. For example, CNN 440 adds a bias value to the aggregate set of all values provided to the neurons of the first subsampling layer 444. In such an example, CNN 440 determines the final value to be provided to each neuron of the first subsampling layer 444 based on the aggregate set of all values provided to each neuron and the activation function associated with each neuron of the first subsampling layer 444.
[0089] At step 460, CNN 440 performs a first subsampling function. For example, CNN 440 may perform the first subsampling function based on CNN 440 providing the values output by first convolutional layer 442 to corresponding neurons of first subsampling layer 444. In some embodiments, CNN 440 performs the first subsampling function based on an aggregation function. In an example, CNN 440 performs the first subsampling function based on CNN 440 determining the maximum input among the values provided to a given neuron (referred to as a max pooling function). In another example, CNN 440 performs the first subsampling function based on CNN 440 determining the average input among the values provided to a given neuron (referred to as an average pooling function). In some embodiments, CNN 440 generates an output based on CNN 440 providing values to each neuron of first subsampling layer 444, which is sometimes referred to as a subsampled convolution output.
[0090] At step 465, CNN 440 performs a second convolution function. In some embodiments, CNN 440 performs the second convolution function in a manner similar to how CNN 440 performs the first convolution function described above. In some embodiments, CNN 440 performs the second convolution function based on CNN 440 providing the values output by first subsampling layer 444 as input to one or more neurons (not explicitly illustrated) included in second convolution layer 446. In some embodiments, as described above, each neuron of second convolution layer 446 is associated with a filter. As described above, the filter(s) associated with second convolution layer 446 can be configured to recognize more complex patterns than the filters associated with first convolution layer 442.
[0091] In some embodiments, CNN 440 performs a second convolution function based on CNN 440 multiplying the value of each of the one or more neurons included in second convolution layer 446 provided as input by the value of the filter corresponding to each of the one or more neurons. For example, CNN 440 may multiply the value of each of the one or more neurons included in second convolution layer 446 provided as input by the value of the filter corresponding to each of the one or more neurons to generate a single value or an array of values as output.
[0092] In some embodiments, CNN 440 provides the output of each neuron of second convolutional layer 446 to neurons of a downstream layer. For example, CNN 440 may provide the output of each neuron of first convolutional layer 442 to a corresponding neuron of a subsampling layer. In an example, CNN 440 provides the output of each neuron of first convolutional layer 442 to a corresponding neuron of a second subsampling layer 448. In some embodiments, CNN 440 adds a bias value to the aggregate set of all values provided to each neuron of a downstream layer. For example, CNN 440 adds a bias value to the aggregate set of all values provided to each neuron of second subsampling layer 448. In such an example, CNN 440 determines the final value provided to each neuron of second subsampling layer 448 based on the aggregate set of all values provided to each neuron and the activation function associated with each neuron of second subsampling layer 448.
[0093] At step 470, CNN 440 performs a second subsampling function. For example, CNN 440 may perform the second subsampling function based on CNN 440 providing the values output by second convolutional layer 446 to corresponding neurons of second subsampling layer 448. In some embodiments, CNN 440 performs the second subsampling function based on CNN 440 using an aggregation function. In examples, as described above, CNN 440 performs the first subsampling function based on CNN 440 determining the maximum input or average input among the values provided to a given neuron. In some embodiments, CNN 440 generates an output based on CNN 440 providing values to each neuron of second subsampling layer 448.
[0094] At step 475, CNN 440 provides the output of each neuron of second subsampling layer 448 to fully connected layer 449. For example, CNN 440 provides the output of each neuron of second subsampling layer 448 to fully connected layer 449, so that fully connected layer 449 generates an output. In some embodiments, fully connected layer 449 is configured to generate an output associated with a prediction (sometimes referred to as a classification). The prediction may include an indication of the objects included in the image provided as input to CNN 440, including objects and / or sets of objects. In some embodiments, perception system 402 performs one or more operations and / or provides data associated with the prediction to various systems described herein.
[0095] Now refer to Figure 4E , a diagram illustrating an implementation of a machine learning model. More specifically, a diagram illustrating an implementation of a transformer model 482 is illustrated. In some example embodiments, the transformer model 482 may implement the perception system 402, the planning system 404, the positioning system 406, and / or the control system 408. As will be described in more detail, the transformer model 482 may include a self-attention mechanism to capture the relative importance and relationships between different parts of the input 483. For example, where the input 483 is an image (e.g., of an environment proximate to a vehicle), the self-attention mechanism of the transformer model 482 may capture the relative importance and relationships between different parts (or patches) of the image when generating an output 495 that includes, for example, one or more labels for classifying one or more objects present in the image. Although the transformer model 482 includes certain features as described herein, these features are provided for illustrative purposes and are not intended to limit the present disclosure.
[0096] like Figure 4E As shown in , the transformer model 482 may include an encoder stack having a plurality of encoders 484 (or encoding layers) coupled to a decoder stack having a plurality of decoders 486 (or decoding layers). Figure 4E In the example shown, input 483 (e.g., embeddings of individual portions of input 483) flows through successive encoders 484, with the output of the final encoder 484 being passed to each decoder 486 in the decoder stack. For example, in some cases, each encoder 484 in the encoder stack can generate an encoding that contains information about which portions of input 483 are related to each other. Furthermore, the output of one encoder 484 can be passed as input to the next encoder 484 in the encoder stack. Thus, in some cases, the first encoder 484 in the encoder stack can generate a first encoding of input 483 (e.g., embeddings of individual portions of input 483), while the next encoder 484 in the encoder stack can generate a second encoding of the first encoding.
[0097] like Figure 4E As shown, in some cases, each encoder 484 can include a self-attention layer 485 and a feed-forward network 487. Each portion of the input 483 (e.g., each embedded portion of the input 483) can flow through its own path in the encoder 484, where the self-attention layer 485 determines the relationship (or association) between the individual portions of the input 483. For example, where the input 483 is an image, the self-attention layer 485 can determine the relationship between different portions (or blocks) of the image. In doing so, the self-attention layer 485 enables the encoder 484 to generate a context-aware encoding of the input 483, in which the encoding of each individual portion of the input 483 incorporates weighted values corresponding to other portions of the input 483. For example, in some cases, an encoding of a first portion of input 483 (e.g., a first embedding of the first portion of input 483) can be generated to incorporate a first value corresponding to a second portion of input 483 and a second value corresponding to a third portion of input 483, where the first value and the second value are weighted to reflect the extent to which the second and third portions of input 483 should influence the encoding of the first portion of input 483. In some cases, self-attention layer 485 can include a multi-headed attention mechanism, each head of which applies a different set of weights (e.g., query, key, and value weight matrices) for incorporating other portions of input 483. It should be understood that the weights (e.g., query, key, and value weight matrices) applied by self-attention layer 485 can be learned during training of transformer model 482.
[0098] Reference again Figure 4E, a decoder stack can decode an input 483 to generate an output 495 based on the attention vector output by a final encoder 484 in the encoder stack, where each decoder 486 in the decoder stack successively decodes the output of a previous decoder 486. For example, a first decoder 486 in the decoder stack can generate a first decoding of the input 483 (e.g., embeddings of individual portions of the input 483), and a next decoder 486 in the decoder stack can generate a second decoding of the first decoding. Figure 4E As shown, each decoder 486 can include a self-attention layer 489, an encoder-decoder attention layer 491, and a feed-forward network 493. The self-attention layer 489 of the decoder 486 can enable the decoder 486 to generate a context-aware decoding of the input 483, in which the decoding of each individual portion of the input 483 incorporates weighted values corresponding to one or more previous portions of the input 483. On the other hand, the encoder-decoder attention layer 491 can determine weighted values indicating the relative importance of each corresponding portion of the input 483 based at least on the attention vector output by the final encoder 484 of the encoder stack.
[0099] Now refer to Figure 5 , illustrates a diagram of an implementation 500 of a system for vehicle motion planning in which a trajectory 507 is selected for navigating a vehicle in a scenario 505 from a plurality of trajectories generated by an integration of planning models. In some embodiments, the implementation 500 includes an example of a planning system 404 having an integration of models including a routing model 502 and planning models 504 (e.g., a first planning model 504a, a second planning model 504b, and / or a third planning model 504c, etc.). In some cases, the routing model 502, the first planning model 504a, the second planning model 504b, and / or the third planning model 504c can be machine learning models. Figures 4B to 4E Describes examples of machine learning model architectures.
[0100] In some example embodiments, the planning system 404 may include an integration of planning models 504a-504c, at least because any individual planning model in the planning models 504a-504c may not provide adequate performance across the entire range of scenarios encountered by a vehicle (e.g., an autonomous vehicle such as vehicles 102a-102n and / or vehicle 200). Various factors may contribute to the differences in performance of the first planning model 504a, the second planning model 504b, and the third planning model 504c. For example, the first planning model 504a, the second planning model 504b, and the third planning model 504c may have different machine learning architectures. Alternatively and / or additionally, the first planning model 504a, the second planning model 504b, and the third planning model 504c may have undergone different training, including, for example, being initialized with different parameters (e.g., weights and / or biases) at the beginning of training, being exposed to different training data during training, and / or being subjected to different convergence criteria at the end of training. These factors may also prevent any single one of the planning models 504a-504c from being trained to perform well across the entire range of scenarios encountered by the vehicle. In some cases, training a single one of the planning models 504a-504c to achieve adequate performance for one set of scenarios may, in turn, degrade the model's performance for other scenarios.
[0101] In some example embodiments, instead of relying on a single one of the planning models 504a-504c to generate a trajectory for each scenario encountered by the vehicle, the routing model 502 may select the trajectory generated by the planning model 504a-504c that performs best for each scenario. Figure 5In the example shown, the routing model 502 can select a trajectory that is best suited for navigating the vehicle within an environment defined by a plurality of agent features 509 (e.g., including features of the vehicle itself) and / or geographic features 511 (e.g., lane and / or road features, etc.) included in the scenario 505. In some cases, the planning system 404 can receive data corresponding to the scenario 505, for example, from the perception system 402 and / or the positioning system 406, and then generate and output a corresponding trajectory 507 for ingestion by the control system 408. For those scenarios in which the first planning model 504a exhibits better performance than the second planning model 504b and / or the third planning model 504c, the routing model 502 can select the first trajectory generated by the first planning model 504a for navigating the vehicle, rather than selecting the second trajectory generated by the second planning model 504b and / or the third trajectory generated by the third planning model 504c. On the other hand, for other scenarios where the second planning model 504b outperforms the first planning model 504a and / or the third planning model 504b, the routing model 502 can select the second trajectory generated by the second planning model 504b when the vehicle encounters these scenarios. In doing so, the routing model 502 can maximize the performance of the planning system 404 in a variety of scenarios, including infrequent scenarios (e.g., scenarios identified as accounting for less than 1% of all scenarios encountered by the vehicle) for which training samples are scarce or even non-existent.
[0102] In some example embodiments, the performance of each of the planning models 504a-504c in a particular scenario (such as scenario 505) can be evaluated based on a performance metric that quantifies the difference between the trajectory generated by each of the planning models 504a-504c and the ground truth trajectory for scenario 505. The average displacement error (ADE) is an example of a performance metric. In some cases, the average displacement error (ADE) can correspond to the average of the root mean square error (RMSE) between the ground truth trajectory and the corresponding vehicle position of the trajectory generated by one of the planning models 504a-504c at each waypoint within the time frame covered by the trajectory (e.g., 50 waypoints in a 5 second time frame at a 10 Hz sampling rate). Therefore, in some cases, a lower average displacement error (ADE) can indicate a better performing planning model.
[0103] In some example embodiments, routing model 502 and planning models 504a-504c can implement a two-stage process in which routing model 502 and planning models 504a-504c are trained separately to generate, for example, trajectory 507 for scenario 505. For example, in some cases, routing model 502 can be a multi-class classifier whose output is a one-hot-encoded vector in which each element corresponds to one of planning models 504a-504c. The element in the one-hot-encoded vector corresponding to the best-performing planning model can be set to a first value (e.g., "1"), while the other elements in the one-hot-encoded vector can be set to a second value (e.g., "0").
[0104] As part of training for the two-stage process, each of the planning models 504a-504c can be trained to generate trajectories for various training scenarios. For example, in some cases, the planning models 504a-504c can be trained so that the average displacement error (ADE) between the trajectory output by each of the planning models 504a-504c and the corresponding ground truth trajectory meets one or more thresholds. In addition, in some cases, the training for the two-stage process can also include training the route selection model 502 to select the best performing planning model from the planning models 504a-504c. To this end, each of the planning models 504a-504c can be applied to generate different trajectories for the training scenarios associated with the ground truth trajectories. In order to identify the best performing planning model for the training scenario, a separate performance metric (e.g., average displacement error (ADE), etc.) can be determined for each planning model 504a-504c based on a comparison between the ground truth trajectory and the trajectory generated by each of the planning models 504a-504c. Training samples for routing model 502 can be generated to include training scenarios, trajectories output by planning models 504a-504c, and ground truth outputs for identifying the best-performing planning model (e.g., the planning model with the lowest average displacement error (ADE) among planning models 504a-504c). Routing model 502 can then be trained to determine the best-performing planning model for the training scenarios based at least on the training samples. For example, in some cases, training routing model 502 can include adjusting routing model 502 so that the output of routing model 502 identifies the best-performing planning model that is the same as the ground truth output. In some cases, adjusting routing model 502 can include adjusting weights and / or biases applied by routing model 502 to minimize a loss function that quantifies the difference between the output of routing model 502 and the ground truth output.
[0105] Now refer to Figure 6A, which depicts a flow diagram illustrating an example of a process 600 for training a model ensemble for vehicle motion planning. In some embodiments, one or more of the operations described with respect to process 600 can be performed offline (e.g., completely and / or partially, etc.), for example, at the vehicle-to-infrastructure device 110, the remote AV system 114, the queue management system 116, and / or the vehicle-to-infrastructure system 118, to train the model ensemble including the routing model 502 and the planning models 504a-504c. In some cases, at least a portion of the model ensemble including the routing model 502 and the planning models 504a-504c can be deployed to the planning system 404 of a vehicle (e.g., an autonomous vehicle such as vehicles 102a-102n and / or vehicle 200) while being trained to generate one or more trajectories (e.g., trajectory 507 for scenario 505) for the vehicle to navigate various scenarios encountered by the vehicle.
[0106] At 602, each of a plurality of planning models can be trained based on a plurality of training scenarios associated with a ground truth trajectory to generate a vehicle trajectory. In some example embodiments, each of the planning models 504a-504c can be trained individually to generate trajectories for navigating a vehicle (e.g., an autonomous vehicle such as vehicles 102a-102n and / or vehicle 200) in various scenarios. In some cases, the planning models 504a-504c can be based on different machine learning architectures. Alternatively and / or additionally, the planning models 504a-504c can be trained based on different training data including, for example, different training scenarios. For example, in some cases, the first planning model 504a may determine a trajectory for a vehicle in a scenario based at least on interactions between multiple agents as they are positioned relative to one or more lanes present in the scenario, while the second planning model 504b may determine a trajectory for a vehicle based at least on interactions between the multiple agents and the one or more lanes as they are positioned relative to the lanes. Thus, the trained planning models 504a-504c may be able to respond to a wider variety of scenarios than any single planning model in the planning models 504a-504c alone. For example, in the event that the first planning model 504a is unable to generate a satisfactory trajectory for a scenario (e.g., a trajectory with an average displacement error (ADE) that satisfies one or more thresholds), the second planning model 504b and / or the third planning model 504c may be able to generate a satisfactory trajectory for the scenario.
[0107] In some cases, the training data used to train the planning models 504a-504c may include multiple training scenarios, each associated with a ground truth trajectory. Thus, training the first planning model 504a may include adjusting the parameters (e.g., weights and / or biases, etc.) of the first planning model 504a to minimize the difference (e.g., average displacement error (ADE), etc.) between the trajectory generated by the first planning model 504a for each training scenario in the first plurality of training scenarios and the corresponding ground truth trajectory. As described above, in some cases, the second planning model 504b and / or the third planning model 504c may be based on a different machine learning architecture than the first planning model 504a. Furthermore, in some cases, the second planning model 504b and / or the third planning model 504c may have undergone different training than the first planning model 504a, including, for example, different initial parameters, different training data (e.g., a different set of training scenarios), and / or different convergence criteria. In some cases, training the second planning model 540b may include adjusting parameters (e.g., weights and / or biases, etc.) of the second planning model 504b to minimize the difference (e.g., average displacement error (ADE), etc.) between the trajectory generated by the second planning model 504b for each training scenario in the second plurality of training scenarios and the corresponding ground truth trajectory.
[0108] At 604, a routing model can be trained based at least on each training scenario and the corresponding ground truth trajectory to select a trajectory from a plurality of trajectories generated by a plurality of planning models. In some example embodiments, the routing model 502 can be trained separately from the planning models 504a-504c. For example, in some cases, the routing model 502 can be trained to select the best-performing planning model among the planning models 504a-504c for each training scenario. Thus, in some cases, the training data used to train the routing model 502 can include at least the portion of the training scenario used to train the planning models 504a-504c. Furthermore, each training scenario used to train the planning models 504a-504c can be associated with a ground truth output for identifying the best-performing model for the training scenario. For example, the routing model 502 can be trained to generate an output for identifying the best-performing planning model among the planning models 540a-540c based on input including the training scenario and the plurality of trajectories generated by the planning models 504a-504c. In some cases, training the routing model 502 may include adjusting parameters (e.g., weights and / or biases, etc.) of the routing model 502 so that the output of the routing model 502 identifies the planning model 504a-504c having the lowest average displacement error (ADE) relative to the ground truth trajectory for each training scenario.
[0109] At 606, the routing model and the planning model can be applied to generate a trajectory for navigating the vehicle in one or more scenarios. In some example embodiments, during training, the routing model 502 and the planning models 504a-504c can be applied to generate, for example, a trajectory 507 for scenario 505. As will be described in more detail below, when a two-stage process is implemented, each of the trained planning models 504a-504c can be applied to generate a different candidate trajectory for scenario 505. The routing model 502 can take inputs including the candidate trajectories and the scenario 505 and generate outputs that identify the best performing planning model among the planning models 504a-504c for scenario 505. For example, as described above, the best performing planning model among the planning models 504a-504c for scenario 505 can be the planning model whose candidate trajectory exhibits the lowest average displacement error (ADE). The candidate trajectory generated by the best performing planning model among the planning models 504a-504c may be selected for use in controlling the motion of a vehicle (eg, an autonomous vehicle such as vehicles 102a-102n and / or vehicle 200).
[0110] Figure 6B 6 is a flow chart illustrating an example of process 650 for integrated vehicle motion planning. In some embodiments, one or more of the operations described with respect to process 650 may be performed online (e.g., completely and / or partially, etc.) at planning system 404 of a vehicle (e.g., an autonomous vehicle such as vehicles 102a-102n and / or vehicle 200) to generate one or more trajectories for the vehicle to navigate various scenarios encountered by the vehicle (e.g., trajectory 507 for scenario 505). Alternatively and / or in addition, one or more of the operations described with respect to process 650 may be performed offline, for example, at vehicle-to-infrastructure device 110, remote AV system 114, fleet management system 116, and / or vehicle-to-infrastructure system 118. In some cases, the operations described with respect to process 650 may implement operation 606 of process 600, for example, to generate trajectories for the vehicle to navigate scenarios (e.g., trajectory 507 for scenario 505).
[0111] At 652, a scenario including a plurality of agent features and / or a plurality of geographic features may be received. Figure 5As shown, in some example embodiments, planning system 404 may receive a scenario 505 including agent features 509 (e.g., including features of the vehicle itself) and / or geographic features 511 (e.g., lane and / or road features, etc.), for example, from perception system 402 and / or positioning system 406. In some cases, scenario 505 may be represented as a graph in which a plurality of interconnected nodes represent one or more lanes present in the vehicle's environment. In some cases, the graph may also include one or more additional nodes representing each of the plurality of agents present in the scenario. Individual features of the agents and lanes may be associated with corresponding nodes.
[0112] At 654, a plurality of candidate trajectories for the vehicle may be generated by applying at least a plurality of planning models including a first planning model for generating a first candidate trajectory based at least on the scenario and a second planning model for generating a second candidate trajectory based on the scenario. As described above, in some example embodiments, the planning models 504a-504c may be based on different machine learning architectures. Alternatively and / or additionally, the planning models 504a-504c may be trained based on different training data. For example, in some cases, the first planning model 504a may determine the trajectory of the vehicle in the scenario 505 based at least on the interactions between the plurality of agents as the plurality of agents are positioned relative to one or more lanes present in the scenario 505, while the second planning model 504b may determine the trajectory of the vehicle based at least on the interactions between the plurality of agents and the one or more lanes as the plurality of agents are positioned relative to the one or more lanes. Applying the plurality of planning models, including planning models 504a-504c, to determine candidate trajectories for the same scenario 505 enables the planning system 404 to take advantage of a wider variety of planning models, at least some of which have better performance than other planning models when encountering certain scenarios. For example, in some cases, the first planning model 504a can be applied to generate a first candidate trajectory for scenario 505, while the second planning model 504b can be applied to generate a second candidate scenario for scenario 505, and in some cases, the third planning model 504c can also be applied to generate a third candidate scenario for scenario 505. Furthermore, in some cases, each candidate trajectory can be represented by a graph of a plurality of interconnected nodes corresponding to a plurality of waypoints forming the trajectory.
[0113] At 656, a routing model can be applied to select a trajectory from a plurality of candidate trajectories based at least on the scenario. In some example embodiments, routing model 502 can take as input a scenario 505 and a plurality of candidate trajectories for the scenario 505, including, for example, a first candidate scenario generated by first planning model 504a, a second candidate trajectory generated by second planning model 504b, and / or a third candidate trajectory generated by third planning model 504c. Furthermore, routing model 502 can generate an output for identifying a planning model from among planning models 504a-504c that has the best performance based at least on the scenario 505 and the candidate trajectories. For example, in some cases, routing model 502 can be a graph neural network (GNN) that operates on a graph representing the scenario 505 and the trajectories to determine which planning model from among planning models 504a-504c generates a candidate trajectory with the lowest average displacement error (ADE) compared to the other planning models. In some cases, the output of the routing model 502 may be a one-hot encoded vector in which the element of the one-hot encoded vector corresponding to the best-performing planning model among the planning models 504 a - 504 c is set to a first value (e.g., “1”), and the remaining elements of the one-hot encoded vector are set to a second value (e.g., “0”).
[0114] At 658, the movement of the vehicle can be controlled based at least on the selected trajectory. For example, in some cases, trajectory 507 can be a candidate trajectory generated by the best-performing planning model among planning models 504a-504c, and trajectory 507 can be sent to control system 408 to control the movement of the vehicle. As described above, trajectory 507 can include a series of actions that can be performed by control system 408 to navigate the vehicle in scenario 505.
[0115] In some example embodiments, in addition to Figures 6A to 6BIn addition to the two-stage process described in
[0045] , the routing model 502 and the planning models 504a-504c can implement an end-to-end process in which the routing model 502 and the planning models 504a-504c are trained simultaneously to generate, for example, a trajectory 507 for the scenario 505. In some cases, while the planning models 504a-504c are trained to generate trajectories for various training scenarios, the routing model 502 can be simultaneously trained to determine whether the performance of the planning models 504a-504c meets one or more thresholds. For example, the routing model 502 can be trained to determine whether the performance of the first planning model 504a meets one or more thresholds based on the training scenarios and the corresponding trajectories generated by the first planning model 504a (e.g., whether the average displacement error (ADE) of the trajectory generated by the first planning model 504a meets one or more thresholds). If it is determined that the performance of the first planning model 504a meets one or more thresholds, the routing model 502 may then select the trajectory generated by the first planning model 504a as the trajectory for navigating the vehicle in the training scenario. Conversely, if the performance of the first planning model 504a fails to meet one or more thresholds, the routing model 504 may enable the second planning model 504b to generate another trajectory for the same training scenario.
[0116] In this example, an incorrect planning model among the planning models 504a-504c for a training scenario can be activated by the routing model 502, so that the trajectory output by the selected planning model deviates from the ground truth trajectory associated with the training scenario, thereby reflecting the error present in the output of the routing model 502. Therefore, training the routing model 502 and the planning models 504a-504c can include adjusting parameters (e.g., weights and / or biases, etc.) of the routing model 502 and parameters (e.g., weights and / or biases, etc.) of each of the planning models 504a-504c, so that the planning model activated for each training scenario among the planning models 504a-504c generates a trajectory whose average displacement error (ADE) with respect to the ground truth trajectory for the training scenario satisfies one or more thresholds.
[0117] During training and during inference, the routing model 502 may enable each of the planning models 504a-504c one at a time to generate a trajectory for the scenario 505 until the routing model 502 determines that the performance of one of the planning models 504a-504c (e.g., the average displacement error (ADE) of the corresponding trajectory) satisfies one or more thresholds. Figure 5In the example shown, the routing model 502 may first determine whether the performance of the first planning model 504a (e.g., the average displacement error (ADE) of the first trajectory generated by the first planning model 504a) satisfies one or more thresholds based on the scenario 505 and the first trajectory generated by the first planning model 504a for the scenario 505. If the performance of the first planning model 504a satisfies the one or more thresholds, the routing model 502 may select the first trajectory generated by the first planning model 504a as the trajectory 507 for navigating the vehicle in the scenario 505. Alternatively, if the routing model 502 determines that the performance of the first planning model 504a fails to satisfy the one or more thresholds, the routing model 502 may enable the second planning model 504b to generate a second trajectory for the scenario 505. If the routing model 502 determines that the performance of the second planning model 504b (e.g., the average displacement error (ADE) of the second trajectory generated by the second planning model 504b) meets one or more thresholds based on the scenario 505 and the second trajectory, the second trajectory generated by the second planning model 504b can be selected as the trajectory 507 for navigating the vehicle in the scenario 505. In other cases, if the performance of the second planning model 504b fails to meet one or more thresholds, the routing model 502 can enable the third planning model 504c to generate a third trajectory for the scenario 505.
[0118] Now refer to Figure 7A , which depicts a flow chart illustrating another example of a process 700 for training a model ensemble for vehicle motion planning. In some embodiments, one or more of the operations described with respect to process 700 can be performed offline (e.g., completely and / or partially, etc.), for example, at the vehicle-to-infrastructure device 110, the remote AV system 114, the queue management system 116, and / or the vehicle-to-infrastructure system 118, to train the model ensemble including the routing model 502 and the planning models 504a-504c. In some cases, during training, at least a portion of the model ensemble including the routing model 502 and the planning models 504a-504c can be deployed to the planning system 404 of a vehicle (e.g., an autonomous vehicle such as vehicles 102a-102n and / or vehicle 200) to generate one or more trajectories (e.g., trajectory 507 for scenario 505) for the vehicle to navigate various scenarios encountered by the vehicle.
[0119] At 702, a model ensemble including a routing model and a plurality of planning models may be trained such that the routing model outputs a trajectory that satisfies one or more criteria by at least selecting a first candidate trajectory generated by a first planning model when it is determined that the first candidate trajectory satisfies the one or more criteria, and enabling a second planning model to generate a second candidate trajectory when it is determined that the first candidate trajectory fails to satisfy the one or more criteria. In some example embodiments, implementing end-to-end processing may include simultaneously training the routing model 502 and the planning models 504a-504c. For example, during a training process, the planning models 504a-504c undergo a respective parameter (e.g., weights and / or biases) of the planning models 504a-504c, such that the difference between the trajectory output by each of the planning models 504a-504c for various training scenarios and the corresponding ground truth trajectory for the training scenarios is minimized. Planning models 504a-504c in the end-to-end process can be based on different machine learning architectures and / or undergo different training (e.g., different initial parameters, training data, and / or convergence criteria, etc.). Furthermore, in the end-to-end paradigm, routing model 502 is trained simultaneously to determine whether a candidate trajectory output by one of the planning models 504 meets one or more criteria, and to activate other planning models in planning model 504 if the candidate trajectory fails to meet one or more criteria. For example, routing model 502 can take as input a first candidate trajectory generated by a first planning model 504a and a corresponding training scenario, and then determine whether the average displacement error (ADE) of the first candidate trajectory meets one or more thresholds. If the average displacement error (ADE) of the first candidate trajectory fails to meet one or more thresholds, routing model 502 can activate a second planning model 504b to generate a second candidate trajectory, and then determine whether the average displacement error (ADE) of the second candidate trajectory meets one or more thresholds.
[0120] In some example embodiments, training a model ensemble comprising routing model 502 and planning models 504a-504c may include minimizing errors in the output of the model ensemble. For example, once routing model 502 determines that a candidate trajectory output by one of planning models 504a-504c for a training scenario satisfies one or more thresholds, the candidate trajectory may be output by the model ensemble. Thus, training the model ensemble includes adjusting parameters of routing model 502 and parameters of planning models 504a-504c to minimize differences (e.g., average displacement error (ADE), etc.) between the trajectory output by the model ensemble and the ground truth trajectory for the training scenario. In some cases, these adjustments may reduce the differences (e.g., average displacement error (ADE), etc.) between the trajectories generated by planning models 504a-504c and the ground truth trajectory. Alternatively and / or additionally, these adjustments may cause the routing model 502 to enable different ones of the planning models 504a-504c that are capable of generating trajectories that are more similar to the ground truth trajectory (eg, have a lower average displacement error (ADE), etc.).
[0121] At 704, the model ensemble may be applied to generate a trajectory for navigating the vehicle in one or more scenarios. In some example embodiments, during training, the routing model 502 and the planning models 504a-504c may be applied to generate, for example, a trajectory 507 for scenario 505. As will be described in more detail below, when implementing end-to-end processing, the trained routing model 502 may continuously invoke one or more of the trained planning models 504a-504c to generate one or more candidate trajectories until a candidate trajectory that satisfies one or more criteria is identified (e.g., a candidate trajectory whose average displacement error satisfies one or more thresholds).
[0122] Figure 7B750 is a flowchart illustrating an example of a process for integrated vehicle motion planning. In some embodiments, one or more of the operations described with respect to process 750 may be performed online (e.g., completely and / or partially, etc.) at planning system 404 of a vehicle (e.g., an autonomous vehicle such as vehicles 102a-102n and / or vehicle 200) to generate one or more trajectories (e.g., trajectory 507 for scenario 505) for the vehicle to navigate various scenarios encountered by the vehicle. Alternatively and / or in addition, one or more of the operations described with respect to process 750 may be performed offline, for example, at vehicle-to-infrastructure device 110, remote AV system 114, queue management system 116, and / or vehicle-to-infrastructure system 118. In some cases, the operations described with respect to process 750 may implement operation 704 of process 700 to, for example, generate trajectories (e.g., trajectory 507 for scenario 505) for the vehicle to navigate the scenarios.
[0123] At 752, a context including a plurality of agent characteristics and / or a plurality of geographic characteristics may be received. Figure 5 In some example embodiments, planning system 404 may receive a scenario 505 including agent features 509 (e.g., including features of the vehicle itself) and / or geographic features 511 (e.g., lane and / or road features, etc.), for example, from perception system 402 and / or positioning system 406. As described above, in some cases, scenario 505 may be represented as a graph with a plurality of interconnected nodes representing one or more lanes present in the vehicle's environment. Furthermore, in some cases, the graph may also include one or more additional nodes representing each of the plurality of agents present in the scenario, wherein respective features of the agents and lanes may be associated with corresponding nodes.
[0124] At 754, a model integration can be applied to generate a trajectory for the vehicle in the scenario by applying at least a routing model, wherein the routing model is configured to select a first candidate trajectory generated by a first planning model based on the vehicle's scenario when it is determined that the first candidate trajectory meets one or more criteria, and to enable a second planning model to generate a second candidate trajectory based on the vehicle's scenario when it is determined that the first candidate trajectory fails to meet the one or more criteria. For example, in some cases, the first planning model 504a can be enabled to generate a first candidate trajectory for the vehicle in scenario 505. The routing model 502 can then take as input the scenario 505 and the first candidate trajectory generated by the first planning model 504a for navigating the vehicle in scenario 505. The routing model 502 can generate an output (e.g., a binary output) indicating whether the first candidate trajectory meets one or more criteria (such as having an average displacement error (ADE) that meets one or more thresholds). If the routing model 502 determines that the first candidate trajectory generated by the first planning model 504a does not meet one or more criteria, the trained planning model 502 can activate the second planning model 504b to generate a second candidate trajectory, and then determine whether the second candidate trajectory meets the one or more criteria. In some cases, the routing model 502 can continue to activate another planning model from the planning models 504a-504c, such as the third planning model 504c, to generate one or more additional candidate trajectories until a trajectory that meets one or more criteria is identified.
[0125] At 756, the movement of the vehicle can be controlled based at least on the selected trajectory. For example, in some cases, trajectory 507 can be sent to control system 408 to control the movement of the vehicle, where trajectory 507 can be the trajectory selected by routing model 502 when it is determined that trajectory 507 meets one or more thresholds. As described above, trajectory 507 can include a series of actions that can be performed by control system 408 to navigate the vehicle in scenario 505.
[0126] According to some non-limiting embodiments or examples, a method is provided, comprising: using at least one processor, generating a plurality of candidate trajectories for a vehicle in a first scenario, the plurality of candidate trajectories being generated by at least applying a first planning model for generating a first trajectory of the vehicle based at least on the first scenario of the vehicle and a second planning model for generating a second trajectory of the vehicle based at least on the first scenario of the vehicle; using the at least one processor, applying a route selection model to select a trajectory from the plurality of candidate trajectories based at least on the first scenario of the vehicle; and using the at least one processor, controlling the movement of the vehicle based at least on the selected trajectory.
[0127] According to some non-limiting embodiments or examples, a method is provided, comprising: using at least one processor, applying a model ensemble to generate a trajectory for a vehicle, the model ensemble comprising a plurality of planning models and a route selection model, wherein the plurality of planning models comprises a first planning model, the first planning model generating a first candidate trajectory for the vehicle based at least on a first scenario of the vehicle, wherein the route selection model selects the first candidate trajectory as the trajectory of the vehicle based on a determination that the first candidate trajectory output by the first planning model satisfies one or more criteria, and wherein the route selection model applies a second planning model from the plurality of planning models to generate a second candidate trajectory for the vehicle based on the first scenario of the vehicle in response to a determination that the first candidate trajectory output by the first planning model fails to satisfy the one or more criteria; and controlling the movement of the vehicle based at least on the trajectory generated by the model ensemble, using the at least one processor.
[0128] According to some non-limiting embodiments or examples, a system is provided, comprising: at least one data processor; and at least one memory storing instructions that, when executed by the at least one processor, cause operations comprising: generating a plurality of candidate trajectories for a vehicle in a first scenario, the plurality of candidate trajectories being generated by at least applying a first planning model for generating a first trajectory of the vehicle based at least on the first scenario of the vehicle and a second planning model for generating a second trajectory of the vehicle based at least on the first scenario of the vehicle; applying a route selection model to select a trajectory from the plurality of candidate trajectories based at least on the first scenario of the vehicle; and controlling the movement of the vehicle based at least on the selected trajectory.
[0129] According to some non-limiting embodiments or examples, a system is provided, comprising: at least one data processor; and at least one memory storing instructions that, when executed by the at least one processor, cause operations comprising: applying a model ensemble to generate a trajectory for a vehicle, the model ensemble comprising a plurality of planning models and a route selection model, wherein the plurality of planning models comprises a first planning model that generates a first candidate trajectory for the vehicle based at least on a first scenario of the vehicle, wherein the route selection model selects the first candidate trajectory as the trajectory of the vehicle based on a determination that the first candidate trajectory output by the first planning model satisfies one or more criteria, and wherein the route selection model applies a second planning model from the plurality of planning models to generate a second candidate trajectory for the vehicle based on the first scenario of the vehicle in response to a determination that the first candidate trajectory output by the first planning model fails to satisfy the one or more criteria; and controlling the movement of the vehicle based at least on the trajectory generated by the model ensemble.
[0130] According to some non-limiting embodiments or examples, at least one non-transitory computer-readable medium is provided, comprising one or more instructions that, when executed by at least one processor, cause the at least one processor to perform operations comprising: generating a plurality of candidate trajectories for a vehicle in a first scenario, the plurality of candidate trajectories being generated by at least applying a first planning model for generating a first trajectory for the vehicle based at least on the first scenario of the vehicle and a second planning model for generating a second trajectory for the vehicle based at least on the first scenario of the vehicle; applying a route selection model to select a trajectory from the plurality of candidate trajectories based at least on the first scenario of the vehicle; and controlling the movement of the vehicle based at least on the selected trajectory.
[0131] According to some non-limiting embodiments or examples, at least one non-transitory computer-readable medium is provided, comprising one or more instructions that, when executed by at least one processor, cause the at least one processor to perform operations comprising: applying a model ensemble to generate a trajectory for a vehicle, the model ensemble comprising a plurality of planning models and a route selection model, wherein the plurality of planning models comprises a first planning model that generates a first candidate trajectory for the vehicle based at least on a first scenario of the vehicle, wherein the route selection model selects the first candidate trajectory as the trajectory of the vehicle based on a determination that the first candidate trajectory output by the first planning model satisfies one or more criteria, and wherein the route selection model applies a second planning model from the plurality of planning models to generate a second candidate trajectory for the vehicle based on the first scenario of the vehicle in response to a determination that the first candidate trajectory output by the first planning model fails to satisfy the one or more criteria; and controlling the movement of the vehicle based at least on the trajectory generated by the model ensemble.
[0132] Further non-limiting aspects or embodiments are set forth in the following numbered clauses:
[0133] Item 1: A method comprising: using at least one processor to generate a plurality of candidate trajectories for a vehicle in a first scenario, the plurality of candidate trajectories being generated by applying at least a first planning model for generating a first trajectory for the vehicle based at least on the first scenario of the vehicle and a second planning model for generating a second trajectory for the vehicle based at least on the first scenario of the vehicle; using the at least one processor to apply a route selection model to select a trajectory from the plurality of candidate trajectories based at least on the first scenario of the vehicle; and using the at least one processor to control movement of the vehicle based at least on the selected trajectory.
[0134] Clause 2: The method of clause 1, wherein the first context of the vehicle comprises one or more lanes and a plurality of agents positioned in the environment in which the vehicle is operating, the plurality of agents including the vehicle.
[0135] Clause 3: The method of clause 2, wherein the first scenario comprises a graph representing a plurality of features associated with the plurality of agents and the one or more lanes.
[0136] Clause 4: A method according to clause 2, wherein the first planning model determines a first trajectory of the vehicle based at least on interactions between the multiple agents present in the first scenario when the multiple agents present in the first scenario are positioned relative to the one or more lanes present in the first scenario.
[0137] Clause 5: A method according to clause 2, wherein the second planning model determines a second trajectory of the vehicle based at least on the interaction between the multiple agents present in the first scenario when the multiple agents present in the first scenario are positioned relative to the one or more lanes present in the first scenario.
[0138] Clause 6: A method according to any of clauses 1-5, wherein the first planning model is based on a first machine learning model, and wherein the second planning model is based on a machine learning model different from the first machine learning model.
[0139] Clause 7: A method according to any one of clauses 1-6, wherein the first planning model is based on a machine learning model trained using a first training set, and wherein the second planning model is based on a machine learning model trained using a second training set different from the first training set.
[0140] Clause 8: A method according to any one of clauses 1-7, wherein the first planning model is based on a machine learning model initialized using a first parameter set, and wherein the second planning model is based on a machine learning model initialized using a second parameter set different from the first parameter set.
[0141] Clause 9: The method according to any one of clauses 1-8 further includes: applying the first planning model to generate a third trajectory for the vehicle in a second scenario; applying the second planning model to generate a fourth trajectory for the vehicle in the second scenario; identifying the third trajectory as a correct trajectory for navigating the second scenario; and generating a training set for training the route selection model, the training set being generated to include the second scenario and a ground truth output, the ground truth output identifying the first planning model as the best performing planning model for the second scenario.
[0142] Clause 10: The method of clause 9, further comprising: training the first planning model before applying the first planning model to generate the first and third trajectories; and training the second planning model before applying the second planning model to generate the fourth trajectory.
[0143] Clause 11: A method according to clause 9, wherein the third trajectory is identified as the correct trajectory for navigating the second scenario based at least on the third trajectory having a lower average displacement error (ADE) relative to the ground truth trajectory for the second scenario compared to the fourth trajectory.
[0144] Clause 12: The method according to any one of clauses 1-11, wherein at least one of the first planning model, the second planning model and the routing model is a graph neural network (GNN) or a transformer model.
[0145] Clause 13: A method according to any one of clauses 1-12, wherein the route selection model selects a trajectory from the plurality of candidate trajectories by at least determining a performance indicator for each of the plurality of candidate trajectories and selecting a trajectory based at least on the performance indicator of the trajectory satisfying one or more thresholds.
[0146] Clause 14: The method of clause 13, wherein the performance metric is average displacement error (ADE).
[0147] Clause 15: The method of any of clauses 1-14, wherein the plurality of candidate trajectories are further generated by applying at least a third planning model to generate a third trajectory for the vehicle based at least on the first scenario for the vehicle.
[0148] Clause 16: A method comprising: using at least one processor, applying a model ensemble to generate a trajectory for a vehicle, the model ensemble including a plurality of planning models and a route selection model, wherein the plurality of planning models include a first planning model, the first planning model generating a first candidate trajectory for the vehicle based at least on a first scenario of the vehicle, wherein the route selection model selects the first candidate trajectory as the trajectory of the vehicle based on a determination that the first candidate trajectory output by the first planning model satisfies one or more criteria, and wherein the route selection model applies a second planning model from the plurality of planning models to generate a second candidate trajectory for the vehicle based on the first scenario of the vehicle in response to a determination that the first candidate trajectory output by the first planning model fails to satisfy the one or more criteria; and using the at least one processor, controlling the movement of the vehicle based at least on the trajectory generated by the model ensemble.
[0149] Clause 17: The method of clause 16, wherein the first planning model is implemented using a first machine learning model, and wherein the second planning model is implemented using a machine learning model different from the first machine learning model.
[0150] Clause 18: A method according to clause 16 or 17, wherein the first planning model is implemented using a machine learning model trained based on a first training set, and wherein the second planning model is implemented using a machine learning model trained based on a second training set different from the first training set.
[0151] Clause 19: A method according to any one of clauses 16-18, wherein the first planning model is implemented using a machine learning model initialized using a first parameter set, and wherein the second planning model is implemented using a machine learning model initialized using a second parameter set different from the first parameter set.
[0152] Clause 20: A method according to any one of clauses 16-19, wherein the route selection model further selects the second trajectory as the trajectory of the vehicle when it is determined that the second trajectory output by the second planning model meets the one or more criteria, and wherein the route selection model applies a third planning model from the multiple planning models to generate a third trajectory for the vehicle based at least on the first scenario of the vehicle when it is determined that the second trajectory output by the second planning model fails to meet the one or more criteria.
[0153] Clause 21: The method according to any one of clauses 16-20 further includes: training the model ensemble using at least one data processor and at least based on a training set, the training set including a second scenario and a ground truth trajectory corresponding to a correct trajectory for navigating the second scenario, training the model ensemble including training the multiple planning models together with the route selection model to minimize the difference between the output of the model ensemble and the ground truth trajectory associated with the second scenario.
[0154] Clause 22: The method of any one of clauses 16-21, wherein the scenario of the vehicle comprises a plurality of agents and one or more lanes, the plurality of agents comprising the vehicle.
[0155] Clause 23: The method of clause 22, wherein the first context of the vehicle comprises a graph representing a plurality of features associated with the plurality of agents and the one or more lanes.
[0156] Clause 24: A method according to any one of clauses 16-23, wherein the first planning model determines a first trajectory of the vehicle based at least on the interaction between a plurality of intelligent agents present in a first scenario of the vehicle and the one or more lanes present in the first scenario of the vehicle when the plurality of intelligent agents are positioned relative to the one or more lanes present in the first scenario of the vehicle.
[0157] Clause 25: A method according to any one of clauses 16-24, wherein the second planning model determines a second trajectory of the vehicle based at least on interactions between a plurality of agents present in a first scenario of the vehicle when the plurality of agents are positioned relative to one or more lanes present in the first scenario of the vehicle.
[0158] Clause 26: The method of any one of clauses 16-25, wherein at least one of the plurality of planning models and the routing model is a graph neural network (GNN) or a transformer model.
[0159] Clause 27: The method of any of clauses 16-26, wherein the one or more criteria include an average displacement error (ADE) of the first candidate trajectory satisfying one or more thresholds.
[0160] In the previous description, aspects and embodiments of the present disclosure have been described with reference to many specific details, which may vary from implementation to implementation. Therefore, the description and drawings should be regarded as illustrative, not restrictive. The sole and exclusive indication of the scope of the invention, and what the applicants intend to be the scope of the invention, is the literal and equivalent scope of the claims from the present application in the specific form of the claims in the grant announcement, including any subsequent amendments. Any definitions of terms expressly set forth herein for inclusion in such claims should be based on the meaning of such terms as used in the claims. In addition, when the term "also includes" is used in the previous description or the appended claims, the phrase may be followed by additional steps or entities, or sub-steps / sub-entities of the previously described steps or entities.
Claims
1. A method comprising: generating, using at least one processor, a plurality of candidate trajectories for a vehicle in a first scenario, the plurality of candidate trajectories being generated by applying at least a first planning model to generate a first trajectory for the vehicle based at least on the first scenario for the vehicle and a second planning model to generate a second trajectory for the vehicle based at least on the first scenario for the vehicle; applying, using the at least one processor, a routing model to select a trajectory from the plurality of candidate trajectories based on at least a first context of the vehicle; as well as Using the at least one processor, movement of the vehicle is controlled based at least on the selected trajectory.
2. The method according to claim 1, wherein A first context for the vehicle includes one or more lanes and a plurality of agents positioned in the environment in which the vehicle is operating, the plurality of agents including the vehicle.
3. The method according to claim 2, wherein: The first scenario includes a graph representing a plurality of features associated with the plurality of agents and the one or more lanes.
4. The method according to claim 2, wherein: The first planning model determines a first trajectory for the vehicle based at least on interactions between the multiple agents as the multiple agents present in the first scenario are positioned relative to the one or more lanes present in the first scenario.
5. The method according to claim 2, wherein: The second planning model determines a second trajectory for the vehicle based at least on interactions between the multiple agents as the multiple agents present in the first scenario are positioned relative to the one or more lanes present in the first scenario.
6. The method according to any one of claims 1 to 5, wherein The first planning model is based on a first machine learning model, and wherein the second planning model is based on a machine learning model different from the first machine learning model.
7. The method according to any one of claims 1 to 6, wherein The first planning model is based on a machine learning model trained using a first training set, and wherein the second planning model is based on a machine learning model trained using a second training set different from the first training set.
8. The method according to any one of claims 1 to 7, wherein The first planning model is based on a machine learning model initialized using a first set of parameters, and wherein the second planning model is based on a machine learning model initialized using a second set of parameters different from the first set of parameters.
9. The method according to any one of claims 1 to 8, further comprising: applying the first planning model to generate a third trajectory for the vehicle in a second scenario; applying the second planning model to generate a fourth trajectory for the vehicle in the second scenario; identifying the third trajectory as a correct trajectory for navigating the second scenario; as well as A training set is generated for training the routing model, the training set being generated to include the second scenario and a ground truth output identifying the first planning model as the best performing planning model for the second scenario.
10. The method according to claim 9, further comprising: training the first planning model before applying the first planning model to generate the first trajectory and the third trajectory; as well as The second planning model is trained before applying the second planning model to generate the fourth trajectory.
11. The method according to claim 9, wherein The third trajectory is identified as a correct trajectory for navigating the second scenario based at least on the third trajectory having a lower average displacement error (ADE) relative to a ground truth trajectory for the second scenario as compared to the fourth trajectory.
12. The method according to any one of claims 1 to 11, wherein At least one of the first planning model, the second planning model and the route selection model is a graph neural network (GNN) or a transformer model.
13. The method according to any one of claims 1 to 12, wherein The route selection model selects a trajectory from the plurality of candidate trajectories by determining at least a performance indicator for each of the plurality of candidate trajectories and selecting a trajectory based at least on whether the performance indicator of the trajectory satisfies one or more thresholds.
14. The method according to claim 13, wherein The performance indicator is the average displacement error or ADE.
15. The method according to any one of claims 1 to 14, wherein The plurality of candidate trajectories are further generated by applying at least a third planning model to generate a third trajectory for the vehicle based on at least the first scenario of the vehicle.
16. A method comprising: applying, using at least one processor, a model ensemble to generate a trajectory for a vehicle, the model ensemble comprising a plurality of planning models and a routing model, wherein the plurality of planning models comprises a first planning model that generates a first candidate trajectory for the vehicle based on at least a first scenario for the vehicle, wherein the routing model selects the first candidate trajectory as the trajectory for the vehicle based on a determination that the first candidate trajectory output by the first planning model satisfies one or more criteria, and wherein the routing model applies a second planning model from the plurality of planning models to generate a second candidate trajectory for the vehicle based on the first scenario for the vehicle in response to a determination that the first candidate trajectory output by the first planning model fails to satisfy the one or more criteria; and Using the at least one processor, motion of the vehicle is controlled based at least on the trajectory generated by the model integration.
17. The method according to claim 16, wherein The first planning model is implemented using a first machine learning model, and wherein the second planning model is implemented using a machine learning model different from the first machine learning model.
18. The method according to claim 16 or 17, wherein The first planning model is implemented using a machine learning model trained based on a first training set, and the second planning model is implemented using a machine learning model trained based on a second training set different from the first training set.
19. The method according to any one of claims 16 to 18, wherein: The first planning model is implemented using a machine learning model initialized using a first parameter set, and wherein the second planning model is implemented using a machine learning model initialized using a second parameter set different from the first parameter set.
20. The method according to any one of claims 16 to 19, wherein: The route selection model further selects the second trajectory as the trajectory of the vehicle when it is determined that the second trajectory output by the second planning model meets the one or more criteria, and wherein, when the route selection model determines that the second trajectory output by the second planning model fails to meet the one or more criteria, the route selection model applies a third planning model from the multiple planning models to generate a third trajectory for the vehicle based at least on the first scenario of the vehicle.
21. The method according to any one of claims 16 to 20, further comprising: The model ensemble is trained using at least one data processor and based on at least a training set, the training set including a second scenario and a ground truth trajectory corresponding to a correct trajectory for navigating the second scenario, the training the model ensemble comprising training the plurality of planning models together with the routing model to minimize a difference between an output of the model ensemble and the ground truth trajectory associated with the second scenario.
22. The method according to any one of claims 16 to 21, wherein: The scenario of the vehicle includes a plurality of agents and one or more lanes, the plurality of agents including the vehicle.
23. The method according to claim 22, wherein The first context of the vehicle includes a graph representing a plurality of features associated with the plurality of agents and the one or more lanes.
24. The method according to any one of claims 16 to 23, wherein: The first planning model determines a first trajectory of the vehicle based at least on the interaction between a plurality of agents present in a first scenario of the vehicle and one or more lanes when the plurality of agents are positioned relative to one or more lanes present in the first scenario of the vehicle.
25. The method according to any one of claims 16 to 24, wherein: The second planning model determines a second trajectory of the vehicle based at least on interactions between multiple agents present in the first scenario of the vehicle as the multiple agents are positioned relative to one or more lanes present in the first scenario of the vehicle.
26. The method according to any one of claims 16 to 25, wherein: At least one of the multiple planning models and the route selection model is a graph neural network (GNN) or a transformer model.
27. The method according to any one of claims 16 to 26, wherein: The one or more criteria include an average displacement error (ADE) of the first candidate trajectory meeting one or more thresholds.
28. A system comprising: at least one data processor; as well as at least one memory storing instructions that, when executed by the at least one processor, cause operations comprising: generating a plurality of candidate trajectories for a vehicle in a first scenario, the plurality of candidate trajectories being generated by applying at least a first planning model to generate a first trajectory for the vehicle based at least on the first scenario for the vehicle and a second planning model to generate a second trajectory for the vehicle based at least on the first scenario for the vehicle; applying a routing model to select a trajectory from the plurality of candidate trajectories based at least on a first context of the vehicle; and Movement of the vehicle is controlled based at least on the selected trajectory.
29. A system comprising: at least one data processor; as well as at least one memory storing instructions that, when executed by the at least one processor, cause operations comprising: applying a model ensemble to generate a trajectory for a vehicle, the model ensemble comprising a plurality of planning models and a route selection model, wherein the plurality of planning models comprises a first planning model that generates a first candidate trajectory for the vehicle based on at least a first scenario for the vehicle, wherein the route selection model selects the first candidate trajectory as the trajectory for the vehicle based on a determination that the first candidate trajectory output by the first planning model satisfies one or more criteria, and wherein the route selection model applies a second planning model from the plurality of planning models to generate a second candidate trajectory for the vehicle based on the first scenario for the vehicle in response to a determination that the first candidate trajectory output by the first planning model fails to satisfy the one or more criteria; and The motion of the vehicle is controlled based at least on the trajectory generated by the model integration.