System and method for autonomous driving based on human driving data

By optimizing trajectory selection using human driving data and data-driven learning methods, autonomous driving systems can more accurately and quickly imitate the trajectory selection of human drivers, solving the problems of inaccurate and time-consuming trajectory selection in the prior art.

CN120344822APending Publication Date: 2025-07-18MOTIONAL AD LLC
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202380084752.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-12-30
Filing Date
2023-10-11
Publication Date
2025-07-18

AI Technical Summary

Technical Problem

Existing autonomous driving systems rely on heuristic methods in trajectory selection processing, resulting in inaccurate and time-consuming trajectory selection, making it difficult to imitate the optimal trajectory selection behavior of human drivers.

Method used

By utilizing human driving data, combining data-driven learning methods to generate trajectory scores, reduce dependence on heuristic input, optimize trajectory selection processing, reduce manual adjustment time, and learn more trajectory data from other human drivers' data.

Benefits of technology

It improves the accuracy and efficiency of autonomous driving systems in trajectory selection, is closer to the best decisions of human drivers, and reduces processing time and manual intervention.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120344822A_ABST
    Figure CN120344822A_ABST
Patent Text Reader

Abstract

A method for a system and method for autonomous driving based on human driving data may include obtaining sensor data associated with an environment in which a vehicle operates, determining a set of candidate trajectories, determining a human driving trajectory, generating a trajectory score for one or more candidate trajectories in the set of candidate trajectories, and generating a trajectory score for one or more candidate trajectories in the set of candidate trajectories. And causing an output to be provided to the device based on the trajectory score associated with the one or more candidate trajectories, wherein the output includes one or more of: the human driving trajectory, the one or more candidate trajectories, and the one or more trajectory scores. A system and a computer program product are also provided.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Incorporation by reference of any priority applications

[0002] This application claims the benefit of priority of U.S. Provisional Patent Application 63 / 416,371, filed Oct. 14, 2022, titled “SYSTEMS AND METHODS FOR AUTONOMOUS DRIVING BASED ON HUMAN-DRIVEN DATA” and U.S. Provisional Patent Application 63 / 477,863, filed Dec. 30, 2022, titled “SYSTEMS AND METHODS FOR AUTONOMOUS DRIVING BASED ON HUMAN-DRIVEN DATA”. Each of the above applications is hereby incorporated by reference in its entirety. BRIEF DESCRIPTION OF THE DRAWINGS

[0003] Figure 1 is an example environment in which a vehicle that can implement one or more components of an autonomous system can be present.

[0004] Figure 2 is a diagram of one or more example systems of a vehicle that includes an autonomous system.

[0005] Figure 3 is Figure 1 and Figure 2 is a diagram of one or more example devices and / or components of one or more example systems of

[0006] Figure 4 is a diagram of certain components of an example autonomous system.

[0007] Figures 5A to 5B is a diagram of an example implementation of processing used in systems and methods for autonomous driving based on human-driven data.

[0008] Figures 6A to 6B is a diagram of an example vehicle that includes a planning system and a control system for determining actions.

[0009] Figures 7A to 7B is a diagram depicting an example determination of actions of an example vehicle.

[0010] Figure 8 is a diagram depicting an example determination of homotopy.

[0011] Figure 9 is a flowchart of an example process used in systems and methods for autonomous driving based on human-driven data.

[0012] Figure 10It is a block diagram of an example planning system for an autonomous vehicle (AV) that can be updated or trained using human driving data.

[0013] Figure 11 It can be Figure 10 It is a flowchart of an example process for using human driving data to update or train one or more models that can be implemented by the planning system shown in Detailed Description

[0014] 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 in the present disclosure may be practiced without these specific details. In some instances, well-known structures and devices are illustrated in block diagram form to avoid unnecessarily obscuring aspects of the present disclosure.

[0015] In the drawings, for ease of description, a specific arrangement or order of illustrative 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 explicitly described, the specific order or arrangement of the illustrative elements in the drawings is not intended to imply a required order or sequence of processing, or a separation of processing. Additionally, unless explicitly described, the inclusion of illustrative elements in the drawings is not intended to imply that such elements are required in all embodiments, nor that the features represented by such elements cannot be included in some embodiments or combined with other elements in some embodiments.

[0016] Furthermore, in the drawings, connecting elements (such as solid lines, dashed lines, or arrows, etc.) are used to illustrate connections, relationships, or associations between two or more other illustrative elements or within them. The absence of any such connecting element is not intended to mean that no connection, relationship, or association can exist. In other words, some connections, relationships, or associations between elements are not illustrated in the drawings so as not to obscure the present disclosure. Additionally, for ease of illustration, a single connecting element may 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 (such as a "software instruction"), those skilled in the art should understand that such an element may represent one or more signal paths (such as a bus) that may be required to affect the communication.

[0017] Although terms such as "first", "second", and / or "third" etc. 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, without departing from the scope of the described embodiments, a first contact may be referred to as a second contact, and similarly, a second contact may be referred to as a first contact. Both the first contact and the second contact are contacts, but they are not the same contact.

[0018] The terms used in the description of the various embodiments 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 and the appended claims, the singular forms "a", "an", and "the" are also intended to include the plural forms and may 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 of the associated listed items. It will also be understood that when the terms "comprises", "comprising", "includes", and / or "having" are used in this specification, it specifies the presence of the stated features, integers, steps, operations, elements, and / or components, but does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0019] As used herein, the terms "communicate" and "communicating" refer to at least one of receiving, receiving, transmitting, conveying, and / or providing information (or information represented by, for example, data, signals, messages, instructions, and / or commands, etc.). For a unit (e.g., a device, a system, a component of a device or system, and / or a combination thereof, etc.) that is to communicate with another unit, this means that the unit can directly or indirectly receive information from the other unit and / or send (e.g., transmit) information to the other unit. This may refer to a direct or indirect connection that is essentially wired and / or wireless. Additionally, even if the information transmitted can be modified, processed, relayed, and / or routed between a first unit and a second unit, the two units can still communicate with each other. For example, even if a first unit receives information passively and does not actively transmit information to a second unit, the first unit can still communicate with the second unit. As another example, if at least one intermediate unit (e.g., a third unit located between the first unit and the second unit) processes the information received from the first unit and transmits the processed information to the second unit, the first unit can communicate with the second unit. In some embodiments, a message may refer to a network packet (e.g., a data packet, etc.) that includes data.

[0020] As used herein, depending on the context, the term "if" may optionally be interpreted to mean "when", "while", "in response to determining that", and / or "in response to detecting", etc. Similarly, depending on the context, the phrase "if it has been determined" or "if [stated condition or event] is detected" may optionally be interpreted to mean "when determining...", "in response to determining that", or "when [stated condition or event] is detected" and / or "in response to detecting [stated condition or event]", etc. Further, as used herein, the terms "has", "have", or "having", etc. are intended to be open-ended terms. Additionally, unless otherwise expressly stated, the phrase "based on" is intended to mean "at least partially based on".

[0021] "At least one" and "one or more than one" include functioning by one element, functioning by more than one element such as in a distributed manner, functioning by one element for several functions, functioning by several elements for several functions, or any combination of the above.

[0022] Some embodiments of the present disclosure are described herein in connection with thresholds. As described herein, meeting (such as conforming to, etc.) a threshold may refer to a value being greater than the threshold, more than the threshold, higher than the threshold, greater than or equal to the threshold, less than the threshold, fewer than the threshold, lower than the threshold, less than or equal to the threshold, and / or equal to the threshold, etc.

[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 described embodiments. However, it will be apparent to those of ordinary skill in the art that the various described embodiments may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.

[0024] General Overview

[0025] An autonomous driving system may generate multiple proposed trajectories while driving on a road at any given time. The autonomous driving system may need to select, for example, one trajectory to execute from these proposed trajectories according to model-based techniques. These techniques typically select a trajectory that is considered to be "better". This trajectory selection process is, for example, ambiguous due to its complexity and still falls short of providing an autonomous driving system that exhibits behavior approximating human driving.

[0026] In some aspects and / or embodiments, the systems, methods, and computer program products described herein include and / or implement obtaining, by at least one processor, sensor data associated with an environment in which a vehicle operates. The method includes determining, by at least one processor, a set of candidate trajectories based on the sensor data. The method includes determining, by at least one processor, a human driving trajectory based on the sensor data. The method includes generating, by at least one processor, a trajectory score for one or more than one candidate trajectory in the set of candidate trajectories based on the human driving trajectory. The method includes causing, by at least one processor, an output to be provided to a device based on the trajectory scores associated with one or more than one candidate trajectory. The output includes one or more than one of the following: the human driving trajectory, one or more than one candidate trajectory, and the trajectory scores.

[0027] By virtue of the implementation of the systems, methods, and computer program products described herein, the techniques used in systems and methods for autonomous driving based on human driving data enable the combination of human driving trajectories with trajectories generated by motion planning algorithms and / or sampling methods to mimic the trajectory selection process of a human driver. The system is configured to produce a data set indicative of the trajectory selection process (e.g., mimicking the process performed by a human), which can then be used to generate a mathematical model for trajectory selection. The model can then be adapted in an autonomous driving system to allow the autonomous driving system to select the best trajectory as close as possible to a human driver.

[0028] Methods for generating and selecting trajectories for AV execution include (e.g., when designing cost and / or reward functions for trajectory and / or homotopy selection processes) applying relatively inaccurate naive heuristics to the selection process. This means that: sometimes, good homotopies are rejected in favor of inferior homotopies, and subsequently inferior trajectories are selected. Advantageously, the present disclosure aims to reduce the probability of this scenario occurring by applying data-driven learning methods to the trajectory selection process. The data-driven learning methods of the present disclosure advantageously allow the disclosed techniques to be independent of any heuristic inputs in the trajectory selection process. Manually designing or generating cost functions and / or reward functions using heuristics for the trajectory selection process not only may result in relatively inaccurate outputs, but is also an extremely time-consuming process. Advantageously, the data-driven methods disclosed herein can be executed by a processor, thus greatly reducing the time otherwise required for manually tuning or performing the trajectory selection process. In other words, the present disclosure advantageously provides methods for selecting trajectories and / or homotopies used by a vehicle based on learned cost functions and / or cost function parameters, which approximate the decision-making process of a human driver.

[0029] Advantageously, the disclosed method can be applied by an autonomous system to other vehicles within the "sensor range" of a vehicle. Thereby, in some examples, the autonomous system can obtain data from other human drivers, providing more data for AV calculations to learn from. Thus, a larger amount of human driving trajectory data can be obtained, enabling better and faster optimization of the trajectory scoring cost function.

[0030] Now refer to Figure 1 , to illustrate example environment 100, in which vehicles including an autonomous system and vehicles not including an autonomous system 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) system 114, queue management system 116, and V2I system 118. Vehicles 102a - 102n, vehicle - to - infrastructure (V2I) devices 110, network 112, autonomous vehicle (AV) system 114, queue management system 116, and V2I system 118 are interconnected via a wired connection, a wireless connection, or a combination of wired and wireless connections (e.g., establishing a connection for communication, etc.). 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, queue management system 116, and V2I system 118 via a wired connection, a wireless connection, or a combination of wired and wireless connections.

[0031] Vehicles 102a - 102n (individually referred to as vehicle 102 and collectively as vehicles 102) include at least one device configured to transport goods and / or people. In some embodiments, vehicle 102 is configured to communicate with V2I device 110, remote AV system 114, queue management system 116, and / or V2I system 118 via network 112. In some embodiments, vehicle 102 includes cars, buses, trucks, and / or trains, etc. In some embodiments, vehicle 102 is the same as or similar to vehicle 200 described herein (see Figure 2 ). In some embodiments, vehicles 200 in the set of vehicles 200 are associated with an autonomous queue manager. In some embodiments, as described herein, vehicle 102 travels along corresponding routes 106a - 106n (individually referred to as route 106 and collectively as routes 106). In some embodiments, one or more than one vehicle 102 includes an autonomous system (e.g., an autonomous system that is the same as or similar to autonomous system 202).

[0032] Objects 104a - 104n (individually referred to as object 104 and collectively 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., building, sign, fire hydrant, etc.). Each object 104 (e.g., located at a fixed location and over a period of time) is stationary or (e.g., having a speed and associated with at least one trajectory) moving. In some embodiments, object 104 is associated with a corresponding location in region 108.

