USE OF NODE INFORMATION FOR MACHINE CONTROL IN AUTONOMOUS SYSTEMS AND APPLICATIONS

DE102024127801A1Pending Publication Date: 2025-03-27NVIDIA CORP
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
DE102024127801
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-26
Filing Date
2024-09-25
Publication Date
2025-03-27

Smart Images

  • Figure 00000057_0000
    Figure 00000057_0000
  • Figure 00000058_0000
    Figure 00000058_0000
  • Figure 00000059_0000
    Figure 00000059_0000
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to the performance of navigation operations based on information about node areas, which is processed at runtime by one or more systems of a machine. In some embodiments, the node area information can be encoded in map data corresponding to a map, and the encoding can include organizing vehicle paths traversing a node area according to path groups and organizing conflicts that affect the behavior of vehicles traveling along the vehicle paths according to conflict groups. Furthermore, the encoding can include generating direction data structures that assign respective path groups to one or more of the conflict groups. In these or other embodiments, the map data corresponding to the node area can be updated with direction data structures.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] Autonomous vehicles (e.g., vehicles performing self-driving operations) and / or semi-autonomous vehicles may use map data (e.g., high-resolution (HD) map data with an accuracy of 2 to 30 cm) corresponding to a portion of the environment to navigate. The map data may include spatial geometric information about the areas in or through which the vehicles may travel. In addition, the map data may include semantic information that provides additional information about the areas and elements within the areas—such as element types, element descriptions, driving rules associated with specific elements or areas, etc. In some cases, the semantic information may refer to node areas within the region that correspond to potential right-of-way scenarios of vehicles traveling through the node areas.

[0002] In these or other cases, the semantic information can be used by autonomous or semi-autonomous vehicles to facilitate navigation within the region or environment. For example, semantic information related to intersection areas can assist autonomous or semi-autonomous vehicles in navigating various right-of-way scenarios that may arise in the intersection areas. However, the semantic information may not be organized in a way that allows it to be easily absorbed and processed by autonomous machines. Therefore, the use and processing of such semantic information in decision-making may be limited. BRIEF DESCRIPTION OF THE INVENTION

[0003] The invention is defined by the claims. To illustrate the invention, aspects and embodiments are described herein, which may or may not fall within the scope of the claims.

[0004] The disclosed embodiments of the present disclosure relate to performing navigation operations based on information about node areas processed at runtime by one or more systems of a machine. In some embodiments, the information about the node area may be encoded in map data corresponding to a map, and the encoding may include organizing vehicle paths traversing a node area according to path groups and organizing conflicts that affect the behavior of vehicles traveling along the vehicle paths according to conflict groups. Furthermore, the encoding may include generating directional data structures that associate respective path groups with one or more of the conflict groups. In these or other embodiments, the map data corresponding to the node area may be updated with directional data structures.

[0005] Embodiments of the present disclosure relate to processing information about node areas—such as information about node areas encoded in map data—during navigation of a vehicle or machine. In particular, conflict data associated with a node area may be obtained using a control system, where the conflict data may correspond to one or more potential right-of-way scenarios associated with the navigation of a machine. The conflict data may also indicate information related to conflict points of the node area that influence the waiting behavior of vehicles with respect to the one or more potential right-of-way scenarios.In some embodiments, the conflict data may be obtained from one or more data structures that contain semantic information about the node space and that are organized to facilitate identification of the conflict data. In these and other embodiments, the control system may be configured to determine a set of conflict rules for the node space based at least on the conflict data. The set of conflict rules may indicate respective wait behaviors that may be applied to individual conflict points. In these and other embodiments, the control system may be configured to cause execution of one or more control operations of the machine based at least on the set of conflict rules.

[0006] Therefore, according to one or more embodiments of the present disclosure, the intersection data structures may be used by the machine to identify and process information related to potential yield scenarios that the machine may encounter when entering intersection areas. Furthermore, such organization may help facilitate the machine's control system's decision-making regarding how to proceed when encountering intersection areas.

[0007] The disclosure extends to all novel aspects or features described and / or illustrated herein.

[0008] Further features of the disclosure are characterized by the independent and dependent claims.

[0009] Any feature of one aspect of the disclosure may be applied to other aspects of the disclosure in any suitable combination. In particular, method aspects may be applied to device or system aspects, and vice versa.

[0010] Furthermore, features implemented in hardware may be implemented in software, and vice versa. Any reference to software and hardware features herein should be construed accordingly.

[0011] Any system or device feature described herein may also be provided as a method feature, and vice versa. System and / or device aspects described functionally (including means plus functional features) may alternatively be expressed in terms of their corresponding structure, such as a suitably programmed processor and associated memory.

[0012] It is also to be understood that certain combinations of the various features described and defined in each aspect of the disclosure may be implemented and / or provided and / or used independently of one another.

[0013] The disclosure also provides computer programs and computer program products comprising software code configured to, when executed on a data processing device, perform any of the methods described herein and / or embody any of the device and system features described herein, including any or all component steps of a method.

[0014] The disclosure also includes a computer or computer system (including networked or distributed systems) having an operating system that supports a computer program for performing the methods described herein and / or for embodying the device or system features described herein.

[0015] The disclosure also provides a computer-readable medium on which one or more of the aforementioned computer programs are stored.

[0016] The disclosure also provides a signal carrying one or more of the aforementioned computer programs.

[0017] The disclosure extends to methods and / or devices and / or systems as described herein with reference to the accompanying drawings.

[0018] Aspects and embodiments of the disclosure will now be described, by way of example only, with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0019] The present systems and methods for processing information about node areas for autonomous and semi-autonomous systems are described in detail with reference to the attached drawing figures, where: Fig. 1 illustrates an example node engine configured to generate one or more node data structures in accordance with some embodiments of the present disclosure; Fig. 2A and Fig. 2B illustrate an example method associated with creating a node data structure in accordance with some embodiments of the present disclosure; Fig. 2C illustrates an example intersection region according to some embodiments of the present disclosure; Fig. 3 illustrates data structures that may be obtained as part of generating a node data structure in accordance with some embodiments of the present disclosure; Fig. 4 is a flowchart illustrating a method for generating intersection data structures related to yield scenarios in accordance with some embodiments of the present disclosure; Fig. 5A illustrates an example control system configured to determine a set of conflict rules for a node area, according to some embodiments of the present disclosure; Fig. 5B illustrates an example node region including multiple conflict points, according to some embodiments of the present disclosure; Fig. 6 is a flowchart illustrating a method for generating a set of conflict rules for a node area according to some embodiments of the present disclosure; Fig. 7A is an illustration of an exemplary autonomous vehicle, according to some embodiments of the present disclosure; Fig. Figure 7B is an example of camera locations and fields of view for the example autonomous vehicle of Fig. 7A, according to some embodiments of the present disclosure; Fig. 7C is a block diagram of an example system architecture for the example autonomous vehicle of Fig. 7A, according to some embodiments of the present disclosure; Fig. 7D is a system diagram for communication between the one or more cloud-based servers and the example autonomous vehicle of Fig. 7A, according to some embodiments of the present disclosure; Fig. 8 is a block diagram of an exemplary computing device suitable for use in implementing some embodiments of the present disclosure; and Fig. 9 is a block diagram of an example data center suitable for use in implementing some embodiments of the present disclosure. DETAILED DESCRIPTION

[0020] Vehicles frequently encounter right-of-way scenarios in which moving or dynamic and / or non-moving or static obstacles (e.g., other vehicles, pedestrians, cyclists, roadway barriers, and the like) may be located along a path of travel of the vehicles. Furthermore, the right-of-way scenarios may be associated with specific rules, laws, and / or protocols (commonly referred to as "conflict rules") that specify how the vehicles should behave in certain right-of-way scenarios. For example, in some right-of-way scenarios, a vehicle may have the right-of-way over a conflicting object based on the applicable conflict rules. In other right-of-way scenarios, the vehicle may be expected to yield the right-of-way to a conflicting object.Such yield-right scenarios may occur at (controlled and uncontrolled) intersections, crosswalks, merging lanes, motorway (or federal highway) ramps, roundabouts, access intersections, and the like, such as when navigating parking garages and / or parking lots. In the present disclosure, areas corresponding to potential yield-right scenarios—including those in warehouses or indoor spaces, e.g., for mobile robots—may be referred to as node areas or node points.

[0021] In addition, map data (e.g., high-resolution (HD) map data with an accuracy of 2 to 30 cm) representing geographic regions may contain intersection data associated with intersection areas. Generally, the map data may contain spatial geometric information about the corresponding geographic regions. Additionally or alternatively, the map data may contain semantic information that provides additional information about the corresponding geographic regions and elements within the corresponding geographic regions, such as element types, element descriptions, driving rules associated with specific elements or areas, etc.

[0022] In some cases, map data and the semantic information associated with it (e.g., encoded therein) may be used by vehicles or machines for self-directed maneuvers. For example, a control system that directs the maneuvering of an autonomous or semi-autonomous vehicle or machine may use the map data and the semantic information contained therein to identify routes and paths, objects, and yield scenarios that may arise when navigating a particular area. In these or other embodiments, the control system may use the map data and the corresponding semantic information to determine how to handle yield scenarios that may arise.

[0023] According to one or more embodiments of the present disclosure, map data associated with intersection areas ("intersection data") may be encoded with corresponding intersection data structures to enhance the semantic information of the map data. For example, according to one or more embodiments, corresponding intersection data structures may be generated for a corresponding intersection area. The corresponding intersection data structures may include one or more direction data structures, each containing a corresponding group of paths ("path group") passing through the corresponding intersection.One or more of the direction data structures may also each contain one or more groups of conflicts ("conflict group"), each conflict group being associated with a right-of-way scenario that may be encountered by a vehicle or machine traveling on one of the paths of the corresponding path group. In these or other embodiments, one or more of the direction data structures may each contain one or more direction rules. The direction rules may include conflict rules that dictate the waiting behavior of vehicles with respect to the path group of the corresponding data structure and that may be triggered by the conflicts of the conflict groups.

[0024] Therefore, the intersection data structures may indicate the potential right-of-way scenarios that may occur in the corresponding intersection areas. In these or other embodiments, the intersection data structures may also include associated directional rules that indicate vehicle behavior with respect to the potential right-of-way scenarios of the corresponding intersection area. Encoding the map data with the intersection data structures in the manner disclosed in the present disclosure may also improve the usability, accuracy, or precision of the map data by enhancing the semantic information contained in the map data.

[0025] For example, in one or more embodiments, the provision of semantic information regarding the many different right-of-way scenarios associated with intersection areas may be simplified by grouping the vehicle paths and conflict groups and assigning them to corresponding directional rules. For example, instead of having to define and assign conflict rules individually for each path within intersection areas and each conflict corresponding to each path, the directional data structures provide definition and assignment on a group basis based on similarities between the elements in each group (as further explained in the present disclosure). Such data structures based on groupings may be used to add useful information to map data while conserving computational resources (e.g.,processing and / or storage resources). Furthermore, in some cases, the framework of intersection data structures and corresponding directional data structures can be used to prescribe a visual representation of the intersection areas in which path groups and conflicts corresponding to the different path groups can be presented together. Representation in this way aids in identifying various potential right-of-way grant scenarios in the intersection areas, as well as in reviewing and editing logical details (e.g., details on how to address the various right-of-way grant scenarios) of the map data associated with the intersection areas. The improved ability to review and edit improves the map data itself (e.g., the semantic information related to right-of-way grant scenarios).In addition, improving map data can also improve the self-maneuvering operations of vehicles using the map data accordingly (e.g., it improves the ability of vehicles to handle yield-right scenarios autonomously and safely).

[0026] For example, according to one or more embodiments of the present disclosure, the intersection data structures may be used by a vehicle or other applicable machine to make decisions about how to proceed when encountering intersection areas. For example, in some embodiments, a control system of the vehicle may receive conflict data associated with a particular intersection area, where the conflict data corresponds to one or more conflict points of the intersection area. The conflict points may be portions of the intersection area that may influence the vehicle's queuing behavior with respect to one or more potential yield scenarios, as further explained in the present disclosure.

[0027] In these and other embodiments, the control system may determine a set of conflict rules for the intersection area based on the conflict data. The set of conflict rules may indicate respective wait behaviors that may be applied to the conflict points in relation to the state of the intersection area. For example, the set of conflict rules may indicate various types of maneuvers that may correspond to the conflict points and may indicate which wait behavior may be applied to respective maneuvers at the respective conflict points. Additionally or alternatively, the set of conflict rules may indicate which wait behavior may be applied at respective conflict points based on various states of traffic signals (e.g., red light, green light, yellow light, flashing light, etc.).

[0028] In these and other embodiments, the set of conflict rules may be used by the control system to determine which maneuvers to perform. For example, the perception data may indicate that the vehicle is about to encounter a particular conflict point, and the control system may accordingly identify from the set of conflict rules a subset of one or more conflict rules that may apply to the particular conflict point. The control system may then determine which waiting behavior is applicable to the vehicle from the subset of conflict rules based on a desired maneuver to be performed at the conflict point (and the waiting behavior corresponding to the desired maneuver) and / or a particular state of a traffic signal corresponding to the particular conflict point (if applicable).

[0029] One or more of the embodiments disclosed herein may relate to the negotiation of node domains using data structures corresponding to the node domains, and the embodiments described herein may be implemented in embodiments using one or more ego machines—such as any applicable machine or system capable of performing one or more autonomous and / or semi-autonomous operations. Example ego machines may include, but are not limited to, vehicles (land, sea, space, and / or air vehicles), robots, robotic platforms, etc.For example, the ego machine computing applications may include one or more applications that may be executed by an autonomous or semi-autonomous vehicle, such as the autonomous or semi-autonomous vehicle or machine 700 (alternatively referred to herein as “vehicle 700” or “ego machine 700”) described in relation to . Fig. 7A-7D. In the present disclosure, reference to an "autonomous vehicle" or a "semi-autonomous vehicle" may include any vehicle configured to perform one or more autonomous or semi-autonomous navigation or driving operations (e.g., some type of maneuvering operation such as turning, braking, accelerating, etc.). Thus, such vehicles may also include vehicles in which an operator is required or in which an operator may also perform such operations.

[0030] In addition, the systems and methods described herein may be used, without limitation, by non-autonomous vehicles or machines, semi-autonomous vehicles or machines (e.g., in one or more adaptive driver assistance systems (ADAS)), autonomous vehicles or machines, piloted and unpiloted robots or robotic platforms, warehouse vehicles, off-road vehicles, vehicles coupled to one or more trailers, flying boats, boats, shuttles, emergency vehicles, motorcycles, electric or motorized bicycles, aircraft, construction vehicles, underwater vehicles, drones, and / or other types of vehicles.

[0031] Additionally, the systems and methods described herein may be used for a variety of purposes, including, but not limited to, machine control, machine locomotion, machine propulsion, synthetic data generation, model training, perception, augmented reality, virtual reality, mixed reality, robotics, security and surveillance, simulation and digital twinning, autonomous or semi-autonomous machine applications, deep learning, environmental simulation, object or actor simulation and / or digital twinning, data center processing, conversational AI, light transport simulation (e.g., ray tracing, path tracing, etc.), collaborative content creation for 3D assets, cloud computing, and / or other technology areas where autonomous control systems may be used.

[0032] The embodiments disclosed herein may include a variety of different systems, such as automotive systems (e.g., a control system for an autonomous or semi-autonomous machine, a perception system for an autonomous or semi-autonomous machine), systems implemented with a robot, aviation systems, media systems, boat systems, intelligent area monitoring systems, systems for performing deep learning operations, systems for performing simulation operations, systems for performing digital twinning operations, systems implemented using an edge device, systems including one or more virtual machines (VMs), systems for performing synthetic data generation operations, systems implemented at least partially in a data center, systems for performing conversational AI operations, systems implementing one or more language models,such as one or more large language models (LLMs) that process text, audio, image, sensor, and / or other data types to produce one or more outputs, systems for hosting real-time streaming applications, systems for displaying virtual reality, augmented reality, or mixed reality content, systems for performing light transport simulations, systems for performing collaborative content creation for 3D assets, systems implemented at least in part using cloud computing resources, and / or other types of systems.

[0033] With reference to Fig. 1 illustrates Fig. 1 illustrates an exemplary node engine 102 configured to generate one or more node data structures 106 based on map data 104 in embodiments. The node engine 102 may be implemented in accordance with one or more embodiments of the present disclosure.

[0034] The map data 104, in some embodiments, may include high-resolution (HD) map data. HD map data may include data representing one or more geographic areas with a relatively high accuracy and resolution (e.g., with an accuracy of 2 to 50 cm). The map data 104 may include traditional information about the respective geographic areas, such as roads, geographic features, buildings, etc. In these or other embodiments, the map data 104 may include information describing lanes, including spatial positions of lanes and semantic information about each lane. The spatial position of a respective lane may include the geometric position in latitude, longitude, and / or altitude of the respective lane with a relatively high accuracy, for example, with an accuracy of 50 cm or less.The semantic information of a respective lane may include lane restrictions, such as the direction of travel of the respective lane, speed limits associated with the respective lane, the type of lane (e.g., a straight-ahead lane, a left-turn lane, a right-turn lane, an exit lane, and the like), left-turn restrictions, the connection to other lanes, etc.

[0035] In these or other embodiments, the map data 104 may include semantic information describing stop lines, yield lines, spatial locations of crosswalks and / or driveways, safe-to-drive spaces, spatial locations of speed bumps, curbs, etc. In these or other embodiments, the semantic information of the map data 104 may describe traffic signs, including the spatial location of the traffic signs and the type of signage that may be relevant to driving restrictions. Examples of traffic signs described by the map data 104 may include stop signs, traffic lights, speed limit signs, one-way signs, no-entry signs, yield signs (for vehicles, pedestrians, animals), etc.

[0036] In some embodiments, map data 104 may include intersection data relating to intersection areas of the respective geographic regions. As noted herein, intersection areas may include any area corresponding to a potential yield scenario that a vehicle or machine traversing the respective area may encounter.

[0037] The node engine 102 may be coded and provided with routines configured to enable a computer system to perform one or more operations. Additionally or alternatively, the node engine 102 may be implemented using hardware that includes a processor, a microprocessor (e.g., to perform or control the performance of one or more operations), a field-programmable gate array (FPGA), and / or an application-specific integrated circuit (ASIC). In some other cases, the node engine 102 may be implemented using a combination of hardware and software. In the present disclosure, the operations described as being performed by the node engine 102 may include operations that the node engine 102 may forward to an appropriate system for execution.

[0038] In some embodiments, the intersection engine 102 may be configured to generate one or more intersection data structures 106 based on the map data 104. In some embodiments, a respective intersection data structure 106 may include semantic information regarding the potential right-of-way scenarios that may occur at a corresponding intersection area. In these or other embodiments, the respective intersection data structure 106 may include semantic information regarding wait behaviors that may be associated with the potential right-of-way scenarios. In some embodiments, the intersection engine 102 may be configured to generate the intersection data structures 106 according to one or more operations of a process 200 described in the present disclosure with respect to Fig. 2A-2C is described in more detail.

[0039] In these or other embodiments, the intersection engine 102 may be configured to generate updated map data 108 based on the map data 104 and the intersection data structures 106. For example, in some embodiments, the intersection engine 102 may be configured to encode intersection data of the map data 104 associated with one or more intersection areas with corresponding intersection data structures 106 corresponding to the respective intersection areas to generate the updated map data 108. The updated map data 108 may accordingly include enhanced semantic information related to the intersection areas.

[0040] Changes, additions or omissions may be made to Fig. 1 without departing from the scope of the present disclosure. For example, in some embodiments, the map data 104 may correspond to any type of region or area, such as the interior of a building, a campus, or other area, and is not limited to strictly geographic regions.

[0041] Fig. 2A and Fig. 2B illustrate an example method 200 associated with generating a node data structure 226 according to one or more embodiments of the present disclosure. The method 200 may be performed by any suitable system, device, or apparatus using any combination of hardware, firmware, and / or software. For example, various operations may be performed by one or more processors executing instructions stored in memory. The operations of the process 200 may also be embodied as computer-readable instructions stored on computer storage media.Additionally or alternatively, one or more of the operations of process 200 may be provided by a standalone application, a service, or a hosted service (standalone or in combination with another hosted service), or a plug-in for another product, to name a few. For example, in some embodiments, one or more operations of process 200 may be provided by the methods described with respect to [ ]. Fig. 1 described node machine 102. In these or other embodiments, one or more operations may be performed by a computing system, such as a Fig. 8 computing system 800 described in more detail.

[0042] In some embodiments, the process 200 may include a node area identification 202. The node area identification 202 may include identifying a node area 206 of a region based on map data 204 that is analogous to the map data 104 of Fig. 1. For example, the intersection engine 102 may be configured to identify areas of the region over which a vehicle may navigate, such as roads and / or corresponding lanes (commonly referred to as "navigation routes"). In some embodiments, the intersection engine 102 may identify the navigation routes based on corresponding semantic data included in the map data 204.

[0043] In these or other embodiments, the intersection engine 102 may be configured to identify one or more areas as an intersection area 206 that may intersect with a navigation route and that may represent a potential right-of-way scenario related to traversing a navigation route. For example, the intersection engine 102 may identify intersections, merging lanes, crosswalks, driveways that intersect with navigation paths, etc., to identify the intersection area 206. In some embodiments, the intersection engine 102 may be configured to identify the intersection area 206 using the semantic information included in the map data 204 to identify elements that may represent potential right-of-way scenarios.In these or other embodiments, the node engine 102 may be configured to identify the node area 206 based on user input.

[0044] Additionally or alternatively, in some embodiments, the intersection area 206 may be defined using a bounding volume that may surround the features of the intersection area 206. For example, the bounding volume may surround all features of the intersection area 206, including traffic lights and / or signs, crosswalks, lane crossings, access intersections, lane merges, bicycle lanes, railroad tracks, streetcar or tram tracks (e.g., paths traveled by streetcars or trams) of the intersection area 206, etc. Additionally or alternatively, the boundaries of the bounding volume may be such that navigation lanes entering and / or exiting the intersection area 206 may each be intersected by a boundary of the bounding volume.The bounding volume may have any suitable two-dimensional or three-dimensional shape that can be used to define the node region 206. For example, in some embodiments, the bounding volume may be a convex polygon. In these or other embodiments, the edges of the polygon may be the boundaries.

[0045] In some embodiments, identifying the node region 206 may include obtaining (e.g., creating) node region data structures that contain information about the node region 206. Furthermore, in the present disclosure, the general reference to the "node region 206" may also include a reference to the information about the node region 206 and / or the corresponding node region data structure. An example of the node region data structure is described with respect to Fig. 3 is explained in more detail.

