Safety filter for machine learning planner

By introducing a security filter into the machine learning planner, using safety parameters and security checks to filter unsafe trajectories, the problem of unsafe trajectory selection in the prior art is solved, and the trajectory safety and computing efficiency are improved.

CN119562914APending Publication Date: 2025-03-04MOTIONAL AD LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380054160.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-05-19
Filing Date
2023-05-19
Publication Date
2025-03-04

AI Technical Summary

Technical Problem

The prior art is difficult to effectively evaluate and exclude unsafe trajectories when selecting the trajectory of a vehicle, especially in complex environments, which may lead to safety risks.

Method used

Using security filters, multiple trajectories are generated through a machine learning planner, and security parameters and security checks are applied to these trajectories, including predefined assumptions and trajectory modifiers, to identify and filter unsafe trajectory.

Benefits of technology

Improves the security of the preferred trajectories determined by the machine learning planner, reduces the consumption of computing resources, and reduces the possibility of choosing an unsafe trajectory.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119562914A_ABST
    Figure CN119562914A_ABST
Patent Text Reader

Abstract

A method for a security filter for a machine learning planner is provided. An example method may include applying a plurality of safety parameters to a plurality of trajectories generated for an autonomous vehicle; determining whether the plurality of trajectories are unsafe based at least on applying the plurality of safety parameters to the plurality of trajectories; based at least on the determination that the trajectory is unsafe, the trajectory is filtered from the plurality of trajectories, and a remaining trajectory from the plurality of trajectories is provided to a machine learning model trained to generate a score for selecting a selected trajectory for the vehicle from the remaining trajectory. A system and a computer program product are also provided.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to U.S. Provisional Application No. 63 / 343,948, filed on May 19, 2022, entitled “Safety Filter for Machine Learning Planners,” the entire contents of which are incorporated herein by reference. Background Art

[0003] Typically, a vehicle moves along a trajectory. When obstacles such as other vehicles are detected along the trajectory, a system can be used to evaluate multiple trajectories and select a preferred trajectory for the vehicle. Considering a very large number of possible trajectories is computationally expensive, inefficient, and slow, especially in complex environments. Furthermore, in some instances, the selected preferred trajectory may still be considered unsafe. BRIEF DESCRIPTION OF THE DRAWINGS

[0004] Figure 1 is an example environment in which a vehicle including one or more components of an autonomous system may be implemented;

[0005] Figure 2 is a diagram of one or more systems of a vehicle including an autonomous system;

[0006] Figure 3 yes Figure 1 and Figure 2 a diagram of one or more devices and / or components of one or more systems;

[0007] Figure 4 is a diagram of some components of an autonomous system;

[0008] Figure 5 is a diagram of an example planning system;

[0009] Figure 6 is a diagram of an example workflow for determining a trajectory for a vehicle;

[0010] 7A to 7C is a diagram illustrating an example implementation of a security filter; and

[0011] Figure 8 is a flow chart of a process for implementing a safety filter for a machine learning planner. DETAILED DESCRIPTION

[0012] In the following description, for the purpose of explanation, many 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 can be implemented without these specific details. In some instances, well-known configurations and devices are illustrated in block diagram form to avoid unnecessarily obscuring aspects of the present disclosure.

[0013] In the accompanying drawings, for ease of description, the specific arrangement or order of schematic elements (such as those representing systems, devices, modules, instruction blocks and / or data elements, etc.) is illustrated. However, those skilled in the art will understand that, unless explicitly described, the specific order or arrangement of schematic elements in the accompanying drawings is not intended to mean that a specific processing order or sequence, or separation of processing is required. In addition, unless explicitly described, the inclusion of schematic elements in the accompanying drawings is not intended to mean that such elements are required in all embodiments, nor is it intended to mean that the features represented by such elements cannot be included in some embodiments or cannot be combined with other elements in some embodiments.

[0014] In addition, in the accompanying drawings, connecting elements (such as solid or dotted lines or arrows, etc.) are used to illustrate the connection, relationship or association between or among two or more other schematic elements, and the absence of any such connecting elements is not intended to mean that there can be no connection, relationship or association. In other words, some connections, relationships or associations between elements are not illustrated in the accompanying drawings so as not to obscure the present disclosure. In addition, for ease of illustration, a single connecting element can be used to represent multiple connections, relationships or associations between elements. For example, if the connecting element represents the communication of a signal, data or instruction (e.g., "software instruction"), it will be understood by those skilled in the art that such an element can represent one or more than one signal path (e.g., bus) that may be needed to affect the communication.

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

[0016] The terms used in the specification of the various embodiments described herein are included only for the purpose of describing specific embodiments and are not intended to be limiting. As used in the specification of the various embodiments described and the appended claims, the singular forms "a", "an" and "the" are also intended to include plural forms and can be used interchangeably with "one or more than one" or "at least one", unless the context clearly indicates otherwise. It will also be understood that the term "and / or" as used herein refers to and includes any and all possible combinations of one or more than one of the associated listed items. It will also be understood that when the terms "include", "comprise", "have" and / or "have" are used in this specification, the stated features, integers, steps, operations, elements and / or components are specifically stated, but the presence or addition of one or more than one other features, integers, steps, operations, elements, components and / or groups thereof are not excluded.

[0017] As used herein, the terms "communication" and "communicating" refer to at least one of receiving, receiving, transmitting, transmitting 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) to communicate with another unit, this means that the unit is able to directly or indirectly receive information from the other unit and / or send (e.g., transmit) information to the other unit. This can refer to a direct or indirect connection that is wired and / or wireless in nature. In addition, even if the transmitted information can be modified, processed, relayed and / or routed between the first unit and the second unit, the two units can communicate with each other. For example, even if the first unit passively receives information and does not actively transmit information to the second unit, the first unit can communicate with the second unit. As another example, if at least one intermediary 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 (eg, a data packet, etc.) that includes data.

[0018] As used herein, the term "if" is optionally interpreted to mean "when," "at," "in response to being determined to be," and / or "in response to being detected," etc., depending on the context. Similarly, the phrases "if it is determined" or "if [the stated condition or event] is detected" are optionally interpreted to mean "when determining," "in response to being determined to be" or "when [the stated condition or event] is detected," and / or "in response to being detected," etc., depending on the context. In addition, as used herein, the terms "have," "have," or "possess," etc. are intended to be open-ended terms. Furthermore, unless expressly stated otherwise, the phrase "based on" is intended to mean "based at least in part on."

[0019] Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the various embodiments described. However, it will be apparent to one of ordinary skill in the art that the various embodiments described may be implemented without these specific details. In other cases, well-known methods, processes, components, circuits, and networks have not yet been described in detail in order not to unnecessarily obscure aspects of the embodiments.

[0020] General Overview

[0021] In some aspects and / or embodiments, the systems, methods, and computer program products described herein include and / or implement a safety filter for use with a planner, such as a machine learning-based planner, that implements a machine learning model or other model for selecting a trajectory for a vehicle. The safety filter can identify generated trajectories that are considered unsafe. For example, the safety filter can filter out trajectories that are considered unsafe from a plurality of generated trajectories, such as trajectories where the trajectories fail to pass a safety check, etc. The safety check can involve applying a set of world assumptions for predicting the behavior of vehicles other than the monitored vehicle, a set of trajectory modifiers applied to the current trajectory of the monitored vehicle, and / or a set of safety checks passed by the modified vehicle trajectory.

[0022] By means of implementation of the systems, methods, and computer program products described herein, techniques for implementing safety filters, such as for machine learning planners, improve the safety of preferred trajectories determined by a machine learning planner (or other model) by utilizing the machine learning planner, for example, to filter out unsafe candidate trajectories for consideration. For example, the safety filter can filter out unsafe trajectories from a plurality of generated trajectories, rather than projecting the output trajectory to an ad-hoc set of trajectories, where projecting the output trajectory to an ad-hoc set of trajectories can be complex and computationally expensive. Thus, the computational resources consumed by an autonomous system of an autonomous vehicle in planning the operation of the autonomous vehicle through an environment can be reduced, for example, by reducing the set of generated trajectories from which the machine learning planner selects a preferred trajectory for the vehicle. The safety filter can additionally and / or alternatively be lightweight, thereby further reducing the computational resources required to select a safe and preferred trajectory for the vehicle. The safety filter can additionally and / or alternatively use a trajectory modifier to efficiently implement recursive safety analysis with minimal assumptions and checks, and / or without compromising comfort. This can improve the safety of the preferred trajectory determined by a machine learning planner or other model.

[0023] In addition, in some instances, machine learning planners often lack sufficient training data and training time and / or have limited capacity, which makes it impossible for such planners to always accurately select safe trajectories for vehicles. Safety filters can reduce the likelihood that unsafe trajectories will ultimately be selected for vehicles by, for example, filtering the set of generated trajectories to remove unsafe trajectories before the planner selects a preferred trajectory. In some embodiments, the safety filters described herein can also incorporate expert knowledge about driving rules that the planner should always follow, thereby further reducing the likelihood that the planner will select an unsafe trajectory.

[0024] Reference now Figure 1 , illustrates an example environment 100 in which vehicles including autonomous systems and vehicles not including autonomous systems operate. As illustrated, the environment 100 includes vehicles 102a-102n, objects 104a-104n, routes 106a-106n, areas 108, vehicle-to-infrastructure (V2I) devices 110, networks 112, remote autonomous vehicle (AV) systems 114, fleet management systems 116, V2I systems 118, and (with respect to Figure 59 ) security filter 504. The vehicles 102a-102n, the vehicle-to-infrastructure (V2I) devices 110, the network 112, the autonomous vehicle (AV) system 114, the fleet management system 116, the V2I system 118, and the security filter 504 are interconnected (e.g., establish a connection for communication, etc.) via a wired connection, a wireless connection, or a combination of wired or wireless connections. In some embodiments, the objects 104a-104n are interconnected with at least one of the vehicles 102a-102n, the vehicle-to-infrastructure (V2I) devices 110, the network 112, the autonomous vehicle (AV) system 114, the fleet management system 116, the V2I system 118, and the security filter 504 via a wired connection, a wireless connection, or a combination of wired or wireless connections.