[0033] Routes 106a - 106n (individually referred to as route 106 and collectively as routes 106) are each associated with (e.g., define) a series of actions (also referred to as a trajectory) that a connected AV can navigate along. Each route 106 begins at an initial state (e.g., a state corresponding to a first spatio - temporal location and / or speed, etc.) and ends at a final goal state (e.g., a state corresponding to a second spatio - temporal location different from the first spatio - temporal location) or a target zone (e.g., a subspace of acceptable states (e.g., termination 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 one or more individuals boarding the AV will disembark. In some embodiments, route 106 includes multiple acceptable sequences of states (e.g., multiple sequences of spatio - temporal locations), which are associated with (e.g., define) multiple trajectories. In an example, route 106 includes only high - level actions or imprecise state locations, such as a series of connected roads indicating a direction change at a roadway intersection. Additionally or alternatively, route 106 can include more precise actions or states, such as, for example, a specific target lane or precise location within a lane area and a target speed at those locations. In an example, route 106 includes multiple precise state sequences along at least one high - level action with a finite look - ahead horizon to reach an intermediate goal, where the combination of successive iterations of the finite - horizon state sequences cumulatively corresponds to multiple trajectories that together form a high - level route terminating at the final goal state or zone.

[0034] Region 108 includes a physical region (e.g., a geographical region) in which vehicle 102 can navigate. In an example, region 108 includes at least one state (e.g., a country, a province, an individual state among multiple 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, region 108 includes at least one named arterial road (referred to herein as a "road"), such as a highway, an interstate highway, a parkway, an urban street, etc. Additionally or alternatively, in some examples, region 108 includes at least one unnamed road, such as a lane, a section of a parking lot, a section of a vacant and / or undeveloped area, a dirt road, etc. In some embodiments, a road includes at least one lane (e.g., a portion of the road through which vehicle 102 can pass). In an example, a road includes at least one lane associated with (e.g., identified based on) at least one lane marking line.

[0035] A vehicle-to-infrastructure (V2I) device 110 (sometimes referred to as a vehicle-to-infrastructure or vehicle-to-everything (V2X) device) includes at least one device configured to communicate with vehicle 102 and / or V2I system 118. In some embodiments, V2I device 110 is configured to communicate with vehicle 102, remote AV system 114, queue management system 116, and / or V2I system 118 via network 112. In some embodiments, V2I device 110 includes a radio frequency identification (RFID) device, a sign, a camera (e.g., a two-dimensional (2D) and / or three-dimensional (3D) camera), a lane marking, a streetlight, a parking meter, etc. In some embodiments, V2I device 110 is configured to communicate directly with vehicle 102. Additionally or alternatively, in some embodiments, V2I device 110 is configured to communicate with vehicle 102, remote AV system 114, and / or queue management system 116 via V2I system 118. In some embodiments, V2I device 110 is configured to communicate with V2I system 118 via network 112.

[0036] Network 112 includes one or more wired and / or wireless networks. In an example, 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-based network, a cloud computing network, etc., and / or a combination of some or all of these networks.

[0037] The remote AV system 114 includes at least one device configured to communicate with the vehicle 102, the V2I device 110, the network 112, the queue management system 116, and / or the V2I system 118 via the network 112. In an example, the remote AV system 114 includes a server, a server group, and / or other similar devices. In some embodiments, the remote AV system 114 is co-located with the queue management system 116. In some embodiments, the remote AV system 114 participates in the installation of some or all of the components of the vehicle (including autonomous systems, autonomous vehicle computing, and / or software implemented by autonomous vehicle computing, etc.). In some embodiments, the remote AV system 114 maintains (e.g., updates and / or replaces) these components and / or software during the life of the vehicle.

[0038] The queue management system 116 includes at least one device configured to communicate with the vehicle 102, the V2I device 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 ridesharing company (e.g., an organization for controlling the operation of multiple vehicles (e.g., vehicles including autonomous systems and / or vehicles not including autonomous systems), etc.).

[0039] 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 queue 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 different from 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 municipal authority or a private institution (e.g., a private institution for maintaining the V2I device 110, etc.).

[0040] In some embodiments, as Figure 9 illustrated, the device 300 is configured to execute software instructions for one or more steps of the disclosed method.

[0041] Provide Figure 1 The number and arrangement of the illustrated elements are provided as an example. Compared with the Figure 1 illustrated elements, there may be additional elements, fewer elements, different elements, and / or elements with a different arrangement. Additionally or alternatively, at least one element of the environment 100 may be described as being performed by Figure 1one or more functions performed by at least one different element. Additionally or alternatively, at least one set of elements of environment 100 can perform one or more functions described as being performed by at least one different set of elements of environment 100.

[0042] Now refer to Figure 2 , vehicle 200 (which can be the same as or similar to Figure 1 vehicle 102) includes autonomous system 202, powertrain control system 204, steering control system 206, and braking system 208, 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 the same as or similar to vehicle 102 (see Figure 1 ). In some embodiments, autonomous system 202 is configured to endow vehicle 200 with autonomous driving capabilities (e.g., implement at least one of the following driving functions, features, and / or devices that are automatic or based on maneuvers, where the at least one driving function, feature, and / or device that is automatic or based on maneuvers enables vehicle 200 to operate partially or completely without human intervention, including but not limited to fully autonomous vehicles (e.g., vehicles that dispense with reliance on human intervention, such as level 5 ADS-operated vehicles), highly autonomous vehicles (e.g., vehicles that dispense with reliance on human intervention in certain situations, such as level 4 ADS-operated vehicles), and / or conditionally autonomous vehicles (e.g., vehicles that dispense with reliance on human intervention in limited situations, such as level 3 ADS-operated vehicles), etc.). In one embodiment, autonomous system 202 includes the operational or tactical functionality required to operate vehicle 200 in on-road traffic and continuously perform part or all of the dynamic driving task (DDT). In another embodiment, autonomous system 202 includes an advanced driver assistance system (ADAS) that includes driver support features. 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 standard J3016: Taxonomy and Definitions for Terms Related to On-Road Motor Vehicle Automated Driving Systems, the entire content of which is incorporated by reference. In some embodiments, vehicle 200 is associated with an autonomous queue manager and / or a ridesharing company.

[0043] The autonomous system 202 includes a sensor suite that includes one or more devices such as a camera 202a, a LiDAR sensor 202b, a Radar sensor 202c, and a microphone 202d. In some embodiments, the autonomous system 202 may include more or fewer devices and / or different devices (e.g., ultrasonic sensors, inertial sensors, GPS receivers (discussed below), and / or odometer sensors for generating data associated with an indication of the distance traveled by the vehicle 200, etc.). In some embodiments, the autonomous system 202 uses one or more devices included in the autonomous system 202 to generate data associated with the environment 100 described herein. The data generated by one or more devices of the autonomous system 202 may be used by one or more systems described herein to observe the environment (e.g., environment 100) in which the vehicle 200 is located. In some embodiments, the autonomous system 202 includes a communication device 202e, an autonomous vehicle computing 202f, a drive-by-wire (DBW) system 202h, and a safety controller 202g.

[0044] The camera 202a includes at least one device configured to communicate with the communication device 202e, the autonomous vehicle computing 202f, and / or the safety controller 202g via a bus (e.g., a bus 302 that is the same as or similar to Figure 3 the bus). The camera 202a includes at least one camera (e.g., a digital camera using an optical sensor such as a charge-coupled device (CCD), a thermal camera, an infrared (IR) camera, and / or an event camera, etc.) for capturing images including physical objects (e.g., cars, buses, curbs, and / or people, etc.). In some embodiments, the camera 202a generates camera data as an output. In some examples, the camera 202a generates camera data including image data associated with the image. In such an example, the image data may specify at least one parameter corresponding to the image (e.g., image characteristics such as exposure, brightness, etc., and / or an 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 on (e.g., positioned on) the vehicle for capturing images for the purpose of stereovision (stereo vision). In some examples, the camera 202a includes generating image data and transmitting the image data to the autonomous vehicle computing 202f and / or a queue management system (e.g., the same as Figure 1Multiple cameras of the same or similar queue management system as queue management system 116. In such an example, the autonomous vehicle computing 202f determines the depth to one or more objects in the fields of view of at least two of the multiple cameras based on image data from at least two cameras. In some embodiments, camera 202a is configured to capture images of objects within a distance relative to camera 202a (e.g., up to 100 meters and / or up to 1 kilometer, etc.). Thus, camera 202a includes features such as sensors and lenses optimized for sensing objects at one or more distances relative to camera 202a.

[0045] In an embodiment, 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 providing visual navigation information. In some embodiments, camera 202a generates traffic light data associated with one or more images. In some examples, camera 202a generates TLD (Traffic Light Detection) data associated with one or more images including a format (e.g., RAW, JPEG, and / or PNG, etc.). 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 having a wide field of view (e.g., a wide-angle lens, a fish-eye lens, and / or a lens having a viewing angle of about 120 degrees or greater, etc.) to generate images related to as many physical objects as possible.

[0046] The Light Detection and Ranging (LiDAR) sensor 202b includes being configured to communicate with the communication device 202e, the autonomous vehicle computing 202f, and / or the safety controller 202g via a bus (e.g., with Figure 3at least one device that communicates via a bus (e.g., a bus identical or similar to bus 302). 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 it encounters. The LiDAR sensor 202b also includes at least one light detector that detects the light after the light emitted from the light emitter encounters a 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 the objects included in the field of view of the LiDAR sensor 202b. In some examples, at least one data processing system associated with the LiDAR sensor 202b generates an image representing the boundary of a physical object and / or the surface of a physical object (e.g., the topology of the surface), etc. In such examples, the image is used to determine the boundary of the physical object in the field of view of the LiDAR sensor 202b.

[0047] A radio detection and ranging (Radar) sensor 202c includes at least one device configured to communicate with a communication device 202e, an autonomous vehicle computer 202f, and / or a safety controller 202g via a bus (e.g., a bus identical or similar to Figure 3 bus 302). The Radar sensor 202c includes a system configured to emit (pulsed or continuous) radio waves. The radio waves emitted by the Radar sensor 202c include radio waves within a predetermined spectrum. In some embodiments, during operation, the radio waves emitted by the Radar sensor 202c encounter a physical object and are reflected back to the Radar sensor 202c. In some embodiments, the radio waves emitted 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 the objects included in the field of view of the Radar sensor 202c. For example, at least one data processing system associated with the Radar sensor 202c generates an image representing the boundary of a physical object and / or the surface of a physical object (e.g., the topology of the surface), etc. In some examples, the image is used to determine the boundary of the physical object in the field of view of the Radar sensor 202c.

[0048] The microphone 202d includes at least one device configured to communicate with the communication device 202e, the autonomous vehicle computing 202f, and / or the safety controller 202g via a bus (e.g., a bus the same or similar to the Figure 3 bus 302). The microphone 202d includes one or more microphones (e.g., an array microphone and / or an external microphone, etc.) that capture an audio signal and generate data associated with (e.g., representing) the audio signal. In some examples, the microphone 202d includes a transducer device and / or a similar device. In some embodiments, one or more of the systems described herein can receive data generated by the microphone 202d and determine the position (e.g., distance, etc.) of an object relative to the vehicle 200 based on the audio signal associated with the data.

[0049] 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 can include a device the same or similar to the Figure 3 communication interface 314. In some embodiments, the communication device 202e includes a vehicle-to-vehicle (V2V) communication device (e.g., a device for enabling wireless communication of data between vehicles).

[0050] The autonomous vehicle computing 202f includes at least one device configured to communicate with the camera 202a, the LiDAR sensor 202b, the Radar sensor 202c, the microphone 202d, the communication device 202e, the safety controller 202g, and / or the DBW system 202h. In some examples, the autonomous vehicle computing 202f includes devices such as a client device, a mobile device (e.g., a cellular phone and / or a tablet, etc.), and / or a server (e.g., a computing device including one or more central processing units and / or graphics processing units, etc.). In some embodiments, the autonomous vehicle computing 202f is the same or similar to the autonomous vehicle computing 400 described herein. Additionally or alternatively, in some embodiments, the autonomous vehicle computing 202f is configured to communicate with an autonomous vehicle system (e.g., an autonomous vehicle system the same or similar to the Figure 1 remote AV system 114), a queue management system (e.g., a queue management system the same or similar to the Figure 1 queue management system 116), a V2I device (e.g., a V2I device the same or similar to the Figure 1 V2I device 110), and / or a V2I system (e.g., a V2I system the same or similar to the Figure 1communicate with a V2I system 118 that is the same as or similar to the V2I system)

[0051] The safety controller 202g includes at least one device configured to communicate with the camera 202a, the LiDAR sensor 202b, the Radar sensor 202c, the microphone 202d, the communication device 202e, the autonomous vehicle computing 202f, and / or the DBW system 202h. In some examples, the safety controller 202g includes one or more controllers (such as an electrical controller and / or an electromechanical controller, etc.) configured to generate and / or transmit control signals to operate one or more devices of the vehicle 200 (such as the powertrain control system 204, the steering control system 206, and / or the braking system 208, etc.). In some embodiments, the safety controller 202g is configured to generate control signals that are prior to (e.g., override) the control signals generated and / or transmitted by the autonomous vehicle computing 202f.

[0052] The DBW system 202h includes at least one device configured to communicate with the communication device 202e and / or the autonomous vehicle computing 202f. In some examples, the DBW system 202h includes one or more controllers (such as an electrical controller and / or an electromechanical controller, etc.) configured to generate and / or transmit control signals to operate one or more devices of the vehicle 200 (such as the powertrain control system 204, the steering control system 206, and / or the braking system 208, etc.). Additionally or alternatively, 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 (such as turn signals, headlights, door locks, and / or windshield wipers, etc.).

[0053] 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, etc. In some embodiments, the powertrain control system 204 receives control signals from the DBW system 202h, and the powertrain control system 204 causes the vehicle 200 to perform longitudinal vehicle movements (such as starting to move forward, stopping moving forward, starting to move backward, stopping moving backward, accelerating in a certain direction, decelerating in a certain direction, etc.), or perform lateral vehicle movements (such as making a left turn and / or making a right turn, etc.). In an example, the powertrain control system 204 increases, maintains the same, or decreases the energy (such as fuel and / or electricity, etc.) provided to the motor of the vehicle, thereby causing at least one wheel of the vehicle 200 to rotate or not rotate. In other words, the steering control system 206 causes the activities required to regulate the y-axis component of the vehicle movement.

[0054] The steering control system 206 includes at least one device configured to rotate one or more wheels of the vehicle 200. In some examples, the steering control system 206 includes at least one controller and / or actuator, etc. In some embodiments, the steering control system 206 rotates two front wheels and / or two rear wheels of the vehicle 200 left or right to turn the vehicle 200 left or right.

[0055] The braking system 208 includes at least one device configured to actuate one or more brakes to decelerate the vehicle 200 and / or keep it stationary. In some examples, the braking system 208 includes at least one controller and / or actuator configured to close one or more calipers associated with one or more wheels of the vehicle 200 onto corresponding rotors of the vehicle 200. Additionally or alternatively, in some examples, the braking system 208 includes an automatic emergency braking (AEB) system and / or a regenerative braking system, etc.

[0056] In some embodiments, the vehicle 200 includes at least one platform sensor (not explicitly illustrated) for measuring or inferring the nature of the state or condition of the vehicle 200. In some examples, the vehicle 200 includes platform sensors such as a global positioning system (GPS) receiver, an inertial measurement unit (IMU), a wheel speed sensor, a wheel brake pressure sensor, a wheel torque sensor, an engine torque sensor, and / or a steering angle sensor. Although the braking system 208 is illustrated as being located Figure 2 proximal to the vehicle 200 in, the braking system 208 can be located anywhere in the vehicle 200.

[0057] Now refer to Figure 3, a schematic diagram of an exemplary 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); at least one device of a remote AV system 114, a queue management system 116, a V2I system 118; 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 (such as at least one device of a remote AV system 114, a queue management system 116, and a V2I system 118, etc.)) 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 3 shown, device 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.

[0058] Bus 302 includes components that permit communication between the 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 that stores data and / or instructions for use by processor 304 (e.g., flash memory, magnetic memory, and / or optical memory, etc.).

[0059] Storage component 308 stores data and / or software related to the operation and use of device 300. In some examples, 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 disc (CD), a digital versatile disc (DVD), a floppy disk, a cassette tape, 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.

[0060] The input interface 310 includes components of the enabling device 300 that receive information via a user input (e.g., a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, a microphone, and / or a camera, etc.). Additionally or alternatively, in some embodiments, the input interface 310 includes sensors 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.).

[0061] In some embodiments, the communication interface 314 includes transceiver-like components (e.g., a transceiver and / or separate receivers and transmitters, etc.) that enable 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 enables 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, a Wi-Fi interface, and / or a cellular network interface, etc.

[0062] In some embodiments, the device 300 performs one or more of the processes described herein. The device 300 performs these processes based on software instructions stored by a computer-readable medium such as the memory 306 and / or the storage component 308, etc., and executed by the processor 304. 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.

[0063] In some embodiments, software instructions are read into the memory 306 and / or the storage component 308 from another computer-readable medium or from another device via the communication interface 314. When executed, the software instructions stored in the memory 306 and / or the storage component 308 cause the processor 304 to perform one or more of the processes described herein. Additionally or alternatively, hardwired circuitry is used instead of or in combination with software instructions to perform one or more of the processes described herein. Thus, unless otherwise explicitly stated, the embodiments described herein are not limited to any particular combination of hardware circuitry and software.

[0064] The memory 306 and / or the storage component 308 includes a data storage or at least one data structure (e.g., a database, etc.). The apparatus 300 is capable of receiving information from the data storage or at least one data structure in the memory 306 or the storage component 308, storing the information in the data storage or at least one data structure, communicating the information to the data storage or at least one data structure, or searching for the information stored in the data storage or at least one data structure. In some examples, the information includes network data, input data, output data, or any combination thereof.

[0065] In some embodiments, the apparatus 300 is configured to execute software instructions stored in the memory 306 and / or the memory of another apparatus (e.g., another apparatus that is the same as or similar to the apparatus 300). As used herein, the term "module" refers to at least one instruction stored in the memory 306 and / or the memory of another apparatus, which, when executed by the processor 304 and / or the processor of another apparatus (e.g., another apparatus that is the same as or similar to the apparatus 300), causes the apparatus 300 (e.g., at least one component of the apparatus 300) to perform one or more processes described herein. In some embodiments, the module is implemented in software, firmware, and / or hardware, etc.

[0066] Provide Figure 3 The number and arrangement of the illustrated components are provided as examples. In some embodiments, compared to Figure 3 the illustrated components, the apparatus 300 may include additional components, fewer components, different components, or components in a different arrangement. Additionally or alternatively, a set of components of the apparatus 300 (e.g., one or more components) may perform one or more functions described as being performed by another component or another set of components of the apparatus 300.

[0067] Now refer to Figure 4, an example block diagram of an autonomous vehicle computing 400 (sometimes referred to as an "AV stack") is illustrated. As illustrated, the autonomous vehicle computing 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, the perception system 402, the planning system 404, the positioning system 406, the control system 408, and the database 410 are included in and / or implemented in an automatic navigation system of the vehicle (e.g., the autonomous vehicle computing 202f of the vehicle 200). Additionally or alternatively, in some embodiments, the perception system 402, the planning system 404, the positioning system 406, the control system 408, and the database 410 are included in one or more independent systems (e.g., one or more systems the same as or similar to the autonomous vehicle computing 400, etc.). In some examples, the perception system 402, the planning system 404, the positioning system 406, the control system 408, and the 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 the autonomous vehicle computing 400 are implemented in software (e.g., software instructions stored in a memory), computer hardware (e.g., via a microprocessor, a microcontroller, an application specific integrated circuit (ASIC), and / or a field programmable gate array (FPGA), etc.), or a combination of computer software and computer hardware. It will also be understood that, in some embodiments, the autonomous vehicle computing 400 is configured to communicate with remote systems (e.g., an autonomous vehicle system the same as or similar to the remote AV system 114, a queue management system the same as or similar to the queue management system 116, and / or a V2I system the same as or similar to the V2I system 118, etc.).

[0068] In some embodiments, the perception system 402 receives data associated with at least one physical object in the environment (e.g., data used by the perception system 402 to detect at least one physical object), and classifies the at least one physical object. In some examples, the perception system 402 receives image data captured by at least one camera (e.g., camera 202a), the image being associated with one or more physical objects within the field of view of the at least one camera (e.g., representing the one or more physical objects). In such examples, the perception system 402 classifies the at least one physical object based on one or more groupings of physical objects (e.g., bicycles, vehicles, traffic signs, and / or pedestrians, etc.). In some embodiments, based on the classification of the physical objects by the perception system 402, the perception system 402 transmits data associated with the classification of the physical objects to the planning system 404.

[0069] In some embodiments, the 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, the planning system 404 periodically or continuously receives data from the perception system 402 (e.g., the data associated with the classification of the physical objects described above), and the planning system 404 updates at least one trajectory or generates at least one different trajectory based on the data generated by the perception system 402. In other words, the planning system 404 can perform tasks related to the tactical functions required to operate the vehicle 102 in road traffic. Tactical efforts involve maneuvering the vehicle in traffic during the journey, which includes but is not limited to deciding whether and when to overtake another vehicle, change lanes, or select an appropriate speed, acceleration, deceleration, etc. In some embodiments, the planning system 404 receives data associated with the updated position of the vehicle (e.g., vehicle 102) from the positioning system 406, and the planning system 404 updates at least one trajectory or generates at least one different trajectory based on the data generated by the positioning system 406.

[0070] In some embodiments, the positioning system 406 receives data associated with (e.g., representing) the location of a vehicle (e.g., vehicle 102) in an area. In some examples, the 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 certain examples, the positioning system 406 receives data associated with at least one point cloud from multiple LiDAR sensors, and the positioning system 406 generates a combined point cloud based on the respective point clouds. In these examples, the positioning system 406 compares the at least one point cloud or combined point cloud with a two-dimensional (2D) and / or three-dimensional (3D) map of the area stored in the database 410. Then, based on the positioning system 406 comparing the at least one point cloud or combined point cloud with the map, the 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 the 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 the connectivity of the road network, a map describing the physical properties of roadways (such as traffic speed, traffic flow, the number of vehicle and bicycle traffic lanes, lane width, lane traffic direction or the type and location of lane markings, or a combination thereof, etc.), and a map describing the spatial location of road features (such as crosswalks, traffic signs or various other driving signals, etc.). In some embodiments, the map is generated in real time based on the data received by the perception system.

[0071] In another example, the positioning system 406 receives Global Navigation Satellite System (GNSS) data generated by a Global Positioning System (GPS) receiver. In some examples, the positioning system 406 receives GNSS data associated with the location of a vehicle in an area, and the positioning system 406 determines the latitude and longitude of the vehicle in the area. In such examples, the positioning system 406 determines the position of the vehicle in the area based on the latitude and longitude of the vehicle. In some embodiments, the positioning system 406 generates data associated with the position of the vehicle. In some examples, based on the positioning system 406 determining the position of the vehicle, the positioning system 406 generates data associated with the position of the vehicle. In such examples, the data associated with the position of the vehicle includes data associated with one or more semantic properties corresponding to the position of the vehicle.

[0072] 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 cause the powertrain control system (e.g., the DBW system 202h and / or the powertrain control system 204, etc.), the steering control system (e.g., the steering control system 206), and / or the braking system (e.g., the braking system 208) to operate. 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 activities required to regulate the y-axis component of the vehicle motion. Longitudinal vehicle motion control causes activities required to regulate the x-axis component of the vehicle motion. In an example, in the case where 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 (e.g., headlights, turn signals, door locks, and / or windshield wipers, etc.) to change states.

[0073] In some embodiments, the perception system 402, the planning system 404, the positioning system 406, and / or the control system 408 implement at least one machine learning model (e.g., at least one multi-layer 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, the planning system 404, the positioning system 406, and / or the control system 408 implement at least one machine learning model individually or in combination with one or more of the above systems. In some examples, the perception system 402, the planning system 404, the positioning system 406, and / or the 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 the environment, etc.).

[0074] The database 410 stores data provided to, transmitted to, received from, and / or updated by the perception system 402, the planning system 404, the positioning system 406, and / or the control system 408. In some examples, the database 410 includes storage components (e.g., associated with Figure 3the same or similar storage components as the storage component 308). In some embodiments, the database 410 stores data associated with 2D and / or 3D maps of at least one area. In some examples, the database 410 stores data associated with 2D and / or 3D maps of a part of a city, multiple parts of multiple cities, multiple cities, counties, states, and / or countries (e.g., nations), etc. In such examples, a vehicle (e.g., a vehicle the same or similar to the vehicle 102 and / or the vehicle 200) can drive along one or more drivable areas (e.g., single-lane roads, multi-lane roads, highways, unpaved roads, and / or off-road roads, etc.), and cause at least one LiDAR sensor (e.g., a LiDAR sensor the same or similar to the LiDAR sensor 202b) to generate data associated with an image representing the objects included in the field of view of the at least one LiDAR sensor.

[0075] In some embodiments, the database 410 can be implemented across multiple devices. In some examples, the database 410 is included in a vehicle (e.g., a vehicle the same or similar to the vehicle 102 and / or the vehicle 200), an autonomous vehicle system (e.g., an autonomous vehicle system the same or similar to the remote AV system 114), a queue management system (e.g., a queue management system the same or similar to Figure 1 the queue management system 116) and / or a V2I system (e.g., a V2I system the same or similar to Figure 1 the V2I system 118), etc.

[0076] The present disclosure relates to systems, methods, and computer program products for combining human driving decisions with existing planning algorithms to generate a driving dataset to replicate human driving decision processing. The system replicates trajectory scoring and selection processing, for example, by utilizing human driving data and / or existing planning algorithms.

[0077] Now referring to Figures 5A to 5B , a diagram of a system 500 / 500A used for systems and methods of autonomous driving based on collected and / or tracked human driving data is illustrated. Figure 5A An example runtime operation of the system 500 is illustrated, for example, where the system 500 is incorporated into an AV. Figure 5B An example training operation is illustrated, for example, where the system 500A is connected to and / or incorporated into a vehicle driven by a driver. In some embodiments, the system 500 / 500A is connected to and / or incorporated into a vehicle (e.g., an autonomous vehicle the same or similar to Figure 2 the vehicle 200). In one or more embodiments or examples, the system 500 / 500A is connected to an AV (e.g., such asFigure 2 the illustrated autonomous system 202, Figure 3 device 300, etc.), AV system, AV computing (such as Figure 2 AV computing 202f and / or Figure 4 AV computing 400, etc.), remote AV system (such as Figure 1 remote AV system 114, etc.), queue management system (such as Figure 1 queue management system 116, etc.) and V2I system (such as Figure 1 V2I system 118, etc.) communicate and / or be part of. System 500 can be used to operate an autonomous vehicle.

[0078] System 500 / 500A is disclosed herein. System 500 / 500A includes at least one processor. System 500 / 500A includes at least one non-transitory readable medium storing instructions that, when executed by the at least one processor, cause the at least one processor to perform operations including obtaining sensor data associated with the environment of vehicle operation. The operations include determining a set of candidate trajectories based on sensor data 504. For example, during training and / or runtime as illustrated in Figure 5A the operations may include determining a human driving trajectory based on sensor data 504, such as the human driving trajectory of a vehicle in front of or behind the AV, etc. For example, during training as illustrated in Figure 5B the operations may include determining a human driving trajectory based on human driving data 502. The operations include generating a trajectory score for one or more candidate trajectories in the set of candidate trajectories. The operations include causing an output to be provided to a device based on the trajectory scores associated with one or more candidate trajectories. For example, the device may be a control system (such as control systems 408, 516, etc. disclosed herein) and / or any device forming part of system 500. In one or more embodiments or examples, the output includes one or more of the following: human driving trajectory, one or more candidate trajectories, and one or more trajectory scores. For example, the device may be a remote AV system, such as remote AV system 518 or Figure 1 114, etc. The device may be, for example, a training device or database for training one or more models. System 500A can be used to train or update one or more of systems 508, 510, 512. In system 500A, vehicle computing 540A transmits information indicating the set of candidate trajectories together with human driving data 502 such as human driving trajectories to remote AV system 518 (e.g., AV remote system 114).

[0079] In other words, the system 500 / 500A obtains, for example, sensor data that provides information related to the vehicle's surroundings. For example, the system 500 / 500A determines a potential trajectory and / or a recommended trajectory (e.g., a set of candidate trajectories) and one or more trajectories (e.g., one or more human-driven trajectories) performed by a human driver based on the sensor data. The one or more trajectories performed by the human driver are, for example, based on the sensor data that captures and / or shows one or more trajectories driven by the human driver and observed in the environment, such as the human-driven trajectories of vehicles in front of or behind the AV. For the candidate trajectories, the system 500 / 500A can generate a trajectory score based on the human-driven trajectories (e.g., to evaluate how similar the candidate trajectories are to the human-driven trajectories). Then, the system 500 / 500A provides the human-driven trajectories, the potential trajectories, and / or the recommended trajectories (e.g., one or more candidate trajectories) and / or a trajectory score indicating how similar the potential trajectories and / or the recommended trajectories are to the human-driven trajectories as an output. The output is, for example, information for "learning" to improve the trajectories. The output can be considered as material provided to the disclosed process of generating machine-learned trajectories. In one or more embodiments or examples, the system 500 is configured to control the operation of the vehicle based on the output.

[0080] The term "trajectory" as disclosed herein can be considered as a path or route that navigates an AV from a first location to a second location. The location can be considered as a spatio-temporal location. The trajectory is, for example, a lane-level trajectory. In one or more examples, the trajectory includes one or more segments (e.g., road segments), and each segment includes one or more blocks (e.g., parts of a lane or an intersection). In one or more examples, the location corresponds to a real-world location.

[0081] In one or more embodiments or examples, the system 500 includes AV computing 540 (e.g., Figure 4 AV computing 400 of Figure 2 and Figure 4 AV computing 202f of Figure 4control system 408) and optionally a trajectory tracker system 514. The trajectory tracker system 514 may be embedded or included in the control system 516. In one or more embodiments or examples, the system 500 / 500A includes a route planner system 506, a homotopy generator system 508, and a trajectory generator system 510. In some examples, the planning system 520 includes a route planner system 506, a homotopy generator system 508, a trajectory generator system 510, and optionally a trajectory selector system 512. In some examples, the trajectory generator system 510 includes a homotopy generator system 508, a trajectory generator, and optionally a trajectory selector system 512

[0082] In one or more examples, the system 500 / 500A obtains sensor data 504, such as via the planning system 520 or the like. The system 500, for example, obtains sensor data 504 via one or more sensors (such as cameras, LiDAR sensors, Radar sensors, microphones, and / or location sensors (such as a global positioning system, etc., such as Figure 4 the positioning system 406 of etc.), such as Figure 2 the camera 202a, LiDAR sensor 202b, Radar sensor 202c, and / or microphone 202d of etc.). In one or more embodiments or examples, the sensor data 504 is one or more of the following: Radar sensor data, non-Radar sensor data, camera sensor data, image sensor data, audio sensor, and LiDAR sensor data. The specific type of sensor data 504 is not restrictive. The sensor data 504 may indicate the environment around the autonomous vehicle. For example, the sensor data 504 may indicate one or more objects in the environment near the autonomous vehicle (such as within the detectable range of one or more sensors, etc.). The object may be an object such as Figure 1 the object 104 illustrated as etc. The object includes an agent. An agent may be considered any object in the environment that can move dynamically. Examples of agents include pedestrians, vehicles, and bicycles. In some examples, the data represents the agent relative to the environment. The sensor data 504 optionally indicates at least one agent being driven by a human driver.

[0083] In some examples, the system 500 / 500A uses a planner (such as the planning system 520, etc.) to determine a set of candidate trajectories. In some examples, the system 500 / 500A simulates exactly the same scenario as observed via sensor data (such as a scenario of a human driving trajectory, etc.), and determines candidate trajectories for the same scenario to discern which invisible trajectories the human driver is considering in mind. The determined candidate trajectories can be considered as unexecuted trajectories that the human driver considered in their mind but rejected in favor of the ultimately executed trajectory. In some examples, the candidate trajectories (e.g., potential trajectories and / or proposed trajectories) are trajectories determined via the AV computation 540. In some examples, the candidate trajectories are a set of one or more determined trajectories from which the AV computation 540 and / or the vehicle computation 540A can select the trajectory to be executed by the AV. In one or more embodiments or examples, the system 500 / 500A uses the trajectory generator system 510 to determine a set of candidate trajectories. In some examples, the information 510b provided from the trajectory generator system 510 to the trajectory selector system 512 includes the set of candidate trajectories. In some examples, the information 510c indicating the set of candidate trajectories and / or one or more human driving trajectories is provided to the control system 516 and / or stored in a database. In some examples, the information 510c indicating the set of candidate trajectories and / or one or more human driving trajectories is provided to the remote AV system 518 and / or stored in a database.

[0084] In one or more embodiments or examples, the system 500 / 500A determines a human driving trajectory based on the sensor data 504. In one or more embodiments or examples, the system 500 determines a human driving trajectory based on the human driving data 502. The human driving trajectory is the trajectory executed by the human driver. As an example, if the human driver of the vehicle operates the vehicle such that the vehicle turns 90 degrees to the right, the human driving trajectory is characterized by the human driving data 502 indicating that the vehicle has turned 90 degrees to the right. In some examples, the human driving data 502 is provided to the homotopy generator system 508. In some examples, the sensor data 504 is used to determine the human driving trajectory, and the sensor data 504 can include GNSS data (e.g., using Figure 4 the positioning system 406). In one or more embodiments or examples, the trajectory generator system 510 determines the human driving trajectory based on the sensor data 504 including the human driving data 502. In some examples, the information 510c provided from the trajectory generator system 510 to the control system 516 includes the human driving trajectory. In one or more embodiments or examples, the sensor data 504 includes the human driving data 502.

[0085] In one or more embodiments or examples, system 500 generates a trajectory score for one or more candidate trajectories in a set based on a human driving trajectory. The trajectory score can be considered a score, such as a weight, that characterizes the similarity between the candidate trajectory and the human driving trajectory. The trajectory score can be considered a score that characterizes the similarity between the candidate trajectory and the overall set of human driving trajectories. The trajectory score can be considered an assessment of the replication of human driving decisions. In some examples, system 500 generates a trajectory score for each candidate trajectory in the set based on the human driving trajectory. For example, generating the score includes comparing the candidate trajectory to the human driving trajectory. The trajectory score can be based on this comparison, e.g., based on differences or similarities. In some examples, system 500 assigns a trajectory score to each candidate trajectory in one or more candidate trajectories. In other words, a trajectory score can be determined and assigned to each candidate trajectory. In some embodiments or examples, the trajectory score is a scalar value. In some embodiments or examples, the trajectory score is a binary value. In some examples, the trajectory score is calibrated or normalized such that the set of candidate trajectories can be sorted by system 500 into an order indicating how similar each candidate trajectory is. In other words, for example, the "best" candidate trajectory is the candidate trajectory that is most similar to the human driving trajectory. In some examples, system 500 identifies the highest-scoring trajectory among the candidate trajectories based on the trajectory score. In some examples, the highest-scoring trajectory is the "best" trajectory (e.g., the candidate trajectory that is most similar to the human driving trajectory).

[0086] In one or more embodiments or examples, system 500 causes a device to provide an output based on a trajectory score associated with one or more candidate trajectories. In one or more embodiments or examples, system 500 provides an output. In one or more embodiments or examples, the output includes one or more of the following: a human-driven trajectory, a trajectory score associated with one or more candidate trajectories, and one or more corresponding candidate trajectories. In one or more embodiments or examples, the output information 512b provided from the trajectory generator system 510 to the control system 516 includes an output based on a trajectory score associated with one or more candidate trajectories. In some examples, the information 510c includes a human-driven trajectory, one or more candidate trajectories, and / or (one or more) trajectory scores. In some examples, the information 510c includes a selected trajectory. In some examples, system 500 selects a trajectory to execute from a set of candidate trajectories via the control system 516 and / or the trajectory selector system 512. In one or more embodiments or examples, the information 510b provided from the trajectory generator 510a to the trajectory selector system 512 includes an output based on a trajectory score associated with one or more candidate trajectories. In some examples, the information 510b includes one or more candidate trajectories and / or trajectory scores. In some examples, the trajectory selector system 512 selects a trajectory among the provided candidate trajectories based on the trajectory score associated with the provided candidate trajectories. In some examples, the trajectory selector system 512 provides the information 512a including the selected trajectory. In some examples, the trajectory selector system 512 provides the information 512a indicating the selected trajectory to the trajectory tracker system 514. The trajectory tracker system 514 is configured, for example, to track the AV relative to the selected trajectory by actuating the throttle, brakes, and steering wheel.

[0087] In one or more embodiments or examples, determining the set of candidate trajectories based on the sensor data 504 includes generating homotopy data based on the sensor data 504, the homotopy data indicating one or more candidate homotopies from a first location associated with the route data to a second location. In one or more embodiments or examples, determining the set of candidate trajectories based on the sensor data 504 includes generating the set of candidate trajectories based on the homotopy data. In one or more embodiments or examples, the set of candidate trajectories is constrained by one or more candidate homotopies.

[0088] A homotopy can be viewed as a class that describes a set of trajectories with the same starting point and the same ending point, for which there is a continuous deformation from one to another while remaining within the class. In other words, a homotopy can be viewed as a corridor in space and time. In some examples, a homotopy can be viewed as one or more constraints applied to potential trajectories of a vehicle. In some examples, these constraints are applied in a 2D space (such as in an x and y coordinate system or along a reference baseline trajectory within a curvilinear coordinate system, etc.). In some examples, these constraints are spatio-temporal constraints and / or station-time constraints. In other words, a homotopy can define a set of potential trajectories while taking into account constraints imposed by any obstacles (e.g., any objects) in the environment. The constraints are, for example, spatio-temporal because they constrain a set of trajectories in space and time. The constraints are, for example, station-time constraints because the constraints take into account the predicted locations of obstacles along a reference baseline trajectory at a given predicted time instance. Homotopy data can include one or more homotopies. For example, homotopy data can include a homotopy and one or more constraints (spatio-temporal constraints and / or station-time constraints) associated with agents and / or obstacles in the environment. In some examples, when there are multiple agents and / or obstacles in the environment, the homotopy data (and / or the homotopies of the homotopy data) is determined while taking into account each agent and obstacle. In some examples, homotopy data includes a homotopy score. In some embodiments or examples, generating a candidate trajectory includes selecting one or more homotopies from a plurality of candidate homotopies. In some examples, the candidate homotopies (e.g., potential homotopies and / or proposed homotopies) are homotopies generated by the homotopy generator system 508 of the AV computing 540 of the system 500. In some examples, the homotopy data 508a is provided from the homotopy generator system 508 to the trajectory generator system 510. In the example of FIG. 5, the generated trajectory can be based on the candidate homotopy. In one or more embodiments or examples, a homotopy can be inferred from candidate trajectories and human-driven trajectories. In one or more embodiments or examples, the sensor data 504 is provided to the homotopy generator system 508.

[0089] In one or more embodiments or examples, the system 500 obtains route data using at least one processor. In some examples, the route data 506a is obtained from the route planner system 506. In some examples, the route data 506a is provided to the homotopy generator system 508. In some examples, the route data 506a includes information indicating the route of the vehicle. For example, the route can include information indicating at least one or more real-world locations. In some examples, the route data includes data indicating a route with a first location (e.g., a starting location) and a second location (e.g., an ending location).

[0090] In one or more embodiments or examples, the operation includes generating homotopy scores for one or more candidate homotopies based on human driving trajectories and trajectory scores. In one or more embodiments or examples, the operation includes the homotopy scores in the output. In one or more embodiments or examples, system 500 generates homotopy scores based on a human driving trajectory (and / or a set of human driving trajectories) and a trajectory score for each of one or more candidate homotopies. A homotopy score can be regarded as a score (e.g., a weight) for evaluating how much of a human driving trajectory is included in a particular candidate homotopy. For example, when a candidate homotopy sufficiently includes a human driving trajectory, the homotopy score for the candidate homotopy can be favorable or high. In some examples, for instance, using AV computation 540, a homotopy score is assigned to each of one or more candidate homotopies. In some examples, AV computation 540 utilizes a human driving trajectory and candidate trajectories to infer a homotopy (as Figure 8 shown). For example, AV computation 540 selects or provides a higher score to the homotopy in which the human driving trajectory is located or situated in space and time. In some examples, a homotopy is described by maneuver options that a self-vehicle can perform relative to one or more agents. In some examples, AV computation 540 orders a set of candidate homotopies, for example, in increasing or decreasing order, based on the homotopy scores. In some examples, AV computation 540 orders the set of candidate homotopies into an order indicating how similar the candidate trajectories included in a particular homotopy are to the human driving trajectory. In some examples, system 500 assigns a homotopy score to each of one or more candidate homotopies. In other words, a homotopy score can be determined and assigned to each candidate homotopy. In some embodiments or examples, the homotopy score is a scalar value. In some embodiments or examples, the homotopy score is a binary value. In some examples, system 500 identifies the highest-scoring homotopy among the candidate homotopies based on the homotopy scores. In some examples, the highest-scoring homotopy includes the "best" trajectory (e.g., the candidate homotopy that includes the candidate trajectory most similar to the human driving trajectory). For example, system 500 updates a model (e.g., a mathematical model) that can provide which homotopies are optimal in any given one or more scenarios. In one or more embodiments or examples, a homotopy score is generated for one or more candidate homotopies via homotopy generator system 508. In one or more embodiments or examples, homotopy generator system 508 provides homotopy data 508a to trajectory generator system 510. The homotopy data 508a includes, for example, one or more homotopies (e.g., one or more in an ordered homotopy) and optionally their corresponding homotopy scores.

[0091] In one or more embodiments or examples, operations of system 500 include constructing one or more trajectory scoring cost functions based on homotopy scores. In one or more embodiments or examples, the operations include updating a trajectory scoring model based on one or more trajectory scoring cost functions. In some examples, a trajectory scoring cost function is a cost function and / or a reward function for scoring one or more candidate trajectories (e.g., for training an objective function during training). One or more trajectory scoring cost functions optionally include one or more of a comfort cost function, an acceleration violation cost function, a collision energy transfer cost function, a trajectory blocking cost function, a driving distance cost function, a lane change violation cost function, and an obstacle clearance cost function.

[0092] In some examples, a trajectory scoring cost function is used to rank candidate trajectories and select one of the candidate trajectories, such as the highest performance trajectory, etc. In some examples, the update can be performed continuously and / or periodically and / or triggered by an event. As disclosed herein, candidate trajectories are sorted into an order by system 500 using a trajectory scoring cost function, for example. It can be understood that humans often only select one candidate trajectory because humans typically do not inherently have a pool of alternatives, and thus other trajectories are not even known. For an autonomous vehicle, as disclosed herein, more is involved in the process of obtaining the selected trajectory. In some examples, system 500 provides one or more scores. The score can be regarded as a confidence value associated with the trajectory. In other words, for example, the confidence can be regarded as a value learned by the network, such that the network has seen more of the trajectory, and thus is more confident in selecting the trajectory as the best trajectory. In some examples, the score does not have a probabilistic meaning associated with it.

[0093] In some examples, system 500 updates a trajectory scoring model based on one or more trajectory cost scoring functions. For example, the trajectory scoring model includes a trajectory scoring cost function. In some examples, the trajectory scoring model assigns a trajectory score to each of one or more candidate trajectories. In some examples, the trajectory generator system 510 (such as the trajectory selector system 512, etc.) is configured to operate according to the trajectory scoring model.

[0094] In one or more embodiments or examples, system 500 via a data set (such as including Figure 7BConstruct a trajectory scoring cost function, such as the datasets of two human driving trajectories in Data Points 1 and 2, etc., which reflects human decisions and preferences from the data. In some examples, the trajectory scoring cost function undergoes an update process. In some examples, System 500 uses one or more machine learning models to construct the trajectory scoring cost function. In some examples, the machine learning method used is imitation learning. In some embodiments or examples, the update and / or learning process can be optimized not only using machine learning models but also updated via online learning methods when more data is continuously obtained, thereby improving the cost structure over time. For example, the online learning method includes AV computing 540 communicating with the network for model updates. Model updates can include updating the selector model, the homotopy model, and / or the trajectory scoring model. In some examples, the online learning method includes, for example, using Bayesian methods to improve the trajectory scoring cost function. In one or more embodiments or examples, System 500 performs updates via online learning methods when the vehicle is stationary (such as when the vehicle is charging and / or parked, etc.).

[0095] In one or more embodiments or examples, System 500 selects a trajectory and / or a future trajectory based on the output, such as via a selector model, etc. In one or more embodiments or examples, System 500 selects a trajectory and / or a future trajectory based on one or more candidate trajectories and / or corresponding trajectory scores, such as via a selector model, etc. In one or more embodiments or examples, System 500 selects a trajectory and / or a future trajectory based on one or more candidate trajectories, corresponding trajectory scores, and / or human driving trajectories, such as via a selector model, etc. In one or more embodiments or examples, the operation of System 500 includes updating the selector model used to select future trajectories from a set of future candidate trajectories based on the output. In some examples, the selector model is a selector function configured to select the current trajectory and / or future trajectories. In some examples, the selector model is updated when the vehicle is not in use. For example, the selector model can be updated when the vehicle is charging. In some examples, the selector model is updated by transmitting and receiving data relative to a network (such as Figure 1 Network 112, etc.). In some examples, an AV queue (such as multiple communicatively coupled AVs, etc.) can communicate with the network. In some embodiments or examples, the updated selector model is stored on the network and uploaded to one or more vehicles in the queue. In some examples, the selector model is stored in a database of the autonomous vehicle (such as Figure 4in the database 410 of the AV calculation 400 shown, etc. In some examples, the selector model is stored in a remotely located server (such as a cloud server, etc.). In one or more embodiments or examples, the trajectory selector system 512 is configured to operate according to the selector model.

[0096] In one or more embodiments or examples, the system 500 uses at least one processor to select a future trajectory via the selector model. For example, the future trajectory is a trajectory that the AV calculation 540 will generate at some future point, such as the next trajectory during runtime, etc. In other words, the future trajectory is a trajectory that has not yet been generated. In some examples, the future trajectory is a trajectory that has not yet been executed by the vehicle. In one or more embodiments or examples, the system 500 uses at least one processor to select a future trajectory from a set of future candidate trajectories. In some examples, the set of future candidate trajectories is a set of candidate trajectories that have not yet been generated (such as using the trajectory generator system 510, etc.). In other words, the future trajectory can be regarded as the selected future candidate trajectory.

[0097] In one or more embodiments or examples, updating the selector model includes updating a homotopy model for generating and / or selecting one or more future homotopies based on the output. In one or more embodiments or examples, the system 500 generates and / or selects one or more future homotopies via the homotopy model. In some examples, the selector model includes one or more homotopy models. In some examples, the homotopy model generates homotopy scores for one or more candidate homotopies. In one or more embodiments or examples, the homotopy generator system 508 includes a homotopy model. In some examples, the future homotopy is a homotopy that the AV calculation will generate at some future point. In other words, the future homotopy is a homotopy that has not yet been generated.

[0098] In one or more embodiments or examples, the operation further includes selecting one or more future homotopies based on a homotopy model. In one or more embodiments or examples, system 500 may be configured such that one or more sensors obtain sensor data 504 indicative of the trajectories of other vehicles (e.g., agents) in the environment. In other words, system 500 may be configured to detect or track other vehicles with human drivers on the road, for example, via sensor data 504, and use them as data points. In some examples, the system switches the perspective of the disclosed AV (the so-called "ego" vehicle) with that of one of the agents driven by a human, such that the agent driven by a human can be used to collect further human driving trajectories. In some examples, the "ego" vehicle is the vehicle that uses system 500 to generate trajectories and / or homotopies. This switching of perspective may be referred to as data augmentation. In some examples, system 500 may generate trajectories and / or homotopies for multiple vehicles simultaneously. This may enable the acquisition of a larger amount of trajectory data. In some examples, this trajectory data is used to construct a trajectory scoring cost function. In some examples, the ego vehicle is stationary while "tracking" a vehicle in the environment. In some examples, the ego vehicle is moving while "tracking" a vehicle in the environment.

[0099] In some embodiments or examples, system 500 may be configured to incorporate some heuristics using at least one processor to discern which scenarios should be considered when collecting human driving data 502. For example, consider scenarios that include more interactions with other agents (such as vehicles, pedestrians, trees, etc.), because drivers in these scenarios may have more candidate trajectories in their minds when making decisions. This may enable system 500 to use planning system 520 to suggest more trajectories and may result in a richer dataset.

[0100] In one or more embodiments or examples, system 500 communicates with one or more of the following: a device (such as Figure 3 device 300, etc.), a positioning system (such as Figure 4 positioning system 406, etc.), a planning system (such as Figure 4 planning system 404 or the planning system 520 of FIG. 5, etc.), a perception system (such as Figure 4 perception system 402, etc.), and a control system (such as Figure 4 control system 408, etc.).

[0101] Control operations may include generating control data (e.g., obtaining control signals) for a control system of an autonomous vehicle. Control operations may include providing the control data to a control system of the autonomous vehicle. Control operations may include transmitting the control data to, for example, a control system of the autonomous vehicle and / or an external system. Control operations may include controlling a control system of the autonomous vehicle and / or an external system based on the control data.

[0102] Now refer to Figure 6A and Figure 6B , a diagram showing an example vehicle 600 including a planning system and a control system for determining actions. Vehicle 600 includes AV computing 640.

[0103] In the example of Figure 6A , AV computing 640 includes a planning system 606 (such as planning system 520 in FIG. 5, etc.) and a control system 610 (such as control system 516 in FIG. 5, etc.). In Figure 6A , AV computing 640 may continuously obtain sensor data 604 indicating the environment of vehicle 600. Then the sensor data 604 is input into the planning system 606 to generate an output that can be used to provide a trajectory. The output 608 provided and / or transmitted from the planning system 606 to the control system 610 may be the same as or similar to the information 512a of Figure 5A .

[0104] In the example of Figure 6B , AV computing 640 includes a control system 610 (such as control system 516 in FIG. 5 and Figure 6A control system 610, etc.) and a drive-by-wire (DBW) system 616. For example, AV computing 640 continuously generates control signals 612. In some examples, the control signals are transmitted 614 to the DBW system 616. For example, the control signals include information indicating instructions for executing the selected trajectory. In some examples, the DBW system 616 operates the vehicle 600 according to the selected trajectory. For example, the control signals are based on the output 608. The device for providing the output 608 disclosed herein may be AV computing 640 and / or the control system 610.

[0105] Now refer to Figure 7A and Figure 7B , diagrams 700, 750 showing an example determination depicting the actions of an example vehicle. Figure 7A The example of Figure 7AIn an example, the vehicle 702 (including, for example Figure 4 the AV calculation 400 of FIG. 4, the AV calculation 540 of FIG. 5, and / or Figure 6A and Figure 6B the AV calculation 640 of FIG. 6) can be configured to obtain a human-driven trajectory 701a. The human-driven trajectory 701a is performed, for example, by the first vehicle 701. Figure 7A FIG. 7 shows the disclosed vehicle 702, such as an AV (such as Figure 1 the vehicle 102 of FIG. 1, Figure 2 the vehicle 200 of FIG. 2, the vehicle including the system 500 of FIG. 5, and Figure 6A and 6B the vehicle 600 of FIG. 6, etc.). Figure 7A FIG. 8 shows an agent (in this example, the second vehicle 704) located directly in front of the first vehicle 701 (such as in the direction of movement of the first vehicle 701, etc.), so acceleration in one or more directions is required to avoid a collision. In some examples, the first vehicle 701 performs a human-driven trajectory 701a to bypass the second vehicle 704. In other words, the vehicle 702 can observe the human-driven trajectory performed by the vehicle 701 via sensor data. In some examples, the vehicle 702 determines a first candidate trajectory 702a and a second candidate trajectory 702b. The candidate trajectory 702a is a candidate trajectory that does not include lateral acceleration. The candidate trajectory 702b is a candidate trajectory including lateral acceleration generated by the AV calculation. By applying the disclosed technology, the vehicle 702 determines that the trajectory score of 702b is more favorable than the trajectory score of 702a. 702b is more similar to 701a than 702a. It can be noted that compared with the bypass of the human-driven trajectory 701a, the candidate trajectory 702b includes a wider bypass around the second vehicle 704, yet 702b remains closer to 701a than 702a. In some examples, the candidate trajectories 702a, 702b are trajectories that a driver can consider mentally and then reject in favor of the final executed trajectory (e.g., the human-driven trajectory 701a).

[0106] Figure 7B FIG. 9 shows data points from two different example scenarios. The data points can form part of the output disclosed herein. The first scenario includes data point 1, which can correspond to the example shown in Figure 7A FIG. 4. The second scenario includes data point 2. Figure 7B The first vehicle 705 of FIG. 10 can be the same as Figure 7A the first vehicle 701 of FIG. 7. Figure 7B The second vehicle 708 of FIG. 11 can be the same as Figure 7A the second vehicle 704 of FIG. 8. The trajectories 705a, 706a, and 706b can be the same as Figure 7AThe trajectories 701a, 702a, and 702b are the same. In some examples, data point 1 is a data point provided to a machine learning method. In some examples, the information indicating data point 1 is included in a machine learning model.

[0107] In one or more embodiments or examples, the trajectory scoring cost function is based on one or more human driving trajectories, such as human driving trajectory 705a, etc. For example, the trajectory scoring cost function is trained by comparing the similarity of candidate trajectories 706a and 706b with human driving trajectory 705a. In other words, the trajectory scores assigned to each candidate trajectory 706a, 706b can indicate their similarity to human driving trajectory 705a. In some examples, the candidate trajectories 706a, 706b that are most similar to human driving trajectory 705a are assigned the highest performance scores. In some examples, the highest performance score can be the highest score or the lowest score. For example, constructing the trajectory scoring cost function can include determining which candidate trajectory is the highest performance trajectory. In other words, constructing the trajectory scoring cost function can be based on one or more data points, such as data point 1, etc.

[0108] The second scenario (such as the scenario indicating data point 2, etc.) also includes the first vehicle 705. The second scenario includes external trajectories, such as trajectories 708a and 708b, etc. In some examples, the external trajectories indicate external objects moving through the environment. In the example of data point 2, the external object moving through the environment is a pedestrian. Figure 7B The pedestrian is near multiple trajectories of vehicle 706. The external object can be any object present in the environment (e.g., a vehicle, a pedestrian, a tree, etc.). In some examples, the trajectory of the external object is detected by one or more sensors of vehicle 706 (such as camera 202a, LiDAR sensor 202b, Radar sensor 202c, and / or microphone 202d, etc.), and then determined by AV computing. The example of data point 2 includes human driving trajectory 705b and candidate trajectories 706c and 706d (such as generated by AV computing). In the example of human driving trajectory 705b and candidate trajectory 706c, a collision is avoided. In the example of candidate trajectory 706d, a collision may occur.

[0109] In one or more embodiments or examples, one or more human driving trajectories (such as human driving trajectory 705b, etc.) are used to apply a trajectory scoring cost function. For example, candidate trajectories 706c and 706d are scored based on their similarity to human driving trajectory 705b. In other words, the trajectory scores and / or weights assigned to each candidate trajectory 706c and 706d can indicate their similarity to human driving trajectory 705b. In some examples, the candidate trajectories 706c and 706d that are most similar to human driving trajectory 705b are assigned the highest performance scores. In some examples, the highest performance score is the lowest score. In some examples, the highest performance score is the highest score. For example, constructing the trajectory scoring cost function can include determining which candidate trajectory is the optimal trajectory. In other words, constructing the trajectory scoring cost function can be based on one or more data points, such as data point 2, etc.

[0110] Now refer to Figure 8 , FIG. 800 showing an example determination of homotopy is presented. Figure 8 The first vehicle 802 and the second vehicle 804 are shown. Figure 8 The second vehicle 804 of Figure 7A can be the same as the second vehicle 704 of Figure 7B and / or the second vehicle 708 of Figure 8 . Homotopy 1 is illustrated, which includes homotopy boundaries 802a and 802b and candidate trajectory 802c. Homotopy 2 is also illustrated, which includes homotopy boundaries 802d and 802e and human driving trajectory 802f. Specifically, Figure 8 an example is illustrated where the homotopy boundaries can be inferred by the AV calculation from trajectories (such as candidate trajectory 802c and / or human driving trajectory 802f, etc.). In this example, since the human driver made the human driving trajectory 802f as compared to the candidate trajectory 802c, the AV calculation can then infer that homotopy 2 is better because homotopy 2 contains the human driving trajectory. In other words, the "best" homotopy can include a human driving trajectory, such as human driving trajectory 802f, etc. Thus, in Figure 8 the homotopies illustrated, in some examples, homotopy 2 will be selected by the model (such as by the homotopy model and / or selector model, etc.) as the "best" homotopy or the highest performance. In Figure 8 the example illustrated, the system (such as system 500 of FIG. 5, etc.) can be configured to (e.g., via a machine learning model) learn a model to rank a set of homotopies (such as Figure 8 homotopy 1 and 2, etc.) in an order indicating which homotopy is "best" or has the highest performance. In one or more embodiments or examples, the system (such as system 500 of FIG. 5, etc.) is configured to determine a single "best" homotopy.

[0111] Now refer to Figure 9, illustrates a flowchart of a method or process 900 used in a system and method for autonomous driving (such as for operating and / or controlling an AV, etc.) based on human driving data. The method may be performed by a system disclosed herein (such as one or more than one of the following, etc.): Figure 2 AV computing 202f of Figure 4 AV computing 400 of Figure 1 and Figure 2 corresponding vehicles 102, 200 of Figure 3 device 300 of Figure 5A system 500 and AV computing 540 of Figure 5B system 500A and vehicle computing 540A of Figures 6A to 6B , Figures 7A to 7B and Figure 8 implementations of). The disclosed system may include at least one processor, and the at least one processor may be configured to perform one or more than one of the operations of method 900. Method 900 may be performed by another device or group of devices that are separate from or include the system disclosed herein (e.g., completely and / or partially, etc.).

[0112] A method is disclosed. Method 900 includes obtaining, by at least one processor at step 902, sensor data associated with the environment in which the vehicle operates. Method 900 includes determining, by at least one processor at step 904, a set of candidate trajectories based on the sensor data. In some examples, determining the set of trajectories includes using a planner. Method 900 includes determining, by at least one processor at step 906, a human driving trajectory (e.g., a trajectory executed by a human driver), for example based on the sensor data. Method 900 includes generating, by at least one processor at step 908, a trajectory score for one or more than one candidate trajectory in the set of candidate trajectories based on the human driving trajectory. Method 900 includes causing, by at least one processor at step 910, an output to be provided to a device based on the trajectory scores associated with one or more than one candidate trajectory. In one or more than one embodiment or example, the output includes one or more than one of the following: a human driving trajectory, one or more than one candidate trajectory, and one or more than one trajectory score. In some examples, a system (such as Figure 5A system 500 of Figure 5B and / or Figure 5A and / or Figure 5Bplanning system 520, etc.) to determine a set of candidate trajectories. In some examples, the planner uses the predictions from the perception system 402 as a result of sensor data and determines candidate ego-trajectories for the same scenario to identify which unexecuted trajectories the human driver had in mind. The determined candidate trajectories can be considered unexecuted trajectories that the human driver considered in their mind but rejected to support the ultimately executed trajectory. In some examples, the human driving trajectory is the trajectory executed by the human driver. The trajectory score can be considered a score characterizing the similarity between the candidate trajectory and the human driving trajectory, such as a weight, etc. For example, generating the score includes comparing the candidate trajectory and the human driving trajectory. The trajectory score can be based on this comparison, e.g., based on the difference or similarity. The trajectory score can be considered an evaluation of the replication of the human driving decision. In some embodiments or examples, the trajectory score is a scalar value. In some embodiments or examples, the trajectory score is a binary value. Method 900 includes causing an output to be provided that includes the human driving trajectory, one or more candidate trajectories, and the trajectory score. The output is, for example, information for "learning" to improve the trajectory. The output can be considered material provided to the disclosed process of generating machine-learned trajectories, such as for training a homotopy and / or trajectory generator system, etc. In one or more embodiments or examples, system 500 is configured to control the operation of the vehicle based on the output.

[0113] In one or more embodiments or examples, determining the set of candidate trajectories based on sensor data at step 904 includes generating homotopy data based on the sensor data, the homotopy data indicating one or more candidate homotopies from a first location associated with route data to a second location. In one or more embodiments or examples, determining the set of candidate trajectories based on sensor data at step 904 includes generating the set of candidate trajectories by at least one processor based on the homotopy data. In one or more embodiments or examples, the set of candidate trajectories is constrained by one or more candidate homotopies. In some examples, the route data is obtained from a route planner system (such as the route planner system 506 of FIG. 5, etc.). The homotopy data can include one or more homotopies. For example, the homotopy data includes a homotopy and one or more constraints (spatiotemporal constraints and / or station-time constraints) associated with agents in the environment. In some examples, these constraints are applied in 2D space (such as in an x and y coordinate system, etc.). In some examples, when there are multiple agents in the environment, the homotopy data (and / or the homotopies of the homotopy data) is determined considering each agent. In some embodiments or examples, generating the candidate trajectory includes selecting one or more homotopies from a plurality of candidate homotopies.

[0114] In one or more embodiments or examples, method 900 includes generating, by at least one processor, a homotopy score for one or more candidate homotopies based on a human driving trajectory and a trajectory score. In one or more embodiments or examples, method 900 includes including, by at least one processor, the homotopy score in an output. In one or more embodiments or examples, generating the homotopy score includes generating the homotopy score based on the human driving trajectory and the trajectory score for each of the one or more candidate homotopies. The homotopy score can be regarded as a score (e.g., a weight) that is used to evaluate how much of the human driving trajectory is included in a particular candidate homotopy. For example, when a candidate homotopy includes a human driving trajectory, the homotopy score for the candidate homotopy can be favorable or high. In some examples, the homotopy score is assigned to each of the one or more candidate homotopies, e.g., using the AV calculations disclosed herein. In some examples, the system infers a homotopy with a higher homotopy score based on a homotopy that includes a human driving trajectory (as Figure 8 shown). In some examples, a homotopy is described by the maneuver options that a self-vehicle can perform relative to one or more agents. In some examples, the AV calculations order a set of candidate homotopies, e.g., in increasing or decreasing order, based on the homotopy score. In some examples, method 900 includes ordering the set of candidate homotopies into an order that indicates how similar the candidate trajectories included in a particular homotopy are to the human driving trajectory. In some examples, method 900 includes assigning a homotopy score to each of the one or more candidate homotopies. In other words, the homotopy score can be determined and assigned to each candidate homotopy. In some embodiments or examples, the homotopy score is a scalar value. In some embodiments or examples, the homotopy score is a binary value. In some examples, method 900 includes identifying the highest-scoring homotopy among the candidate homotopies based on the homotopy score. In some examples, the highest-scoring homotopy includes the "best" trajectory (e.g., the candidate homotopy that includes the candidate trajectory most similar to the human driving trajectory).

[0115] In one or more embodiments or examples, method 900 includes updating, by at least one processor, a selector model that selects future trajectories from a set of future candidate trajectories, e.g., during a future runtime of the AV, based on the output. In some examples, the future trajectories are trajectories that have not yet been generated. In some examples, the selector model is a selector function configured to select current trajectories and / or future trajectories.

[0116] In one or more embodiments or examples, the update selector model includes updating a homotopy model for generating and / or selecting one or more future homotopies based on an output. In some examples, the homotopy model generates homotopy scores for one or more candidate homotopies. In some examples, a future homotopy is a homotopy that has not yet been generated, for example, during a future run of an AV.

[0117] In one or more embodiments or examples, method 900 further includes selecting, by at least one processor, one or more future homotopies based on the homotopy model.

[0118] In one or more embodiments or examples, method 900 further includes constructing, by at least one processor, one or more trajectory scoring cost functions based on the homotopy scores. In one or more embodiments or examples, method 900 further includes updating, by at least one processor, a trajectory scoring model based on the one or more trajectory scoring cost functions. In some examples, a trajectory scoring cost function is a cost function and / or a reward function for scoring one or more candidate trajectories. In some examples, the trajectory scoring cost function is used to order the candidate trajectories so as to select one of the candidate trajectories, such as the highest performance trajectory, etc. For example, the trajectory scoring model includes the trajectory scoring cost function. In some examples, the trajectory scoring model assigns a trajectory score to each of the one or more candidate trajectories. It can be understood that humans often select only one candidate trajectory because humans generally do not inherently have a pool of alternatives, and thus other trajectories are even unknown. In some examples, a system (such as system 500 of FIG. 5, etc.) provides one or more weights. The weights can be regarded as confidence values associated with the trajectories. In other words, for example, the confidence can be regarded as a value learned by the network, so as to recognize that the network has seen more of this trajectory, and thus has more confidence in selecting this trajectory as the best trajectory. In some examples, the weights do not have a probabilistic meaning associated with them. In one or more embodiments or examples, a system (such as Figure 5A system 500 and / or Figure 5B system 500A, etc.) constructs a trajectory scoring cost function via a data set (such as a data set including Figure 8 data points 1 and 2, etc.), and the trajectory scoring cost function reflects human decisions and preferences from the data. In some examples, method 900 includes using one or more machine learning models to construct the trajectory scoring cost function. In some embodiments or examples, the update and / or learning process can be optimized not only using machine learning models, but also updated via online learning methods when more data is continuously obtained over time, so as to improve the cost structure over time and thus improve the decision-making process.

[0119] Example planning system with a training pipeline

[0120] Figure 10 FIG. 1000 is a block diagram of an example planning system for an autonomous vehicle (AV) that can be updated or trained using human driving data 502. In some cases, the human driving data 502 can be included in the sensor data 504. In some cases, the human driving data 502 can be associated with a trajectory selected by a driver of an AV (self-vehicle) or another vehicle (human driver), where the other vehicle has been monitored by sensors for a sufficient amount of time to generate data usable for a training process. Additionally, in some cases, the human driving data can include obstacles or external trajectories (e.g., external trajectories 708a or 708b) that define a scenario associated with the trajectory selected by the human driver. For example, the human driving data can include the data points 1 or data points 2 described above with respect to Figure 7B FIG. 1000.

[0121] In some embodiments, in addition to the control pipeline for generating trajectories during autonomous control of the AV, the planning system 1000 can also include modules and processes for implementing a training pipeline that is configured to train and / or update one or more models or algorithms based on the human driving data. In some cases, the training pipeline can be implemented during a training period to update one or both of the homotopy cost function used by the homotopy generator system 508 and the trajectory cost function used by the trajectory selector system 512. In some cases, the trajectory cost function can be a trajectory scoring cost function that can be used to generate a score for a trajectory. In some cases, the homotopy cost function can be a homotopy scoring cost function that can be used to generate a score for a homotopy.

[0122] In some cases, the planning system 1000 can include a trajectory generator system 1010 and a route planner system 506. In some cases, the planning system 1000 and the trajectory generator system 1010 can include one or more features described above with respect to the planning system 520 and / or the trajectory generator system 510. In some cases, the operations of the planning system 1000 and the trajectory generator system 1010 can include one or more features described above with respect to the operations of the planning system 520 and the trajectory generator system 510.

[0123] Similar to the trajectory generator system 510, the trajectory generator system 1010 can include a homotopy generator system 508, a trajectory generator 510a, and / or a trajectory selector system 512. In some cases, the homotopy generator system 508 uses sensor data 504 and the route received from the route planner system 506 to generate homotopy data 508a including a homotopy (corridor) 508a through which the AV can navigate from an initial location to a second location. In some cases, the homotopy generator system 508 can use a homotopy cost function to generate scores for multiple homotopies generated based on the sensor data 504 and the information received from the route planner system 506, and include in the homotopy data 508a the homotopies that meet a threshold score (e.g., a score above the threshold score).

[0124] In some cases, the sensor data 504 is received from the sensors of the AV (e.g., LiDAR, Radar, or camera) or a positioning system (e.g., Figure 4 the positioning system 406). In some embodiments, the sensor data 504 can include human driving data 502 associated with the self-vehicle when driven by a human or data associated with other vehicles driven by a human. In some cases, the sensor data 504 can include GNSS data (e.g., received from the positioning system 406).

[0125] In some cases, the trajectory generator 510a uses the homotopy data 508a received from the homotopy generator system 508 and generates information 510b (e.g., trajectory data) including one or more of the candidate trajectories. In some cases, one or more trajectories can fall within the same homotopy, yet the trajectory generator 510a generates one trajectory realization for each homotopy included in the homotopy data 508a. Thus, in some cases, there is a one-to-one mapping between the trajectory realization and its corresponding homotopy. In some cases, it may not be possible to generate a trajectory for a homotopy; in these cases, the homotopy may be marked as infeasible. In some cases, the trajectory selector system 512 receives the information 510b (trajectory data) from the trajectory generator 510a and selects the trajectory to be output by the planning system 1000 as the output information 512b that can be used by the control system of the AV (e.g., the control system 516) to autonomously control the AV. In some cases, the trajectory selector system 512 can use a trajectory cost function to generate scores for multiple trajectories generated by the trajectory generator 510a, and select the trajectories that meet a score threshold (e.g., the trajectory with the highest score or the trajectories with scores above a specific score threshold) to be included in the output information 512b. In some cases, the homotopy generator system 508 and the trajectory selector system 512 can use a model (e.g., a machine learning model) to select the homotopy and the trajectory.

[0126] In some implementations, the planning system 1000 can be used in a control mode to generate output information 512b by processing real-time sensor data 504 via a control pipeline and to use the output information 512b to control the AV. In some cases, the control pipeline includes a route planner system 506, a homotopy generator system 508, a trajectory generator 510a, and a trajectory selector system 512. In some cases, the route planner system 506 can generate route data 506a based at least in part on the sensor data 504. In some examples, the route data 506a can include data indicating a route having a first location (e.g., a starting location or origin) and a second location (e.g., an ending location or destination). In some cases, the route planner system 506 can generate the route data 506a based on one or more obstacles and / or one or more roads (or streets) connecting the first location and the second location.

[0127] In some implementations, the planning system 1000 can be used in a training mode to optimize, update, and / or train models, cost functions, or algorithms used by the planning system 1000 to generate the output information 512b using the sensor data 504. In some cases, the training mode can include manual control of the AV by a driver. In some cases, in the training mode, the planning system 1000 uses previously collected sensor data 504 collected during a manual driving session in which the AV is controlled by a driver. In some cases, the previously collected sensor data 504 can include data associated with the ego vehicle or other vehicles monitored by the sensor system of the ego vehicle (AV). In some cases, the previously collected sensor data 504 can include data associated with other vehicles monitored by the sensor system of the ego vehicle (AV) when autonomously controlling the ego vehicle. For example, the sensor system can monitor how vehicles in the environment of the ego vehicle navigate through the environment and store the trajectories and / or paths of the monitored vehicles.

[0128] In some cases, models, algorithms, or cost functions can be optimized, updated, and / or trained for one or more driving scenarios. In some examples, a driving scenario (also referred to as a scenario) can include navigating the AV from an initial location to a second location. Additionally, in some examples, a driving scenario can include navigating the AV in the presence of one or more obstacles or constraints that may affect the route from the initial location to the destination. Thus, in some cases, the models, cost functions, or algorithms will be optimized, updated, and / or trained for a specific scenario and will be used to autonomously control the AV for other instances of the corresponding scenario in the control mode.

[0129] In some cases, the planning system 1000 may operate in a training mode during a predefined period and / or based on the amount of sensor data 504 collected during one or more manual driving sessions. In some cases, when the model, cost function, or algorithm of the planning system 1000 has been trained or updated for a scenario, additional data collected for the same scenario may not be used for further training or may not trigger another training mode for that scenario.

[0130] In some cases, prior to a manual driving session in which the AV is under driver control, the training mode may be manually selected or triggered (e.g., by a user, system engineer, or driver). In these cases, the planning system 1000 may load software configured for data collection and training. In some cases, the AV is autonomously controlled by default, and manual driving is specifically performed to train the system for a particular scenario. In some cases, during a manual driving session, the planning system 1000 may load software configured for data collection to collect human driving data associated with driving the self-vehicle. The collected human driving data may be used to train the system offline.

[0131] In some cases, during an offline training session (when the training mode is activated), the trajectory generator system 1010 may receive previously collected or recorded data and search through the recorded data to find where markers indicate that the data was collected during a manual driving session, and use the data associated with the manual driving session for training.

[0132] In some implementations, the trajectory generator system 1010 may include a sensor data router 1002 that allows the planning system 1000 and / or a user, driver, or system engineer to selectively route the sensor data 504 to a control pipeline or a training pipeline. In some cases, selecting or activating the control mode causes the sensor data router 1002 to transmit the sensor data 504 to the homotopy generator system 508 and activate the control pipeline. In some cases, selecting or activating the training mode causes the sensor data router 1002 to transmit the sensor data 504 to the human driving data processor 1004 and activate the training pipeline. In some cases, the planning system 1000 may automatically determine that the AV is being driven by a human driver, and in response to such a determination, activate the training mode. In some cases, the sensor data router 1002 may include an intelligent router configured to identify human driving data. In these cases, the sensor data router 1002 may use certain indicators to identify the human driving data and, after such identification, redirect the data to the training pipeline to train and / or update the cost function, model, or software.

[0133] In some implementations, the training pipeline includes a human driving data processor 1004, a model and cost function modification system 1006, a homotopy generator system 508, a trajectory generator 510a, and a trajectory selector system 512. In some cases, the human driving data processor 1004 may be configured to use the human driving data 502 received from the sensor data router 1002 to determine a scenario 1005a associated with the human driving data 502 and a decision 1005b made by the driver for the determined scenario 1005a. For example, the trajectory selected by the human driver to navigate the AV in the determined scenario 1005a. In some cases, the human driving data processor 1004 may include a route planner system 506 or algorithm that generates the scenario 1005a based at least on the sensor data 504. In some cases, the human driving data processor 1004 may communicate with the route planner system 506 and use the route planner system 506 to generate the scenario 1005a. In some cases, the scenario 1005a may include route data extracted from the human driving data 502. In some cases, the scenario may indicate a route having a first location (e.g., a starting location) and a second location (e.g., an ending location). In some cases, the human driving data processor 1004 may generate the scenario 1005a based on one or more obstacles and / or one or more roads (or streets) connecting the first location and the second location. In some cases, in the training mode, the trajectory generator system 1010 may use the homotopy generator system 508 to generate one or more homotopies and transmit the one or more homotopies to the model and cost function modification system 1006. The model and cost function modification system 1006 may be configured to receive the scenario 1005a, the decision 1005b, and the homotopy corresponding to the scenario (generated by the homotopy generator system 508), and update the model or the cost function. In Figure 10In the example shown, the model and cost function modification system 1006 updates and / or trains the homotopy cost function (e.g., homotopy scoring cost function) used by the homotopy generator system 508 and the trajectory cost function (e.g., trajectory scoring cost function) used by the trajectory generator system 512. The cost functions trained or updated during a training period (when the planning system 1000 is operating in a training mode) can be used during a control mode in which the AV is autonomously controlled to navigate in a scenario in which the cost function has been updated or trained. Advantageously, using human driving data to update or train the cost function can improve the accuracy of the homotopy selected by the homotopy generator system 508 and the trajectory selector system 512. In some cases, the trajectory cost function generated or modified by the model and cost function modification system 1006 assigns a higher score to trajectories that are closer to the human driving trajectory. In some cases, the homotopy cost function generated or modified by the model and cost function modification system 1006 assigns a higher score to homotopies that include the human driving trajectory. In some cases, the trajectory score and / or weight assigned to a trajectory (e.g., a candidate trajectory) can indicate its similarity to the human driving trajectory.

[0134] Figure 11 is an example process 1100 that can be implemented by the Figure 10 planning system shown in FIG. to update or train one or more models (e.g., scoring models), algorithms, or cost functions using human driving data. In some cases, process 1100 can be performed by a hardware processor of the planning system 1000.

[0135] Process 1100 begins at block 1102, where the planning system 1000 receives sensor data 504 from sensors of the autonomous vehicle (AV) (e.g., cameras, LiDAR, Radar, or other sensors). In some cases, the sensor data 504 can additionally include data received from other systems of the AV, where the data indicates the location of the AV or actions taken by a human driver manually driving the AV.

[0136] At decision block 1104, the planning system 1000 can determine the operating mode of the planning system 1000. In some cases, the driver, user, or technician may have selected the operating mode. In some cases, determining the operating mode by the planning system 1000 can include the planning system 1000 selecting the operating mode at least in part based on the sensor data 504. For example, upon detecting a sign or indicator in the sensor data 504, the planning system 1000 can determine that the sensor data 504 includes human driving data and, in response, select the training mode.

[0137] If at decision block 1104 the planning system 1000 determines that the training mode has been selected or selects the training mode based on the sensor data 504, the process moves to block 1106, where the planning system 1000 transmits the human driving data 502 to the human driving data processor 1004.

[0138] At block 1108, as described herein, the planning system 1000 uses the human driving data processor 1004 to determine the scenario 1005a and the decisions 1005b made by the human driver in response to driving the AV in the determined scenario. In some cases, the decision 1005b may include a trajectory selected by the driver.

[0139] At block 1110, the planning system 1000 transmits the scenario 1005a to the homotopy generator system 508 to generate a homotopy associated with the determined scenario. In some cases, the scenario may include route data.

[0140] At block 1112, the planning system 1000 uses the model and cost function modification system 1006 to update one or more models, algorithms, or cost functions based on the decisions and scenarios generated by the human driving data processor 1004 (at block 1108) and the homotopy generated by the homotopy generator system 508 (at block 1110). For example, the planning system 1000 may update or train the homotopy cost function used by the homotopy generator system 508 by comparing the homotopy generated using the scenario 1005a and the trajectory selected by the human driver in the scenario 1005a. As another example, the planning system 1000 may update or train the trajectory cost function (e.g., the trajectory scoring cost function) by comparing, for example, the trajectory generated by the trajectory generator 510a for the homotopy determined for the scenario 1005a and the trajectory selected by the human driver in the scenario 1005a.

[0141] If at decision block 1104 the planning system 1000 determines that the control mode has been selected or selects the control mode based on the sensor data 504, the process moves to block 1114, where the planning system 1000 processes the sensor data 504 through the control pipeline to generate the output information 512b and transmits the output information 512b to the control system 516.

[0142] Example embodiments

[0143] The example embodiments described herein have several features, none of which is indispensable or solely responsible for its desired properties. Various example systems and methods are provided below.

[0144] Also disclosed are a method, a non-transitory computer-readable medium, and a system according to any one of the following:

[0145] Example 1. A method, comprising:

[0146] Obtaining, by at least one processor, sensor data associated with an environment in which a vehicle operates;

[0147] Determining, by the at least one processor, a set of candidate trajectories based on the sensor data;

[0148] Determining, by the at least one processor, a human driving trajectory based on the sensor data;

[0149] Generating, by the at least one processor, a trajectory score for one or more candidate trajectories in the set of candidate trajectories based on the human driving trajectory; and

[0150] Causing, by the at least one processor, an output to be provided to a device based on the trajectory scores associated with the one or more candidate trajectories, wherein the output includes one or more of the following: the human driving trajectory, the one or more candidate trajectories, and one or more trajectory scores.

[0151] Example 2. The method according to Example 1, wherein determining the set of candidate trajectories based on the sensor data includes:

[0152] Generating, based on the sensor data, homotopy data indicating one or more candidate homotopies from a first location associated with route data to a second location; and

[0153] Generating, by the at least one processor, the set of candidate trajectories based on the homotopy data, wherein the set of candidate trajectories is constrained by the one or more candidate homotopies.

[0154] Example 3. The method according to any of the preceding examples, the method comprising:

[0155] Generating, by the at least one processor, a homotopy score for the one or more candidate homotopies based on the human driving trajectory and the trajectory scores; and

[0156] Including, by the at least one processor, the homotopy score in the output.

[0157] Example 4. The method according to any of the preceding examples, the method comprising: updating, by the at least one processor, a selector model for selecting future trajectories from a set of future candidate trajectories based on the output.

[0158] Example 5. The method according to Example 4, wherein updating the selector model includes updating, based on the output, a homotopy model for generating and / or selecting one or more future homotopies.

[0159] Example 6. The method according to Example 5, further comprising: selecting, by the at least one processor, one or more future homotopies based on the homotopy model.

[0160] Example 7. The method according to any one of the preceding examples, further comprising:

[0161] constructing, by the at least one processor, one or more trajectory scoring cost functions based on the homotopy scores; and

[0162] updating, by the at least one processor, a trajectory scoring model based on the one or more trajectory scoring cost functions.

[0163] Example 8. A system, comprising:

[0164] at least one processor; and

[0165] at least one non-transitory computer-readable medium storing instructions that, when executed by the at least one processor, cause the at least one processor to perform operations, the operations including:

[0166] obtaining sensor data associated with an environment of a vehicle operation;

[0167] determining a set of candidate trajectories based on the sensor data;

[0168] determining a human driving trajectory based on the sensor data;

[0169] generating, based on the human driving trajectory, a trajectory score for one or more candidate trajectories in the set of candidate trajectories; and

[0170] causing an output to be provided to a device based on the trajectory scores associated with the one or more candidate trajectories, wherein the output includes one or more of the following: the human driving trajectory, the one or more candidate trajectories, and one or more trajectory scores.

[0171] Example 9. The system according to Example 8, wherein determining the set of candidate trajectories based on the sensor data includes:

[0172] generating, based on the sensor data, homotopy data indicating one or more candidate homotopies from a first location associated with route data to a second location; and

[0173] Generate the set of candidate trajectories based on the homotopy data, where the set of candidate trajectories is subject to the one or more candidate homotopy constraints.

[0174] Example 10. The system according to any one of Examples 8 to 9, the operation includes:

[0175] Generate a homotopy score for the one or more candidate homotopies based on the human driving trajectory and the trajectory score; and

[0176] Include the homotopy score in the output.

[0177] Example 11. The system according to any one of Examples 8 to 10, the operation includes: updating a selector model for selecting future trajectories from a set of future candidate trajectories based on the output.

[0178] Example 12. The system according to Example 11, wherein updating the selector model includes updating a homotopy model for generating and / or selecting one or more future homotopies based on the output.

[0179] Example 13. The system according to Example 12, the operation further includes: selecting one or more future homotopies based on the homotopy model.

[0180] Example 14. The system according to any one of Examples 8 to 13, the operation further includes:

[0181] Construct one or more trajectory score cost functions based on the homotopy score; and

[0182] Update a trajectory score model based on the one or more trajectory score cost functions.

[0183] Example 15. A non-transitory computer-readable medium, which includes instructions stored thereon, the instructions when executed by at least one processor cause the at least one processor to perform operations, the operations include:

[0184] Obtain sensor data associated with the environment of the vehicle operation;

[0185] Determine a set of candidate trajectories based on the sensor data;

[0186] Determine a human driving trajectory based on the sensor data;

[0187] Generate a trajectory score for one or more candidate trajectories in the set of candidate trajectories based on the human driving trajectory; and

[0188] Cause an output to be provided to a device based on a trajectory score associated with the one or more candidate trajectories, where the output includes one or more of the following: the human-driven trajectory, the one or more candidate trajectories, and one or more trajectory scores.

[0189] Example 16. The non-transitory computer-readable medium according to Example 15, wherein determining the set of candidate trajectories based on the sensor data includes:

[0190] Generating homotopy data based on the sensor data that indicates one or more candidate homotopies from a first location associated with route data to a second location; and

[0191] Generating the set of candidate trajectories based on the homotopy data, wherein the set of candidate trajectories is constrained by the one or more candidate homotopies.

[0192] Example 17. The non-transitory computer-readable medium according to any one of Examples 15 to 16, the non-transitory computer-readable medium includes:

[0193] Generating a homotopy score for the one or more candidate homotopies based on the human-driven trajectory and the trajectory score; and

[0194] Including the homotopy score in the output.

[0195] Example 18. The non-transitory computer-readable medium according to any one of Examples 15 to 17, the non-transitory computer-readable medium includes: updating a selector model for selecting a future trajectory from a set of future candidate trajectories based on the output.

[0196] Example 19. The non-transitory computer-readable medium according to Example 18, wherein updating the selector model includes updating a homotopy model for generating and / or selecting one or more future homotopies based on the output.

[0197] Example 20. The non-transitory computer-readable medium according to Example 19, the non-transitory computer-readable medium further includes: selecting one or more future homotopies based on the homotopy model.

[0198] Example 21. The non-transitory computer-readable medium according to any one of Examples 15 to 20, the non-transitory computer-readable medium further includes:

[0199] Constructing one or more trajectory score cost functions based on the homotopy score; and

[0200] Updating a trajectory score model based on the one or more trajectory score cost functions.

[0201] In the foregoing description, aspects and embodiments of the present disclosure have been described with reference to numerous specific details, which may vary according to implementation. Accordingly, the specification and drawings are to be regarded as illustrative rather than restrictive in nature. The sole and exclusive indication of the scope of the invention, and what the applicant desires to be the scope of the invention, is the literal and equivalent scope of the claims that are issued from this application in the specific form of the issued claims, including any subsequent amendments. Any definition of terms expressly set forth herein for inclusion in such claims shall govern the meaning of such terms as used in the claims. Additionally, when the term "further comprises" is used in the foregoing specification or the appended claims, the recitation following that phrase may be additional steps or entities, or sub-steps / sub-entities of the previously recited steps or entities.

[0202] A non-transitory computer-readable medium is disclosed that includes instructions stored thereon that, when executed by at least one processor, cause the at least one processor to perform one or more operations in accordance with one or more of the methods disclosed herein.

Claims

1. A method, comprising: obtaining, by at least one processor, sensor data associated with an environment in which a vehicle operates; determining, by the at least one processor, a set of candidate trajectories based on the sensor data; determining, by the at least one processor, a human driving trajectory based on the sensor data; generating, by the at least one processor, a trajectory score for one or more corresponding candidate trajectories in the set of candidate trajectories based on the human driving trajectory; and causing, by the at least one processor, an output to be provided to a device based on the trajectory scores associated with the one or more corresponding candidate trajectories, wherein the output comprises one or more of the following: the human driving trajectory, the one or more candidate trajectories, and one or more trajectory scores.

2. The method according to claim 1, wherein, Determining the set of candidate trajectories based on the sensor data comprises: generating, based on the sensor data, homotopy data indicative of one or more candidate homotopies from a first location associated with route data to a second location; and generating, by the at least one processor, the set of candidate trajectories based on the homotopy data, wherein the set of candidate trajectories is constrained by the one or more candidate homotopies.

3. The method according to claim 2, the method comprising: generating, by the at least one processor, a homotopy score for the one or more candidate homotopies based on the human driving trajectory and the trajectory scores; and including, by the at least one processor, the homotopy score in the output.

4. The method according to any one of the preceding claims, the method comprising: Updating the selector model by the at least one processor based on the output.

5. The method according to claim 4, wherein Updating the selector model includes updating a homotopy model for generating and / or selecting one or more future homotopies based on the output.

6. The method according to claim 5 further comprises: Selecting, by the at least one processor, one or more future homotopies based on the homotopy model.

7. The method according to any one of the preceding claims, further comprising: constructing, by the at least one processor, one or more trajectory score cost functions based on the homotopy scores; and updating, by the at least one processor, a trajectory score model based on the one or more trajectory score cost functions.

8. A system, comprising: at least one processor; and at least one non-transitory computer-readable medium storing instructions that, when executed by the at least one processor, cause the at least one processor to perform operations, the operations including: obtaining sensor data associated with an environment in which a vehicle operates; determining a set of candidate trajectories based on the sensor data; determining a human driving trajectory based on the sensor data; generating a trajectory score for one or more candidate trajectories in the set of candidate trajectories based on the human driving trajectory; and Cause an output to be provided to a device based on a trajectory score associated with the one or more candidate trajectories, where the output includes one or more of the following: the human-driven trajectory, the one or more candidate trajectories, and one or more trajectory scores.

9. The system according to claim 8, wherein, Determining the set of candidate trajectories based on the sensor data includes: Generating homotopy data based on the sensor data that indicates one or more candidate homotopies from a first location associated with route data to a second location; and Generating the set of candidate trajectories based on the homotopy data, where the set of candidate trajectories is constrained by the one or more candidate homotopies.

10. The system according to any one of claims 8 to 9, the operation includes: Generating a homotopy score for the one or more candidate homotopies based on the human-driven trajectory and the trajectory score; And Including the homotopy score in the output.

11. The system according to any one of claims 8 to 10, wherein the operation comprises: Updating a selector model for selecting future trajectories from a set of future candidate trajectories based on the output.

12. The system according to claim 11, wherein, Updating the selector model includes updating a homotopy model for generating and / or selecting one or more future homotopies based on the output.

13. The system according to claim 12, wherein the operation further comprises: Selecting one or more future homotopies based on the homotopy model.

14. The system according to any one of claims 8 to 13, the operation further includes: Constructing one or more trajectory score cost functions based on the homotopy score; And Updating a trajectory score model based on the one or more trajectory score cost functions.

15. A non-transitory computer-readable medium, which includes instructions stored thereon, the instructions when executed by at least one processor cause the at least one processor to perform operations, the operations include: Obtaining sensor data associated with the environment of the vehicle operation; Determining a set of candidate trajectories based on the sensor data; Determining a human-driven trajectory based on the sensor data; Generating a trajectory score for one or more candidate trajectories in the set of candidate trajectories based on the human-driven trajectory; And Causing an output to be provided based on a trajectory score associated with the one or more candidate trajectories, where the output includes one or more of the following: the human-driven trajectory, the one or more candidate trajectories, and one or more trajectory scores.

16. The non-transitory computer-readable medium according to claim 15, wherein, Determining the set of candidate trajectories based on the sensor data includes: Generating homotopy data based on the sensor data that indicates one or more candidate homotopies from a first location associated with route data to a second location; and Generating the set of candidate trajectories based on the homotopy data, where the set of candidate trajectories is constrained by the one or more candidate homotopies.

17. The non-transitory computer-readable medium according to claim 16, the non-transitory computer-readable medium includes: Generating a homotopy score for the one or more candidate homotopies based on the human-driven trajectory and the trajectory score; And Including the homotopy score in the output.

18. The non-transitory computer-readable medium according to any one of claims 15 to 17, the non-transitory computer-readable medium comprising: Update a selector model for selecting a future trajectory from a set of future candidate trajectories based on the output.

19. The non-transitory computer-readable medium according to claim 18, wherein, Updating the selector model includes updating a homotopy model for generating and / or selecting one or more future homotopies based on the output.

20. The non-transitory computer-readable medium according to claim 19, wherein the non-transitory computer-readable medium further comprises: Select one or more future homotopies based on the homotopy model.

Citation Information

Cited By

  • Self-vehicle driving control method and device, electronic equipment and storage medium

    CN121341228A