[0046] As an example, Fig. 2C illustrates an example intersection region 206a according to one or more embodiments of the present disclosure. The intersection region 206a may correspond to an intersection and be defined by a rectangular polygon 250. The intersection of the intersection region 206a may include a first lane 254a, a second lane 254b, a third lane 254c, a fourth lane 254d, a fifth lane 254e, a sixth lane 254f, a seventh lane 254g, and an eighth lane 254h. The respective directions of the lanes 254 are indicated by the respective arrows located in the lanes 254 outside the polygon 250.

[0047] The polygon 250 may include a first edge 252a, a second edge 252b, a third edge 252c, and a fourth edge 252d. Each edge 252 may intersect one or more of the lanes 254 such that the edges 252 may intersect the lanes 254 in the Fig. 2C illustrated manner.

[0048] Back to Fig. 2A: In some embodiments, process 200 may include path identification 208. Path identification 208 may include identifying potential paths 210 that may be taken through interchange area 206. For example, in some embodiments, interchange engine 102 may be configured to identify paths 210 based on connections between lane entry and exit points in interchange area 206. Additionally, paths 210 may be identified based on rules that may be associated with the corresponding lanes. In some embodiments, the entry and exit points may correspond to the boundaries of a bounding volume that defines interchange area 206.

[0049] For example, as in Fig. 2C, edge 252a of polygon 250 may be an entry point for lanes 254a and 254b and an exit point for lanes 254c and 254d. Furthermore, edge 252b may be an entry point for lanes 254e and 254f and an exit point for lane 254g. Likewise, edge 252c may be an entry point for lanes 254c, 254d, and 254h and an exit point for lanes 254a and 254b. Furthermore, edge 252d may be an entry point for lane 254g and an exit point for lanes 254e and 254f.

[0050] Additionally, a first path 210a may be identified between edge 252a and edge 252c based on edge 252a being the entry point for lane 254a and edge 252c being the exit point for lane 254a. Similarly, a second path 210b may be identified between edge 252a and edge 252c based on edge 252a being the entry point for lane 254b and edge 252c being the exit point for lane 254b. Additionally, a third path 210c may be identified between edge 252a and edge 252c based on edge 252a being the exit point for lane 254c and edge 252c being the entry point for lane 254c. Paths 210e, 210f, and 210g can be identified in a similar manner based on the respective entry and exit points of lanes 254e, 254f, and 254g.

[0051] Furthermore, in some embodiments, one or more of the paths 210 may relate to possible maneuvers that may result in a transition from one lane to another. For example, a right turn from lane 254a to lane 254e, or from lane 254e to lane 254d, or from lane 254c to lane 254g, or from lane 254g to lane 254a may be permitted. Accordingly, a path 210i relating to a right turn from lane 254a to lane 254e may be identified based on edge 252a as the entry point for lane 254a, based on edge 252d as the exit point for lane 254e, and based on the permissibility of the right turn from lane 254a to lane 254e. The illustrated right-turn paths 210k, 210l, and 210m can be identified in a similar way.In addition, the illustrated left-turn paths 210j and 210h, which relate to left-turn operations from lanes 254b and 254h, respectively, may also be identified in a similar manner.

[0052] Back to Fig. 2A: In some embodiments, identifying the paths 210 may include obtaining (e.g., receiving or creating) path data structures that each contain information about the paths 210. Furthermore, in the present disclosure, the general reference to the "paths 210" may also include a reference to the information about the paths 210 and / or the corresponding path data structures. An example of the path data structures is described with respect to Fig. 3 is explained in more detail.

[0053] In some embodiments, process 200 may include conflict identification 212, which may include identification of conflicts 214 of intersection area 206. Conflicts 214 may include any area of ​​intersection area 206 that may influence vehicle waiting behavior with respect to potential right-of-way scenarios. The influence of vehicle waiting behavior may include the potential presence of another object in a path that may cause a right-of-way scenario (e.g., intersecting paths, converging paths, a pedestrian area (e.g., a crosswalk, a sidewalk, etc.), an on-ramp area, a lane crossing, a bike path, a travel lane line, a streetcar lane, a tramway lane, etc.). The conflicts that may create a potential right-of-way scenario may be generally referred to as "conflicts 213."Some examples of conflicts 213 may include intersecting paths, converging paths, a pedestrian area (e.g., a crosswalk, a sidewalk, etc.), a driveway area, a lane crossing, a bicycle path, a lane line, a streetcar lane, a tramway lane, etc.

[0054] Additionally or alternatively, the influence of waiting behavior may include laws, regulations, driving standards, etc., that may dictate waiting behavior with respect to right-of-way scenarios. Therefore, in some embodiments, conflicts 214 may also include signals 215 that may indicate a particular waiting behavior with respect to corresponding right-of-way scenarios. For example, signals 215 may include traffic signals such as traffic lights, stop signs, yield signs, lane transition signs, lane transition gates, etc. In these or other embodiments, multiple signals 215 may correspond to the same physical object. For example, a traffic light may have a green light, a red light, a yellow light, flashing lights, etc. Each light state may correspond to a different waiting behavior and may accordingly be considered a different signal 215.Therefore, in the present disclosure, reference to a “signal 215” in connection with a conflict 214 may include individual light states of a traffic light.

[0055] In some embodiments, identifying the conflicts 214 may include obtaining (e.g., receiving or creating) conflict data structures, each containing information about the conflicts 214. Furthermore, in the present disclosure, general reference to the "conflicts 214" may also include a reference to the information about the conflicts 214 and / or the corresponding conflict data structures. One or more examples of the conflict data structures are described with respect to Fig. 3 is explained in more detail.

[0056] In some embodiments, the process 200 may include a path grouping 216, which may include identifying one or more groups of paths ("path groups 218"). Although the term "group" is used, each path group 218 may include a single path 210 or multiple paths 210. In some embodiments, the path grouping 216 may organize the paths 210 into the path groups 218 according to shared right-of-way scenarios (e.g., caused by the same or similar conflicts 214) by the paths 210.

[0057] In these or other embodiments, an indication of whether a particular path 210 may have the same or similar yield scenarios as another path 210 may be based on whether the paths 210 relate to the same maneuver through the interchange area 206 in a common direction. A maneuver may include a series of one or more actions that may be performed by a vehicle to travel through the interchange area 206. For example, a maneuver may include traveling straight through the interchange area 206, turning right, turning left, merging with another path 210, etc.In these or other embodiments, a determination of which paths 210 may have the same maneuver in a common direction may be made based on whether the paths 210 have the same entry point into the interchange area 206 and the same exit point from the interchange area 206. Therefore, in some embodiments, the paths 210 may be grouped by common entry and exit points of the interchange area 206. In some embodiments, the path grouping 216 may also include annotation information related to the path groups 218, with information related to the directionality of the maneuvers associated with the respective path groups 218.

[0058] For example, the paths 210 to Fig. Returning to Figure 2C, paths 210a and 210b may be grouped by common entry and exit points (e.g., by using the same edge 252 of polygon 250 as the entry point and the same edge 252 of polygon 250 as the exit point). For example, paths 210a and 210b may be grouped into a first path group based on edge 252a as the entry point for both paths 210a and 210b and based on edge 252c as the exit point for both paths 210a and 210b. Paths 210c and 210d may be grouped into a second path group based on a similar analysis, and paths 210e and 210f may be grouped into a third path group.

[0059] In these and other embodiments, paths 210h, 210i, 210j, 210k, 210l, and 210m may be individually specified as their own respective path group of only one path. In particular, paths 210h, 210i, 210j, 210k, 210l, and 210m may refer to a respective turn maneuver, where the directionality for each respective turn maneuver of each of paths 210h, 210i, 210j, 210k, 210l, and 210m through the intersection area 206a is different. Such differences in maneuvers are indicated by the fact that none of the paths 210h, 210i, 210j, 210k, 210l, and 210m have the same set of entry and exit points as any other path 210 of the intersection area 206.

[0060] Back to Fig. 2A: In some embodiments, identifying the path groups 218 may include obtaining (e.g., receiving or creating) path group data structures that each contain information about the path groups 218. Furthermore, in the present disclosure, general reference to the "path groups 218" may also include a reference to the information about the path groups 218 and / or the corresponding path group data structures. One or more examples of the path group data structures are described with respect to Fig. 3 is explained in more detail.

[0061] In some embodiments, process 200 may include conflict analysis 220. Conflict analysis 220 may include analyzing conflicts 214 to organize conflicts 214 into one or more conflict groups 222. Although the term "group" is used, each claim group 222 may include a single claim 214 or multiple claims 214. In some embodiments, claim analysis 220 may include organizing claims 214 based on the waiting behavior of vehicles that may be influenced by claims 214 on the path.

[0062] For example, in some embodiments, the conflicts 214 may initially be classified based on whether the conflicts 214 generate right-of-way scenarios or whether the conflicts 214 are elements indicating wait behavior (e.g., traffic signals) associated with right-of-way scenarios. For example, in some embodiments, the conflicts 214 may initially be classified based on whether the conflicts 214 are conflicts 213 over paths or signals 215.

[0063] In these or other embodiments, signals 215 may be classified into signal groups 221 according to their respective directions relative to the intersection area 206. Signal directionality may relate to which directions of travel may be affected by the corresponding signals 215. For example, signal directionality may be based on the direction in which a traffic light, stop sign, or yield sign may point. Such directionality may be determined by determining a normal to a surface of signal 215 and a bounding volume boundary that intersects this normal.

[0064] Additionally or alternatively, the signals 215 may be grouped according to the waiting behaviors specified by the corresponding traffic signals. For example, traffic signals that specify the same type of waiting behavior may be grouped together.

[0065] In these or other embodiments, the signal groups 221 may be organized based on a combination of signal directionality and wait behavior corresponding to the signals 215. For example, the signals 215 may first be grouped according to directionality, and then these signal groups 221 may be classified into corresponding subgroups according to the corresponding wait behavior.

[0066] In these or other embodiments, the conflicts 213 that generate potential right-of-way scenarios may also be grouped into conflict groups 223 according to the types of right-of-way scenarios and wait behaviors that may correspond to such conflicts 213. For example, conflicts 213 related to merging paths may have different wait behaviors than those related to intersecting paths, which in turn may be different from those related to oncoming traffic, pedestrian zones, lane crossings, bicycle lanes, rails, streetcar tracks, tram tracks, or driveways. Therefore, in some embodiments, the conflict groups 223 may initially be organized according to the conflict types.

[0067] In these or other embodiments, the organization of conflicts 213 into conflict groups 223 may be based on which paths 210 or path groups 218 may correspond to which conflicts 213. For example, all conflicts 213 that correspond to a same path group 218 may be organized into a same conflict group 223. Additionally or alternatively, all conflicts 213 shared by two or more path groups 218 may be organized into a same conflict group 223.

[0068] In these or other embodiments, conflict groups 223 may be organized based on a combination of shared paths 210 or path groups 218 and conflict types. For example, conflicts 213 may first be grouped by shared paths or path groups, and then these conflict groups 223 may be classified into corresponding subgroups by corresponding conflict types.

[0069] In some embodiments, identifying the conflict groups 222 may include obtaining (e.g., receiving or creating) conflict group data structures that each contain information about the conflict groups 222. Furthermore, in the present disclosure, general reference to the "conflict groups 222" may also include a reference to the information about the conflict groups 222 and / or the corresponding conflict group data structures. One or more examples of the conflict group data structures are described with respect to Fig. 3 is explained in more detail.

[0070] In some embodiments, the process 200 may include creating a node data structure 224. Creating the node data structure 224 may include creating a node data structure 226 corresponding to the node area 206. The node data structure 226 may be an example of the node data structures 106 of Fig. 1. In these or other embodiments, the intersection data structure 226 may contain information about the paths 210, path groups 218, conflicts 214, and conflict groups 222 that may be associated with the intersection area 206. Additionally or alternatively, the intersection data structure 226 may indicate associations between the conflict groups 222 and the path groups 218. The associations may indicate which of the conflict groups 222 may influence vehicle behavior with respect to which of the path groups 218. In these or other embodiments, the associations may also indicate the wait behavior that may apply to the respective path groups with respect to the respective associated conflict groups.

[0071] For example, in some embodiments, the node data structure 226 may include one or more direction data structures 228. In these or other embodiments, a respective direction data structure 228 may correspond to a respective path group 218. Additionally or alternatively, a respective direction data structure 228 may indicate which conflict groups 222 of the respective path group 218 may be associated with the respective direction data structure 228. In these or other embodiments, a respective direction data structure 228 may include one or more direction rules 230.In general, the direction rules 230 may specify a set of conditions that may be evaluated to determine the vehicle waiting behavior that should be performed by vehicles traversing respective paths 210 of the corresponding path group 218 with respect to right-of-way grant scenarios corresponding to the conflict zones 222 associated with the respective paths 210 of the corresponding path group 218.

[0072] In some embodiments, generating the node data structure 224 may include obtaining direction rules 230 for the various direction data structures 228. In these or other embodiments, the direction rules 230 may be obtained based on relationships between characteristics of the respective path groups 218 and their associated conflict groups 222. For example, in some embodiments, the direction rules 230 may be identified using a pattern-based technique that maps conflict rules corresponding to particular conflicts 214 to particular path archetypes of the paths 210 of the corresponding path groups 218.

[0073] For example, in some embodiments, a rule library 232 may contain conflict rules associated with corresponding conflict situations and specifying wait behaviors related to the right-of-way scenarios associated with the corresponding conflict situations. Furthermore, the conflict rules and associated conflict situations contained in the rule library 232 may be associated with corresponding types of path maneuvers to which the conflict rules are applicable. For example, in some embodiments, the rule library 232 may be configured as a lookup table that specifies the corresponding mappings.

[0074] In these or other embodiments, for example, particular direction rules 230 for a particular direction data structure 228 may be identified accordingly by accessing the rule library 232 and retrieving the conflict rules contained therein that are associated with particular conflict situations 214 of a particular conflict group 222 of the particular direction data structure 228. The respective conflict rules may also be associated in the rule library 232 with a particular path maneuver corresponding to the respective path group 218 of the data structure 228 for the respective direction. In these or other embodiments, the particular conflict rules corresponding to the particular conflict group, as applied with respect to the particular path maneuver of the particular path group, may be obtained as the particular direction rules 230.

[0075] In some cases, accessing the rule library 232 may not result in obtaining a corresponding direction rule 230 (e.g., if the rule library 232 does not contain a matching pattern). In some embodiments, obtaining the corresponding direction rule 230 may include obtaining input (e.g., user input) that may contain information that can be used to define the corresponding direction rule.

[0076] As another example, in some embodiments, the directional rules 230 may be identified using any suitable neural network instead of, or in addition to, using the rule library 232. For example, the neural network may be trained with training data indicating which wait behaviors may be followed depending on particular conflict situations and conflict situation types, and with respect to particular path archetypes (e.g., particular path directions, path types, etc.). In these or other embodiments, the conflict groups corresponding to a particular path group and the associated mapping may be provided as input to the neural network, which may output applicable directional rules 230.

[0077] In some embodiments, obtaining the direction rules 230 may include obtaining direction rule data structures, each containing information about the direction rules 230. Furthermore, in the present disclosure, the general reference to the "direction rules 230" may also include a reference to the information about the direction rules 230 and / or the corresponding direction rule data structures. One or more examples of the direction rule data structures are described with respect to Fig. 3 is explained in more detail.

[0078] In some embodiments, the direction data structures 228 may indicate the mappings between their respective path groups 218 and the corresponding conflict groups 222 and direction rules 230 by including the corresponding data structures of the respective path groups 218 and the corresponding conflict groups 222 and direction rules 230 as part of the respective direction data structures 228. The mappings of the direction data structures 228 to the node data structure 226 may thus indicate the respective wait behaviors applicable to the various paths of the node area 206.

[0079] In some embodiments, process 200 may include a data update 240. Data update 240 may include updating data with node data structure 226. For example, in some embodiments, map data 204 may be updated to include node data structure 226 to generate updated map data 242. In these or other embodiments, updating map data 204 may include augmenting portions of map data 204 associated with node area 206 with node data structure 226.

[0080] In some embodiments, the data update 240 may also include exporting the updated map data 242 to map data that may be stored in a vehicle (e.g., the HD map 722 stored in a vehicle 700 that is related to Fig. 7C). In these or other embodiments, the vehicle may use the updated map data 242 to perform one or more navigation operations and / or determinations. For example, the vehicle may use the information in the intersection data structure 226 to determine its waiting behavior with respect to the intersection area 206, as described in the present disclosure, for example, with respect to Fig. 5 and Fig. 6. In some embodiments, exporting the updated map data 242 may include translating the information from the intersection data structure 226 into hold geometry data, such as the hold geometry data discussed in U.S. Patent Application No. 17 / 512,495, filed October 27, 2021, which is incorporated by reference into the present disclosure in its entirety.

[0081] In some embodiments, the data update 240 may include an update to the rule library 232. For example, as noted in the present disclosure, in some cases, one or more direction rules 230 may be associated with particular conflict rules and paths not found in the rule library 232. In some embodiments, the rule library 232 may be updated to include the associations to such direction rules 230 so that the rule library 232 may be enhanced.

[0082] In these or other embodiments, data update 240 may include training a neural network with mappings that may correspond to one or more of the direction rules 230. Additionally or alternatively, data update 240 may include a validation process that may be used to validate the node data structure 226. The validation may be used to identify and correct errors.

[0083] The process 200 of Fig. 2A and Fig. 2B may accordingly be used to generate the intersection data structure 226, which may contain semantic information about waiting behaviors that may be associated with the potential yield scenarios of the intersection area 206. Furthermore, the method 200 may be used to enhance the map data 204 and the ability to perform navigation using the map data 204.

[0084] Changes, additions, or omissions may be made to the method 200 without departing from the scope of the present disclosure. For example, the order of one or more of the described operations may differ from the order in which they were described or illustrated. Furthermore, each operation may include more or fewer operations than those described. Furthermore, the description of the operations and elements is for explanatory purposes only and is not intended to limit actual implementation.

[0085] Fig. 3 illustrates data structures 300 that may be obtained as part of generating a node data structure according to one or more embodiments of the present disclosure. The data structures 300 may include a node range data structure 302 ("range structure 302"), a path data structure 304 ("path structure 304"), a path group data structure 306 ("path group structure 306"), a conflict data structure 308 ("conflict structure 308"), a signal data structure 310 ("signal structure 310"), a signal group data structure 312 ("signal group data structure 312"), a conflict group data structure 314 ("conflict group data structure 314"), and a direction rule data structure 316 ("direction rule structure 316").

[0086] The area structure 302 may generally contain information that may assist in defining a corresponding node area, such as the node area 206 in Fig. 2A. For example, the region structure 302 may indicate positions and / or dimensions of a bounding volume that may define the corresponding node region. For example, in some embodiments where a polygon is used as the bounding volume, the region structure 302 may include one or more vertex fields containing information indicating the positions of polygon vertices of the polygon that may define the corresponding node region. Additionally or alternatively, the region structure 302 may include one or more edge fields containing information defining the edges of the polygon. In these or other embodiments, the edge field information may define the edges by indicating which vertices may be connected to create the respective edges.

[0087] In these or other embodiments, the area structure 302 may include one or more element fields. The element fields may include information indicating elements that may be included in the corresponding intersection area. For example, the element field information may indicate lanes, pavement markings, dividers, signals, crosswalks, lane crossings, driveways, buildings, bicycle paths, railroad tracks, streetcar tracks, and / or other objects (e.g., trees, rocks, etc.) that may be located within the corresponding intersection area. In these or other embodiments, the element field information may include the locations of the elements in the corresponding intersection area.

[0088] Additionally or alternatively, the region structure 302 may include one or more lane anchor fields. Lane anchors may be the entry and exit points of lanes into and out of the corresponding intersection region. Therefore, in some embodiments, the lane anchor fields may include information related to locations where the lanes of the corresponding intersection region intersect the respective edges of the polygon that may define the corresponding intersection region.

[0089] The path structure 304 may generally contain information that can help define a corresponding path, such as a path 210 in Fig. 2A. For example, path structure 304 may include one or more lane fields that may indicate which lanes may be part of the corresponding path. In these or other embodiments, path structure 304 may include one or more lane object fields that may indicate objects corresponding to the lanes (e.g., lane markings, stop lines, etc.).

[0090] Additionally or alternatively, the path structure 304 may include a path entry line field. As stated in the present disclosure, an entry line may include a virtual line across a travel lane that precedes a conflict area of ​​a corresponding intersection area. A conflict area may include an area where a conflicting object (e.g., another vehicle, a pedestrian, a cyclist, etc.) may be in the path of a vehicle traveling in the travel lane. For example, a conflict area may include a crosswalk in the travel lane, an area where the travel lane crosses another travel lane, an area where the travel lane crosses an on-ramp, an area where the travel lane crosses a lane transition, an area where the travel lane crosses bicycle paths, railroad tracks, streetcar tracks, etc.In some embodiments, the entry lines may each be determined to be located at a point where the vehicle can safely stop or yield the right-of-way to a conflicting object that may be located within a corresponding conflict area. In these or other embodiments, the entry line may indicate the starting point of a maneuver corresponding to the corresponding path. The entry line field may contain information indicating the position of the entry line that can be determined for the corresponding path.

[0091] In these or other embodiments, path structure 304 may include a path exit line field. As noted in the present disclosure, an exit line may include a virtual line that, when passed by a vehicle, indicates that a corresponding conflict area has been exited (e.g., indicating the end of a maneuver). The exit line field may include information indicating the position of the exit line that can be determined for the corresponding path.

[0092] In these or other embodiments, the path structure 304 may include a wait line field. The wait line field may include information indicating the position of a wait line that may correspond to the corresponding path. The wait line may be a location where a vehicle stops when performing a yield action. The wait line may be based on the location where the vehicle can stop without becoming a conflicting object with another vehicle traversing a different path. In some embodiments, a path's wait line may be the same as the path's entry line. In these or other embodiments, the wait line may be a stop line that may be applied to a travel lane of the corresponding path. The wait line field may include information indicating the respective positions of one or more wait lines that may be determined for the corresponding path.

[0093] Additionally or alternatively, the path structure 304 may include a maneuver field. The maneuver field may contain information indicating the maneuver being performed with respect to the corresponding path.

[0094] The path group structure 306 may generally contain information that can help in defining a corresponding path group, such as a path group 218 of Fig. 2A. For example, path group structure 306 may include one or more path fields that may contain information indicating which paths are part of the corresponding path group. In these or other embodiments, the path fields may contain the path data structures of the corresponding paths.