[0025] Vehicles 102a-102n (individually referred to as vehicles 102 and collectively referred to as vehicles 102) include at least one device configured to transport goods and / or people. In some embodiments, vehicles 102 are configured to communicate with V2I devices 110, remote AV systems 114, queue management systems 116, V2I systems 118, and / or security filters 504 via network 112. In some embodiments, vehicles 102 include cars, buses, trucks, and / or trains, etc. In some embodiments, vehicles 102 are similar to vehicles 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, vehicles 102 travel along respective routes 106a-106n (individually referred to as routes 106 and collectively referred to as routes 106) as described herein. In some embodiments, one or more vehicles 102 include an autonomous system (e.g., an autonomous system that is the same as or similar to autonomous system 202).

[0026] Objects 104a-104n (individually referred to as objects 104 and collectively referred to as objects 104) include, for example, at least one vehicle, at least one pedestrian, at least one cyclist, and / or at least one structure (e.g., a building, a sign, a fire hydrant, etc.), etc. Each object 104 is stationary (e.g., located at a fixed location and over a period of time) or moves (e.g., has a speed and is associated with at least one trajectory). In some embodiments, objects 104 are associated with corresponding locations in area 108.

[0027] Routes 106a-106n (individually referred to as routes 106 and collectively referred to as routes 106) are each associated with (e.g., specify a series of actions (also referred to as trajectories) connecting states along which the AV can navigate. Each route 106 begins at an initial state (e.g., a state corresponding to a first spatiotemporal location and / or speed, etc.) and ends at a final target state (e.g., a state corresponding to a second spatiotemporal location different from the first spatiotemporal location) or a target zone (e.g., a subspace of acceptable states (e.g., terminal states)). In some embodiments, the first state includes a location where one or more individuals will board the AV, and the second state or zone includes one or more locations where one or more individuals boarding the AV will disembark. In some embodiments, routes 106 include multiple acceptable state sequences (e.g., multiple spatiotemporal location sequences) that are associated with (e.g., define multiple trajectories). In an example, routes 106 include only high-level actions or imprecise state locations, such as a series of connecting roads indicating a change of direction at a roadway intersection, etc. Additionally or alternatively, the route 106 may include more precise actions or states, such as, for example, specific target lanes or precise locations within lane regions and target speeds at those locations, etc. In an example, the route 106 includes a plurality of precise state sequences along at least one high-level action with a limited look-ahead horizon to an intermediate target, wherein a combination of consecutive iterations of the limited horizon state sequences cumulatively correspond to a plurality of trajectories that collectively form a high-level route terminating at a final target state or region.

[0028] The area 108 includes a physical area (e.g., a geographic region) in which the vehicle 102 can navigate. In an example, the area 108 includes at least one state (e.g., a country, a province, a separate state of a plurality of states included in a country, etc.), at least a portion of a state, at least one city, at least a portion of a city, etc. In some embodiments, the area 108 includes at least one named thoroughfare (referred to herein as a "road"), such as a highway, an interstate highway, a parkway, a city street, etc. Additionally or alternatively, in some examples, the area 108 includes at least one unnamed road, such as a driveway, a section of a parking lot, a section of an open space and / or undeveloped area, a dirt road, etc. In some embodiments, the road includes at least one lane (e.g., a portion of the road that the vehicle 102 can traverse). In an example, the road includes at least one lane associated with (e.g., identified based on) at least one lane marking line.

[0029] The 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 the vehicle 102 and / or the V2I system 118. In some embodiments, the V2I device 110 is configured to communicate with the vehicle 102, the remote AV system 114, the queue management system 116, and / or the V2I system 118 via the network 112. In some embodiments, the 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), lane markings, street lights, parking meters, etc. In some embodiments, the V2I device 110 is configured to communicate directly with the vehicle 102. Additionally or alternatively, in some embodiments, the V2I device 110 is configured to communicate with the vehicle 102, the remote AV system 114, and / or the fleet management system 116 via the V2I system 118. In some embodiments, the V2I device 110 is configured to communicate with the V2I system 118 via the network 112.

[0030] The network 112 includes one or more wired and / or wireless networks. In an example, the network 112 includes a cellular network (e.g., a long-term evolution (LTE) network, a third generation (3G) network, a fourth generation (4G) network, a fifth generation (5G) network, a code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., a public switched telephone network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber-based network, a cloud computing network, etc., and / or a combination of some or all of these networks, etc.

[0031] 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 fleet 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 fleet 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.

[0032] The queue management system 116 includes at least one device configured to communicate with the vehicles 102, the V2I devices 110, the remote AV system 114, and / or the V2I system 118. In an example, the queue management system 116 includes a server, a server group, and / or other similar devices. In some embodiments, the queue management system 116 is associated with a 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.).

[0033] In some embodiments, the V2I system 118 includes at least one device configured to communicate with the vehicle 102, the V2I device 110, the remote AV system 114, and / or the fleet management system 116 via the network 112. In some examples, the V2I system 118 is configured to communicate with the V2I device 110 via a connection other than the network 112. In some embodiments, the V2I system 118 includes a server, a server group, and / or other similar devices. In some embodiments, the V2I system 118 is associated with a municipality or a private agency (e.g., a private agency for maintaining the V2I device 110, etc.).

[0034] supply Figure 1 The number and arrangement of elements illustrated are examples. Figure 1 There may be additional elements, fewer elements, different elements, and / or differently arranged elements than those illustrated. Additionally or alternatively, at least one element of environment 100 may be described as being Figure 1 Additionally or alternatively, at least one set of elements of environment 100 may perform one or more functions described as being performed by at least one different set of elements of environment 100.

[0035] Reference now Figure 2 , vehicle 200 (which can be Figure 1 102) includes or is associated with autonomous system 202, powertrain control system 204, steering control system 206, and braking system 208. In some embodiments, vehicle 200 is similar to vehicle 102 (see Figure 1). In some embodiments, the autonomous system 202 is configured to give the vehicle 200 autonomous driving capabilities (e.g., implementing at least one of the following driving automatic or maneuvering-based functions, features, and / or devices, etc., which enable the vehicle 200 to partially or completely operate without human intervention, including but not limited to fully autonomous vehicles (e.g., vehicles that abandon reliance on human intervention, such as Level 5 ADS operating vehicles, etc.), highly autonomous vehicles (e.g., vehicles that abandon reliance on human intervention in certain situations, such as Level 4 ADS operating vehicles, etc.), and / or conditionally autonomous vehicles (e.g., vehicles that abandon reliance on human intervention in limited situations, such as Level 3 ADS operating vehicles, etc.). Vehicles, etc.). In one embodiment, the autonomous system 202 includes the operational or tactical functions required to enable the vehicle 200 to operate in road traffic and continuously perform part or all of the dynamic driving tasks (DDT). In another embodiment, the autonomous system 202 includes an advanced driver assistance system (ADAS) including driver support features. The autonomous system 202 supports various levels of driving automation ranging from no driving automation (e.g., level 0) to full driving automation (e.g., level 5). For a detailed description of fully autonomous vehicles and highly autonomous vehicles, reference may be made to SAE International Standard J3016: Taxonomy and Definitions for Terms Related to On-Road Motor Vehicle Automated Driving Systems, the entire contents of which are incorporated by reference. In some embodiments, the vehicle 200 is associated with an autonomous queue manager and / or a ride-sharing company.

[0036] Autonomous system 202 includes a sensor suite that includes one or more devices such as camera 202a, LiDAR sensor 202b, Radar sensor 202c, and microphone 202d. In some embodiments, 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 that vehicle 200 has traveled, etc.). In some embodiments, autonomous system 202 uses one or more devices included in autonomous system 202 to generate data associated with environment 100 described herein. Data generated by one or more devices of autonomous system 202 can be used by one or more systems described herein to observe the environment (e.g., environment 100) in which vehicle 200 is located. In some embodiments, autonomous system 202 includes communication device 202e, autonomous vehicle computing 202f, drive-by-wire (DBW) system 202h, and safety controller 202g.