[0095] In these or other embodiments, path group structure 306 may include a maneuver field. The maneuver field may include information indicating the maneuver common to all paths of the corresponding path group. Additionally or alternatively, path group structure 306 may include a path entry line field. The path entry line field may include information indicating the path entry line, which may be common to all paths of the corresponding path group. In these or other embodiments, path group structure 306 may include a path exit line field. The path exit line field may include information indicating the path exit line, which may be common to all paths of the corresponding path group.

[0096] The conflict structure 308 may generally contain information that can help define a corresponding conflict, such as a conflict 213 of the conflicts 214 in Fig. 2A. For example, the conflict structure 308 may include one or more path fields that may indicate which paths can be associated with the corresponding conflict and, accordingly, may indicate a conflicting semantic relationship between the paths contained in the one or more path fields. In these or other embodiments, the conflict structure 308 may include a conflict point field. The conflict point field may include information indicating an environment in which the conflicting paths may intersect and, accordingly, compete with each other. Additionally or alternatively, the conflict structure 308 may include a conflict type field. The conflict type field may include information indicating the type of conflict.For example, the conflict type field can contain information indicating whether the conflict involves intersecting paths, merging paths, and so on.

[0097] The signal structure 310 may generally contain information that can help define a corresponding signal, such as a signal 215 of the conflicts 214 in Fig. 2A. For example, signal structure 310 may include a signal type field that may contain information indicating the signal type. For example, the signal type field may contain information indicating whether the corresponding signal is a stop sign, a yield sign, a railroad crossing sign, a green light, a yellow light, a red light, a green turn arrow, a red turn arrow, a yellow turn arrow, etc.

[0098] In these or other embodiments, signal structure 310 may include a signal directionality field containing information indicating a directionality of the corresponding signal. In some embodiments, the signal directionality field may, for example, contain information indicating which edge of the corresponding node the corresponding signal can apply to. In these or other embodiments, this is the indication of which edge is an indication of a specific polygon edge of the polygon defining the corresponding node area.

[0099] The signal group structure 312 may generally contain information that can help in defining a corresponding signal group, such as a signal group 221 from Fig. 2A. For example, signal group structure 312 may include one or more signal fields that may contain information indicating which signals are part of the corresponding signal group. In these or other embodiments, the signal fields may contain the signal data structures of the corresponding signals.

[0100] In these or other embodiments, signal group structure 312 may include a signal type field. The signal type field may include information indicating the signal type common to all signals of the corresponding signal group. Additionally or alternatively, signal group structure 306 may include a signal directionality field. The signal directionality field may include information indicating the directionality of the signals of the corresponding signal group. In these or other embodiments, the directionality information may be similar or analogous to that used for signal structure 310.

[0101] The conflict group structure 314 may generally contain information that can help in defining a corresponding conflict group, such as a conflict group 222 from Fig. 2A. For example, conflict group structure 314 may include one or more path fields that may contain information indicating which paths are part of the corresponding conflict group. In these or other embodiments, the path fields may contain the path data structures of the corresponding paths.

[0102] Additionally or alternatively, the conflict group structure 314 may include a conflict type field. The conflict type field may contain information indicating the type of conflict common to all paths of the corresponding conflict group. The information in the "Conflict Type" field may be similar or analogous to that used for the conflict structure 308.

[0103] The direction rule structure 316 may generally contain information that may assist in defining a corresponding direction rule, such as a direction rule 230 of Fig. 2B. For example, the direction rule structure 316 may include a target field, which may contain information indicating a target of the corresponding direction rule. A target of the corresponding direction rule may indicate which conflict the corresponding direction rule applies to. For example, a target may be a conflict, a signal, etc. In these or other embodiments, one or more targets may include a combination of a path and a corresponding signal, where such targets may indicate that the path's wait behavior is dictated by the corresponding signal.

[0104] In these or other embodiments, the directional rule structure 316 may include one or more maneuver fields. The maneuver field may contain information indicating a specific maneuver to which the corresponding directional rule may be applied.

[0105] Additionally or alternatively, the directional rule structure 316 may include one or more wait behavior fields that may indicate a wait behavior that may be performed with respect to the conflicting goal and the particular maneuver. In these or other embodiments, the wait behavior information may include a core wait behavior. The core wait behavior may include the conflict rules that may indicate which actions should be performed with respect to the conflicting goal. Some example core behaviors may include an unknown behavior, a yield behavior, a stop-enter behavior, a yield-enter behavior, a yield-conflict behavior, a first-to-stop, right-of-way behavior, a negotiation behavior, a disallowed behavior, or a prohibited behavior.Additionally or alternatively, the wait behavior information may include one or more behavior modifiers, each of which may correspond to one or more of the core wait behaviors.

[0106] Unknown behavior information may indicate that the conflict rules associated with the corresponding conflict and maneuver may be unknown. In these or other embodiments, the unknown behavior information may indicate that the vehicle should stop at a waiting line when encountering a conflict with unknown conflict rules.

[0107] Yield behavior information may indicate that the conflict rules associated with the corresponding conflict and maneuver may indicate that the vehicle has the right-of-way. In these or other embodiments, the yield behavior information may indicate that the vehicle should expect other vehicles to yield the right-of-way and continue on their current path. A green light signal is an example of a conflict situation to which yield behavior information may be applied.

[0108] Stop-entry behavior information may indicate that the conflict rules associated with the corresponding conflict situation and the corresponding target maneuver may require the vehicle to stop at a hold line. In these or other embodiments, the stop-entry behavior information may indicate that the vehicle should stop at a corresponding hold line. A red light signal is an example of a conflict situation to which stop-entry behavior information may be applied.

[0109] Right-of-way entry behavior information may indicate that the conflict rules associated with the corresponding conflicting objective and maneuver may require the vehicle to remain at a hold line until the path is clear. In these or other embodiments, the right-of-way entry behavior information may include an optional behavior flag that may indicate whether the vehicle should pre-stop at the corresponding hold line before proceeding, even if there is no conflicting object in the path. A stop sign is an example of a conflict to which right-of-way entry behavior information with a pre-stop indication may be applied. A yield sign is an example of a conflict to which right-of-way entry behavior information without a pre-stop indication may be applied.

[0110] Right-of-way conflict behavior information may indicate that the conflict rules associated with the corresponding conflict and maneuver may state that the vehicle may not block the path of a conflicting object and that the vehicle should behave as if it were yielding the right-of-way. In these or other embodiments, right-of-way conflict behavior information may indicate that the vehicle does not need to wait in a hold line. In these or other embodiments, the right-of-way conflict behavior information may include an optional behavior flag that may indicate whether the vehicle should pre-stop before proceeding, even if no conflicting object is in the path. An asymmetric path junction is an example of a conflict situation to which right-of-way conflict behavior information may be applied.

[0111] The information about the behavior "first to stop has the right of way" may indicate that the conflict rules associated with the corresponding goal conflict and maneuver may be such that the right of way is determined as a "first to arrive, first to go" waiting line, where "arrive" can be defined as being the first actor from that path to approach the intersection area and stop. A four-way stop is an example of a conflict situation where the information about the preceding behavior can be applied.

[0112] The negotiation behavior information may indicate that the conflict rules associated with the corresponding goal conflict and maneuver may be such that there is no established basis for determining right-of-way. In these or other embodiments, the negotiation behavior information may indicate that conflicting vehicles need to coordinate with each other on how to negotiate the appropriate right-of-way scenario. A symmetrical path merging is an example of a conflict situation to which negotiation behavior information may be applied.

[0113] Changes, additions or omissions may be made to Fig. 3 without departing from the scope of the present disclosure. For example, the contents and / or fields of data structures 300 may differ from those described. Furthermore, the format of the data structures may vary depending on the implementation.

[0114] In relation to Fig. 4, each block of method 400 and other methods described herein comprises a computational process that may be performed using any combination of hardware, firmware, and / or software. Various functions may be performed, for example, by a processor executing instructions stored in memory. The methods may also be embodied as computer-usable instructions stored on computer storage media. The methods may be provided by a standalone application, a service or hosted service (standalone or in combination with another hosted service), or a plug-in for another product, to name a few. Furthermore, the method 400 is exemplary described with respect to the node engine 102 in Fig. 1. However, these methods may additionally or alternatively be performed by any system or combination of systems, including, but not limited to, the systems described herein.

[0115] Fig. 4 is a flowchart illustrating a method 400 for generating intersection data structures related to right-of-way scenarios, according to some embodiments of the present disclosure. The method may be executed via an intersection engine, such as, but not limited to, the intersection engine 102 of Fig. 1.

[0116] The method 400 includes, in block B402, identifying an intersection area in map data of an area. The intersection area may be associated with one or more potential right-of-way scenarios associated with vehicles traveling through a corresponding geographic area represented by the map data. In some embodiments, identifying the intersection area may include one or more operations related to identifying the intersection area 202 in Fig. 2A are described.

[0117] In block B404, one or more vehicle paths traversing the intersection area may be organized according to one or more path groups. The organization of the path groups may be based on the directionality of the vehicle paths through the intersection area. In some embodiments, the organization of the path groups may include one or more operations performed on the path identification 208 and / or the path grouping 216 of Fig. 2A are described.

[0118] At block B406, one or more conflicts affecting the behavior of vehicles traveling on the vehicle paths may be organized according to one or more conflict groups. The organization of the conflict group may be based on the vehicle behavior affected by the conflicts. In some embodiments, the organization of the conflict groups may include one or more operations related to the conflict identification 212 and / or the conflict analysis 220 of Fig. 2A are described.

[0119] In block B408, one or more link direction data structures may be created. The one or more link direction data structures may each associate a corresponding path group with at least one of the one or more conflict groups. In some embodiments, the creation of the node direction data structures may include one or more operations related to the creation of the node data structure 224 in Fig. 2B are described.

[0120] In block B410, the map data corresponding to the node area may be updated with one or more node direction data structures. In some embodiments, updating the map data may include one or more operations related to the data update 240 of Fig. 2B are described.

[0121] Changes, additions, or omissions may be made to method 400 without departing from the scope of the present disclosure. For example, the functions and / or operations performed may be implemented in different orders. Furthermore, the described functions and operations are provided only as examples, and some of the functions and operations may be optional, combined into fewer functions and operations, or expanded into additional functions and operations without affecting the essence of the disclosed embodiments. In some embodiments, method 400 may include additional blocks or fewer blocks.

[0122] For example, in some embodiments, method 400 may include one or more other operations, such as updating a rule library and / or validating the node data structures. Additionally or alternatively, method 400 may include providing the updated map data to a control agent of a vehicle (e.g., vehicle 700 of the Fig. 7A-7D), wherein the control agent is configured to determine a right-of-way behavior based on the updated map data.

[0123] Fig. 5A illustrates an exemplary control system 500 ("System 500") configured to generate a set of conflict rules for an intersection area. System 500 may be implemented in accordance with one or more embodiments of the present disclosure. In some embodiments, system 500 may correspond to (e.g., be deployed on) any applicable machine, such as vehicle 700 of Fig. 7A-7D. Additionally or alternatively, the system 500 may be implemented using a computer system such as that described with respect to Fig. 8 described in more detail. In connection with Fig. 5A uses a vehicle as an example of the machine, but the principles and concepts described may be applicable to any other suitable machine.

[0124] In some embodiments, the system 500 may include a rule engine 502 configured to determine a set of one or more conflict rules 508 corresponding to the node range. In some embodiments, the rule engine 502 may be implemented using hardware including one or more processors, central processing units (CPUs), graphics processing units (GPUs), data processing units (DPUs), parallel processing units (PPUs), microprocessors (e.g.,to execute or control the performance of one or more operations), programmable vision accelerators (PVAs) - which may include one or more direct memory access (DMA) systems and / or one or more vector or vision processing units (VPUs), field programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), accelerators (e.g., deep learning accelerators (DLAs)), and / or other types of processors. In some other cases, the rule engine 502 may be implemented using a combination of hardware and software.In the present disclosure, the operations described as being performed by the rules engine 502 may include operations that the one or more modules may instruct one or more corresponding computing systems to perform. In these and other embodiments, the rules engine 502 may be implemented by one or more computing devices, such as those described in FIG. Fig. 7A-7D, 8 and / or 9 are described in more detail.

[0125] In some embodiments, the rule engine 502 may be configured to determine the conflict rules 508 based on conflict data 504 corresponding to the intersection area. The conflict data 504 may indicate information related to conflict points of the intersection area. The conflict points may include areas within the intersection area that influence the waiting behavior of vehicles with respect to one or more yield scenarios.

[0126] For example, the conflict points may include areas where a yield-right scenario may exist and / or where a wait condition may be applied. Example conflict points may correspond to locations of conflicts such as locations of converging vehicle paths (e.g., converging lanes), intersecting vehicle paths (e.g., intersecting lanes), intersections between pedestrian areas and vehicle paths (e.g., pedestrian crossings), intersections between rail paths and vehicle paths (e.g., grade crossings), intersections between vehicle paths and cycle paths, intersections between rail paths and vehicle paths, intersections between streetcar or tramway lanes and vehicle paths, and / or intersections between driveways and vehicle paths.

[0127] As an example, Fig. 5B shows an example node area 550 that includes multiple conflict points 552. In the illustrated example of Fig. 5B, the interchange area 550 may include an intersection of a first two-lane road 554a and a second two-lane road 554b. The first road 554a may run in a north-south direction and include a southbound lane 556a and a northbound lane 556b. The second road 554b may run in an east-west direction and include a westbound lane 556c and an eastbound lane 556d. Lanes 556a, 556b, 556c, and 556d may be generally referred to as "lanes 556." The interchange area 550 may also include crosswalks 558a, 558b, 558c, and 558d, as illustrated and generally referred to as "crosswalk 558."

[0128] Based on the lanes 556, the interchange area 550 may include a plurality of different paths 560 that may correspond to maintaining a path along a particular lane 556. For example, the interchange area 550 may include a first path 560a that may include entering and exiting the interchange area 550 via lane 556a. The interchange area 550 may similarly include a second path 560b that may include entering and exiting the interchange area 550 via lane 556b. Additionally, the interchange area 550 may include a third path 560c that may include entering and exiting the interchange area 550 via the travel lane 556c, and the interchange area 550 may include a fourth path 560d that may include entering and exiting the interchange area 550 via the travel lane 556d.

[0129] Additionally or alternatively, paths 560 may correspond to entering the intersection area 550 via one lane and exiting the intersection area 550 via another lane. For example, the intersection area 550 may include the following paths 560: a path 560e, which may correspond to entering the intersection area 550 via lane 556a and exiting the intersection area 550 via lane 556c; a path 560f, which may correspond to entering the intersection area 550 via lane 556a and exiting the intersection area 550 via lane 556d; a path 560g, which may correspond to entering the intersection area 550 via lane 556c and exiting the intersection area 550 via lane 556b; a path 560h that may correspond to entering the intersection area 550 via lane 556c and exiting the intersection area 550 via lane 556a;a path 560i, which may correspond to entering the intersection area 550 via lane 556b and exiting the intersection area 550 via lane 556d; a path 560j, which may correspond to entering the intersection area 550 via lane 556b and exiting the intersection area 550 via lane 556c; a path 560k, which may correspond to entering the intersection area 550 via lane 556d and exiting the intersection area 550 via lane 556a; and a path 560l, which may correspond to entering the intersection area 550 via lane 556d and exiting the intersection area 550 via lane 556b.

[0130] Conflict points 552 may each correspond to areas of the intersection area 550 where the paths 560 may intersect or merge with another path 560. Additionally or alternatively, conflict points 552 may each correspond to areas of the intersection area 550 where the paths 560 may intersect another type of conflict, such as a crosswalk, a lane crossing, a driveway, a sidewalk, bicycle lanes, railroad tracks, streetcar or tram tracks, etc.

[0131] For example, the intersection point area with respect to path 560a may include conflict points 552a, 552b, 552c, 552d, 552e, 552f, and 552g.Conflict point 552a may be an area corresponding to the point where path 560a could cross path 560c; conflict point 552b may be an area corresponding to the point where path 560a could cross path 560j; conflict point 552c may be an area corresponding to the point where path 560a could cross path 560l; conflict point 552d may be an area corresponding to the point where path 560a could cross path 560d; conflict point 552e may be an area corresponding to the point where path 560a could cross paths 560h and 560k; conflict point 552f may be an area corresponding to the point where path 560a could cross crosswalk 558a; the conflict point 552g may be an area corresponding to the point at which the path 560a could cross the crosswalk 558c.

[0132] Although in Fig. 5B, the node area 550 may contain several other similar conflict points corresponding to other paths 560. In addition, the conflict points 552, although shown in Fig. 5B as discrete points actually correspond to general areas around such points; the use of discrete points is merely to simplify the illustration of concepts.

[0133] Back to the description of Fig. 5A: In some embodiments, the conflict data 504 may include path data 512. The path data 512 may include information about the paths that may correspond to the respective conflict points. For example, the path data 512 may indicate which paths may correspond to the respective conflict points. Additionally or alternatively, the path data 512 may indicate the respective locations of the conflict points. In these and other embodiments, the path data 512 may indicate the respective types of conflicts that may correspond to the conflict points. Additionally or alternatively, the path data 512 may indicate maneuvers that may be performed in the intersection area. For example, the path data 512 may indicate respective maneuvers that correspond to the paths that may pass through the intersection area.

[0134] In some embodiments, at least a portion of the path data 512 may be included in one or more data structures corresponding to the intersection area. For example, information indicating which lanes of the intersection area correspond to which paths may be included in one or more path data structures (e.g., the path structure 304 in Fig. 3) that each correspond to the paths of the node area. Additionally or alternatively, information indicating which maneuvers correspond to which paths may also be included in one or more of the path data structures that each correspond to the paths of the node area. In some embodiments, the rule engine 502 may therefore obtain at least a portion of the path data 512 from the path data structures.

[0135] Additionally or alternatively, at least a portion of the path data 512 may be stored in one or more conflict data structures (e.g., the conflict structure 308 in Fig. 3) that each correspond to the conflicts of the node space. For example, information indicating which paths correspond to which conflicts, the locations of the conflicts (e.g., the conflict points), and the types of conflicts corresponding to the conflicts may be obtained from one or more conflict data structures corresponding to the node space. Therefore, in some embodiments, the rule engine 502 may obtain at least a portion of the path data 512 from the conflict data structures.

[0136] In these and other embodiments, conflict data 504 may include signal data 514. Signal data 514 may provide information regarding the signals that may correspond to the node area. For example, signal data 514 may indicate which signals and / or corresponding signal types may determine the wait behavior in the node area. Additionally or alternatively, signal data 514 may indicate the directionality of the signals that correspond to the node area.

[0137] In some embodiments, the signal data 514 may be included in one or more data structures corresponding to the node area. For example, at least a portion of the signal data 514 may be included in one or more signal data structures (e.g., the signal structure 310 of Fig. 3), each corresponding to the signals of the node area. Therefore, in some embodiments, the rule engine 502 may obtain at least a portion of the signal data 514 from the signal data structures.

[0138] Additionally or alternatively, the conflict data 504 may include directional control data 516. The directional control data 516 may include information indicating waiting behaviors that may correspond to signals, maneuvers, and / or conflicts (e.g., conflict types) that may correspond to the intersection area.

[0139] In some embodiments, at least a portion of the direction rule data 516 may be included in one or more data structures corresponding to the node range. For example, the direction rule data 516 may be included in one or more direction rule data structures (e.g., the direction rule structure 316 of Fig. 3), each corresponding to the signals of the node region. Therefore, in some embodiments, the rule engine 502 may obtain at least a portion of the direction rule data 516 from the direction rule data structures.

[0140] In some embodiments, the rule engine 502 may be configured to associate the conflict data 504 to determine the conflict rules 508. In general, the conflict rules 508 may indicate respective wait behaviors that may potentially be applied to individual conflict points of the node space. In these and other embodiments, the conflict rules 508 may include sets of one or more wait behavior rules, where individual sets of wait behavior rules may correspond to corresponding conflict points. In these and other embodiments, the conflict rules 508 may indicate the corresponding conflict points to which the sets of wait behavior rules correspond. Additionally or alternatively, the conflict rules 508 may indicate the respective locations of the conflict points, which paths correspond to the respective conflict points, etc.

[0141] The sets of waiting behavior rules may indicate which waiting behaviors are applicable to the respective conflict points. For example, the sets of waiting behavior rules may indicate which waiting behaviors are applicable to which maneuvers that can be performed at the respective conflict points. Additionally or alternatively, the sets of waiting behavior rules may indicate respective waiting behaviors applicable to the respective paths corresponding to the respective conflict points. In these and other embodiments, the sets of waiting behavior rules may indicate respective signals that may correspond to the respective paths of the respective conflict points. Additionally or alternatively, the sets of waiting behavior rules may indicate the waiting behaviors that can be specified by the respective signals with respect to the respective conflict points to which the respective signals may correspond.

[0142] In some embodiments, the rule engine 502 may be configured to identify the sets of wait behavior rules based on the maneuvers and / or paths corresponding to the respective conflict points. For example, the rule engine 502 may be configured to identify which conflicts may be contained in the node area based on the path data 512. In these and other embodiments, the rule engine 502 may identify the locations of the conflicts as conflict points based on the conflict point data contained in the path data 512 (e.g., as contained in the conflict point field of one or more conflict data structures corresponding to the node area). Additionally or alternatively, the rule engine 502 may also be configured to identify the maneuvers corresponding to the respective paths based on the path data 512.In these and other embodiments, the rule engine 502 may be configured to identify respective maneuvers that may correspond to respective conflicts and corresponding conflict points based on the mapping of maneuvers to paths and based on the mapping of paths to conflict points.

[0143] For example, the conflict point 552e, as in Fig. 5B, paths 560a, 560h, and 560k may be associated with each other. Path 560a may be associated with a "straight" maneuver, in which path 560a corresponds to traveling straight through the intersection area 550 via lane 556a; path 560h may be associated with a "left turn" maneuver, in which path 560h corresponds to entering the intersection area 550 via lane 556c and turning left to enter lane 556a and exit the intersection area 550 via lane 556a. and path 560k may be associated with a “right turn” maneuver, where path 560k corresponds to entering intersection area 550 via lane 556d and turning right to enter lane 556a and exiting intersection area 550 via lane 556a.In these and other embodiments, the rule engine 502 may be configured to determine that the potential maneuvers corresponding to the conflict point 552e include a "straight" maneuver, a "left turn" maneuver, and a "right turn" maneuver.

[0144] Returning to the description of Fig. 5A, in these and other embodiments, the rule engine 502 may be configured to identify the respective sets of wait behavior based on the path data 512, the signal data 514, and / or the direction rule data 516. For example, based on the signal data 514, the rule engine 502 may be configured to identify which signals and signal types may correspond to the node area. For example, based on the signal data 514, the rule engine 502 may determine which signals and / or signal types may dictate the wait behavior at the node area. Additionally or alternatively, the rule engine 502 may be configured to determine the wait behavior based on the directionality of the signals indicated in the signal data 514, the directionality of the paths corresponding to the conflict points, and / or the positions of the conflict points (e.g.,as indicated by the path data 512) to determine which signals may correspond to which conflict point.

[0145] For example, the rule engine 502, when it accesses the node area 550 in Fig. 5B, be configured to determine based on the signal data 514 that a first signal (in Fig. 5B) corresponds to a first edge 570a of the node area 550. Based on the first signal corresponding to the first edge 570a, it can be determined that the first signal applies to all paths entering the node area 550 via the first edge 570a. Therefore, it can be determined that the first signal corresponds to path 560a because the path 560a enters the node area 550 via the first edge 570a. Furthermore, the first signal may be assigned to conflict points 552a, 552b, 552c, 552d, 552e, 552f, and 552g based on the first signal corresponding to path 560a and based on conflict points 552a, 552b, 552c, 552d, 552e, 552f, and 552g corresponding to path 560a. Signals corresponding to a second edge 570b, a third edge 570c, and a fourth edge 570d may be assigned to corresponding paths and conflict points in a similar manner.Additionally or alternatively, based on the signal data 514, it may be determined whether the first signal is a stop signal, a traffic light, a yield sign, etc.

[0146] Back to Fig. 5A: In some embodiments, the rule engine 502 may be configured to determine the wait behavior corresponding to the respective conflict points based on the signals that may apply to the respective conflict points and / or based on the directional rule data 516. For example, the directional rule data 516 may indicate the wait behavior dictated by one or more respective signals corresponding to one or more conflict points. Additionally or alternatively, the directional rule data 516 may indicate which wait behavior may correspond to respective maneuvers associated with the conflict points.

[0147] For example, the rule engine 502, as shown in Fig. 5B, may be configured to determine a series of wait behaviors for the conflict point 552e as follows. The rule engine 502 may identify, based on the directional rule data 516, a wait behavior corresponding to a "straight" maneuver as specified by the first signal, and may assign such a wait behavior to path 560a based on the path 560a corresponding to the "straight maneuver." Furthermore, such a wait behavior may be assigned to path 560a with respect to each of the conflict points 552a, 552b, 552c, 552d, 552e, 552f, and 552g based on the correspondence of path 560a with the conflict points 552a, 552b, 552c, 552d, 552e, 552f, and 552g.

[0148] As another example, one or more other wait behaviors not specified by the first signal may also be associated with path 560a related to one or more of conflict points 552a, 552b, 552c, 552d, 552e, 552f, and 552g. For example, regardless of what the first signal specifies, the directional rule data 516 may indicate certain wait behaviors related to whether pedestrians are in a crosswalk area. In some embodiments, the rule engine 502 may be configured to associate crosswalk-related wait behaviors with conflict points 552f and 552g based on conflict points 552f and 552g corresponding to conflicts associated with intersections with crosswalks. Wait behaviors may be similarly identified and associated with other paths 560 and / or conflict points of the intersection area 550.

[0149] Back to Fig. 5A: In some embodiments, the rule engine 502 may be configured to include the respective sets of wait behaviors associated with the conflict points in the conflict rules 508. In these and other embodiments, the sets of wait behaviors included in the conflict rules 508 may also be determined based on a state of the node space, such that the conflict rules 508 may correspond to the determined state (e.g., a current state) of the node space.

[0150] Additionally or alternatively, the conflict rules 508 may correspond to a particular perspective of the vehicle corresponding to the system 500. For example, in some embodiments, the rule engine 502 may be configured to obtain (e.g., receive) perception data 506 corresponding to the vehicle. The perception data 506 may include any suitable data obtained with a suitable sensor that provides information about an area in which the vehicle is located. For example, the perception data 506 may include RADAR sensor data, LIDAR sensor data, image data, location data, etc.

[0151] In these and other embodiments, the perception data 506 may accordingly provide information about the current state of the intersection area. For example, the perception data 506 may indicate signal states (e.g., traffic light states), indications of objects, people, other vehicles, etc., that may be located in the intersection area at the time the perception data 506 is sampled. The perception data 506 may also include information about lane markings, crosswalks, etc., that may be located in the intersection area.

[0152] In some embodiments, the rule engine 502 may determine one or more of the conflict rules 508 based on the perception data 506. For example, the perception data 506 may be Fig. 5B, may correspond to the vehicle when the vehicle is about to enter the intersection area 550 at the first edge 570a via the travel lane 556a. In these and other embodiments, the perception data 506 may indicate that the first signal is in a particular state (e.g., red light, green light, yellow light), etc. Based on this information, the rule engine 502 may be configured to determine wait behaviors corresponding to the particular state of the first signal for conflict points corresponding to the first signal. In these and other embodiments, such wait behaviors may be included in the conflict rules 508.

[0153] Additionally or alternatively, one or more of the conflict rules 508 may be considered unknown based on the perception data 506. For example, using the example of the vehicle about to enter the intersection area 550 at the first edge 570a across the lane 556a, the perception data 506 may indicate the state of the first signal, but the states of one or more other signals corresponding to the intersection area 550 may not be discernible from the perception data 506. For example, a state of a second signal corresponding to the second edge 570b and pointing in a direction 90 degrees different from that of the first signal may not be discernible from the perception data 506 corresponding to the vehicle crossing the first lane 556a and located at the first edge 570a of the intersection area 550.Therefore, one or more conflict rules 508 of conflict points specified by the state of the second signal may be displayed as "unknown" because the state of the second signal is unknown.

[0154] In some embodiments, the rule engine 502 may also be configured to limit the conflict rules 508 to conflict points that may be applicable to the vehicle's particular situation. For example, the conflict rules 508 may be limited to conflict points 552a, 552b, 552c, 552d, 552e, 552f, and 552g based on the perception data 506 indicating that the vehicle is crossing the first lane 556a and is located at the first edge 570a.

[0155] In some embodiments, system 500 may include a command and control engine 510 ("control engine 510"). In some embodiments, control engine 510 may be implemented using hardware that includes one or more processors, central processing units (CPUs), graphics processing units (GPUs), data processing units (DPUs), parallel processing units (PPUs), microprocessors (e.g., for executing or controlling the performance of one or more operations), programmable vision accelerators (PVAs) - which may include one or more direct memory access (DMA) systems and / or one or more vector or image processing units (VPUs), field programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), accelerators (e.g., deep learning accelerators (DLAs)), and / or other types of processors.In some other cases, control engine 510 may be implemented using a combination of hardware and software. In the present disclosure, the operations described as being performed by control engine 510 may include operations that the one or more modules may instruct one or more corresponding computing systems to perform. In these and other embodiments, control engine 510 may be implemented by one or more computing devices, such as those described in FIGS. Fig. 7A-7D, 8 and / or 9 are described in more detail.

[0156] The control engine 510 may be configured to determine one or more control instructions 518 for the vehicle. In some embodiments, the control instructions 518 may include one or more instructions (e.g., which may be output as control signals) that may cause a change in one or more of the characteristic indicators associated with a state of the vehicle and / or the like. For example, the one or more instructions 518 may include increasing or decreasing the vehicle speed (e.g., via one or more control signals controlling the brake and / or accelerator pedal), steering the vehicle (e.g., via one or more control signals controlling the steering), adjusting a centerline for the vehicle to follow (e.g., via one or more control signals controlling the steering), or any other change or any combination of the above changes.In some embodiments, one or more of instructions 518 may include one or more instructions that do not indicate a change in the vehicle state. For example, one or more of instructions 518 may instruct the vehicle to maintain its current state (e.g., maintain speed, acceleration, yaw rate, temperature, humidity, etc.).

[0157] In some embodiments, the control engine 510 may be configured to determine one or more of the control instructions 518 based on the conflict rules 508 and / or the perception data 506. For example, the conflict rules 508 may provide a data structure that enables the control engine 510 to quickly identify conflict points and corresponding wait behaviors associated with a particular intersection area. Additionally or alternatively, the control engine 510 may be configured to identify, upon approaching the particular intersection area, which conflict points of the particular intersection may correspond to a planned path of the vehicle based on the conflict rules 508.In these and other embodiments, the control engine 510 may be configured to configure one or more of the control instructions 518 based on the conflict points corresponding to the planned path, the wait behaviors corresponding to those conflict points, and one or more factors of the current state of the respective node area (e.g., as indicated by the perception data 506) that may dictate which wait behavior to apply according to the current situation corresponding to the vehicle.

[0158] For example, the vehicle can, as in Fig. 5B, approach the intersection area 550 via lane 556a. Further, the control engine 510 may determine that path 560a is the planned path for the vehicle (e.g., based on planning data not explicitly illustrated). Based on path 560a as the planned path, the control engine 510 may determine, based on the conflict rules 508, that the conflict points 552a, 552b, 552c, 552d, 552e, 552f, and 552g correspond to the path 560a. Further, based on the conflict rules 508, the control engine 510 may identify wait behaviors for the conflict points 552a, 552b, 552c, 552d, 552e, 552f, and 552g that correspond to a "straight-through" maneuver.

[0159] Additionally, based on perception data 506 corresponding to the intersection area 550, the control engine 510 may identify factors that may indicate which of the conflict rules 508 may be applicable to the corresponding vehicle (e.g., which waiting behaviors to apply). For example, such factors may include the current state of the first signal, the presence or absence of pedestrians, the presence of other vehicles, etc. Based on such perception data 506 and the conflict rules 508, the control engine 510 may be configured to determine corresponding control instructions 518. For example, the conflict rules 508 may indicate that the vehicle should continue its path in response to the signal state of the first signal being a green light.Conversely, conflict rules 508 may indicate that the vehicle should stop at the first edge 570a if the signal state of the first signal is a red light. Therefore, control engine 510 may determine which of these waiting behaviors to apply based on whether perception data 506 indicates that the state of the first signal is a green or red light.

[0160] Accordingly, system 500 may be configured to use one or more node data structures, as discussed in the present disclosure, to determine conflict rules 508 and generate one or more control instructions 518 based on such conflict rules. The node data structures and the corresponding conflict rules may help facilitate the ingestion and processing of information related to nodes, allowing control engine 510 to make better decisions regarding navigation scenarios corresponding to nodes.

[0161] Using the examples of Fig. 5A and Fig. 5B, changes, additions, or omissions may be made without departing from the scope of the present disclosure. For example, in some embodiments, the distinctions between certain elements of system 500 are provided primarily to describe the principles and concepts associated with determining and using conflict rules. Actual implementations may vary. Furthermore, the specific type of data and / or use corresponding to the conflict rules may vary. Furthermore, one or more elements may be included in the examples of Fig. 5A and Fig. 5B may be added to or deleted from without departing from the scope of the present disclosure.

[0162] Fig. 6 is a flowchart illustrating a method 600 for generating a set of conflict rules for a node area according to one or more embodiments of the present disclosure. One or more operations of the method 600 may be performed by any suitable system, device, or apparatus, such as the rules engine 502 and / or the command and control engine 510 of Fig. 5A, the one or more autonomous vehicle systems that are capable of Fig. 7A-7D, which comprise one or more computing devices configured with respect to Fig. 8, and / or the one or more data systems that are related to Fig. 9 described in the present disclosure,

[0163] The method 600 may include one or more blocks. Although illustrated with discrete blocks, the operations associated with one or more of the blocks of the method 600 may be divided into additional blocks, combined into fewer blocks, or eliminated, depending on the particular implementation.

[0164] In some embodiments, method 600 may include block B602. In block B602, conflict data associated with a node area may be obtained. The conflict data may correspond to one or more potential right-of-way scenarios associated with the navigation of a machine. Additionally or alternatively, the conflict data may indicate information related to conflict points of the node area that influence the waiting behavior of vehicles with respect to the one or more potential right-of-way scenarios.

[0165] In some embodiments, the conflict data may indicate one or more of the following: one or more respective locations within the node area of ​​one or more individual conflict points of the plurality of conflict points; one or more possible maneuvers each corresponding to the one or more individual conflict points; or one or more respective sets of one or more wait behavior rules corresponding to the one or more individual conflict points. Additionally or alternatively, the conflict data may be determined based on at least one or more data structures corresponding to the node area. For example, in some embodiments, the conflict data may be included in one or more of a signal data structure, a conflict data structure, or a direction rule data structure corresponding to the node area. In some embodiments, the conflict data 504 may be Fig. 5A may be an example of the conflict data obtained at block B602.

[0166] Furthermore, the conflict points may correspond to one or more of the following: merging of vehicle paths; intersecting vehicle paths; an intersection between a pedestrian area and a first vehicle path; an intersection between a railway and a second vehicle path; an intersection between an access area and a third vehicle path; an intersection between a bicycle path and a fourth vehicle path; an intersection between a railway line and a fifth vehicle path; an intersection between a tramway lane and a sixth vehicle path; or an intersection between a tramway lane and a seventh vehicle path. For example, the points of intersection with respect to Fig. 5A and Fig. The conflict points described in 5B can be examples of the conflict points.

[0167] At block B604, a set of conflict rules for the intersection area may be determined. In some embodiments, the set of conflict rules may be determined based on the conflict data. Further, the set of conflict rules may indicate one or more respective wait behaviors that may be applied to individual conflict points of the plurality of conflict points. Additionally or alternatively, at least one of the one or more respective sets of wait behavior rules includes respective wait behaviors corresponding to one or more individual potential maneuvers corresponding to the one or more individual conflict points.

[0168] In these and other embodiments, the determination of the set of conflict rules may be based on a state of the node area. Additionally or alternatively, the set of conflict rules may be based on perception data corresponding to the machine and indicating the state of the node area. In some embodiments, one or more of the Fig. 5A and Fig. 5B, the operations relating to the determination of conflict rules 508 may be used to determine the set of conflict rules.

[0169] In block B606, one or more control operations of the machine may be executed or caused to be executed based on the set of conflict rules. Additionally or alternatively, in some embodiments, one or more of the control operations may be based at least on an analysis of which of the conflict rules of the set of conflict rules are applicable to the machine with respect to a state of the node area (e.g., as indicated by perception data obtained using one or more sensors included in the machine). For example, in some embodiments, one or more control instructions may be generated as described in the present disclosure, for example, with respect to the control instructions 518 described with respect to Fig. 5A and Fig. 5B. Additionally or alternatively, the machine may perform one or more of the control operations based on the generated control instructions as described in the present disclosure, for example, with respect to Fig. 5A and Fig. 5B, execute.

[0170] Changes, additions, or omissions may be made to the method 600 without departing from the scope of the present disclosure. For example, the functions and / or operations performed may be implemented in different orders. Furthermore, the described functions and operations are provided only as examples, and some of the functions and operations may be optional, combined into fewer functions and operations, or expanded into additional functions and operations without affecting the essence of the disclosed embodiments. In some embodiments, the method 600 may include additional blocks or fewer blocks. EXEMPLARY AUTONOMOUS VEHICLE

[0171] Fig. 7A is an illustration of an exemplary autonomous vehicle 700, according to some embodiments of the present disclosure. The autonomous vehicle 700 (alternatively referred to herein as "vehicle 700") may include, without limitation, a passenger vehicle, such as a car, a truck, a bus, an emergency service vehicle, a shuttle, an electric or motorized bicycle, a motorcycle, a fire engine, a police vehicle, an ambulance, a boat, a construction vehicle, an underwater vehicle, a drone, and / or another type of vehicle (e.g., that is unmanned and / or accommodates one or more passengers).Autonomous vehicles are generally described in terms of levels of automation defined by the National Highway Traffic Safety Administration (NHTSA), a division of the U.S. Department of Transportation, and the Society of Automotive Engineers (SAE) "Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles" (Standard No. J3016-201806, published June 15, 2018, Standard No. J3016-201609, published September 30, 2016, and prior and future versions of this standard). The vehicle 700 may exhibit functionality according to one or more of the Level 3 - Level 5 autonomous driving levels. The vehicle 700 may exhibit functionality according to one or more of the Level 1 - Level 5 autonomous driving levels.For example, depending on the embodiment, the vehicle 700 may be capable of driver assistance (Level 1), partial automation (Level 2), conditional automation (Level 3), high automation (Level 4), and / or full automation (Level 5). The term "autonomous" as used herein may include any and / or all types of autonomy for the vehicle 700 or other machine, such as fully autonomous, highly autonomous, conditionally autonomous, partially autonomous, assisted autonomy, semi-autonomous, primarily autonomous, or another designation.

[0172] The vehicle 700 may include components such as a chassis, a vehicle body, wheels (e.g., 2, 4, 6, 8, 18, etc.), tires, axles, and other components of a vehicle. The vehicle 700 may include a propulsion system 750, such as an internal combustion engine, a hybrid electric power plant, a pure electric motor, and / or another type of propulsion system. The propulsion system 750 may be connected to a drivetrain of the vehicle 700, which may include a transmission to enable propulsion of the vehicle 700. The propulsion system 750 may be controlled in response to receiving signals from the throttle or accelerator 752.

[0173] A steering system 754, which may include a steering wheel, may be used to steer the vehicle 700 (e.g., along a desired path or route) when the propulsion system 750 is operating (e.g., when the vehicle is moving). The steering system 754 may receive signals from a steering actuator 756. The steering wheel may be optional for full automation (Level 5).

[0174] The brake sensor system 746 may be used to apply the vehicle brakes in response to receiving signals from the brake actuators 748 and / or the brake sensors.

[0175] The one or more controllers 736, the one or more GPUs, one or more systems on chips (SoCs) 704 ( Fig. 7C) and / or one or more GPUs may provide signals (e.g., representative of instructions) to one or more components and / or systems of the vehicle 700. For example, the one or more controllers may send signals to apply the vehicle brakes via one or more brake actuators 748, to actuate the steering system 754 via one or more steering actuators 756, and / or to actuate the propulsion system 750 via one or more throttle / accelerator devices 752. The one or more controllers 736 may include one or more built-in (e.g., integrated) computing devices (e.g., supercomputers) that process sensor signals and issue operational commands (e.g., signals representing commands) to enable autonomous driving and / or to assist a human driver in driving the vehicle 700.The one or more controllers 736 may include a first controller 736 for autonomous driving functions, a second controller 736 for functional safety functions, a third controller 736 for artificial intelligence functions (e.g., computer vision), a fourth controller 736 for infotainment functions, a fifth controller 736 for emergency redundancy, and / or other controllers. In some examples, a single controller 736 may perform two or more of the above functionalities, two or more controllers 736 may perform a single functionality, and / or any combination thereof.

[0176] The one or more controllers 736 may provide the signals to control one or more components and / or systems of the vehicle 700 in response to sensor data received from one or more sensors (e.g., sensor inputs). The sensor data may be received, for example and without limitation, from one or more of the following: global navigation satellite system sensor(s) 758 (e.g., global positioning system sensor(s)), radar sensor(s) 760, ultrasonic sensor(s) 762, lidar sensor(s) 764, inertial measurement unit (“IMU”) sensor(s) 766 (e.g., accelerometer, gyroscope(s), magnetic compass(es), magnetometer(s), etc.), microphone(s) 796, stereo camera(s) 768, wide-angle camera(s) 770 (e.g., fisheye cameras), infrared camera(s) 772, environmental camera(s) 774 (e.g., 360-degree cameras), long-range and / or medium-range camera(s) 798, speed sensor(s) 744 (e.g.,for measuring the speed of the vehicle 700), vibration sensor(s) 742, steering sensor(s) 740, brake sensor(s) 746 (e.g., as part of the brake sensor system 746), and / or other sensor types.

[0177] One or more of the controllers 736 may receive inputs (e.g., in the form of input data) from an instrument cluster 732 of the vehicle 700 and provide outputs (e.g., in the form of output data, display data, etc.) via a human-machine interface (HMI) display 734, an audible annunciator, a speaker, and / or via other components of the vehicle 700. The outputs may include information such as vehicle speed, rpm, time, map data (e.g., the high-definition (“HD”) map 722 of Fig. 7C), location data (e.g., the location of the vehicle 700, e.g., on a map), direction, location of other vehicles (e.g., an occupancy grid), information about objects and status of objects as perceived by the one or more controllers 736, etc. For example, information about the presence of one or more objects (e.g., a road sign, a warning sign, a changing traffic light, etc.) and / or information about driving maneuvers that the vehicle has performed, is currently performing, or will perform (e.g., change lanes now, take exit 34B in two miles, etc.) may be displayed on the HMI display 734.

[0178] The vehicle 700 further includes a network interface 724 that may utilize one or more wireless antennas 726 and / or modems to communicate over one or more networks. For example, the network interface 724 may be capable of communicating over LTE, WCDMA, UMTS, GSM, CDMA2000, etc. The wireless antenna(s) 726 may also enable communication between objects in the environment (e.g., vehicles, mobile devices, etc.) using local area networks (e.g., Bluetooth, Bluetooth LE, Z-Wave, ZigBee, etc.) and / or low-power wide-area networks (LPWANs) (e.g., LoRaWAN, SigFox, etc.).

[0179] Fig. Figure 7B is an example of camera locations and fields of view for the example autonomous vehicle 700 of Fig. 7A, according to some embodiments of the present disclosure. The cameras and respective fields of view are an example of one embodiment and are not intended to be limiting. For example, additional and / or alternative cameras may be included and / or the cameras may be located at various locations on the vehicle 700.

[0180] The camera types for the cameras may include, but are not limited to, digital cameras that may be configured for use with the components and / or systems of the vehicle 700. The one or more cameras may operate at Automotive Safety Integrity Level (ASIL) B and / or another ASIL. The camera types may have any image capture rate, such as 60 frames per second (fps), 120 fps, 240 fps, etc., depending on the embodiment. The cameras may use rolling shutters, global shutters, another type of shutter, or a combination thereof.In some examples, the color filter array may include a red clear clear clear (RCCC) color filter array, a red clear clear blue (RCCB) color filter array, a red blue green clear (RBGC) color filter array, a Foveon X3 color filter array, a Bayer sensor color filter array (RGGB), a monochrome sensor color filter array, and / or another type of color filter array. In some embodiments, clear-pixel cameras, such as cameras with an RCCC, an RCCB, and / or an RBGC color filter array, may be used to increase light sensitivity.