[0037] The camera 202a includes a communication device 202e, an autonomous vehicle computer 202f, and / or a safety controller 202g configured to communicate with the communication device 202e via a bus (e.g., Figure 3 The camera 202a includes at least one device for communicating with the autonomous vehicle computing 202f (e.g., an image processing unit 202a, a bus ... Figure 1In some embodiments, the autonomous vehicle computing 202f determines a depth to one or more objects in a field of view of at least two of the plurality of cameras based on image data from the at least two cameras. In some embodiments, the camera 202a is configured to capture images of objects within a distance relative to the camera 202a (e.g., up to 100 meters and / or up to 1 kilometer, etc.). Thus, the camera 202a includes features such as sensors and lenses that are optimized for sensing objects at one or more distances relative to the camera 202a.

[0038] In an embodiment, the camera 202a includes at least one camera configured to capture one or more images associated with one or more traffic lights, street signs, and / or other physical objects that provide visual navigation information. In some embodiments, the camera 202a generates traffic light data associated with the one or more images. In some examples, the 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, the camera 202a that generates TLD data differs from other systems incorporating cameras described herein in that the camera 202a may include one or more cameras with a wide field of view (e.g., a wide-angle lens, a fisheye lens, and / or a lens with a viewing angle of approximately 120 degrees or greater, etc.) to generate images related to as many physical objects as possible.

[0039] The light detection and ranging (LiDAR) sensor 202b includes a communication device 202e, an autonomous vehicle computing device 202f, and / or a safety controller 202g via a bus (e.g., Figure 3The LiDAR sensor 202b includes at least one device that communicates with a bus (the same or similar bus as the bus 302 of the embodiment of the present invention). The LiDAR sensor 202b includes a system configured to emit light from a light emitter (e.g., a laser emitter). The light emitted by the LiDAR sensor 202b includes light outside the visible spectrum (e.g., infrared light, etc.). In some embodiments, during operation, the light emitted by the LiDAR sensor 202b encounters a physical object (e.g., a vehicle) and is reflected back to the LiDAR sensor 202b. In some embodiments, the light emitted by the LiDAR sensor 202b does not penetrate the physical object encountered by the light. The LiDAR sensor 202b also includes at least one light detector that detects the light emitted from the light emitter after encountering the physical object. In some embodiments, at least one data processing system associated with the LiDAR sensor 202b generates an image (e.g., a point cloud and / or a combined point cloud, etc.) representing objects included in the field of view of the LiDAR sensor 202b. In some examples, at least one data processing system associated with the LiDAR sensor 202b generates an image representing the boundaries of the physical object and / or the surface of the physical object (e.g., the topology of the surface), etc. In such examples, the image is used to determine the boundaries of the physical object in the field of view of the LiDAR sensor 202b.

[0040] The radio detection and ranging (Radar) sensor 202c includes a sensor configured to communicate with the communication device 202e, the autonomous vehicle computing device 202f, and / or the safety controller 202g via a bus (e.g., Figure 3 At least one device for communicating with a bus (same or similar bus as bus 302 of the embodiment of the present invention). Radar sensor 202c includes a system configured to transmit (pulsed or continuous) radio waves. The radio waves transmitted by Radar sensor 202c include radio waves within a predetermined spectrum. In some embodiments, during operation, the radio waves transmitted by Radar sensor 202c encounter physical objects and are reflected back to Radar sensor 202c. In some embodiments, the radio waves transmitted by Radar sensor 202c are not reflected by some objects. In some embodiments, at least one data processing system associated with Radar sensor 202c generates a signal representing an object included in the field of view of Radar sensor 202c. For example, at least one data processing system associated with 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 a physical object in the field of view of Radar sensor 202c.

[0041] The microphone 202d includes a microphone configured to communicate with the communication device 202e, the autonomous vehicle computing device 202f, and / or the safety controller 202g via a bus (e.g., Figure 3 At least one device for communicating with the vehicle 200 (the same or similar bus as bus 302 of FIG. 1 ). 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, microphone 202d includes a transducer device and / or the like. In some embodiments, one or more systems described herein can receive the data generated by microphone 202d and determine the position (e.g., distance, etc.) of an object relative to vehicle 200 based on an audio signal associated with the data.

[0042] 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 drive-by-wire (DBW) system 202h. For example, the communication device 202e may include at least one device configured to communicate with the camera 202a, the LiDAR sensor 202b, the Radar sensor 202c, the microphone 202d, the autonomous vehicle computing 202f, the safety controller 202g, and / or the drive-by-wire (DBW) system 202h. Figure 3 The communication device 202e may be a device that is the same as or similar to the communication interface 314 of the vehicle. In some embodiments, the communication device 202e includes a vehicle-to-vehicle (V2V) communication device (eg, a device for enabling wireless communication of data between vehicles).

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

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

[0045] 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 (e.g., electrical controllers and / or electromechanical controllers, etc.) configured to generate and / or transmit control signals to operate one or more devices of the vehicle 200 (e.g., powertrain control system 204, steering control system 206, and / or 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 (e.g., turn signal lights, headlights, door locks, and / or windshield wipers, etc.).

[0046] 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 make longitudinal vehicle movements such as starting to move forward, stopping to move forward, starting to move backward, stopping to move backward, accelerating in a certain direction, decelerating in a certain direction, etc., or to make lateral vehicle movements such as turning left and / or turning right. In an example, the powertrain control system 204 increases, maintains the same, or decreases the energy (e.g., fuel and / or electricity, etc.) provided to the motor of the vehicle, thereby rotating or not rotating at least one wheel of the vehicle 200.

[0047] 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 the two front wheels and / or the two rear wheels of the vehicle 200 to the left or right to turn the vehicle 200 left or right. In other words, the steering control system 206 causes the activities necessary to adjust the y-axis component of the vehicle's motion.

[0048] Braking system 208 includes at least one device configured to actuate one or more brakes to decelerate and / or hold vehicle 200 stationary. In some examples, braking system 208 includes at least one controller and / or actuator configured to cause one or more calipers associated with one or more wheels of vehicle 200 to close on respective rotors of vehicle 200. Additionally or alternatively, in some examples, braking system 208 includes an automatic emergency braking (AEB) system and / or a regenerative braking system, etc. In other words, steering control system 206 causes the activity required to regulate the y-axis component of vehicle motion.

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

[0050] Reference now 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); and / or one or more devices of network 112 (e.g., one or more devices of a system of network 112). In some embodiments, one or more devices of vehicle 102 (e.g., one or more devices of a system of vehicle 102), and / or one or more devices of network 112 (e.g., one or more devices of a system of network 112) include at least one device 300 and / or at least one component of device 300. As Figure 3 As shown, apparatus 300 includes a bus 302 , a processor 304 , a memory 306 , a storage component 308 , an input interface 310 , an output interface 312 , and a communication interface 314 .

[0051] The bus 302 includes components that permit communication between components of the device 300. In some cases, the 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.). The memory 306 includes a random access memory (RAM), a read-only memory (ROM), and / or another type of dynamic and / or static storage device (e.g., flash memory, magnetic memory, and / or optical memory, etc.) that stores data and / or instructions for use by the processor 304.

[0052] 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 disk (CD), a digital versatile disk (DVD), a floppy disk, a cassette, a 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.

[0053] The input interface 310 includes components that permit the device 300 to receive information, such as via user input (e.g., a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, a microphone, and / or a camera, etc.). Additionally or alternatively, in some embodiments, the input interface 310 includes a sensor for sensing information (e.g., a global positioning system (GPS) receiver, an accelerometer, a gyroscope, and / or an actuator, etc.). The output interface 312 includes components for providing output information from the device 300 (e.g., a display, a speaker, and / or one or more light emitting diodes (LEDs), etc.).

[0054] In some embodiments, communication interface 314 includes a transceiver-like component (e.g., a transceiver and / or a separate receiver and transmitter, etc.) that permits 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, communication interface 314 permits device 300 to receive information from another device and / or provide information to another device. In some examples, communication interface 314 includes an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, interface and / or cellular network interface, etc.

[0055] In some embodiments, the device 300 performs one or more processes described herein. The device 300 performs these processes based on the processor 304 executing software instructions stored by a computer-readable medium such as a memory 306 and / or a storage component 308. Computer-readable media (e.g., non-transitory computer-readable media) are defined herein as non-transitory memory devices. Non-transitory memory devices include storage space located within a single physical storage device or storage space distributed across multiple physical storage devices.

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

[0057] The memory 306 and / or the storage component 308 include a data storage unit or at least one data structure (e.g., a database, etc.). The device 300 can receive information from the data storage unit or at least one data structure in the memory 306 or the storage component 308, store information in the data storage unit or at least one data structure, communicate information to the data storage unit or at least one data structure, or search for information stored in the data storage unit or at least one data structure. In some examples, the information includes network data, input data, output data, or any combination thereof.

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

[0059] supply Figure 3 The number and arrangement of components illustrated are examples. Figure 3 The device 300 may include additional components, fewer components, different components, or differently arranged components than those illustrated. Additionally or alternatively, a set of components (e.g., one or more components) of the device 300 may perform one or more functions described as being performed by another component or set of components of the device 300.

[0060] Reference now Figure 4, illustrates an example block diagram of an autonomous vehicle computing 400 (sometimes referred to as an "AV stack"). 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 a 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 that are the same or similar to the autonomous vehicle computing 400, etc.). In some examples, the perception system 402, planning system 404, positioning system 406, control system 408, and database 410 are included in one or more independent systems located in the vehicle and / or at least one remote system as described herein. In some embodiments, any and / or all of the systems included in the autonomous vehicle computing 400 are implemented in software (e.g., software instructions stored in a memory), computer hardware (e.g., by a microprocessor, microcontroller, application specific integrated circuit (ASIC) and / or 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 a remote system (e.g., an autonomous vehicle system that is the same or similar to the remote AV system 114, a fleet management system 116 that is the same or similar to the fleet management system 116, and / or a V2I system that is the same or similar to the V2I system 118, etc.).

[0061] 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 (e.g., representing) one or more physical objects within the field of view of the at least one camera. In such examples, the perception system 402 classifies the at least one physical object based on one or more groups of physical objects (e.g., bicycles, vehicles, traffic signs, and / or pedestrians, etc.). In some embodiments, based on the classification of the physical object by the perception system 402, the perception system 402 transmits data associated with the classification of the physical object to the planning system 404.

[0062] 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 (e.g., data associated with the classification of physical objects described above) from the perception system 402, 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 101 in traffic on the road. 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 rate, acceleration, deceleration, etc. In some embodiments, the planning system 404 receives data associated with an 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. The planning system 404 may additionally and / or alternatively receive information related to the location of the vehicle 102, pedestrians near the vehicle 102 or along the trajectory of the vehicle 102, the route of the vehicle 102, or other vehicles along the route or near the vehicle 102, etc.

[0063] In some embodiments, planning system 404 may receive a plurality of candidate trajectories as input and may provide a preferred trajectory for a vehicle as output. Additionally and / or alternatively, planning system 404 may generate a plurality of candidate trajectories and may provide a preferred trajectory for a vehicle as output. Additionally and / or alternatively, planning system 404 may receive a filtered plurality of candidate trajectories generated by a safety filter. Planning system 404 may provide a preferred trajectory as output based on the received set of filtered candidate trajectories.

[0064] Figure 5 An example of a planning system 404 is schematically depicted. Figure 5 As shown, planning system 404 includes trajectory generator 502, safety filter 504, and a planner such as machine learning (ML) planner 506. Trajectory generator 502, safety filter 504, and / or ML planner 506 can be included in autonomous vehicle computing 400 (e.g., via planning system 404), and / or can be implemented separately as part of one or more systems described with respect to environment 100, etc. Planning system 404 can generate multiple candidate trajectories (e.g., via trajectory generator 502), filter the multiple candidate trajectories (e.g., via safety filter 504), and select a preferred trajectory from the filtered multiple candidate trajectories (e.g., via ML planner 506). Although planning system 404 is depicted as including trajectory generator 502, safety filter 504, and ML planner 506, planning system 404 can include only ML planner 506. In such an embodiment, planning system 404 receives the filtered plurality of trajectories from separate safety filter 504 and selects a preferred trajectory for vehicle 102. In other embodiments, planning system 404 may include only safety filter 504 and ML planner 506. In such an embodiment, planning system 404 receives the generated plurality of candidate trajectories from separate trajectory generator 502.

[0065] In some embodiments, the ML planner 506 may be implemented as a 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, at least one transformer, at least one inverse reinforcement learning (IRL) model, at least one suggestion and selection model, and / or at least one classification-based model or planner, etc.). The ML planner 506 may include a machine learning model that is trained to generate scores for candidate trajectories (such as trajectories from a plurality of generated candidate trajectories and / or trajectories from a plurality of filtered candidate trajectories, etc.). Based on the generated scores, the ML planner 506 or other parts of the planning system 404 may select a preferred trajectory for the vehicle 102. The machine learning model of the ML planner 506 may be trained based on data from the perception system 402, the database 410, the positioning system 406, and / or the control system 408 (such as data associated with the vehicle 102, the trajectory of the vehicle 102, and the environment in which the vehicle 102 is traveling, etc.).

[0066] In some embodiments, the positioning system 406 receives data associated with (e.g., representing) a location of a vehicle (e.g., vehicle 102) in an area. In some examples, 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 some 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 each point cloud. In these examples, the positioning system 406 compares the at least one point cloud or the combined point cloud with a two-dimensional (2D) and / or three-dimensional (3D) map of the area stored in the database 410. Then, based on the positioning system 406 comparing the at least one point cloud or the 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 before 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 road network connectivity, a map describing the physical properties of the roadway (such as traffic speed, traffic volume, 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 types of other driving lights, etc.). In some embodiments, the map is generated in real time based on data received by the perception system.

[0067] In another example, positioning system 406 receives global navigation satellite system (GNSS) data generated by a global positioning system (GPS) receiver. In some examples, positioning system 406 receives GNSS data associated with a location of a vehicle in an area, and positioning system 406 determines the latitude and longitude of the vehicle in the area. In such an example, positioning system 406 determines the position of the vehicle in the area based on the latitude and longitude of the vehicle. In some embodiments, positioning system 406 generates data associated with the position of the vehicle. In some examples, based on the location of the vehicle determined by positioning system 406, positioning system 406 generates data associated with the position of the vehicle. In such an example, the data associated with the position of the vehicle include data associated with one or more semantic properties corresponding to the position of the vehicle.

[0068] In some embodiments, the control system 408 receives data associated with at least one trajectory from the planning system 404, and the control system 408 controls the operation of the vehicle. In some examples, the control system 408 receives data associated with at least one trajectory from the planning system 404, and the control system 408 controls the operation of the vehicle by generating and transmitting control signals to operate the powertrain control system (e.g., DBW system 202h and / or powertrain control system 204, etc.), the steering control system (e.g., steering control system 206) and / or the braking system (e.g., braking system 208). For example, the control system 408 is configured to perform operating functions such as lateral vehicle motion control or longitudinal vehicle motion control. Lateral vehicle motion control causes the necessary activities for the adjustment of the y-axis component of the vehicle motion. Longitudinal vehicle motion control causes the necessary activities for the adjustment of the x-axis component of the vehicle motion. In the 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 turning the vehicle 200 left. Additionally or alternatively, the control system 408 generates and transmits control signals to cause other devices of the vehicle 200 (eg, headlights, turn signal lights, door locks, and / or windshield wipers, etc.) to change states.

[0069] In some embodiments, as described above, perception system 402, planning system 404, positioning system 406, and / or control system 408 implement at least one machine learning model (e.g., at least one 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, perception system 402, planning system 404, positioning system 406, and / or control system 408 implement at least one machine learning model alone or in combination with one or more of the above systems. In some examples, perception system 402, planning system 404, positioning system 406, and / or control system 408 implement at least one machine learning model as part of a pipeline (e.g., a pipeline for identifying one or more objects located in an environment, etc.).

[0070] Database 410 stores data transmitted to, received from, and / or updated by perception system 402, planning system 404, positioning system 406, and / or control system 408. In some examples, database 410 includes a storage component (e.g., a storage component) for storing data and / or software related to operations and using at least one system of autonomous vehicle computing 400. Figure 3 In some embodiments, database 410 stores data associated with a 2D and / or 3D map of at least one area. In some examples, database 410 stores data associated with a 2D and / or 3D map of a portion of a city, portions of multiple cities, multiple cities, counties, states, and / or countries (State) (e.g., a country), etc. In such an example, a vehicle (e.g., a vehicle that is the same or similar to vehicle 102 and / or vehicle 200) can be driven along one or more drivable areas (e.g., single-lane roads, multi-lane roads, highways, remote roads, and / or off-road roads, etc.) and cause at least one LiDAR sensor (e.g., a LiDAR sensor that is the same or similar to LiDAR sensor 202b) to generate data associated with an image representing an object included in the field of view of the at least one LiDAR sensor.

[0071] In some embodiments, database 410 can be implemented across multiple devices. In some examples, database 410 includes a vehicle (e.g., a vehicle that is the same or similar to vehicle 102 and / or vehicle 200), an autonomous vehicle system (e.g., an autonomous vehicle system that is the same or similar to remote AV system 114), a fleet management system (e.g., a vehicle that is the same or similar to remote AV system 114), and a fleet management system (e.g., a vehicle that is the same or similar to remote AV system 114). Figure 1 The same or similar queue management system as the queue management system 116 of FIG. 1 and / or the V2I system (e.g., Figure 1The V2I system 118 is the same as or similar to the V2I system 118).

[0072] Reference now Figure 6 To Figure 9, Figure 6 9 illustrate implementations and / or aspects of processing for implementing a security filter 504 for a machine learning planner (such as planning system 404). Figure 6 , Figure 6 Flowchart illustrating a process 600 for implementing a safety filter 504. In some embodiments, one or more steps described with respect to process 600 are performed by planning system 404, safety filter 504, trajectory generator 502, and / or ML planner 506, etc. (e.g., in whole and / or in part, etc.). In an embodiment, safety filter 504 is included in autonomous vehicle computing 400 and / or one or more other systems described with respect to environment 100, etc. Safety filter 504 can be implemented in software (e.g., in software instructions stored in a memory), computer hardware (e.g., by a microprocessor, microcontroller, application specific integrated circuit (ASIC) and / or field programmable gate array (FPGA), etc.), or a combination of computer software and computer hardware.

[0073] Additionally or alternatively, in some embodiments, one or more steps described with respect to processing 600 are performed (e.g., completely and / or partially, etc.) by other devices or groups of devices that are separate from or include the security filter 504 (such as vehicles 102a-102n and / or vehicles 200, vehicle-to-infrastructure (V2I) devices 110, networks 112, remote autonomous vehicle (AV) systems 114, fleet management systems 116, V2I systems 118, and / or planning systems 404, etc.). In some embodiments, the security filter 504 includes, is coupled to and / or uses the vehicles 102a-102n and / or the vehicles 200, the objects 104a-104n, the routes 106a-106n, the areas 108, the vehicle-to-infrastructure (V2I) devices 110, the network 112, the remote autonomous vehicle (AV) system 114, the queue management system 116, the V2I system 118 and / or the planning system 404, and / or the security filter 504 forms a part of the vehicles 102a-102n and / or the vehicles 200, the objects 104a-104n, the routes 106a-106n, the areas 108, the vehicle-to-infrastructure (V2I) devices 110, the network 112, the remote autonomous vehicle (AV) system 114, the queue management system 116, the V2I system 118 and / or the planning system 404. In some embodiments, the security filter 504 is the same or similar to the vehicle 102a-102n and / or vehicle 200, the object 104a-104n, the route 106a-106n, the area 108, the vehicle-to-infrastructure (V2I) device 110, the network 112, the remote autonomous vehicle (AV) system 114, the fleet management system 116, the V2I system 118 and / or the planning system 404.

[0074] refer to Figure 5 and Figure 6At 604, the trajectory generator 502 generates a plurality of trajectories 612 (also referred to herein as a plurality of candidate trajectories). The trajectory generator 502 generates the plurality of trajectories based on the scene context 602. The scene context 602 may include data from the perception system 402, the database 410, the positioning system 406, and / or the control system 408. The scene context 602 may be an encoding of the environment 10 (e.g., a scene) surrounding the ego vehicle (e.g., a vehicle being monitored, such as the vehicles 102a-102n and / or the vehicle 200, etc.). The encoding may include data associated with the self-vehicle (e.g., the vehicle's speed, acceleration, steering, state, etc.), the self-vehicle's route (e.g., at least one lane that the self-vehicle should cross), other objects within the route or within the environment, non-self-vehicles or users (e.g., cars, cyclists, pedestrians, etc.), maps (e.g., high-definition maps in which dynamic objects such as lanes, lane boundaries, traffic light locations, pedestrian crosswalks, and speed limits are detected and tracked), and / or timestamps, etc. The data may correspond to different points in time of the self-vehicle (as indicated by the timestamps).

[0075] The trajectory generator 502 generates a plurality of trajectories 612 based at least on the scene context 602. The plurality of trajectories 612 may include one, two, three, four, five, ten, one hundred, one thousand or more than one thousand trajectories. The plurality of trajectories 612 include a sequence of actions connecting states, along which the self-vehicle can navigate. In other words, the plurality of trajectories 612 may be a discrete sequence of future states of the self-vehicle, assuming that there is a fixed time step between all states. In some embodiments, the plurality of trajectories 612 represent trajectories that are dynamically feasible, meet the control requirements of the self-vehicle (e.g., continuity level, minimum turning radius, minimum acceleration from stop, etc.) and / or conform to the map (e.g., stop on the road, etc.).

[0076] At 606, the security filter 504 filters the plurality of traces 612. Referring now to Figure 8 , Figure 8 A diagram illustrating implementations and / or aspects of a process 800 for implementing a security filter 504 to filter a plurality of traces 612 .

[0077] At 802, the safety filter 504 applies a plurality of safety parameters to the plurality of trajectories 612 generated for the self-vehicle. The plurality of safety parameters include predefined assumptions (e.g., at least one assumption, a plurality of assumptions, etc.) and safety checks (e.g., at least one safety check, a plurality of safety checks, etc.) associated with all non-self-vehicles along the plurality of trajectories. Although the plurality of safety parameters are described herein as being associated with (e.g., applied to) the non-self-vehicle, the plurality of safety parameters may be associated with one or more non-primary tracked objects, such as vehicles, pedestrians, bicycles, or other obstacles along the trajectories, and the like.

[0078] The predefined assumptions may include at least one assumption (e.g., multiple assumptions). The predefined assumptions are used to simulate the behavior of non-self vehicles (or other tracked objects such as bicycles, pedestrians, etc.) along multiple trajectories of the self-vehicle. The predefined assumptions include at least one of the following assumptions: assuming that the non-self vehicle is stationary when the self-vehicle travels along the multiple trajectories 612; assuming that the non-self vehicle performs hard braking when the self-vehicle travels along the multiple trajectories 612; assuming that the non-self vehicle maintains the current heading (e.g., direction) and speed when the self-vehicle travels along the multiple trajectories 612; assuming that non-self vehicles behind the self-vehicle are excluded; and assuming that all non-self vehicles except the non-self vehicle directly in front of the self-vehicle are excluded.

[0079] Predefined assumptions can be used to simulate the behavior of non-self-vehicles within the filter horizon. The filter horizon can be predetermined and / or dynamically updated. The filter horizon is a time horizon that indicates the length of time that the safety filter 504 evaluates the plurality of tracks 612. In other words, the plurality of tracks 612 are evaluated for the duration of the filter horizon. The filter horizon can be one second, two seconds, three seconds, four seconds, five seconds, ten seconds, thirty seconds, or other ranges therebetween. As an example, if the time horizon is one second, the plurality of tracks 612 are evaluated based on whether the self-vehicle passes the safety check after following the plurality of tracks 612 for one second.

[0080] The plurality of safety parameters may also include a trajectory modifier (e.g., at least one trajectory modifier, a plurality of trajectory modifiers, etc.). The trajectory modifier may be applied to the plurality of trajectories 612 of the self-vehicle before filtering the plurality of trajectories 612. For example, the trajectory modifier may modify the plurality of trajectories 612. The trajectory modifier may include at least one of the following: the self-vehicle follows the plurality of trajectories for a fixed period of time, followed by a deceleration of the self-vehicle along the plurality of trajectories 612; the self-vehicle follows the plurality of trajectories 612 for a predefined duration; the self-vehicle experiences a predefined braking acceleration; and / or the self-vehicle experiences a maximum jerk, etc.

[0081] A safety check is applied to the plurality of trajectories 612 and / or the modified plurality of trajectories (e.g., where a trajectory modifier is applied). A safety check is applied to the plurality of trajectories 612 and / or the modified plurality of trajectories based on predefined assumptions. The type of safety check can be predetermined and / or dynamically updated. The safety check includes at least one of the following determinations: determining whether the self-vehicle experiences a collision while the self-vehicle is traveling along the plurality of trajectories based at least on the predefined assumptions; and determining whether the self-vehicle maintains at least a threshold distance behind a non-self-vehicle in the non-self-vehicle while the self-vehicle is traveling along the plurality of trajectories based at least on the predefined assumptions. Thus, the safety filter 504 can use a safety check to determine whether a particular trajectory in the plurality of trajectories 612 is unsafe and should therefore be filtered from the plurality of trajectories 612.

[0082] At 804, the safety filter 504 determines whether the plurality of trajectories 612 is unsafe based at least on applying the plurality of safety parameters to the plurality of trajectories 612. The safety filter 504 determines that the plurality of trajectories 612 is unsafe if the self-propelled vehicle following the plurality of trajectories 612 fails the safety check based at least on the predefined assumptions. In the case where the trajectory modifier is applied, the safety filter 504 determines that the plurality of trajectories 612 is unsafe if the self-propelled vehicle following the modified plurality of trajectories 612 fails the safety check based at least on the predefined assumptions.

[0083] As an example, the safety filter 504 determines that a trajectory is unsafe based at least on predefined assumptions applied to a trajectory from the plurality of trajectories 612 (or a modified plurality of trajectories) and / or trajectory modifiers applied to the trajectory if the self-vehicle will experience a collision while traveling along the trajectory. As another example, the safety filter 504 determines that a trajectory is unsafe based at least on predefined assumptions applied to a trajectory from the plurality of trajectories 612 (or a modified plurality of trajectories) and / or trajectory modifiers applied to the trajectory if the self-vehicle does not maintain at least a threshold distance (e.g., one meter, two meters, three meters, four meters, five meters, etc.) behind a non-self-vehicle in the non-self-vehicle while traveling along the trajectory.

[0084] Additionally and / or alternatively, the safety filter 504 determines that the plurality of trajectories 612 are safe based at least on applying a plurality of safety parameters to the plurality of trajectories 612. As an example, the safety filter 504 determines that the trajectory is safe when the safety filter determines that the self-vehicle will not experience a collision when the self-vehicle travels along the trajectory based at least on a predefined assumption applied to a trajectory from the plurality of trajectories 612 (or a modified plurality of trajectories) and / or a trajectory modifier applied to the trajectory. As another example, the safety filter 504 determines that the trajectory is safe when the self-vehicle maintains at least a threshold distance behind a non-self-vehicle in the non-self-vehicle when the self-vehicle travels along the trajectory based at least on a predefined assumption applied to a trajectory from the plurality of trajectories 612 (or a modified plurality of trajectories) and / or a trajectory modifier applied to the trajectory. Other safety checks may be applied to the trajectory to determine whether the trajectory is safe or unsafe.

[0085] At 806, the safety filter 504 filters the track from the plurality of tracks 612 based at least on the determination that the track is unsafe. Filtering the track from the plurality of tracks 612 includes removing the track from the plurality of tracks 612. After the safety filter 504 filters the track from the plurality of tracks 612, the remaining tracks 614 (e.g., at least one remaining track) from the plurality of tracks 612 are considered safe because the remaining tracks 614 have passed safety checks under the assumptions and / or track modifiers applied to the remaining tracks 614. Additionally and / or alternatively, the safety filter 504 does not remove the track from the plurality of tracks 612 based at least on the determination that the track is safe. The track indicated as safe is included in the remaining tracks 614.

[0086] At 808, the safety filter 504 provides the remaining trajectories 614 from the plurality of trajectories 612 to the ML planner 506. As described, the ML planner can include a machine learning model that is trained to generate a score for selecting the selected trajectory 620 for the self-vehicle from the remaining trajectories 614. In other words, the safety filter 504 provides the remaining trajectories 614 to the machine learning model. The machine learning model is at least one of an inverse reinforcement learning model, a recommendation and selection model, and a classification-based model.

[0087] In some examples, during filtering of the trajectory 612, at 606, the safety filter 504 determines whether the ego vehicle has sufficient headway. In this example, the filter horizon may be defined as one second (although other filter horizons may be used), the predefined assumption is defined as assuming that the non-ego vehicles are stationary when the ego vehicle is traveling along a trajectory from the plurality of trajectories 612, and the safety check is defined as determining whether the ego vehicle experiences a collision while traveling along the trajectory based on at least the predefined assumption. This ensures that there are no collisions within the next second assuming that all non-ego vehicles remain stationary. The safety filter 504 will determine that the trajectory is unsafe (and filter out the trajectory) if the ego vehicle collides with the non-ego vehicle while following the trajectory for one second or less and based on the assumption that the non-ego vehicle is stationary. Alternatively, the safety filter 504 will determine that the trajectory is safe if the ego vehicle does not collide with the non-ego vehicle while following the trajectory for one second or less and based on the assumption that the non-ego vehicle is stationary.

[0088] In some examples, during filtering of the trajectory 612, at 606, the safety filter 504 determines whether the ego vehicle has enough time until collision. In this example, the filter horizon can be defined as one second (but other filter horizons can be used), the predefined assumption is defined as assuming that the non-ego vehicle maintains the current heading and speed when the ego vehicle travels along the trajectory from the plurality of trajectories 612, and the safety check is defined as determining whether the ego vehicle experiences a collision while the ego vehicle travels along the trajectory based on at least the predefined assumption. This ensures that there are no collisions within the next second assuming that all non-ego vehicles maintain a constant (e.g., current) speed and / or heading. The safety filter 504 will determine that the trajectory is unsafe (and filter out the trajectory) if the ego vehicle collides with the non-ego vehicle while following the trajectory for one second or less and based on the assumption that the non-ego vehicle maintains its current heading and speed. Alternatively, the safety filter 504 will determine that the trajectory is safe if the ego vehicle follows the trajectory for one second or less without colliding with the non-ego vehicle and based on the assumption that the non-ego vehicle maintains its current heading and speed.

[0089] This example may exclude a slow trajectory where a non-self-vehicle is approaching the ego-vehicle from behind the ego-vehicle from the plurality of trajectories 612. In this scenario, the safety filter 504 may impose an assumption that excludes non-self-vehicles behind the ego-vehicle.

[0090] In some examples, during filtering of the trajectory 612, at 606, the safety filter 504 determines whether the ego vehicle has sufficient headroom. In this example, the filter horizon may be defined as three seconds (although other filter horizons may be used), the predefined assumption is defined as assuming that non-ego vehicles perform hard braking when the ego vehicle is traveling along a trajectory from the plurality of trajectories 612, and the safety check is defined as determining whether the ego vehicle experiences a collision when the ego vehicle is traveling along the trajectory based at least on the predefined assumption. This ensures that there is no collision within the next three seconds assuming that all non-ego vehicles perform hard braking. Such an example may ensure that there is sufficient headroom between the ego vehicle and the non-ego vehicle. The safety filter 504 will determine that the trajectory is unsafe (and filter out the trajectory) if the ego vehicle collides with a non-ego vehicle when following the trajectory for three seconds or less and based on the assumption that the non-ego vehicle performs hard braking. Alternatively, the safety filter 504 will determine that the trajectory is safe if the ego vehicle follows the trajectory for three seconds or less without colliding with the non-ego vehicle and based on the assumption that the non-ego vehicle is hard braking.

[0091] In some examples, a safety buffer can be added to help prevent the ego vehicle from experiencing a close call (but still avoiding a collision). For example, during filtering of the trajectory 612, at 606, the safety filter 504 determines whether the ego vehicle has sufficient headroom and sufficient safety buffer. In this example, the filter horizon can be defined as three seconds (but other filter horizons can be used), the predefined assumption is defined as assuming that the non-ego vehicle is hard braking when the ego vehicle is traveling along the trajectory from the plurality of trajectories 612, and the safety check is defined as at least based on the predefined assumption, determining whether the ego vehicle is behind the non-ego vehicle (or tracking object) in the non-ego vehicle when the ego vehicle is traveling along the trajectory. This ensures that the ego vehicle maintains a sufficient following distance for the next three seconds, assuming that all non-ego vehicles are hard braking. In this example, the threshold distance can be set to three meters, but other threshold distances can be set. Such an example can ensure that there is sufficient headroom between the ego vehicle and the non-ego vehicle. In the event that the ego vehicle does not maintain a threshold distance from the non-ego vehicle while following the trajectory for three seconds or less, and based on the assumption that the non-ego vehicle is performing hard braking, the safety filter 504 will determine that the trajectory is unsafe (and filter out the trajectory). Alternatively, in the event that the ego vehicle maintains a threshold distance from the non-ego vehicle while following the trajectory for three seconds or less, and based on the assumption that the non-ego vehicle is performing hard braking, the safety filter 504 will determine that the trajectory is safe.

[0092] In some examples, trajectory modifiers may be applied to trajectories from the plurality of trajectories 612. This may help ensure safety recursively. For example, trajectory modifiers may be used to ensure recursive safety such as when the ego vehicle follows the trajectory for a certain time (e.g., as defined by the trajectory modifier defining a fixed period of time that the ego vehicle follows the non-ego vehicle) and then a hard brake is performed (e.g., as defined by the trajectory modifier defining the deceleration of the ego vehicle) under certain comfort constraints (e.g., as defined by the trajectory modifier defining the maximum jerk of the ego vehicle).

[0093] As an example, trajectory modifiers may be used to ensure safety during a follow-then-brake scenario. For example, during filtering of trajectory 612, at 606, the safety filter 504 determines whether the ego vehicle has sufficient headroom when following a non-ego vehicle that hard brakes after a certain time. In this example, the filter horizon may be defined as six seconds (although other filter horizons may be used), the predefined assumptions are defined as assuming that the non-ego vehicle hard brakes while the ego vehicle is traveling along a trajectory from the plurality of trajectories 612, and the trajectory modifiers may be set to: the ego vehicle follows the trajectory for a fixed period of time and then decelerates along the trajectory, the ego vehicle follows the trajectory for a predefined duration of one second (although other durations may be used), the ego vehicle experiences -2.5 m / s 2 The predefined braking acceleration and the self-vehicle experience 3.5m / s 3 , and a safety check is defined as determining whether the ego vehicle maintains at least a threshold distance (e.g., 1.5 m) behind the non-ego vehicle (or tracking object) in the non-ego vehicle as the ego vehicle travels along the trajectory based on at least a predefined assumption. This ensures that the ego vehicle maintains sufficient following distance if the non-ego vehicle hard brakes within the next second, assuming that the ego vehicle maintains a following distance of 1.5 m for the next six seconds. Such an example can ensure that there is sufficient time separation between the ego vehicle and the non-ego vehicle. The safety filter 504 will determine that the trajectory is unsafe (and filter out the trajectory) if the ego vehicle does not maintain the threshold distance from the non-ego vehicle when following the trajectory for six seconds or less. Alternatively, the safety filter 504 will determine that the trajectory is safe if the ego vehicle maintains the threshold distance from the non-ego vehicle when following the trajectory for six seconds or less.

[0094] In some examples, the trajectory can be downsampled to speed up the performance of the safety filter 504. In the case where the safety filter 504 only evaluates the self-vehicle at certain time points along the trajectory, the safety filter 504 can downsample the trajectory. In other words, the safety filter 504 only evaluates the self-vehicle at a subset of time points along the trajectory. This method can make it more efficient to make determinations related to whether a trajectory is considered safe or unsafe and whether the trajectory should be filtered from multiple trajectories 612. Downsampled trajectories can be defined. For example, the time points can be predetermined or otherwise defined as regular intervals or variable intervals. The time points can be defined in coarser increments. In other words, because the self-vehicle is slowing down or has stopped relative to earlier times, the trajectory will be less likely to be unsafe during later times, so these later times can be more dispersed than earlier times.

[0095] As an example, during filtering of trajectory 612, at 606, the safety filter 504 determines whether the ego vehicle has sufficient headroom when following a non-ego vehicle that hard brakes after a certain time. In this example, the filter horizon may be defined as six seconds (although other filter horizons may be used), and a predefined assumption is defined as assuming that a non-ego vehicle hard brakes while the ego vehicle is traveling along a trajectory from the plurality of trajectories 612. The predefined assumption may also be defined as assuming that all non-ego vehicles except the non-ego vehicle directly in front of the ego vehicle are excluded from consideration. This scenario may be utilized, such as during cruise control operation. Trajectory modifiers may be set to: the ego vehicle follows the trajectory for a fixed period of time and then decelerates along the trajectory, the ego vehicle follows the trajectory for a predefined duration of one second (although other durations may be used), the ego vehicle experiences -2.5 m / s 2 The predefined braking acceleration and the self-vehicle experience 3.5m / s 3The maximum jerk of the self-vehicle is determined based on at least a predefined assumption to determine whether the self-vehicle maintains at least a threshold distance (e.g., 1.5m) behind the non-self-vehicle (or tracking object) in the non-self-vehicle group as the self-vehicle travels along the trajectory. In addition, the down-sampled times can be defined as a set including [0.2 seconds, 0.4 seconds, 0.6 seconds, 0.8 seconds, 1.0 seconds, 1.4 seconds, 2.0 seconds, 2.4 seconds, 3.0 seconds, 4.0 seconds, 5.0 seconds, 6.0 seconds]. Here, because the self-vehicle is decelerating or has stopped, the trajectory will be less likely to be unsafe during later times in the trajectory, so these times are down-sampled to a greater extent. This ensures that the self-vehicle maintains a sufficient following distance if the non-self-vehicle brakes hard in the next second, assuming that the self-vehicle maintains a following distance of 1.5m for the next six seconds. Such an example can ensure that there is sufficient time separation between the self-vehicle and the non-self-vehicle. The safety filter 504 will determine that a trajectory is unsafe (and filter out the trajectory) if the ego vehicle does not maintain a threshold distance from the non-ego vehicle while following the trajectory for six seconds or less. Alternatively, the safety filter 504 will determine that a trajectory is safe if the ego vehicle maintains a threshold distance from the non-ego vehicle while following the trajectory for six seconds or less.

[0096] As another example, Fig. 7A , a self-vehicle 702 (e.g., vehicle 102 and / or vehicle 200), a non-self-vehicle 704 (a vehicle on the roadway that is not the self-vehicle 702), and a plurality of trajectories 612 are shown. As described above, filtering using the safety filter 504 may include imposing assumptions on the non-self-vehicle 704 (e.g., assuming that the non-self-vehicle is performing hard braking) (see Fig. 7A ). The processing may include modifying the trajectory of the self-vehicle 702. For example, the trajectory may be modified so that the self-vehicle 702 follows the non-self-vehicle 704 for one second and then brakes along the trajectory (see Figure 7B The processing may also include filtering unsafe trajectories (such as trajectories that include an unsafe distance (e.g., a distance within a threshold amount) between the self-vehicle 702 and the non-self-vehicle 704 after modifying the trajectory, etc.) to generate a plurality of filtered trajectories (see Figure 7C ).

[0097] In some embodiments, the safety filter 504 performs trajectory filtering at 606 after the ML planner 506 (e.g., using a machine learning model as described herein) has generated a score 618. In this example, the ML planner 506 can receive the plurality of trajectories 612 generated by the trajectory generator 502 at 604, and the ML planner 506 can determine a score 618 based on the received plurality of trajectories 612. The trajectory (e.g., the selected trajectory 620) can then be evaluated by the safety filter 504 (e.g., using process 800) to determine whether the trajectory 620 is safe. If the trajectory is determined to be safe, the trajectory is provided to the vehicle controller 610. If the trajectory is determined to be unsafe, the trajectory will be ignored or otherwise removed from the plurality of scored trajectories, and the trajectory with the next best score will be recursively evaluated by the safety filter 504 until the trajectory is found to be safe.

[0098] Reference again Figure 6 , the ML planner 506 receives the remaining (e.g., filtered) trajectories 614 from the plurality of trajectories 612. As described, the ML planner 506 can implement a machine learning model that is trained to generate a score for selecting a selected trajectory 620 for the self-vehicle. The ML planner 506 can additionally and / or alternatively select the selected trajectory 620. For example, at 608, the ML planner 506 (e.g., using a machine learning model) extracts at least one feature 616 from the remaining trajectory 614 and based on at least the scene context 602 and the remaining trajectory 614. The extracted feature 616 can be an encoding of data associated with the self-vehicle, a route of the self-vehicle, a map, and / or the environment 10, etc. The extracted features 616 may additionally and / or alternatively include the ego-vehicle's time to collision, adaptive cruise control information (e.g., distance to the leading object, velocity of the ego-vehicle, and relative velocity between the ego-vehicle and the leading object), maximum jerk of the ego-vehicle (e.g., taking into account the acceleration of the ego-vehicle at past, current, and planned trajectories), maximum lateral acceleration along the trajectory, cascades and / or rate limits for a particular trajectory and other trajectories (e.g., past trajectories), and the like.

[0099] At 608, the ML planner 506 (e.g., using the trained machine learning model) generates a score 618 (e.g., a numerical score or other metric) for the plurality of remaining trajectories 614. The ML planner 506 can generate the score 618 for the plurality of remaining trajectories 614 based at least on the extracted features 616. The value of the generated score 618 indicates whether a corresponding trajectory in the plurality of remaining trajectories 614 is a preferred trajectory. In some embodiments, a higher score indicates that the trajectory is a preferred (e.g., more efficient) trajectory, while a lower score indicates that the trajectory is a less preferred (e.g., less efficient) trajectory. In other embodiments, a lower score indicates that the trajectory is a preferred (e.g., more efficient, safe, etc.) trajectory, while a higher score indicates that the trajectory is a less preferred (e.g., less efficient, safe, etc.) trajectory.

[0100] At 610, the ML planner 506 selects a selected trajectory 620 from the plurality of remaining trajectories 614. The ML planner 506 selects the selected trajectory 620 based at least on the scores 618 generated for the plurality of remaining trajectories 614. In some examples, the ML planner 506 ranks the plurality of remaining trajectories 614 based on the scores. For example, the ML planner 506 can rank the plurality of remaining trajectories 614 in ascending or descending order. The ML planner 506 selects the selected trajectory 620 from the ranked plurality of remaining trajectories 614 based at least on the selected trajectory 620 having the highest score or the lowest score (depending on the score indicating the selected trajectory 620 as being the most preferred for the self-vehicle).

[0101] At 612, the ML planner 506 provides (e.g., transmits) the selected trajectory 620 to a vehicle controller 610 of the self-vehicle. The vehicle controller 610 may include or be the same as the control system 408. The vehicle controller 610 may control the operation of the self-vehicle so that the self-vehicle operates according to the selected trajectory 620. For example, the controller 610 may generate and / or transmit control signals to cause a powertrain control system (e.g., DBW system 202h and / or powertrain control system 204, etc.), a steering control system (e.g., steering control system 206), and / or a braking system (e.g., braking system 208) of the self-vehicle to operate according to the selected trajectory 620. Thus, the self-vehicle may operate according to the selected trajectory 620, wherein the selected trajectory 620 may be safe due, at least in part, to the safety filter 504.

[0102] According to some non-limiting embodiments or examples, a system is provided, comprising: at least one processor; and at least one memory storing instructions thereon, which, when executed by the at least one processor, cause the following operations, the operations comprising: applying multiple safety parameters to multiple trajectories generated for a self-propelled vehicle, wherein the multiple safety parameters include predefined assumptions associated with all non-self-propelled vehicles along the multiple trajectories, and safety checks; determining whether the multiple trajectories are unsafe based at least on applying the multiple safety parameters to the multiple trajectories; filtering the trajectory from the multiple trajectories based at least on determining that the trajectory is unsafe; and providing the remaining trajectories from the multiple trajectories to a machine learning model, which is trained to generate a score used to select a selected trajectory for the vehicle from the remaining trajectories.

[0103] According to some non-limiting embodiments or examples, at least one non-transitory computer-readable medium is provided, comprising one or more instructions that, when executed by at least one processor, cause the at least one processor to: apply multiple safety parameters to multiple trajectories generated for a self-propelled vehicle, wherein the multiple safety parameters include predefined assumptions associated with all non-self-propelled vehicles along the multiple trajectories, and safety checks; determine whether the multiple trajectories are unsafe based at least on applying the multiple safety parameters to the multiple trajectories; filter a trajectory from the multiple trajectories based at least on determining that the trajectory is unsafe; and provide remaining trajectories from the multiple trajectories to a machine learning model that is trained to generate a score used to select a selected trajectory for the vehicle from the remaining trajectories.

[0104] According to some non-limiting embodiments or examples, a method is provided, comprising: applying multiple safety parameters to multiple trajectories generated for a self-propelled vehicle, wherein the multiple safety parameters include predefined assumptions associated with all non-self-propelled vehicles along the multiple trajectories, and safety checks; determining whether the multiple trajectories are unsafe based at least on applying the multiple safety parameters to the multiple trajectories; filtering the trajectory from the multiple trajectories based at least on determining that the trajectory is unsafe; and providing remaining trajectories from the multiple trajectories to a machine learning model that is trained to generate a score used to select a selected trajectory for the vehicle from the remaining trajectories.

[0105] Other non-limiting aspects or embodiments are set forth in the following numbered clauses:

[0106] Item 1: A system comprising: at least one processor; and at least one non-volatile storage medium storing instructions that, when executed by the at least one processor, cause the at least one processor to: apply a plurality of safety parameters to a plurality of trajectories generated for a self-propelled vehicle, wherein the plurality of safety parameters include predefined assumptions associated with all non-self-propelled vehicles along the plurality of trajectories, and safety checks; determine whether the plurality of trajectories are unsafe based at least on applying the plurality of safety parameters to the plurality of trajectories; filter a trajectory from the plurality of trajectories based at least on determining that the trajectory is unsafe; and provide remaining trajectories from the plurality of trajectories to a machine learning model that is trained to generate a score for selecting a selected trajectory for the vehicle from the remaining trajectories.

[0107] Clause 2: The system of clause 1, wherein the plurality of trajectories are determined to be unsafe if the vehicle following the plurality of trajectories fails the safety check based at least on the predefined assumption.

[0108] Clause 3: A system according to clause 1 or 2, wherein the safety check includes at least one of the following determinations: determining whether the self-carrier experiences a collision while the self-carrier is traveling along the multiple trajectories based at least on the predefined assumption; and determining whether the self-carrier maintains at least a threshold distance behind a non-self-carrier in the non-self-carriers while the self-carrier is traveling along the multiple trajectories based at least on the predefined assumption.

[0109] Clause 4: A system according to any one of clauses 1 to 3, wherein the predefined assumptions include at least one of the following assumptions: assuming that the non-self-vehicle is stationary when the self-vehicle travels along the multiple trajectories; assuming that the non-self-vehicle performs hard braking when the self-vehicle travels along the multiple trajectories; assuming that the non-self-vehicle maintains a current heading and speed when the self-vehicle travels along the multiple trajectories; assuming that the non-self-vehicle behind the self-vehicle is excluded; and assuming that all non-self-vehicles except the non-self-vehicle directly in front of the self-vehicle are excluded.

[0110] Clause 5: A system according to any one of clauses 1 to 4, wherein the plurality of security parameters further comprises: a trajectory modifier that modifies the plurality of trajectories before filtering the trajectory from the plurality of trajectories; and wherein the security check is also performed based on the modified plurality of trajectories.

[0111] Clause 6: A system according to clause 5, wherein the trajectory modifier includes at least one of the following items: the self-vehicle follows the multiple trajectories for a fixed period of time and then decelerates along the multiple trajectories; the self-vehicle follows the multiple trajectories for a predefined duration; the self-vehicle experiences a predefined braking acceleration; and the self-vehicle experiences a maximum acceleration.

[0112] Clause 7: The system of any of clauses 1 to 6, wherein the plurality of security parameters further comprises a predefined time horizon and / or a predefined downsampling of the time horizon.

[0113] Clause 8: The system of any of clauses 1 to 7, wherein the predefined assumption comprises a plurality of predefined assumptions, wherein the safety check comprises a plurality of safety checks, and wherein the trajectory modifier comprises a plurality of trajectory modifiers.

[0114] Clause 9: A system according to any one of clauses 1 to 8, wherein the machine learning model is at least one of an inverse reinforcement learning model, a recommendation and selection model, and a classification-based model.

[0115] Clause 10: The system of any of clauses 1 to 9, wherein the instructions, when executed by the at least one processor, further cause the at least one processor to at least one of receive the plurality of trajectories and generate the plurality of trajectories.

[0116] Clause 11: A method comprising: applying multiple safety parameters to a plurality of trajectories generated for a self-propelled vehicle, wherein the multiple safety parameters include predefined assumptions associated with all non-self-propelled vehicles along the multiple trajectories, and safety checks; determining whether the multiple trajectories are unsafe based at least on applying the multiple safety parameters to the multiple trajectories; filtering a trajectory from the multiple trajectories based at least on determining that the trajectory is unsafe; and providing remaining trajectories from the multiple trajectories to a machine learning model, the machine learning model being trained to generate a score for selecting a selected trajectory for the vehicle from the remaining trajectories.

[0117] Clause 12: The method of clause 11, wherein the plurality of trajectories are determined to be unsafe if the vehicle following the plurality of trajectories fails the safety check based at least on the predefined assumption.

[0118] Clause 13: A method according to clause 11 or 12, wherein the safety check includes at least one of the following determinations: determining whether the self-carrier experiences a collision while the self-carrier is traveling along the multiple trajectories based at least on the predefined assumption; and determining whether the self-carrier maintains at least a threshold distance behind a non-self-carrier among the non-self-carriers while the self-carrier is traveling along the multiple trajectories based at least on the predefined assumption.

[0119] Clause 14: A method according to any one of clauses 11 to 13, wherein the predefined assumptions include at least one of the following assumptions: assuming that the non-self-vehicle is stationary when the self-vehicle travels along the multiple trajectories; assuming that the non-self-vehicle performs hard braking when the self-vehicle travels along the multiple trajectories; assuming that the non-self-vehicle maintains a current heading and speed when the self-vehicle travels along the multiple trajectories; assuming that the non-self-vehicle behind the self-vehicle is excluded; and assuming that all non-self-vehicles except the non-self-vehicle directly in front of the self-vehicle are excluded.

[0120] Clause 15: A method according to any one of clauses 11 to 14, wherein the plurality of security parameters further comprises: a trajectory modifier that modifies the plurality of trajectories before filtering the trajectories from the plurality of trajectories; and wherein the security check is also performed based on the modified plurality of trajectories.

[0121] Clause 16: A method according to clause 15, wherein the trajectory modifier includes at least one of the following items: the self-vehicle follows the multiple trajectories for a fixed period of time and then decelerates along the multiple trajectories; the self-vehicle follows the multiple trajectories for a predefined duration; the self-vehicle experiences a predefined braking acceleration; and the self-vehicle experiences a maximum acceleration.

[0122] Clause 17: The method according to any of clauses 11 to 16, wherein the plurality of security parameters further comprises a predefined time horizon and / or a predefined downsampling of the time horizon.

[0123] Clause 18: The method of any of clauses 11 to 17, wherein the predefined assumption comprises a plurality of predefined assumptions, wherein the safety check comprises a plurality of safety checks, and wherein the trajectory modifier comprises a plurality of trajectory modifiers.

[0124] Clause 19: A method according to any one of clauses 11 to 18, wherein the machine learning model is at least one of an inverse reinforcement learning model, a suggestion and selection model, and a classification-based model.

[0125] Item 20: At least one non-volatile storage medium storing instructions that, when executed by at least one processor, cause the at least one processor to: apply multiple safety parameters to a plurality of trajectories generated for a self-propelled vehicle, wherein the multiple safety parameters include predefined assumptions associated with all non-self-propelled vehicles along the multiple trajectories, and safety checks; determine whether the multiple trajectories are unsafe based at least on applying the multiple safety parameters to the multiple trajectories; filter a trajectory from the multiple trajectories based at least on determining that the trajectory is unsafe; and provide remaining trajectories from the multiple trajectories to a machine learning model that is trained to generate a score for selecting a selected trajectory for the vehicle from the remaining trajectories.

[0126] In the previous description, aspects and embodiments of the present disclosure have been described with reference to many specific details, which may vary depending on the implementation. Therefore, the description and the accompanying drawings should be regarded as illustrative, not restrictive. The only and exclusive indication of the scope of the invention, and the applicant's expectation that the content of the scope of the invention is the literal and equivalent scope of the claims issued from this application in the specific form of the claims, including any subsequent amendments. Any definition of the terms used to be included in such claims that are clearly set forth herein should be based on the meaning of such terms as used in the claims. In addition, when the term "also includes" is used in the previous description or the attached claims, the following of the phrase may be an additional step or entity, or a sub-step / sub-entity of the previously described step or entity.

Claims

1. A system comprising: at least one processor; as well as at least one non-transitory storage medium storing instructions that, when executed by the at least one processor, cause the at least one processor to: applying a plurality of safety parameters to the plurality of trajectories generated for the self-vehicle, wherein the plurality of safety parameters includes predefined assumptions associated with all non-self-vehicles along the plurality of trajectories, and safety checks; determining whether the plurality of trajectories are unsafe based at least on applying the plurality of safety parameters to the plurality of trajectories; Based at least on determining that the trajectory is unsafe, filtering the trajectory from the plurality of trajectories; and The remaining trajectories from the plurality of trajectories are provided to a machine learning model that is trained to generate a score for selecting a selected trajectory for the vehicle from the remaining trajectories.

2. The system according to claim 1, wherein: In the event that the vehicle following the plurality of trajectories fails the safety check based at least on the predefined assumption, the plurality of trajectories are determined to be unsafe.

3. The system according to any one of claims 1 to 2, wherein: The safety check includes at least one of the following determinations: determining, based at least on the predefined assumptions, whether the self-carrier experiences a collision while traveling along the multiple trajectories; and determining, based at least on the predefined assumptions, whether the self-carrier maintains at least a threshold distance behind a non-self-carrier among the non-self-carriers while traveling along the multiple trajectories.

4. The system according to any one of claims 1 to 3, wherein: The predefined assumptions include at least one of the following assumptions: assuming that the non-self-vehicle is stationary when the self-vehicle travels along the multiple trajectories; assuming that the non-self-vehicle performs hard braking when the self-vehicle travels along the multiple trajectories; assuming that the non-self-vehicle maintains the current heading and speed when the self-vehicle travels along the multiple trajectories; assuming that the non-self-vehicle behind the self-vehicle is excluded; and assuming that all non-self-vehicles except the non-self-vehicle directly in front of the self-vehicle are excluded.

5. The system according to any one of claims 1 to 4, wherein: The plurality of security parameters further includes: a trajectory modifier that modifies the plurality of trajectories before filtering the trajectory from the plurality of trajectories; and wherein the security check is further performed based on the modified plurality of trajectories.

6. The system according to claim 5, wherein: The trajectory modifier includes at least one of: the self-carrier follows the multiple trajectories for a fixed period of time and then decelerates along the multiple trajectories; the self-carrier follows the multiple trajectories for a predefined duration; the self-carrier experiences a predefined braking acceleration; and the self-carrier experiences a maximum acceleration.

7. A system according to any one of claims 1 to 6, wherein: The plurality of security parameters further comprises a predefined time horizon and / or a predefined downsampling of the time horizon.

8. The system according to any one of claims 1 to 7, wherein: The predefined assumptions include a plurality of predefined assumptions, wherein the safety checks include a plurality of safety checks, and wherein the trajectory modifiers include a plurality of trajectory modifiers.

9. The system according to any one of claims 1 to 8, wherein: The machine learning model is at least one of an inverse reinforcement learning model, a suggestion and selection model, and a classification-based model.

10. The system according to any one of claims 1 to 9, wherein: The instructions, when executed by the at least one processor, further cause the at least one processor to perform at least one of receiving the plurality of trajectories and generating the plurality of trajectories.

11. A method comprising: applying a plurality of safety parameters to the plurality of trajectories generated for the self-vehicle, wherein the plurality of safety parameters includes predefined assumptions associated with all non-self-vehicles along the plurality of trajectories, and safety checks; determining whether the plurality of trajectories are unsafe based at least on applying the plurality of safety parameters to the plurality of trajectories; Based at least on determining that the trajectory is unsafe, filtering the trajectory from the plurality of trajectories; and The remaining trajectories from the plurality of trajectories are provided to a machine learning model that is trained to generate a score for selecting a selected trajectory for the vehicle from the remaining trajectories.

12. The method according to claim 11, wherein: In the event that the vehicle following the plurality of trajectories fails the safety check based at least on the predefined assumption, the plurality of trajectories are determined to be unsafe.

13. The method according to any one of claims 11 to 12, wherein: The safety check includes at least one of the following determinations: determining, based at least on the predefined assumptions, whether the self-carrier experiences a collision while traveling along the multiple trajectories; and determining, based at least on the predefined assumptions, whether the self-carrier maintains at least a threshold distance behind a non-self-carrier among the non-self-carriers while traveling along the multiple trajectories.

14. The method according to any one of claims 11 to 13, wherein: The predefined assumptions include at least one of the following assumptions: assuming that the non-self-vehicle is stationary when the self-vehicle travels along the multiple trajectories; assuming that the non-self-vehicle performs hard braking when the self-vehicle travels along the multiple trajectories; assuming that the non-self-vehicle maintains the current heading and speed when the self-vehicle travels along the multiple trajectories; assuming that the non-self-vehicle behind the self-vehicle is excluded; and assuming that all non-self-vehicles except the non-self-vehicle directly in front of the self-vehicle are excluded.

15. The method according to any one of claims 11 to 14, wherein: The plurality of security parameters further includes: a trajectory modifier that modifies the plurality of trajectories before filtering the trajectories from the plurality of trajectories; and wherein the security check is further performed based on the modified plurality of trajectories.

16. The method according to claim 15, wherein: The trajectory modifier includes at least one of: the self-carrier follows the multiple trajectories for a fixed period of time and then decelerates along the multiple trajectories; the self-carrier follows the multiple trajectories for a predefined duration; the self-carrier experiences a predefined braking acceleration; and the self-carrier experiences a maximum acceleration.

17. The method according to any one of claims 11 to 16, wherein: The plurality of security parameters further comprises a predefined time horizon and / or a predefined downsampling of the time horizon.

18. The method according to any one of claims 11 to 17, wherein: The predefined assumptions include a plurality of predefined assumptions, wherein the safety checks include a plurality of safety checks, and wherein the trajectory modifiers include a plurality of trajectory modifiers.

19. The method according to any one of claims 11 to 18, wherein: The machine learning model is at least one of an inverse reinforcement learning model, a suggestion and selection model, and a classification-based model.

20. At least one non-transitory storage medium storing instructions that, when executed by at least one processor, cause the at least one processor to: Applying multiple safety parameters to multiple trajectories generated for the self-propelled vehicle, wherein The plurality of safety parameters include predefined assumptions associated with all non-self vehicles along the plurality of trajectories, and safety checks; determining whether the plurality of trajectories are unsafe based at least on applying the plurality of safety parameters to the plurality of trajectories; Based at least on determining that the trajectory is unsafe, filtering the trajectory from the plurality of trajectories; as well as The remaining trajectories from the plurality of trajectories are provided to a machine learning model that is trained to generate a score for selecting a selected trajectory for the vehicle from the remaining trajectories.