[0181] In some examples, one or more of the cameras can be used to perform advanced driver assistance system (ADAS) functions (e.g., as part of a redundant or fail-safe design). For example, a multifunction mono camera can be installed to provide features such as lane departure warning, traffic sign assist, and intelligent headlight control. One or more of the cameras (e.g., all cameras) can simultaneously record and provide image data (e.g., video).

[0182] One or more of the cameras can be mounted in a bracket, e.g., a specially designed (3D-printed) mount to eliminate stray light and reflections from inside the vehicle (e.g., reflections from the dashboard reflected in the windshield mirrors) that could interfere with the camera's image data acquisition. Regarding the mounting of exterior mirrors, the exterior mirrors can be custom 3D printed so that the camera mounting plate is adapted to the shape of the exterior mirror. In some examples, the one or more cameras can be integrated into the exterior mirror. For side-mounted cameras, the one or more cameras can also be integrated into the four pillars at each corner of the cabin.

[0183] Cameras with a field of view that includes portions of the environment in front of the vehicle 700 (e.g., forward-facing cameras) can be used for the surrounding view to help identify forward paths and obstacles, and to provide information critical to establishing an occupancy grid and / or determining preferred vehicle paths with the assistance of one or more controllers 736 and / or control SoCs. Forward-facing cameras can be used to perform many of the same ADAS functions as LIDAR, including emergency braking, pedestrian detection, and collision avoidance. Forward-facing cameras can also be used for ADAS features and systems that include lane departure warnings (LDW), autonomous cruise control (ACC), and / or other features such as traffic sign detection.

[0184] A variety of cameras can be used in a forward-facing configuration, including, for example, a monocular camera platform that includes a complementary metal oxide semiconductor (CMOS) color imager. Another example is the wide-angle cameras 770, which can be used to capture objects that enter the field of view from the periphery (e.g., pedestrians, crossing vehicles, or bicycles). Although Fig. 7B illustrates only one wide-angle camera, the vehicle 700 may include any number of wide-angle cameras 770. Additionally, one or more long-range cameras 798 (e.g., a long-range stereo camera pair) may be used for depth-based object detection, particularly for objects for which a neural network has not yet been trained. The one or more long-range cameras 798 may also be used for object detection and classification, as well as basic object tracking.

[0185] One or more stereo cameras 768 may also be included in a forward-facing configuration. The one or more stereo cameras 768 may include an integrated control engine that includes a scalable processing unit that can provide programmable logic (FPGA) and a multi-core microprocessor with an integrated CAN or Ethernet interface on a single chip. Such a unit can be used to create a 3D map of the vehicle's surroundings that includes a distance estimate for all points in the image. An alternative stereo camera 768 may include a compact stereo vision sensor that may include two camera lenses (one each on the left and right) and an image processing chip that can measure the distance between the vehicle and the target object and use the generated information (e.g., metadata) to activate the autonomous emergency braking and lane departure warning functions.Other types of stereo cameras 768 may be used in addition to or alternatively to those described here.

[0186] Cameras with a field of view that includes portions of the environment to the side of the vehicle 700 (e.g., side cameras) may be used for the environment view and provide information used to create and update the occupancy grid and to generate conflict warnings in the event of a side impact. For example, the one or more environment cameras 774 (e.g., four environment cameras 774, as in Fig. 7B) may be positioned on the vehicle 700. The one or more surround-view cameras 774 may include one or more wide-angle cameras 770, one or more fisheye cameras, one or more 360-degree cameras, and / or the like. For example, four fisheye cameras may be mounted on the front, rear, and sides of the vehicle. In an alternative arrangement, the vehicle may utilize three surround-view cameras 774 (e.g., left, right, and rear) and utilize one or more other cameras (e.g., a forward-facing camera) as a fourth surround-view camera.

[0187] Cameras with a field of view that includes portions of the environment behind the vehicle 700 (e.g., rearview cameras) may be used for parking assistance, surround view, rear collision warnings, and occupancy grid creation and updating. A variety of different cameras may be used, including, but not limited to, cameras that are also suitable as one or more forward-facing cameras (e.g., one or more long-range and / or medium-range cameras 798, one or more stereo cameras 768, one or more infrared cameras 772, etc.), as described herein.

[0188] Fig. 7C is a block diagram of an example system architecture for the example autonomous vehicle 700 of Fig. 7A, according to some embodiments of the present disclosure. It should be understood that these and other arrangements described herein are set forth as examples only. Other arrangements and elements (e.g., engines, interfaces, functions, arrangements, groupings of functions, etc.) may be used in addition to or in place of those shown, and some elements may be omitted entirely. Furthermore, many of the elements described herein are functional entities that may be implemented as individual or distributed components, or in conjunction with other components, and in any suitable combination and location. Various functions performed by entities described herein may be performed by hardware, firmware, and / or software. Various functions may be performed, for example, by a processor executing instructions stored in memory.

[0189] Each of the components, features and systems of the vehicle 700 in Fig. 8C is illustrated as being connected via bus 702. Bus 702 may include a controller area network (CAN) data interface (alternatively referred to herein as a "CAN bus"). A CAN may be a network within vehicle 700 that is used to support the control of various features and functions of vehicle 700, such as the application of brakes, acceleration, braking, steering, windshield wipers, etc. A CAN bus may be configured to have dozens or even hundreds of nodes, each with its own unique identifier (e.g., a CAN ID). The CAN bus may be read to determine steering wheel angle, vehicle speed, engine speed (RPM), button positions, and / or other vehicle status indicators. The CAN bus may be ASIL B compliant.

[0190] Although bus 702 is described herein as a CAN bus, this is not intended to be a limitation. For example, FlexRay and / or Ethernet may be used in addition to or alternatively to the CAN bus. Furthermore, while a single wire is used to represent bus 702, this is not intended to be a limitation. For example, there may be any number of buses 702, which may include one or more CAN buses, one or more FlexRay buses, one or more Ethernet buses, and / or one or more other types of buses using a different protocol. In some examples, two or more buses 702 may be used to perform different functions and / or may be used for redundancy. For example, a first bus 702 may be used for collision avoidance functionality and a second bus 702 may be used for actuation control.In each example, each bus 702 may communicate with one of the components of the vehicle 700, and two or more buses 702 may communicate with the same components. In some examples, each SoC 704, each controller 736, and / or each computer within the vehicle may have access to the same input data (e.g., inputs from sensors of the vehicle 700) and may be connected to a common bus, such as the CAN bus.

[0191] The vehicle 700 may include one or more controllers 736 as described herein with respect to Fig. 7A. The one or more controllers 736 may be used for a variety of functions. The one or more controllers 736 may be coupled to any of the various other components and systems of the vehicle 700 and may be used for control of the vehicle 700, artificial intelligence of the vehicle 700, infotainment for the vehicle 700, and / or the like.

[0192] The vehicle 700 may include a system (or more systems) on a chip (SoC) 704. The SoC 704 may include one or more CPUs 706, one or more GPUs 708, one or more processors 710, one or more caches 712, one or more accelerators 714, one or more data memories 716, and / or other unillustrated components and features. The one or more SoCs 704 may be used to control the vehicle 700 in a variety of platforms and systems. For example, the one or more SoCs 704 in a system (e.g., the system of the vehicle 700) may be combined with an HD card 722 that may be accessed via a network interface 724 from one or more servers (e.g., the one or more servers 778 of Fig. 7D) can receive map refreshes and / or updates.

[0193] The one or more CPUs 706 may include a CPU cluster or CPU complex (alternatively referred to herein as a "CCPLEX"). The one or more CPUs 706 may include multiple cores and / or L2 caches. For example, in some embodiments, the one or more CPUs 706 may include eight cores in a coherent multiprocessor configuration. In some embodiments, the one or more CPUs 706 may include four dual-core clusters, each cluster having a dedicated L2 cache (e.g., a 2 MB L2 cache). The one or more CPUs 706 (e.g., the CCPLEX) may be configured to support concurrent operation of clusters such that any combination of the clusters of the one or more CPUs 706 may be active at any given time.

[0194] The one or more CPUs 706 may implement power management features that include one or more of the following: individual hardware blocks may be automatically clocked when idle to conserve dynamic power; each core clock may be gated when the core is not actively executing instructions due to the execution of WFI / WFE instructions; each core may be independently power-locked; each core cluster may be independently clocked if all cores are clock-locked or power-locked; and / or each core cluster may be independently power-locked if all cores are power-locked. The one or more CPUs 706 may further implement an enhanced power state management algorithm in which allowable power states and expected wake-up times are established, and the hardware / microcode determines the best power state to enter for the core, cluster, and CCPLEX.The processing cores can support simplified sequences for entering the power state into software, offloading the work to the microcode.

[0195] The one or more GPUs 708 may include an integrated GPU (alternatively referred to herein as an "iGPU"). The one or more GPUs 708 may be programmable and may be efficient for parallel workloads. The one or more GPUs 708 may, in some examples, use an extended Tensor instruction set. The one or more GPUs 708 may include one or more streaming microprocessors, where each streaming microprocessor may include an L1 cache (e.g., an L1 cache with at least 96 KB of memory capacity), and two or more of the streaming microprocessors may share an L2 cache (e.g., an L2 cache with 512 KB of memory capacity). In some embodiments, the one or more GPUs 708 may include at least eight streaming microprocessors. The one or more GPUs 708 may use one or more application programming interfaces (APIs) for computations.In addition, the one or more GPUs 708 may use one or more parallel computing platforms and / or programming models (e.g., CUDA from NVIDIA).

[0196] The one or more GPUs 708 may be power-optimized for best performance in automotive and embedded use cases. For example, the one or more GPUs 708 may be fabricated on a fin field-effect transistor (FinFET). However, this is not a limitation, and the one or more GPUs 708 may also be fabricated using other semiconductor manufacturing processes. Each streaming microprocessor may include a number of mixed-precision processing cores divided into multiple blocks. For example, and without limitation, 64 PF32 cores and 32 PF64 cores may be divided into four processing blocks. In such an example, each processing block can be assigned 16 FP32 cores, 8 FP64 cores, 16 INT32 cores, two mixed-precision NVIDIA TENSOR COREs for deep learning matrix arithmetic, an L0 instruction cache, a warp scheduler, a dispatch unit, and / or a 64 KB register file.In addition, the streaming microprocessors can include independent parallel integer and floating-point datapaths to enable efficient execution of workloads with a mix of computations and addressing calculations. The streaming microprocessors can include an independent thread scheduling function to enable fine-grained synchronization and cooperation between parallel threads. The streaming microprocessors can include a combined L1 data cache and shared memory unit to improve performance while simplifying programming.

[0197] The one or more GPUs 708 may include high-bandwidth memory (HBM) and / or a 16 GB HBM2 memory subsystem to provide, in some examples, a peak memory bandwidth of approximately 900 GB / second. In some examples, synchronous graphics random-access memory (SGRAM), e.g., double data rate synchronous graphics random-access memory (GDDR5), may be used in addition to or alternatively to the HBM memory.

[0198] The one or more GPUs 708 may include unified memory technology that includes access counters to enable more accurate migration of memory pages to the processor that accesses them most frequently, thereby improving efficiency for processor-shared memory areas. In some examples, Address Translation Services (ATS) support may be used to allow the one or more GPUs 708 to directly access the page tables of the one or more CPUs 706. In such examples, if the memory management unit (MMU) of the one or more GPUs 708 experiences a failure, an address translation request may be sent to the one or more CPUs 706.In response, the one or more CPUs 706 may look up the virtual-to-physical mapping for the address in their page tables and send the translation back to the one or more GPUs 708. Thus, the unified memory technology may enable a single unified virtual address space for the memory of both the one or more CPUs 706 and the one or more GPUs 708, thereby simplifying the programming of the one or more GPUs 708 and the porting of applications to the one or more GPUs 708.

[0199] Additionally, the one or more GPUs 708 may include an access counter that can track the frequency of access by the one or more GPUs 708 to memory of other processors. The access counter can help move memory pages to the physical memory of the processor that accesses the pages most frequently.

[0200] The one or more SoCs 704 may include any number of caches 712, including those described herein. For example, the one or more caches 712 may include an L3 cache available to both the one or more CPUs 706 and the one or more GPUs 708 (e.g., connected to both the one or more CPUs 706 and the one or more GPUs 708). The one or more caches 712 may include a write-back cache that may track line states, e.g., by using a cache coherence protocol (e.g., MEI, MESI, MSI, etc.). The L3 cache may include 4 MB or more, depending on the embodiment, although smaller cache sizes may be used.

[0201] The one or more SoCs 704 may include one or more arithmetic logic units (ALUs) that may be utilized in performing processing related to any of the various tasks or operations of the vehicle 700, such as processing DNNs. Additionally, the one or more SoCs 704 may include one or more floating-point units (FPUs)—or other mathematical co-processors or numerical co-processors—for performing mathematical operations within the system. For example, the one or more SoCs 704 may include one or more FPUs integrated as execution units within one or more CPUs 706 and / or one or more GPUs 708.

[0202] The one or more SoCs 704 may include one or more accelerators 714 (e.g., hardware accelerators, software accelerators, or a combination thereof). The one or more SoCs 704 may, for example, include a hardware acceleration cluster, which may include optimized hardware accelerators and / or large on-chip memory. The large on-chip memory (e.g., 4MB SRAM) may enable the hardware acceleration cluster to accelerate neural networks and other computations. The hardware acceleration cluster may be used to complement the one or more GPUs 708 and offload some of the tasks of the one or more GPUs 708 (e.g., to free up more cycles of the one or more GPUs 708 to perform other tasks). The one or more accelerators 714 may, for example, be used for targeted workloads (e.g.,Perception, convolutional neural networks (CNNs), etc.) that are stable enough to be suitable for acceleration can be used. The term "CNN" as used here can include all types of CNNs, including region-based or regional convolutional neural networks (RCNNs) and fast RCNNs (e.g., for object detection).

[0203] The one or more accelerators 714 (e.g., the hardware acceleration cluster) may include a deep learning accelerator (DLA). The one or more DLAs may include one or more tensor processing units (TPUs) configured to provide an additional tens of trillion operations per second for deep learning applications and inferencing. The TPUs may be accelerators configured and optimized to perform image processing functions (e.g., for CNNs, RCNNs, etc.). The one or more DLAs may also be optimized for a specific set of neural network types and floating-point operations, as well as for inferencing. The design of the one or more DLAs may provide more performance per millimeter than a general-purpose GPU, far exceeding the performance of a CPU.The one or more TPUs can perform multiple functions, including a single-instance convolution function that supports, for example, INT8, INT16, and FP16 data types for both features and weights, as well as post-processing functions.

[0204] The one or more DLAs can quickly and efficiently execute neural networks, particularly CNNs, on processed or unprocessed data for a variety of functions, including, for example and without limitation: a CNN for object identification and detection using data from camera sensors; a CNN for distance estimation using data from camera sensors; a CNN for emergency vehicle detection and identification using data from microphones; a CNN for facial recognition and vehicle owner identification using data from camera sensors; and / or a CNN for safety and / or security events.

[0205] The one or more DLAs can perform any function of the one or more GPUs 708, and by using an inference accelerator, for example, a developer can dedicate either the one or more DLAs or the one or more GPUs 708 to each function. For example, the developer can focus the processing of CNNs and floating-point operations on the one or more DLAs and leave other functions to the one or more GPUs 708 and / or other accelerators 714.

[0206] The one or more accelerators 714 (e.g., the hardware acceleration cluster) may include a programmable vision accelerator (PVA), which may also be referred to herein as a computer vision accelerator. The one or more PVAs may be designed and configured to accelerate computer vision algorithms for advanced driver assistance systems (ADAS), autonomous driving, and / or augmented reality (AR) and / or virtual reality (VR) applications. The one or more PVAs may provide a balance between performance and flexibility. Each PVA may include, for example and without limitation, any number of reduced instruction set computer (RISC) cores, direct memory access (DMA) cores, and / or any number of vector processors.

[0207] The RISC cores may interact with image sensors (e.g., the image sensors of one of the cameras described herein), image signal processors, and / or the like. Each of the RISC cores may include any amount of memory. The RISC cores may use any number of protocols, depending on the embodiment. In some examples, the RISC cores may execute a real-time operating system (RTOS). The RISC cores may be implemented with one or more integrated circuits, application-specific integrated circuits (ASICs), and / or memory devices. The RISC cores may include, for example, an instruction cache and / or tightly coupled RAM.

[0208] The DMA may enable components of the PVA(s) to access the system's memory independently of the one or more CPUs 706. The DMA may support any number of features designed to optimize the PVA, including, but not limited to, support for multi-dimensional addressing and / or circular addressing. In some examples, the DMA may support up to six or more dimensions of addressing, which may include block width, block height, block depth, horizontal block stepping, vertical block stepping, and / or depth stepping.

[0209] The vector processors may be programmable processors that can be designed to efficiently and flexibly execute programming for computer vision algorithms and provide signal processing functions. In some examples, the PVA may include a PVA core and two vector processing subsystem partitions. The PVA core may include a processor subsystem, one or more DMA engines (e.g., two DMA engines), and / or other peripheral devices. The vector processing subsystem may operate as the primary processing engine of the PVA and may include a vector processing unit (VPU), an instruction cache, and / or a memory (e.g., VMEM). A VPU core may include a digital signal processor, such asA digital signal processor with single instruction multiple data (SIMD) and very long instruction words (VLIW). The combination of SIMD and VLIW can increase throughput and speed.

[0210] Each of the vector processors may include an instruction cache and may be coupled to dedicated memory. Therefore, in some examples, each of the vector processors may be configured to operate independently of the other vector processors. In other examples, the vector processors included in a particular PVA may be configured to use data parallelism. For example, in some embodiments, the plurality of vector processors included in a single PVA may execute the same computer vision algorithm, but on different regions of an image. In other examples, the vector processors included in a particular PVA may concurrently execute different computer vision algorithms on the same image, or even execute different algorithms on consecutive images or portions of an image.Among other things, any number of PVAs can be included in the hardware acceleration cluster, and any number of vector processors can be included in each of the PVAs. Furthermore, the one or more PVAs can contain additional memory for error correcting code (ECC) to increase the overall security of the system.

[0211] The one or more accelerators 714 (e.g., the hardware acceleration cluster) may include an on-chip computer vision network and SRAM to provide high-bandwidth, low-latency SRAM to the one or more accelerators 714. In some examples, the on-chip memory may include at least 4 MB of SRAM, consisting of, for example, and without limitation, eight field-configurable memory blocks accessible by both the PVA and the DLA. Each pair of memory blocks may include an Advanced Peripheral Bus (APB) interface, configuration circuitry, a controller, and a multiplexer. Any type of memory may be used. The PVA and the DLA may access the memory through a backbone that provides the PVA and the DLA with high-speed access to the memory.The backbone may include an on-chip computer vision network connecting the PVA and DLA to the memory (e.g., using the APB).

[0212] The on-chip computer vision network can include an interface that determines that both the PVA and the DLA are delivering ready and valid signals before transmitting control signals / addresses / data. Such an interface can provide separate phases and channels for transmitting control signals / addresses / data, as well as bursty communication for continuous data transmission. This type of interface can conform to ISO 26262 or IEC 61508, although other standards and protocols can also be used.

[0213] In some examples, the one or more SoCs 704 may include a real-time ray tracing hardware accelerator, as described in U.S. Patent Application No. 16 / 101,232, filed August 10, 2018. The real-time ray tracing hardware accelerator may be used to quickly and efficiently determine the positions and extents of objects (e.g., within a world model) to generate real-time visualization simulations, for RADAR signal interpretation, for sound propagation synthesis and / or analysis, for simulation of SONAR systems, for general wave propagation simulation, for comparison with LIDAR data for localization, and / or for other functions, and / or for other purposes. In some embodiments, one or more tree traversal units (TTUs) may be used to perform one or more operations related to ray tracing.

[0214] The one or more accelerators 714 (e.g., the hardware accelerator cluster) have a wide range of uses for autonomous driving. The PVA can be a programmable image processing accelerator that can be used for critical processing steps in ADAS and autonomous vehicles. The capabilities of the PVA are well suited to algorithmic areas that require predictable processing with low power and low latency. In other words, the PVA is well suited for semi-dense or dense regular computations, even on small datasets, that require predictable runtimes with low latency and low power. In the context of autonomous vehicle platforms, the PVAs are therefore designed to execute classical computer vision algorithms because they are efficient at object detection and operate on integer mathematics.

[0215] According to one embodiment of the technology, the PVA is used, for example, to perform computer stereo vision. In some examples, a semi-global matching-based algorithm may be used, although this is not intended as a limitation. Many applications for Level 3-5 autonomous driving require on-the-fly motion estimation or stereo matching (e.g., structure from motion, pedestrian detection, lane detection, etc.). The PVA can perform a computer stereo vision function on inputs from two monocular cameras.

[0216] In some examples, the PVA can be used to perform dense optical flow, such as processing raw radar data (e.g., using a 4D Fast Fourier Transform) to produce processed radar. In other examples, the PVA is used for time-of-flight depth processing, such as processing raw flight data to produce processed time-of-flight data.

[0217] The DLA can be used to power any type of network to improve control and driving safety; for example, this includes a neural network that outputs a confidence measure for each object detection. Such a confidence value can be interpreted as a probability or as a relative "weight" of each detection compared to other detections. This confidence value allows the system to make further decisions about which detections should be considered true positives rather than false positives. For example, the system can set a confidence threshold and consider only those detections that exceed the threshold as true positives.In an automatic emergency braking (AEB) system, false positive detections would cause the vehicle to automatically perform emergency braking, which is obviously undesirable. Therefore, only the most certain detections should be considered as triggers for AEB. The DLA may employ a neural network to regress the confidence value. The neural network may take as input at least a subset of parameters, such as the dimensions of the bounding box, the ground plane estimate obtained (e.g., from another subsystem), output of the momentum measurement unit (IMU) sensor 766 correlated with the orientation of the vehicle 700, distance, 3D position estimates of the object obtained by the neural network and / or other sensors (e.g., LiDAR sensors 764 or RADAR sensors 760), among others.

[0218] The one or more SoCs 704 may include one or more data stores 716 (e.g., memory). The one or more data stores 716 may be on-chip memory on the one or more SoCs 704 in which neural networks to be executed on the GPU and / or the DLA may be stored. In some examples, the one or more data stores 716 may be large enough to store multiple instances of neural networks for redundancy and security. The one or more data stores 716 may include L2 or L3 cache(s) 712. The reference to the one or more data stores 716 may include a reference to memory associated with the PVA, the DLA, and / or one or more other accelerators 714, as described herein.

[0219] The one or more SoCs 704 may include one or more processors 710 (e.g., embedded processors). The one or more processors 710 may include a boot and power management processor, which may be a dedicated processor and subsystem to handle boot power and management functions and associated security enforcement. The boot and power management processor may be part of the boot sequence of the one or more SoCs 704 and may provide runtime power management services. The boot and power management processor may provide clock and voltage programming, assistance with system transitions to a low-power state, management of the thermals and temperature sensors of the one or more SoCs 704, and / or management of the one or more SoCs 704 power states.Each temperature sensor may be implemented as a ring oscillator whose output frequency is proportional to temperature, and the one or more SoCs 704 may use the ring oscillators to sense the temperatures of the one or more CPUs 706, the one or more GPUs 708, and / or the one or more accelerators 714. If it is determined that the temperatures exceed a threshold, the boot and power management processor may enter a temperature fault routine and place the one or more SoCs 704 into a lower power state and / or place the vehicle 800 into a chauffeur-to-safe-stop mode (e.g., bring the vehicle 700 to a safe stop).

[0220] The one or more processors 710 may also include a set of embedded processors that can serve as an audio processing engine. The audio processing engine may be an audio subsystem that enables full hardware support for multi-channel audio across multiple interfaces and a wide and flexible range of audio I / O interfaces. In some examples, the audio processing engine is a dedicated processor core with a digital signal processor with dedicated RAM.

[0221] The one or more processors 710 may also include an always-on processor engine that can provide the necessary hardware functions to support low-power sensor management and wake-up use cases. The always-on processor engine may include a processor core, tightly coupled RAM, supporting peripherals (e.g., timers and interrupt controllers), various I / O controller peripherals, and routing logic.

[0222] The one or more processors 710 may also include a safety cluster engine containing a dedicated processor subsystem for safety management of automotive applications. The safety cluster engine may include two or more processor cores, tightly coupled RAM, supporting peripherals (e.g., timers, an interrupt controller, etc.), and / or routing logic. In a safety mode, the two or more cores may operate in a lockstep mode, functioning as a single core with comparison logic that captures any differences between their operations.

[0223] The one or more processors 710 may also include a real-time camera engine, which may include a dedicated processor subsystem for managing the real-time camera.

[0224] The one or more processors 710 may further include a high dynamic range signal processor, which may include an image signal processor, which is a hardware engine that is part of the camera processing pipeline.

[0225] The one or more processors 710 may include a video image compositor, which may be a processing block (e.g., implemented on a microprocessor) that implements video post-processing functions required by a video playback application to generate the final image for the player window. The video image compositor may perform lens distortion correction on the one or more wide-angle cameras 770, the one or more surround cameras 774, and / or the in-cabin surveillance camera sensors. The in-cabin surveillance camera sensor is preferably monitored by a neural network running on another instance of the enhanced SoC and configured to detect events in the cabin and respond accordingly.An in-cabin system can perform lip reading to activate cellular service and make a call, dictate emails, change the destination, activate or change the vehicle's infotainment system and settings, or enable voice-activated web browsing. Certain functions are available to the driver only when the vehicle is operating in autonomous mode and are disabled otherwise.

[0226] The video image compositor can incorporate enhanced temporal noise reduction for both spatial and temporal noise reduction. For example, when motion occurs in a video, the noise reduction weights the spatial information accordingly, reducing the weight of information provided by neighboring frames. If a frame or section of a frame contains no motion, the temporal noise reduction performed by the video image compositor can use information from the previous frame to reduce noise in the current frame.

[0227] The video image compositor may also be configured to perform stereo distortion correction on the input stereo lens images. The video image compositor may also be used for user interface design when the operating system desktop is in use and the one or more GPUs 708 do not need to constantly render new surfaces. Even when the one or more GPUs 708 are powered on and actively performing 3D rendering, the video image compositor may be used to offload the one or more GPUs 708, thereby improving performance and responsiveness.

[0228] The one or more SoCs 704 may also include a Mobile Industry Processor Interface (MIPI) serial camera interface for receiving video and input from cameras, a high-speed interface, and / or a video input block that may be used for camera and related pixel input functions. The one or more SoCs 704 may also include one or more input / output controllers, one or more of which may be software-controlled and used to receive I / O signals that are not associated with a specific role.

[0229] The one or more SoCs 704 may further include a wide range of peripheral interfaces to enable communication with peripheral devices, audio codecs, power management, and / or other devices. The one or more SoCs 704 may be used to process data from cameras (e.g., via Gigabit Multimedia Serial Link and Ethernet), sensors (e.g., one or more LIDAR sensors 764, one or more RADAR sensors 760, etc., which may be connected via Ethernet), data from bus 702 (e.g., speed of vehicle 700, steering wheel position, etc.), and data from one or more GNSS sensors 758 (e.g., connected via Ethernet or CAN bus).The one or more SoCs 704 may further include dedicated high-performance mass storage controllers, which may include their own DMA engines and which may be used to offload routine data management tasks from the one or more CPUs 706.

[0230] The one or more SoCs 704 may be an end-to-end platform with a flexible architecture spanning automation levels 3-5, thereby providing a comprehensive functional safety architecture, leveraging computer vision and ADAS techniques for diversity and redundancy, and providing a platform for a flexible, reliable driving software stack along with deep learning tools. The one or more SoCs 704 may be faster, more reliable, and even more power and space efficient than conventional systems. For example, the one or more accelerators 714, in combination with the one or more CPUs 706, the one or more GPUs 708, and the one or more data stores 716, may form a fast, efficient platform for Level 3-5 autonomous vehicles.

[0231] The technology thus offers capabilities and functions that cannot be achieved by conventional systems. For example, computer vision algorithms can be executed on CPUs, which can be configured using a high-level programming language, such as the C programming language, to execute a variety of processing algorithms on a wide variety of visual data. However, CPUs are often unable to meet the performance requirements of many computer vision applications, such as execution time and power consumption requirements. In particular, many CPUs are unable to execute complex object detection algorithms in real time, which is a prerequisite for in-vehicle ADAS applications and a requirement for practical Level 3-5 autonomous vehicles.

[0232] In contrast to conventional systems, the technology described here enables the simultaneous and / or sequential execution of multiple neural networks and the combination of the results to enable Level 3-5 autonomous driving functionality by providing a CPU complex, a GPU complex, and a hardware acceleration cluster. For example, a CNN running on the DLA or dGPU (e.g., the one or more GPUs 720) may include text and word recognition, allowing the supercomputer to read and understand traffic signs, including signs for which the neural network has not been specifically trained. The DLA may further include a neural network capable of identifying, interpreting, and providing semantic understanding of the sign, and passing this semantic understanding to the path planning modules running on the CPU complex.

[0233] Another example is that multiple neural networks can run simultaneously, as required for Level 3, 4, or 5 driving. For example, a warning sign reading "Caution: Flashing lights indicate black ice," along with an electric light, can be interpreted independently or jointly by multiple neural networks. The sign itself can be identified as a traffic sign by a first deployed neural network (e.g., a trained neural network), and the text "Flashing lights indicate black ice" can be interpreted by a second deployed neural network, which informs the vehicle's path-planning software (preferably running on the CPU complex) that, if flashing lights are detected, black ice is present.The turn signal can be identified by running a third neural network across multiple images, which informs the vehicle's path planning software about the presence (or absence) of turn signals. All three neural networks can run simultaneously, e.g., within the DLA and / or on the one or more GPUs 708.

[0234] In some examples, a facial recognition and vehicle owner identification CNN may use data from camera sensors to identify the presence of an authorized driver and / or owner of the vehicle 700. The always-on sensor processing engine may be used to unlock the vehicle and turn on the lights when the owner approaches the driver's door, and to disable the vehicle in security mode when the owner exits the vehicle. In this way, the one or more SoCs 704 provide security against theft and / or carjacking.

[0235] In another example, a CNN for detecting and identifying emergency vehicles may use data from microphones 796 to detect and identify emergency vehicle sirens. Unlike conventional systems that use general classifiers to detect sirens and manually extract features, the one or more SoCs 704 use the CNN to classify environmental and urban sounds, as well as visual data. In a preferred embodiment, the CNN running on the DLA is trained to detect the relative approach speed of the emergency vehicle (e.g., by using the Doppler effect). The CNN may also be trained to identify emergency vehicles specific to the local area in which the vehicle operates, as identified by one or more GNSS sensors 758.For example, if the CNN is operating in Europe, it will attempt to detect European sirens, and if it is operating in the United States, the CNN will attempt to identify only North American sirens. Once an emergency vehicle is detected, a controller can be used to execute an emergency vehicle safety routine, slow the vehicle, pull over to the side of the road, park the vehicle, and / or idle the vehicle, using ultrasonic sensors 762, until the one or more emergency vehicles pass by.

[0236] The vehicle may include one or more CPUs 718 (e.g., one or more discrete CPUs or one or more dCPUs) that may be coupled to the one or more SoCs 704 via a high-speed connection (e.g., PCIe). The CPUs 718 may, for example, include an x86 processor. The CPUs 718 may, for example, be used to perform a variety of functions, including reconciling potentially inconsistent results between ADAS sensors and the one or more SoCs 704 and / or monitoring the status and health of the one or more controllers 736 and / or the infotainment SoC 730.

[0237] The vehicle 700 may include one or more GPUs 720 (e.g., one or more discrete GPUs or one or more dGPUs) that may be coupled to the one or more SoCs 704 via a high-speed interconnect (e.g., NVIDIA's NVLINK). The one or more GPUs 720 may provide additional artificial intelligence capabilities, e.g., by executing redundant and / or distinct neural networks, and may be used to train and / or update neural networks based on inputs (e.g., sensor data) from sensors of the vehicle 700.

[0238] The vehicle 700 may further include the network interface 724, which may include one or more wireless antennas 726 (e.g., one or more wireless antennas for various communication protocols, such as a cellular antenna, a Bluetooth antenna, etc.). The network interface 724 may be used to enable a wireless connection via the Internet to the cloud (e.g., to the one or more servers 778 and / or other network devices), to other vehicles, and / or to computing devices (e.g., passenger client devices). To communicate with other vehicles, a direct connection between the two vehicles and / or an indirect connection may be established (e.g., via networks and the Internet). Direct connections may be established via vehicle-to-vehicle communication.Vehicle-to-vehicle communication may provide vehicle 700 with information about vehicles in the vicinity of vehicle 700 (e.g., vehicles in front of, beside, and / or behind vehicle 700). This functionality may be part of a cooperative adaptive cruise control function of vehicle 700.

[0239] The network interface 724 may include an SoC that provides modulation and demodulation functions and enables the controller(s) 736 to communicate over wireless networks. The network interface 724 may include a radio frequency front-end for upconversion from baseband to radio frequency and downconversion from radio frequency to baseband. The frequency conversions may be performed using known methods and / or super-heterodyne methods. In some examples, the radio frequency front-end functionality may be provided by a separate chip. The network interface may include wireless functionality for communicating over LTE, WCDMA, UMTS, GSM, CDMA2000, Bluetooth, Bluetooth LE, Wi-Fi, Z-Wave, ZigBee, LoRaWAN, and / or other wireless protocols.

[0240] The vehicle 700 may further include one or more data stores 728, which may be located off-chip (e.g., outside the SoCs 704). The one or more data stores 728 may include one or more memory elements, including RAM, SRAM, DRAM, VRAM, flash, hard drives, and / or other components and / or devices capable of storing at least one bit of data.

[0241] The vehicle 700 may further include one or more GNSS sensors 758. The one or more GNSS sensors 758 (e.g., GPS, assisted GPS sensors, differential GPS (DGPS) sensors, etc.) assist in mapping, sensing, occupancy grid creation, and / or path planning. Any number of GNSS sensors 758 may be used, including, for example, and without limitation, a GPS using a USB port with an Ethernet-to-serial (RS-232) bridge.

[0242] The vehicle 700 may also include one or more RADAR sensors 760. The one or more RADAR sensors 760 may be used by the vehicle 700 for long-range vehicle detection, even in darkness and / or poor weather conditions. The functional safety level of the RADAR may be ASIL B. The one or more RADAR sensors 760 may utilize the CAN and / or bus 702 (e.g., for transmitting the data generated by the one or more RADAR sensors 760) for control and access to object tracking data, with access to the raw data via Ethernet in some examples. A variety of RADAR sensor types may be used. The one or more RADAR sensors 760 may be suitable for, for example, front-, rear-, and side-facing RADAR without limitation. In some examples, one or more Pulse Doppler RADAR sensors are used.

[0243] The one or more RADAR sensors 760 may include various configurations, such as long range with a narrow field of view, short range with a wide field of view, short range side coverage, etc. In some examples, long range RADAR may be used for the adaptive cruise control function. Long range RADAR systems may provide a wide field of view realized by two or more independent scans, e.g., within a range of 250 m. The one or more RADAR sensors 760 may assist in distinguishing between static and moving objects and may be used by ADAS systems for emergency braking and forward collision warning. Long range RADAR sensors may include a monostatic multimodal RADAR with multiple (e.g., six or more) fixed RADAR antennas and a high-speed CAN and FlexRay interface.In a six-antenna example, the middle four antennas can create a focused beam pattern designed to detect the surroundings of vehicle 700 at higher speeds with minimal interference from traffic in adjacent lanes. The other two antennas can expand the field of view so that vehicles entering or exiting the lane of vehicle 700 can be quickly detected.

[0244] Medium-range radar systems, for example, can have a range of up to 160 m (front) or 80 m (rear) and a field of view of up to 42 degrees (front) or 150 degrees (rear). Short-range radar systems can include, among other features, radar sensors designed for installation at both ends of the rear bumper. When installed at both ends of the rear bumper, such a radar sensor system can generate two beams that continuously monitor the blind spot area to the rear and to the side of the vehicle.

[0245] Short-range radar systems can be used in an ADAS system to detect blind spots and / or as lane change assistants.

[0246] The vehicle 700 may also include one or more ultrasonic sensors 762. The one or more ultrasonic sensors 762, which may be mounted on the front, rear, and / or sides of the vehicle 700, may be used for parking assistance and / or for creating and updating an occupancy grid. A plurality of ultrasonic sensors 762 may be used, and different ultrasonic sensors 762 may be used for different detection ranges (e.g., 2.5 m, 4 m). The one or more ultrasonic sensors 762 may operate at functional safety levels of ASIL B.

[0247] The vehicle 700 may include one or more LIDAR sensors 764. The one or more LIDAR sensors 764 may be used for object and pedestrian detection, emergency braking, collision avoidance, and / or other functions. The one or more LIDAR sensors 764 may conform to ASIL B functional safety level. In some examples, the vehicle 700 may include multiple LIDAR sensors 764 (e.g., two, four, six, etc.) that may use Ethernet (e.g., to deliver data to a Gigabit Ethernet switch).

[0248] In some examples, the one or more LIDAR sensors 764 may be capable of providing a list of objects and their distances for a 360-degree field of view. For example, commercially available LIDAR sensors 764 may have an advertised range of approximately 100 m, with an accuracy of 2 cm - 3 cm, and support for a 100 Mbps Ethernet connection. In some examples, one or more non-prominent LIDAR sensors 764 may be used. In such examples, the one or more LIDAR sensors 764 may be implemented as a small device that may be embedded in the front, rear, sides, and / or corners of the vehicle 700. In such examples, the one or more LIDAR sensors 764 may provide a horizontal field of view of up to 120 degrees and a vertical field of view of up to 35 degrees, with a range of 200 m, even for objects with low reflectivity.The one or more front-mounted LIDAR sensors 764 may be configured for a horizontal field of view between 45 degrees and 135 degrees.

[0249] In some examples, LIDAR technologies such as 3D flash LIDAR may also be used. 3D flash LIDAR uses a laser flash as the transmission source to illuminate the vehicle's surroundings up to approximately 200 m. A flash LIDAR unit contains a receptor that records the time of flight of the laser pulse and the reflected light at each pixel, which in turn corresponds to the distance between the vehicle and the objects. Flash LIDAR can enable highly accurate and distortion-free images of the surroundings to be generated with each laser flash. In some examples, four flash LIDAR sensors may be deployed, one on each side of the vehicle 700. Available 3D flash LIDAR systems include a solid-state 3D star array LIDAR camera that contains no moving parts other than a fan (e.g., a non-scanning LIDAR device).The flash lidar device can use a 5-nanosecond Class I (eye-safe) laser pulse per image and collect the reflected laser light as 3D range point clouds and co-registered intensity data. By using flash lidar, and because flash lidar is a solid-state device with no moving parts, the one or more lidar sensors 764 can be less susceptible to motion blur, vibration, and / or shock.

[0250] The vehicle may also include one or more IMU sensors 766. The one or more IMU sensors 766 may, in some examples, be located at the center of the rear axle of the vehicle 700. The one or more IMU sensors 766 may, for example and without limitation, include one or more accelerometers, one or more magnetometers, one or more gyroscopes, one or more magnetic compasses, and / or other types of sensors. In some examples, such as in six-axis applications, the one or more IMU sensors 766 may include accelerometers and gyroscopes, while in nine-axis applications, the one or more IMU sensors 766 may include accelerometers, gyroscopes, and magnetometers.

[0251] In some embodiments, the one or more IMU sensors 766 may be implemented as a miniaturized, high-performance GPS-aided inertial navigation system (GPS / INS) that combines micro-electro-mechanical systems (MEMS) inertial sensors, a high-sensitivity GPS receiver, and advanced Kalman filter algorithms to provide estimates of position, velocity, and attitude. Thus, in some examples, the one or more IMU sensors 766 may enable the vehicle 700 to estimate heading without requiring input from a magnetic sensor by directly observing and correlating GPS velocity changes with the one or more IMU sensors 766.In some examples, the one or more IMU sensors 766 and the one or more GNSS sensors 758 may be combined into a single integrated unit.

[0252] The vehicle may include one or more microphones 796 mounted in and / or around the vehicle 700. The one or more microphones 796 may be used, among other things, to detect and identify emergency vehicles.

[0253] The vehicle may further include any number of camera types, including one or more stereo cameras 768, one or more wide-angle cameras 770, one or more infrared cameras 772, one or more surround cameras 774, one or more long-range and / or medium-range cameras 798, and / or other camera types. The cameras may be used to capture image data around the entire perimeter of the vehicle 700. The types of cameras used depend on the embodiments and requirements for the vehicle 700, and any combination of camera types may be used to provide the necessary coverage around the vehicle 700. Furthermore, the number of cameras may vary depending on the embodiment. For example, the vehicle may include six cameras, seven cameras, ten cameras, twelve cameras, and / or another number of cameras.The cameras may support, by way of example and without limitation, Gigabit Multimedia Serial Link (GMSL) and / or Gigabit Ethernet. Each of the one or more cameras is referred to herein with reference to . Fig. 7A and Fig. 7B is described in more detail.

[0254] The vehicle 700 may further include one or more vibration sensors 742. The one or more vibration sensors 742 may measure vibrations from components of the vehicle, such as the one or more axles. For example, changes in vibrations may indicate a change in the road surface. In another example, when two or more vibration sensors 742 are used, the differences between the vibrations may be used to determine the friction or slippage of the road surface (e.g., when the difference in vibration is between a driven axle and a free-spinning axle).

[0255] The vehicle 700 may include an ADAS system 738. The ADAS system 738 may include an SoC in some examples. The ADAS system 738 may include autonomous / adaptive / automatic cruise control (ACC), cooperative adaptive cruise control (CACC), forward crash warning (FCW), automatic emergency braking (AEB), lane departure warning (LDW), lane keep assist (LKA), blind spot warning (BSW), rear cross-traffic warning (RCTW), collision warning systems (CWS), lane centering (LC), and / or other features and functions.

[0256] The ACC systems may use one or more radar sensors 760, one or more lidar sensors 764, and / or one or more cameras. The ACC systems may include longitudinal ACC and / or lateral ACC. Longitudinal ACC monitors and controls the distance to the vehicle immediately in front of the vehicle 700 and automatically adjusts the vehicle speed to maintain a safe distance from preceding vehicles. Lateral ACC performs follow-through and advises the vehicle 700 to change lanes if necessary. Lateral ACC is related to other ADAS applications such as LCA and CWS.

[0257] CACC utilizes information from other vehicles that may be received via the network interface 724 and / or the one or more wireless antennas 726 from other vehicles over a wireless connection or indirectly via a network connection (e.g., over the Internet). Direct connections may be provided via a vehicle-to-vehicle (V2V) communication link, while indirect connections may be an infrastructure-to-vehicle (I2V) communication link. In general, the V2V communication concept provides information about the immediately preceding vehicles (e.g., vehicles immediately in front of and in the same lane as vehicle 700), while the I2V communication concept provides information about traffic further ahead. CACC systems may include both I2V and V2V information sources.Given the information about the vehicles ahead of vehicle 700, CACC can be more reliable and has the potential to improve traffic flow and reduce congestion on the road.

[0258] FCW systems are designed to warn the driver of a hazard so they can take corrective action. FCW systems utilize a forward-facing camera and / or one or more radar sensors 760 coupled with a dedicated processor, DSP, FPGA, and / or ASIC, which is electrically coupled to feedback to the driver, e.g., a display, speaker, and / or vibrating component. FCW systems can provide a warning, e.g., in the form of a sound, a visual warning, a vibration, and / or a rapid braking pulse.

[0259] AEB systems detect an impending forward collision with another vehicle or object and can automatically apply the brakes if the driver does not take corrective action within a specified time or distance parameter. AEB systems may utilize one or more forward-facing cameras and / or one or more radar sensors 760 coupled with a dedicated processor, DSP, FPGA, and / or ASIC. When the AEB system detects a hazard, it typically first alerts the driver to take corrective action to avoid the collision; if the driver does not take corrective action, the AEB system can automatically apply the brakes to prevent or at least mitigate the effects of the predicted collision. AEB systems may incorporate techniques such as dynamic brake support and / or imminent crash braking.

[0260] LDW systems provide visual, audible, and / or tactile warnings, such as steering wheel or seat vibrations, to alert the driver when the vehicle 700 crosses lane markings. An LDW system will not activate if the driver indicates an intentional lane departure by activating a turn signal. LDW systems may utilize forward-facing cameras coupled with a dedicated processor, DSP, FPGA, and / or ASIC, which is electrically coupled to feedback to the driver, e.g., a display, speaker, and / or vibrating component.

[0261] LKA systems are a variation of LDW systems. LKA systems provide steering inputs or braking to correct the vehicle 700 if the vehicle 700 begins to drift out of its lane. BSW systems detect and warn the driver of vehicles in the car's blind spot. BSW systems can provide a visual, audible, and / or tactile warning signal to indicate that merging or changing lanes is unsafe. The system can provide an additional warning if the driver activates a turn signal. BSW systems can utilize one or more rear-facing cameras and / or radar sensors.

[0262] RCTW systems can provide visual, audible, and / or tactile notification when an object outside the range of the rearview camera is detected when the vehicle 700 is reversing. Some RCTW systems include AEB to ensure the vehicle brakes are applied to avoid a crash. RCTW systems can utilize one or more rear-facing RADAR sensors 760 coupled to a dedicated processor, DSP, FPGA, and / or ASIC that is electrically coupled to feedback to the driver, e.g., a display, speaker, and / or vibrating component.

[0263] Conventional ADAS systems can experience false positives, which can be annoying and distracting for the driver, but are generally not catastrophic because ADAS systems warn the driver and give them the opportunity to decide whether a safety condition truly exists and act accordingly. However, in an autonomous vehicle 700, in the event of conflicting results, the vehicle 700 must decide for itself whether to consider the result of a primary computer or a secondary computer (e.g., a first controller 736 or a second controller 736). In some embodiments, the ADAS system 738 may, for example, be a backup and / or secondary computer that provides perception information to a rationality module of the backup computer.The backup computer rationality monitor can run redundant, diverse software on hardware components to detect errors in perception and dynamic driving tasks. The outputs of the ADAS system 738 can be provided to a supervising MCU. If the outputs of the primary computer and the secondary computer conflict, the supervising MCU must determine how to resolve the conflict to ensure safe operation.

[0264] In some examples, the primary computer may be configured to provide the monitoring MCU with a confidence value indicating the primary computer's confidence in the chosen outcome. If the confidence value exceeds a threshold, the monitoring MCU may follow the primary computer's instruction regardless of whether the secondary computer provides a conflicting or inconsistent result. If the confidence value does not meet the threshold and the primary and secondary computers indicate different results (e.g., a conflict), the monitoring MCU may arbitrate between the computers to determine the appropriate outcome.

[0265] The monitoring MCU may be configured to run one or more neural networks trained and configured to determine the conditions under which the secondary computer triggers false alarms based on the output from the primary and secondary computers. This allows the one or more neural networks in the monitoring MCU to learn when the output of the secondary computer can and cannot be trusted. For example, if the secondary computer is a RADAR-based FCW system, a neural network in the monitoring MCU can learn when the FCW system identifies metallic objects that are not actually hazardous, such as a drain grate or manhole cover, which triggers an alarm.Similarly, if the secondary computer is a camera-based LDW system, a neural network in the monitoring MCU may learn to override the LDW system when cyclists or pedestrians are present and lane departure is indeed the safest maneuver. In embodiments including one or more neural networks running on the monitoring MCU, the monitoring MCU may include at least one DLA or GPU, one or more of which is suitable for executing the one or more neural networks with associated memory. In preferred embodiments, the monitoring MCU may comprise and / or be included as a component of the one or more SoCs 704.

[0266] In other examples, the ADAS system 738 may include a secondary computer that executes the ADAS functionality according to traditional computer vision rules. Thus, the secondary computer may use classic computer vision rules (if-then), and the presence of one or more neural networks in the monitoring MCU may improve reliability, safety, and performance. For example, the diverse implementation and intentional non-identity makes the overall system more fault-tolerant, especially against errors caused by software (or software-hardware interfaces).For example, if a software bug or error occurs in the software on the primary computer and the non-identical software code on the secondary computer produces the same overall result, the monitoring MCU can have greater confidence that the overall result is correct and the bug in the software or hardware on the primary computer does not cause a significant error.

[0267] In some examples, the output of the ADAS system 738 may be fed into the perception block of the primary computer and / or the dynamic driving task block of the primary computer. For example, if the ADAS system 738 displays a forward collision warning due to an object immediately ahead, the perception block may use this information in identifying objects. In other examples, the secondary computer may have its own neural network trained to reduce the risk of false positives, as described herein.

[0268] The vehicle 700 may further include the infotainment SoC 730 (e.g., an in-vehicle infotainment (IVI) system). Although illustrated and described as an SoC, the infotainment system may not be an SoC and may include two or more discrete components. The infotainment SoC 730 may include a combination of hardware and software that can be used to provide audio (e.g., music, a personal digital assistant, navigation directions, news, radio, etc.), video (e.g., TV, movies, streaming, etc.), phone (e.g., hands-free calling), network connectivity (e.g., LTE, Wi-Fi, etc.), and / or information services (e.g., navigation systems, rear parking sensors, a radio data system, vehicle-related information such as fuel level, total distance traveled, brake fuel level, oil level, door open / close, air filter information, etc.) to the vehicle 700.The infotainment SoC 730 may include, for example, radios, record players, navigation systems, video players, USB and Bluetooth connectivity, car computers, in-car entertainment, Wi-Fi, steering wheel audio controls, hands-free calling, a heads-up display (HUD), an HMI display 734, a telematics device, a control panel (e.g., for controlling and / or interacting with various components, functions, and / or systems), and / or other components. The infotainment SoC 730 may further be used to provide information (e.g., visual and / or audible) to one or more users of the vehicle, such as information from the ADAS system 738, autonomous driving information such as planned vehicle maneuvers, road layouts, environmental information (e.g., intersection information, vehicle information, road information, etc.), and / or other information.

[0269] The infotainment SoC 730 may include GPU functionality. The infotainment SoC 730 may communicate with other devices, systems, and / or components of the vehicle 700 via the bus 702 (e.g., CAN bus, Ethernet, etc.). In some examples, the infotainment SoC 730 may be coupled to a supervisory MCU so that the GPU of the infotainment system may perform some self-driving functions if the one or more primary controllers 736 (e.g., the primary and / or backup computers of the vehicle 700) fail. In such an example, the infotainment SoC 730 may place the vehicle 800 into a chauffeur-to-safe-stop mode, as described herein.

[0270] The vehicle 700 may further include an instrument cluster 732 (e.g., a digital instrument panel, an electronic instrument cluster, a digital instrument panel, etc.). The instrument cluster 732 may include a controller and / or supercomputer (e.g., a discrete controller or supercomputer). The instrument cluster 732 may include a number of instruments, such as a speedometer, fuel level, oil pressure, tachometer, odometer, turn signals, shift position indicator, seat belt warning light(s), parking brake warning light(s), engine malfunction light(s), airbag system (SRS) information, lighting controls, safety system controls, navigation information, etc. In some examples, information from the infotainment SoC 730 and the instrument cluster 732 may be displayed and / or shared. In other words, the instrument cluster 732 may be included as part of the infotainment SoC 730, or vice versa.

[0271] Fig. 7D is a system diagram for communication between the one or more cloud-based servers and the example autonomous vehicle 700 of Fig. 7A, according to some embodiments of the present disclosure; System 776 may include one or more servers 778, one or more networks 790, and vehicles, including vehicle 700. Server(s) 778 may include a plurality of GPUs 784(A)-784(H) (collectively referred to herein as GPUs 784), PCIe switches 782(A)-782(H) (collectively referred to herein as PCIe switches 782), and / or CPUs 780(A)-780(B) (collectively referred to herein as CPUs 780). GPUs 784, CPUs 780, and PCIe switches may be interconnected using high-speed interconnects such as, without limitation, NVLink interfaces 788 and / or PCIe interconnects 786 developed by NVIDIA. In some examples, the GPUs 784 are connected via NVLink and / or NVSwitch SoC, and the GPUs 784 and the PCIe switches 782 are connected via PCIe links.Although eight GPUs 784, two CPUs 780, and two PCIe switches are illustrated, this is not intended to be limiting. Depending on the embodiment, each of the servers 778 may include any number of GPUs 784, CPUs 780, and / or PCIe switches. For example, the one or more servers 778 may each include eight, sixteen, thirty-two, and / or more GPUs 784.

[0272] The one or more servers 778 may receive, via the one or more networks 790 and from the vehicles, image data representative of images depicting unexpected or changed road conditions, such as recently commenced roadwork. The one or more servers 778 may transmit, via the one or more networks 790 and to the vehicles, neural networks 792, updated neural networks 792, and / or map information 794 containing information about traffic and road conditions. The updates to the map information 794 may include updates to the HD map 722, such as information about construction, potholes, detours, flooding, and / or other obstacles.In some examples, the neural networks 792, the updated neural networks 792, and / or the map information 794 may result from new training and / or experience represented in the data received from any number of vehicles in the environment and / or may be based on training performed in a data center (e.g., using the one or more servers 778 and / or other servers).

[0273] The one or more servers 778 may be used to train machine learning models (e.g., neural networks) based on training data. The training data may be generated by the vehicles and / or in a simulation (e.g., with a game machine). In some examples, the training data is tagged (e.g., when the neural network benefits from supervised learning) and / or undergoes other preprocessing, while in other examples, the training data is not tagged and / or preprocessed (e.g., when the neural network does not require supervised learning).Training may be performed using one or more classes of machine learning techniques, including, without limitation, supervised training, semi-supervised training, unsupervised training, self-learning, reinforcement learning, federated learning, transfer learning, feature learning (including principal component and cluster analysis), multilinear subspace learning, manifold learning, representation learning (including replacement dictionary learning), rule-based machine learning, anomaly detection, and any variations or combinations thereof. Once the machine learning models are trained, the machine learning models may be used by the vehicles (e.g., transmitted to the vehicles via the one or more networks 790) and / or the machine learning models may be used by the one or more servers 778 to remotely monitor the vehicles.

[0274] In some examples, the server(s) 778 may receive data from the vehicles and apply the data to real-time neural networks to perform intelligent inference in real time. The one or more servers 778 may include deep learning supercomputers and / or dedicated AI computers powered by GPUs 784, such as the DGX and DGX Station machines developed by NVIDIA. However, in some examples, the one or more servers 778 may include a deep learning infrastructure using only CPU-powered data centers.

[0275] The deep learning infrastructure of the one or more servers 778 may be capable of performing fast, real-time inferencing and may utilize this capability to evaluate and verify the state of the processors, software, and / or associated hardware in the vehicle 700. For example, the deep learning infrastructure may receive periodic updates from the vehicle 700, such as a sequence of images and / or objects that the vehicle 800 has located in that sequence of images (e.g., via computer vision and / or other machine learning object classification techniques).The deep learning infrastructure may run its own neural network to identify the objects and compare them to the objects identified by the vehicle 700, and if the results do not match and the infrastructure concludes that the AI ​​in the vehicle 700 is not functioning properly, the one or more servers 778 may send a signal to the vehicle 700 instructing a fail-safe computer of the vehicle 700 to take control, notify the passengers, and perform a safe parking maneuver.

[0276] For inferencing, the one or more servers 778 may include GPUs 784 and one or more programmable inference accelerators (e.g., NVIDIA's TensorRT). The combination of GPU-driven servers and inference accelerators may enable real-time responsiveness. In other examples, e.g., where performance is less critical, servers powered by CPUs, FPGAs, and other processors may be used for inferencing. EXAMPLE COMPUTER DEVICE

[0277] Fig. 8 is a block diagram of one or more example computing devices 800 suitable for use in implementing some embodiments of the present disclosure. Computing device 800 may include an interconnection system 802 that directly or indirectly couples the following devices: memory 804, one or more central processing units (CPUs) 806, one or more graphics processing units (GPUs) 808, a communications interface 810, input / output (I / O) ports 812, input / output components 814, a power supply 816, one or more presentation components 818 (e.g., displays), and one or more logic units 820. In at least one embodiment, the one or more computing devices 800 may include one or more virtual machines (VMs), and / or each of the components thereof may include virtual components (e.g., virtual hardware components).As non-limiting examples, one or more of the GPUs 808 may include one or more vGPUs, one or more of the CPUs 806 may include one or more vCPUs, and / or one or more of the logic units 820 may include one or more virtual logic units. Thus, a computing device 800 may include discrete components (e.g., a full GPU associated with the computing device 800), virtual components (e.g., a portion of a GPU associated with the computing device 800), or a combination thereof.

[0278] Although the various blocks of Figure 8 are illustrated as being connected by wires via the interconnect system 802, this is not intended to be limiting and is for clarity only. For example, in some embodiments, a presentation component 818, such as a display device, may be considered an I / O component 814 (e.g., if the display is a touchscreen). As another example, the CPUs 806 and / or GPUs 808 may include memory (e.g., memory 804 may represent a storage device in addition to the memory of the GPUs 808, the CPUs 806, and / or other components). In other words, the computing device of Fig. Figure 8 is merely illustrative. It does not distinguish between categories such as “workstation,” “server,” “laptop,” “desktop,” “tablet,” “client device,” “mobile device,” “handheld device,” “game console,” “electronic control unit (ECU),” “virtual reality system,” and / or other device or system types, since all devices within the scope of the computing device are Fig. 8 may be considered.

[0279] The interconnect system 802 may represent one or more interconnects or buses, such as an address bus, a data bus, a control bus, or a combination thereof. The interconnect system 802 may include one or more types of buses or interconnects, such as an Industry Standard Architecture (ISA) bus, an Extended ISA (EISA) bus, a Video Electronics Standards Association (VESA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI Express (PCIe) bus, and / or another type of bus or interconnect. In some embodiments, there are direct connections between components. For example, the CPU 806 may be directly connected to the memory 804. Further, the CPU 806 may be directly connected to the GPU 808.For a direct or point-to-point connection between components, the interconnect system 802 may include a PCIe link to establish the connection. In these examples, a PCI bus need not be included in the computing device 800.

[0280] Memory 804 may include a variety of computer-readable media. The computer-readable media may be any available media accessible by the computing device 800. The computer-readable media may include both volatile and non-volatile media, as well as removable and non-removable media. By way of example and without limitation, the computer-readable media may include computer storage media and communication media.

[0281] The computer storage media may include both volatile and non-volatile media and / or removable and non-removable media implemented in any method or technology for storing information, such as computer-readable instructions, data structures, program modules, and / or other data types. For example, the memory 804 may store computer-readable instructions (e.g., representing one or more programs and / or one or more program elements, such as an operating system).Computer storage media may include, but is not limited to, RAM, ROM, EEPROM, flash memory or other storage technologies, CD-ROM, Digital Versatile Disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that can be accessed by the computing device 800. As used herein, computer storage media does not per se include signals.

[0282] The computer storage media may embody computer-readable instructions, data structures, program modules, and / or other data types in a modulated data signal such as a carrier wave or other transport mechanism, and includes any media for conveying information. The term "modulated data signal" may refer to a signal having one or more of its characteristics adjusted or altered to encode information in the signal. The computer storage media may include, for example, and is not limited to, wired media, such as a wired network or a direct-wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media. Combinations of the above should also be included within the scope of computer-readable media.

[0283] The one or more CPUs 806 may be configured to execute at least some of the computer-readable instructions to control one or more components of the computing device 800 to perform one or more of the methods and / or processes described herein. The one or more CPUs 806 may each include one or more cores (e.g., one, two, four, eight, twenty-eight, seventy-two, etc.) capable of concurrently executing a plurality of software threads. The one or more CPUs 806 may include any type of processor and may include different types of processors depending on the type of computing device 800 implemented (e.g., processors with fewer cores for mobile devices and processors with more cores for servers).Depending on the type of computing device 800, the processor may be, for example, an Advanced RISC Machines (ARM) processor implemented with Reduced Instruction Set Computing (RISC) or an x86 processor implemented with Complex Instruction Set Computing (CISC). Computing device 800 may include one or more CPUs 806, in addition to one or more microprocessors or additional coprocessors, such as math coprocessors.

[0284] In addition to or alternatively to the one or more CPUs 806, the one or more GPUs 808 may be configured to execute at least some of the computer-readable instructions to control one or more components of the computing device 800 to perform one or more of the methods and / or processes described herein. One or more of the GPUs 808 may be an integrated GPU (e.g., with one or more of the CPUs 806) and / or one or more of the GPUs 808 may be a discrete GPU. In embodiments, one or more of the GPUs 808 may be a co-processor of one or more of the CPUs 806. The one or more GPUs 808 may be used by the computing device 800 to render graphics (e.g., 3D graphics) or to perform general-purpose computations. The one or more GPUs 808 may be used, for example, for general-purpose computing on GPUs (GPGPU).The one or more GPUs 808 may include hundreds or thousands of cores capable of processing hundreds or thousands of software threads simultaneously. The one or more GPUs 808 may generate pixel data for output images in response to rendering commands (e.g., rendering commands from the one or more CPUs 806 received via a host interface). The one or more GPUs 808 may include graphics memory, such as display memory, for storing pixel data or other suitable data, such as GPGPU data. The display memory may be included as part of the memory 804. The one or more GPUs 808 may include two or more GPUs operating in parallel (e.g., via a link). The link may connect the GPUs directly (e.g., using NVLINK) or connect the GPUs via a switch (e.g., using NVSwitch).When combined, each GPU can generate 808 pixel data or GPGPU data for different sections of an output or for different outputs (e.g., a first GPU for a first image and a second GPU for a second image). Each GPU can contain its own memory or share memory with other GPUs.

[0285] In addition to or alternatively to the one or more CPUs 806 and / or the one or more GPUs 808, the one or more logic units 820 may be configured to execute at least some of the computer-readable instructions to control one or more components of the computing device 800 to perform one or more of the methods and / or processes described herein. In embodiments, the one or more CPUs 806, the one or more GPUs 808, and / or the one or more logic units 820 may discretely or jointly execute any combination of the methods, processes, and / or portions thereof. One or more of the logic units 820 may be part of and / or integrated with one or more of the CPUs 806 and / or one or more of the GPUs 808, and / or one or more of the logic units 820 may be discrete components or otherwise external to the CPUs 806 and / or the GPUs 808.In embodiments, one or more of the logic units 820 may be a co-processor of one or more of the CPUs 806 and / or one or more of the GPUs 808.

[0286] Examples of the one or more logic units 820 include one or more processing cores and / or components thereof, such as data processing units (DPUs), tensor cores (TCs), tensor processing units (TPUs), pixel visual cores (PVCs), vision processing units (VPUs), graphics processing clusters (GPCs), texture processing clusters (TPCs), streaming multiprocessors (SMs), tree traversal units (TTUs), artificial intelligence accelerators (AIAs), deep learning accelerators (DLAs), arithmetic logic units (ALUs), application-specific integrated circuits (Application-Specific Integrated Circuits, ASICs), floating point units (FPUs),Input / Output (I / O) elements, Peripheral Component Interconnect (PCI) or PCI Express (PCIe) elements, and / or similar.

[0287] The communication interface 810 may include one or more receivers, transmitters, and / or transceivers that enable the computing device 800 to communicate with other computers over an electronic network, including wired and / or wireless communication. The communication interface 810 may include components and functions that enable communication over a variety of networks, such as wireless networks (e.g., Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee, etc.), wired networks (e.g., communication over Ethernet or InfiniBand), low-power wide-area networks (e.g., LoRaWAN, SigFox, etc.), and / or the Internet.In one or more embodiments, the one or more logic units 820 and / or the communication interface 810 may include one or more data processing units (DPUs) to transfer data received over a network and / or via the interconnect system 802 directly to one or more GPUs 808 (e.g., a memory thereof).

[0288] The I / O ports 812 may enable the computing device 800 to be logically coupled to other devices, including the I / O components 814, the one or more presentation components 818, and / or other components, some of which may be built into (e.g., integrated) the computing device 800. Illustrative I / O components 814 include a microphone, a mouse, a keyboard, a joystick, a gamepad, a game controller, a satellite dish, a scanner, a printer, a wireless device, etc. The I / O components 814 may provide a natural user interface (NUI) that processes air gestures, speech, or other physiological inputs generated by a user. In some cases, the inputs may be communicated to a suitable network element for further processing.An NUI may implement any combination of speech sensing, pen sensing, facial sensing, biometric sensing, both on-screen and off-screen gesture sensing, air gestures, head and eye tracking, and touch sensing (as further described in the present disclosure) associated with a display of computing device 800. Computing device 800 may include depth cameras, such as stereoscopic camera systems, infrared camera systems, RGB camera systems, touchscreen technology, and combinations thereof, for gesture sensing and recognition. Additionally, computing device 800 may include accelerometers or gyroscopes (e.g., as part of an inertia measurement unit (IMU)) that enable the sensing of motion.In some examples, the output of the accelerometers or gyroscopes from the computing device 800 may be used to display immersive augmented reality or virtual reality.

[0289] The power supply 816 may include a hardwired power supply, a battery power supply, or a combination thereof. The power supply 816 may supply power to the computing device 800 to enable operation of the components of the computing device 800.

[0290] The one or more presentation components 818 may include a display (e.g., a monitor, a touchscreen, a television monitor, a heads-up display (HUD), other display types, or a combination thereof), speakers, and / or other presentation components. The one or more presentation components 818 may receive data from other components (e.g., the one or more GPUs 808, the one or more CPUs 806, DPUs, etc.) and output the data (e.g., as an image, video, audio, etc.). EXEMPLARY DATA CENTER

[0291] Fig. Figure 9 illustrates an example data center 900 that may be used in at least one embodiment of the present disclosure. Data center 900 may include a data center infrastructure layer 910, a framework layer 920, a software layer 930, and / or an application layer 940.

[0292] As in Fig. 9, the data center infrastructure layer 910 may include a resource orchestrator 912, clustered computing resources 914, and node computing resources (“node CRs”) 916(1)-916(N), where “N” represents any positive integer. In at least one embodiment, the node CRs 916(1)-916(N) may include, but are not limited to, any number of central processing units (CPUs) or other processors (including DPUs, accelerators, field programmable gate arrays (FPGAs), graphics processors or graphics processing units (GPUs), etc.), memory devices (e.g., dynamic read-only memory), storage devices (e.g., solid-state or disk drives), network input / output (NW I / O) devices, network switches, virtual machines (VMs), power modules and / or cooling modules, etc. In some embodiments, one or more node CRsOne or more of the node CRs 916(1)-916(N) may correspond to a server having one or more of the computing resources mentioned above. Furthermore, in some embodiments, the node CRs 916(1)-916(N) may include one or more virtual components, such as vGPUs, vCPUs, and / or the like, and / or one or more of the node CRs 916(1)-916(N) may correspond to a virtual machine (VM).

[0293] In at least one embodiment, the grouped computing resources 914 may include separate groupings of node CRs 916 housed in one or more racks (not shown) or in many racks in data centers in different geographical locations (also not shown). Separate groupings of node CRs 916 within grouped computing resources 914 may include grouped computing, network, memory, or storage resources that may be configured or allocated to support one or more workloads. In at least one embodiment, multiple node CRs 916, including the CPUs, GPUs, DPUs, and / or other processors, may be grouped in one or more racks to provide computing resources to support one or more workloads.The one or more racks may also contain any number of power modules, cooling modules, and / or network switches in any combination.

[0294] Resource orchestrator 912 may configure or otherwise control one or more node CRs 916(1)-916(N) and / or clustered computing resources 914. In at least one embodiment, resource orchestrator 912 may include an entity for managing the software design infrastructure (SDI) for data center 900. Resource orchestrator 912 may include hardware, software, or a combination thereof.

[0295] In at least one embodiment, as in Fig. 9, the framework layer 920 may include a job scheduler 932, a configuration manager 934, a resource manager 936, and / or a distributed file system 938. The framework layer 920 may include a framework that supports the software 932 of the software layer 930 and / or one or more applications 942 of the application layer 940. The software 932 or the one or more applications 942 may each include web-based service software or applications such as those provided by Amazon Web Services, Google Cloud, and Microsoft Azure. The framework layer 920 may be some type of free and open source software web application framework such as, but not limited to, Apache Spark™ (hereinafter "Spark"), which may utilize a distributed file system 938 for processing large amounts of data (e.g., "Big Data").In at least one embodiment, the job scheduler 932 may include a Spark driver to facilitate the scheduling of workloads supported by various layers of the data center 900. The configuration manager 934 may be capable of configuring various layers, such as the software layer 930 and the framework layer 920, which includes Spark and the distributed file system 938, to support the processing of large amounts of data. The resource manager 936 may be capable of managing clustered or grouped computing resources allocated or assigned to support the distributed file system 938 and the job scheduler 932. In at least one embodiment, the clustered or grouped computing resources may include the clustered computing resource 914 at the infrastructure layer 910 of the data center.The resource manager 936 may coordinate with the resource orchestrator 912 to manage these allocated or assigned computing resources.

[0296] In at least one embodiment, the software 932 included in software layer 930 may include software used by at least portions of node CRs 916(1)-916(N), clustered computing resources 914, and / or distributed file system 938 of framework layer 920. One or more types of software may include, but are not limited to, web page searching software, email virus scanning software, database software, and streaming video content software.

[0297] In at least one embodiment, the applications 942 included in the application layer 940 may include one or more types of applications used by at least portions of the node CRs 916(1)-916(N), the clustered computing resources 914, and / or the distributed file system 938 of the framework layer 920. One or more types of applications may include, but are not limited to, any number of a genome application, a cognitive computing application, and a machine learning application, including training or inference software, machine learning framework software (e.g., PyTorch, TensorFlow, Caffe, etc.), and / or other machine learning applications used in connection with one or more embodiments.

[0298] In at least one embodiment, the configuration manager 934, the resource manager 936, and / or the resource orchestrator 912 may implement any number and type of self-modifying actions based on any amount and type of data collected in any technically feasible manner. Self-modifying actions may relieve a data center operator of the data center 900 from potentially making poor configuration decisions and potentially avoiding underutilized and / or poorly performing portions of a data center.

[0299] Data center 900 may include tools, services, software, or other resources to train one or more machine learning models or to predict or infer information using one or more machine learning models according to one or more embodiments described herein. For example, one or more machine learning models may be trained by calculating weighting parameters according to a neural network architecture using software and / or computing resources described in the present disclosure with respect to data center 900.In at least one embodiment, trained or deployed machine learning models corresponding to one or more neural networks may be used to infer or predict information using the resources described in the present disclosure relating to the data center 900 by using weighting parameters calculated by one or more training techniques, such as, but not limited to, those described herein.

[0300] In at least one embodiment, data center 900 may utilize CPUs, application-specific integrated circuits (ASICs), GPUs, FPGAs, and / or other hardware (or corresponding virtual computing resources) to perform training and / or inferencing using the resources described above. Furthermore, one or more of the software and / or hardware resources described in the present disclosure may be configured as a service to enable users to train or infer information, such as image capture, speech capture, or other artificial intelligence services. EXAMPLE NETWORK ENVIRONMENTS

[0301] Network environments suitable for implementing embodiments of the disclosure may include one or more client devices, servers, network attached storage (NAS), other backend devices, and / or other device types. The client devices, servers, and / or other device types (e.g., each device) may be running on one or more instances of the one or more computing devices 800 of Fig. 8 - e.g., each device may include similar components, features, and / or functionality of the one or more computing devices 800. If backend devices (e.g., servers, NAS, etc.) are implemented, the backend devices may also be included as part of a data center 900, an example of which is described herein with reference to Fig. 9 is described in more detail.

[0302] The components of a network environment can communicate with each other over one or more networks, which can be wired, wireless, or both. The network can contain multiple networks or a network of networks. For example, the network can contain one or more wide area networks (WANs), one or more local area networks (LANs), one or more public networks such as the Internet and / or a public switched telephone network (PSTN), and / or one or more private networks. If the network contains a wireless telecommunications network, components such as a base station, a communications tower, or even access points (as well as other components) can provide wireless connectivity.

[0303] Compatible network environments may include one or more peer-to-peer network environments—in which case, a server cannot be included in a network environment—and one or more client-server network environments—in which case, one or more servers can be included in a network environment. In peer-to-peer network environments, the functionality described herein with respect to one or more servers may be implemented on any number of client devices.

[0304] In at least one embodiment, a network environment may include one or more cloud-based network environments, a distributed computing environment, a combination thereof, etc. A cloud-based network environment may include a framework layer, a job scheduler, a resource manager, and a distributed file system implemented on one or more servers, which may include one or more core network servers and / or edge servers. A framework layer may include a framework for supporting software of a software layer and / or one or more applications of an application layer. The software or the one or more applications may each include web-based service software or applications. In embodiments, one or more of the client devices may utilize the web-based service software or applications (e.g.,by accessing the service software and / or applications through one or more application programming interfaces (APIs). The framework layer may be, but is not limited to, some type of free and open-source software web application framework that uses, for example, a distributed file system for processing large amounts of data (e.g., "Big Data").

[0305] A cloud-based network environment may provide cloud computing and / or cloud storage that performs any combination of the computing and / or data storage functions (or one or more portions thereof) described herein. Each of these various functions may be distributed from central or core servers (e.g., from one or more data centers that may be located across a state, region, country, globe, etc.) across multiple locations. When a connection to a user (e.g., a client device) is relatively close to one or more edge servers, one or more core servers may offload at least a portion of the functionality to the one or more edge servers. A cloud-based network environment may be private (e.g., limited to a single organization), public (e.g., available to many organizations), and / or a combination thereof (e.g., a hybrid cloud environment).

[0306] The one or more client devices may include at least some of the components, features, and functions of the one or more described herein with respect to Fig.8. By way of example, and not limitation, a client device may be embodied as a personal computer (PC), a laptop, a mobile device, a smartphone, a tablet computer, a smart watch, a wearable computer, a personal digital assistant (PDA), an MP3 player, a virtual reality headset, a global positioning system (GPS) or a global positioning device, a video player, a video camera, a surveillance device or system, a vehicle, a boat, a flying boat, a virtual machine, a drone, a robot, a handheld communication device, a hospital device, a gaming device or system, an entertainment system, a vehicle computing system, an embedded system controller, a remote control, an appliance, a consumer electronics device, a workstation, an edge device,any combination of these described devices or any other suitable device.

[0307] The disclosure of this application also includes the following numbered clauses: Clause 1. Procedure which includes: Obtaining conflict data associated with a node area corresponding to one or more potential right-of-way scenarios associated with the navigation of a machine, the conflict data indicating information related to a plurality of conflict points of the node area that affect the waiting behavior of the vehicle with respect to the one or more potential right-of-way scenarios; Determining a set of conflict rules for the node area based on at least the conflict data, the set of conflict rules specifying one or more respective wait behaviors that may be applied to individual conflict points of the plurality of conflict points; and Causing the execution of one or more control operations of the machine based on at least the set of conflict rules. Clause 2. Procedures under Clause 1, where the dispute data specify one or more of the following: one or more respective locations within the nodal area of ​​one or more individual conflict points of the plurality of conflict points; one or more potential maneuvers, each corresponding to one or more individual points of conflict; or one or more respective sets of one or more waiting behavior rules corresponding to the one or more individual conflict points. Clause 3. The method of Clause 2, wherein at least one of the one or more respective sets of waiting behavior rules includes respective waiting behaviors corresponding to one or more individual potential maneuvers corresponding to the one or more individual conflict points. Clause 4. Procedure under any of the preceding clauses, where the plurality of points of conflict corresponds to one or more of the following: overlapping vehicle paths; intersecting vehicle paths; an intersection between a pedestrian area and a first vehicular path; a crossing between a railway and a second path for vehicles; an intersection between an access area and a third path for vehicles; an intersection between a bicycle path and a fourth path for vehicles; an intersection between a railway line and a fifth path for vehicles; an intersection between a tramway lane and a sixth path for vehicles; or an intersection between a tram track and a seventh path for vehicles. Clause 5. The method of any preceding clause, wherein determining the set of conflict rules is further based on at least perception data obtained using one or more sensors of the machine and indicative of a state of the node area. Clause 6. The method of any preceding clause, wherein the conflict data is contained in one or more data structures that include one or more of the following: a signal data structure; a conflict data structure; or a direction rule data structure. Clause 7. The method of any preceding clause, wherein the one or more control operations are based at least on an analysis of which of the conflict rules of the set of conflict rules are applicable to the machine with respect to a state of the node space. Clause 8. System comprising: one or more processing units for performing operations, comprising: Obtaining conflict data associated with a node area corresponding to one or more potential right-of-way grant scenarios associated with the navigation of a machine; Determining a set of conflict rules for the intersection area based on at least the conflict data, the set of conflict rules indicating one or more respective waiting behaviors corresponding to one or more individual conflict points of the intersection area that affect the waiting behavior of the vehicle with respect to the one or more potential right-of-way granting scenarios; and Causing the execution of one or more control operations of the machine based on at least the set of conflict rules. Clause 9. A system as defined in Clause 8, where the conflict data indicates one or more of the following: one or more respective locations within the nodal area of ​​the one or more individual conflict points; one or more potential maneuvers, each corresponding to one or more individual points of conflict; or one or more respective sets of one or more waiting behavior rules corresponding to the one or more individual conflict points. Clause 10. A system as recited in Clause 9, wherein at least one of the one or more respective sets of waiting behavior rules includes respective waiting behaviors corresponding to one or more individual potential maneuvers corresponding to the one or more individual conflict points. Clause 11. A system under any of Clauses 8-10, where the one or more individual points of conflict correspond to one or more of the following: intersecting vehicle paths; overlapping vehicle paths; an intersection between a pedestrian area and a first vehicular path; a crossing between a railway and a second path for vehicles; an intersection between an access area and a third path for vehicles. Clause 12. The system of any of clauses 8-11, wherein determining the set of conflict rules is further based at least on perception data obtained using one or more sensors of the machine and indicative of a state of the node area. Clause 13. A system according to any of Clauses 8-12, wherein the conflict data is contained in one or more data structures that include one or more of the following: a signal data structure; a conflict data structure; or a direction rule data structure. Clause 14. A system according to clause 10 or any of clauses 11-13 when dependent on claim 10, the system comprising at least one of the following: a control system for an autonomous or semi-autonomous machine; a perception system for an autonomous or semi-autonomous machine; a system for performing simulation operations; a system for conducting digital twinning operations; a system for performing light transport simulations; a system for performing collaborative content creation for 3D assets; a system for performing deep learning operations; a system for displaying at least one of the following content: augmented reality content, virtual reality content or mixed reality content; a system for hosting one or more real-time streaming applications; a system implemented using an edge device; a system implemented using a robot; a system for performing conversational AI operations; a system for implementing one or more large language models (LLMs); a system for generating synthetic data; a system that contains one or more virtual machines (VMs); a system that is implemented at least in part in a data center; or a system that is implemented at least in part using cloud computing resources. Clause 15. Processor comprising processing circuitry to perform operations including: Determining conflict data associated with a node area corresponding to one or more potential right-of-way grant scenarios associated with navigation of a machine, wherein the conflict data is determined based on at least one or more data structures corresponding to the node area; Determining a set of conflict rules for the intersection area based on at least the conflict data, wherein the set of conflict rules corresponds to one or more individual conflict points of the intersection area that affect the waiting behavior of the vehicle with respect to the one or more potential right-of-way granting scenarios; and Causing the execution of one or more control operations of the machine based on at least the set of conflict rules. Clause 16. Processor as defined in Clause 15, where the conflict data indicates one or more of the following: one or more respective locations within the nodal area of ​​the one or more individual conflict points; one or more potential maneuvers, each corresponding to one or more individual points of conflict; or one or more respective sets of waiting behavior rules corresponding to the one or more individual conflict points. Clause 17. The processor of Clause 16, wherein at least one of the one or more respective sets of wait behavior rules includes respective wait behaviors corresponding to one or more individual potential maneuvers corresponding to the one or more individual contention points. Clause 18. Processor under any of Clauses 15-17, where the one or more individual points of conflict correspond to one or more of the following: intersecting vehicle paths; overlapping vehicle paths; an intersection between a pedestrian area and a first vehicular path; a crossing between a railway and a second path for vehicles; an intersection between an access area and a third path for vehicles. Clause 19. The processor of any of clauses 15-18, wherein determining the set of conflict rules is further based at least on perception data obtained using one or more sensors of the machine and indicative of a state of the node area. Clause 20. A processor according to any of Clauses 15-19, wherein the one or more data structures include one or more of the following: a signal data structure; a conflict data structure; or a direction rule data structure.

[0308] The disclosure may be described in the general context of computer code or machine-usable instructions, including computer-executable instructions such as program modules executed by a computer or other machine, such as a personal data assistant or other portable device. Generally, program modules include routines, programs, objects, components, data structures, etc., and refer to code that performs specific tasks or implements specific abstract data types. The disclosure may be practiced in a variety of system configurations, including handheld devices, consumer electronics, general-purpose computers, more specialized computing devices, etc. The disclosure may also be practiced in distributed computing environments where tasks are performed by remotely controlled devices interconnected by a network for communication.

[0309] As used herein, any reference to "and / or" in reference to two or more elements should be interpreted to mean only one element or a combination of elements. For example, "Element A, Element B, and / or Element C" may include only Element A, only Element B, only Element C, Element A and Element B, Element A and Element C, Element B and Element C, or Elements A, B, and C. Furthermore, "at least one of Element A or Element B" may include at least one of Element A, at least one of Element B, or at least one of Element A and at least one of Element B. Further, "at least one of Element A and Element B" may include at least one of Element A, at least one of Element B, or at least one of Element A and at least one of Element B. Furthermore, the use of the term "based on" should not be interpreted to mean "only based on" or "based only on."Rather, a first element that is “based” on a second element includes cases where the first element is based on the second element, but may also be based on one or more additional elements.

[0310] The subject matter of the present disclosure is specifically described herein to satisfy legal requirements. However, the description itself is not intended to limit the scope of the present disclosure. Rather, the inventors contemplated that the claimed subject matter may be embodied in other ways to include various steps or combinations of steps similar to those described herein, in conjunction with other present or future technologies. Although the terms "step" and / or "block" may be used herein to refer to various elements of the methods employed, the terms should not be interpreted to imply any particular ordering among or between the various steps disclosed herein, unless and except that the order of each step is expressly described.

[0311] It is to be understood that the aspects and embodiments described above are purely exemplary and that changes in detail may be made within the scope of the claims.

[0312] Each device, method, and feature disclosed in the description and (optionally) in the claims and drawings may be presented independently or in any suitable combination.

[0313] Reference signs in the claims are for illustrative purposes only and do not limit the scope of the claims. QUOTES CONTAINED IN THE DESCRIPTION

[0000] This list of documents submitted by the applicant was generated automatically and is included solely for the convenience of the reader. This list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions. Cited patent literature

[0000] US 17 / 512,495

[0080] US 16 / 101,232

[0213] Cited non-patent literature

[0000] Standard No. J3016-201806, published on June 15, 2018

[0171] Standard No. J3016-201609, published on September 30, 2016

[0171]

Claims

[1] Procedure comprising: Obtaining conflict data associated with a node area corresponding to one or more potential right-of-way scenarios associated with the navigation of a machine, the conflict data indicating information related to a plurality of conflict points of the node area that affect the waiting behavior of the vehicle with respect to the one or more potential right-of-way scenarios; Determining a set of conflict rules for the node area based on at least the conflict data, the set of conflict rules specifying one or more respective wait behaviors that may be applied to individual conflict points of the plurality of conflict points; and Causing the execution of one or more control operations of the machine based on at least the set of conflict rules. [2] The method of claim 1, wherein the conflict data indicates one or more of the following: one or more respective locations within the nodal area of ​​one or more individual conflict points of the plurality of conflict points; one or more potential maneuvers, each corresponding to the one or more individual points of conflict; or one or more respective sets of one or more waiting behavior rules corresponding to the one or more individual conflict points. [3] The method of claim 2, wherein at least one of the one or more respective sets of waiting behavior rules includes respective waiting behaviors corresponding to one or more individual potential maneuvers corresponding to the one or more individual conflict points. [4] A method according to any one of the preceding claims, wherein the plurality of conflict points corresponds to one or more of the following: overlapping vehicle paths; intersecting vehicle paths; an intersection between a pedestrian area and a first vehicular path; a crossing between a railway and a second path for vehicles; an intersection between an access area and a third path for vehicles; an intersection between a bicycle path and a fourth path for vehicles; an intersection between a railway line and a fifth path for vehicles; an intersection between a tramway lane and a sixth path for vehicles; or an intersection between a tram track and a seventh path for vehicles. [5] A method according to any one of the preceding claims, wherein determining the set of conflict rules is further based on at least perception data obtained using one or more sensors of the machine and indicative of a state of the node area. [6] A method according to any one of the preceding claims, wherein the conflict data is contained in one or more data structures containing one or more of the following: a signal data structure; a conflict data structure; or a direction rule data structure. [7] A method according to any one of the preceding claims, wherein the one or more control operations are based at least on an analysis of which of the conflict rules of the set of conflict rules are applicable to the machine with respect to a state of the node area. [8] System comprising: one or more processing units for performing operations, comprising: Obtaining conflict data associated with a node area corresponding to one or more potential right-of-way grant scenarios associated with the navigation of a machine; Determining a set of conflict rules for the intersection area based on at least the conflict data, the set of conflict rules indicating one or more respective waiting behaviors corresponding to one or more individual conflict points of the intersection area that affect the waiting behavior of the vehicle with respect to the one or more potential right-of-way granting scenarios; and Causing the execution of one or more control operations of the machine based on at least the set of conflict rules. [9] The system of claim 8, wherein the conflict data indicates one or more of the following: one or more respective locations within the nodal area of ​​the one or more individual conflict points; one or more potential maneuvers, each corresponding to the one or more individual points of conflict; or one or more respective sets of one or more waiting behavior rules corresponding to the one or more individual conflict points. [10] The system of claim 9, wherein at least one of the one or more respective sets of waiting behavior rules includes respective waiting behaviors corresponding to one or more individual potential maneuvers corresponding to the one or more individual conflict points. [11] A system according to any one of claims 8-10, wherein the one or more individual conflict points correspond to one or more of the following: intersecting vehicle paths; overlapping vehicle paths; an intersection between a pedestrian area and a first vehicular path; a crossing between a railway and a second path for vehicles; an intersection between an access area and a third path for vehicles. [12] The system of any of claims 8-11, wherein determining the set of conflict rules is further based on at least perception data obtained using one or more sensors of the machine and indicative of a state of the node area. [13] The system of any of claims 8-12, wherein the conflict data is contained in one or more data structures containing one or more of the following: a signal data structure; a conflict data structure; or a direction rule data structure. [14] System according to any one of claims 8-13, wherein the system comprises at least one of the following: a control system for an autonomous or semi-autonomous machine; a perception system for an autonomous or semi-autonomous machine; a system for performing simulation operations; a system for conducting digital twinning operations; a system for performing light transport simulations; a system for performing collaborative content creation for 3D assets; a system for performing deep learning operations; a system for displaying at least one of the following content: augmented reality content, virtual reality content or mixed reality content; a system for hosting one or more real-time streaming applications; a system implemented using an edge device; a system implemented using a robot; a system for performing conversational AI operations; a system for implementing one or more large language models (LLMs); a system for generating synthetic data; a system that contains one or more virtual machines (VMs); a system that is at least partially implemented in a data center; or a system implemented at least in part using cloud computing resources. [15] Processor comprising processing circuitry to perform operations including: Determining conflict data associated with a node area corresponding to one or more potential right-of-way grant scenarios associated with the navigation of a machine, wherein the conflict data is determined based on at least one or more data structures corresponding to the node area; Determining a set of conflict rules for the intersection area based on at least the conflict data, wherein the set of conflict rules corresponds to one or more individual conflict points of the intersection area that affect the waiting behavior of the vehicle with respect to the one or more potential right-of-way granting scenarios; and Causing the execution of one or more control operations of the machine based on at least the set of conflict rules. [16] The processor of claim 15, wherein the conflict data indicates one or more of the following: one or more respective locations within the nodal area of ​​the one or more individual conflict points; one or more potential maneuvers, each corresponding to the one or more individual points of conflict; or one or more respective sets of waiting behavior rules corresponding to the one or more individual conflict points. [17] The processor of claim 16, wherein at least one of the one or more respective sets of wait behavior rules includes respective wait behaviors corresponding to one or more individual potential maneuvers corresponding to the one or more individual contention points. [18] A processor according to any one of claims 15-17, wherein the one or more individual contention points correspond to one or more of the following: intersecting vehicle paths; overlapping vehicle paths; an intersection between a pedestrian area and a first vehicular path; a crossing between a railway and a second path for vehicles; an intersection between an access area and a third path for vehicles. [19] The processor of any of claims 15-18, wherein determining the set of conflict rules is further based on at least perception data obtained using one or more sensors of the machine and indicative of a state of the node area. [20] A processor according to any one of claims 15-19, wherein the one or more data structures include one or more of the following: a signal data structure; a conflict data structure; or a direction rule data structure.

Citation Information

Patent Citations

  • Navigating multi-way stop intersections with an autonomous vehicle

    DE102020126217A1

  • SYSTEMS AND PROCEDURES FOR INTERSECTION MANEUVERS BY VEHICLES

    DE102021129454A1

  • PRIORITY DETERMINATION FOR MULTI-WAY STOPS

    DE102022104058A1

  • US16101232B2

  • US17512495B2