DE102022126537A1 - Coding of priority scenarios for autonomous systems - Google Patents

Coding of priority scenarios for autonomous systems Download PDF

Info

Publication number
DE102022126537A1
DE102022126537A1 DE102022126537.4A DE102022126537A DE102022126537A1 DE 102022126537 A1 DE102022126537 A1 DE 102022126537A1 DE 102022126537 A DE102022126537 A DE 102022126537A DE 102022126537 A1 DE102022126537 A1 DE 102022126537A1
Authority
DE
Germany
Prior art keywords
vehicle
geometry
path
data
scenario
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102022126537.4A
Other languages
German (de)
Inventor
David Nister
Minwoo Park
Miguel Sainz Serra
Vaibhav Thukral
Berta Rodriguez Hervas
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE102022126537A1 publication Critical patent/DE102022126537A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0015Planning or execution of driving tasks specially adapted for safety
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/0104Measuring and analyzing of parameters relative to traffic conditions
    • G08G1/0108Measuring and analyzing of parameters relative to traffic conditions based on the source of data
    • G08G1/0112Measuring and analyzing of parameters relative to traffic conditions based on the source of data from the vehicle, e.g. floating car data [FCD]
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W30/00Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
    • B60W30/18Propelling the vehicle
    • B60W30/18009Propelling the vehicle related to particular drive situations
    • B60W30/18154Approaching an intersection
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0011Planning or execution of driving tasks involving control alternatives for a single driving scenario, e.g. planning several paths to avoid obstacles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/042Knowledge-based neural networks; Logical representations of neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/0104Measuring and analyzing of parameters relative to traffic conditions
    • G08G1/0125Traffic data processing
    • G08G1/0133Traffic data processing for classifying traffic situation
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/0104Measuring and analyzing of parameters relative to traffic conditions
    • G08G1/0137Measuring and analyzing of parameters relative to traffic conditions for specific applications
    • G08G1/0145Measuring and analyzing of parameters relative to traffic conditions for specific applications for active traffic flow control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2555/00Input parameters relating to exterior conditions, not covered by groups B60W2552/00, B60W2554/00
    • B60W2555/60Traffic rules, e.g. speed limits or right of way
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2556/00Input parameters relating to data
    • B60W2556/40High definition maps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Analytical Chemistry (AREA)
  • Chemical & Material Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Robotics (AREA)
  • Traffic Control Systems (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)

Abstract

In Beispielen werden autonome Fahrzeuge in die Lage versetzt, Vorfahrtszenarien auf sichere und vorhersehbare Weise zu befahren. Als Reaktion auf das Erfassen eines Vorfahrtszenarios wird eine Warteelement-Datenstruktur erzeugt, die die Geometrien eines Ego-Wegs, eines Konkurrenten-Wegs, der mindestens einen Konkurrenzpunkt mit dem Ego-Weg enthält, sowie einen Konkurrenzzustand codiert, der mit dem mindestens einen Konkurrenzpunkt verbunden ist. Die Geometrie des Kontextes des Vorfahrtsszenarios kann ebenfalls codiert werden, z. B. die Innenfläche einer Kreuzung, Einfahrts- oder Ausfahrtslinien usw. Die Datenstruktur der Warteelemente wird an einen Vorfahrtsplaner des autonomen Fahrzeugs weitergeleitet. Der Vorfahrtsplaner bestimmt ein Vorfahrtsverhalten für das autonome Fahrzeug mindestens basierend auf der Warteelementdatenstruktur. Ein Steuerungssystem des autonomen Fahrzeugs kann das autonome Fahrzeug gemäß dem Vorfahrtsverhalten betreiben, so dass das autonome Fahrzeug das Vorfahrtszenario sicher durchfährt.In examples, autonomous vehicles are enabled to negotiate right-of-way scenarios in a safe and predictable manner. In response to detecting a right-of-way scenario, a queuing element data structure is generated that encodes the geometries of an ego path, a competitor path that includes at least one contention point with the ego path, and a contention state associated with the at least one contention point is. The geometry of the context of the right-of-way scenario can also be encoded, e.g. B. the inner surface of an intersection, entry or exit lines, etc. The data structure of the waiting elements is forwarded to a priority planner of the autonomous vehicle. The priority planner determines a priority behavior for the autonomous vehicle based at least on the queuing element data structure. A control system of the autonomous vehicle can operate the autonomous vehicle according to the right-of-way behavior so that the autonomous vehicle safely runs through the right-of-way scenario.

Description

Hintergrundbackground

Fortschritte bei Verfahren des maschinellen Sehens, den Architekturen neuronaler Netze und den Rechensubstraten ermöglichen allmählich autonome Fahrzeuge, wie z. B. landgestützte autonome Fahrzeuge (z. B. selbstfahrende Autos und Lastwagen) und Roboter. Damit die Öffentlichkeit und die staatlichen Aufsichtsbehörden einen breiten Einsatz von selbstfahrenden Autos und Lastwagen auf den Straßen akzeptieren, müssen die selbstfahrenden Autos und Lastwagen ein Sicherheitsniveau erreichen, das das derzeitige Sicherheitsniveau eines durchschnittlichen menschlichen Fahrers übertrifft. Sicheres und effektives Fahren setzt voraus, dass alle Fahrer darauf vertrauen können, dass andere Fahrzeuge in der Umgebung ordnungsgemäß die Vorfahrt gewähren, wenn sie dazu verpflichtet sind. Wenn ein Fahrzeug nicht die Vorfahrt gewährt, kann es sein, dass die Fahrer anderer Fahrzeuge in der Nähe nicht in der Lage sind, sicher und effizient zu fahren, weil andere Fahrer „unberechenbar“ sind, z. B. Fahrer, die durch ihr Verhalten signalisiert haben, dass sie möglicherweise nicht die Vorfahrt gewähren, wenn sie dazu verpflichtet sind. Eine notwendige Bedingung für den Einsatz selbstfahrender Autos und Lkw ist daher, dass die selbstfahrenden Autos und Lkw die Vorfahrtsszenarien (z. B. Kreuzungen und einmündende Fahrspuren) „sicher und höflich“ bewältigen.Advances in machine vision techniques, neural network architectures, and computing substrates are beginning to enable autonomous vehicles such as B. Land-based autonomous vehicles (e.g. self-driving cars and trucks) and robots. For the public and government regulators to accept widespread deployment of self-driving cars and trucks on the roads, the self-driving cars and trucks must achieve a level of safety that surpasses current safety levels of the average human driver. Safe and effective driving requires that all drivers can be confident that other vehicles in the area will properly yield the right-of-way when they are required to do so. If a vehicle does not yield the right-of-way, drivers of other nearby vehicles may not be able to drive safely and efficiently because other drivers are "unpredictable", e.g. B. Drivers who have signaled by their behavior that they may not give way when required to do so. A necessary condition for the use of self-driving cars and trucks is therefore that the self-driving cars and trucks handle the right-of-way scenarios (e.g. intersections and lane junctions) “safely and politely”.

In der Regel bestimmen die örtlichen Verkehrsvorschriften und Fahrprotokolle, welche Fahrzeugführer (und unter welchen Bedingungen) die Verantwortung oder Verpflichtung haben, anderen Vorfahrt zu gewähren. Zu diesen Vorschriften gehören Verkehrsgesetze (z. B. müssen Fahrzeuge Fußgängern an einem Zebrastreifen Vorrang gewähren), situationsbedingte Beschilderung (z. B. ein Straßenschild, das anzeigt, welche Einfahrten in eine Kreuzung anderen Einfahrten Vorfahrt gewähren müssen) und andere Echtzeit-Hinweise (z. B. die nahezu gleichzeitige Ankunft mehrerer Fahrzeuge in einem Kreisverkehr). Herkömmliche autonome Fahrzeuge sind jedoch nicht in der Lage, solche Protokolle zu codieren und einzusetzen. Stattdessen können herkömmliche Systeme darauf abzielen, Kollisionen zu vermeiden, ohne dabei Vorfahrtsprotokolle zu berücksichtigen, und können daher nicht sicher und vorhersehbar durch Vorfahrtszenarien navigieren.Typically, local traffic regulations and driving protocols determine which drivers (and under what conditions) have the responsibility or obligation to give way to others. These regulations include traffic laws (e.g., vehicles must give way to pedestrians at a crosswalk), situational signage (e.g., a street sign indicating which entrances to an intersection must give way to other entrances), and other real-time cues ( e.g. the almost simultaneous arrival of several vehicles in a roundabout). However, conventional autonomous vehicles are not capable of encoding and deploying such protocols. Instead, conventional systems may aim to avoid collisions without considering right-of-way protocols and thus cannot safely and predictably navigate through right-of-way scenarios.

ZusammenfassungSummary

Ausführungsformen der vorliegenden Offenbarung beziehen sich auf die Codierung von Vorfahrtszenarien für autonome Systeme (z. B. ein bemanntes oder unbemanntes Fahrzeug oder einen Roboter). Es werden Systeme und Verfahren offenbart, die für die Echtzeitsteuerung autonomer Systeme sorgen, wenn die Systeme auf ein Vorfahrtszenario treffen.Embodiments of the present disclosure relate to coding of give-way scenarios for autonomous systems (e.g., a manned or unmanned vehicle or a robot). Systems and methods are disclosed that provide real-time control of autonomous systems when the systems encounter a right-of-way scenario.

Im Gegensatz zu konventionellen Systemen, wie sie oben beschrieben wurden, ermöglichen die offenbarten Ausführungsformen autonomen Systemen, Vorfahrtszenarien auf sichere und vorhersehbare Weise zu bewältigen. In mindestens einer Ausführungsform wird als Reaktion auf die Erkennung eines Vorfahrtszenarios eine Datenstruktur erzeugt, die die Geometrien eines Ego-Wegs, eines Konkurrenten-Wegs, der mindestens einen Konkurrenzpunkt mit dem Ego-Weg enthält, sowie einen Konkurrenzzustand codiert, der mit dem mindestens einen Konkurrenzpunkt verbunden ist. Die Geometrie des Kontextes eines Vorfahrtsszenario kann ebenfalls codiert werden, z. B. die Geometrie, die einen Bereich der Innenfläche einer Kreuzung definiert (z. B. als Polygon), Einfahrts- oder Ausfahrtslinien usw. Die Datenstruktur wird an einen Vorfahrtplaner des autonomen Systems weitergeleitet. Der Vorfahrtplaner bestimmt ein Vorfahrtverhalten für das autonome System mindestens basierend auf der Datenstruktur. Ein Steuerungssystem des autonomen Systems kann das autonome System gemäß dem Vorfahrtverhalten betreiben, so dass das autonome System das Vorfahrtszenario sicher befährt.In contrast to conventional systems such as those described above, the disclosed embodiments enable autonomous systems to handle give-way scenarios in a safe and predictable manner. In at least one embodiment, in response to detecting a right-of-way scenario, a data structure is generated that encodes the geometries of an ego path, a competitor path that contains at least one contention point with the ego path, and a contention state that contains the at least one point of competition is connected. The geometry of the context of a right-of-way scenario can also be encoded, e.g. B. the geometry that defines an area of the inner surface of an intersection (e.g. as a polygon), entry or exit lines, etc. The data structure is passed to a priority planner of the autonomous system. The right-of-way planner determines a right-of-way behavior for the autonomous system based at least on the data structure. A control system of the autonomous system can operate the autonomous system according to the right-of-way behavior so that the autonomous system safely runs the right-of-way scenario.

In mindestens einer Ausführungsform kann ein Vorfahrtszenario (z. B. ein Kreuzungs- oder Einmündungsvorfahrtszenario) mindestens basierend auf der Analyse von Sensordaten erkannt werden, die von mindestens einem Sensor eines autonomen Fahrzeugs erzeugt werden. Die Kartenlokalisierung und/oder -wahrnehmung kann verwendet werden, um verschiedene Informationen im Zusammenhang mit dem Vorfahrtszenario zu bestimmen. Beispielsweise kann ein erster Weg für das autonome Fahrzeug und ein zweiter Weg für einen Konkurrenten (z.B. ein anderes Fahrzeug oder ein anderes Objekt) durch das Vorfahrtszenario bestimmt werden. Zwischen den Wegen kann mindestens ein Konkurrenzpunkt bestehen, der anzeigen kann, dass eine Kollision möglich ist, wenn die Wege durchfahren werden. Um einen Konkurrenzzustand (der definiert, wie sich das Fahrzeug verhalten soll) des mindestens einen Konkurrenzpunkts zu bestimmen, kann das System eine oder mehrere der Verkehrsregeln ermitteln, die für das Vorfahrtszenario gelten. Die Warteelement-Datenstruktur (auch als Warteelement bezeichnet) kann dann Informationen codieren, die vom Fahrzeug zum Navigieren im Vorfahrtszenario verwendet werden, wie z. B. die Geometrie der Wege, den Konkurrenzzustand und andere Informationen. Das Warteelement kann beispielsweise für einen Steueragenten des Fahrzeugs bereitgestellt werden. Der Steueragent kann in die Lage versetzt werden, das Warteelement zu verwenden, um ein Vorfahrtverhalten für das erste Fahrzeug zu bestimmen.In at least one embodiment, a give-way scenario (e.g., an intersection or T-junction give-way scenario) may be identified based at least on analysis of sensor data generated by at least one sensor of an autonomous vehicle. Map localization and/or perception may be used to determine various information related to the right-of-way scenario. For example, a first path for the autonomous vehicle and a second path for a competitor (eg, another vehicle or object) may be determined by the right-of-way scenario. At least one contention point may exist between the routes, which may indicate that a collision is possible when the routes are traversed. To determine a contention state (which defines how the vehicle should behave) of the at least one contention point, the system may determine one or more of the traffic rules that apply to the right-of-way scenario. The wait element data structure (also referred to as the wait element) can then encode information used by the vehicle to navigate the right-of-way scenario, such as: B. the geometry of the paths, the state of contention and other information. The waiting element can be provided for example for a control agent of the vehicle. The control agent may be enabled to use the wait element to to determine right-of-way behavior for the first vehicle.

Figurenlistecharacter list

Die vorliegenden Systeme und Verfahren zum Codieren von Vorfahrtsszenarien für autonome Systeme werden im Folgenden unter Bezugnahme auf die beigefügten Zeichnungsfiguren detailliert beschrieben, wobei:

  • 1 ist ein Beispiel für ein Vorfahrtsszenario gemäß einigen Ausführungsformen der vorliegenden Offenbarung, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
  • 2 zeigt ein nicht einschränkendes Beispiel einer Datenstruktur eines Warteelements und ein nicht einschränkendes Beispiel einer Datenstruktur eines Konkurrenzzustands gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
  • 3 zeigt ein nicht einschränkendes Beispiel einer Warteelement-Engine gemäß verschiedenen Ausführungsformen, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
  • 4 ist ein Flussdiagramm, das ein Verfahren zum Codieren von Vorfahrtsszenarien für autonome Fahrzeuge (z.B. ein Ego-Fahrzeug) gemäß einigen Ausführungsformen der vorliegenden Offenbarung zeigt;
  • 5 ist ein Flussdiagramm, das ein Verfahren zum Codieren von Vorfahrtsszenarien für autonome Fahrzeuge (z.B. ein Ego-Fahrzeug) gemäß einigen Ausführungsformen der vorliegenden Offenbarung zeigt;
  • 6 ist ein Flussdiagramm, das ein Verfahren 600 zum Auflösen eines Konkurrenzzustandes zwischen Wegen für Fahrzeuge zeigt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
  • 7A ist eine Darstellung eines beispielhaften autonomen Fahrzeugs gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
  • 7B ist ein Beispiel für Kamerapositionen und Sichtfelder für das autonome Fahrzeug der 7A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
  • 7C ist ein Blockdiagramm einer beispielhaften Systemarchitektur für das beispielhafte autonome Fahrzeug der 7A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
  • 7D ist ein Systemdiagramm für die Kommunikation zwischen Cloud-basierten Servern und dem beispielhaften autonomen Fahrzeug der 7A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung;
  • 8 ist ein Blockdiagramm einer beispielhaften Rechenvorrichtung, die zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist; und
  • 9 ist ein Blockdiagramm eines beispielhaften Datenzentrums, das zur Verwendung beim Implementieren einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist.
The present systems and methods for coding give-way scenarios for autonomous systems are described in detail below with reference to the attached drawing figures, wherein:
  • 1 FIG. 14 is an example of a give-way scenario, in accordance with some embodiments of the present disclosure, in accordance with some embodiments of the present disclosure;
  • 2 Figure 12 shows a non-limiting example of a wait item data structure and a non-limiting example of a contention state data structure, in accordance with some embodiments of the present disclosure;
  • 3 12 shows a non-limiting example of a wait item engine according to various embodiments, in accordance with some embodiments of the present disclosure;
  • 4 12 is a flow chart depicting a method for encoding give-way scenarios for autonomous vehicles (eg, a ego vehicle) according to some embodiments of the present disclosure;
  • 5 12 is a flow chart depicting a method for encoding give-way scenarios for autonomous vehicles (eg, a ego vehicle) according to some embodiments of the present disclosure;
  • 6 6 is a flow diagram depicting a method 600 for resolving a lane contention for vehicles, according to some embodiments of the present disclosure;
  • 7A 1 is an illustration of an exemplary autonomous vehicle, in accordance with some embodiments of the present disclosure;
  • 7B is an example of camera positions and fields of view for the autonomous vehicle 7A , according to some embodiments of the present disclosure;
  • 7C 12 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;
  • 7D 12 is a system diagram for communication between cloud-based servers and the example autonomous vehicle of FIG 7A , according to some embodiments of the present disclosure;
  • 8th Figure 12 is a block diagram of an example computing device suitable for use in implementing some embodiments of the present disclosure; and
  • 9 1 is a block diagram of an exemplary data center suitable for use in implementing some embodiments of the present disclosure.

Ausführliche BeschreibungDetailed description

Es werden Systeme und Verfahren zum Codieren von Vorfahrtsszenarien für autonome Fahrzeuge offenbart. Obwohl die vorliegende Offenbarung in Bezug auf ein beispielhaftes autonomes Fahrzeug 700 (hier alternativ als „Fahrzeug 700“ oder „Ego-Fahrzeug 700“ bezeichnet, von dem ein Beispiel in Bezug auf die 7A-7D beschrieben wird), ist dies nicht als Einschränkung zu verstehen. Beispielsweise können die hier beschriebenen Systeme und Verfahren ohne Einschränkung von nicht-autonomen Fahrzeugen, halbautonomen Fahrzeugen (z. B. in einem oder mehreren adaptiven Fahrerassistenzsystemen (ADAS)), gelenkten und ungelenkten Robotern oder Roboterplattformen, Lagerfahrzeugen, Geländefahrzeugen, Fahrzeugen, die mit einem oder mehreren Anhängern gekoppelt sind, Luftschiffen, Booten, Shuttles, Notarzteinsatzfahrzeugen, Motorrädern, elektrischen oder motorisierten Fahrrädern, Flugzeugen, Baufahrzeugen, Unterwasserfahrzeugen, Drohnen und/oder anderen Fahrzeugtypen verwendet werden. Obwohl die vorliegende Offenbarung in Bezug auf die Steuerung eines autonomen Fahrzeugs zum Durchfahren eines Vorfahrtszenarios beschrieben wird, ist dies nicht als Einschränkung zu verstehen, und die hier beschriebenen Systeme und Verfahren können in den Bereichen erweiterter Realität, virtueller Realität, gemischter Realität, Robotik, Sicherheit und Überwachung, autonome oder halbautonome Maschinenanwendungen und/oder in jedem anderen Technologiebereich eingesetzt werden, in dem autonome Steuerungssysteme verwendet werden können.Systems and methods for encoding give-way scenarios for autonomous vehicles are disclosed. Although the present disclosure relates to an exemplary autonomous vehicle 700 (alternatively referred to herein as “vehicle 700” or “ego vehicle 700”, an example of which relates to the 7A-7D described), this should not be construed as a limitation. For example, the systems and methods described herein can be used without limitation by non-autonomous vehicles, semi-autonomous vehicles (e.g., in one or more adaptive driver assistance systems (ADAS)), steered and unguided robots or robotic platforms, warehouse vehicles, off-road vehicles, vehicles with a or multiple trailers, airships, boats, shuttles, ambulances, motorcycles, electric or motorized bicycles, airplanes, construction vehicles, underwater vehicles, drones and/or other types of vehicles. Although the present disclosure is described with respect to controlling an autonomous vehicle to negotiate a give-way scenario, this is not intended to be limiting and the systems and methods described herein may be used in the fields of augmented reality, virtual reality, mixed reality, robotics, security and monitoring, autonomous or semi-autonomous machine applications and/or in any other area of technology where autonomous control systems can be used.

Beim normalen Betrieb eines autonomen Fahrzeugs muss ein Steueragent sowohl fahrenden als auch nicht fahrenden Hindernissen ausweichen (z. B. anderen Fahrzeugen, Fußgängern, Radfahrern, Fahrbahnbarrieren und dergleichen). Neben der Vermeidung hat ein Agent grundsätzlich die Verantwortung, anderen Verkehrsteilnehmern in bestimmten Szenarien Vorfahrt zu gewähren (z. B. „Vorfahrtbedingungen“). Solche Vorfahrtsbedingungen können an (kontrollierten und nicht kontrollierten) Kreuzungen, Fußgängerüberwegen, Einmündungen, Auf-/Abfahrten auf Autobahnen, Kreisverkehren und ähnlichem bestehen, z. B. bei der Durchfahrt von Parkhäusern und/oder Parkplätzen. Um einem anderen Verkehrsteilnehmer die Möglichkeit zu geben, die Vorfahrtsituation sicher, souverän und effizient zu überwinden, kann das Vorfahrtverhalten ein Abbremsen oder sogar ein vollständiges Anhalten des Fahrzeugs beinhalten. An einer nicht markierten Kreuzung, an der bereits ein anderes Fahrzeug angekommen ist, kann ein nachfolgendes Fahrzeug ein angemessenes Vorfahrtverhalten an den Tag legen, indem es abbremst, damit das erste Fahrzeug die Kreuzung sicher passieren kann. Ein solches Vorfahrtverhalten stellt sicher, dass das nachfolgende Fahrzeug erst in die Kreuzung einfährt, wenn das erste Fahrzeug die Kreuzung sicher verlassen hat. Unter solchen Vorfahrtsbedingungen können ein oder mehrere Verkehrsteilnehmer eine klar definierte Verpflichtung (oder Verantwortung) haben, anderen Verkehrsteilnehmern Vorfahrt zu gewähren.During normal operation of an autonomous vehicle, a control agent must avoid both moving and non-moving obstacles (e.g., other vehicles, pedestrians, cyclists, lane barriers, and the like). In addition to avoidance, an agent generally has the responsibility to give way to other road users in certain scenarios (e.g. "right of way conditions"). Such right-of-way conditions may be at (controlled and uncontrolled) intersections, pedestrian crossings, T-junctions, on/off ramps on motorways, roundabouts and the like, e.g. B. when driving through multi-storey car parks and/or parking lots. In order to give another road user the opportunity to overcome the priority situation safely, confidently and efficiently, the priority behavior can include braking or even stopping the vehicle completely. At an unmarked intersection where another vehicle has already arrived, a following vehicle may give way by decelerating to allow the first vehicle to safely pass through the intersection. Such a right-of-way behavior ensures that the following vehicle only enters the intersection when the first vehicle has safely left the intersection. Under such give-way conditions, one or more road users may have a clearly defined obligation (or responsibility) to give way to other road users.

Vorfahrtsverhalten stellt einen Nutzen über die reine Vermeidung von Kollisionen bereit. Richtiges Vorfahrtsverhalten kann eine „höfliche und erwartete“ Fahrdynamik gewährleisten, die für einen sicheren und effizienten Verkehr erforderlich ist. Selbst wenn beispielsweise ein Agent bei Vorfahrt eine mögliche Kollision vermeidet (z. B. indem er an einer Kreuzung beschleunigt), führt das Nichtvorhandensein einer Vorfahrt zu angespannten und unruhigen Fahrbedingungen für alle Verkehrsteilnehmer in diesem Bereich. Selbst wenn man beschleunigt, um einen Zusammenstoß zu vermeiden, kann ein nicht vorfahrtsberechtigtes Fahrzeug bei anderen Fahrern, Radfahrern und Fußgängern Angst, ein Gefühl der Gefahr und Wut (z. B. Wut auf die Straße) hervorrufen. Das heißt, selbst wenn eine Kollision durch aggressives Verhalten vermieden wird, wurde die Kollision nicht auf „sichere und höfliche Weise“ vermieden, wie es von anderen Verkehrsteilnehmern erwartet wird. Dementsprechend kann beim Betrieb eines autonomen Fahrzeugs ein Agent für das autonome Fahrzeug verpflichtet sein (z. B. entweder rechtlich oder normativ), eine oder mehrere verhaltensbezogene Vorfahrtstrategien anzuwenden, wenn er sich einem Vorfahrtszenario nähert.Right-of-way behavior provides a benefit beyond mere collision avoidance. Right-of-way behavior can ensure “polite and expected” driving dynamics, which are necessary for safe and efficient traffic. For example, even if a right-of-way agent avoids a potential collision (e.g., by accelerating at an intersection), the lack of right-of-way creates tense and uneasy driving conditions for all road users in the area. Even when accelerating to avoid a collision, a vehicle that does not have the right of way can create fear, a sense of danger, and anger (e.g., road rage) in other drivers, cyclists, and pedestrians. That is, even if a collision is avoided through aggressive behavior, the collision was not avoided in a "safe and courteous manner" as expected by other road users. Accordingly, in the operation of an autonomous vehicle, an agent for the autonomous vehicle may be required (e.g., either legally or normatively) to employ one or more behavioral right-of-way strategies when approaching a right-of-way scenario.

Die Offenbarung sieht teilweise eine „Warteelement-Engine“ eines autonomen Fahrzeugs („Ego-Fahrzeug“) vor, die aktiv das Eintreffen eines oder mehrerer Vorfahrtszenarien überwachen kann (z. B. wenn das Fahrzeug an einer Kreuzung ankommt, wenn das Fahrzeug eine Auf-/Abfahrt bewältigt oder wenn das Fahrzeug sich auf einen Spurwechsel vorbereitet). Die Warteelement-Engine kann eine oder mehrere „Warteelement“-Datenstrukturen erzeugen, die eine Darstellung des Vorfahrtszenarios codieren. Die Warteelemente können als Eingabe für einen „Vorfahrtsplaner“ für das Ego-Fahrzeug bereitgestellt werden. Beispiele für Vorfahrtszenarien sind Kreuzungen (z. B. Einmündungen) und Einmündungen (z. B. Einmündungen von Fahrspuren an Auf- und Abfahrten). Jedes Vorfahrtszenario kann mit mindestens zwei Akteuren verbunden sein: dem Ego-Fahrzeug und mindestens einem Konkurrenten (z. B. einem anderen Fahrzeug, Fußgänger, Radfahrer usw.). Ein Konkurrent kann ein anderes Fahrzeug (z. B. ein autonomes, halbautonomes und/oder ein konventionelles, manuell betriebenes Fahrzeug) sowie Personen (Fußgänger und Radfahrer) sein.The disclosure provides in part for an autonomous vehicle (“ego vehicle”) “waiting element engine” that can actively monitor the arrival of one or more right-of-way scenarios (e.g., when the vehicle arrives at an intersection, when the vehicle has an on -/downhill or when the vehicle is preparing to change lanes). The wait element engine may generate one or more "wait element" data structures that encode a representation of the right-of-way scenario. The waiting elements can be provided as input to a "priority planner" for the ego vehicle. Examples of priority scenarios are intersections (e.g. junctions) and junctions (e.g. junctions of lanes at on- and off-ramps). Each right-of-way scenario can involve at least two actors: the ego vehicle and at least one competitor (eg, another vehicle, pedestrian, cyclist, etc.). A competitor can be another vehicle (e.g., an autonomous, semi-autonomous, and/or a conventional manually operated vehicle) and people (pedestrians and cyclists).

In verschiedenen Ausführungsformen kann ein Vorfahrtszenario mit mehr als einem Konkurrenten verbunden sein (z. B. das Ego-Fahrzeug, das sich einer Kreuzung mit mehreren anderen Fahrzeugen nähert, Fußgänger und/oder Radfahrer an einer Kreuzung, das Ego-Fahrzeug, das in eine Fahrspur mit mehreren anderen Fahrzeugen einfährt, usw.). Jeder Akteur, der mit einem Vorfahrtszenario verbunden ist, kann mit einem oder mehreren „potentiellen Wegen“ oder Fahrspuren verbunden sein. Für einen Akteur eines Vorfahrtszenarios können die potentiellen Wege oder Fahrspuren den Satz aktueller oder möglicher räumlicher Wege umfassen, die z. B. durch die aktuellen Koordinaten des Akteurs in einem Raum-Geschwindigkeits-Phasenraum gegeben sind. So kann der potentielle Weg eines Akteurs nicht nur von seinen aktuellen Raum- und Geschwindigkeitskoordinaten abhängen, sondern auch von den Beschränkungen des Fahrzeugs (oder der Person oder des Unternehmens) in Bezug auf Beschleunigung, Verzögerung (z. B. Bremsleistung) und Manövrierfähigkeit (z. B. Kurvenradius, Traktionskontrolle usw.).In various embodiments, a give-way scenario may involve more than one competitor (e.g., the ego vehicle approaching an intersection with multiple other vehicles, pedestrians and/or cyclists at an intersection, the ego vehicle entering a lane with several other vehicles, etc.). Each actor associated with a right-of-way scenario can be associated with one or more “potential paths” or lanes. For an actor of a right-of-way scenario, the potential paths or lanes may include the set of current or possible spatial paths e.g. B. are given by the current coordinates of the actor in a space-velocity-phase space. Thus, an actor's potential path may depend not only on its current space and velocity coordinates, but also on the vehicle's (or person's or entity's) limitations in terms of acceleration, deceleration (e.g. braking power) and maneuverability (e.g e.g. curve radius, traction control, etc.).

Wenn eine Vorfahrtsbedingung erkannt wird, kann die Warteelement-Engine Umgebungsdaten empfangen und/oder erzeugen, die aus verschiedenen Quellen stammen (z. B. On bordeigene und/oder bordexterne Sensoren und/oder Detektoren, wahrnehmungsbasierte Daten, kartenbasierte Daten, Geolokalisierungsdaten usw.) und sich auf das Vorfahrtszenario beziehen. Die Warteelement-Engine kann die verschiedenen Daten analysieren und verschmelzen sowie die Daten prüfen, analysieren und mit verschiedenen Verkehrsregeln in Bezug auf die Vorfahrt im Hinblick auf die verschmolzenen und analysierten Daten abgleichen, um verschiedene „Wartegeometrien“ und „Konkurrenzzustände“ zu erzeugen, die das Vorfahrtszenario für das Ego-Fahrzeug charakterisieren können. Beispielsweise können Daten, die die potentiellen Wege der Fahrzeuge und verschiedene Aspekte der Geometrie des Szenarios codieren, analysiert und mit einer oder mehreren Vorfahrts- oder Verkehrsregeln abgeglichen werden, um einen Konkurrenzzustand des Vorfahrtszenarios zu bestimmen (z. B. vorfahrtsberechtigt, an der Einfahrt anhalten, an der Einfahrt Vorfahrt gewähren und dergleichen). Die Wartegeometrien können in eine oder mehrere „Wartegruppen“ gruppiert werden, wobei sich eine Wartegruppe auf alle Warteelemente für ein Vorfahrtszenario beziehen kann. Die Wartegeometrien und die Konkurrenzzustände können in einer „Warteelement“-Datenstruktur codiert werden. Die Warteelement-Datenstruktur(en) kann/können einem „Vorfahrtsplaner“ des autonomen Fahrzeugs zur Verwendung bei der Steuerung des Fahrzeugs bereitgestellt werden.When a give way condition is detected, the wait element engine may receive and/or generate environmental data derived from various sources (e.g., onboard and/or offboard sensors and/or detectors, perception-based data, map-based data, geolocation data, etc.) and refer to the right-of-way scenario. The waiting element engine can parse and merge the various data, as well as inspect, analyze and match the data to various traffic rules related to right-of-way with respect to the merged and analyzed data to generate various "waiting geometries" and "states of contention" that the Can characterize priority scenario for the ego vehicle. For example, data encoding the vehicles' potential paths and various aspects of the geometry of the scenario can be analyzed and matched against one or more right-of-way or traffic rules to determine a state of contention of the right-of-way scenario (e.g., right-of-way, stop at the entrance , give way at the entrance and the like). The waiting geometries can be divided into one or more "Waiting groups pen", whereby a waiting group can refer to all waiting elements for a right-of-way scenario. The wait geometries and the contention states can be encoded in a "wait element" data structure. The queuing element data structure(s) may be provided to an autonomous vehicle "priority planner" for use in controlling the vehicle.

Der Vorfahrtsplaner kann die Datenstrukturen der Warteelemente empfangen und ein geeignetes Vorfahrtsverhalten festlegen. Wenn ein Steueragent für das Ego-Fahrzeug das festgelegte Vorfahrtsverhalten (z. B. definiert durch einen Konkurrenzzustand) annimmt, kann das Ego-Fahrzeug seine erforderlichen und erwarteten Vorfahrtsverpflichtungen sicher erfüllen und gleichzeitig Kollisionen vermeiden.The priority planner can receive the data structures of the waiting elements and determine a suitable priority behavior. When a control agent for the ego vehicle adopts the specified right-of-way behavior (e.g., defined by a contention state), the ego vehicle can safely fulfill its required and expected right-of-way obligations while avoiding collisions.

In mindestens einer Ausführungsform kann eine Warteelement-Engine verschiedene Eingabedaten empfangen und/oder erfassen, die geometriebezogene Daten, signalbezogene Daten und kartenbezogene Daten umfassen können. Das Erfassen (oder Empfangen) von Daten kann unter Verwendung von Erfassungs-, Wahrnehmungs- und/oder Erkennungstechniken erfolgen, die Geometrie oder visuelle Wahrnehmung, Kartenwahrnehmung (die Lokalisierung einschließen kann) und Signalwahrnehmung nutzen können. In mindestens einer Ausführungsform können die Wahrnehmungsdaten Fahrspurgraphen-Daten umfassen. Fahrspurgraphen-Daten können einen oder mehrere Wege enthalten, die als potentielle Wege des Ego-Fahrzeugs (z. B. Ego-Wege) und einen oder mehrere Wege, die als potentielle Wege eines oder mehrerer Konkurrenten (z. B. Konkurrenten-Wege) zugewiesen werden können. Andere Eingabedaten können verschiedene Sensor-Rohdaten des Ego-Fahrzeugs oder der Konkurrenten umfassen. Geometrie-Eingabedaten können verschiedene Informationen über die Geometrie der Umgebung enthalten, die auf die potentiellen Wege im Zusammenhang mit dem Vorfahrtsszenario und/oder dem Hintergrundkontext angewendet werden. Signaleingabedaten können Verkehrssignale wie Ampeln, Verkehrsschilder, Stoppschilder, Vorfahrtsschilder, Vorfahrtsschilder wie Hauptstraßenschilder, Geschwindigkeitsschilder sowie Handzeichen oder andere Körperhaltungen, die zur Signalisierung des Verkehrs verwendet werden, enthalten und/oder codieren.In at least one embodiment, a queuing element engine may receive and/or collect various input data, which may include geometry-related data, signal-related data, and map-related data. Capturing (or receiving) data may be done using detection, perception, and/or recognition techniques, which may utilize geometry or visual perception, map perception (which may include localization), and signal perception. In at least one embodiment, the perception data may include lane graph data. Lane graph data may include one or more paths designated as potential paths of the ego vehicle (e.g., ego paths) and one or more paths designated as potential paths of one or more competitors (e.g., competitor paths). can be assigned. Other input data may include various raw sensor data from the ego vehicle or the competitors. Geometry input data may include various information about the geometry of the environment that is applied to the potential paths associated with the right-of-way scenario and/or the background context. Signal input data may include and/or encode traffic signals such as traffic lights, traffic signs, stop signs, give way signs, give way signs such as main road signs, speed signs, and hand signals or other postures used to signal traffic.

In verschiedenen Ausführungsformen kann für jede mögliche Paarung eines potentiellen Wegs eines Ego-Fahrzeugs und eines potentiellen Wegs eines Konkurrenten eine Warteelement-Datenstruktur erzeugt werden. In nicht einschränkenden Beispielen von Vorfahrtsszenarien ist ein Vorfahrtsszenario mit einem Ego-Fahrzeug und j Konkurrenten verbunden, wobei j eine positive ganze Zahl ist. Das Ego-Fahrzeug kann mit i potentiellen Wegen und jeder der j Konkurrenten mit k potentiellen Wegen assoziiert sein, wobei i und k ebenfalls positive ganze Zahlen sind. In einem solchen Beispiel kann die Warteelement-Engine i × j × k separate Warteelemente erzeugen. Daher kann jedes Warteelement mit einem potentiellen Weg für das Ego-Fahrzeug und einem potentiellen Weg für den Konkurrenten verknüpft sein. Das Warteelement kann eine „Wartegeometrie“ für den Ego-Weg, eine Wartegeometrie für den Konkurrenten-Weg und eine Wartegeometrie für einen Kontext der beiden Wege codieren. Ein Warteelement kann ferner einen „Konkurrenzzustand“ zwischen den beiden Wegen codieren.In various embodiments, a queue element data structure may be created for each possible pairing of a potential path of a host vehicle and a potential path of a competitor. In non-limiting examples of right-of-way scenarios, a right-of-way scenario is associated with a ego vehicle and j competitors, where j is a positive integer. The ego vehicle may be associated with i potential paths and each of the j competitors with k potential paths, where i and k are also positive integers. In such an example, the wait element engine may generate i×j×k separate wait elements. Therefore, each waiting item can be associated with a potential path for the ego vehicle and a potential path for the competitor. The wait element may encode a "wait geometry" for the ego path, a wait geometry for the competitor path, and a wait geometry for a context of the two paths. A wait element can also encode a "contention state" between the two paths.

Kurz gesagt kann eine Wartegeometrie für einen beanspruchten Weg (z. B. einen Ego-Weg oder einen Konkurrenten-Weg) einen Satz von Feld-Wert-Paaren oder andere Datentypen oder Elemente für den Weg enthalten, die verschiedene Aspekte des beanspruchten Weges codieren. Solche Felder für die Wartegeometrie eines Weges können unter anderem Einfahrtslinien, Ausfahrtslinien, Einfahrts- und Ausfahrtsbereiche von Konkurrenten, Einfahrtslinie und Innenfläche einer Kreuzung, Konkurrenzpunkte zwischen einem Ego-Weg und einem Konkurrenten-Weg (optionale explizite Codierung eines der Kreuzungs- oder Einmündungspunkte zwischen Wegen) und Ähnliches umfassen. Der Konkurrenzzustand (z. B. der Konkurrenzzustand) eines Warteelements kann eine Anweisung an den Vorfahrtsplaner sein oder definieren, auf welche Weise das Ego-Fahrzeug in Bezug auf dieses Warteelement Vorfahrt gewähren oder die Vorfahrt wahrnehmen sollte. Zu solchen Zuständen gehören unter anderem: vorfahrtsberechtigt, an der Einfahrt anhalten, an der Einfahrt Vorfahrt gewähren und dergleichen.Briefly, a queuing geometry for a claimed path (e.g., an ego path or a competitor path) may contain a set of field-value pairs or other data types or elements for the path that encode various aspects of the claimed path. Such fields for the waiting geometry of a way can include entry lines, exit lines, entry and exit areas of competitors, entry line and interior surface of an intersection, points of contention between an ego way and a competitor way (optional explicit encoding of one of the crossing or junction points between ways ) and the like. The contention state (e.g., contention state) of a wait item may be an instruction to the priority planner or define how the ego vehicle should yield or yield the right-of-way with respect to that wait item. Such states include, but are not limited to: right of way, stop at the entrance, give way at the entrance, and the like.

In mindestens einer Ausführungsform können zur Erzeugung eines Warteelements Geometrie-Eingabedaten, die als Wartegeometriedaten bezeichnet werden können, mit den Fahrspurgraphen-Daten und den Kartendaten „verschmolzen“ werden. Die „verschmolzenen Geometriedaten“ können dann klassifiziert werden (z. B. als Linksabbiegen, Rechtsabbiegen, Wenden usw.) und mit einem oder mehreren Wegen verknüpft werden. Die Signaldaten können mit den Kartendaten verschmolzen werden. Aus den verschmolzenen Signaldaten kann ein Signalzustand (z. B. grünes Licht, rote Linie, inaktiv usw.) bestimmt werden. Die verschmolzenen, klassifizierten und zugehörigen Geometriedaten können zusammen mit den Kartendaten, dem Signalzustand und den anderen Daten als Eingabe in einen „Konkurrenzzustandslöser“ der Warteelement-Engine eingespeist werden. Der Konkurrenzzustandslöser kann die Geometrie-, Signal-, Karten- und anderen Sensordaten zusammen mit Verkehrsregeln verwenden, um einen Konkurrenzzustand zu bestimmen und die Daten in ein Warteelement aufzulösen.In at least one embodiment, input geometry data, which may be referred to as wait geometry data, may be “merged” with the lane graph data and the map data to create a wait element. The "fused geometry data" can then be classified (e.g. as left turns, right turns, U-turns, etc.) and associated with one or more paths. The signal data can be merged with the map data. A signal state (e.g. green light, red line, inactive, etc.) can be determined from the merged signal data. The merged, classified, and associated geometry data, along with the map data, signal state, and other data can be fed as input to a "state contention solver" of the waiting element engine. The contention state solver can use the geometry, signal, map, and other sensor data along with traffic rules to determine a contention state determine and resolve the data into a wait element.

Unter Bezugnahme auf 1 zeigt 1 ein Beispiel für ein Vorfahrtszenario 100 gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das nicht-einschränkende Vorfahrtszenario 100 der 1 ist ein Beispiel für ein Vorfahrtszenario an einer Kreuzung (oder Einmündung). Andere Arten von Vorfahrtszenarien umfassen mindestens Vorfahrtszenarien bei der Einmündung (z. B. an einer Autobahnauffahrt). In diesem nicht-einschränkenden Beispiel eines Kreuzungs-Vorfahrtszenarios 100 nähern sich drei Fahrzeuge einer 4-Wege-Kreuzung. Bei den drei Fahrzeugen handelt es sich um ein erstes Fahrzeug 102 (z. B. ein Ego-Fahrzeug), ein zweites Fahrzeug 104 (z. B. ein erster Konkurrent) und ein drittes Fahrzeug 106 (z. B. ein zweiter Konkurrent). Eine Warteelement-Engine 130 wird eingesetzt, um eine oder mehrere Warteelement-Datenstrukturen (z. B. ein Warteelement_1 110 und ein Warteelement_2 120) für das Vorfahrtsszenario 100 zu erzeugen. In einigen Ausführungsformen kann sich die Warteelement-Engine 130 an Bord des Ego-Fahrzeugs 102 befinden. In anderen Ausführungsformen kann die Warteelement-Engine 130 mindestens teilweise vom Ego-Fahrzeug 102 entfernt sein. In solchen Ausführungsformen kann das Ego-Fahrzeug 102 über ein oder mehrere Kommunikationsnetze auf die Warteelement-Engine 130 zugreifen.With reference to 1 shows 1 an example of a right-of-way scenario 100 according to some embodiments of the present disclosure. The non-restrictive right-of-way scenario 100 der 1 is an example of a right-of-way scenario at an intersection (or junction). Other types of give-way scenarios include, at a minimum, give-way scenarios at an intersection (e.g., at a freeway slip road). In this non-limiting example of an intersection priority scenario 100, three vehicles are approaching a 4-way intersection. The three vehicles are a first vehicle 102 (e.g., an ego vehicle), a second vehicle 104 (e.g., a first competitor), and a third vehicle 106 (e.g., a second competitor). . A queuing element engine 130 is employed to generate one or more queuing element data structures (e.g., a queuing element_1 110 and a queuing element_2 120) for the right-of-way scenario 100 . In some embodiments, the queuing element engine 130 may be onboard the ego vehicle 102 . In other embodiments, the queuing element engine 130 may be at least partially remote from the ego vehicle 102 . In such embodiments, the ego vehicle 102 may access the queuing element engine 130 via one or more communication networks.

Verschiedene Ausführungsformen von Warteelement-Engines werden mindestens in Verbindung mit der Warteelement-Engine 300 der 3 erörtert. Es versteht sich, dass diese und andere hier beschriebene Anordnungen nur als Beispiele zu verstehen sind. Andere Anordnungen und Elemente (z. B. Maschinen, Schnittstellen, Funktionen, Reihenfolgen, Gruppierungen von Funktionen usw.) können zusätzlich zu den gezeigten oder anstelle von ihnen verwendet werden, und einige Elemente können ganz weggelassen werden. Außerdem sind viele der hier beschriebenen Elemente funktionale Einheiten, die als einzelne oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und an jedem geeigneten Ort implementiert werden können. Verschiedene hier beschriebene Funktionen, die von Einheiten ausgeführt werden, können von Hardware, Firmware und/oder Software ausgeführt werden. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt.Various embodiments of wait item engines are described at least in connection with wait item engine 300 of FIG 3 discussed. It is understood that these and other arrangements described herein are to be understood as examples only. Other arrangements and elements (e.g., engines, interfaces, functions, orders, groupings of functions, etc.) may be used in addition to or in place of those shown, and some elements may be omitted altogether. In addition, many of the elements described herein are functional units that can be implemented as single or distributed components, or in conjunction with other components, and in any suitable combination and location. Various functions described herein performed by devices may be performed by hardware, firmware, and/or software. For example, various functions may be performed by a processor executing instructions stored in memory.

Warteelement-Datenstrukturen, wie z. B. das Warteelement_1 110 und das Warteelement_2 120, können mit einem Paar beanspruchter Wege verknüpft sein, wobei einer der beanspruchten Wege ein beanspruchter Weg des Ego-Fahrzeugs 102 und ein anderer der gepaarten beanspruchten Wege ein beanspruchter Weg für einen Konkurrenten (z. B. einen ersten Konkurrenten 104 oder einen zweiten Konkurrenten 106) ist. Jedes Warteelement kann eine Wartegeometrie für den beanspruchten Weg des Ego-Fahrzeugs 102 (z. B. eine Ego-Wartegeometrie 112 des Warteelements_1 110 oder eine Ego-Wartegeometrie 122 des Warteelements_2 120) und eine Wartegeometrie für den beanspruchten Weg des Konkurrenten (z. B. eine Konkurrenten_1-Wartegeometrie 114 des Warteelements_1 110 oder eine Konkurrenten_1-Wartegeometrie 124 des Warteelements_120) codieren. Dementsprechend kann eine Wartegeometrie_1 110 mit einem einzigen beanspruchten Weg des Ego-Fahrzeugs 102 und einem einzigen beanspruchten Weg für den ersten Konkurrenten 104 verbunden sein (in anderen Beispielen können mehrere Wege mit einem Warteelement verbunden sein). Ebenso ist eine Wartegeometrie_2 120 mit einem einzigen beanspruchten Weg des Ego-Fahrzeugs 102 und einem einzigen beanspruchten Weg für den zweiten Konkurrenten 106 verknüpft. Es ist zu beachten, dass der beanspruchte Weg des Ego-Fahrzeugs 102, der dem Warteelement_1 110 zugeordnet ist, derselbe beanspruchte Weg des Ego-Fahrzeugs 102 sein kann (aber nicht sein muss), der dem Warteelement_2 120 zugeordnet ist. Verschiedene Ausführungsformen von Warteelementgeometrien werden in Verbindung mit mindestens 2 erörtert.Wait element data structures such as e.g., wait_item_1 110 and wait_item_2 120, may be associated with a pair of claimed paths, one of the claimed paths being a claimed path of the ego vehicle 102 and another of the paired claimed paths being a claimed path for a competitor (e.g. a first competitor 104 or a second competitor 106). Each waiting element may have a waiting geometry for the ego vehicle's 102 claimed path (e.g., an ego waiting geometry 112 of waiting element_1 110 or an ego waiting geometry 122 of waiting element_2 120) and a waiting geometry for the competitor's claimed path (e.g., encode a competitor_1 queuing geometry 114 of queuing element_1 110 or a competitor_1 queuing geometry 124 of queuing element_120). Accordingly, a Waiting Geometry_1 110 may be associated with a single claimed path of the ego vehicle 102 and a single claimed path for the first competitor 104 (in other examples, multiple paths may be associated with a waiting element). Likewise, a Waiting Geometry_2 120 is associated with a single claimed path of the ego vehicle 102 and a single claimed path for the second competitor 106 . Note that the claimed path of ego vehicle 102 associated with wait item_1 110 may (but need not be) the same claimed path of ego vehicle 102 associated with wait item_2 120 . Various embodiments of waiting element geometries are discussed in connection with at least 2 discussed.

Zusätzlich zu den Wartegeometrien für ein Paar beanspruchter Wege kann jedes Warteelement eine Wartegeometrie für einen Kontext codieren (z. B. einen Wartegeometriekontext 116 des Warteelements_1 110 und einen Wartegeometriekontext 126 des Warteelements _2 120). Darüber hinaus kann jedes Warteelement einen Konkurrenzzustand für die gepaarten beanspruchten Wege codieren (z. B. den Konkurrenzzustand_1 118 des Warteelements_1 110 und einen Konkurrenzzustand_2 des Warteelements_2 120). Verschiedene Ausführungsformen von Wartegeometriekontexten und Konkurrenzzuständen werden mindestens in Verbindung mit 2 erörtert.In addition to the wait geometries for a pair of claimed paths, each wait element may encode a wait geometry for a context (eg, wait geometry context 116 of wait element_1 110 and wait geometry context 126 of wait element_2 120). In addition, each wait element may encode a contention state for the paired claimed paths (e.g., contention state_1 118 of wait element_1 110 and contention state_2 of wait element_2 120). Various embodiments of wait geometry contexts and contention states are described at least in connection with 2 discussed.

Allgemeiner ausgedrückt, kann ein Warteelement eine Teilmenge der Wartegeometrie eines Ego-Weges (z. B. eines beanspruchten Weges des Ego-Fahrzeugs) und der Wartegeometrie eines Konkurrenten-Weges (z. B. eines beanspruchten Weges für einen Konkurrenten des Vorfahrtsszenarios 100), einen Wartegeometriekontext und einen Konkurrenzzustand enthalten (oder codieren). Eine Ego-Wartegeometrie 112, die Konkurrenten_1-Wartegeometrie 114, der Wartegeometriekontext 116 und ein Konkurrenzzustand_1 118 (des Warteelements_1 110) können Datenobjekte und/oder Datenstrukturen sein. Ebenso können die Ego-Wartegeometrie 122, eine Konkurrenten_2-Wartegeometrie 124, ein Wartegeometriekontext 126 und ein Konkurrenzzustand_2 128 (des Warteelements_2 120) Datenobjekte und/oder Datenstrukturen sein. In verschiedenen Ausführungsformen können die Datencodierungen für diese fehlenden Elemente auf „ungültig“ und/oder „nicht anwendbar“ gesetzt werden, wenn Datenwerte (oder Elemente) eines oder mehrerer dieser Datenobjekte nicht ohne weiteres verfügbar (oder auf ein bestimmtes Vorfahrtsszenario nicht anwendbar) sind.More generally, a wait element may be a subset of the wait geometry of an ego path (e.g., a claimed path of the ego vehicle) and the wait geometry of a competitor path (e.g., a claimed path for a competitor of right-of-way scenario 100), contain (or encode) a wait geometry context and a contention state. Ego waiting geometry 112, competitor_1 waiting geometry 114, waiting geometry context 116, and contention state_1 118 (of waiting element_1 110) may be data objects and/or data structures. Likewise they can ego waiting geometry 122, a competitor_2 waiting geometry 124, a waiting geometry context 126, and a contention state_2 128 (of waiting element_2 120) can be data objects and/or data structures. In various embodiments, the data encodings for these missing items may be set to "invalid" and/or "not applicable" if data values (or items) of one or more of these data objects are not readily available (or not applicable to a particular right-of-way scenario).

In einer oder mehreren Ausführungsformen bilden die Warteelemente (z. B. das Warteelement_1 110 und das Warteelement_2 120) die „Atome“ dafür, wie Informationen (oder Daten) über Wartebedingungen (z. B. das Vorfahrtsszenario 100) codiert werden können. Die Warteelemente können als Eingabe für den Vorfahrtsplaner 102 des Ego-Fahrzeugs bereitgestellt werden (in 1 nicht dargestellt). Mindestens basierend auf der Codierungen der Warteelemente kann der Vorfahrtsplaner ein geeignetes Vorfahrtsverhalten bestimmen, um das Vorfahrtszenario 100 sicher zu durchfahren. Wie hier erörtert, kann ein Warteelement durch Anwendung von mindestens einer von zwei Methoden (und/oder einer Kombination davon) bestimmt und/oder erzeugt werden. Eine Methode umfasst die Anwendung eines Satzes vorfahrtsbezogener Verkehrsregeln (z. B. Vorfahrtsheuristiken) auf das Vorfahrtsszenario 100. Eine andere Methode beinhaltet die Anwendung einer Abbildung und die Echtzeit-Wahrnehmung von geometriebezogenen und/oder Signalzustandsdaten auf das Vorfahrtszenario 100. Wie bereits erwähnt, können die beiden Methoden in verschiedenen Ausführungsformen kombiniert werden, um Kartierungsdaten, die Echtzeitwahrnehmung von Geometrie-/Signaldaten und die Vorfahrtsheuristik einzusetzen.In one or more embodiments, the waiting elements (e.g., waiting element_1 110 and waiting element_2 120) form the "atoms" for how information (or data) about waiting conditions (e.g., right-of-way scenario 100) may be encoded. The waiting elements may be provided as input to the ego vehicle's priority planner 102 (in 1 not shown). At least based on the coding of the waiting elements, the right-of-way planner can determine a suitable right-of-way behavior in order to drive through the right-of-way scenario 100 safely. As discussed herein, a wait item may be determined and/or created using at least one of two methods (and/or a combination thereof). One method involves applying a set of right-of-way traffic rules (e.g., right-of-way heuristics) to the right-of-way scenario 100. Another method involves applying a mapping and real-time perception of geometry-related and/or signal state data to the right-of-way scenario 100. As previously mentioned, can the two methods can be combined in various embodiments to employ mapping data, real-time perception of geometry/signal data, and right-of-way heuristics.

Wenn wir unsere Aufmerksamkeit der 2 zuwenden, zeigt 2 ein nicht-einschränkendes Beispiel einer Warteelement-Datenstruktur 200 und ein nicht-einschränkendes Beispiel einer Konkurrenzzustands-Datenstruktur 210 (auch als Konkurrenzzustand bezeichnet) gemäß einigen Ausführungsformen der vorliegenden Offenbarung. In verschiedenen Ausführungsformen kann es sich bei einer Wartegeometrie 200 und/oder einem Konkurrenzzustand 210 um ein Datenobjekt oder um andere strukturierte Daten dieser Art handeln. Im Allgemeinen kann die Wartegeometrie 200 eine Geometrie und zugehörige Metadaten darstellen, die sich ergeben, wenn zusätzliche Informationen (z. B. Informationen und/oder Daten, die sich auf ein Vorfahrtszenario beziehen, z. B. das Vorfahrtszenario 100 der 1) auf die Fahrspurgraphen angewendet werden (z. B. ein von einem Ego-Fahrzeug beanspruchter Weg und/oder ein vom Konkurrenten beanspruchter Weg). Das heißt, die Wartegeometrie 200 kann auf einen Ego-Weg (z. B. einen beanspruchten Weg des Ego-Fahrzeugs), einen Konkurrenten-Weg (z. B. einen beanspruchten Weg eines Konkurrenten) oder auf einen Hintergrundkontext angewendet werden. Wenn sich die Wartegeometrie 200 beispielsweise auf einen Ego-Weg bezieht, kann die Wartegeometrie 200 der Ego-Wartegeometrie 112 des Warteelements_1 110 und/oder der Ego-Wartegeometrie 122 des Warteelements_2 120 der 1 ähnlich sein. Gilt die Wartegeometrie 200 für einen Konkurrenten-Weg, so kann die Wartegeometrie 200 der Konkurrenten_1-Wartegeometrie 114 des Warteelements_1 110 und/oder der Konkurrenten_2-Wartegeometrie 124 des Warteelements_2 120 ähnlich sein. Wenn sich die Wartegeometrie 200 auf einen Hintergrundkontext bezieht, dann kann die Wartegeometrie 200 dem Wartegeometriekontext 116 des Warteelements_1 110 und/oder dem Wartegeometriekontext 126 des Warteelements_2 120 ähnlich sein. Solche kontextbezogenen Wartegeometrien können sich auf die Grenzen und/oder den Bereich der Innenfläche einer Kreuzung oder das Vorhandensein einer Kreuzungseinfahrtslinie beziehen.When we turn our attention to the 2 turn, shows 2 a non-limiting example of a wait item data structure 200; and a non-limiting example of a contention state data structure 210 (also referred to as a contention state) according to some embodiments of the present disclosure. In various embodiments, a wait geometry 200 and/or a contention state 210 may be a data object or other such structured data. In general, the waiting geometry 200 may represent geometry and associated metadata that result when additional information (e.g., information and/or data related to a right-of-way scenario, e.g., the right-of-way scenario 100 of 1 ) are applied to the lane graphs (e.g., a path claimed by a ego vehicle and/or a path claimed by the competitor). That is, the wait geometry 200 may be applied to a ego path (e.g., a ego vehicle's claimed path), a competitor path (e.g., a competitor's claimed path), or to a background context. For example, if the waiting geometry 200 relates to an ego path, the waiting geometry 200 may be the ego waiting geometry 112 of the waiting element_1 110 and/or the ego waiting geometry 122 of the waiting element_2 120 of 1 be similar to. If the queuing geometry 200 is for a competitor path, the queuing geometry 200 may be similar to the queuing_1 queuing geometry 114 of queuing_item_1 110 and/or the queuing_2 queuing geometry 124 of queuing_item_2 120 . If the wait geometry 200 relates to a background context, then the wait geometry 200 may be similar to the wait geometry context 116 of the wait element_1 110 and/or the wait geometry context 126 of the wait element_2 120 . Such contextual waiting geometries may relate to the boundaries and/or the area of the interior surface of an intersection or the presence of an intersection entry line.

In verschiedenen nicht einschränkenden Ausführungsformen kann die Wartegeometrie mindestens einige ihrer Daten in Feld-Wert-Paaren codieren. Dementsprechend kann ein Satz von Feldern (z. B. Wartegeometriefelder 202) der Wartegeometrie 200 zugeordnet (oder darin codiert) sein. Jedem Feld der Wartegeometriefelder 202 können ein oder mehrere Werte zugeordnet werden, um einen Satz von Feld-Wert-Paaren zu codieren. Es ist zu beachten, dass ein Wert eine Datenstruktur oder Daten sein kann. In einigen Ausführungsformen kann ein Wert für ein bestimmtes Feld ein anderes Feld sein, so dass die Wartegeometrie 200 einen oder mehrere Datenbäume codieren kann. Wie in 2 dargestellt, können solche Felder 202 enthalten, sind jedoch nicht beschränkt auf: Einfahrtslinie (z. B. des entsprechenden Ego-Wegs oder Konkurrenten-Wegs), Ausfahrtslinie (z. B. des entsprechenden Ego-Wegs oder Konkurrenten-Wegs), Einfahrts-Konkurrenten-Bereich (z. B., des entsprechenden Ego-Wegs oder Konkurrenten-Wegs), Ausfahrts-Konkurrenten-Bereich (z. B. des entsprechenden Ego-Wegs oder Konkurrenten-Wegs) und Kreuzungseinfahrtslinie (z. B. des entsprechenden Ego-Wegs oder Konkurrenten-Wegs). In einigen Ausführungsformen können die Felder 202 Koordinaten oder andere Informationen enthalten, die die Grenzen und/oder die Lage eines Bereichs der Innenfläche (als Teil des allgemeinen Kontexts einer Wartegruppe) definieren, sowie einen oder mehrere Konkurrenzpunkte zwischen einem Ego-Weg und einem Konkurrenten-Weg (optionale explizite Codierung eines der Kreuzungs- oder Einmündungspunkte zwischen Wegen). Die Felder 202 können zusätzlich eine im allgemeinen Kontext geltende Geschwindigkeitsbegrenzung enthalten (die als zwischen der Einfahrts- und der Ausfahrtslinie geltend zu betrachten ist). Die Werte für jedes dieser Felder können als ungültig codiert werden, um die Codierung von Wartebedingungen zu ermöglichen, bei denen die Felder für das jeweilige Vorfahrtszenario nicht gelten (z. B. eine Ampel an einer Auffahrt hat nur eine Ausfahrt und eine Einfahrt, aber keine Ausfahrt, keine Gegenfahrbahn und keine Innenfläche). Ein weiteres Beispiel wäre die Codierung einer neuen Geschwindigkeitsbegrenzung durch eine Wartegruppe, die nur eine Einfahrtslinie und eine Geschwindigkeitsbegrenzung im Gesamtkontext enthält, während alles andere auf ungültig gesetzt ist. Die Ausfahrtslinie ist dann als unendlich oder bis auf weiteres zu interpretieren, und ähnlich verhält es sich mit anderen Eigenschaften.In various non-limiting embodiments, the queuing geometry may encode at least some of its data in field-value pairs. Accordingly, a set of fields (e.g., wait geometry fields 202) may be associated with (or encoded in) wait geometry 200. FIG. Each field of the waiting geometry fields 202 can be assigned one or more values to encode a set of field-value pairs. Note that a value can be a data structure or data. In some embodiments, a value for a particular field may be another field, such that the cue geometry 200 may encode one or more data trees. As in 2 1, such fields 202 may include, but are not limited to: entry line (e.g., of the corresponding ego way or competitor way), exit line (e.g., of the corresponding ego way or competitor way), entry line competitor area (e.g., of the corresponding ego way or competitor way), exit competitor area (e.g., of the corresponding ego way or competitor way), and intersection entry line (e.g., of the corresponding ego way or competitor way). In some embodiments, fields 202 may contain coordinates or other information defining the boundaries and/or location of an area of the interior surface (as part of the general context of a queuing group), as well as one or more points of contention between an ego path and a competitor path. Path (optional explicit coding of one of the crossing or junction points between paths). The fields 202 can additionally contain a speed limit applicable in the general context (to be considered as applying between the entry and exit lines). The values for each of these fields can be coded as invalid to allow coding of wait conditions where the fields do not apply to the given right-of-way scenario (e.g. a traffic light at an on-ramp has only one exit and one entrance, but none exit, no oncoming lane and no interior surface). Another example would be a queue group encoding a new speed limit that only contains an entry line and a speed limit in the overall context, with everything else set to invalid. The exit line is then to be interpreted as infinity or until further notice, and the situation is similar with other properties.

Einfahrtslinien für einen Ego-Weg können einen Haltepunkt für mehrere der Vorfahrtsverhaltensweisen codieren. Einfahrtslinien können auch den Beginn des allgemeinen Konkurrenzbereichs signalisieren, der von der Ausfahrtslinie abgeschlossen wird, die angeben kann, welches Segment des Ego-Wegs geräumt werden muss, um diese Wartegruppe von Wartebedingungen zu lösen. Ein Bereich einer Innenfläche kann die Innenfläche einer Kreuzung als polygonale Fläche darstellen, die auf einen Koordinatenraum bezogen werden kann. Ein Bereich einer Innenfläche kann das Segment zwischen der Einfahrtslinie und der entsprechenden Ausfahrtslinie umfassen (manchmal kann die Ausfahrtslinie nach außen verlegt werden, z. B. über einen Fußgängerüberweg hinaus, auch wenn die Innenfläche dies nicht tut). Die Einfahrtsbereiche und das innere Gelände bieten einen Kontext für die Analyse anderer Akteure. Dies kann durch die Zuweisung von Akteuren zu Wegen und Bereichen (in einer sich nicht gegenseitig ausschließenden Weise) erfolgen. Die Geometrie der Ego- und Konkurrenten-Wege sowie der Konkurrenzpunkt können vom Vorfahrts-Planer verwendet werden, um das Vorfahrts-Verhalten nach Bedarf zu implementieren. Die Geometrie kann auch verwendet werden, um zu bestimmen, welche Regeln gelten.Entry lines for an ego path can encode a stopping point for several of the right-of-way behaviors. Entry lines can also signal the beginning of the general contention area, terminated by the exit line, which can indicate which segment of the ego path needs to be cleared in order to resolve that waiting set of waiting conditions. A region of an interior surface may represent the interior surface of an intersection as a polygonal surface that can be related to a coordinate space. A portion of an interior surface may include the segment between the entry line and the corresponding exit line (sometimes the exit line may be moved outward, e.g., past a pedestrian crossing, even though the interior surface does not). The driveways and interior grounds provide a context for analysis by other actors. This can be done by assigning actors to pathways and areas (in a non-mutually exclusive way). The geometry of the ego and competitor paths, as well as the competition point, can be used by the right-of-way planner to implement the right-of-way behavior as needed. Geometry can also be used to determine which rules apply.

In einigen Beispielen kann ein Konkurrenzpunkt einen expliziten geometrischen Punkt anzeigen oder darstellen. In anderen Beispielen kann sich ein Konkurrenzpunkt auf ein abstraktes Konzept beziehen, bei dem es sich um die besondere Konkurrenz handelt, auf die sich ein Warteelement bezieht und/oder deren Zustand es codiert. In solchen Beispielen kann der Zustand der Konkurrenz an einem Konkurrenzpunkt die Nutzdaten des gesamten Prozesses zur Auflösung des Konkurrenzzustands sein. Er kann für jeden Konkurrenzpunkt eine Bestimmung der Art und Weise liefern, in der das Ego-Fahrzeug in Bezug auf diesen Konkurrenzpunkt Vorfahrt gewähren oder nicht Vorfahrt gewähren sollte. In diesem Sinne kann der Konkurrenzpunkt auch die Wahl des Ego-Weges, den Zugang zu einem Konkurrenten-Weg und über diesen Konkurrenten-Weg, die tatsächlichen Konkurrenten und die Art und Weise, wie sich das Ego-Fahrzeug ihnen gegenüber zu verhalten hat, angeben.In some examples, a contention point may indicate or represent an explicit geometric point. In other examples, a contention point may refer to an abstract concept that is the particular contention that a wait element refers to and/or whose state it encodes. In such examples, the contention state at a contention point may be the payload of the overall contention resolution process. For each contention point, it can provide a determination of the manner in which the ego vehicle should or should not give way with respect to that contention point. In this sense, the competition point can also indicate the choice of the ego path, access to a competitor path and via this competitor path, the actual competitors and how the ego vehicle is to behave towards them .

Die Wartegeometrie kann in Gruppen zusammengefasst (z. B. logisch organisiert) werden, wobei die semantische Bedeutung einer Wartegruppe darin bestehen kann, dass alle Wartebedingungen in dieser Gruppe gemeinsam betrachtet und insbesondere gemeinsam geklärt werden können, so dass das Ego-Fahrzeug nicht dazwischen steht (z. B. sollte das Ego-Fahrzeug nicht am Ende einer Linkskurve auf Fußgänger warten müssen, während sich das Ego-Fahrzeug noch in der Spur des Gegenverkehrs befindet, so dass der Gegenverkehr zusammen mit dem Fußgängerüberweg in derselben Wartegruppe berücksichtigt werden kann).The waiting geometry can be grouped together (e.g. organized logically), with the semantic meaning of a waiting group being that all waiting conditions in this group can be considered together and, in particular, clarified together, so that the ego vehicle does not stand in between (e.g. the ego vehicle should not have to wait for pedestrians at the end of a left turn while the ego vehicle is still in the lane of oncoming traffic, so that oncoming traffic can be accounted for along with the pedestrian crossing in the same queue).

Unter Bezugnahme auf den Konkurrenzzustand 210 kann eine Warteelement-Engine, wie z. B. die Warteelement-Engine 300 der 3, einen Konkurrenzzustandslöser enthalten (z. B. einen Konkurrenzzustandslöser 340 der Warteelement-Engine 300). Ein solcher Konkurrenzzustandslöser kann einen Konkurrenzzustandslösungsprozess durchführen. Das Ziel eines Konkurrenzzustandslösungsprozesses kann darin bestehen, einen Konkurrenzzustand (z. B. den Konkurrenzzustand 210) für jedes der Warteelemente (z. B. das Warteelement_1 110 und das Warteelement_2 120 der 1) bereitzustellen. Der Konkurrenzzustand 210 eines Warteelements kann eine Anweisung an den Vorfahrtsplaner sein, auf welche Weise das Ego-Fahrzeug in Bezug auf dieses Warteelement Vorfahrt gewähren oder vorfahrtsberechtigt sollte, und zwar als Regel, Erwartung, formelle oder informelle Konvention oder Norm.Referring to the contention state 210, a queuing engine, such as B. the wait element engine 300 of the 3 , contain a contention state solver (e.g., a contention state solver 340 of the queuing element engine 300). Such a contention solver can perform a contention solving process. The goal of a contention state resolution process may be to resolve a contention state (e.g., the contention state 210) for each of the wait items (e.g., wait item_1 110 and wait item_2 120 of the 1 ) to provide. The contention state 210 of a waiting item may be an instruction to the traffic planner as to how the ego vehicle should yield or give way to that waiting item, as a rule, expectation, formal or informal convention, or norm.

In einigen nicht einschränkenden Ausführungsformen kann der Konkurrenzzustand 210 nicht anzeigen, was in dem Vorfahrtszenario tatsächlich geschieht, was in dem Vorfahrtszenario physikalisch möglich ist oder ob das Ego-Fahrzeug zum Vorfahrt gewähren gezwungen werden kann, obwohl es in dem Vorfahrtszenario (z. B. einem kreuzenden Vorfahrtszenario oder einem zusammenführenden Vorfahrtszenario) die Vorfahrt hat. Vielmehr kann der Konkurrenzzustand 210 angeben, was gemäß den Konventionen geschehen sollte. Es kann dann in der Verantwortung des Vorfahrtplaners liegen, tatsächlich das Gewähren der Vorfahrt zu implementieren, und zwar in dem Sinne, dass er berücksichtigt, was passieren sollte (z. B. wie im Konkurrenzzustand 210 codiert), ob das Ego-Fahrzeug tatsächlich in der Lage ist, anzuhalten und diese Anweisung zu befolgen, und ob die anderen Akteure (z. B. die Konkurrenten des Vorfahrtszenarios) ihre erwarteten Vorfahrtspflichten zu erfüllen scheinen, und entsprechende Maßnahmen ergreift. So kann der Vorfahrtsplaner z. B. feststellen, obwohl der Zustand Vorfahrtsberechtigt lautet, dass ein Konkurrent nicht die Vorfahrt gewährt, (wobei im Wesentlichen „Hupen angemessen“ erfasst wird), und beschließen, die Vorfahrt zu gewähren, obwohl dies nicht der Fall sein sollte. Der Vorfahrts-Planer kann ein Vorfahrtsverhalten implementieren, das alle Konkurrenzen in einer Wartegruppe analysiert, bis alle Warteelemente in der Gruppe gemeinsam geklärt werden können. Alle Konkurrenzen in der Wartegruppe können gemeinsam befolgt werden, d. h. die restriktivste Konkurrenz kann das erwartete Vorfahrtsverhalten des Ego-Fahrzeugs bestimmen. Wenn beispielsweise ein Zustand der Wartegruppe Vorfahrtsberechtigt und ein anderer Anhalten an der Einfahrt lautet, kann das Ego-Fahrzeug an der Einfahrtslinie bleiben.In some non-limiting embodiments, the contention state 210 may not indicate what is actually happening in the right-of-way scenario, what is physically possible in the right-of-way scenario, or whether the ego vehicle can be forced to give way even though it is in the right-of-way scenario (e.g., a crossing priority scenario or a merging priority scenario) has the right of way. Rather, the contention state 210 may indicate what should happen according to the conventions. It may then be the responsibility of the right-of-way planner to actually implement the right-of-way, in the sense that it takes into account what should happen (e.g., as encoded in the contention state 210), whether the ego vehicle is actually in is able to stop and follow this instruction and whether the other actors (e.g. the Konkur yields of the right-of-way scenario) appear to be fulfilling their expected right-of-way obligations and takes appropriate action. For example, the priority planner can For example, discovering that a competitor is not yielding the right of way when the Right of Way state is (essentially capturing "honk appropriately") and decide to yield the right of way when it should not be. The priority planner can implement a priority behavior that analyzes all contentions in a queue group until all queue items in the group can be resolved collectively. All contentions in the queue can be obeyed together, ie the most restrictive contention can determine the expected right-of-way behavior of the ego vehicle. For example, if one state of the queue is Right of Way and another state is Stop at Entry, the ego vehicle may remain at the entry line.

Wie in 2 dargestellt, kann der Konkurrenzzustand 210 (z. B. wie in einem Warteelement codiert) einen oder mehrere der siebzehn im Konkurrenzzustand 210 aufgeführten Zustände umfassen. Es ist zu beachten, dass diese Liste möglicher Konkurrenzzustände nicht erschöpfend ist und dass in anderen Ausführungsformen der Konkurrenzzustand 210 zusätzliche und/oder alternative Konkurrenzzustände enthalten kann. Der Zustand Vorfahrtsberechtigt kann anzeigen, dass zu erwarten ist, dass die Konkurrenten die Vorfahrt gewähren. Dementsprechend kann der Zustand Vorfahrtsberechtigt keine formale Einschränkung für das entsprechende Warteelement bedeuten (außer dass der Vorfahrtsplaner die mit diesem Warteelement verbundenen Konkurrenten beobachtet und sicherstellt, dass sie wie erwartet Vorfahrt gewähren). Für die verschiedenen Konkurrenzzustände kann das Schlüsselwort vorübergehend verwendet werden, um anzuzeigen, dass der entsprechende Konkurrenzzustand in naher Zukunft aktualisiert werden und/oder sich entwickeln kann. So kann ein Zustand Vorrübergehend Vorfahrtsberechtigt anzeigen, dass derzeit ein Vorfahrtsberechtigt-Zustand gilt, der sich aber wahrscheinlich bald in einen restriktiveren Zustand ändern wird. Das kanonische Beispiel ist der „gelbe“ Zustand einer Ampel, der durch „Vorrübergehend Vorfahrtsberechtigt“ codiert werden kann. Ein „Anhalten an der Einfahrt“ kann bedeuten, dass eine Anweisung besteht, an der Einfahrtslinie anzuhalten, auf weitere Anweisungen zu warten und nicht weiterzufahren, bis sich der Zustand der Konkurrenz ändert. Ein Zustand „An der Einfahrt Vorfahrt gewähren“ kann anzeigen, dass das Ego-Fahrzeug an der Einfahrtslinie bleiben soll, bis der Konkurrenz voraussichtlich gelöst ist. Bei solchen Zuständen des Anhaltens an der Einfahrt ist ein vorheriges Anhalten nicht zwingend vorgeschrieben, aber ein Steueragent des Ego-Fahrzeugs sollte sicherstellen, dass der Konkurrenz ausgeräumt ist, bevor das Ego-Fahrzeug die Einfahrtslinie passiert, was häufig zu einem vorherigen Anhalten führt. Da die Wartebedingungen in der Wartegruppe gemeinsam betrachtet werden können, bedeutet dies in der Praxis in der Regel, dass der Steueragent sicherstellen sollte, dass alle Konkurrenzen in der Wartegruppe geklärt sind, bevor das Ego-Fahrzeug die Einfahrtslinie passiert. Wenn mit anderen Worten eine Konkurrenz in der Wartegruppe den Zustand „An der Einfahrt Vorfahrt gewähren" aufweist, können alle anderen Konkurrenzen in der Wartegruppe bei der Analyse durch den Vorfahrtsplaner denselben Konkurrenzzustand erben, und wenn eine Konkurrenz den Zustand „Anhalten an der Einfahrt“ aufweist, können alle Warteelemente in der Gruppe den Zustand „Vorher Anhalten“ erben. Der Zustand Vorübergehend an der Einfahrt Vorfahrt gewähren kann die vorübergehende Version des Zustands An der Einfahrt Vorfahrt gewähren sein.As in 2 As illustrated, contention state 210 (e.g., as encoded in a wait element) may include one or more of the seventeen states listed in contention state 210 . Note that this list of possible contention states is not exhaustive and that in other embodiments contention state 210 may include additional and/or alternative contention states. The Right of Way state may indicate that the competitors are expected to yield the right-of-way. Accordingly, the Right-of-Way state cannot imply any formal restriction on the corresponding queue element (other than that the planner observes the competitors associated with that queue element and ensures that they yield the right-of-way as expected). For the various contention states, the keyword may be used temporarily to indicate that the corresponding contention state may be updated and/or evolve in the near future. For example, a Temporary Right-of-Way state may indicate that a Right-of-Way state is currently in effect but is likely to change to a more restrictive state soon. The canonical example is the "amber" state of a traffic light, which can be coded as "Temporary Right-of-Way". A “stop at entry” may mean that there is an instruction to stop at the entry line, await further instructions and not proceed until the state of the competition changes. A yield at entry state may indicate that the ego vehicle should remain at the entry line until the competition is expected to be resolved. In such entry stop conditions, a prior stop is not mandatory, but a ego vehicle control agent should ensure that the competition is eliminated before the ego vehicle passes the entry line, which often results in a prior stop. In practice, since the queuing conditions in the queuing group can be considered together, this usually means that the control agent should ensure that all contentions in the queuing group are resolved before the ego vehicle passes the entry line. In other words, if a competitor in the queuing group has the state "Give Way at the Gateway", all other competitors in the queuing group can inherit the same contention state when analyzed by the priority planner, and if a competitor has the state "Stop at the gateway". , all waiting elements in the group may inherit the Stop Before state The Give way at the entrance temporarily state may be the transient version of the Give way at the entrance state.

Der Zustand „Am Konkurrenzpunkt Vorfahrt gewähren" kann anzeigen, dass ein vorheriges Anhalten nicht zwingend vorgeschrieben ist oder dass das Ego-Fahrzeug ausdrücklich an der Einfahrtslinie bleiben muss, während es auf die Klärung der Konkurrenz wartet (obwohl grundsätzlich nichts dagegen einzuwenden ist). Der Steueragent muss unter Umständen dafür sorgen, dass das Ego-Fahrzeug mit dieser Konkurrenz verbundenen Konkurrenten ordnungsgemäß Vorfahrt gewährt, dass das Ego-Fahrzeug die Konkurrenz nicht blockiert und dass das Ego-Fahrzeug sich so verhält, dass für die mit dieser Konkurrenz verbundenen Konkurrenten klar ist, dass das Ego-Fahrzeug Vorfahrt gewährt. Dies könnte bedeuten, dass das Ego-Fahrzeug zum Linksabbiegen an einer Kreuzung nach vorne fährt, aber langsam genug und mit genügend Abstand, dass der Gegenverkehr versteht, dass das Ego-Fahrzeug offenbar die Absicht hat, vorzufahren, und dass es dem Gegenverkehr offensichtlich nicht im Weg steht. Der Zustand „Vorübergehend am Konkurrenzpunkt Vorfahrt gewähren“ kann die vorübergehende Version des Zustands „Am Konkurrenzpunkt Vorfahrt gewähren" sein. Der Zustand Anhalten an der Einfahrt und dann an der Einfahrt Vorfahrt gewähren kann dem Zustand An der Einfahrt Vorfahrt gewähren gleichwertig (oder mindestens ähnlich) sein, jedoch mit der zusätzlichen Bedingung, dass an der Einfahrtslinie ein vorheriges Anhalten erforderlich ist. Der Zustand Anhalten an der Einfahrt dann am Konkurrenzpunkt Vorfahrt gewähren kann dem Zustand Am Konkurrenzpunkt Vorfahrt gewähren gleichwertig (oder mindestens ähnlich) sein, jedoch mit der zusätzlichen Bedingung, dass an der Einfahrtslinie ein vorheriges Anhalten erforderlich ist.The Yield at Competitive Point state may indicate that prior stopping is not mandatory, or that the ego vehicle must explicitly remain at the line of entry while awaiting competitor clarification (although there is nothing wrong with that in principle). Tax Agent may need to ensure that the ego vehicle properly yields to competitors associated with that competition, that the ego vehicle does not block the competition, and that the ego vehicle behaves in a manner that is clear to the competitors associated with that competition that the ego vehicle yields the right of way. This could mean that the ego vehicle is moving forward to make a left turn at an intersection, but slowly enough and with enough distance that oncoming traffic understands that the ego vehicle's apparent intent is to to pull ahead and that it obviously does not get in the way of oncoming traffic. The "Temporarily yield at the point of contention" state may be the temporary version of the "Give way at the point of contention" state. The stop at the entrance and then give way at the entrance condition may be equivalent (or at least similar) to the give way at the entrance condition, but with the additional stipulation that prior stopping is required at the line of entry. The stop at entry then give way at contention point condition may be equivalent (or at least similar) to the give way at contention point condition, but with the additional stipulation that prior stopping is required at the line of entry.

Der Zustand Vorübergehend Anhalten an der Einfahrt dann am Konkurrenzpunkt Vorfahrt gewähren kann die vorübergehende Version des Zustands Anhalten an der Einfahrt dann am Konkurrenzpunkt Vorfahrt gewähren sein. Der Zustand Wer zuerst anhält, hat Vorrang kann der kanonische Fall des „US-Multiway-Stops“ sein. Die Vorfahrt kann als First-in-first-out-Warteschlange festgelegt werden, wobei „in“ definiert ist als das Herankommen an die Kreuzung (wahrscheinlich im entsprechenden Konkurrenten-Bereich an der Einfahrtslinie, die in die Innenfläche zeigt) als erster Akteur aus diesem Konkurrenten-Weg und das Anhalten. Mit anderen Worten, kann dieser Konkurrenzzustand eine weitere Verarbeitung von „wer hat zuerst angehalten“ implizieren, um tatsächlich in einen Zustand Vorfahrtsberechtigt oder Vorfahrt gewähren für jeden Akteur zu münden, der mit diesem Konkurrenten-Weg verbunden ist.The Temporarily stop at the entry then give way at the point of contention condition may be the temporary version of the condition Stop at the entrance then give way at the competition point. The first-stop-priority condition may be the canonical case of the "US multiway stop". Right-of-way can be defined as a first-in-first-out queue, where "in" is defined as arriving at the intersection (probably in the relevant competitor's area at the entry line pointing into the interior surface) as the first actor out of it Competitor Walk and Stopping. In other words, this contention state may imply further processing of "who stopped first" to actually result in a Yield or Yield state for each actor connected to that contention path.

Der Zustand Verhandeln kann anzeigen, dass es keine bekannte Grundlage für die Bestimmung der Vorfahrt gibt, wie z. B. bei einer Autobahneinmündung, für die es keine Anhaltspunkte aufgrund von Verkehrsregeln, Kartenstatistiken, der Geometrie oder der Größe der Straße gibt (gleich große Autobahnen, die zusammengeführt werden und eine ähnlich gerade Form haben). Der Zustand Anhalten an der Einfahrt und dann Verhandeln kann dem Zustand Verhandeln gleichwertig (oder mindestens ähnlich) sein, jedoch mit der zusätzlichen Bedingung, dass an der Einfahrtslinie ein vorheriges Anhalten erforderlich ist. Dieser Zustand kann verwendet werden, wenn es keine Konvention gibt, die eingehalten werden muss, aber eine klare Einfahrtslinie vorhanden ist. Der Zustand Nicht erlaubt kann verwendet werden, um eine Codierung zu ermöglichen, dass etwas nicht erlaubt ist. Beispielsweise könnte das Warteelement einen Weg zum Linksabbiegen über den Verkehr auf einen Parkplatz enthalten, und es könnten Signale vorhanden sein, die anzeigen, dass das Abbiegen verboten ist (z. B. über eine durchgezogene doppelte gelbe Linie). In diesem Fall kann das Ego-Fahrzeug so vorgehen, dass es (den anderen Verkehrsteilnehmern) nicht nur signalisiert, dass der Zustand jetzt anzuhalten ist, sondern auch, dass er sich nie ändern wird, da er einfach nicht erlaubt ist. Dieser Zustand kann für den Vorfahrtsplaner nützlich sein, da er mehrere Möglichkeiten der Ego-Wegwahl in Betracht zieht (z. B. können mehrere Ego-Wege gleichzeitig in Betracht gezogen werden). Der Zustand Anhalten und Übernahme anfordern kann anzeigen, dass das Ego-Fahrzeug auf etwas gestoßen ist, das außerhalb des Betriebsentwurfsbereichs liegt (z. B. können Signale erkannt worden sein, die eine Baustelle anzeigen, oder ein Warnposten, und das Ego-Fahrzeug hat die Handhabung einer solchen Bedingung noch nicht implementiert). In solchen Zuständen kann der Steueragent (oder der Vorfahrtsplaner) das Ego-Fahrzeug zu einer deutlichen Verlangsamung oder zum Anhalten auffordern und die Übernahme des Fahrzeugs verlangen. Der Zustand Unbekannt kann zur Codierung von Vorhersagen für künftige Konkurrenzsituationen verwendet werden, wobei es sinnvoll sein kann, zu codieren, dass es keine Kenntnisse oder Vorhersagen gibt.The Negotiating state may indicate that there is no known basis for determining the right of way, such as B. at a motorway junction, for which there are no clues based on traffic rules, map statistics, the geometry or the size of the road (motorways of the same size that merge and have a similar straight shape). The state of stopping at the entry and then negotiating may be equivalent (or at least similar) to the state of negotiating, but with the additional stipulation that a prior stop is required at the line of entry. This state can be used when there is no convention to be followed but there is a clear line of entry. The Not Allowed state can be used to enable coding that something is not allowed. For example, the waiting element could include a path to turn left across traffic into a parking lot, and there could be signals indicating that the turn is prohibited (e.g., via a solid double yellow line). In this case, the ego vehicle can act by not only signaling (to other road users) that the condition is to stop now, but also that it will never change, as it is simply not allowed. This state can be useful for the right-of-way planner as it considers multiple ego path choices (e.g., multiple ego paths may be considered simultaneously). The Stop and Request Takeover state may indicate that the ego vehicle has encountered something outside of the operational design area (e.g. signals indicating a roadworks, or a warning post may have been detected and the ego vehicle has handling of such a condition is not yet implemented). In such states, the control agent (or the precedent planner) may request the ego vehicle to significantly slow down or stop and request vehicle takeover. The Unknown state can be used to encode predictions for future contentions, where it may be useful to encode that there is no knowledge or prediction.

3 zeigt ein nicht einschränkendes Beispiel der Warteelement-Engine 300) gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Wie bereits erwähnt, kann sich die Warteelement-Engine 300 an Bord eines autonomen Fahrzeugs befinden (z. B. des Ego-Fahrzeugs 102 der 1). In anderen Ausführungsformen kann ein autonomes Fahrzeug über ein oder mehrere Kommunikationsnetze Zugang zu einer entfernten Warteelement-Engine haben. Wie bereits erwähnt, kann die Warteelement-Engine 300 ein oder mehrere Warteelemente (z. B. das Warteelement_1 110 der 1, das Warteelement_2 120 der 1 und ein Warteelement 310 der 3) als Ausgabe erzeugen, wenn sich ein Ego-Fahrzeug einem Kreuzungs- oder EinmündungsVorfahrtszenario nähert (z. B. ein Kreuzungs-Vorfahrtszenario 100 der 1). Im Folgenden werden verschiedene Eingaben in die Warteelement-Engine 300 erläutert. 3 FIG. 3 shows a non-limiting example of the wait item engine 300) according to some embodiments of the present disclosure. As previously mentioned, the queuing element engine 300 may reside onboard an autonomous vehicle (e.g., the ego vehicle 102 of FIG 1 ). In other embodiments, an autonomous vehicle may access a remote queuing element engine via one or more communication networks. As previously mentioned, the wait item engine 300 may have one or more wait items (e.g., the wait item_1 110 of the 1 , the wait element_2 120 the 1 and a waiting element 310 of 3 ) generate as an output when an ego vehicle approaches an intersection or junction give-way scenario (e.g., an intersection give-way scenario 100 of 1 ). Various inputs to the wait item engine 300 are discussed below.

Die Warteelement-Engine 300 kann einen Wartegeometrie-Wahrnehmer 302, einen Kartographen 304, einen Signalwahrnehmer 306, einen Fahrspurschreiber 350 und/oder einen anderen Sensordatenempfänger 308 umfassen. Der Wartegeometrie-Wahrnehmer 302, der Kartograph 204, der Signalwahrnehmer 306, der Fahrspurschreiber 250 und der andere Sensordatenempfänger 308 empfangen verschiedene Eingaben, wie unten beschrieben. Die Warteelement-Engine 300 kann ferner einen Wartegeometrie-Verschmelzer 322, einen Geometrie-Klassifikator 324 und einen Geometrie-Assoziator 326 umfassen. Die Warteelement-Engine 300 kann auch einen Signal-Verschmelzer 328, einen Signalzustandsschätzer 330 und den Konkurrenzzustandslöser 340 umfassen. Der Konkurrenzzustandslöser 340 kann einen Bedingungsprüfer 342, einen Basisregel-Parser 344, einen Abbildungsregelprüfer 346 und einen Warteelement-Verschmelzer 348 umfassen. Das ausgegebene Warteelement 310 kann eine Ego-Wartegeometrie 312, eine Konkurrenten-Wartegeometrie 314, eine Kontext-Wartegeometrie 316 und einen Konkurrenzzustand 318 enthalten.The waiting element engine 300 may include a waiting geometry perceiver 302, a mapper 304, a signal perceiver 306, a lane recorder 350, and/or other sensor data receiver 308. The waiting geometry perceiver 302, the mapper 204, the signal perceiver 306, the lane recorder 250 and the other sensor data receiver 308 receive various inputs as described below. The wait element engine 300 may further include a wait geometry blender 322 , a geometry classifier 324 , and a geometry associator 326 . The queuing engine 300 may also include a signal fuser 328 , a signal state estimator 330 , and the contention state solver 340 . The contention state solver 340 may include a constraint checker 342 , a base rule parser 344 , a mapping rule checker 346 , and a wait element fuser 348 . The output wait element 310 may include an ego wait geometry 312 , a competitor wait geometry 314 , a context wait geometry 316 , and a contention state 318 .

Der Fahrspurschreiber 350 ist im Allgemeinen für den Empfang eines oder mehrerer Fahrspurgraphen als Eingabe für die Warteelement-Engine 300 verantwortlich. Die Fahrspurgraphen können als Reaktion auf die Annäherung an und/oder die Erkennung eines Vorfahrtszenarios empfangen werden. Ein Fahrspurgraph kann einen Satz von beanspruchten Wegen aus demselben Fahrspurbündel enthalten und einen Satz von Ego-Wegen 352 und einen Satz von Konkurrenten-Wegen 354 umfassen. Die Ego-Wege 352 können aus den Ausgaben eines oder mehrerer neuronaler Netze oder anderer maschineller Lernmodelle, einer Karte und/oder Fahrzeugspuren empfangen oder erzeugt werden. Beispielsweise und ohne Einschränkung können die hierin beschriebenen maschinellen Lernmodelle jede Art von maschinellem Lernmodell umfassen, wie ein oder mehrere maschinelle Lernmodelle unter Verwendung von linearer Regression, logistischer Regression, Entscheidungsbäumen, Support-Vektor-Maschinen (SVM), Naive Bayes, k-nearest neighbor (Knn), K-means-Clustering, Random Forest, Dimensionalitätsreduktionsalgorithmen, Gradient-Boosting-Algorithmen, Markov-Zufallsfelder, neuronalen Netzen (z. B., Autoencoder, Faltungsalgorithmen, rekurrente Algorithmen, Perzeptronen, Long/Short Term Memory (LSTM), Hopfield, Boltzmann, Deep Belief, Deconvolutional, Generative Adversarial, Liquid State Machine usw.) und/oder andere Arten von maschinellen Lernmodellen.The lane recorder 350 is generally responsible for receiving one or more lane graphs as input to the queu engine 300 . The lane graphs may be received in response to approaching and/or detecting a give-way scenario. A lane graph may contain a set of claimed paths from the same lane cluster and may include a set of ego paths 352 and a set of competitor paths 354 . The ego paths 352 may be received or generated from the output of one or more neural networks or other machine learning models, a map, and/or vehicle tracks. For example and without limitation, the machine learning models described herein may include any type of machine learning model, such as one or more machine learning models using linear regression, logistic regression, decision trees, support vector machines (SVM), naive Bayes, k-nearest neighbor (Knn), K-means clustering, random forest, dimensionality reduction algorithms, gradient boosting algorithms, Markov random fields, neural networks (e.g., autoencoder, convolution algorithms, recurrent algorithms, perceptrons, long/short term memory (LSTM) , Hopfield, Boltzmann, Deep Belief, Deconvolutional, Generative Adversarial, Liquid State Machine, etc.) and/or other types of machine learning models.

Die Ego-Wege 352 können im Ensemble zu einem neuen Fahrspurgraphen verschmolzen werden. Die Fahrspurgraphen können in einer Anordnung von Fahrspurgraphen strukturiert sein, was die Flexibilität bietet, jede beliebige Kombination von Fahrspurgraphen zu verwenden. Einer oder mehrere der Konkurrenten-Wege 354 können sich mit einem oder mehreren der Ego-Wege 352 an einem oder mehreren Konkurrenzpunkten überschneiden. Ein bestimmter Konkurrenzpunkt kann als einer von zwei primären Konkurrenzpunkttypen klassifiziert werden: Kreuzungskonkurrenzpunkte oder Einmündungskonkurrenzpunkte. Bei Kreuzungskonkurrenzen kann sich ein Ego-Weg beispielsweise mit einem Konkurrenten-Weg an einem einzigen Punkt (oder in einer kleinen Nachbarschaft von Punkten) kreuzen, ohne darauf beschränkt zu sein. Bei Einmündungskonkurrenzpunkten kann ein Ego-Weg auf einen Konkurrenten-Weg treffen und sich für mindestens ein Segment des Konkurrenten-Wegs mit diesem verbinden (oder umgekehrt). Die Konkurrenten-Wege 354 können aus Ausgaben eines oder mehrerer neuronaler Netze oder anderer maschineller Lernmodelle, einer Karte oder eine Kreuzungsanalyse empfangen oder erzeugt werden. Während die Ego-Wege 352 für das Ego-Fahrzeug beanspruchte Wege sind, sind die Konkurrenten-Wege beanspruchte Wege von Fahrzeugen, Fahrrädern, Fußgängern, Straßenbahnen und Zügen oder jedem anderen Akteur im Vorfahrtszenario. Wie die Ego-Wege 352 können auch die Konkurrenten-Wege 354 aus ihren Quellen (die den Quellen der Ego-Wege 352 ähnlich oder gleich sein können) zu einem Ensemble zusammengefügt werden.The ego paths 352 can be merged in the ensemble into a new lane graph. The lane graphs may be structured in an array of lane graphs, providing the flexibility to use any combination of lane graphs. One or more of the competitor paths 354 may intersect with one or more of the ego paths 352 at one or more contention points. A particular contention point can be classified as one of two primary contention point types: intersection contention points or junction contention points. For example, in intersection competition, an ego path may intersect with a competitor path at a single point (or in a small neighborhood of points), but is not limited thereto. At junction contention points, an ego path may meet and join a competitor path for at least one segment of the competitor path (or vice versa). The competitor paths 354 may be received or generated from outputs of one or more neural networks or other machine learning models, a map, or an intersection analysis. While the ego paths 352 are claimed paths for the ego vehicle, the competitor paths are claimed paths by vehicles, bicycles, pedestrians, trams and trains, or any other actor in the right-of-way scenario. Like the ego paths 352, the competitor paths 354 can be assembled from their sources (which may be similar or the same as the sources of the ego paths 352) into an ensemble.

Der Wartegeometrie-Wahrnehmer 302 und der Signal-Wahrnehmer 306 können im Allgemeinen eine „Wartewahrnehmung“ durchführen. Der Wartegeometrie-Wahrnehmer 302 empfängt verschiedene geometriebezogene Eingaben (als Reaktion auf das Identifizieren und/oder Erkennung des Ego-Fahrzeugs, das sich einem Vorfahrtszenario nähert) und erzeugt eine Wartegeometrie für die Ausgabe (z. B. die Wartegeometrie 200 der 2). So kann der Wartegeometrie-Wahrnehmer 302 eine Wartegeometrie (z. B. die Ego-Wartegeometrie 312) für jeden Ego-Weg des Satzes der Ego-Wege 352 erzeugen. Ebenso kann der Wartegeometrie-Wahrnehmer 302 eine Wartegeometrie (z. B. die Konkurrenten-Wartegeometrie 314) für jeden Konkurrenten-Weg des Satzes von Konkurrenten-Wegen 354 erzeugen. Ebenso empfängt der Signalwahrnehmer 306 verschiedene signalbezogene Eingaben (als Reaktion auf das Identifizieren und/oder Erfassung des Ego-Fahrzeugs, das sich einem Vorfahrtszenario nähert) und erzeugt ein Signal zur Ausgabe.The waiting geometry perceiver 302 and the signal perceiver 306 may generally perform a "waiting perception". The waiting geometry perceiver 302 receives various geometry-related inputs (in response to identifying and/or recognizing the ego vehicle approaching a right-of-way scenario) and generates a waiting geometry for the output (e.g., the waiting geometry 200 of FIG 2 ). Thus, the waiting geometry perceiver 302 may generate a waiting geometry (eg, ego waiting geometry 312 ) for each ego path of the set of ego paths 352 . Likewise, the queuing geometry perceiver 302 may generate a queuing geometry (e.g., competitor queuing geometry 314 ) for each competitor path of the set of competitor paths 354 . Likewise, the signal perceiver 306 receives various signal-related inputs (in response to identifying and/or detecting the ego vehicle approaching a right-of-way scenario) and generates a signal for output.

Eine Wartegeometrie (z. B. die Ego-Wartegeometrie 312 oder die Konkurrenten-Wartegeometrie 314) kann eine Geometrie und Metadaten enthalten, die sich ergeben, wenn zusätzliche Informationen über Wartebedingungen auf den Fahrspurgraphen angewendet werden. Die Wartegeometrie kann sich auf einen Ego-Weg (z. B. eine Einfahrtslinie), einen Konkurrenten-Weg (z. B. einen Konkurrentenbereich) oder auf einen Hintergrundkontext (z. B. die Innenfläche einer Kreuzung oder das Vorhandensein einer Einfahrtslinie) beziehen. Wie im Zusammenhang mit mindestens der Wartegeometrie 200 der 2 erörtert, kann eine bestimmte Wartegeometrie Feld-Wert-Paare enthalten für: Einfahrts- und Ausfahrtslinien (sowohl für Ego-Wege als auch für Konkurrenten-Wege), Einfahrts- und Ausfahrtsbereiche für Konkurrenten (sowohl für Ego-Wege als auch für Konkurrenten-Wege), Kreuzungseinfahrtslinie und Innenfläche (als Teil des allgemeinen Kontexts einer Wartegruppe), Konkurrenzpunkte zwischen einem Ego-Weg und einem Konkurrenten-Weg (optionale explizite Codierung eines der Kreuzungs- oder Einmündungspunkte zwischen Wegen). Eine Wartegeometrie kann ein Feld-Wert-Paar für eine im allgemeinen Kontext angewandte Geschwindigkeitsbegrenzung enthalten (die als zwischen der Einfahrts- und der Ausfahrtslinie anwendbar betrachtet wird). Der Wert für jedes dieser Felder kann als ungültig codiert werden, um die Codierung von Wartebedingungen zu ermöglichen, bei denen die Felder für das Vorfahrtszenario nicht gelten (z. B. weist eine Ampel an einer Autobahnauffahrt hat nur einen Ego-Weg und eine Einfahrtlinie, aber keine Ausfahrtlinie, keine Gegenfahrbahn und keine Innenfläche auf). Ein weiteres Beispiel ist die Codierung einer neuen Geschwindigkeitsbegrenzung durch eine Wartegruppe, die nur eine Einfahrtslinie und eine Geschwindigkeitsbegrenzung im Gesamtkontext enthält, während alles andere auf ungültig gesetzt ist. Die Ausfahrtslinie kann dann als unendlich oder bis auf weiteres interpretiert werden, und ähnlich verhält es sich mit anderen Eigenschaften.A queuing geometry (e.g., ego queuing geometry 312 or competitor queuing geometry 314) may include geometry and metadata that result when additional information about queuing conditions is applied to the lane graph. The waiting geometry may refer to an ego path (e.g., an entry line), a competitor path (e.g., a competitor area), or to a background context (e.g., the interior surface of an intersection or the presence of an entry line). . As related to at least Waiting Geometry 200 of the 2 discussed, a particular waiting geometry may contain field-value pairs for: entry and exit lines (for both ego and competitor paths), entry and exit areas for competitors (for both ego and competitor paths). ), intersection entry line and interior surface (as part of the general context of a queuing group), points of contention between an ego path and a competitor path (optional explicit coding of one of the crossing or junction points between paths). A waiting geometry may contain a field-value pair for a speed limit applied in the general context (considered applicable between the entry and exit lines). The value for each of these fields can be coded as invalid to allow coding of wait conditions where the fields do not apply to the right of way scenario (e.g., a traffic light at a freeway entrance has only an ego lane and an entry line, but no exit line, no oncoming lane and no interior surface). Another example is the coding of a new speed limit by a queuing group that only contains an entry line and a speed limit in the overall context, while everything else is set to invalid. The exit line can then be interpreted as infinite or until further notice, and similarly with other properties.

Ein Wert für das Einfahrtslinie-Feld für einen Ego-Weg kann den Haltepunkt des vom Ego-Fahrzeug beanspruchten Wegs für mehrere mögliche Vorfahrtsverhaltensweisen codieren. Solche Einfahrtslinien können auch den Beginn des allgemeinen Konkurrenzbereichs codieren, der von der Ausfahrtslinie abgeschlossen wird, die angeben kann, welches Segment des Ego-Wegs geräumt werden muss, um diese Wartegruppe von Wartebedingungen zu räumen. Der Bereich der Innenfläche kann die Innenfläche einer Kreuzung als polygonale Fläche darstellen. Der Bereich der Innenfläche kann das Wegsegment zwischen der Einfahrts- und der Ausfahrtslinie abdecken (manchmal wird die Ausfahrtslinie nach außen verlegt, z. B. über einen Fußgängerüberweg, obwohl die Innenfläche nicht betroffen ist). Die Einfahrtsbereiche und die Innenfläche können einen Kontext für die Analyse anderer Akteure liefern. Dies kann durch eine Hindernis-im-Weg-Analyse (OIPA) ermöglicht werden, die Akteure Wegen und Bereichen zuordnet (in einer sich nicht gegenseitig ausschließenden Weise). Die Geometrie von Ego- und Konkurrenten-Wegen sowie der Konkurrenzpunkt können vom Vorfahrtsplaner verwendet werden, um die Vorfahrt nach Bedarf zu implementieren. Die Wartegeometrie kann auch verwendet werden, um zu bestimmen, welche Regeln gelten.A value for the line-of-entry field for an ego path may encode the stopping point of the path claimed by the ego vehicle for several possible right-of-way behaviors. Such entry lines may also encode the beginning of the general contention area, terminated by the exit line, which may indicate which segment of the ego path must be cleared in order to clear that queuing group of queuing conditions. The area of the inner surface can represent the inner surface of an intersection as a polygonal surface. The area of the interior surface can cover the path segment between the entry and exit lines (sometimes the exit line is moved outwards, e.g. via a pedestrian crossing, although the interior surface is unaffected). The driveway areas and interior surface can provide context for analysis by other actors. This can be made possible through an Obstacle-in-the-Path Analysis (OIPA) that maps actors to pathways and areas (in a non-mutually exclusive manner). The geometry of ego and competitor paths, as well as the competition point, can be used by the right-of-way planner to implement the right-of-way as needed. The wait geometry can also be used to determine which rules apply.

Ein Konkurrenzpunkt kann einen expliziten geometrischen Punkt darstellen (z. B. einen Schnittpunkt eines Ego-Wegs und eines Konkurrenten-Wegs). In einigen Ausführungsformen kann ein Konkurrenzpunkt als abstraktes Konzept betrachtet werden, das die besondere Konkurrenz darstellt, auf die sich ein Warteelement bezieht und deren Zustand es codiert. In diesem letztgenannten Sinne kann der Konkurrenzzustand an einem Konkurrenzpunkt die Nutzdaten des Konkurrenzzustandsauflösungsprozesses sein (wie er von der Konkurrenzzustandslöser 340 durchgeführt wird). Der Konkurrenzzustand kann für jeden Konkurrenzpunkt die Bestimmung liefern, „in welcher Weise das Ego-Fahrzeug in Bezug auf diesen Konkurrenzpunkt die Vorfahrt gewähren oder nicht die Vorfahrt gewähren sollte. In diesem Sinne kann der Konkurrenzpunkt bei einer Wahl des Ego-Wegs durch Zugriff auf einen Konkurrenten-Weg und über diesen Konkurrenten-Weg auch die tatsächlichen Konkurrenten und die Art und Weise angeben, wie das Ego-Fahrzeug in Bezug auf sie vorgehen sollte.A competition point may represent an explicit geometric point (e.g., an intersection of an ego path and a competitor path). In some embodiments, a contention point can be viewed as an abstract concept that represents the particular contention that a wait element refers to and whose state it encodes. In this latter sense, the contention state at a contention point may be the payload of the contention state resolution process (as performed by the contention state solver 340). The contention state can provide, for each contention point, the determination of "how the ego vehicle should yield or not yield the right-of-way with respect to that contention point. In this sense, when choosing the ego path, by accessing a competitor path and through that competitor path, the contention point may also indicate the actual competitors and how the ego vehicle should act in relation to them.

Die Wartegeometrie kann in einer oder mehreren Wartegruppen zusammengefasst werden, wobei die semantische Bedeutung einer Wartegruppe darin besteht, dass alle Wartebedingungen in dieser Gruppe gemeinsam zu berücksichtigen sind und insbesondere gemeinsam geklärt werden können, so dass das Ego-Fahrzeug nicht dazwischen steht (z. B. darf das Ego-Fahrzeug nicht am Ende einer Linkskurve auf Fußgänger warten, während sich das Ego-Fahrzeug noch in der Spur des Gegenverkehrs befindet, so dass der Gegenverkehr zusammen mit dem Fußgängerüberweg in derselben Wartegruppe berücksichtigt werden muss).The waiting geometry can be summarized in one or more waiting groups, with the semantic meaning of a waiting group being that all waiting conditions in this group have to be taken into account together and, in particular, can be clarified together, so that the ego vehicle does not stand in the way (e.g The ego vehicle must not wait for pedestrians at the end of a left turn while the ego vehicle is still in the lane of oncoming traffic, so the oncoming traffic must be considered together with the pedestrian crossing in the same waiting group).

Der Kartograph 304 kann als Reaktion auf das Identifizieren und/oder Erfassen des Ego-Fahrzeugs, das sich einem Vorfahrtszenario nähert, Kartendaten empfangen (z. B. mindestens basierend auf der Kartenlokalisierung). Die Kartendaten können eine oder mehrere 2D- oder 3D-Karten der Umgebung des bevorstehenden Vorfahrtszenarios enthalten. Der Signalwahrnehmer 306 empfängt signalbezogene Daten als Reaktion auf das Identifizieren und/oder Erfassen des Ego-Fahrzeugs, das sich einem Vorfahrtszenario nähert. Die signalbezogenen Daten können Signaldaten enthalten, Anzeigen von Ampeln und Verkehrsschilder, z. B. Stoppschilder, Vorfahrtsschilder, wie Hauptstraßenschilder, sowie Geschwindigkeitsschilder codieren. Die Signaldaten können auch die von einem oder mehreren neuronalen Netzen oder anderen maschinellen Lernmodellen erzeugten Ausgaben codieren, z. B. ob es sich bei einer Kreuzung um eine Kreuzung mit Verkehrszeichen, eine Kreuzung mit Stoppschildern, eine unmarkierte Kreuzung, einen Kreisverkehr, eine Autobahnauffahrt, eine Mautstelle oder einen anderen Typ handelt. Signaldaten können Anzeigen von Polizisten, Warnposten oder Straßenarbeiter enthalten, die den Verkehr regeln, Schranken, die den Weg versperren, und Ampeln an einem Fußgängerüberweg. Die Signaldaten können Anzeigen von Verkehrsleitkegeln, Zusammenführungspfeilen und alle temporären Elemente enthalten, die auf der Straße aufgestellt werden, um den Verkehr umzuleiten. In verschiedenen Ausführungsformen kann der Signalwahrnehmer 306 das Vorhandensein eines Signals und dessen Zustand unterscheiden. Der Signalwahrnehmer 306 kann eine Live-Signalwahrnehmung durchführen, die sowohl das Vorhandensein als auch den Zustand eines Signals liefert (z. B. es gibt eine Ampel an diesen 2D- oder 3D-Koordinaten und ihr aktueller Zustand ist gelb). In einigen Ausführungsformen kann eine Karte (z. B. eine vom Kartographen 304 empfangene Karte) Informationen über das wahrscheinliche Vorhandensein und/oder die Position eines Signals enthalten, wie z. B. das Vorhandensein einer Ampel oder eines Stoppschilds, während der Zustand des Signals, wie z. B. der Zustand einer Ampel, durch Live-Wahrnehmung (oder Infrastruktur-zu-Fahrzeug-Kommunikation) über den Signalwahrnehmer 306 bereitgestellt werden kann. Die Signalerfassung (über den Signalwahrnehmer 306) kann das Vorhandensein, die Art und die räumlichen Eigenschaften eines Signals liefern, z. B. die 3D-Position und das Begrenzungsrahmen einer Ampel oder eines Verkehrszeichens oder eines Polizisten, der den Verkehr erfasst.The mapper 304 may receive map data (e.g., based at least on the map localization) in response to identifying and/or detecting the ego vehicle approaching a right-of-way scenario. The map data may include one or more 2D or 3D maps surrounding the upcoming right-of-way scenario. The signal perceiver 306 receives signal-related data in response to identifying and/or detecting the ego vehicle approaching a right-of-way scenario. The signal-related data may include signal data, traffic light displays and traffic signs, e.g. B. stop signs, give way signs, such as main road signs, and code speed signs. The signal data can also encode the outputs generated by one or more neural networks or other machine learning models, e.g. For example, whether an intersection is an intersection with traffic signs, an intersection with stop signs, an unmarked intersection, a roundabout, a freeway ramp, a toll booth, or some other type. Signal data may include indications of police officers, warning posts or road workers directing traffic, barriers blocking the way, and traffic lights at a pedestrian crossing. The signal data may include indications of traffic cones, merge arrows, and any temporary elements placed on the road to divert traffic. In various embodiments, the signal perceiver 306 can distinguish the presence of a signal and its state. The signal perceiver 306 can perform live signal perception that provides both the presence and state of a signal (e.g., there is a traffic light at those 2D or 3D coordinates and its current state is amber). In some embodiments, a map (e.g., a map received from mapper 304) may include information about the likely presence and/or location of a signal, such as: B. the presence of a traffic light or a stop sign, while the condition of the signal, such. e.g. the status of a traffic light, can be provided by live perception (or infrastructure-to-vehicle communication) via the signal perceiver 306. Signal detection (via the signal perceiver 306) can provide the presence, nature and spatial characteristics of a signal, e.g. For example, the 3D position and bounding box of a traffic light or road sign, or a police officer surveying traffic.

Der Wartegeometrie-Verschmelzer 322 kann die Kartendaten vom Kartographen 304 mit den Geometriedaten (z. B. Warteelemente) vom Wartegeometrie-Wahrnehmer 302 über einen Prozess „verschmelzen“ oder kombinieren, der als Wartegeometrie-Verschmelzung bezeichnet wird. Die Wartegeometrie-Verschmelzung kann optional durchgeführt werden, um verbesserte Geometrieinformationen aus einer Kombination von Live-Wahrnehmung (z. B. Echtzeit-Geometriewahrnehmung, wie sie vom Wartegeometrie-Wahrnehmer 302 durchgeführt wird) und den Karteninformationen (wie sie vom Kartographen 304 empfangen und/oder bereitgestellt werden) zu erhalten. Beispielsweise kann der Wartegeometrie-Wahrnehmer 302 das Vorhandensein einer Kreuzung durch Live-Wahrnehmung (z. B. in Echtzeit) erkennen. Auf einer Karte kann die Kreuzung auch in den Kartendaten vermerkt sein. In einigen Ausführungsformen können die Karten- und Geometriedaten verschmolzen werden, um eine Kreuzung zu instanziieren, wenn sie in einer der Quellen vorhanden ist, und um die Erkennungen zu verknüpfen, wenn sie in beiden Quellen vorhanden sind. In ähnlicher Weise können Einfahrtslinien in Echtzeit erkannt werden (über den Wartegeometrie-Wahrnehmer 302) und/oder in einer Karte bereitgestellt werden (über den Kartographen 304), mindestens basierend auf früheren Kartenströmen, die Live-Erkennungen oder Statistiken über tatsächliche Haltepunkte enthalten. Konkurrenten-Bereiche, Innenflächen, Weggeometrien und Konkurrenzpunkte können live erkannt und in den Kartenstrom eingefügt werden, was zukünftigen Fahrten zugutekommt. Die tatsächlichen Fahrwege (der „De-facto-Fahrspurgraph“) können auch aus mehreren Fahrten gewonnen werden. Daher kann die Wartegeometrie-Verschmelzung mehrere Quellen abgleichen und verknüpfen, um klare Wartegeometrien für weitere Verarbeitungsstufen zu liefern.The wait geometry blender 322 may "fuse" or combine the map data from the mapmaker 304 with the geometry data (e.g., wait elements) from the wait geometry perceiver 302 via a process referred to as wait geometry blending. The wait geometry blending may optionally be performed to obtain enhanced geometry information from a combination of live perception (e.g., real-time geometry perception as performed by the wait geometry perceiver 302) and the map information (as received from the mapper 304 and/or or to be provided). For example, the waiting geometry perceiver 302 may detect the presence of an intersection through live (e.g., real-time) perception. On a map, the intersection may also be noted in the map data. In some embodiments, the map and geometry data may be merged to instantiate an intersection when present in one of the sources and to associate the detections when present in both sources. Similarly, entry lines may be detected in real-time (via wait geometry perceiver 302) and/or provided in a map (via mapper 304) based at least on past map streams containing live detections or statistics of actual stops. Competitor areas, interior surfaces, path geometries and competition points can be recognized live and inserted into the map stream, which benefits future trips. The actual routes (the “de facto lane graph”) can also be obtained from multiple trips. Therefore, wait geometry merging can match and combine multiple sources to provide clear wait geometries for further processing stages.

Der Signal-Verschmelzer 328 kann die Kartendaten des Kartographen 304 mit den Signaldaten des Signalwahrnehmers 306 über einen Prozess „verschmelzen“ oder kombinieren, der als Signalverschmelzung bezeichnet wird. Die Signalverschmelzung kann eine Option zum Abgleich von Informationen aus der Live-Wahrnehmung (über die Echtzeit-Wahrnehmung des Signalwahrnehmers 306) mit Informationen aus einer Karte (empfangen und/oder bereitgestellt durch den Kartographen 304) bieten, wie beispielsweise die Unterstützung der Live-Wahrnehmung mit einer Bestätigung des Vorhandenseins einer Ampel, eines Schildes oder eines Kreuzungstyps. Ähnlich wie die Geometrieverschmelzung kann die Signalverschmelzung in einigen Ausführungsformen optional sein. Eine solche Signalverschmelzung bietet die Möglichkeit, eine Zustandsschätzung für eine schwer zu erkennende Ampel vorzunehmen, und/oder auch die Ergebnisse der Echtzeit-Signalwahrnehmung.The signal blender 328 may “fuse” or combine the map data from the mapper 304 with the signal data from the signal perceiver 306 via a process referred to as signal fusion. Signal merging may provide an option to match information from the live perception (via the real-time perception of the signal perceiver 306) with information from a map (received and/or provided by the mapmaker 304), such as live perception support with a confirmation of the presence of a traffic light, sign or type of intersection. Similar to geometry merging, signal merging may be optional in some embodiments. Such signal merging offers the possibility to make a state estimation for a hard-to-see traffic light, and/or real-time signal perception results as well.

Der Signalzustandsschätzer 330 ist im Allgemeinen für einen Prozess verantwortlich, der als Signalzustandsschätzung bezeichnet wird. Die Signalzustandsschätzung kann die Zustände von Ampeln, die Gesten eines verkehrslenkenden Polizisten, das „Stopp“- oder „Langsam“-Zeichen eines Warnpostens, den Zustand der Ampel an einem Fußgängerüberweg oder die Position einer den Verkehr blockierenden Schranke bestimmen und/oder bereitstellen. Das Ergebnis ist in der Regel eine Auswahl aus einer Aufzählungsklasse (z. B. grün/gelb/rot) oder mehrere in Kombination.The signal state estimator 330 is generally responsible for a process referred to as signal state estimation. The signal state estimation can determine and/or provide the states of traffic lights, the gestures of a traffic police officer directing traffic, the "stop" or "slow down" sign of a warning post, the state of the traffic light at a pedestrian crossing, or the position of a barrier blocking traffic. The result is usually a selection from an enumeration class (e.g. green/yellow/red) or a combination of several.

Der Geometrie-Klassifikator 324 ist im Allgemeinen für eine Geometrieklassifizierung zuständig. Die Geometrieklassifizierung kategorisiert Wartegeometrien in diskrete Klassen. Beispielsweise kann der Geometrie-Klassifikator 324 sowohl einen Ego-Weg (z. B. wie in der Ego-Wartegeometrie 312 codiert) als auch einen Konkurrenten-Weg (z. B. wie in der Konkurrenten-Wartegeometrie 314 codiert) in Klassifizierungen einordnen, wie z. B: „links abbiegen“, „geradeaus“, „rechts abbiegen“, „wenden“ und dergleichen. Diese Klassifizierung kann durchgeführt werden, um den Weg zu standardisieren, so dass allgemein gültige Regeln wie „Rechtsabbiegen bei Rot ist in Manhattan nicht erlaubt“ auf den Weg im Prozess zur Auflösung des Konkurrenzzustands angewendet werden können, der von der Konkurrenzzustandslöser 340 durchgeführt wird. Um eine solche Regel anzuwenden, kann der Weg in eine Klassifikation eingeordnet werden, die eine gemeinsame Sprache enthält (z. B. „rechts abbiegen“). Man beachte, dass eine solche Klassifizierung vom Kontext anderer Wege profitieren kann (z. B. könnte eine relativ gerade Form eine Rechtskurve sein, wenn sie der äußerste rechte Weg ist, während sie es nicht sein könnte, wenn es zusätzlich eine sehr scharfe Rechtskurve gibt). Die Geometrieklassifizierung kann auch für ein Warteelement bestimmen, ob das Ego oder der Konkurrent von rechts kommt.The geometry classifier 324 is generally responsible for geometry classification. Geometry classification categorizes waiting geometries into discrete classes. For example, geometry classifier 324 may classify both an ego path (e.g., as encoded in ego waiting geometry 312) and a competitor path (e.g., as encoded in competitor waiting geometry 314), such as B: "turn left", "straight ahead", "turn right", "turn around" and the like. This classification may be performed to standardize the path so that common rules such as "right turns on red are not allowed in Manhattan" can be applied to the path in the contention resolution process performed by the contention solver 340 . To apply such a rule, the trail can be placed in a classification that contains a common language (e.g., "turn right"). Note that such a classification can benefit from the context of other paths (e.g. a relatively straight shape might be a right turn if it is the rightmost path, while it might not be if there is also a very sharp right turn ). The geometry classification can also determine for a waiting element whether the ego or the competitor comes from the right.

Die Geometrieklassifizierung kann auch auf Wegpaare angewendet werden. So kann der Geometrie-Klassifikator 324 beispielsweise feststellen, ob sich zwei Wege (z. B. ein Ego-Weg und ein Konkurrenten-Weg) kreuzen oder zusammenlaufen (wenn dies nicht explizit im Fahrspurgraphen angegeben ist), wo die Konkurrenzpunkte liegen und welche Wege von rechts kommen (um die in Europa und in einigen Fällen in den USA üblichen Rechts-vor-Links-Vorfahrtsregeln zu unterstützen). Dazu kann am Konkurrenzpunkt geprüft werden, ob die Richtungsvektoren der beiden Wege eindeutig nicht parallel sind, und wenn ja, das Vorzeichen des 2D-Vektor-Kreuzprodukts zwischen ihnen (das Vorzeichen der Determinante, die auf die 2x2-Matrix angewandt wird, die aus dem Ego-Weg-Richtungsvektor, der als oberste Zeile gestapelt ist, und dem Konkurrenten-Weg-Richtungsvektor als unterste Zeile gebildet wird). Ist das Vorzeichen positiv, kommt der Konkurrent von rechts. Man beachte, dass diese Definition bedeuten kann, dass bei einem Linksabbiegen des Ego durch den Gegenverkehr davon ausgegangen wird, dass der Gegenverkehr von rechts kommt (da dies am Konkurrenzpunkt der Fall ist). Wenn die Richtungsvektoren am Kollisionspunkt nahezu parallel sind (typischerweise, weil es sich um eine Einmündung handelt), können die Vektoren an den entsprechenden Einfahrtslinien verwendet werden.)Geometry classification can also be applied to path pairs. For example, the geometry classifier 324 can determine whether two paths (e.g., an ego path and a competitor path) intersect or converge (if not explicitly stated in the lane graph), where the contention points are, and which paths Coming from the right (to support the right-before-left right-of-way rules common in Europe and in some cases the US). To do this, at the contention point, one can check whether the direction vectors of the two paths are clearly not parallel, and if so, the sign of the 2D vector cross product between them (the sign of the determinant applied to the 2x2 matrix obtained from the Ego way direction vector stacked as the top row and the concurrency renten-path direction vector is formed as the bottom line). If the sign is positive, the competitor comes from the right. Note that this definition can mean that when the ego makes a left turn through oncoming traffic, the oncoming traffic is assumed to be coming from the right (since this is the case at the point of competition). If the directional vectors are nearly parallel at the point of collision (typically because it is an intersection), the vectors at the corresponding entry lines can be used.)

Der Geometrie-Klassifikator 324 kann auch bestimmen oder aus Live-Wahrnehmungsquellen (z. B. dem Wartegeometrie-Wahrnehmer 302) konsolidieren, ob ein Konkurrenten-Weg von einer „Stichstraße“ (z. B. einer Einfahrt, einer Tankstelle oder einem Parkplatz) stammt oder „deutlich größer“ oder „deutlich kleiner“ als eine „Stichstraße“ ist. Das heißt, eine Straße kann durch den Geometrieklassifizierungsprozess klassifiziert werden (z. B. als „Stichstraße“). Der Geometrie-Klassifikator 324 kann prädikatsähnliche Klassifizierungen liefern, die die Anwendung logischer Regeln auf eine kohärente Sammlung von Einfahrtsvariablen ermöglichen. Einige dieser Informationen können über eine Wartegeometrie-Datenstruktur vielmehr direkt aus Ausgaben eines oder mehrerer neuronaler Netze oder anderer maschineller Lernmodelle stammen, anstatt eine geometrische Bestimmung zu sein.Geometry classifier 324 may also determine or consolidate from live perception sources (e.g., waiting geometry perceiver 302) whether a competitor's path originates from a "cul-de-sac" (e.g., a driveway, gas station, or parking lot). originates or is "significantly larger" or "significantly smaller" than a "cul-de-sac". That is, a road can be classified (e.g., as a "cul-de-sac") by the geometry classification process. The geometry classifier 324 can provide predicate-like classifications that allow the application of logical rules to a coherent collection of entry variables. Rather, some of this information may come directly from outputs of one or more neural networks or other machine learning models via a wait geometry data structure, rather than being a geometric determination.

Der Geometrie-Klassifikator 324 kann auch bestimmen, ob ein Weg eine Eigenschaft hat, wie z. B., aber nicht beschränkt auf: „kreuzt eine Linie“, was eine explizite Bestimmung sein kann, ob der Weg eine Linie kreuzt (z. B. kann ein Weg als „kreuzt eine Linie“ klassifiziert werden). Eine solche Klassifizierung kann als Anhaltspunkt für einige Regeln verwendet werden, wenn die Priorität unklar ist, wie zu entscheiden ist. Wenn z. B. zwei konkurrierende und ansonsten gleichwertige Strecken miteinander konkurrieren, aber eine eine Linie kreuzt und die andere nicht, kann die Strecke, die keine Linie kreuzt, Vorrang haben. Ein Weg, der nach links in den Gegenverkehr abbiegt, kann mit den Eigenschaften „kreuzt eine gestrichelte Linie“, „kreuzt eine durchgezogene Linie“ oder „kreuzt eine durchgezogene doppelt gelbe Linie“ klassifiziert werden, so dass länderspezifische Regeln angewendet werden können, um zu bestimmen, ob dies erlaubt ist oder nicht. Der Geometrie-Klassifikator 324 kann auch eine Variable, wie z. B. „Kreuzung“, für eine Wartegruppe (und damit für jedes Warteelement) auf wahr oder falsch setzen. Dies kann auch dazu verwendet werden, bestimmte Regeln auszulösen (z. B. um zu unterscheiden, wie ein Fußgängerüberweg behandelt wird, wenn er an eine Kreuzung angrenzt und wenn er nicht angrenzt).The geometry classifier 324 can also determine whether a path has a property such as B., but not limited to: "crosses a line", which can be an explicit determination of whether the path crosses a line (e.g., a path can be classified as "crosses a line"). Such a classification can be used as a guide for some rules when the priority is unclear how to decide. if e.g. For example, where two competing and otherwise equal routes are competing but one crosses a line and the other does not, the route that does not cross any lines may have priority. A lane turning left into oncoming traffic can be classified with the properties "crosses a dashed line", "crosses a solid line", or "crosses a solid double yellow line" so that country-specific rules can be applied to determine whether this is allowed or not. The geometry classifier 324 can also be a variable such as B. "intersection", set to true or false for a waiting group (and thus for each waiting element). This can also be used to trigger certain rules (e.g. to distinguish how a pedestrian crossing is treated when it is adjacent to an intersection and when it is not).

Der Geometrie-Assoziator 326 kann Signale mit Wegen durch einen Prozess verknüpfen, der als Geometrieassoziierung bezeichnet wird. Die Geometriezuordnung bestimmt, welche Signale auf einen Weg zutreffen. Damit können Fragen beantwortet werden wie: „Ist diese Ampel nahe genug an diesem Weg, um für ihn zu gelten? Ist diese Ampel die nächstgelegene/relevanteste dieses Typs für diesen Weg? Ist dieses Zeichen für diesen Weg bestimmt?“ Bei der Assoziation von Ampel und Weg kann es schwierig sein, diese von den Regeln zu trennen, da es beispielsweise schwierig sein kann, zu wissen, ob eine Ampel für einen Linksabbieger gilt, und dann leuchtet ein grüner Pfeil auf, der die Mehrdeutigkeit auflöst. Man beachte auch, dass diese Analyse oft davon profitiert, dass alle Signale und Wege gemeinsam betrachtet werden. So kann beispielsweise eine nach rechts versetzte Ampel in einem Fall, in dem es keinen anderen Weg gibt, für einen Ego-Weg gelten, in einem anderen Fall, in dem es einen Weg weiter rechts gibt, jedoch nicht. Ebenso kann eine nach rechts versetzte Ampel in einem Fall, in dem es keine andere Ampel gibt, auf einen Ego-Weg zutreffen, in einem anderen Fall, in dem es eine Ampel genau über dem Weg gibt, jedoch nicht. Daher kann die Geometrieassoziation die gesamte Szene sowie bei Bedarf auch Signalzustände (oder sogar ursprüngliche Sensordaten) berücksichtigen. Aus demselben Grund kann die Architektur es ermöglichen, dass die vom Geometrie-Klassifikator 324 durchgeführte Geometrieklassifizierung und die vom Geometrie-Assoziator 326 durchgeführte Geometrieassoziation gemeinsam ablaufen und Zugang zu Wartegeometrie, Signalen und sogar ursprünglichen Sensordaten haben. In diesem Sinne kann der Prozess Verbindungen zwischen Signalen wie Ampeln und Schildern und Wegen zuordnen. In mindestens einer Ausführungsform kann die Geometriezuordnung zunächst prüfen, ob sich eine Ampel oder ein Schild überhaupt in einer Entfernung befindet, die eine Verbindung zu einem Weg zulässt, und dann, wenn dies der Fall ist, die nächstgelegene (in gewissem Sinne) Ampel oder das nächstgelegene (in gewissem Sinne) Schild jedes zutreffenden Typs finden und eine Prioritätsreihenfolge festlegen (z. B. hat eine Linksabbiegerampel die höchste Priorität für einen Linksabbieger, aber die nächstgelegene reguläre Ampel gilt auch, obwohl sie zweite Priorität hat). Man beachte, dass sich die Zuordnung augenblicklich ändern kann, wenn eine Ampel ihren Zustand ändert und eine Form der Mehrdeutigkeit auflöst.Geometry associator 326 may associate signals with paths through a process referred to as geometry association. Geometry mapping determines which signals apply to a path. This can answer questions like: "Is this traffic light close enough to this path to apply to it?" Is this traffic light the closest/most relevant of this type for this way? Is this sign intended for this way?” The light-way association can be difficult to separate from the rules, for example, it can be difficult to know if a light is for a left turn and then it makes sense green arrow that resolves the ambiguity. Also note that this analysis often benefits from considering all signals and paths together. For example, a traffic light offset to the right may apply to an ego path in one case where there is no other path, but not in another case where there is a path further to the right. Likewise, a traffic light offset to the right may apply to an ego path in one case where there is no other traffic light, but not in another case where there is a traffic light directly over the path. Therefore, the geometry association can take into account the entire scene, as well as signal states (or even original sensor data) if needed. For the same reason, the architecture may allow the geometry classification performed by geometry classifier 324 and the geometry association performed by geometry associator 326 to coexist and have access to waiting geometry, signals, and even original sensor data. In this sense, the process can map connections between signals such as traffic lights and signs and paths. In at least one embodiment, geometry mapping may first check whether a traffic light or sign is at all within a distance that allows connection to a path, and then, if so, the nearest (in a sense) traffic light or that find the closest (in a sense) sign of each applicable type and establish a priority order (e.g. a left-turn light has the highest priority for a left-turn, but the closest regular light also applies, although it has second priority). Note that the mapping can change instantaneously when a traffic light changes state and resolves some form of ambiguity.

Die Ausgaben des Wartegeometrie-Verschmelzers 322, des Kartographen 304, des Signalzustandsschätzers 330, des Geometrie-Klassifikators 324, des Geometrie-Assoziators 326 und des anderen Sensordatenempfängers 308 können (als Eingaben) in den Konkurrenzzustandslöser 340 eingespeist werden. Der Konkurrenzzustandslöser 340 kann einen Prozess durchführen, der als Konkurrenzzustands-Auflösungsprozess bezeichnet wird. Das Ziel des KonkurrenzzustandsAuflösungsprozesses kann darin bestehen, einen Konkurrenzzustand (z. B. den Konkurrenzzustand 318) für das Warteelement 310 (und/oder andere Warteelemente) bereitzustellen. Der Konkurrenzzustand 318 des Warteelements 310 kann eine Anweisung an den Vorfahrtsplaner darüber sein, in welcher Weise das Ego-Fahrzeug in Bezug auf dieses Warteelement Vorfahrt gewähren oder die Vorfahrt wahrnehmen sollte, und zwar als eine Frage der Regel, der Erwartung, der formellen oder informellen Konvention oder Norm. In einigen nicht einschränkenden Ausführungsformen gibt der Konkurrenzzustand 318 möglicherweise nicht an, was in dem Vorfahrtszenario tatsächlich geschieht, was in dem Vorfahrtszenario physikalisch möglich ist oder ob das Ego-Fahrzeug gezwungen werden kann, die Vorfahrt zu lassen, obwohl es in dem Vorfahrtszenario (z. B. einem Kreuzungs-Vorfahrtszenario oder einem EinmündungsVorfahrtszenario) die Vorfahrt hat. Vielmehr kann der Konkurrenzzustand 318 angeben, was gemäß den Konventionen geschehen sollte. Es kann in der Verantwortung des Vorfahrtsplaners liegen, das Gewähren der Vorfahrt tatsächlich zu implementieren, und zwar in dem Sinne, dass er prüft, was passieren sollte (z. B. wie im Konkurrenzzustand 318 codiert), ob das Ego-Fahrzeug tatsächlich in der Lage ist, anzuhalten und diese Anweisung zu befolgen, und ob die anderen Akteure (z. B. die Konkurrenten des Vorfahrtszenarios) ihre erwarteten Vorfahrtspflichten zu erfüllen scheinen, und entsprechende Maßnahmen ergreifen. Mit anderen Worten kann der Vorfahrtsplaner feststellen, dass obwohl der Zustand Vorfahrtsberechtigt lautet, ein Konkurrent nicht die Vorfahrt gewährt, (wobei im Wesentlichen „Hupen angemessen“ erfasst wird), und beschließen, die Vorfahrt zu gewähren, obwohl dies nicht der Fall sein sollte. Der Vorfahrtsplaner kann ein Vorfahrtsverhalten implementieren, das alle Konkurrenzen in einer Wartegruppe analysiert, bis alle Warteelemente in der Gruppe gemeinsam geklärt werden können. Alle Konkurrenzen in der Wartegruppe können gemeinsam erfüllt werden, d. h. die restriktivste Konkurrenz kann das erwartete Vorfahrtsverhalten des Ego-Fahrzeugs bestimmen. Wenn beispielsweise ein Zustand der Wartegruppe „Vorfahrt gewähren“ und ein anderer „Anhalten an der Einfahrt“ lautet, kann das Ego-Fahrzeug an der Einfahrtslinie bleiben. Der Konkurrenzzustand 318 kann ähnlich wie der Konkurrenzzustand 210 in 2 sein. Verschiedene mögliche Zustandswerte für den Konkurrenzzustand 318 werden in Verbindung mit dem Konkurrenzzustand 210 erörtert.The outputs of the waiting geometry fuser 322, the mapper 304, the signal state estimator 330, the geometry classifier 324, the geometry associator 326 and the other sensor data receiver 308 can be fed (as inputs) to the contention state solver 340. The contention resolver 340 may perform a process referred to as a contention resolution process. The goal of the contention state resolution process may be to provide a contention state (e.g., contention state 318) for the wait element 310 (and/or other wait elements). The contention state 318 of the wait element 310 may be an instruction to the traffic planner as to how the ego vehicle should yield or yield the right-of-way with respect to that wait element, as a matter of rule, expectation, formal, or informal convention or norm. In some non-limiting embodiments, the contention state 318 may not indicate what is actually happening in the right-of-way scenario, what is physically possible in the right-of-way scenario, or whether the ego vehicle can be forced to yield even though it is in the right-of-way scenario (e.g., B. an intersection priority scenario or a T-junction priority scenario) has the right of way. Rather, the contention state 318 may indicate what should happen according to the conventions. It may be the responsibility of the priority planner to actually implement the priority, in the sense that it checks what should happen (e.g., as encoded in contention state 318) whether the ego vehicle is actually in the able to stop and obey this instruction, and whether the other actors (e.g., the competitors in the give-way scenario) appear to be fulfilling their expected right-of-way obligations and taking appropriate action. In other words, the planner may determine that, even though the state is Right of Way, a competitor is not yielding the right-of-way (essentially capturing "honk appropriately") and decide to yield the right-of-way when it shouldn't. The priority planner can implement a priority behavior that analyzes all contentions in a queue group until all queue items in the group can be resolved collectively. All contentions in the waiting group can be satisfied together, ie the most restrictive contention can determine the expected right-of-way behavior of the ego vehicle. For example, if one state of the queue is "yield" and another is "stop at the entrance," the ego vehicle can stay at the entry line. The contention state 318 can be similar to the contention state 210 in 2 be. Various possible state values for contention state 318 are discussed in connection with contention state 210 .

Der Prozess zur Auflösung des Konkurrenzzustands des Konkurrenzzustandslösers 340 kann mindestens auf grundlegenden „Verkehrsregeln“ (oder „Basisregeln“) beruhen, die von Land zu Land, von Staat zu Staat, von Region zu Region und dergleichen variieren können. Bei den Basisregeln kann es sich um grundlegende logische Regeln handeln, die für die Wartegeometrien (z. B. die Ego-Wartegeometrie 312 und die Konkurrenten-Wartegeometrie 314) und Signale gelten, nachdem sie durch einen Geometrieklassifizierungsprozess (z. B. über den Geometrie-Klassifikator 324) und den Geometrieassoziationsprozess (z. B. über den Geometrie-Assoziator 326) auf den Zustand grundlegender Aufzählungsvariablen reduziert worden sind. Nach diesen Reduktionen kann jedes Warteelement einen wohldefinierten Satz von Geometrieklassen und Signalzuständen aufweisen, die für die Wartegeometrie gelten. Zusätzlich zu den Basisregeln kann der Prozess zur Auflösung von Konkurrenzen auch „Zuordnungsregeln“ verwenden. Eine Zuordnungsregel kann ein Warteelement (z. B. das Warteelement 310) und eine Anordnung von Vorschlagspaaren enthalten, die mit den Konkurrenzzuständen verknüpft sind.The contention state resolver 340 process for resolving the contention state may be based on at least basic “traffic rules” (or “base rules”) that may vary from country to country, state to state, region to region, and the like. The base rules may be basic logical rules that apply to the waiting geometries (e.g., ego waiting geometry 312 and competitor waiting geometry 314) and signals after they are passed through a geometry classification process (e.g., via the geometry classifier 324) and the geometry association process (e.g. via geometry associator 326) have been reduced to the state of basic enumeration variables. After these reductions, each waiting element can have a well-defined set of geometry classes and signal states that apply to the waiting geometry. In addition to the base rules, the contention resolution process may also use "mapping rules". An association rule may include a wait element (e.g., wait element 310) and an array of suggestion pairs associated with the contention states.

Jede Proposition kann von einer beliebigen Anzahl von Signalzuständen abhängig gemacht werden (keine Abhängigkeit von einem Signalzustand ist ebenfalls zulässig). Der Konkurrenzzustand und/oder die zugehörige Proposition kann mit dem angegebenen Konkurrenzzustand gepaart werden, wenn die Proposition als wahr bewertet wird. Die Semantik der Abbildungsvorschrift kann darin bestehen, dass jede der Propositionen der Reihe nach ausgewertet wird und die erste Proposition, die als wahr ausgewertet wird, den Konkurrenzzustand definiert. Der Zustand, der bereits im Warteelement enthalten ist, kann als Standardkonkurrenzzustand betrachtet werden, der ausgewählt wird, wenn keine der Propositionen als wahr bewertet wird. Der Bedingungsprüfer 342 des Konkurrenzzustandslösers 340 kann im Allgemeinen für die Durchführung solcher Bewertungen und die Verknüpfung von Propositionen zuständig sein.Each proposition can be made dependent on any number of signal states (no signal state dependency is allowed either). The contention state and/or the associated proposition can be paired with the specified contention state if the proposition evaluates to true. The semantics of the mapping rule can be that each of the propositions is evaluated in turn and the first proposition that evaluates to true defines the contention state. The state already contained in the wait element can be regarded as the default contention state, which is selected if none of the propositions evaluate to true. In general, the constraint checker 342 of the contention state solver 340 may be responsible for performing such evaluations and linking propositions.

In mindestens einer Ausführungsform kann der Bedingungsprüfer 342 im Allgemeinen bestimmen, welche Signale gültig oder ungültig (oder aktiv oder inaktiv) sind, mindestens basierend auf einer oder mehreren wahrgenommenen und/oder ermittelten Bedingungen der Umgebung. Beispielsweise können einige Schilder in Abhängigkeit von den Wetterbedingungen (z. B. Regen, Schnee, Nebel, Wind), der Tageszeit, dem Wochentag, dem Vorhandensein anderer Schilder (z. B. können Baustellenschilder andere Schilder verdrängen), dem Fahrzeugtyp des autonomen Fahrzeugs (z. B. Pkw vs. Lkw) usw. gelten oder nicht. Wenn es beispielsweise eine Kartenregel gibt, die eine Bedingung enthält, die nur von Zeit X bis Zeit Y gilt, kann der Bedingungsprüfer 342 verwendet werden, um zu bestimmen und zu markieren, ob die Kartenregel derzeit gilt.In at least one embodiment, the condition checker 342 may generally determine which signals are valid or invalid (or active or inactive) based at least on one or more sensed and/or determined environmental conditions. For example, some signs may change depending on weather conditions (e.g. rain, snow, fog, wind), time of day, day of week, presence of other signs (e.g. construction site signs may displace other signs), autonomous vehicle vehicle type (e.g. car vs. truck) etc. apply or not. For example, if there is a card rule that contains a constraint that only applies from time X to time Y, the constraint checker 342 can be used to determine and flag whether the card rule currently applies.

Ein Kartenregel-Abgleicher 346 ist im Allgemeinen für die Durchführung eines Kartenregel-Abgleichprozesses verantwortlich. Der Kartenregel-Abgleichprozess kann die Kartenregeln nehmen und ihre Komponenten (oder Datenkomponenten) mit den Elementen abgleichen, deren tatsächliches Vorhandensein festgestellt wurde, und Warteelemente in dem Prozess erzeugen. Beispielsweise kann der Kartenregel-Abgleicher 346 Signale und andere Eingaben, die vom Bedingungsprüfer 342 als zutreffend bestimmt wurden, in eine oder mehrere Kartenregeln auflösen. Beispielsweise kann der Kartenregel-Abgleicher 346 bestimmen, dass eine oder mehrere Kartenregeln gelten, wenn ein zugehöriges Ampelsignal grün ist, während der Kartenregel-Abgleicher 346 nicht bestimmen kann, dass die Kartenregel(n) gilt/gelten, wenn das Ampelsignal rot ist (sondern bestimmen kann, dass eine andere Regel gilt). Diese Festlegungen können mindestens darauf beruhen, dass der Kartenregel-Abgleicher 346 die Bedingung(en) kennt, die gemäß den Festlegungen des Bedingungsprüfers 342 tatsächlich gelten (z. B. den Ampelzustand).A card rule matcher 346 is generally responsible for performing a card rule check responsible for the matching process. The card rule matching process can take the card rules and match their components (or data components) to the items that have been determined to actually exist and create wait items in the process. For example, card rule matcher 346 may resolve signals and other inputs determined to be true by constraint checker 342 into one or more card rules. For example, the map rule matcher 346 may determine that one or more map rules apply when an associated traffic light is green, while the map rule matcher 346 may not determine that the map rule(s) apply when the traffic light is red (but determine that another rule applies). At a minimum, these determinations may be based on the map rule matcher 346 knowing the condition(s) that the condition checker 342 has determined actually apply (e.g., the traffic light state).

Um die Fähigkeit zu erhöhen, von gegenseitigen Ausschlussbedingungen zu profitieren und im Allgemeinen eine ganzheitliche Entscheidung zu treffen, kann der vom Kartenregel-Abgleicher 346 durchgeführte Prozess zum Abgleich von Kartenregeln mit einem Prozess beginnen, der eine Übereinstimmung zwischen Wegen, Wartegeometrie und Signalen in der Karte und den Wegen, der Wartegeometrie und den Signalen herstellt, deren tatsächliches Vorhandensein vom Bedingungsprüfer 342 festgestellt wurde. Es ist zu beachten, dass in einigen Fällen diese Entitäten zunächst aus einer Karte stammen können (z. B. kann die Warteelement-Engine 300 so konfiguriert sein, dass der Fahrspurgraphen aus einer Karte empfangen wird, und eine Kartenregel mit einem der gleichen Wege berücksichtigt und prüft, ob sie übereinstimmt), so dass sie den Abgleich „nach Kennungen“ durchführen kann, die bereits während der Verschmelzung von Fahrspurgraphen, Wartegeometrie oder Signalen festgelegt wurden. Um die Flexibilität und Allgemeinheit zu erhöhen, kann der Kartenregel-Abgleicher 346 den Abgleich jedoch auch ohne Verwendung von Informationen aus einer Karte durchführen. Beispielsweise kann der Kartenregel-Abgleicher 346 einen Fahrspurgraphen aus der Live-Wahrnehmung (z. B. über den Wartegeometrie-Wahrnehmer 302) verwenden und eine Kartenregel aus der Karte anwenden, die eine Ampel mit dem Ego-Weg verknüpft, und so architektonische Komplikationen vermeiden, die sich daraus ergeben, dass Kartenidentifizierungsnummern den ganzen Weg durch den Fahrspurgraphen, die Wartegeometrie und die Signale weitergegeben werden müssen. Wenn ein Weg, ein Teil der Wartegeometrie oder ein Signal tatsächlich von einer Karte abgeleitet ist, sollte seine Geometrie identisch sein (oder fast identisch, wenn sie erfolgreich verschmolzen/vermischt wurde), so dass Übereinstimmungen korrekt wiederhergestellt werden sollten. Der Abgleich kann auch mit Elementen übereinstimmen, die nicht exakt identisch sind. So kann beispielsweise erwartet werden, dass ungefähr ähnliche Formen und Platzierungen von Linksabbiegern übereinstimmen (auch hier ist zu beachten, dass bei zwei parallelen Linksabbiegern der Abgleich davon profitiert, dass sie gemeinsam betrachtet werden). So kann dieser Prozess im Wesentlichen einen Abgleich durchführen, der die „Kartenszene“ mit der „tatsächlichen Szene“ abgleicht, die durch eine beliebige Kombination aus Live-Wahrnehmung und Kartenlokalisierung ermittelt wurde. Das Ergebnis kann eine 1:1-Entsprechung zwischen einer Teilmenge der tatsächlichen Objekte und einer Teilmenge der Kartenobjekte sein.To increase the ability to benefit from mutual exclusion conditions and generally make a holistic decision, the map rule matching process performed by the map rule matcher 346 may begin with a process that establishes a match between paths, queuing geometry, and signals in the map and the paths, waiting geometry and signals established by the constraint checker 342 as actually present. Note that in some cases these entities may initially come from a map (e.g., the wait element engine 300 may be configured to receive the lane graph from a map and consider a map rule with one of the same paths and checks if it matches) so that it can perform the matching "by identifiers" already specified during the merging of lane graphs, waiting geometry or signals. However, to increase flexibility and generality, the card rule matcher 346 may perform the matching without using information from a card. For example, the map rule matcher 346 can take a lane graph from live perception (e.g., via the waiting geometry perceiver 302) and apply a map rule from the map that associates a traffic light with the ego path, thus avoiding architectural complications , which result from card identification numbers having to be passed all the way through the lane graph, waiting geometry and signals. If a trail, piece of wait geometry, or signal is actually derived from a map, its geometry should be identical (or nearly identical if successfully merged/blended) so that matches should be recovered correctly. The match can also match items that are not exactly identical. For example, roughly similar shapes and placements of left turns can be expected to match (again, note that if there are two parallel left turns, the match will benefit from being viewed together). So this process can essentially perform a match that matches the “map scene” to the “actual scene” determined by any combination of live perception and map localization. The result can be a 1:1 correspondence between a subset of the actual features and a subset of the map features.

In verschiedenen Ausführungsformen kann jede Kartenregel zu einem Ausfahrtswarteelement führen (z. B. das Warteelement 310 oder ein Vorläufer davon), indem alle Entitäten abgeglichen und alle Signale aufgelöst werden. Viele Kartenregeln können einen gültigen Ego-Weg enthalten (da viele Konkurrenzzustände davon abhängig sind und ohne ihn keinen Sinn ergeben). Wenn dieser Ego-Weg keine Übereinstimmung findet, kann das mehrere Gründe haben. Wenn die Lokalisierung auf bekannte Weise fehlschlägt, können die Zuordnungsregeln nicht verwendet werden und die fehlgeschlagene Lokalisierung kann auf andere Weise behandelt werden. Wenn jedoch die Lokalisierung ungenau ist, könnte dies dazu führen, dass der Ego-Weg nicht übereinstimmt. Eine andere Möglichkeit ist, dass der Ego-Weg entweder in der Karte oder in der tatsächlichen Szene ungenau ist. Eine andere Möglichkeit besteht darin, dass der Weg zu weit entfernt ist oder von der Live-Wahrnehmung verdeckt wird. In diesem Fall kann ein konservativer Ansatz den Ego-Weg in die Szene zwingen. Aus diesem Grund können Ego-Wege aus Kartenregeln, die keine Übereinstimmung gefunden haben, zusammen mit ihrer Wartegeometrie hinzugefügt werden. Dasselbe Verfahren kann auch auf Konkurrenten-Wege angewendet werden. Tatsächlich könnte der gesamte Satz von Warteelementen aus den Kartenregeln separat betrachtet werden, mit Ausnahme der Signale, obwohl die Korrespondenz wichtig sein kann, wenn man die Verschmelzung der Kartenregeln mit den Basisregeln betrachtet, die von der Warteelement-Sicherung 348 durchgeführt wird. Die Signale hingegen müssen möglicherweise abgeglichen werden, um ihren Zustand aufzulösen. Jeder Zustand eines nicht übereinstimmenden Signals kann auf den Zustand „Unbekannt“ gesetzt werden, und der Vorschlag in den Zuordnungsregeln kann diese Möglichkeit berücksichtigen und den entsprechenden Zustand der Konkurrenz zuweisen. Dies kann z. B. bedeuten, dass der Konkurrenzzustand auf Anhalten an der Einfahrt gesetzt wird, wenn der Zustand einer einzelnen Ampel unbekannt ist. Dies kann auch bedeuten, dass eine von mehreren synchronisierten Ampeln verwendet wird, um dasselbe Warteelement aufzulösen, wobei nur dann auf Anhalten an der Einfahrt umgeschaltet wird, wenn alle Ampeln unbekannt sind. In wieder anderen Fällen könnte dies bedeuten, dass beim Linksabbiegen in den Gegenverkehr auf den Am Konkurrenzpunkt Vorfahrt gewähren zurückgegriffen wird, wenn die Ampel mit dem grünen Abbiegepfeil nicht sichtbar ist, aber ein grüner Kreis zu sehen ist und bekannt ist, dass das Abbiegen in diesem Fall immer erlaubt ist (obwohl nicht bekannt ist, ob es geschützt ist oder nicht). Dieses Beispiel ist aggressiv, aber der Entwurf bietet hohe Flexibilität ohne hohe Komplexität (eine andere, weniger flexible Option wäre es, mögliche Zustände aufzulisten und alle möglichen Kombinationen zu nummerieren und nach dem am stärksten einschränkenden Konkurrenzzustand aller Möglichkeiten zu suchen).In various embodiments, each map rule may result in an exit waiting element (e.g., waiting element 310 or a precursor thereof) by matching all entities and resolving all signals. Many map rules may contain a valid ego path (since many competitive states depend on it and make no sense without it). If this ego path does not find a match, there can be several reasons. If the localization fails in a known manner, the mapping rules cannot be used and the failed localization can be handled in other ways. However, if the localization is inaccurate, it could cause the ego path to mismatch. Another possibility is that the ego path is inaccurate either in the map or in the actual scene. Another possibility is that the trail is too far away or obscured by live perception. In this case, a conservative approach can force the ego path into the scene. Because of this, ego paths from map rules that did not find a match can be added along with their wait geometry. The same procedure can also be applied to competitor paths. In fact, the entire set of queuing elements from the card rules could be considered separately, with the exception of the signals, although the correspondence may be important when considering the merging of the card rules with the base rules performed by the queuing element fuse 348. The signals, on the other hand, may need to be reconciled to resolve their state. Any mismatched signal state can be set to the Unknown state, and the proposal in the mapping rules can take this possibility into account and assign the appropriate contention state. This can e.g. B. mean that the contention state is set to stop at the entrance when the state of an individual traffic light is unknown. This can also mean that one of several synchronized traffic lights is used to resolve the same waiting element, switching to stopping at the entrance only when all traffic lights are unknown. In still other cases, this could mean that when turning left into oncoming traffic, when the traffic light with the green turn arrow is not visible, but a green circle can be seen and it is known that the turn is in, the Yield at Competing Point approach is resorted to case is always allowed (although it is not known whether it is protected or not). This example is aggressive, but the design offers high flexibility without high complexity (another, less flexible option would be to list possible states and number all possible combinations and look for the most restrictive contention state of all possibilities).

Der Basisregel-Parser 344 ist im Allgemeinen für die Durchführung eines Basisregel-Parsing-Prozesses verantwortlich, der die auf zwei Arten abgeleiteten Vorschlagsregeln verwenden kann. Erstens können die Vorschlagsregeln aus den Basisregeln über die Schätzung der Basiszustandsvariablen, die Geometrieklassifizierung und die Geometriezuordnung abgeleitet werden. Zweitens können die Vorschlagsregeln von Kartenregeln abgeleitet werden. Beispielsweise kann der Basisregel-Parser 344 Signale und andere Eingaben, die vom Bedingungsprüfer 342 als zutreffend ermittelt wurden, in eine oder mehrere Basisregeln auflösen. In mindestens einer Ausführungsform kann der Basisregel-Parser 344 ähnlich wie der Kartenregel-Abgleicher 346 arbeiten, wendet aber allgemeine oder universelle Regeln und Bedingungen für das Fahren an, die unabhängig vom historischen oder beobachteten Verhalten von Fahrzeugen am Ort des Vorfahrtszenarios sind.The base rule parser 344 is generally responsible for performing a base rule parsing process, which can use the suggestion rules derived in two ways. First, the suggestion rules can be derived from the base rules about base state variable estimation, geometry classification, and geometry mapping. Second, the suggestion rules can be derived from map rules. For example, base rule parser 344 may resolve signals and other input determined to be true by constraint checker 342 into one or more base rules. In at least one embodiment, base rule parser 344 may operate similarly to map rule matcher 346, but applies general or universal rules and conditions for driving that are independent of historical or observed behavior of vehicles at the location of the right-of-way scenario.

Die Basisregeln können zwar von Land zu Land, von Staat zu Staat, von Region zu Region usw. variieren, aber sie können für jedes Vorfahrtszenario einheitlich gelten, solange die entsprechenden Bedingungen erfüllt sind. Im Gegensatz dazu können Kartenregeln Regeln und Bedingungen für das Fahren anwenden, die mindestens auf dem historischen oder beobachteten Verhalten von Fahrzeugen an einem Ort des Vorfahrtszenarios oder an ähnlichen Orten des Vorfahrtszenarios beruhen. In mindestens einer Ausführungsform können die Kartenregeln in den Kartendaten codiert sein und mindestens basierend auf der Lokalisierung des autonomen Fahrzeugs auf einer Karte angewendet werden. Die Basisregeln können jedoch unabhängig von der Lokalisierung und dem Ort des Vorfahrtszenarios gelten. Durch die Bereitstellung des Basisregel-Parsers 344 können Warteelemente auch dann erzeugt werden, wenn keine Kartendaten verfügbar sind oder nicht auf das aktuelle Vorfahrtsszenario angewendet oder lokalisiert werden können. Wenn beispielsweise der Kartenregel-Abgleicher 346 nicht in der Lage ist, eine oder mehrere Komponenten und/oder Elemente eines Warteelements zu bestimmen, kann der Basisregel-Parser 344 alle Lücken ausfüllen oder andersherum. So können Warteelemente vollständig aus Kartendaten, vollständig aus Wahrnehmungsdaten oder aus einer Kombination beider Datentypen erzeugt werden.While the basic rules may vary from country to country, state to state, region to region, etc., they can apply uniformly to any give-way scenario as long as the appropriate conditions are met. In contrast, map rules may apply rules and conditions to driving based at least on the historical or observed behavior of vehicles at a right-of-way scenario location or similar right-of-way scenario locations. In at least one embodiment, the map rules may be encoded in the map data and applied at least based on the location of the autonomous vehicle on a map. However, the basic rules can apply regardless of the location and location of the right-of-way scenario. By providing the base rule parser 344, wait items can be generated even when no map data is available or cannot be applied or located to the current right-of-way scenario. For example, if the map rule matcher 346 is unable to determine one or more components and/or elements of a wait element, the base rule parser 344 may fill in any gaps or vice versa. Thus, waiting elements can be generated entirely from map data, entirely from perception data, or from a combination of both types of data.

Der Warteelement-Verschmelzer 348 ist im Allgemeinen zum Verschmelzen oder Kombinieren von Daten verantwortlich, die den geparsten Basisregeln und den übereinstimmenden Kartenregeln entsprechen, um den Konkurrenzzustand 318 aufzulösen. Beispielsweise können in mindestens einer Ausführungsform der Basisregel-Parser 344 und der Kartenregel-Abgleicher 346 jeweils entsprechende Warteelemente und/oder Elemente und/oder Komponenten davon erzeugen. Der Warteelement-Verschmelzer 348 kann jeden dieser verschiedenen Aspekte verschmelzen, um das Warteelement 310 zu bilden. In mindestens einer Ausführungsform können ein oder mehrere Aspekte des Basisregel-Parsers 344 und des Kartenregel-Abgleichers 346 miteinander in Konkurrenz stehen. Beispielsweise kann dasselbe Feld oder Datenelement unterschiedliche Werte haben. Der Warteelement-Verschmelzer 348 kann solche Konkurrenzen identifizieren und/oder erkennen, um einen oder mehrere aufgelöste Werte für das Warteelement 310 zu bestimmen. In mindestens einer Ausführungsform können die Bestimmungen des Kartenregel-Abgleichers 346 im Allgemeinen Vorrang haben, da sie auf der Lokalität basieren und die Wahmehmungsdaten nicht immer zuverlässig sind. Dies kann beispielsweise dann sinnvoll sein, wenn der Basisregel-Parser 344 nicht in der Lage ist, eine relevante Regel abzuleiten, die angewendet werden sollte. Wenn es beispielsweise kein Schild oder einen anderen visuellen Indikator gibt, dass an einer Kreuzung das Linksabbiegen verboten ist, kann der Basisregel-Parser 344 möglicherweise keine entsprechende Basisregel anwenden, selbst wenn diese Regel durch Konvention befolgt wird. Der Kartenregel-Abgleicher 346 kann die Regel jedoch mindestens basierend auf der Beobachtung anwenden, dass die Regel bei historischen Fahrten autonomer Fahrzeuge über die Kreuzung gilt. Es ist jedoch möglich, dass es vorübergehende oder neue Signale gibt, die nicht vorhanden sind oder ein ausreichend hohes Vertrauensniveau haben (z. B. aufgrund von inkonsistenten oder zu wenigen Beobachtungen, veralteten Beobachtungen usw.), um sie in die Kartendaten aufzunehmen. Der Basisregel-Parser 344 kann verwendet werden, um solche Szenarien zu berücksichtigen (z. B. für Baustellenschilder, elektronische Schilder oder andere temporäre oder vorübergehende Signale können entsprechende Feststellungen durch den Basisregel-Parser 344 Vorrang haben, die mindestens darauf basieren, dass sie diesen Signaltypen zugeordnet oder mit ihnen verknüpft sind), wenn Daten zum Warteelement 310 aufgelöst werden.The queuing element merger 348 is generally responsible for merging or combining data corresponding to the parsed base rules and the matched card rules to resolve the contention state 318 . For example, in at least one embodiment, base rule parser 344 and map rule matcher 346 may each generate corresponding wait elements and/or elements and/or components thereof. The wait element merger 348 can merge any of these various aspects to form the wait element 310 . In at least one embodiment, one or more aspects of base rule parser 344 and map rule matcher 346 may compete with one another. For example, the same field or data item can have different values. The wait element merger 348 may identify and/or detect such contentions to determine one or more resolved values for the wait element 310 . In at least one embodiment, the determinations of the card rule matcher 346 may generally take precedence since they are based on locality and perception data is not always reliable. This may be useful, for example, when the base rule parser 344 is unable to derive a relevant rule that should be applied. For example, if there is no sign or other visual indicator that no left turns are allowed at an intersection, base rule parser 344 may not apply an appropriate base rule, even if that rule is followed by convention. However, the map rule matcher 346 may at least apply the rule based on the observation that the rule applies to historical autonomous vehicle trips through the intersection. However, it is possible that there may be transient or new signals that do not exist or have a sufficiently high level of confidence (e.g. due to inconsistent or too few observations, outdated observations, etc.) to include in the map data. The base rule parser 344 may be used to account for such scenarios (e.g., for construction signs, electronic signs, or other temporary or transient signals, corresponding determinations by the base rule parser 344 that are at least based on being associated or associated with these signal types) when resolving data to wait element 310.

Obwohl in 3 nicht dargestellt, kann eine Warteelement-Engine optional einen Hindernis-im-Weg-Analysator enthalten, der eine Hindernis-im-Weg-Analyse (OIPA) durchführt. Eine OIPA kann Akteure mit Wegen und Wartegeometrien verknüpfen, indem sie den Fahrspurgraphen, die Wartegeometrie und die Ausgabe der semantischen Bewegungssegmentierung (SMS) zur Hinderniswahrnehmung verwendet. Die OIPA kann durchgeführt werden, indem die Wege und Bereiche in ein Indexbild gerendert werden und dann die polygonalen Formen der Akteure in das Bild projiziert und der Grad der Überlappung integriert wird.Although in 3 not shown, a queuing element engine may optionally include an obstacle-in-the-path analyzer that performs obstacle-in-the-path analysis (OIPA). An OIPA can associate actors with paths and waiting geometries using the lane graph, waiting geometry, and Semantic Motion Segmentation (SMS) output for obstacle perception. The OIPA can be performed by rendering the pathways and areas into an index image and then projecting the polygonal shapes of the actors into the image and integrating the degree of overlap.

Zusätzlich kann die Warteelement-Engine einen Okklusionsanalysator enthalten. Die Verdeckungsanalyse kann den OIPA-Ergebnissen ein Verdeckungsverständnis verleihen, indem sie einen Fahrspurgraphen und Hinderniswahrnehmungsausgaben wie SMS und eine Tiefenkarte verwendet und Segmente im Fahrspurgraphen erkennt, die einen ungesehenen Akteur verdecken könnten. Dadurch kann der Vorfahrtsplaner nicht nur sichtbare, sondern auch unsichtbare Akteure berücksichtigen. Ein konkurrierender Weg kann mit einem erwarteten Geschwindigkeitslimit versehen sein, und verdeckte Teile dieses Weges können dann verwendet werden, um einen ungesehenen Akteur mit dieser Höchstgeschwindigkeit an der nächstgelegenen verdeckten Stelle einzufügen, an der er sich derzeit befinden kann, mit entsprechenden Vorbehalten für erwartete Konventionen (z. B. wenn der Konkurrenzzustand Wer zuerst anhält, hat Vorrang ist, ist nicht davon auszugehen, dass ein ungesehenes Fahrzeug, das sich weit hinter seinem Einfahrbereich und seiner Einfahrlinie befindet, mit Höchstgeschwindigkeit einfährt, wenn es dadurch nicht an seiner Einfahrlinie anhalten kann, während bei einem Vorfahrtskonkurrenzpunkt angenommen werden kann, dass es mit Höchstgeschwindigkeit einfahren könnte.) Mit diesen Informationen kann der Vorfahrtsplaner dann nicht sichtbare Fahrzeuge berücksichtigen und korrektes Verhalten generieren, z. B. Verlangsamung, Warten oder langsames Vorwärtsrollen, bis verdeckte Bereiche aufgedeckt werden können oder bis die Ampel im Fall des Rechtsabbiegens bei Rot grün wird.Additionally, the wait element engine may include an occlusion analyzer. The occlusion analysis can add an occlusion understanding to the OIPA results using a lane graph and obstacle perception outputs such as SMS and a depth map, and detect segments in the lane graph that could be occluding an unseen actor. As a result, the right-of-way planner can take into account not only visible but also invisible actors. A competing path can be provided with an expected speed limit, and obscured parts of that path can then be used to insert an unseen actor with that maximum speed at the closest obscured location where it can currently be, with appropriate caveats for expected conventions ( e.g., where the first stop, first priority condition of competition is present, an unseen vehicle well beyond its entry zone and entry line should not be expected to enter at top speed if that would prevent it from stopping at its entry line, while at a yield point it can be assumed that it could enter at top speed.) With this information the yield planner can then take into account non-visible vehicles and generate correct behavior e.g. B. Slowing down, waiting or slowly rolling forward until hidden areas can be revealed or until the traffic light turns green in the case of a right turn on red.

Die Warteelement-Engine 300 kann zusätzlich eine Wer-hat-zuerst-angehalten-Analyse durchführen. Die Wer-hat-zuerst-angehalten-Analyse kann anhand der Bewegungsanalyse und der OIPA-Ergebnisse bestimmen, welcher Akteur zuerst gestoppt hat, um den Konkurrenzzustand Wer zuerst anhält, hat Vorrang zu unterstützen. Die OIPA-Ergebnisse können verwendet werden, um festzustellen, ob ein Akteur in die Innenfläche eingefahren ist, sich in seinem Einfahrtsbereich befindet und die Einfahrtslinie erreicht hat. Anhand der Bewegung kann auch festgestellt werden, ob sich der Akteur in Bewegung befindet, ob er angehalten wurde, sich aber vor kurzem bewegt hat, oder ob es sich möglicherweise um ein geparktes Fahrzeug handelt. Eine weitere Analyse der Warteelement-Engine 300 kann eine Who-Goes-First-Analyse beinhalten. Bei einer Who-Goes-First-Analyse kann es sich um eine maschinell erlernte Analyse handeln, die für jeden Konkurrenten einen Konkurrenzzustand schätzt. Eine solche Analyse kann durch viele Beispiele zukünftiger Verläufe trainiert werden, bei denen festgestellt werden kann, ob ein Akteur den Konkurrenzpunkt vor dem Ego-Fahrzeug passiert hat oder umgekehrt. Das Wissen um die Wahrscheinlichkeit, wer zuerst kommt, kann ein Hinweis auf die Renditeerwartungen sein.The wait element engine 300 may additionally perform a who stopped first analysis. The who-stopped-first analysis can use the motion analysis and OIPA results to determine which actor stopped first to support the first-stop-first-priority contention state. The OIPA results can be used to determine if an actor has entered the inner surface, is within its entry zone, and has reached the line of entry. Motion can also be used to determine if the actor is in motion, has been stopped but has recently moved, or may be a parked vehicle. Further analysis of the wait item engine 300 may include a who goes first analysis. A who-goes-first analysis can be a machine-learned analysis that estimates a competitive state for each competitor. Such an analysis can be trained by many examples of future trajectories, in which it can be determined whether an actor has passed the competition point in front of the ego vehicle or vice versa. Knowing the probability of who comes first can be an indication of expected returns.

Wie bereits erwähnt, kann die Ausgabe des Warteelements 310 der Warteelement-Engine 300 an einen Vorfahrtsplaner des Ego-Fahrzeugs weitergeleitet werden. Der Vorfahrtsplaner kann ein Vorfahrtsverhalten für das Ego-Fahrzeug implementieren, wenn die Warteelemente mit aufgelöstem Konkurrenzzustand, die OIPA-Ergebnisse mit Verdeckung, die Ausgaben „Wer hat zuerst angehalten“, „Wer fährt zuerst“ und die Hinderniswahrnehmung vorliegen. Der Vorfahrtsplaner kann, falls erforderlich und möglich, ein Vorfahrtsverhalten des Ego-Fahrzeugs veranlassen und überwacht die Vorfahrtsgewährung der anderen Akteure beim Wahrnehmen der Vorfahrt. Die Analyse des Vorfahrtsplaners kann durchgeführt werden, um vorherzusagen, was passieren würde, wenn das Ego-Fahrzeug auf dem geforderten Weg weiterfährt. Wenn das Ego-Fahrzeug vorwärtsfährt und die Vorfahrt gewähren soll, kann das Ego-Fahrzeug den Konkurrenz lösen, bevor Konkurrenten, die Vorfahrt haben, beeinträchtigt werden (z. B. gezwungen werden, ihr Verhalten zu ändern). Bei der Vorfahrt kann auch darauf geachtet werden, dass das Ego-Fahrzeug die anderen Verkehrsteilnehmer nicht zu einem anderen als dem von ihnen bevorzugten oder beabsichtigten Verhalten veranlasst.As already mentioned, the output of the waiting element 310 of the waiting element engine 300 can be forwarded to a priority planner of the ego vehicle. The priority planner can implement a priority behavior for the ego vehicle given the waiting elements with resolved contention, the OIPA results with occlusion, the outputs "who stopped first", "who drives first", and obstacle perception. If necessary and possible, the right-of-way planner can cause the ego vehicle to give way and monitors the granting of the right-of-way to the other actors when they give way. The analysis of the right-of-way planner can be performed to predict what would happen if the ego vehicle continues on the required path. If the ego vehicle is moving forward and is to yield the right-of-way, the ego vehicle can resolve the competition before competitors who have the right-of-way are disrupted (e.g., forced to change their behavior). When giving way, care can also be taken to ensure that the ego vehicle does not cause the other road users to behave in a way that differs from their preferred or intended behavior.

Nun auf die Figuren siehe 4-6 bezugnehmend, weist jeder Block der Verfahren 400-600 und anderer hierin beschriebener Verfahren einen Rechenprozess auf, der unter Verwendung einer beliebigen Kombination von Hardware, Firmware und/oder Software durchgeführt werden kann. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. Die Verfahren können auch als computerverwendbare Anweisungen auf Computerspeichermedien gespeichert sein. Die Methoden können durch eine eigenständige Anwendung, einen Dienst oder einen gehosteten Dienst (eigenständig oder in Kombination mit einem anderen gehosteten Dienst) oder ein Plug-in für ein anderes Produkt bereitgestellt werden, um nur einige zu nennen. Darüber hinaus werden die Methoden 400-600 beispielhaft in Bezug auf die Warteelement-Engine 300 der 3 beschrieben. Diese Verfahren können jedoch zusätzlich oder alternativ von einem beliebigen System oder einer beliebigen Kombination von Systemen ausgeführt werden, einschließlich, aber nicht beschränkt auf die hier beschriebenen Systeme.Referring now to Figures 4-6, each block of methods 400-600 and other methods described herein comprises a computational process that may be performed using any combination of hardware, firmware, and/or software. For example, various functions may be performed by a processor executing instructions stored in memory. The methods may also be stored on computer storage media as computer-usable instructions. The methods can be implemented by a standalone application, service, or hosted service (standalone or in combination with another hosted service) or a plugin for another product, to name a few. In addition, the methods 400-600 are exemplified with respect to the wait item engine 300 of FIG 3 described. 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.

4 ist ein Flussdiagramm, das ein Verfahren 400 zur Codierung von Vorfahrtsszenarien für autonome Fahrzeuge (z. B. ein Ego-Fahrzeug) gemäß einigen Ausführungsformen der vorliegenden Offenbarung zeigt. Das Verfahren kann über eine Warteelement-Engine ausgeführt werden, wie z.B., aber nicht beschränkt auf die Warteelement-Engine 300 der 3. Das Verfahren 400 umfasst in Block B402 das Erkennen und/oder Identifizieren eines bevorstehenden Vorfahrtszenarios. Das Vorfahrtszenario kann einem Vorfahrtszenario bei einer Kreuzung (oder einem Kreuzungspunkt) oder einem Vorfahrtszenario bei einer Einmündung entsprechen. Das Vorfahrtszenario kann mit einem autonomen Fahrzeug (z. B. einem Ego-Fahrzeug) und einem oder mehreren Konkurrenten verbunden sein. 4 FIG. 4 is a flow chart depicting a method 400 for encoding give-way scenarios for autonomous vehicles (e.g., a ego vehicle) according to some embodiments of the present disclosure. The method may be performed via a wait item engine such as, but not limited to, the wait item engine 300 of FIG 3 . In block B402, the method 400 includes recognizing and/or identifying an upcoming priority scenario. The give way scenario may correspond to a give way scenario at an intersection (or an intersection) or a give way scenario at an intersection. The right-of-way scenario may involve an autonomous vehicle (e.g., an ego vehicle) and one or more competitors.

In Block B404 können Geometriedaten empfangen werden. In einigen Ausführungsformen können die Geometriedaten als Reaktion auf die Erkennung des Vorfahrtsszenarios empfangen werden. Die Geometriedaten können Geometrieerkennungsdaten enthalten. Beispielsweise kann der Wartegeometrie-Wahrnehmer 302 der Warteelement-Engine 300 Echtzeit-Geometriedaten empfangen, die von einem oder mehreren Sensoren des autonomen Fahrzeugs erzeugt werden.Geometry data can be received in block B404. In some embodiments, the geometry data may be received in response to detecting the give-way scenario. The geometry data may include geometry recognition data. For example, the wait geometry perceiver 302 of the wait element engine 300 may receive real-time geometry data generated by one or more sensors of the autonomous vehicle.

In Block B406 können Signaldaten empfangen werden. In einigen Ausführungsformen können die Signaldaten als Reaktion auf die Erkennung des Vorfahrtsszenarios empfangen werden. Die Signaldaten können Signalwahrnehmungsdaten enthalten. Beispielsweise kann der Signalwahrnehmer 306 der Warteelement-Engine 300 Echtzeit-Signaldaten empfangen, die von dem einen oder den mehreren Sensoren des autonomen Fahrzeugs erzeugt werden.In block B406 signal data can be received. In some embodiments, the signaling data may be received in response to detecting the give-way scenario. The signal data may include signal perception data. For example, the signal perceiver 306 of the queuing element engine 300 may receive real-time signal data generated by the one or more sensors of the autonomous vehicle.

In Block B408 können Kartendaten empfangen werden. In einigen Ausführungsformen können die Kartendaten als Reaktion auf die Erkennung des Vorfahrtsszenarios empfangen werden. Beispielsweise kann der Kartograph 304 der Warteelement-Engine 300 Kartendaten empfangen.Map data can be received in block B408. In some embodiments, the map data may be received in response to detecting the give-way scenario. For example, the mapper 304 of the queuing element engine 300 may receive map data.

In Block B410 können Fahrspurgraphen-Daten empfangen werden. In einigen Ausführungsformen können die Fahrspurgraphen-Daten als Reaktion auf die Erkennung des Vorfahrtsszenarios empfangen werden. Die Fahrspurgraphen-Daten können einen oder mehrere Ego-Wege und einen oder mehrere Konkurrenten-Wege für einen oder mehrere Konkurrenten eines Vorfahrtsszenarios enthalten. Beispielsweise kann der Fahrspurschreiber 350 der Warteelement-Engine 300 die Ego-Wege 352 für ein Ego-Fahrzeug (z. B. das autonome Fahrzeug) und die Konkurrenten-Wege 354 für den oder die Konkurrenten empfangen, die mit dem Vorfahrtszenario verbunden sind.Lane graph data may be received in block B410. In some embodiments, the lane graph data may be received in response to detecting the give-way scenario. The lane graph data may include one or more ego paths and one or more competitor paths for one or more competitors of a right-of-way scenario. For example, the lane recorder 350 of the waiting element engine 300 may receive the ego paths 352 for a ego vehicle (e.g., the autonomous vehicle) and the competitor paths 354 for the competitor(s) associated with the right-of-way scenario.

In Block B412 kann eine Geometrie für einen Ego-Weg des einen oder der mehreren Ego-Wege bestimmt werden. Die Geometrie für den Ego-Weg kann über die Geometriedaten, die Kartendaten, die Signaldaten und/oder die Fahrspurgraphen-Daten bestimmt werden. Als solche können der Wartegeometrie-Wahrnehmer 302, der Kartograph 304, der Signalwahrnehmer 306, der Fahrspurschreiber 350 oder eine beliebige Kombination davon allgemein für die Bestimmung der Geometrie des Ego-Wegs verantwortlich sein. In einigen Ausführungsformen können der Wartegeometrie-Verschmelzer 322 der Warteelement-Engine 300, der Geometrie-Klassifikator 324 der Warteelement-Engine 300, der Geometrie-Assoziator 326 der Warteelement-Engine 300, der Signal-Verschmelzer 328 der Warteelement-Engine 300, der Signalzustandsschätzer 330 der Warteelement-Engine 300 oder eine beliebige Kombination davon zur Bestimmung der Geometrie für den Ego-Weg beitragen.In block B412, a geometry for an ego path of the one or more ego paths may be determined. The geometry for the ego path can be determined using the geometry data, the map data, the signal data and/or the lane graph data. As such, the waiting geometry perceiver 302, the mapper 304, the signal perceiver 306, the lane recorder 350, or any combination thereof may be generally responsible for determining the geometry of the ego path. In some embodiments, the waiting element engine 300's waiting geometry fuser 322, waiting element engine 300's geometry classifier 324, waiting element's geometry associator 326, waiting element's signal fuser 328, waiting element engine 300's signal state estimator 330 of the waiting element engine 300 or any combination thereof contribute to the determination of the geometry for the ego path.

Ebenfalls in Block B412 kann eine Geometrie für einen Konkurrenten-Weg des einen oder der mehreren Konkurrenten-Wege des einen oder der mehreren Konkurrenten bestimmt werden. Ähnlich wie der Ego-Weg kann die Geometrie für den Konkurrenten-Weg über die Geometriedaten, die Kartendaten, die Signaldaten und/oder die Fahrspurgraphen-Daten bestimmt werden. Als solche können der Wartegeometrie-Wahrnehmer 302, der Kartograph 304, der Signalwahrnehmer 306, der Fahrspurschreiber 350 oder eine beliebige Kombination davon im Allgemeinen für die Bestimmung der Geometrie des Konkurrenten-Wegs verantwortlich sein. In einigen Ausführungsformen können der Wartegeometrie-Verschmelzer 322 der Warteelement-Engine 300, der Geometrie-Klassifikator 324 der Warteelement-Engine 300, der Geometrie-Assoziator 326 der Warteelement-Engine 300, der Signal-Verschmelzer 328 der Warteelement-Engine 300, der Signalzustandsschätzer 330 der Warteelement-Engine 300 oder eine beliebige Kombination davon zur Bestimmung der Geometrie für den Konkurrenten-Weg beitragen. In einigen Ausführungsformen wird in Block 414 eine Geometrie für einen Kontext der Wege und/oder des Vorfahrtsszenarios bestimmt.Also in block B412, a geometry for a competitor path of the one or more competitor paths of the one or more competitors may be determined. Similar to the ego path, the geometry for the competitor path may be determined from the geometry data, the map data, the signal data, and/or the lane graph data. As such, the waiting geometry observer 302, the mapper 304, the signal observer 306, the lane recorder 350, or any combination thereof may be generally responsible for determining the geometry of the competitor's path. In some embodiments, the waiting element engine 300's waiting geometry fuser 322, waiting element engine 300's geometry classifier 324, waiting element's geometry associator 326, waiting element's signal fuser 328, waiting element engine 300's signal state estimator 330 of the queuing engine 300, or any combination thereof, contribute to determining the geometry for the competitor path. In some embodiments, in block 414, a geometry is determined for a context of the paths and/or the right-of-way scenario.

In Block B414 können die Geometrien für den Ego-Weg und den Konkurrenten-Weg codiert werden. Die Geometrie des Ego-Wegs kann in einer Ego-Wartegeometrie codiert werden (z. B. die Ego-Wartegeometrie 312 der 3). Die Geometrie des Konkurrenten-Wegs kann in einer Konkurrenten-Wartegeometrie codiert werden (z. B. die Konkurrenten-Wartegeometrie 314 in 3). In mindestens einer Ausführungsform wird die Geometrie für den Kontext der Wege und/oder die Vorfahrtsgeometrie in einer Kontext-Wartegeometrie codiert (z. B. die Kontext-Wartegeometrie 316 der 3).In block B414 the geometries for the ego path and the competitor path can be encoded. The geometry of the ego path can be encoded in an ego waiting geometry (e.g. the ego waiting geometry 312 of 3 ). The geometry of the competitor path may be encoded in a competitor queuing geometry (e.g., the competitor queuing geometry 314 in 3 ). In at least one embodiment, the geometry for the context of the ways and/or the right of way geometry is encoded in a context queuing geometry (e.g., the context queuing geometry 316 of the 3 ).

In Block B416 kann ein Konkurrenzzustand zwischen dem Ego-Weg und dem Konkurrenten-Weg mindestens basierend auf der ermittelten Geometrien bestimmt werden. Verschiedene Ausführungsformen für die Bestimmung eines Konkurrenzzustands werden in Verbindung mit mindestens der Warteelement-Engine 300, dem Verfahren 500 der 5 und/oder dem Verfahren 600 der 6 diskutiert. Hier sei jedoch kurz erwähnt, dass der Konkurrenzzustandslösers 340 der Warteelement-Engine 300 im Allgemeinen für die Bestimmung und/oder Auflösung eines Konkurrenzzustands für den Ego-Weg und den Konkurrenten-Weg verantwortlich sein kann. Der Konkurrenzzustand kann codiert sein (z. B. der Konkurrenzzustand 318 der 3).In block B416, a contention state between the ego path and the competitor path may be determined based at least on the determined geometries. Various embodiments for determining a contention state are provided in connection with at least the wait item engine 300, the method 500 of FIG 5 and/or the method 600 of 6 discussed. However, it is briefly mentioned here that the contention state solver 340 of the wait element engine 300 may be generally responsible for determining and/or resolving a contention state for the ego-path and the competitor-path. The contention state may be encoded (e.g., the contention state 318 of the 3 ).

Im Block B418 kann eine Warteelement-Datenstruktur (oder ein Datenobjekt) erzeugt werden, z. B. das Warteelement 310 der 3. Die Warteelement-Datenstruktur kann mindestens eines der folgenden Elemente enthalten: die Geometrie für den Ego-Weg, die Geometrie für den Konkurrenten-Weg und den Konkurrenzzustand. Das Warteelement kann auch eine Kontext-Wartegeometrie enthalten.In block B418 a wait element data structure (or data object) may be created, e.g. B. the waiting element 310 of 3 . The wait element data structure may contain at least one of the following elements: the geometry for the ego path, the geometry for the competitor path, and the contention state. The wait element can also contain a context wait geometry.

Bei B420 kann das Warteelement an einen Vorfahrtsplaner für das autonome Fahrzeug übermittelt werden.At B420, the wait item may be communicated to a priority planner for the autonomous vehicle.

5 ist ein Flussdiagramm, das ein Verfahren 500 zur Codierung von Vorfahrtsszenarien für autonome Fahrzeuge (z. B. ein Ego-Fahrzeug) gemäß einigen Ausführungsformen der vorliegenden Offenbarung zeigt. Das Verfahren kann über eine Warteelement-Engine ausgeführt werden, wie z.B., aber nicht beschränkt auf die Warteelement-Engine 300 der 3. Das Verfahren 500 umfasst im Block B502 die Wahrnehmung einer Wartegeometrie für einen Ego-Weg und einen Konkurrenten-Weg. Ein Geometriewahrnehmer (z. B. der Geometriewahrnehmer 302 der Warteelement-Engine 300) kann die Wartegeometrien wahrnehmen. Die Wartegeometrien können in Reaktion auf die Erkennung und/oder Identifizierung eines Vorfahrtszenarios für ein Ego-Fahrzeug (ein autonomes Fahrzeug) wahrgenommen werden. Der Ego-Weg und der Konkurrenten-Weg können von einem Fahrspurschreiber (z. B. einem Fahrspurschreiber 350 der Warteelement-Engine 300) wahrgenommen werden. 5 FIG. 5 is a flow diagram depicting a method 500 for encoding give-way scenarios for autonomous vehicles (eg, a ego vehicle) according to some embodiments of the present disclosure. The method may be performed via a wait item engine such as, but not limited to, the wait item engine 300 of FIG 3 . The method 500 includes, at block B502, perceiving a wait geometry for an ego path and a competitor path. A geometry perceiver (e.g., geometry perceiver 302 of wait element engine 300) may perceive the wait geometries. The waiting geometries may be perceived in response to the detection and/or identification of a right-of-way scenario for an ego vehicle (an autonomous vehicle). The ego path and the competitor path may be perceived by a lane recorder (e.g., lane recorder 350 of queuing element engine 300).

In Block B504 können ein oder mehrere Signale für die Ego-/Konkurrenten-Wege wahrgenommen werden. Ein Signalwahrnehmer (z. B. der Signalwahrnehmer 306) kann die Signale für die Wege wahrnehmen.In block B504, one or more signals for the ego/competitor pathways may be perceived. A signal perceiver (e.g., signal perceiver 306) may perceive the signals for the paths.

In Block B506 können die Wartegeometrien mit Kartendaten verschmolzen werden. Eine Wartegeometrie-Verschmelzer (z. B. die Wartegeometrie-Verschmelzer 322 der Warteelement-Engine 300) kann die Wartegeometrien mit den Kartendaten verschmelzen.In block B506 the waiting geometries can be merged with map data. A wait geometry blender (e.g., the wait geometry blender 322 of the wait element engine 300) may merge the wait geometries with the map data.

In Block B508 können die verschmolzenen Wartegeometrien klassifiziert werden. Ein Geometrie-Klassifikator (z. B. der Geometrie-Klassifikator 324 der Warteelement-Engine 300) kann die Wartegeometrien klassifizieren.In block B508, the merged wait geometries can be classified. A geometry classifier (e.g. geometry classifier 324 of wait element engine 300) may classify the wait geometries.

In Block B510 können die verschmolzenen Wartegeometrien zugeordnet werden. Ein Geometrie-Assoziator (z. B. der Geometrie-Assoziator 326 der Warteelement-Engine 300) kann die Wartegeometrien assoziieren.In block B510 the merged waiting geometries can be assigned. A geometry associator (e.g., geometry associator 326 of wait element engine 300) may associate the wait geometries.

In Block B512 können die Signale mit den Kartendaten verschmolzen werden. Eine Signal-Verschmelzer (z. B. die Signal-Verschmelzer 328 der Warteelement-Engine 300) kann die Signale mit den Kartendaten verschmelzen.In block B512 the signals can be merged with the map data. A signal merger (e.g., the signal merger 328 of the cue engine 300) may merge the signals with the map data.

In Block B514 können die Zustände der verschmolzenen Signale geschätzt werden. Ein Signalzustandsschätzer (z. B. der Signalzustandsschätzer 330 der Warteelement-Engine 300) kann den Zustand der verschmolzenen Signale schätzen.In block B514, the states of the merged signals can be estimated. A signal state estimator (e.g., signal state estimator 330 of wait element engine 300) may estimate the state of the merged signals.

In Block B516 kann ein Konkurrenzzustand zwischen dem Ego-Weg und dem Konkurrenten-Weg aufgelöst werden. Verschiedene Ausführungsformen der Auflösung eines Konkurrenzzustands werden mindestens in Verbindung mit dem Verfahren 600 der 6 erörtert. Hier soll jedoch kurz darauf hingewiesen werden, dass ein Konkurrenzzustandslöser (z. B. der Konkurrenzzustandslöser 340 der Warteelement-Engine 300) den Konkurrenzzustand zwischen dem Ego-Weg und dem Konkurrenten-Weg auflösen kann.In block B516, a contention condition between the ego path and the competitor path may be resolved. Various embodiments of resolving a contention state are provided at least in connection with the method 600 of FIG 6 discussed. However, it should be briefly noted that a contention state solver (e.g., contention state solver 340 of wait element engine 300) may resolve the contention state between the ego path and the competitor path.

In Block B518 kann ein Warteelement erzeugt werden. Beispielsweise kann die Warteelement-Engine 300 das Warteelement 310 erzeugen.A wait element may be created in block B518. For example, the wait item engine 300 may generate the wait item 310 .

In Block B520 kann das Warteelement einem System (z. B. einem Vorfahrtsplaner) zur Verfügung gestellt werden, das Führungsdienste für ein autonomes Fahrzeug (z. B. das Ego-Fahrzeug) bereitstellt.In block B520, the queuing element may be provided to a system (e.g., a priority planner) that provides guidance services to an autonomous vehicle (e.g., the ego vehicle).

6 ist ein Flussdiagramm, das ein Verfahren 600 zum Auflösen eines Konkurrenzzustands zwischen Wegen für Fahrzeuge gemäß einigen Ausführungsformen der vorliegenden Offenbarung zeigt. Das Verfahren kann über einen Konkurrenzzustandslöser ausgeführt werden, wie z. B., aber nicht beschränkt auf den Konkurrenzzustandslöser 340 der 3. Dem Konkurrenzzustandslöser können verschiedene Eingaben zur Verfügung gestellt werden, um den Konkurrenzzustand zwischen den beiden Wegen (z. B. einem Ego-Weg und einem Konkurrenten-Weg) aufzulösen. Wie in 3 dargestellt, können beispielsweise Kartendaten sowie verschmolzene, klassifizierte und/oder zugehörige Geometrien (z. B. Wartegeometrien) für die beiden Wege an den Konkurrenzzustandslöser 340 übermittelt werden. Darüber hinaus können verschmolzene Signale (einschließlich geschätzter Signalzustände) an den Konkurrenzzustandslöser übermittelt werden. Verschiedene andere Sensordaten (von Sensoren des autonomen Fahrzeugs) können dem Konkurrenzlöser zur Verfügung gestellt werden. Die verschiedenen Blöcke des Verfahrens 600 können alle diese eingegebenen Daten verwenden. 6 FIG. 6 is a flow diagram depicting a method 600 for resolving a lane contention for vehicles, in accordance with some embodiments of the present disclosure. The method can be performed via a contention solver such as e.g. B., but not limited to the contention state solver 340 of FIG 3 . Various inputs can be provided to the contention state solver to resolve the contention state between the two paths (e.g., an ego path and a competitor path). As in 3 For example, as shown, map data as well as merged, classified, and/or associated geometries (e.g., waiting geometries) for the two paths may be communicated to the contention solver 340 . In addition, fused signals (including estimated signal states) can be submitted to the contention state solver. Various other sensor data (from autonomous vehicle sensors) may be provided to the contention solver. The various blocks of the method 600 may use any of this input data.

Das Verfahren 600 umfasst in Block B602 die Überprüfung eines Zustands des Konkurrenzzustands. Ein Bedingungsprüfer (z. B. der Bedingungsprüfer 342 des Konkurrenzzustandslösers 340) kann verwendet werden, um die Bedingung des Konkurrenzzustands zu prüfen.The method 600 includes checking a state of the contention state at block B602. A constraint checker (e.g., the constraint checker 342 of the contention state solver 340) may be used to check the constraint of the contention state.

In Block B604 können eine oder mehrere Basisregeln geparst werden. Ein Basisregel-Parser (z. B. der Basisregel-Parser 344 des Konkurrenzzustandslösers 340) kann die Basisregeln parsen.In block B604, one or more base rules may be parsed. A base rule parser (e.g., base rule parser 344 of contention state solver 340) may parse the base rules.

In Block B606 können eine oder mehrere Kartenregeln mit dem Konkurrenzzustand abgeglichen werden. Eine Kartenregel-Abgleicher (z. B. der Kartenregel-Abgleicher 346 des Konkurrenzzustandslösers 340) kann den Konkurrenzzustand mit einer oder mehreren Kartenregeln abgleichen.In block B606, one or more card rules may be compared to the contention state. A card rule matcher (e.g., card rule matcher 346 of contention state solver 340) may match contention state to one or more card rules.

In Block B608 können die verschiedenen Datenstrukturen (z. B. Wartegeometrien und Konkurrenzzustand) zu einem Warteelement verschmolzen werden. Ein Warteelement-Verschmelzer (z. B. der Warteelement-Verschmelzer 348 des Konkurrenzzustandslösers 340) kann die Datenstrukturen verschmelzen.In block B608, the various data structures (e.g., wait geometries and contention state) may be merged into one wait element. A wait element merger (e.g., wait element merger 348 of contention solver 340) may merge the data structures.

In Block B610 können die verschmolzenen Datenstrukturen (z. B. Wartegeometrien und ein aufgelöster Konkurrenzzustand) in ein Warteelement (z. B. das Warteelement 310 der 3) verpackt werden.In block B610, the merged data structures (e.g., wait geometries and a resolved contention state) may be merged into a wait element (e.g., wait element 310 of the 3 ) to be packed.

Beispielhaftes autonomes FahrzeugExemplary autonomous vehicle

7A ist eine Illustration eines Beispiels für ein autonomes Fahrzeug 700 gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das autonome Fahrzeug 700 (hier alternativ als „Fahrzeug 700“ bezeichnet) kann ohne Einschränkung ein Personenfahrzeug sein, wie z. B. ein Pkw, ein Lkw, ein Bus, ein First-Responder-Fahrzeug, ein Shuttle, ein elektrisches oder motorisiertes Fahrrad, ein Motorrad, ein Feuerwehrauto, ein Polizeifahrzeug, ein Krankenwagen, ein Boot, ein Baufahrzeug, ein Unterwasserfahrzeug, eine Drohne, ein an einen Anhänger gekoppeltes Fahrzeug und/oder eine andere Art von Fahrzeug (z. B. ein unbemanntes Fahrzeug und/oder ein Fahrzeug, das einen oder mehrere Fahrgäste aufnimmt). Autonome Fahrzeuge werden im Allgemeinen in Form von Automatisierungsstufen beschrieben, die von der National Highway Traffic Safety Administration (NHTSA), einer Abteilung des US-Verkehrsministeriums, und der Society of Automotive Engineers (SAE) „Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles“ (Standard Nr. J3016-201806, veröffentlicht am 15. Juni 2018, Standard Nr. J3016-201609, veröffentlicht am 30. September 2016, sowie frühere und zukünftige Versionen dieses Standards) definiert werden. Das Fahrzeug 700 kann in der Lage sein, Funktionen gemäß einer oder mehreren der Stufen 3 bis 5 der autonomen Fahrstufen auszuführen. Das Fahrzeug 700 kann Funktionen gemäß einem oder mehreren der Level 1 - Level 5 der autonomen Fahrstufen aufweisen. Beispielsweise kann das Fahrzeug 700 je nach Ausführungsform Fahrerassistenz (Stufe 1), Teilautomatisierung (Stufe 2), bedingte Automatisierung (Stufe 3), hohe Automatisierung (Stufe 4) und/oder vollständige Automatisierung (Stufe 5) bieten. Der Begriff „autonom“, wie er hier verwendet wird, kann jede und/oder alle Arten von Autonomie für das Fahrzeug 700 oder eine andere Maschine umfassen, wie z. B. vollständig autonom, hochgradig autonom, bedingt autonom, teilautonom, unterstützende Autonomie, teilautonom, primär autonom oder eine andere Bezeichnung. 7A FIG. 7 is an illustration of an example of an autonomous vehicle 700, in accordance with some embodiments of the present disclosure. The autonomous vehicle 700 (alternatively referred to herein as “vehicle 700”) may be, without limitation, a passenger vehicle, such as an automobile. B. Car, truck, bus, first responder vehicle, shuttle, electric or motorized bicycle, motorcycle, fire engine, police vehicle, ambulance, boat, construction vehicle, underwater vehicle, drone , a vehicle coupled to a trailer, and/or another type of vehicle (e.g., an unmanned vehicle and/or a vehicle that accommodates one or more passengers). Autonomous vehicles are generally described in terms of automation levels defined by the National Highway Traffic Safety Administration (NHTSA), a division of the US 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 previous and future versions of this standard). The vehicle 700 may be capable of performing functions according to one or more of levels 3 through 5 of the autonomous driving levels. The vehicle 700 may have functionality according to one or more of the Level 1-Level 5 autonomous driving tiers. For example, depending on the embodiment, the vehicle 700 can offer 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 a vehicle. e.g. fully autonomous, highly autonomous, conditionally autonomous, semi-autonomous, supportive autonomy, semi-autonomous, primarily autonomous, or some other designation.

Das Fahrzeug 700 kann Komponenten wie ein Fahrgestell, eine Fahrzeugkarosserie, Räder (z. B. 2, 4, 6, 8, 18 usw.), Reifen, Achsen und andere Komponenten eines Fahrzeugs umfassen. Das Fahrzeug 700 kann ein Antriebssystem 750 umfassen, wie z. B. einen Verbrennungsmotor, ein Hybrid-Elektrokraftwerk, einen reinen Elektromotor und/oder einen anderen Antriebssystemtyp. Das Antriebssystem 750 kann mit einem Antriebsstrang des Fahrzeugs 700 verbunden sein, der ein Getriebe umfassen kann, um den Antrieb des Fahrzeugs 700 zu ermöglichen. Das Antriebssystem 750 kann in Reaktion auf den Empfang von Signalen von der Drosselklappe/Gaspedal 752 gesteuert werden.Vehicle 700 may include components such as a chassis, 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. B. an internal combustion engine, a hybrid electric power plant, a pure electric motor and / or another type of drive system. The propulsion system 750 may be connected to a powertrain of the vehicle 700, which may include a transmission, to enable the vehicle 700 to be propelled. The powertrain 750 may be controlled in response to receiving signals from the throttle/accelerator pedal 752 .

Ein Lenksystem 754, das ein Lenkrad umfassen kann, kann verwendet werden, um das Fahrzeug 700 zu lenken (z. B. entlang eines gewünschten Weges oder einer Route), wenn das Antriebssystem 750 in Betrieb ist (z. B. wenn das Fahrzeug in Bewegung ist). Das Lenksystem 754 kann Signale von einem Lenkaktor 756 empfangen. Das Lenkrad kann optional für die vollständige Automatisierung (Stufe 5) eingesetzt werden.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 operational (e.g., when the vehicle is in movement is). The steering system 754 can receive signals from a steering actuator 756 . The steering wheel can optionally be used for full automation (level 5).

Das Bremssensorsystem 746 kann verwendet werden, um die Fahrzeugbremsen als Reaktion auf den Empfang von Signalen von den Bremsaktoren 748 und/oder Bremssensoren zu betätigen.The brake sensor system 746 may be used to actuate the vehicle brakes in response to receiving signals from the brake actuators 748 and/or brake sensors.

Die Steuereinheit(en) 736, die ein oder mehrere System-on-Chips (SoCs) 704 ( 7C) und/oder GPU(s) umfassen kann (können), kann (können) Signale (z. B. repräsentativ für Befehle) an eine oder mehrere Komponenten und/oder Systeme des Fahrzeugs 700 senden. Beispielsweise kann/können die Steuereinheit(en) Signale zur Betätigung der Fahrzeugbremsen über einen oder mehrere Bremsaktuatoren 748, zur Betätigung des Lenksystems 754 über einen oder mehrere Lenkaktuatoren 756 und zur Betätigung des Antriebssystems 750 über einen oder mehrere Drossel-/Beschleunigungsregler 752 senden. Der Controller 736 kann eine oder mehrere eingebaute (z. B. integrierte) Rechenvorrichtungen (z. B. Supercomputer) umfassen, die Sensorsignale verarbeiten und Betriebsbefehle ausgeben (z. B. Signale, die Befehle darstellen), um autonomes Fahren zu ermöglichen und/oder einen menschlichen Fahrer beim Führen des Fahrzeugs 700 zu unterstützen. Der Controller 736 kann einen ersten Controller 736 für autonome Fahrfunktionen, einen zweiten Controller 736 für funktionale Sicherheitsfunktionen, einen dritten Controller 736 für Funktionen der künstlichen Intelligenz (z. B. Computervision), einen vierten Controller 736 für Infotainment-Funktionen, einen fünften Controller 736 für Redundanz unter Notfallbedingungen und/oder andere Controller umfassen. In einigen Beispielen kann ein einziger Controller 736 zwei oder mehr der oben genannten Funktionen übernehmen, zwei oder mehre Controller 736 können eine einzige Funktion übernehmen und/oder eine beliebige Kombination davon.The controller(s) 736, which include one or more System-on-Chips (SoCs) 704 ( 7C ) and/or GPU(s) may send signals (e.g., representative of commands) to one or more vehicle 700 components and/or systems. For example, the controller(s) may send signals to actuate the vehicle brakes via one or more brake actuators 748, to actuate the steering system 754 via one or more steering actuators 756, and to actuate the propulsion system 750 via one or more throttle/acceleration controllers 752. The controller 736 may include one or more on-board (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 or to assist a human driver in driving the vehicle 700 . The controller 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 (e.g. computer vision) functions, a fourth controller 736 for infotainment functions, a fifth controller 736 for redundancy under emergency conditions and/or other controllers. In some examples, a single controller 736 may perform two or more of the above functions, two or more controllers 736 may perform a single function, and/or any combination thereof.

Der Controller 736 kann die Signale zur Steuerung einer oder mehrerer Komponenten und/oder Systeme des Fahrzeugs 700 als Reaktion auf Sensordaten bereitstellen, die von einem oder mehreren Sensoren (z. B. Sensoreingaben) empfangen werden. Die Sensordaten können beispielsweise und ohne Einschränkung von (einem) Sensor(en) des globalen Navigationssatellitensystems 758 (z. B. Global-Positioning-System-Sensor(en)), RADAR-Sensor(en) 760, Ultraschallsensor(en) 762, LIDAR-Sensor(en) 764, Trägheitsmesseinheit (IMU)-Sensor(en) 766 (z. B., Beschleunigungsmesser, Gyroskop(e), Magnetkompass(e), Magnetometer usw.), Mikrofon(e) 796, Stereokamera(s) 768, Weitwinkelkamera(s) 770 (z. B., Fischaugenkameras), Infrarotkamera(s) 772, Surround-Kamera (s) 774 (z. B. 360-Grad-Kameras), Fern- und/oder Mittelbereichskamera(s) 798, Geschwindigkeitssensor(en) 744 (z. B. zur Messung der Geschwindigkeit des Fahrzeugs 700), Vibrationssensor(en) 742, Lenksensor(en) 740, Bremssensor(en) (z. B. als Teil des Bremssensorsystems 746) und/oder andere Sensortypen.The controller 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 include, for example and without limitation, global navigation satellite system sensor(s) 758 (e.g., global positioning system sensor(s)), RADAR sensor(s) 760, ultrasonic sensor(s) 762, 764 LIDAR Sensor(s), Inertial Measurement Unit (IMU) Sensor(s) 766 (e.g., Accelerometer, Gyroscope(s), Magnetic Compass(s), Magnetometer, etc.), Microphone(s) 796, Stereo Camera(s). ) 768, wide-angle camera(s) 770 (e.g., fisheye cameras), infrared camera(s) 772, surround camera(s) 774 (e.g., 360-degree cameras), long-range and/or mid-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) (e.g. as part of the brake sensor system 746) and /or other sensor types.

Ein oder mehrere Controller 736 können Eingaben (z. B. in Form von Eingabedaten) von einem Kombiinstrument 732 des Fahrzeugs 700 empfangen und Ausgaben (z. B. in Form von Ausgabedaten, Anzeigedaten usw.) über eine Mensch-Maschine-Schnittstelle (HMI)-Anzeige 734, einen akustischen Melder, einen Lautsprecher und/oder über andere Komponenten des Fahrzeugs 700 bereitstellen. Die Ausgaben können Informationen wie Fahrzeuggeschwindigkeit, Drehzahl, Zeit, Kartendaten (z. B. die HD-Karte 722 der 7C), Standortdaten (z. B. der Standort des Fahrzeugs 700, z. B. auf einer Karte), Richtung, Standort anderer Fahrzeuge (z. B. ein Belegungsraster), Informationen über Objekte und den Zustand von Objekten, wie von dem/den Controller(n) 736 wahrgenommen, usw. umfassen. Beispielsweise kann die HMI-Anzeige 734 Informationen über das Vorhandensein eines oder mehrerer Objekte (z. B. ein Straßenschild, ein Warnschild, eine sich ändernde Ampel usw.) und/oder Informationen über Fahrmanöver anzeigen, die das Fahrzeug durchgeführt hat, gerade durchführt oder durchführen wird (z. B. Spurwechsel jetzt, Ausfahrt 34B in zwei Meilen usw.).One or more controllers 736 may receive inputs (e.g., in the form of input data) from an instrument cluster 732 of the vehicle 700 and outputs (e.g., in the form of output data, display data, etc.) via a human-machine interface (HMI ) display 734, an audible indicator, a speaker, and/or via other vehicle 700 components. The outputs can include information such as vehicle speed, RPM, time, map data (e.g. the HD map 722 of the 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 the status of objects, such as from/ perceived by the controller(s) 736, etc. For example, the HMI display 734 may display 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 maneuvers that the vehicle has performed, is performing, or is performing will perform (e.g., change lanes now, exit 34B in two miles, etc.).

Das Fahrzeug 700 umfasst ferner eine Netzwerkschnittstelle 724, die eine oder mehrere drahtlose Antenne(n) 726 und/oder Modem(e) zur Kommunikation über ein oder mehrere Netzwerke verwenden kann. Beispielsweise kann die Netzwerkschnittstelle 724 in der Lage sein, über LTE, WCDMA, UMTS, GSM, CDMA2000 usw. zu kommunizieren. Die drahtlose(n) Antenne(n) 726 kann/können auch die Kommunikation zwischen Objekten in der Umgebung (z. B. Fahrzeuge, mobile Geräte usw.) über lokale Netzwerke wie Bluetooth, Bluetooth LE, Z-Wave, ZigBee usw. und/oder Low Power Wide Area Networks (LPWANs) wie LoRaWAN, SigFox usw. ermöglichen.The vehicle 700 further includes a network interface 724 that may use one or more wireless antenna(s) 726 and/or modem(s) to communicate over one or more networks. For example, network interface 724 may be capable of communicating over LTE, WCDMA, UMTS, GSM, CDMA2000, and so on. The wireless antenna(s) 726 can also enable communication between objects in the vicinity (e.g. vehicles, mobile devices, etc.) via local area networks such as Bluetooth, Bluetooth LE, Z-Wave, ZigBee, etc. and /or Enable Low Power Wide Area Networks (LPWANs) such as LoRaWAN, SigFox, etc.

7B ist ein Beispiel für Kamerapositionen und Sichtfelder für das autonome Fahrzeug 700 der 7A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Die Kameras und die jeweiligen Sichtfelder stellen ein Ausführungsbeispiel dar und sind nicht als einschränkend zu betrachten. Beispielsweise können zusätzliche und/oder alternative Kameras enthalten sein und/oder die Kameras können an verschiedenen Stellen des Fahrzeugs 700 angeordnet sein. 7B 12 is an example of camera positions and fields of view for the autonomous vehicle 700 of FIG 7A , according to some embodiments of the present disclosure. The cameras and respective fields of view represent an example and are not to be considered limiting. For example, additional and/or alternative cameras may be included and/or the cameras may NEN be arranged at different locations of the vehicle 700.

Die Kameratypen für die Kameras können unter anderem Digitalkameras sein, die für die Verwendung mit den Komponenten und/oder Systemen des Fahrzeugs 700 angepasst werden können. Die Kamera(s) kann/können mit der Sicherheitsstufe B (ASIL) und/oder einer anderen ASIL betrieben werden. Die Kameratypen können je nach Ausführungsform eine beliebige Bildaufnahmerate aufweisen, z. B. 60 Bilder pro Sekunde (fps), 120 fps, 240 fps usw. Die Kameras können Rolling Shutter, Global Shutter, einen anderen Verschlusstyp oder eine Kombination davon verwenden. In einigen Beispielen kann die Farbfilteranordnung eine Rot-Klar-Klar-Klar-Farbfilteranordnung (RCCC), eine Rot-Klar-Klar-Blau-Farbfilteranordnung (RCCB), eine Rot-Blau-Grün-Klar-Farbfilteranordnung (RBGC), eine Foveon X3-Farbfilteranordnung, eine Bayer-Sensor-Farbfilteranordnung (RGGB), eine Monochromsensor-Farbfilteranordnung und/oder eine andere Art von Farbfilteranordnung umfassen. In einigen Ausführungsformen können Kameras mit klaren Pixeln, wie z. B. Kameras mit einer RCCC-, einer RCCB- und/oder einer RBGC-Farbfilteranordnung, verwendet werden, um die Lichtempfindlichkeit zu erhöhen.The camera types for the cameras may include, but are not limited to, digital cameras, which may be adapted for use with the vehicle 700 components and/or systems. The camera(s) can be operated with security level B (ASIL) and/or another ASIL. Depending on the embodiment, the camera types can have any image recording rate, e.g. 60 frames per second (fps), 120 fps, 240 fps, etc. The cameras can use rolling shutter, global shutter, another type of shutter, or a combination of these. In some examples, the color filter array may be a red-clear-clear-clear color filter array (RCCC), a red-clear-clear-blue color filter array (RCCB), a red-blue-green-clear color filter array (RBGC), 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 B. cameras with an RCCC, an RCCB and / or an RBGC color filter array can be used to increase the light sensitivity.

In einigen Beispielen können eine oder mehrere der Kameras verwendet werden, um erweiterte Fahrerassistenzsysteme (ADAS) auszuführen (z. B. als Teil einer redundanten oder ausfallsicheren Konstruktion). So kann beispielsweise eine Multifunktions-Monokamera installiert werden, um Funktionen wie Spurhalteassistent, Verkehrszeichenassistent und intelligente Scheinwerfersteuerung bereitzustellen. Eine oder mehrere der Kameras (z. B. alle Kameras) können gleichzeitig Bilddaten (z. B. Video) aufzeichnen und liefern.In some examples, one or more of the cameras may be used to run advanced driver assistance systems (ADAS) (e.g., as part of a redundant or failsafe design). For example, a multifunction mono camera can be installed to provide functions 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 deliver image data (e.g. video).

Eine oder mehrere der Kameras können in einer Montagebaugruppe, z. B. einer kundenspezifischen (3-D-gedruckten) Baugruppe, montiert werden, um Streulicht und Reflexionen aus dem Fahrzeuginneren (z. B. Reflexionen vom Armaturenbrett, die sich in den Windschutzscheibenspiegeln spiegeln) auszuschalten, die die Fähigkeit der Kamera zur Bilddatenerfassung beeinträchtigen könnten. Bei der Montage von Außenspiegeln können die Außenspiegel kundenspezifisch dreidimensional gedruckt werden, so dass die Kameramontageplatte der Form des Außenspiegels entspricht. In einigen Beispielen können die Kameras in den Außenspiegel integriert werden. Bei Seitenkameras können die Kameras auch in die vier Säulen an jeder Ecke der Kabine integriert werden.One or more of the cameras can be mounted in a mounting assembly, e.g. a custom (3D printed) assembly, to eliminate stray light and reflections from inside the vehicle (e.g. reflections from the dashboard reflected in the windshield mirrors) that could affect the camera’s ability to capture image data . When assembling outside mirrors, the outside mirrors can be custom-printed in three dimensions so that the camera mounting plate corresponds to the shape of the outside mirror. In some examples, the cameras may be integrated into the outside mirror. With side cameras, the cameras can also be integrated into the four pillars at each corner of the cabin.

Kameras mit einem Sichtfeld, das Teile der Umgebung vor dem Fahrzeug 700 einschließt (z. B. nach vorne gerichtete Kameras), können für die Umgebungsansicht verwendet werden, um dabei zu helfen, nach vorne gerichtete Wege und Hindernisse zu identifizieren, sowie mit Hilfe eines oder mehrerer Controller 736 und/oder Steuer-SoCs Informationen bereitzustellen, die für die Erstellung eines Belegungsgitters und/oder die Bestimmung der bevorzugten Fahrzeugwege entscheidend sind. Nach vorne gerichtete Kameras können verwendet werden, um viele der gleichen ADAS-Funktionen wie LIDAR auszuführen, einschließlich Notbremsung, Fußgängererkennung und Kollisionsvermeidung. Nach vorne gerichtete Kameras können auch für ADAS-Funktionen und -Systeme wie Spurverlassenswarnung (LDW), autonome Geschwindigkeitsregelung (ACC) und/oder andere Funktionen wie Verkehrszeichenerkennung verwendet werden.Cameras with a field of view that includes portions of the environment in front of the vehicle 700 (e.g., forward-looking cameras) can be used for the environment view to help identify forward-facing paths and obstacles, as well as using a or multiple controllers 736 and/or control SoCs to provide information critical to constructing an occupancy grid and/or determining preferred vehicle paths. 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 functions and systems such as Lane Departure Warning (LDW), Autonomous Cruise Control (ACC), and/or other functions such as Traffic Sign Recognition.

Eine Vielzahl von Kameras kann in einer nach vorne gerichteten Konfiguration verwendet werden, z. B. eine monokulare Kameraplattform mit einem CMOS-Farbbildgeber (Komplementär-Metalloxid-Halbleiter). Ein weiteres Beispiel sind die Weitwinkelkamera(n) 770, die zur Wahrnehmung von Objekten verwendet werden können, die von der Peripherie her ins Blickfeld kommen (z. B. Fußgänger, kreuzende Fahrzeuge oder Fahrräder). Obwohl in 7B nur eine Weitwinkelkamera dargestellt ist, kann das Fahrzeug 700 mit einer beliebigen Anzahl von Weitwinkelkameras 770 ausgestattet sein. Darüber hinaus kann/können die Weitwinkelkamera(s) 798 (z. B. ein Weitwinkel-Stereokamerapaar) zur tiefenbasierten Objekterkennung verwendet werden, insbesondere für Objekte, für die ein neuronales Netz noch nicht trainiert wurde. Die Langstreckenkamera(s) 798 kann/können auch zur Objekterkennung und -klassifizierung sowie zur grundlegenden Objektverfolgung eingesetzt werden.A variety of cameras can be used in a forward-facing configuration, e.g. B. a monocular camera platform with a color CMOS (complementary metal oxide semiconductor) imager. Another example is the wide-angle camera(s) 770, which can be used to perceive objects coming into view from the periphery (e.g., pedestrians, crossing vehicles, or bicycles). Although in 7B only one wide-angle camera is shown, the vehicle 700 may be equipped with any number of wide-angle cameras 770 . Additionally, the wide-angle camera(s) 798 (e.g., a wide-angle stereo camera pair) can be used for depth-based object detection, particularly for objects for which a neural network has not yet been trained. The long-range camera(s) 798 can also be used for object detection and classification, as well as basic object tracking.

Eine oder mehrere Stereokameras 768 können auch in einer nach vorne gerichteten Konfiguration enthalten sein. Die Stereokamera(s) 768 kann/können eine integrierte Steuereinheit enthalten, die eine skalierbare Verarbeitungseinheit umfasst, die eine programmierbare Logik (FPGA) und einen Multicore-Mikroprozessor mit integrierter CAN- oder Ethernet-Schnittstelle auf einem einzigen Chip bereitstellen kann. Mit einer solchen Einheit kann eine 3-D-Karte der Fahrzeugumgebung erstellt werden, einschließlich einer Entfernungsschätzung für alle Punkte im Bild. Eine alternative Stereokamera(n) 768 kann/können einen kompakten Stereosicht-Sensor(en) umfassen, der/die zwei Kameralinsen (je eine auf der linken und rechten Seite) und einen Bildverarbeitungschip enthält/enthalten, der den Abstand zwischen dem Fahrzeug und dem Zielobjekt messen und die erzeugten Informationen (z. B. Metadaten) zur Aktivierung der autonomen Notbrems- und Spurhaltewarnfunktionen verwenden kann. Zusätzlich oder alternativ zu den hier beschriebenen Stereokameras können auch andere Typen von Stereokameras (768) verwendet werden.One or more stereo cameras 768 may also be included in a forward-facing configuration. The stereo camera(s) 768 may include an integrated control unit that includes a scalable processing unit that can provide programmable logic (FPGA) and a multi-core microprocessor with integrated CAN or Ethernet interface on a single chip. With such a unit, a 3-D map of the vehicle's surroundings can be created, including a distance estimate for all points in the image. An alternative stereo camera(s) 768 may include a compact stereo vision sensor(s) that includes two camera lenses (one each on the left and right sides) and an image processing chip that measures the distance between the vehicle and the Measure target object and use the generated information (e.g. metadata) to activate autonomous emergency braking and lane departure warning functions. In addition or as an alternative to those described here Stereo cameras, other types of stereo cameras (768) can also be used.

Kameras mit einem Sichtfeld, das Teile der Umgebung seitlich des Fahrzeugs 700 einschließt (z. B. Seitenkameras), können für die Umgebungsansicht verwendet werden und Informationen liefern, die zur Erstellung und Aktualisierung des Belegungsrasters sowie zur Erzeugung von Kollisionswarnungen bei Seitenaufprall verwendet werden. Beispielsweise können die Surround-Kamera(s) 774 (z. B. vier Surround-Kameras 774 wie in 7B dargestellt) am Fahrzeug 700 positioniert werden. Die Surround-Kamera (s) 774 kann/können Weitwinkelkamera(s) 770, Fischaugenkamera(s), 360-Grad-Kamera(s) und/oder Ähnliches umfassen. Beispielsweise können vier Fischaugenkameras an der Vorderseite, am Heck und an den Seiten des Fahrzeugs angebracht werden. In einer alternativen Anordnung kann das Fahrzeug drei Surround-Kameras 774 (z. B. links, rechts und hinten) verwenden und eine oder mehrere andere Kamera(s) (z. B. eine nach vorne gerichtete Kamera) als vierte Surround-Kamera nutzen.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 generate side impact collision alerts. For example, the surround camera(s) 774 (e.g. four surround cameras 774 as in 7B shown) are positioned on the vehicle 700 . Surround camera(s) 774 may include wide angle camera(s) 770, fisheye camera(s), 360 degree camera(s), and/or the like. For example, four fisheye cameras can be mounted on the front, rear and sides of the vehicle. In an alternative arrangement, the vehicle may use three surround cameras 774 (e.g., left, right, and rear) and utilize one or more other cameras (e.g., a front-facing camera) as the fourth surround camera .

Kameras mit einem Sichtfeld, das Teile der Umgebung hinter dem Fahrzeug 700 einschließt (z. B. Rückfahrkameras), können für die Einparkhilfe, die Umgebungsansicht, Heckkollisionswarnungen und das Erstellen und Aktualisieren des Belegungsrasters verwendet werden. Es kann eine Vielzahl von Kameras verwendet werden, einschließlich, aber nicht beschränkt auf Kameras, die auch als nach vorne gerichtete Kamera(s) geeignet sind (z. B. Fern- und/oder Mittelbereichskamera(s) 798, Stereokamera(s) 768, Infrarotkamera(s) 772 usw.), wie hier beschrieben.Cameras with a field of view that includes portions of the environment behind the vehicle 700 (e.g., backup cameras) may be used for parking assist, surround view, rear collision alerts, and creating and updating the occupancy grid. A variety of cameras may be used, including but not limited to cameras that are also suitable as front-facing camera(s) (e.g., long-range and/or mid-range camera(s) 798, stereo camera(s) 768 , infrared camera(s) 772 etc.) as described here.

7C ist ein Blockdiagramm einer beispielhaften Systemarchitektur für das beispielhafte autonome Fahrzeug 700 der 7A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Es sollte verstanden werden, dass diese und andere hier beschriebene Anordnungen nur als Beispiele dargestellt werden. Andere Anordnungen und Elemente (z. B. Maschinen, Schnittstellen, Funktionen, Anordnungen, Gruppierungen von Funktionen usw.) können zusätzlich zu oder anstelle der dargestellten verwendet werden, und einige Elemente können ganz weggelassen werden. Außerdem sind viele der hier beschriebenen Elemente funktionale Einheiten, die als einzelne oder verteilte Komponenten oder in Verbindung mit anderen Komponenten und in jeder geeigneten Kombination und an jedem geeigneten Ort implementiert werden können. Verschiedene hier beschriebene Funktionen, die von Einheiten ausgeführt werden, können von Hardware, Firmware und/oder Software ausgeführt werden. Beispielsweise können verschiedene Funktionen von einem Prozessor ausgeführt werden, der im Speicher gespeicherte Anweisungen ausführt. 7C FIG. 7 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 presented 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 illustrated, and some elements may be omitted entirely. In addition, many of the elements described herein are functional units that can be implemented as single or distributed components, or in conjunction with other components, and in any suitable combination and location. Various functions described herein performed by devices may be performed by hardware, firmware, and/or software. For example, various functions may be performed by a processor executing instructions stored in memory.

Alle Komponenten, Merkmale und Systeme des Fahrzeugs 700 in 7C sind als über den Bus 702 verbunden dargestellt. Der Bus 702 kann eine Controller Area Network (CAN)-Datenschnittstelle enthalten (hier alternativ als „CAN-Bus“ bezeichnet). Bei einem CAN-Bus kann es sich um ein Netzwerk innerhalb des Fahrzeugs 700 handeln, das zur Steuerung verschiedener Merkmale und Funktionen des Fahrzeugs 700 verwendet wird, z. B. zur Betätigung von Bremsen, Beschleunigung, Bremsen, Lenkung, Scheibenwischern usw. Ein CAN-Bus kann so konfiguriert sein, dass er Dutzende oder sogar Hunderte von Knoten hat, von denen jeder seine eigene eindeutige Kennung hat (z. B. eine CAN-ID). Der CAN-Bus kann ausgelesen werden, um den Lenkradwinkel, die Fahrgeschwindigkeit, die Motordrehzahl (RPM), die Tastenpositionen und/oder andere Fahrzeugstatusanzeigen zu ermitteln. Der CAN-Bus kann ASIL B-konform sein.All components, features and systems of the vehicle 700 in 7C are shown connected via bus 702 . Bus 702 may include a controller area network (CAN) data interface (alternatively referred to herein as “CAN bus”). A CAN bus can be a network within the vehicle 700 that is used to control various features and functions of the vehicle 700, e.g. to operate brakes, acceleration, brakes, steering, windshield wipers, etc. A CAN bus can be configured to have tens or even hundreds of nodes, each with its own unique identifier (e.g. a CAN ID). The CAN bus can be read to determine steering wheel angle, vehicle speed, engine speed (RPM), button positions and/or other vehicle status indicators. The CAN bus can be ASIL B compliant.

Obwohl der Bus 702 hier als CAN-Bus beschrieben wird, ist dies nicht als Einschränkung zu verstehen. Beispielsweise können zusätzlich oder alternativ zum CAN-Bus auch FlexRay und/oder Ethernet verwendet werden. Auch wenn der Bus 702 durch eine einzige Leitung dargestellt wird, ist dies nicht als Einschränkung zu verstehen. Beispielsweise kann es eine beliebige Anzahl von Bussen 702 geben, die einen oder mehrere CAN-Busse, einen oder mehrere FlexRay-Busse, einen oder mehrere Ethernet-Busse und/oder einen oder mehrere andere Arten von Bussen mit einem anderen Protokoll umfassen können. In einigen Beispielen können zwei oder mehr Busse 702 verwendet werden, um unterschiedliche Funktionen auszuführen, und/oder sie können zur Redundanz verwendet werden. So kann beispielsweise ein erster Bus 702 für die Kollisionsvermeidungsfunktionalität und ein zweiter Bus 702 für die Betätigungssteuerung verwendet werden. In jedem Beispiel kann jeder Bus 702 mit einer beliebigen Komponente des Fahrzeugs 700 kommunizieren, und zwei oder mehr Busse 702 können mit denselben Komponenten kommunizieren. In einigen Beispielen kann jeder SoC 704, jeder Controller 736 und/oder jeder Computer innerhalb des Fahrzeugs Zugriff auf dieselben Eingangsdaten haben (z. B. Eingaben von Sensoren des Fahrzeugs 700) und mit einem gemeinsamen Bus, wie dem CAN-Bus, verbunden sein.Although bus 702 is described herein as a CAN bus, this is not intended to be limiting. For example, FlexRay and/or Ethernet can also be used in addition or as an alternative to the CAN bus. Although bus 702 is represented by a single line, this is not intended to be limiting. 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 with a different protocol. In some examples, two or more buses 702 can be used to perform different functions and/or they can be used for redundancy. For example, a first bus 702 may be used for collision avoidance functionality and a second bus 702 for actuation control. In each example, each bus 702 can communicate with any component of the vehicle 700, and two or more buses 702 can 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 be connected to a common bus, such as the CAN bus .

Das Fahrzeug 700 kann ein oder mehrere Controller 736 enthalten, wie sie hier in Bezug auf 7A beschrieben sind. Der Controller 736 kann für eine Vielzahl von Funktionen verwendet werden. Der Controller 736 kann mit den verschiedenen anderen Komponenten und Systemen des Fahrzeugs 700 gekoppelt werden und kann für die Steuerung des Fahrzeugs 700, die künstliche Intelligenz des Fahrzeugs 700, das Infotainment für das Fahrzeug 700 und/oder Ähnliches verwendet werden.The vehicle 700 may include one or more controllers 736 as described herein with respect to FIG 7A are described. The 736 controller can be used for a variety of functions. The controller 736 may be coupled to the various other components and systems of the vehicle 700 and may be used to control tion of the vehicle 700, the artificial intelligence of the vehicle 700, the infotainment for the vehicle 700 and/or the like.

Das Fahrzeug 700 kann ein oder mehrere System(e) auf einem Chip (SoC) 704 enthalten. Der SoC 704 kann CPU(s) 706, GPU(s) 708, Prozessor(en) 710, Cache(s) 712, Beschleuniger 714, Datenspeicher 716 und/oder andere nicht dargestellte Komponenten und Merkmale umfassen. Der/die SoC(s) 704 kann/können zur Steuerung des Fahrzeugs 700 in einer Vielzahl von Plattformen und Systemen verwendet werden. Beispielsweise können die SoC(s) 704 in einem System (z. B. dem System des Fahrzeugs 700) mit einer HD-Karte 722 kombiniert werden, die Kartenaktualisierungen und/oder -aktualisierungen über eine Netzwerkschnittstelle 724 von einem oder mehreren Servern (z. B. dem/den Server(n) 778 der 7D) erhalten kann.The vehicle 700 may include one or more systems on a chip (SoC) 704 . SoC 704 may include CPU(s) 706, GPU(s) 708, processor(s) 710, cache(s) 712, accelerators 714, memory 716, and/or other components and features not shown. The SoC(s) 704 can be used to control the vehicle 700 in a variety of platforms and systems. For example, the SoC(s) 704 may be combined in a system (e.g., the vehicle's 700 system) with an HD card 722 that may receive map updates and/or updates over a network interface 724 from one or more servers (e.g., B. the server(s) 778 the 7D ) can get.

Die CPU(s) 706 kann/können einen CPU-Cluster oder CPU-Komplex (hier auch als „CCPLEX“ bezeichnet) umfassen. Die CPU(s) 706 kann/können mehrere Kerne und/oder L2-Caches enthalten. In einigen Ausführungsformen können die CPU(s) 706 beispielsweise acht Kerne in einer kohärenten Multiprozessorkonfiguration umfassen. In einigen Ausführungsformen kann (können) die CPU(s) 706 vier Dual-Core-Cluster umfassen, wobei jeder Cluster über einen dedizierten L2-Cache verfügt (z. B. einen 2 MB L2-Cache). Die CPU(s) 706 (z. B. der CCPLEX) kann/können so konfiguriert werden, dass sie den gleichzeitigen Betrieb von Clustern unterstützt/unterstützen, so dass eine beliebige Kombination von Clustern der CPU(s) 706 zu einem bestimmten Zeitpunkt aktiv sein kann.The CPU(s) 706 may comprise a CPU cluster or CPU complex (also referred to herein as "CCPLEX"). The CPU(s) 706 may include multiple cores and/or L2 caches. For example, in some embodiments, CPU(s) 706 may include eight cores in a coherent multiprocessor configuration. In some embodiments, the CPU(s) 706 may include four dual-core clusters, with each cluster having a dedicated L2 cache (e.g., a 2MB L2 cache). The CPU(s) 706 (e.g., the CCPLEX) can be configured to support concurrent operation of clusters such that any combination of CPU(s) 706 clusters are active at any given time can be.

Die CPU(s) 706 kann/können Energieverwaltungsfunktionen implementieren, die eines oder mehrere der folgenden Merkmale umfassen: einzelne Hardwareblöcke können im Leerlauf automatisch taktgesteuert werden, um dynamische Energie zu sparen; jeder Kerntakt kann gesteuert werden, wenn der Kern aufgrund der Ausführung von WFI/WFE-Befehlen nicht aktiv Befehle ausführt; jeder Kern kann unabhängig stromgesteuert werden; jeder Kerncluster kann unabhängig taktgesteuert werden, wenn alle Kerne taktgesteuert oder stromgesteuert sind; und/oder jeder Kerncluster kann unabhängig stromgesteuert werden, wenn alle Kerne stromgesteuert sind. Die CPU(s) 706 kann/können darüber hinaus einen erweiterten Algorithmus zur Verwaltung von Energiezuständen implementieren, bei dem zulässige Energiezustände und erwartete Aufwachzeiten festgelegt werden und die Hardware/der Mikrocode den besten Energiezustand für den Kern, den Cluster und CCPLEX bestimmt. Die Prozessorkerne können vereinfachte Sequenzen für den Eintritt in den Energiezustand in Software unterstützen, wobei die Arbeit an den Mikrocode ausgelagert wird.The CPU(s) 706 may implement power management functions that include one or more of the following features: individual hardware blocks may be automatically clocked when idle to conserve dynamic power; each core clock can be controlled when the core is not actively executing commands due to the execution of WFI/WFE commands; each core can be independently current controlled; each core cluster can be independently clocked if all cores are clocked or power-driven; and/or each core cluster can be independently current controlled if all cores are current controlled. The CPU(s) 706 may also implement an advanced power state management algorithm where allowable power states and expected wake up times are set and the hardware/microcode determines the best power state for the core, cluster and CCPLEX. The processor cores may support simplified power state entry sequences in software, with the work offloaded to microcode.

Die GPUs 708 können eine integrierte GPU sein (hier alternativ als „iGPU“ bezeichnet). Die GPU(s) 708 kann/können programmierbar und für parallele Arbeitslasten effizient sein. Die GPU(s) 708 kann/können in einigen Beispielen einen erweiterten Tensor-Befehlssatz verwenden. Die GPU(s) 708 kann/können einen oder mehrere Streaming-Mikroprozessoren enthalten, wobei jeder Streaming-Mikroprozessor einen L1-Cache (z. B. einen L1-Cache mit mindestens 96 KB Speicherkapazität) enthalten kann und zwei oder mehr der Streaming-Mikroprozessoren sich einen L2-Cache (z. B. einen L2-Cache mit 512 KB Speicherkapazität) teilen können. In einigen Ausführungsformen kann die GPU (bzw. können die GPUs) 708 mindestens acht Streaming-Mikroprozessoren umfassen. Die GPU(s) 708 kann (können) eine oder mehrere Programmierschnittstellen (API(s)) für Berechnungen verwenden. Darüber hinaus können die GPU(s) 708 eine oder mehrere parallele Rechenplattformen und/oder Programmiermodelle (z. B. CUDA von NVIDIA) verwenden.The GPUs 708 may be an integrated GPU (alternatively referred to herein as “iGPU”). The GPU(s) 708 may be programmable and efficient for parallel workloads. The GPU(s) 708 may use an extended tensor instruction set in some examples. The GPU(s) 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 storage capacity) and two or more of the streaming Microprocessors can share an L2 cache (e.g. a 512 KB L2 cache). In some embodiments, the GPU (or GPUs) 708 may include at least eight streaming microprocessors. The GPU(s) 708 may use one or more application programming interfaces (API(s)) for computations. Additionally, the GPU(s) 708 may use one or more parallel computing platforms and/or programming models (e.g., NVIDIA's CUDA).

Der/die Grafikprozessor(en) 708 kann/können für die beste Leistung in Automobil- und eingebetteten Anwendungsfällen optimiert werden. Die GPU(s) 708 kann/können beispielsweise auf einem Fin-Feldeffekttransistor (FinFET) hergestellt werden. Dies ist jedoch nicht als Einschränkung zu verstehen, und die GPU(s) 708 können auch mit anderen Halbleiterfertigungsverfahren hergestellt werden. Jeder Streaming-Mikroprozessor kann eine Anzahl von in mehrere Blöcke unterteilten gemischt-präzisen Rechenkernen enthalten. So können beispielsweise 64 PF32-Kerne und 32 PF64-Kerne in vier Verarbeitungsblöcke unterteilt werden, ohne darauf beschränkt zu sein. In einem solchen Beispiel können jedem Verarbeitungsblock 16 FP32-Kerne, 8 FP64-Kerne, 16 INT32-Kerne, zwei NVIDIA TENSOR COREs mit gemischter Präzision für Deep-Learning-Matrixarithmetik, ein L0-Befehlscache, ein Warp-Scheduler, eine Dispatch-Einheit und/oder eine 64-KB-Registerdatei zugewiesen werden. Darüber hinaus können die Streaming-Mikroprozessoren unabhängige parallele Ganzzahl- und Gleitkomma-Datenpfade enthalten, um eine effiziente Ausführung von Arbeitslasten mit einer Mischung aus Berechnungen und Adressierungsberechnungen zu ermöglichen. Die Streaming-Mikroprozessoren können eine unabhängige Thread-Planungsfunktion enthalten, um eine feinere Synchronisierung und Zusammenarbeit zwischen parallelen Threads zu ermöglichen. Die Streaming-Mikroprozessoren können einen kombinierten L1-Datencache und eine gemeinsame Speichereinheit enthalten, um die Leistung zu verbessern und gleichzeitig die Programmierung zu vereinfachen.The graphics processor(s) 708 can be optimized for best performance in automotive and embedded use cases. The GPU(s) 708 may be fabricated on a fin field effect transistor (FinFET), for example. This is not meant to be limiting, however, and the GPU(s) 708 may be fabricated using other semiconductor manufacturing processes. Each streaming microprocessor may contain a number of mixed-precision cores divided into multiple blocks. For example, but not limited to, 64 PF32 cores and 32 PF64 cores can be divided into four processing blocks. In such an example, each processing block can have 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 data paths to enable efficient execution of workloads with a mix of computation and addressing computation. The streaming microprocessors may include an independent thread scheduling facility to allow finer granular synchronization and collaboration between parallel threads. The streaming microprocessors may include a combined L1 data cache and shared memory unit to improve performance while simplifying programming.

Der/die Grafikprozessor(en) 708 kann/können einen Speicher mit hoher Bandbreite (HBM) und/oder ein 16-GB-HBM2-Speicher-Subsystem umfassen, um in einigen Beispielen eine Spitzen-Speicherbandbreite von etwa 900 GB/Sekunde bereitzustellen. In einigen Beispielen kann zusätzlich oder alternativ zum HBM-Speicher ein synchroner Grafik-Direktzugriffsspeicher (SGRAM) verwendet werden, beispielsweise ein synchroner Grafik-Doppeldatenraten-Direktzugriffsspeicher vom Typ 5 (GDDR5).Graphics processor(s) 708 may include high bandwidth memory (HBM) and/or a 16GB HBM2 memory subsystem to provide peak memory bandwidth of about 900GB/second in some examples. In some examples, a synchronous graphics random access memory (SGRAM), such as a double data rate synchronous graphics random access memory type 5 (GDDR5), may be used in addition to or as an alternative to HBM memory.

Die GPU(s) 708 kann/können eine einheitliche Speichertechnologie mit Zugriffszählern enthalten, um eine genauere Zuweisung von Speicherseiten an den Prozessor zu ermöglichen, der am häufigsten auf sie zugreift, und so die Effizienz der von den Prozessoren gemeinsam genutzten Speicherbereiche zu verbessern. In einigen Beispielen kann die Unterstützung von Adressübersetzungsdiensten (ATS) verwendet werden, damit die GPU(s) 708 direkt auf die Seitentabellen der CPU(s) 706 zugreifen können. In solchen Beispielen kann, wenn die Speicherverwaltungseinheit (MMU) der GPU(s) 708 einen Fehler feststellt, eine Adressübersetzungsanforderung an die CPU(s) 706 übermittelt werden. Als Reaktion darauf kann die CPU(s) 706 in ihren Seitentabellen nach der virtuell-physikalischen Zuordnung für die Adresse suchen und die Übersetzung an die GPU(s) 708 zurückübertragen. So kann die Unified-Memory-Technologie einen einzigen, einheitlichen virtuellen Adressraum für den Speicher sowohl der CPU(s) 706 als auch der GPU(s) 708 ermöglichen und dadurch die Programmierung der GPU(s) 708 und die Portierung von Anwendungen auf die GPU(s) 708 vereinfachen.The GPU(s) 708 may include unified memory technology with access counters to allow more accurate allocation of memory pages to the processor that accesses them most often, thereby improving the efficiency of the memory areas shared between the processors. In some examples, address translation services (ATS) support may be used to allow GPU(s) 708 to access CPU(s) 706 page tables directly. In such examples, if the memory management unit (MMU) of the GPU(s) 708 encounters an error, an address translation request may be communicated to the CPU(s) 706. In response, the CPU(s) 706 may look up the virtual-physical mapping for the address in its page tables and transmit the translation back to the GPU(s) 708. Thus, unified memory technology can enable a single, unified virtual address space for the memory of both the CPU(s) 706 and the GPU(s) 708, thereby enabling the programming of the GPU(s) 708 and the porting of applications to the Simplify GPU(s) 708.

Darüber hinaus können die GPU(s) 708 einen Zugriffszähler enthalten, der die Häufigkeit des Zugriffs der GPU(s) 708 auf den Speicher anderer Prozessoren verfolgt. Der Zugriffszähler kann dazu beitragen, dass Speicherseiten in den physischen Speicher desjenigen Prozessors verschoben werden, der am häufigsten auf die Seiten zugreift.In addition, the GPU(s) 708 may include an access counter that tracks the number of times the GPU(s) 708 have accessed the memory of other processors. The hit counter can help move memory pages to the physical memory of the processor that is accessing the pages most frequently.

Der/die SoC(s) 704 kann/können eine beliebige Anzahl von Cache(s) 712 enthalten, einschließlich der hier beschriebenen. Der/die Cache(s) 712 kann/können beispielsweise einen L3-Cache enthalten, der sowohl der/den CPU(s) 706 als auch der/den GPU(s) 708 zur Verfügung steht (z. B. der sowohl mit der/den CPU(s) 706 als auch mit der/den GPU(s) 708 verbunden ist). Der/die Cache(s) 712 kann/können einen Write-Back-Cache umfassen, der die Zustände von Zeilen verfolgen kann, z. B. durch Verwendung eines Cache-Kohärenzprotokolls (z. B. MEI, MESI, MSI usw.). Der L3-Cache kann je nach Ausführungsform 4 MB oder mehr umfassen, obwohl auch kleinere Cache-Größen verwendet werden können.The SoC(s) 704 may include any number of cache(s) 712, including those described herein. The cache(s) 712 may include, for example, an L3 cache available to both the CPU(s) 706 and the GPU(s) 708 (e.g., shared with both the /the CPU(s) 706 as well as the GPU(s) 708). The cache(s) 712 may include a write-back cache that may track the states of lines, e.g. B. by using a cache coherency protocol (e.g. MEI, MESI, MSI, etc.). The L3 cache can be 4MB or larger depending on the embodiment, although smaller cache sizes can also be used.

Der/die SoC(s) 704 kann/können eine arithmetische Logikeinheit(en) (ALU(s)) enthalten, die bei der Durchführung von Verarbeitungen in Bezug auf eine der verschiedenen Aufgaben oder Operationen des Fahrzeugs 700 - wie der Verarbeitung von DNNs - genutzt werden kann. Darüber hinaus kann/können der/die SoC(s) 704 eine Gleitkommaeinheit(en) (FPU(s)) - oder andere mathematische Koprozessoren oder numerische Koprozessortypen - zur Durchführung mathematischer Operationen innerhalb des Systems enthalten. Beispielsweise können die SoC(s) 104 eine oder mehrere FPUs enthalten, die als Ausführungseinheiten in eine CPU(s) 706 und/oder GPU(s) 708 integriert sind.The SoC(s) 704 may include an arithmetic logic unit(s) (ALU(s)) that are used in performing processing related to one of the various tasks or operations of the vehicle 700 - such as processing DNNs - can be used. In addition, the SoC(s) 704 may include a floating point unit(s) (FPU(s)) - or other math coprocessor or numeric coprocessor type - for performing math operations within the system. For example, the SoC(s) 104 may include one or more FPUs that are integrated into a CPU(s) 706 and/or GPU(s) 708 as execution units.

Der/die SoC(s) 704 kann/können einen oder mehrere Beschleuniger 714 enthalten (z. B. Hardware-Beschleuniger, Software-Beschleuniger oder eine Kombination davon). Beispielsweise können die SoC(s) 704 einen Hardware-Beschleunigungscluster enthalten, der optimierte Hardware-Beschleuniger und/oder einen großen On-Chip-Speicher umfassen kann. Der große On-Chip-Speicher (z. B. 4 MB SRAM) kann den Hardware-Beschleunigungscluster in die Lage versetzen, neuronale Netzwerke und andere Berechnungen zu beschleunigen. Der Hardware-Beschleunigungscluster kann zur Ergänzung der GPU(s) 708 und zur Entlastung einiger Aufgaben der GPU(s) 708 verwendet werden (z. B. um mehr Zyklen der GPU(s) 708 für die Durchführung anderer Aufgaben freizugeben). Der/die Beschleuniger 714 kann/können beispielsweise für gezielte Arbeitslasten (z. B. Wahrnehmung, Faltungsneuronale Netze (CNNs) usw.) verwendet werden, die stabil genug sind, um beschleunigt werden zu können. Der hier verwendete Begriff „CNN“ kann alle Arten von CNNs umfassen, einschließlich regionenbasierter oder regionaler neuronaler Faltungsnetze (RCNNs) und schneller RCNNs (z. B. für die Objekterkennung).The SoC(s) 704 may include one or more accelerators 714 (e.g., hardware accelerators, software accelerators, or a combination thereof). For example, the SoC(s) 704 may 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) can enable the hardware acceleration cluster to accelerate neural networks and other calculations. The hardware acceleration cluster may be used to complement the GPU(s) 708 and offload some tasks from the GPU(s) 708 (e.g., to free up more cycles of the GPU(s) 708 to perform other tasks). For example, the accelerator(s) 714 may be used for targeted workloads (e.g., perception, convolutional neural networks (CNNs), etc.) that are stable enough to be accelerated. As used herein, the term "CNN" can encompass all types of CNNs, including region-based or regional convolutional neural networks (RCNNs) and fast RCNNs (eg, for object detection).

Der/die Beschleuniger 714 (z. B. der Hardware-Beschleunigungscluster) kann/können einen Deep-Learning-Beschleuniger (DLA) enthalten. Der/die DLA(s) kann/können eine oder mehrere Tensor Processing Units (TPUs) umfassen, die so konfiguriert sein können, dass sie zusätzliche zehn Billionen Operationen pro Sekunde für Deep-Learning-Anwendungen und Inferencing bereitstellen. Bei den TPUs kann es sich um Beschleuniger handeln, die für die Ausführung von Bildverarbeitungsfunktionen (z. B. für CNNs, RCNNs usw.) konfiguriert und optimiert sind. Die DLA(s) können darüber hinaus für einen bestimmten Satz von neuronalen Netzwerktypen und Gleitkommaoperationen sowie zur Inferenz optimiert sein. Das Design der DLA(s) kann mehr Leistung pro Millimeter bieten als eine Allzweck-GPU und übertrifft die Leistung einer CPU bei weitem. Die TPU(s) kann/können mehrere Funktionen ausführen, einschließlich einer Einzelinstanz-Faltungsfunktion, die z. B. INT8-, INT16- und FP16-Datentypen sowohl für Merkmale als auch für Gewichte sowie Postprozessorfunktionen unterstützt.The accelerator(s) 714 (e.g., hardware acceleration cluster) may include a deep learning accelerator (DLA). The DLA(s) may include one or more Tensor Processing Units (TPUs) that may be configured to provide an additional tens of trillion operations per second for deep learning applications and inferencing. The TPUs can be accelerators configured and optimized to perform image processing functions (e.g. for CNNs, RCNNs, etc.). The DLA(s) may also be optimized for a particular set of neural network types and floating point operations, and for inference. The design of the DLA(s) can offer more performance per millimeter than a general purpose GPU and far exceeds the performance of a CPU. The TPU(s) can perform multiple functions, including a single instance Convolution function z. B. INT8, INT16 and FP16 data types are supported for both features and weights as well as post-processor functions.

Die DLA(s) können schnell und effizient neuronale Netze, insbesondere CNNs, auf verarbeiteten oder unverarbeiteten Daten für eine Vielzahl von Funktionen ausführen, darunter beispielsweise und ohne Einschränkung: ein CNN für die Identifizierung und Erkennung von Objekten unter Verwendung von Daten von Kamerasensoren; ein CNN für die Abstandsschätzung unter Verwendung von Daten von Kamerasensoren; ein CNN für die Erkennung und Identifizierung von Einsatzfahrzeugen und die Erkennung unter Verwendung von Daten von Mikrofonen; ein CNN für die Gesichtserkennung und die Identifizierung von Fahrzeugbesitzern unter Verwendung von Daten von Kamerasensoren; und/oder ein CNN für sicherheitsrelevante Ereignisse.The DLA(s) can quickly and efficiently run neural networks, particularly CNNs, on processed or unprocessed data for a variety of functions including, 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 and detection using data from microphones; a CNN for facial recognition and vehicle owner identification using data from camera sensors; and/or a CNN for security-related events.

Die DLA(s) können jede Funktion der GPU(s) 708 ausführen, und durch die Verwendung eines Inferenzbeschleunigers kann ein Entwickler beispielsweise entweder die DLA(s) oder die GPU(s) 708 für eine beliebige Funktion einsetzen. Beispielsweise kann der Entwickler die Verarbeitung von CNNs und Gleitkommaoperationen auf die DLA(s) konzentrieren und andere Funktionen der GPU(s) 708 und/oder anderen Beschleunigern 714 überlassen.The DLA(s) can perform any function of the GPU(s) 708, and through use of an inference accelerator, for example, a developer can use either the DLA(s) or the GPU(s) 708 for any function. For example, the developer may concentrate the processing of CNNs and floating point operations on the DLA(s) and leave other functions to the GPU(s) 708 and/or other accelerators 714.

Der/die Beschleuniger 714 (z. B. der Hardware-Beschleunigungscluster) kann/können einen programmierbaren Bildverarbeitungsbeschleuniger (PVA) umfassen, der hier alternativ auch als Computer-Vision-Beschleuniger bezeichnet werden kann. Der/die PVA(s) kann/können zur Beschleunigung von Computervision-Algorithmen für fortschrittliche Fahrerassistenzsysteme (ADAS), autonomes Fahren und/oder Augmented-Reality- (AR) und/oder Virtual-Reality- (VR) Anwendungen entwickelt und konfiguriert werden. Die PVA(s) können ein Gleichgewicht zwischen Leistung und Flexibilität bieten. So kann jede PVA beispielsweise und ohne Einschränkung eine beliebige Anzahl von RISC-Kernen (Computer mit reduziertem Befehlssatz), direkten Speicherzugriff (DMA) und/oder eine beliebige Anzahl von Vektorprozessoren umfassen.The accelerator(s) 714 (e.g., hardware acceleration cluster) may include a programmable image processing accelerator (PVA), which may alternatively be referred to herein as a computer vision accelerator. The PVA(s) can be developed 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 PVA(s) can provide a balance between performance and flexibility. For example, and without limitation, each PVA may include any number of reduced instruction set computer (RISC) cores, direct memory access (DMA), and/or any number of vector processors.

Die RISC-Kerne können mit Bildsensoren (z. B. den Bildsensoren einer der hier beschriebenen Kameras), Bildsignalprozessoren und/oder dergleichen zusammenwirken. Jeder der RISC-Kerne kann eine beliebige Menge an Speicher enthalten. Die RISC-Kerne können je nach Ausführungsform eine beliebige Anzahl von Protokollen verwenden. In einigen Beispielen können die RISC-Kerne ein Echtzeitbetriebssystem (RTOS) ausführen. Die RISC-Kerne können mit einem oder mehreren integrierten Schaltungen, anwendungsspezifischen integrierten Schaltungen (ASICs) und/oder Speicherbausteinen implementiert werden. Die RISC-Kerne können beispielsweise einen Befehls-Cache und/oder ein eng gekoppeltes RAM enthalten.The RISC cores can interact with image sensors (e.g. the image sensors of one of the cameras described here), image signal processors and/or the like. Each of the RISC cores can contain any amount of memory. The RISC cores can use any number of protocols depending on the embodiment. In some examples, the RISC cores can run a real-time operating system (RTOS). The RISC cores can 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.

Der DMA kann es Komponenten der PVA(s) ermöglichen, unabhängig von der/den CPU(s) 706 auf den Systemspeicher zuzugreifen. Der DMA kann eine beliebige Anzahl von Funktionen unterstützen, die zur Optimierung der PVA verwendet werden, einschließlich, aber nicht beschränkt auf die Unterstützung von mehrdimensionaler Adressierung und/oder zirkulärer Adressierung. In einigen Beispielen kann der DMA bis zu sechs oder mehr Dimensionen der Adressierung unterstützen, die Blockbreite, Blockhöhe, Blocktiefe, horizontale Blockabstufung, vertikale Blockabstufung und/oder Tiefenabstufung umfassen können.DMA may allow components of the PVA(s) to access system memory independently of the CPU(s) 706. The DMA can support any number of functions used to optimize the PVA, including but not limited to supporting 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 gradation, vertical block gradation, and/or depth gradation.

Bei den Vektorprozessoren kann es sich um programmierbare Prozessoren handeln, die so konzipiert sein können, dass sie die Programmierung von Computer-Vision-Algorithmen effizient und flexibel ausführen und Signalverarbeitungsfunktionen bereitstellen. In einigen Beispielen kann die PVA einen PVA-Kern und zwei Vektorverarbeitungs-Subsystem-Partitionen umfassen. Der PVA-Kem kann ein Prozessor-Subsystem, DMA-Engine(s) (z.B. zwei DMA-Engines) und/oder andere Peripheriegeräte umfassen. Das Vektorverarbeitungs-Teilsystem kann als primäre Verarbeitungseinheit der PVA fungieren und eine Vektorverarbeitungseinheit (VPU), einen Befehlscache und/oder einen Vektorspeicher (z. B. VMEM) umfassen. Ein VPU-Kern kann einen digitalen Signalprozessor wie beispielsweise einen SIMD-Digitalprozessor (Single Instruction, Multiple Data) mit sehr langen Befehlsworten (VLIW) umfassen. Die Kombination von SIMD und VLIW kann den Durchsatz und die Geschwindigkeit erhöhen.The vector processors can be programmable processors that can be designed to efficiently and flexibly perform computer vision algorithm programming 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, DMA engine(s) (e.g., two DMA engines), and/or other peripherals. The vector processing subsystem may function as the primary processing unit of the PVA and may include a vector processing unit (VPU), an instruction cache, and/or vector memory (e.g., VMEM). A VPU core may include a digital signal processor such as a SIMD (single instruction, multiple data) digital processor with very long instruction words (VLIW). The combination of SIMD and VLIW can increase throughput and speed.

Jeder der Vektorprozessoren kann einen Befehls-Cache enthalten und mit einem dedizierten Speicher verbunden sein. Daher kann in einigen Beispielen jeder der Vektorprozessoren so konfiguriert sein, dass er unabhängig von den anderen Vektorprozessoren arbeitet. In anderen Beispielen können die Vektorprozessoren, die in einer bestimmten PVA enthalten sind, so konfiguriert sein, dass sie Datenparallelität verwenden. In einigen Ausführungsformen kann beispielsweise die Mehrzahl der in einer einzigen PVA enthaltenen Vektorprozessoren denselben Computer-Vision-Algorithmus ausführen, jedoch für unterschiedliche Bereiche eines Bildes. In anderen Beispielen können die in einer bestimmten PVA enthaltenen Vektorprozessoren gleichzeitig verschiedene Computer-Vision-Algorithmen für dasselbe Bild oder sogar verschiedene Algorithmen für aufeinander folgende Bilder oder Teile eines Bildes ausführen. Unter anderem kann eine beliebige Anzahl von PVAs im Hardware-Beschleunigungscluster enthalten sein und eine beliebige Anzahl von Vektorprozessoren in jeder der PVAs. Darüber hinaus können die PVA(s) einen zusätzlichen Fehlerkorrekturcode (ECC) Speicher enthalten, um die Sicherheit des Gesamtsystems zu erhöhen.Each of the vector processors may include an instruction cache and may be associated with dedicated memory. Therefore, in some examples, each of the vector processors can 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 for different regions of an image. In other examples, the vector processors included in a particular PVA may simultaneously run different computer vision algorithms on the same image, or even different algorithms on consecutive images or portions of an image. Among other things, any number of PVAs in the hardware acceleration cluster and any number of vector processors in each of the PVAs. In addition, the PVA(s) may include additional error correction code (ECC) memory to increase overall system security.

Der (die) Beschleuniger 714 (z. B. der Hardware-Beschleunigungscluster) kann (können) ein Computer-Vision-Netzwerk auf dem Chip und SRAM enthalten, um ein SRAM mit hoher Bandbreite und niedriger Latenz für den (die) Beschleuniger 714 bereitzustellen. In einigen Beispielen kann der On-Chip-Speicher mindestens 4 MB SRAM umfassen, der beispielsweise und ohne Einschränkung aus acht feldkonfigurierbaren Speicherblöcken besteht, auf die sowohl die PVA als auch die DLA zugreifen können. Jedes Paar von Speicherblöcken kann eine APB-Schnittstelle (Advanced Peripheral Bus), Konfigurationsschaltungen, einen Controller und einen Multiplexer umfassen. Es kann jeder beliebige Speichertyp verwendet werden. Die PVA und die DLA können auf den Speicher über ein Backbone zugreifen, das der PVA und der DLA einen Hochgeschwindigkeitszugriff auf den Speicher ermöglicht. Das Backbone kann ein Computer-Vision-Netzwerk auf dem Chip umfassen, das die PVA und die DLA mit dem Speicher verbindet (z. B. unter Verwendung des APB).The accelerator(s) 714 (e.g., hardware acceleration cluster) may include an on-chip computer vision network and SRAM to provide high-bandwidth, low-latency SRAM for the accelerator(s) 714 . In some examples, the on-chip memory may include at least 4MB of SRAM consisting of, for example and without limitation, eight field-configurable memory blocks accessible to 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 can be used. The PVA and the DLA can access the storage over a backbone that allows the PVA and the DLA to access the storage at high speed. The backbone may include an on-chip computer vision network that connects the PVA and DLA to memory (e.g., using the APB).

Das Computervision-Netz auf dem Chip kann eine Schnittstelle enthalten, die vor der Übertragung von Steuersignalen/Adressen/Daten feststellt, dass sowohl die PVA als auch die DLA einsatzbereite und gültige Signale liefern. Eine solche Schnittstelle kann getrennte Phasen und getrennte Kanäle für die Übertragung von Steuersignalen/Adressen/Daten sowie eine Burst-Kommunikation für die kontinuierliche Datenübertragung vorsehen. Diese Art von Schnittstelle kann den Normen ISO 26262 oder IEC 61508 entsprechen, es können aber auch andere Normen und Protokolle verwendet werden.The on-chip computer vision network may include an interface that determines that both the PVA and DLA are providing operational and valid signals before transferring control signals/address/data. Such an interface may provide separate phases and separate channels for control signal/address/data transmission and burst communication for continuous data transmission. This type of interface can meet the standards ISO 26262 or IEC 61508, but other standards and protocols can also be used.

In einigen Beispielen können die SoC(s) 704 einen Echtzeit-Raytracing-Hardwarebeschleuniger enthalten, wie er in der US-Patentanmeldung Nr. 16/101,232 , eingereicht am 10. August 2018, beschrieben ist. Der Echtzeit-Raytracing-Hardwarebeschleuniger kann verwendet werden, um schnell und effizient die Positionen und Ausdehnungen von Objekten (z. B. innerhalb eines Weltmodells) zu bestimmen, um Echtzeit-Visualisierungssimulationen zu erzeugen, für die RADAR-Signalinterpretation, für die Schallausbreitungssynthese und/oder -analyse, für die Simulation von SONAR-Systemen, für die allgemeine Wellenausbreitungssimulation, für den Vergleich mit LIDAR-Daten zum Zwecke der Lokalisierung und/oder für andere Funktionen und/oder für andere Zwecke. In einigen Ausführungsformen können eine oder mehrere Tree Traversal Units (TTUs) für die Ausführung einer oder mehrerer Strahlverfolgungsoperationen verwendet werden.In some examples, the SoC(s) 704 may include a real-time ray tracing hardware accelerator as described in FIG U.S. Patent Application No. 16/101,232 , filed August 10, 2018. The real-time ray tracing hardware accelerator can 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 simulating SONAR systems, for general wave propagation simulation, for comparison with LIDAR data for localization purposes 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 ray tracing operations.

Der/die Beschleuniger 714 (z. B. der Hardware-Beschleuniger-Cluster) kann/können für das autonome Fahren auf vielfältige Weise eingesetzt werden. Der PVA kann ein programmierbarer Bildverarbeitungsbeschleuniger sein, der für wichtige Verarbeitungsschritte in ADAS und autonomen Fahrzeugen verwendet werden kann. Die Fähigkeiten der PVA eignen sich gut für algorithmische Bereiche, die eine vorhersehbare Verarbeitung bei geringem Stromverbrauch und geringer Latenzzeit erfordern. Mit anderen Worten: Die PVA eignet sich gut für halbdichte oder dichte reguläre Berechnungen, selbst bei kleinen Datensätzen, die vorhersehbare Laufzeiten mit geringer Latenz und geringem Stromverbrauch erfordern. Im Zusammenhang mit Plattformen für autonome Fahrzeuge sind die PVAs daher für die Ausführung klassischer Computer-Vision-Algorithmen konzipiert, da sie bei der Objekterkennung und der Verarbeitung ganzzahliger mathematischer Daten effizient sind.The accelerator(s) 714 (e.g., hardware accelerator cluster) can be used for autonomous driving in a variety of ways. The PVA can be a programmable image processing accelerator that can be used for key processing steps in ADAS and autonomous vehicles. The capabilities of the PVA are well suited to algorithmic domains that require predictable processing with low power consumption and low latency. In other words, the PVA is well suited for semi-dense or dense regular computations, even with small data sets that require predictable runtimes with low latency and low power consumption. In the context of autonomous vehicle platforms, the PVAs are therefore designed to run classic computer vision algorithms, as they are efficient in object recognition and processing of integer mathematical data.

Bei einer Ausführungsform der Technologie wird die PVA beispielsweise für die Durchführung von Computer-Stereosicht verwendet. In einigen Beispielen kann ein auf semiglobaler Anpassung basierender Algorithmus verwendet werden, obwohl dies nicht als Einschränkung gedacht ist. Viele Anwendungen für das autonome Fahren der Stufen 3 bis 5 erfordern eine Bewegungsabschätzung/Stereoabgleich während der Fahrt (z. B. Struktur aus Bewegung, Fußgängererkennung, Fahrspurerkennung usw.). Die PVA kann eine Computer-Stereosichtfunktion mit Eingaben von zwei monokularen Kameras durchführen.For example, in one embodiment of the technology, the PVA is used to perform computer stereo vision. In some examples, an algorithm based on semi-global adaptation may be used, although this is not intended as a limitation. Many Level 3-5 autonomous driving applications require motion estimation/stereo matching while driving (e.g. texture from motion, pedestrian detection, lane detection, etc.). The PVA can perform a computer stereo vision function with inputs from two monocular cameras.

In einigen Beispielen kann die PVA verwendet werden, um einen dichten optischen Fluss durchzuführen. Entsprechend der Verarbeitung von RADAR-Rohdaten (z. B. unter Verwendung einer 4D-Fast-Fourier-Transformation), um verarbeitete RADAR-Daten zu erhalten. In anderen Beispielen wird die PVA für die Verarbeitung von Flugzeittiefendaten verwendet, z. B. durch Verarbeitung von Flugzeit-Rohdaten, um verarbeitete Flugzeitdaten zu erhalten.In some examples, the PVA can be used to perform dense optical flow. Corresponding to the processing of raw RADAR data (e.g. using a 4D Fast Fourier Transform) to obtain processed RADAR data. In other examples, the PVA is used for processing flight time depth data, e.g. B. by processing raw time-of-flight data to obtain processed time-of-flight data.

Mit dem DLA kann jede Art von Netzwerk betrieben werden, um die Kontrolle und die Fahrsicherheit zu verbessern, z. B. ein neuronales Netzwerk, das für jede Objekterkennung einen Vertrauenswert ausgibt. Ein solcher Konfidenzwert kann als Wahrscheinlichkeit oder als relative „Gewichtung“ der einzelnen Erkennungen im Vergleich zu anderen Erkennungen interpretiert werden. Dieser Konfidenzwert ermöglicht es dem System, weitere Entscheidungen darüber zu treffen, welche Erkennungen als echte positive Erkennungen und welche als falsch-positive Erkennungen betrachtet werden sollten. So kann das System beispielsweise einen Schwellenwert für die Konfidenz festlegen und nur die Erkennungen, die diesen Schwellenwert überschreiten, als echte positive Erkennungen betrachten. In einem automatischen Notbremssystem (AEB) würden falsch positive Erkennungen dazu führen, dass das Fahrzeug automatisch eine Notbremsung durchführt, was natürlich unerwünscht ist. Daher sollten nur die sichersten Erkennungen als Auslöser für AEB in Betracht gezogen werden. Die DLA kann ein neuronales Netz zur Regression des Vertrauenswertes einsetzen. Das neuronale Netz kann als Eingabe mindestens eine Teilmenge von Parametern verwenden, wie z. B. die Abmessungen des Begrenzungsrahmens, die (z. B. von einem anderen Teilsystem) erhaltene Schätzung der Bodenebene, die Ausgabe des IMU-Sensors 766, die mit der Ausrichtung des Fahrzeugs 700 korreliert, die Entfernung, die Schätzungen der 3D-Position des Objekts, die vom neuronalen Netz und/oder anderen Sensoren (z. B. LIDAR-Sensor(en) 764 oder RADAR-Sensor(en) 760) erhalten werden, und andere.Any type of network can be operated with the DLA to improve control and driving safety, e.g. B. a neural network that outputs a confidence value for each object detection. Such a confidence value can be interpreted as a probability or a relative "weight" of each detection compared to other detections. This confidence value allows the system to make further decisions about which detections are considered true positives and which which should be considered as false positive detections. For example, the system can set a confidence threshold and only consider detections that exceed this threshold as true positive detections. In an Automatic Emergency Braking (AEB) system, false positive detections would result in the vehicle automatically performing emergency braking, which is clearly undesirable. Therefore, only the safest detections should be considered as triggers for AEB. The DLA can use a neural network to regress the confidence value. The neural network can take as input at least a subset of parameters such as: B. the dimensions of the bounding box, the estimate of the ground plane obtained (e.g. from another subsystem), the output of the IMU sensor 766 correlating with the orientation of the vehicle 700, the distance, the estimates of the 3D position of the object obtained from the neural network and/or other sensors (e.g., LIDAR sensor(s) 764 or RADAR sensor(s) 760), and others.

Der/die SoC(s) 704 kann/können Datenspeicher 716 (z. B. Speicher) enthalten. Bei dem/den Datenspeicher(n) 716 kann es sich um einen On-Chip-Speicher des/der SoC(s) 704 handeln, in dem neuronale Netze gespeichert werden können, die auf der GPU und/oder dem DLA ausgeführt werden sollen. In einigen Beispielen kann die Kapazität des/der Datenspeichers) 716 groß genug sein, um mehrere Instanzen von neuronalen Netzen zur Redundanz und Sicherheit zu speichern. Der/die Datenspeicher 712 kann/können L2 oder L3 Cache(s) 712 umfassen. Der Verweis auf den/die Datenspeicher 716 kann einen Verweis auf den Speicher beinhalten, der mit der PVA, DLA und/oder anderen Beschleunigern 714 verbunden ist, wie hier beschrieben.The SoC(s) 704 may include data storage 716 (e.g., memory). The data store(s) 716 may be on-chip memory of the SoC(s) 704 that may store neural networks to be executed on the GPU and/or the DLA. In some examples, the capacity of the data store(s) 716 may be large enough to store multiple instances of neural networks for redundancy and security. The data store(s) 712 may include L2 or L3 cache(s) 712. The reference to the data store(s) 716 may include a reference to the memory associated with the PVA, DLA, and/or other accelerators 714, as described herein.

Der/die SoC(s) 704 kann/können einen oder mehrere Prozessor(en) 710 (z. B. eingebettete Prozessoren) enthalten. Der (die) Prozessor(en) 710 kann (können) einen Boot- und Energieverwaltungsprozessor umfassen, der ein dedizierter Prozessor und ein Subsystem sein kann, um Boot-Energie- und Verwaltungsfunktionen und die damit verbundene Sicherheitsdurchsetzung zu handhaben. Der Boot- und Energieverwaltungsprozessor kann Teil der Bootsequenz des/der SoC(s) 704 sein und kann Laufzeit-Energieverwaltungsdienste bereitstellen. Der Boot-Energieversorgungs- und -Verwaltungsprozessor kann Takt- und Spannungsprogrammierung, Unterstützung bei Systemübergängen in einen Zustand mit niedriger Leistung, Verwaltung von SoC(s) 704-Temperaturen und Temperatursensoren und/oder Verwaltung der SoC(s) 704-Energieversorgungszustände bieten. Jeder Temperatursensor kann als Ringoszillator implementiert sein, dessen Ausgangsfrequenz proportional zur Temperatur ist, und der/die SoC(s) 704 kann/können die Ringoszillatoren verwenden, um die Temperaturen der CPU(s) 706, der GPU(s) 708 und/oder des/der Beschleuniger(s) 714 zu erfassen. Wenn festgestellt wird, dass die Temperaturen einen Schwellenwert überschreiten, kann der Boot- und Energieverwaltungsprozessor in eine Temperaturfehlerroutine eintreten und den/die SoC(s) 704 in einen Zustand mit geringerer Leistung versetzen und/oder das Fahrzeug 700 in einen Chauffeur-zu-sicherem-Halt-Modus versetzen (z. B. das Fahrzeug 700 zu einem sicheren Halt bringen).The SoC(s) 704 may include one or more processor(s) 710 (e.g., embedded processors). The processor(s) 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 SoC(s) 704 and may provide runtime power management services. The boot power and management processor may provide clock and voltage programming, support for system transitions to a low power state, management of SoC(s) 704 temperatures and temperature sensors, and/or management of the SoC(s) 704 power states. Each temperature sensor may be implemented as a ring oscillator whose output frequency is proportional to temperature, and the SoC(s) 704 may use the ring oscillators to measure the temperatures of the CPU(s) 706, GPU(s) 708, and/or of the accelerator(s) 714 to detect. If temperatures are determined to exceed a threshold, the boot and power management processor may enter a temperature fault routine and place the SoC(s) 704 in a lower power state and/or the vehicle 700 in a chauffeur-to-safe state - Set stop mode (e.g. bring vehicle 700 to a safe stop).

Der (die) Prozessor(en) 710 kann (können) außerdem eine Reihe eingebetteter Prozessoren enthalten, die als Audioverarbeitungsmodul dienen können. Bei der Audioverarbeitungs-Engine kann es sich um ein Audio-Subsystem handeln, das eine vollständige Hardware-Unterstützung für Mehrkanal-Audio über mehrere Schnittstellen sowie eine breite und flexible Palette von Audio-I/O-Schnittstellen ermöglicht. In einigen Beispielen ist die Audioverarbeitungs-Engine ein dedizierter Prozessorkern mit einem digitalen Signalprozessor mit dediziertem RAM.The processor(s) 710 may also include a number of embedded processors that may serve as an audio processing module. The audio processing engine can 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 processing core with a digital signal processor with dedicated RAM.

Der (die) Prozessor(en) 710 kann (können) außerdem eine ständig eingeschaltete Prozessor-Engine enthalten, die die notwendigen Hardware-Funktionen zur Unterstützung der Sensorverwaltung mit geringem Stromverbrauch und des Aufwachens von Anwendungsfällen bereitstellen kann. Die ständig eingeschaltete Prozessor-Engine kann einen Prozessorkern, einen eng gekoppelten Arbeitsspeicher, unterstützende Peripheriegeräte (z. B. Zeitgeber und Interrupt-Controller), verschiedene I/O-Controller-Peripheriegeräte und Routing-Logik umfassen.The processor(s) 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 memory, supporting peripherals (e.g., timers and interrupt controllers), various I/O controller peripherals, and routing logic.

Der (die) Prozessor(en) 710 kann (können) außerdem eine Sicherheits-Cluster-Engine enthalten, die ein spezielles Prozessor-Subsystem für das Sicherheitsmanagement von Kfz-Anwendungen umfasst. Die Sicherheits-Cluster-Engine kann zwei oder mehr Prozessorkerne, einen eng gekoppelten Arbeitsspeicher, unterstützende Peripheriegeräte (z. B. Zeitgeber, einen Interrupt-Controller usw.) und/oder eine Routing-Logik umfassen. In einem Sicherheitsmodus können die zwei oder mehr Kerne in einem Gleichschrittmodus arbeiten und als ein einziger Kern mit einer Vergleichslogik zur Erkennung von Unterschieden zwischen ihren Operationen fungieren.The processor(s) 710 may also include a security cluster engine that includes a dedicated processor subsystem for security management of automotive applications. The security cluster engine may include two or more processor cores, tightly coupled memory, supporting peripherals (e.g., timers, an interrupt controller, etc.), and/or routing logic. In a security mode, the two or more cores can operate in lockstep mode and act as a single core with comparison logic to detect differences between their operations.

Der/die Prozessor(en) 710 kann/können außerdem eine Echtzeit-Kamera-Engine enthalten, die ein spezielles Prozessor-Subsystem für die Verwaltung der Echtzeit-Kamera umfassen kann.The processor(s) 710 may also include a real-time camera engine, which may include a dedicated processor subsystem for managing the real-time camera.

Der (die) Prozessor(en) 710 kann (können) außerdem einen Signalprozessor mit hohem Dynamikbereich enthalten, der einen Bildsignalprozessor umfassen kann, der eine Hardware-Engine ist, die Teil der Kameraverarbeitungspipeline ist.The processor(s) 710 may also 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.

Der/die Prozessor(en) 710 kann/können einen Videobild-Compositor enthalten, der ein Verarbeitungsblock sein kann (z. B. auf einem Mikroprozessor implementiert), der Videonachbearbeitungsfunktionen implementiert, die von einer Videowiedergabeanwendung benötigt werden, um das endgültige Bild für das Player-Fenster zu erzeugen. Der Videobild-Compositor kann eine Linsenverzerrungskorrektur an der (den) Weitwinkelkamera(s) 770, an der (den) Surround-Kamera(s) 774 und/oder an den Sensoren der Überwachungskamera in der Kabine vornehmen. Der kabineninterne Überwachungskamerasensor wird vorzugsweise von einem neuronalen Netz überwacht, das auf einer anderen Instanz des Advanced SoC läuft und so konfiguriert ist, dass es Ereignisse in der Kabine erkennt und entsprechend reagiert. Ein System in der Kabine kann Lippenlesen durchführen, um den Mobilfunkdienst zu aktivieren und einen Anruf zu tätigen, E-Mails zu diktieren, den Zielort des Fahrzeugs zu ändern, das Infotainmentsystem und die Einstellungen des Fahrzeugs zu aktivieren oder zu ändern oder sprachgesteuertes Surfen im Internet zu ermöglichen. Bestimmte Funktionen stehen dem Fahrer nur zur Verfügung, wenn das Fahrzeug in einem autonomen Modus betrieben wird, und sind ansonsten deaktiviert.The processor(s) 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 produce the final image for the to create a player window. The video image compositor may apply lens distortion correction to the wide-angle camera(s) 770, to the surround camera(s) 774, and/or to the cabin surveillance camera sensors. The in-cabin security camera sensor is preferably monitored by a neural network running on another instance of the Advanced SoC, configured to detect events in the cabin and respond accordingly. A system in the cabin can perform lip-reading to activate cellular service and make a call, dictate email, change the vehicle's destination, activate or change the vehicle's infotainment system and settings, or voice-controlled web browsing to allow. Certain features are only available to the driver when the vehicle is operating in an autonomous mode and are otherwise disabled.

Der Videobild-Compositor kann eine verbesserte zeitliche Rauschunterdrückung sowohl zur räumlichen als auch zur zeitlichen Rauschunterdrückung enthalten. Tritt beispielsweise Bewegung in einem Video auf, gewichtet die Rauschunterdrückung die räumlichen Informationen entsprechend und verringert das Gewicht der Informationen, die von benachbarten Bildern stammen. Wenn ein Bild oder ein Teil eines Bildes keine Bewegung enthält, kann die vom Video-Compositor durchgeführte zeitliche Rauschunterdrückung Informationen aus dem vorherigen Bild verwenden, um das Rauschen im aktuellen Bild zu reduzieren.The video image compositor can include enhanced temporal denoising for both spatial and temporal denoising. For example, if there is movement in a video, noise reduction will weight the spatial information appropriately and reduce the weight of the information coming from neighboring frames. When there is no motion in a frame or part of a frame, the temporal noise reduction performed by the video compositor can use information from the previous frame to reduce noise in the current frame.

Der Videobild-Compositor kann auch so konfiguriert sein, dass er eine Stereoentzerrung der eingegebenen Stereoobjektivbilder durchführt. Der Videobild-Compositor kann außerdem für die Gestaltung der Benutzeroberfläche verwendet werden, wenn der Desktop des Betriebssystems in Gebrauch ist und die GPU(s) 708 nicht ständig neue Oberflächen rendern muss. Selbst wenn der/die Grafikprozessor(en) 708 eingeschaltet und aktiv mit dem 3D-Rendering beschäftigt ist/sind, kann der Videobild-Compositor verwendet werden, um den/die Grafikprozessor(en) 708 zu entlasten und die Leistung und Reaktionsfähigkeit zu verbessern.The video image compositor can also be configured to perform stereo de-emphasis on the input stereo lens images. The video image compositor can also be used for user interface rendering when the operating system desktop is in use and the GPU(s) 708 does not need to constantly render new interfaces. Even when the graphics processor(s) 708 is on and actively engaged in 3D rendering, the video image compositor can be used to offload the graphics processor(s) 708 and improve performance and responsiveness.

Der/die SoC(s) 704 kann/können außerdem eine serielle MIPI-Kameraschnittstelle zum Empfang von Video und Eingaben von Kameras, eine Hochgeschwindigkeitsschnittstelle und/oder einen Videoeingabeblock enthalten, der für Kamera- und verwandte Pixeleingabefunktionen verwendet werden kann. Der/die SoC(s) 704 kann/können außerdem einen Eingangs-/Ausgangs-Controller enthalten, der/die durch Software gesteuert werden kann/können und für den Empfang von I/O-Signalen verwendet werden kann/können, die nicht an eine bestimmte Rolle gebunden sind.The SoC(s) 704 may also include a MIPI serial camera interface for receiving video and input from cameras, a high-speed interface, and/or a video input block that can be used for camera and related pixel input functions. The SoC(s) 704 may also include an input/output controller(s) that may be controlled by software and used to receive I/O signals that are not on are tied to a specific role.

Der/die SoC(s) 704 kann/können außerdem eine breite Palette von Peripherieschnittstellen enthalten, um die Kommunikation mit Peripheriegeräten, Audiocodecs, Energieverwaltung und/oder anderen Geräten zu ermöglichen. Der/die SoC(s) 704 kann/können zur Verarbeitung von Daten von Kameras (z. B. verbunden über Gigabit Multimedia Serial Link und Ethernet), Sensoren (z. B. LIDAR-Sensor(en) 764, RADAR-Sensor(en) 760 usw., die über Ethernet verbunden sein können), Daten vom Bus 702 (z. B. Geschwindigkeit des Fahrzeugs 700, Lenkradposition usw.), Daten von GNSS-Sensor(en) 758 (z. B. verbunden über Ethernet oder CAN-Bus) verwendet werden. Der (die) SoC(s) 704 kann (können) ferner spezielle Hochleistungs-Massenspeicher-Controller enthalten, die ihre eigenen DMA-Engines enthalten können und die dazu verwendet werden können, die CPU(s) 706 von routinemäßigen Datenverwaltungsaufgaben zu entlasten.The SoC(s) 704 may also include a wide range of peripheral interfaces to enable communication with peripherals, audio codecs, power management, and/or other devices. The SoC(s) 704 can be used to process data from cameras (e.g., connected via Gigabit Multimedia Serial Link and Ethernet), sensors (e.g., LIDAR sensor(s) 764, RADAR sensor( en) 760, etc., which may be connected via Ethernet), data from bus 702 (e.g., vehicle 700 speed, steering wheel position, etc.), data from GNSS sensor(s) 758 (e.g., connected via Ethernet or CAN bus) can be used. The SoC(s) 704 may also include dedicated high-performance mass storage controllers, which may include their own DMA engines, and which may be used to offload the CPU(s) 706 from routine data management tasks.

Der/die SoC(s) 704 kann/können eine End-to-End-Plattform mit einer flexiblen Architektur sein, die die Automatisierungsstufen 3 bis 5 abdeckt und dadurch eine umfassende funktionale Sicherheitsarchitektur bietet, die Computer-Vision- und ADAS-Techniken für Diversität und Redundanz nutzt und eine Plattform für einen flexiblen, zuverlässigen Fahrsoftware-Stack zusammen mit Deep-Learning-Tools bereitstellt. Die SoC(s) 704 können schneller, zuverlässiger und sogar energie- und platzsparender sein als herkömmliche Systeme. Beispielsweise kann der/die Beschleuniger 714 in Kombination mit der/den CPU(s) 706, der/den GPU(s) 708 und dem/den Datenspeicher(n) 716 eine schnelle, effiziente Plattform für autonome Fahrzeuge der Stufe 3-5 bilden.The SoC(s) 704 can be an end-to-end platform with a flexible architecture that covers automation levels 3 to 5 and thereby offers a comprehensive functional security architecture that uses computer vision and ADAS techniques for Leverages diversity and redundancy, providing a platform for a flexible, reliable driving software stack along with deep learning tools. The SoC(s) 704 can be faster, more reliable, and even more power and space efficient than traditional systems. For example, the accelerator(s) 714 in combination with the CPU(s) 706, the GPU(s) 708, and the data storage(s) 716 can form a fast, efficient platform for level 3-5 autonomous vehicles .

Die Technologie bietet somit Fähigkeiten und Funktionen, die mit herkömmlichen Systemen nicht erreicht werden können. Beispielsweise können Computer-Vision-Algorithmen auf CPUs ausgeführt werden, die mit Hilfe von Hochsprachen wie der Programmiersprache C so konfiguriert werden können, dass sie eine Vielzahl von Verarbeitungsalgorithmen für eine Vielzahl von Bilddaten ausführen können. Allerdings sind CPUs oft nicht in der Lage, die Leistungsanforderungen vieler Bildverarbeitungsanwendungen zu erfüllen, z. B. in Bezug auf die Ausführungszeit und den Stromverbrauch. Insbesondere sind viele CPUs nicht in der Lage, komplexe Objekterkennungsalgorithmen in Echtzeit auszuführen, was eine Voraussetzung für fahrzeuginterne ADAS-Anwendungen und eine Voraussetzung für praktische autonome Fahrzeuge der Stufe 3-5 ist.The technology thus offers capabilities and functions that cannot be achieved with conventional systems. For example, computer vision algorithms can run on CPUs that can be configured to run a variety of processing algorithms using high-level languages such as the C programming language for a variety of image data. However, CPUs are often unable to meet the performance requirements of many image processing applications, e.g. B. in terms of execution time and power consumption. In particular, many CPUs are unable to execute complex object detection algorithms in real time, which is a requirement for in-vehicle ADAS applications and a requirement for practical Level 3-5 autonomous vehicles.

Im Gegensatz zu herkömmlichen Systemen ermöglicht die hier beschriebene Technologie durch die Bereitstellung eines CPU-Komplexes, eines GPU-Komplexes und eines Hardware-Beschleunigungs-Clusters, dass mehrere neuronale Netze gleichzeitig und/oder nacheinander ausgeführt und die Ergebnisse miteinander kombiniert werden können, um autonome Fahrfunktionen der Stufe 3-5 zu ermöglichen. Beispielsweise kann ein CNN, das auf der DLA oder dGPU (z. B. die GPU(s) 720) ausgeführt wird, eine Text- und Worterkennung umfassen, die es dem Supercomputer ermöglicht, Verkehrsschilder zu lesen und zu verstehen, einschließlich Schildern, für die das neuronale Netz nicht speziell trainiert wurde. Die DLA kann ferner ein neuronales Netz enthalten, das in der Lage ist, das Verkehrszeichen zu identifizieren, zu interpretieren und semantisch zu verstehen und dieses semantische Verständnis an die auf dem CPU-Komplex laufenden Wegplanungsmodule weiterzugeben.In contrast to traditional systems, the technology described here, by providing a CPU complex, a GPU complex and a hardware acceleration cluster, allows multiple neural networks to run simultaneously and/or sequentially and the results to be combined with each other to create autonomous Enable level 3-5 driving functions. For example, a CNN running on the DLA or dGPU (e.g., the GPU(s) 720) may include text and word recognition that enables the supercomputer to read and understand traffic signs, including road signs, for which the neural network has not been specially trained. The DLA may further include a neural network capable of identifying, interpreting and semantically understanding the traffic sign and passing this semantic understanding to the path planning modules running on the CPU complex.

Ein weiteres Beispiel ist, dass mehrere neuronale Netze gleichzeitig betrieben werden können, wie es für das Fahren der Stufen 3, 4 oder 5 erforderlich ist. So kann beispielsweise ein Warnschild mit der Aufschrift „Vorsicht: Blinkende Lichter weisen auf Glatteis hin“ zusammen mit einem elektrischen Licht von mehreren neuronalen Netzen unabhängig oder gemeinsam interpretiert werden. Das Schild selbst kann von einem ersten eingesetzten neuronalen Netz (z. B. einem trainierten neuronalen Netz) als Verkehrsschild identifiziert werden, der Text „Blinkende Lichter deuten auf Glatteis hin“ kann von einem zweiten eingesetzten neuronalen Netz interpretiert werden, das die Wegplanungssoftware des Fahrzeugs (die vorzugsweise auf dem CPU-Komplex ausgeführt wird) darüber informiert, dass beim Erkennen blinkender Lichter Glatteis vorliegt. Das Blinklicht kann durch den Betrieb eines dritten neuronalen Netzes über mehrere Frames hinweg identifiziert werden, das die Wegplanungssoftware des Fahrzeugs über das Vorhandensein (oder Fehlen) von Blinklichtern informiert. Alle drei neuronalen Netze können gleichzeitig laufen, z. B. innerhalb der DLA und/oder auf der/den GPU(s) 708.Another example is that multiple neural networks can be operated 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 by multiple neural networks independently or jointly. The sign itself can be identified as a road sign by a first deployed neural network (e.g., a trained neural network), the text "Blinking lights indicate black ice" can be interpreted by a second deployed neural network that runs the vehicle's path planning software (which preferably runs on the CPU complex) that there is black ice when detecting blinking lights. The blinker can be identified through the operation of a third neural network over several frames that informs the vehicle's path planning software of the presence (or absence) of blinkers. All three neural networks can run simultaneously, e.g. B. within the DLA and/or on the GPU(s) 708.

In einigen Beispielen kann ein CNN zur Gesichtserkennung und Identifizierung des Fahrzeugbesitzers Daten von Kamerasensoren verwenden, um die Anwesenheit eines autorisierten Fahrers und/oder Besitzers des Fahrzeugs 700 zu erkennen. Die „always on“-Sensorverarbeitungs-Engine kann verwendet werden, um das Fahrzeug zu entriegeln, wenn der Besitzer sich der Fahrertür nähert und die Lichter einschaltet, und um im Sicherheitsmodus das Fahrzeug zu deaktivieren, wenn der Besitzer das Fahrzeug verlässt. Auf diese Weise sorgen die SoC(s) 704 für Sicherheit gegen Diebstahl und/oder Carjacking.In some examples, a CNN may use data from camera sensors for facial recognition and vehicle owner identification to detect the presence of an authorized driver and/or owner of the vehicle 700 . The "always on" sensor processing engine can be used to unlock the vehicle when the owner approaches the driver's door and turns on the lights, and in security mode to disarm the vehicle when the owner exits the vehicle. In this way, the SoC(s) 704 provide security against theft and/or carjacking.

In einem anderen Beispiel kann ein CNN zur Erkennung und Identifizierung von Einsatzfahrzeugen Daten von Mikrofonen 796 verwenden, um Sirenen von Einsatzfahrzeugen zu erkennen und zu identifizieren. Im Gegensatz zu herkömmlichen Systemen, die allgemeine Klassifikatoren zur Erkennung von Sirenen und zur manuellen Extraktion von Merkmalen verwenden, nutzen die SoC(s) 704 das CNN zur Klassifizierung von Umwelt- und Stadtgeräuschen sowie zur Klassifizierung visueller Daten. In einer bevorzugten Ausführungsform wird der CNN, der auf dem DLA läuft, darauf trainiert, die relative Annäherungsgeschwindigkeit des Einsatzfahrzeugs zu erkennen (z. B. durch Verwendung des Dopplereffekts). Das CNN kann auch so trainiert werden, dass es Einsatzfahrzeuge erkennt, die spezifisch für den lokalen Bereich sind, in dem das Fahrzeug operiert, wie von GNSS-Sensor(en) 758 ermittelt. So wird das CNN beispielsweise versuchen, europäische Sirenen zu erkennen, wenn es in Europa eingesetzt wird, und nur nordamerikanische Sirenen, wenn es in den Vereinigten Staaten eingesetzt wird. Sobald ein Einsatzfahrzeug erkannt wird, kann ein Steuerprogramm verwendet werden, um eine Sicherheitsroutine für Einsatzfahrzeuge auszuführen, das Fahrzeug zu verlangsamen, an den Straßenrand zu fahren, das Fahrzeug zu parken und/oder das Fahrzeug mit Hilfe der Ultraschallsensoren 762 im Leerlauf laufen zu lassen, bis das/die Einsatzfahrzeug(e) vorbeifahren.In another example, an emergency vehicle detection and identification CNN may use data from microphones 796 to detect and identify emergency vehicle sirens. Unlike traditional systems that use general classifiers to detect sirens and manually extract features, the SoC(s) 704 use CNN to classify environmental and city sounds, as well as classify visual data. In a preferred embodiment, the CNN running on the DLA is trained to recognize the relative closing speed of the emergency vehicle (e.g., by using the Doppler effect). The CNN can also be trained to recognize emergency vehicles specific to the local area in which the vehicle is operating, as determined by GNSS sensor(s) 758 . For example, CNN will attempt to detect European sirens when deployed in Europe and only North American sirens when deployed in the United States. Once an emergency vehicle is detected, a control program can be used to run an emergency vehicle safety routine, slow the vehicle, pull to the curb, park the vehicle, and/or allow the vehicle to coast using the ultrasonic sensors 762. until the emergency vehicle(s) drive by.

Das Fahrzeug kann eine oder mehrere CPU(s) 718 (z. B. diskrete CPU(s) oder dCPU(s)) enthalten, die über eine Hochgeschwindigkeitsverbindung (z. B. PCIe) mit dem/den SoC(s) 704 verbunden sein können. Die CPU(s) 718 kann/können beispielsweise einen X86-Prozessor enthalten. Die CPU(s) 718 kann/können verwendet werden, um eine Vielzahl von Funktionen auszuführen, einschließlich der Schlichtung potentiell widersprüchlicher Ergebnisse zwischen ADAS-Sensoren und dem/den SoC(s) 704 und/oder der Überwachung des Zustand und des Zustands des/der Controller(s) 736 und/oder des Infotainment-SoC 730, beispielsweise.The vehicle may include one or more CPU(s) 718 (e.g., discrete CPU(s) or dCPU(s)) connected to the SoC(s) 704 via a high-speed interconnect (e.g., PCIe). could be. The CPU(s) 718 may include an X86 processor, for example. The CPU(s) 718 may be used to perform a variety of functions, including arbitrating potentially conflicting results between ADAS sensors and the SoC(s) 704 and/or monitoring the health and status of the/ the controller(s) 736 and/or the infotainment SoC 730, for example.

Das Fahrzeug 700 kann eine oder mehrere GPU(s) 720 (z. B. diskrete GPU(s) oder dGPU(s)) enthalten, die über eine Hochgeschwindigkeitsverbindung (z. B. NVIDIAs NVLINK) mit dem/den SoC(s) 704 gekoppelt sein können. Der/die Grafikprozessor(en) 720 kann/können zusätzliche Funktionen der künstlichen Intelligenz bereitstellen, z. B. durch die Ausführung redundanter und/oder unterschiedlicher neuronaler Netze, und kann/können zum Trainieren und/oder Aktualisieren neuronaler Netze basierend auf Eingaben (z. B. Sensordaten) von Sensoren des Fahrzeugs 700 verwendet werden.The vehicle 700 may include one or more GPU(s) 720 (e.g., discrete GPU(s) or dGPU(s)) connected to the SoC(s) via a high-speed interconnect (e.g., NVIDIA's NVLINK). (s) 704 may be coupled. The graphics processor(s) 720 may provide additional artificial intelligence functions, e.g. by executing redundant and/or different neural networks, and may be used to train and/or update neural networks based on inputs (e.g., sensor data) from vehicle 700 sensors.

Das Fahrzeug 700 kann ferner die Netzwerkschnittstelle 724 enthalten, die eine oder mehrere drahtlose Antennen 726 umfassen kann (z. B. eine oder mehrere drahtlose Antennen für verschiedene Kommunikationsprotokolle, wie eine Mobilfunkantenne, eine Bluetooth-Antenne usw.). Die Netzwerkschnittstelle 724 kann verwendet werden, um eine drahtlose Verbindung über das Internet mit der Cloud (z. B. mit dem/den Server(n) 778 und/oder anderen Netzwerkgeräten), mit anderen Fahrzeugen und/oder mit Computergeräten (z. B. Client-Geräten von Fahrgästen) zu ermöglichen. Zur Kommunikation mit anderen Fahrzeugen kann eine direkte Verbindung zwischen den beiden Fahrzeugen und/oder eine indirekte Verbindung hergestellt werden (z. B. über Netzwerke und das Internet). Direkte Verbindungen können über eine Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung hergestellt werden. Die Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung kann dem Fahrzeug 700 Informationen über Fahrzeuge in der Nähe des Fahrzeugs 700 liefern (z. B. Fahrzeuge vor, neben und/oder hinter dem Fahrzeug 700). Diese Funktion kann Teil einer kooperativen adaptiven Geschwindigkeitsregelungsfunktion des Fahrzeugs 700 sein.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 different communication protocols, such as a cellular antenna, a Bluetooth antenna, etc.). The network interface 724 can be used to establish a wireless connection over the Internet to the cloud (e.g., to the server(s) 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 can be established between the two vehicles and/or an indirect connection (e.g. via networks and the Internet). Direct connections can be made via a vehicle-to-vehicle communication link. The vehicle-to-vehicle communication link can provide the vehicle 700 with information about vehicles in the vicinity of the vehicle 700 (e.g., vehicles in front of, beside, and/or behind the vehicle 700). This function may be part of a cooperative vehicle 700 adaptive cruise control function.

Die Netzwerkschnittstelle 724 kann einen SoC enthalten, der Modulations- und Demodulationsfunktionen bereitstellt und den/die Controller 736 in die Lage versetzt, über drahtlose Netzwerke zu kommunizieren. Die Netzwerkschnittstelle 724 kann ein Funkfrequenz-Frontend für die Aufwärtskonvertierung von Basisband auf Funkfrequenz und die Abwärtskonvertierung von Funkfrequenz auf Basisband enthalten. Die Frequenzumwandlungen können mit bekannten Verfahren und/oder mit Superheterodyn-Verfahren durchgeführt werden. In einigen Beispielen kann die Funkfrequenz-Front-End-Funktionalität durch einen separaten Chip bereitgestellt werden. Die Netzwerkschnittstelle kann drahtlose Funktionen für die Kommunikation über LTE, WCDMA, UMTS, GSM, CDMA2000, Bluetooth, Bluetooth LE, Wi-Fi, Z-Wave, ZigBee, LoRaWAN und/oder andere drahtlose Protokolle enthalten.Network interface 724 may include an SoC that provides modulation and demodulation functions and enables controller(s) 736 to communicate over wireless networks. The network interface 724 may include a radio frequency front end for baseband to radio frequency upconversion and radio frequency to baseband downconversion. The frequency conversions can be carried out using known methods and/or using superheterodyne methods. In some examples, the radio frequency front end functionality may be provided by a separate chip. The network interface can contain wireless functions for communication via LTE, WCDMA, UMTS, GSM, CDMA2000, Bluetooth, Bluetooth LE, Wi-Fi, Z-Wave, ZigBee, LoRaWAN and/or other wireless protocols.

Das Fahrzeug 700 kann ferner einen oder mehrere Datenspeicher 728 umfassen, die außerhalb des Chips (z. B. außerhalb der SoC(s) 704) gespeichert werden können. Der/die Datenspeicher 728 kann/können ein oder mehrere Speicherelemente wie RAM, SRAM, DRAM, VRAM, Flash, Festplatten und/oder andere Komponenten und/oder Geräte umfassen, die mindestens ein Datenbit speichern können.The vehicle 700 may further include one or more data stores 728 that may be stored off-chip (e.g., off the SoC(s) 704). Data storage(s) 728 may include one or more storage elements such as RAM, SRAM, DRAM, VRAM, Flash, hard drives, and/or other components and/or devices capable of storing at least one bit of data.

Das Fahrzeug 700 kann außerdem GNSS-Sensor(en) 758 enthalten. Der/die GNSS-Sensor(en) 758 (z. B. GPS, unterstützte GPS-Sensoren, Differential-GPS-Sensoren (DGPS) usw.) unterstützen bei der Kartierung, Wahrnehmung, Erstellung von Belegungsrastern und/oder Wegplanungsfunktionen. Es kann eine beliebige Anzahl von GNSS-Sensoren 758 verwendet werden, z. B. und ohne Einschränkung ein GPS, das einen USB-Anschluss mit einer Ethernet-zu-Seriell (RS-232)-Brücke verwendet.Vehicle 700 may also include GNSS sensor(s) 758 . The GNSS sensor(s) 758 (e.g., GPS, supported GPS sensors, differential GPS sensors (DGPS), etc.) assist in mapping, perception, mapping grid creation, and/or path planning functions. Any number of GNSS sensors 758 can be used, e.g. B. and without limitation, a GPS using a USB port with an Ethernet-to-Serial (RS-232) bridge.

Das Fahrzeug 700 kann außerdem RADAR-Sensor(en) 760 enthalten. Der/die RADAR-Sensor(en) 760 kann/können vom Fahrzeug 700 für die Fahrzeugerkennung über große Entfernungen verwendet werden, selbst bei Dunkelheit und/oder schlechten Wetterbedingungen. Der/die RADAR-Sensor(en) 760 kann/können den CAN-Bus und/oder den Bus 702 (z. B. zur Übertragung von Daten, die von dem/den RADAR-Sensor(en) 760 erzeugt wurden) zur Steuerung und zum Zugriff auf Objektverfolgungsdaten verwenden, wobei in einigen Beispielen der Zugriff auf Rohdaten über Ethernet erfolgt. Es kann eine Vielzahl von RADAR-Sensortypen verwendet werden. Beispielsweise und ohne Einschränkung können der/die RADAR-Sensor(en) 760 für den Einsatz von Front-, Heck- und Seiten-RADAR geeignet sein. In einigen Beispielen werden Puls-Doppler-RADAR-Sensoren verwendet.Vehicle 700 may also include RADAR sensor(s) 760 . The RADAR sensor(s) 760 can be used by the vehicle 700 for long-range vehicle detection, even in darkness and/or poor weather conditions. RADAR sensor(s) 760 may use the CAN bus and/or bus 702 (e.g., to transmit data generated by RADAR sensor(s) 760) for control and use to access object tracking data, in some examples raw data being accessed over Ethernet. A variety of RADAR sensor types can be used. For example and without limitation, the RADAR sensor(s) 760 may be suitable for front, rear, and side RADAR deployment. In some examples, pulse Doppler RADAR sensors are used.

Der/die RADAR-Sensor(en) 760 kann/können verschiedene Konfigurationen umfassen, wie z. B. große Reichweite mit engem Sichtfeld, kurze Reichweite mit breitem Sichtfeld, seitliche Abdeckung kurzer Reichweite usw. In einigen Beispielen kann RADAR mit großer Reichweite für die adaptive Geschwindigkeitsregelung verwendet werden. Die RADAR-Systeme mit großer Reichweite können ein breites Sichtfeld bieten, das durch zwei oder mehr unabhängige Abtastungen realisiert wird, z. B. innerhalb einer Reichweite von 250 m. Der/die RADAR-Sensor(en) 760 kann/können helfen, zwischen statischen und sich bewegenden Objekten zu unterscheiden, und kann/können von ADAS-Systemen für Notbremsassistenten und Vorwärtskollisionswarnungen verwendet werden. Zu den RADAR-Langstreckensensoren können monostatische multimodale RADAR mit mehreren (z. B. sechs oder mehr) festen RADAR-Antennen und einer Hochgeschwindigkeits-CAN- und FlexRay-Schnittstelle gehören. In einem Beispiel mit sechs Antennen können die mittleren vier Antennen ein fokussiertes Strahlenmuster erzeugen, das dazu dient, die Umgebung des Fahrzeugs bei höheren Geschwindigkeiten mit minimalen Störungen durch den Verkehr auf den angrenzenden Fahrspuren zu erfassen. Die beiden anderen Antennen können das Sichtfeld erweitern, so dass Fahrzeuge, die in die Fahrspur des Fahrzeugs einfahren oder diese verlassen, schnell erfasst werden können.The RADAR sensor(s) 760 may include various configurations such as: e.g., long range with narrow field of view, short range with wide field of view, short range side coverage, etc. In some examples, long range RADAR can be used for adaptive cruise control. The long-range RADAR systems can provide a wide field of view realized by two or more independent scans, e.g. B. within a range of 250 m. The RADAR sensor(s) 760 can help to distinguish between static and moving objects and can be used by ADAS systems for emergency brake assist and forward collision warnings. Long-range RADAR sensors may include monostatic multi-mode 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 center four antennas can produce a focused beam pattern designed to view the vehicle's surroundings at higher speeds with minimal noise Detect disruptions caused by traffic in the adjacent lanes. The other two antennas can expand the field of view so that vehicles entering or leaving the vehicle's lane can be quickly detected.

RADAR-Systeme mit mittlerer Reichweite können beispielsweise eine Reichweite von bis zu 760 m (vorne) oder 80 m (hinten) und ein Sichtfeld von bis zu 42 Grad (vorne) oder 750 Grad (hinten) aufweisen. Zu den RADAR-Systemen mit geringer Reichweite können unter anderem RADAR-Sensoren gehören, die an beiden Enden des hinteren Stoßfängers angebracht werden. Wenn ein solches RADAR-Sensorsystem an beiden Enden des hinteren Stoßfängers angebracht ist, kann es zwei Strahlen erzeugen, die den toten Winkel hinter und neben dem Fahrzeug ständig überwachen.For example, medium-range RADAR systems can have a range of up to 760 m (front) or 80 m (rear) and a field of view of up to 42 degrees (front) or 750 degrees (rear). Short-range RADAR systems may include, but are not limited to, RADAR sensors placed at both ends of the rear bumper. When such a RADAR sensor system is installed at both ends of the rear bumper, it can generate two beams that constantly monitor the blind spot behind and beside the vehicle.

RADAR-Systeme mit geringer Reichweite können in einem ADAS-System zur Erkennung des toten Winkels und/oder als Spurwechselassistent eingesetzt werden.Short-range RADAR systems can be used in an ADAS system for blind spot detection and/or as a lane change assistant.

Das Fahrzeug 700 kann außerdem einen oder mehrere Ultraschallsensoren 762 enthalten. Der/die Ultraschallsensor(en) 762, der/die vorne, hinten und/oder an den Seiten des Fahrzeugs 700 angebracht sein kann/können, kann/können zur Einparkhilfe und/oder zur Erstellung und Aktualisierung eines Belegungsrasters verwendet werden. Es kann eine Vielzahl von Ultraschallsensoren 762 verwendet werden, und unterschiedliche Ultraschallsensoren 762 können für unterschiedliche Erfassungsbereiche (z. B. 2,5 m, 4 m) eingesetzt werden. Der/die Ultraschallsensor(en) 762 kann/können bei funktionalen Sicherheitsstufen von ASIL B arbeiten.The vehicle 700 may also include one or more ultrasonic sensors 762 . The ultrasonic sensor(s) 762, which may be attached to the front, rear, and/or sides of the vehicle 700, may be used for parking assistance and/or to create and update a population grid. A variety of ultrasonic sensors 762 can be used, and different ultrasonic sensors 762 can be used for different detection ranges (e.g., 2.5 m, 4 m). The ultrasonic sensor(s) 762 can operate at ASIL B functional safety levels.

Das Fahrzeug 700 kann LIDAR-Sensor(en) 764 enthalten. Der/die LIDAR-Sensor(en) 764 kann/können für Objekt- und Fußgängererkennung, Notbremsung, Kollisionsvermeidung und/oder andere Funktionen verwendet werden. Der/die LIDAR-Sensor(en) 764 kann/können der funktionalen Sicherheitsstufe ASIL B entsprechen. In einigen Beispielen kann das Fahrzeug 700 mehrere LIDAR-Sensoren 764 (z. B. zwei, vier, sechs usw.) enthalten, die Ethernet verwenden können (z. B. zur Bereitstellung von Daten an einen Gigabit-Ethernet-Switch).Vehicle 700 may include LIDAR sensor(s) 764 . The LIDAR sensor(s) 764 may be used for object and pedestrian detection, emergency braking, collision avoidance, and/or other functions. The LIDAR sensor(s) 764 may be 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 provide data to a Gigabit Ethernet switch).

In einigen Beispielen kann der/die LIDAR-Sensor(en) 764 in der Lage sein, eine Liste von Objekten und deren Entfernungen für ein 360-Grad-Sichtfeld zu liefern. Im Handel erhältliche LIDAR-Sensoren 764 können eine Reichweite von etwa 700 m haben, mit einer Genauigkeit von 2 cm bis 3 cm und mit Unterstützung für eine Ethernet-Verbindung mit 700 Mbit/s, beispielsweise. In einigen Beispielen können ein oder mehrere nicht vorspringende LIDAR-Sensoren 764 verwendet werden. In solchen Beispielen kann/können der/die LIDAR-Sensor(en) 764 als kleines Gerät implementiert werden, das in die Front, das Heck, die Seiten und/oder die Ecken des Fahrzeugs 700 eingebettet werden kann. Der/die LIDAR-Sensor(en) 764 kann/können in solchen Beispielen ein horizontales Sichtfeld von bis zu 120 Grad und ein vertikales Sichtfeld von 35 Grad bieten, mit einer Reichweite von 200 m, selbst bei Objekten mit geringer Reflexion. Der/die frontmontierte(n) LIDAR-Sensor(en) 764 kann/können für ein horizontales Sichtfeld zwischen 45 Grad und 135 Grad konfiguriert werden.In some examples, the LIDAR sensor(s) 764 may be able to provide a list of objects and their distances for a 360 degree field of view. Commercially available LIDAR sensors 764 can have a range of about 700 m, with an accuracy of 2 cm to 3 cm and with support for a 700 Mbit/s Ethernet connection, for example. In some examples, one or more non-protruding LIDAR sensors 764 may be used. In such examples, the LIDAR sensor(s) 764 may be implemented as a small device that may be embedded in the front, rear, sides, and/or corners of the vehicle 700 . The LIDAR sensor(s) 764 in such examples can provide a horizontal field of view of up to 120 degrees and a vertical field of view of 35 degrees, with a range of 200 m, even on objects with low reflection. The front-mount LIDAR sensor(s) 764 can be configured for a horizontal field of view between 45 degrees and 135 degrees.

In einigen Beispielen können auch LIDAR-Technologien wie 3D-Blitz-LIDAR eingesetzt werden. 3D-Blitz-LIDAR verwendet einen Laserblitz als Übertragungsquelle, um die Umgebung des Fahrzeugs bis zu einer Entfernung von etwa 200 m zu beleuchten. Eine Flash-LIDAR-Einheit umfasst einen Rezeptor, der die Laufzeit des Laserpulses und das reflektierte Licht auf jedem Pixel aufzeichnet, was wiederum der Entfernung zwischen dem Fahrzeug und den Objekten entspricht. Mit Flash-LIDAR lassen sich mit jedem Laserblitz hochpräzise und verzerrungsfreie Bilder der Umgebung erzeugen. In einigen Beispielen können vier Flash-LIDAR-Sensoren eingesetzt werden, einer an jeder Seite des Fahrzeugs 700. Zu den verfügbaren 3D-Blitz-LIDAR-Systemen gehört eine 3D-Star-Array-LIDAR-Festkörperkamera, die außer einem Gebläse keine beweglichen Teile aufweist (z. B. ein nicht scannendes LIDAR-Gerät). Das Flash-LIDAR-Gerät kann einen 5-Nanosekunden-Laserimpuls der Klasse I (augensicher) pro Bild verwenden und das reflektierte Laserlicht in Form von 3D-Entfernungspunktwolken und gemeinsam registrierten Intensitätsdaten erfassen. Durch die Verwendung von Flash-LIDAR und weil Flash-LIDAR ein Festkörpergerät ohne bewegliche Teile ist, kann der/die LIDAR-Sensor(en) 764 weniger anfällig für Bewegungsunschärfe, Vibrationen und/oder Stöße sein.In some examples, lidar technologies such as 3D flash lidar may also be employed. 3D Flash LIDAR uses a laser flash as a transmission source to illuminate the vehicle's surroundings up to a distance of about 200 m. A flash LIDAR unit includes a receptor that records the travel time of the laser pulse and the reflected light on each pixel, which in turn corresponds to the distance between the vehicle and the objects. With Flash-LIDAR, high-precision and distortion-free images of the environment can be generated with each laser flash. In some examples, four flash LIDAR sensors may be deployed, one on each side of vehicle 700. Available 3D flash LIDAR systems include a solid state 3D star array LIDAR camera that has 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 in the form of 3D range point clouds and jointly registered intensity data. By using flash LIDAR, and because flash LIDAR is a solid state device with no moving parts, the LIDAR sensor(s) 764 may be less susceptible to motion blur, vibration, and/or shock.

Das Fahrzeug kann außerdem IMU-Sensor(en) 766 enthalten. Der/die IMU-Sensor(en) 766 kann/können in einigen Beispielen in der Mitte der Hinterachse des Fahrzeugs 700 angeordnet sein. Der (die) IMU-Sensor(en) 766 kann (können) beispielsweise und ohne Einschränkung einen (mehrere) Beschleunigungsmesser, einen (mehrere) Magnetometer, ein (mehrere) Gyroskop(e), einen (mehrere) Magnetkompass(e) und/oder andere Sensortypen umfassen. In einigen Beispielen, wie z. B. bei sechsachsigen Anwendungen, kann/können der/die IMU-Sensor(en) 766 Beschleunigungsmesser und Gyroskope umfassen, während bei neunachsigen Anwendungen der/die IMU-Sensor(en) 766 Beschleunigungsmesser, Gyroskope und Magnetometer umfassen können.The vehicle may also include IMU sensor(s) 766 . The IMU sensor(s) 766 may be located at the center of the rear axle of the vehicle 700 in some examples. The IMU sensor(s) 766 may include, for example and without limitation, an accelerometer(s), magnetometer(s), gyroscope(s), magnetic compass(es), and/or or other types of sensors. In some examples, such as For example, in six-axis applications, IMU sensor(s) 766 may include accelerometers and gyroscopes, while in nine-axis applications, IMU sensor(s) 766 may include accelerometers, gyroscopes, and magnetometers.

In einigen Ausführungsformen kann/können der/die IMU-Sensor(en) 766 als ein miniaturisiertes, hochleistungsfähiges GPS-gestütztes Trägheitsnavigationssystem (GPS/INS) implementiert werden, das mikroelektromechanische Trägheitssensoren (MEMS), einen hochempfindlichen GPS-Empfänger und fortschrittliche Kalman-Filteralgorithmen kombiniert, um Schätzungen von Position, Geschwindigkeit und Lage zu liefern. In einigen Beispielen können die IMU-Sensoren 766 das Fahrzeug 700 in die Lage versetzen, den Kurs zu schätzen, ohne dass Eingaben von einem Magnetsensor erforderlich sind, indem die Geschwindigkeitsänderungen von GPS direkt beobachtet und mit den IMU-Sensoren 766 korreliert werden. In einigen Beispielen können der/die IMU-Sensor(en) 766 und der/die GNSS-Sensor(en) 758 in einer einzigen integrierten Einheit kombiniert werden.In some embodiments, the IMU sensor(s) 766 may be implemented as a miniaturized, high-performance GPS-based inertial navigation system (GPS/INS) that includes microelectromechanical inertial sensors (MEMS), a high-sensitivity GPS receiver, and advanced Kalman filter algorithms combined to provide estimates of position, velocity and attitude. In some examples, the IMU sensors 766 can enable the vehicle 700 to estimate heading without requiring input from a magnetic sensor by directly observing and correlating the speed changes from GPS with the IMU sensors 766 . In some examples, IMU sensor(s) 766 and GNSS sensor(s) 758 may be combined into a single integrated unit.

Das Fahrzeug kann ein oder mehrere Mikrofone 796 enthalten, die im und/oder um das Fahrzeug 700 herum angebracht sind. Das/die Mikrofon(e) 796 kann/können u. a. zur Erkennung und Identifizierung von Einsatzfahrzeugen verwendet werden.The vehicle may include one or more microphones 796 mounted in and/or around the vehicle 700 . The microphone(s) 796 may include: used to detect and identify emergency vehicles.

Das Fahrzeug kann ferner eine beliebige Anzahl von Kameratypen enthalten, einschließlich Stereokamera(s) 768, Weitwinkelkamera(s) 770, Infrarotkamera(s) 772, Surround-Kamera(s) 774, Fern- und/oder Mittelbereichskamera(s) 798 und/oder andere Kameratypen. Die Kameras können verwendet werden, um Bilddaten rund um den gesamten Umfang des Fahrzeugs 700 zu erfassen. Die verwendeten Kameratypen hängen von den Ausführungsformen und Anforderungen für das Fahrzeug 700 ab, und es kann eine beliebige Kombination von Kameratypen verwendet werden, um die erforderliche Abdeckung um das Fahrzeug 700 herum zu gewährleisten. Darüber hinaus kann die Anzahl der Kameras je nach Ausführungsform unterschiedlich sein. So kann das Fahrzeug beispielsweise sechs Kameras, sieben Kameras, zehn Kameras, zwölf Kameras und/oder eine andere Anzahl von Kameras umfassen. Die Kameras können beispielsweise und ohne Einschränkung Gigabit Multimedia Serial Link (GMSL) und/oder Gigabit Ethernet unterstützen. Jede der Kameras wird hierin in Bezug auf 7A und 7B ausführlicher beschrieben.The vehicle may further include any number of camera types, including stereo camera(s) 768, wide-angle camera(s) 770, infrared camera(s) 772, surround camera(s) 774, far and/or mid-range camera(s) 798, and/or or other camera types. The cameras can 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 can be used to provide the required coverage around the vehicle 700 . In addition, the number of cameras can vary depending on the embodiment. For example, the vehicle may include six cameras, seven cameras, ten cameras, twelve cameras, and/or a different number of cameras. For example and without limitation, the cameras may support Gigabit Multimedia Serial Link (GMSL) and/or Gigabit Ethernet. Each of the cameras is referred to herein with respect to 7A and 7B described in more detail.

Das Fahrzeug 700 kann außerdem einen oder mehrere Schwingungssensoren 742 enthalten. Der/die Schwingungssensor(en) 742 kann/können Schwingungen von Komponenten des Fahrzeugs, wie z. B. der Achse(n), messen. Änderungen der Vibrationen können beispielsweise auf eine Änderung der Straßenoberfläche hinweisen. In einem anderen Beispiel können bei Verwendung von zwei oder mehr Schwingungssensoren 742 die Unterschiede zwischen den Schwingungen verwendet werden, um die Reibung oder den Schlupf der Straßenoberfläche zu bestimmen (z. B. wenn der Unterschied in der Schwingung zwischen einer angetriebenen Achse und einer frei drehenden Achse besteht).The vehicle 700 may also include one or more vibration sensors 742 . The vibration sensor(s) 742 may detect vibrations from components of the vehicle, such as B. the axis (s), measure. Changes in vibration can indicate a change in road surface, for example. In another example, when using two or more vibration sensors 742, the differences between the vibrations can be used to determine the friction or slippage of the road surface (e.g., when the difference in vibration between a driven axle and a freely rotating axis exists).

Das Fahrzeug 700 kann ein ADAS-System 738 enthalten. Das ADAS-System 738 kann in einigen Beispielen einen SoC enthalten. Das ADAS-System 738 kann einen autonomen/adaptiven/automatischen Geschwindigkeitsregler (ACC), einen kooperativen adaptiven Geschwindigkeitsregler (CACC), eine Auffahrwarnung (FCW), eine automatische Notbremsung (AEB), eine Spurverlassenswarnung (LDW), einen Spurhalteassistenten (LKA), einen Toter-Winkel-Warner (BSW), einen Querverkehrswarner (RCTW), ein Kollisionswarnsystem (CWS), eine Fahrspurzentrierung (LC) und/oder andere Merkmale und Funktionen umfassen.The vehicle 700 may include an ADAS system 738 . ADAS system 738 may include an SoC in some examples. The 738 ADAS system can include Autonomous/Adaptive/Automatic Cruise Control (ACC), Cooperative Adaptive Cruise Control (CACC), Forward Collision Warning (FCW), Automatic Emergency Braking (AEB), Lane Departure Warning (LDW), Lane Departure Warning (LKA), blind spot warning (BSW), cross traffic warning (RCTW), collision avoidance system (CWS), lane centering (LC), and/or other features and functions.

Die ACC-Systeme können RADAR-Sensor(en) 760, LIDAR-Sensor(en) 764 und/oder eine Kamera(en) verwenden. Die ACC-Systeme können einen ACC in Längsrichtung und/oder einen ACC in Querrichtung umfassen. Der ACC in Längsrichtung überwacht und steuert den Abstand zu dem unmittelbar vor dem Fahrzeug 700 befindlichen Fahrzeug und passt die Fahrzeuggeschwindigkeit automatisch an, um einen sicheren Abstand zu vorausfahrenden Fahrzeugen einzuhalten. Der seitliche ACC sorgt für die Einhaltung des Abstands und rät dem Fahrzeug 700, wenn nötig die Spur zu wechseln. Lateral ACC ist mit anderen ADAS-Anwendungen wie LCA und CWS verwandt.The ACC systems may use RADAR sensor(s) 760, LIDAR sensor(s) 764, and/or camera(s). The ACC systems may include a longitudinal ACC and/or a transverse ACC. Longitudinal ACC monitors and controls the distance to the vehicle immediately ahead of vehicle 700 and automatically adjusts vehicle speed to maintain a safe distance from vehicles in front. The side ACC maintains the distance and advises the vehicle 700 to change lanes if necessary. Lateral ACC is related to other ADAS applications such as LCA and CWS.

CACC verwendet Informationen von anderen Fahrzeugen, die über die Netzwerkschnittstelle 724 und/oder die Funkantenne(n) 726 von anderen Fahrzeugen über eine drahtlose Verbindung oder indirekt über eine Netzwerkverbindung (z. B. über das Internet) empfangen werden können. Direkte Verbindungen können über eine Fahrzeug-zu-Fahrzeug-Kommunikationsverbindung (V2V) hergestellt werden, während indirekte Verbindungen eine Infrastruktur-zu-Fahrzeug-Kommunikationsverbindung (I2V) sein können. Im Allgemeinen liefert das V2V-Kommunikationskonzept Informationen über die unmittelbar vorausfahrenden Fahrzeuge (z. B. Fahrzeuge, die sich unmittelbar vor dem Fahrzeug 700 und auf derselben Fahrspur wie dieses befinden), während das I2V-Kommunikationskonzept Informationen über den weiter vorausfahrenden Verkehr liefert. CACC-Systeme können eine oder beide I2V- und V2V-Informationsquellen enthalten. Angesichts der Informationen über die Fahrzeuge vor dem Fahrzeug 700 kann CACC zuverlässiger sein und hat das Potenzial, den Verkehrsfluss zu verbessern und Staus auf der Straße zu reduzieren.CACC uses information from other vehicles, which may be received via network interface 724 and/or radio antenna(s) 726 from other vehicles over a wireless connection or indirectly over a network connection (e.g., over the Internet). Direct connections can be established via a vehicle-to-vehicle (V2V) communication link, while indirect connections can be an infrastructure-to-vehicle (I2V) communication link. In general, the V2V communication concept provides information about the vehicles immediately ahead (e.g., vehicles that are immediately ahead and in the same lane as the vehicle 700), while the I2V communication concept provides information about the traffic further ahead. CACC systems can contain either or both I2V and V2V information sources. Given the information about the vehicles in front of the vehicle 700, CACC can be more reliable and has the potential to improve traffic flow and reduce congestion on the road.

FCW-Systeme sind so konzipiert, dass sie den Fahrer vor einer Gefahr warnen, so dass er korrigierend eingreifen kann. FCW-Systeme verwenden eine nach vorne gerichtete Kamera und/oder RADAR-Sensor(en) 760, die mit einem speziellen Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit der Rückmeldung an den Fahrer verbunden ist, z. B. über ein Display, einen Lautsprecher und/oder eine vibrierende Komponente. FCW-Systeme können eine Warnung ausgeben, z. B. in Form eines Tons, einer optischen Warnung, einer Vibration und/oder eines schnellen Bremsimpulses.FCW systems are designed to warn the driver of a hazard so that corrective action can be taken. Use FCW systems a forward-looking camera and/or RADAR sensor(s) 760 coupled to a dedicated processor, DSP, FPGA and/or ASIC electrically connected to feedback to the driver, e.g. B. via a display, a speaker and / or a vibrating component. FCW systems can issue a warning, e.g. B. in the form of a tone, a visual warning, a vibration and / or a quick brake impulse.

AEB-Systeme erkennen einen drohenden Zusammenstoß mit einem anderen Fahrzeug oder einem anderen Objekt und können automatisch die Bremsen betätigen, wenn der Fahrer nicht innerhalb eines bestimmten Zeit- oder Entfernungsparameters korrigierend eingreift. AEB-Systeme können nach vorne gerichtete Kamera(s) und/oder RADAR-Sensor(en) 760 verwenden, die mit einem speziellen Prozessor, DSP, FPGA und/oder ASIC verbunden sind. Wenn das AEB-System eine Gefahr erkennt, warnt es in der Regel zunächst den Fahrer, damit er korrigierend eingreift, um die Kollision zu vermeiden. Wenn der Fahrer keine korrigierenden Maßnahmen ergreift, kann das AEB-System automatisch die Bremsen betätigen, um die Auswirkungen der vorhergesagten Kollision zu verhindern oder mindestens abzumildern. AEB-Systeme können Techniken wie die dynamische Bremsunterstützung und/oder die Crash-Imminent Braking umfassen.AEB systems detect an impending 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 use forward-looking camera(s) and/or RADAR sensor(s) 760 connected to a dedicated processor, DSP, FPGA, and/or ASIC. When the AEB system detects a hazard, it typically first warns the driver so that corrective action can be taken 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 can include techniques such as Dynamic Brake Assist and/or Crash Imminent Braking.

Spurhalteassistenten warnen den Fahrer durch optische, akustische und/oder taktile Signale, z. B. durch Vibrationen am Lenkrad oder am Sitz, wenn das Fahrzeug 700 die Fahrbahnmarkierungen überfährt. Ein Spurhaltewarnsystem wird nicht aktiviert, wenn der Fahrer durch Betätigen des Blinkers ein absichtliches Verlassen der Fahrspur anzeigt. LDW-Systeme können nach vorne gerichtete Kameras verwenden, die mit einem speziellen Prozessor, DSP, FPGA und/oder ASIC verbunden sind, der elektrisch mit dem Fahrerfeedback gekoppelt ist, z. B. mit einer Anzeige, einem Lautsprecher und/oder einer vibrierenden Komponente.Lane departure warning systems warn the driver with visual, acoustic and/or tactile signals, e.g. B. by vibrations in the steering wheel or the seat when the vehicle 700 drives over the lane markings. A lane departure warning system will not activate if the driver indicates intentional departure from the lane by using the turn signal. LDW systems may use forward-facing cameras connected to a dedicated processor, DSP, FPGA, and/or ASIC that is electrically coupled to driver feedback, e.g. B. with a display, a speaker and / or a vibrating component.

LKA-Systeme sind eine Variante von LDW-Systemen. LKA-Systeme sorgen für einen Lenkeingriff oder eine Bremsung, um das Fahrzeug 700 zu korrigieren, wenn das Fahrzeug 700 beginnt, die Fahrspur zu verlassen.LKA systems are a variant of LDW systems. LKA systems provide steering intervention or braking to correct the vehicle 700 when the vehicle 700 begins to drift out of lane.

BSW-Systeme erkennen und warnen den Fahrer vor Fahrzeugen im toten Winkel des Fahrzeugs. BSW-Systeme können ein optisches, akustisches und/oder taktiles Warnsignal ausgeben, um darauf hinzuweisen, dass das Zusammenführen oder Wechseln der Fahrspur unsicher ist. Das System kann eine zusätzliche Warnung ausgeben, wenn der Fahrer einen Blinker betätigt. BSW-Systeme können nach hinten gerichtete Kamera(s) und/oder RADAR-Sensor(en) 760 verwenden, die mit einem speziellen Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit der Rückmeldung an den Fahrer verbunden ist, z. B. mit einem Display, einem Lautsprecher und/oder einer vibrierenden Komponente.BSW systems detect and warn the driver of vehicles in the vehicle's blind spot. BSW systems can provide a visual, audible and/or tactile warning signal to indicate that it is unsafe to merge or change lanes. The system can issue an additional warning if the driver activates a turn signal. BSW systems may use rear-facing camera(s) and/or RADAR sensor(s) 760 coupled to a dedicated processor, DSP, FPGA, and/or ASIC that is electrically connected to feedback to the driver, e.g. B. with a display, a speaker and / or a vibrating component.

RCTW-Systeme können eine optische, akustische und/oder taktile Benachrichtigung ausgeben, wenn beim Rückwärtsfahren des Fahrzeugs 700 ein Objekt außerhalb des Bereichs der Heckkamera erkannt wird. Einige RCTW-Systeme umfassen AEB, um sicherzustellen, dass die Fahrzeugbremsen betätigt werden, um einen Unfall zu vermeiden. RCTW-Systeme können einen oder mehrere nach hinten gerichtete RADAR-Sensoren 760 verwenden, die mit einem dedizierten Prozessor, DSP, FPGA und/oder ASIC gekoppelt sind, der elektrisch mit dem Fahrerfeedback gekoppelt ist, z. B. mit einem Display, einem Lautsprecher und/oder einer vibrierenden Komponente.RCTW systems may provide a visual, audible, and/or tactile notification when an object is detected out of range of the rear view camera while the vehicle 700 is backing up. Some RCTW systems include AEB to ensure vehicle brakes are applied to avoid an accident. RCTW systems may use one or more rear-facing RADAR sensors 760 coupled to a dedicated processor, DSP, FPGA, and/or ASIC that is electrically coupled to driver feedback, e.g. B. with a display, a speaker and / or a vibrating component.

Bei herkömmlichen ADAS-Systemen kann es zu falsch-positiven Ergebnissen kommen, die für den Fahrer ärgerlich und ablenkend sein können, aber in der Regel nicht katastrophal sind, weil die ADAS-Systeme den Fahrer warnen und ihm die Möglichkeit geben, zu entscheiden, ob wirklich ein Sicherheitszustand vorliegt und entsprechend zu handeln. In einem autonomen Fahrzeug 700 muss das Fahrzeug 700 jedoch im Falle widersprüchlicher Ergebnisse selbst entscheiden, ob es das Ergebnis eines primären Computers oder eines sekundären Computers (z. B. eines ersten Controllers 736 oder eines zweiten Controllers 736) beachtet. In einigen Ausführungsformen kann das ADAS-System 738 beispielsweise ein Backup- und/oder Sekundärcomputer sein, der Wahrnehmungsinformationen an ein Rationalitätsmodul des Backup-Computers liefert. Der Rationalitätsmonitor des Backup-Computers kann eine redundante Software auf Hardwarekomponenten ausführen, um Fehler in der Wahrnehmung und bei dynamischen Fahraufgaben zu erkennen. Die Ausgaben des ADAS-Systems 738 können an eine übergeordnete MCU weitergeleitet werden. Wenn die Ausgaben des Primärrechners und des Sekundärrechners kollidieren, muss die überwachende MCU bestimmen, wie der Konkurrenz gelöst werden kann, um einen sicheren Betrieb zu gewährleisten.Traditional ADAS systems can produce false positives, which can be annoying and distracting for the driver, but are usually not catastrophic because the ADAS systems warn the driver and give them the opportunity to decide if there really is a state of security and to act accordingly. In an autonomous vehicle 700, however, 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 the event of conflicting results. For example, in some embodiments, ADAS system 738 may be a backup and/or secondary computer that provides perceptual information to a rationality module of the backup computer. The backup computer's rationality monitor can run redundant software on hardware components to detect errors in perception and dynamic driving tasks. The ADAS system 738 outputs can be forwarded to a higher-level MCU. When the outputs of the primary and secondary computers collide, the monitoring MCU must determine how to resolve the contention to ensure safe operation.

In einigen Beispielen kann der primäre Computer so konfiguriert sein, dass er der übergeordneten MCU einen Vertrauenswert liefert, der das Vertrauen des primären Computers in das gewählte Ergebnis angibt. Übersteigt der Vertrauenswert einen Schwellenwert, kann die überwachende MCU der Anweisung des Primärcomputers folgen, unabhängig davon, ob der Sekundärcomputer ein widersprüchliches oder inkonsistentes Ergebnis liefert. Erreicht der Konfidenzwert den Schwellenwert nicht und geben der primäre und der sekundäre Computer unterschiedliche Ergebnisse an (z. B. den Konkurrenz), kann die übergeordnete MCU zwischen den Computern vermitteln, um das geeignete Ergebnis zu bestimmen.In some examples, the primary computer may be configured to provide the high-level MCU with a confidence value indicative of the primary computer's confidence in the selected outcome. If the confidence level exceeds a threshold, the monitoring MCU can 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 report different outcomes (e.g., the competition), the master MCU can mediate between the computers to determine the appropriate outcome.

Die überwachende MCU kann so konfiguriert sein, dass sie ein neuronales Netz bzw. neuronale Netze ausführt, das bzw. die so trainiert und konfiguriert ist bzw. sind, dass es bzw. sie basierend auf der Ausgaben des Primärcomputers und des Sekundärcomputers die Bedingungen bestimmt bzw. bestimmen, unter denen der Sekundärcomputer Fehlalarme auslöst. So kann das neuronale Netz bzw. können die neuronalen Netze in der Überwachungs-MCU lernen, wann der Ausgabe des Sekundärcomputers vertraut werden kann und wann nicht. Handelt es sich bei dem sekundären Computer beispielsweise um ein RADAR-basiertes FCW-System, kann ein neuronales Netz in der übergeordneten MCU lernen, wann das FCW-System metallische Objekte identifiziert, die in Wirklichkeit keine Gefahr darstellen, wie etwa ein Abflussgitter oder ein Schachtdeckel, der einen Alarm auslöst. Wenn der Sekundärcomputer ein kamerabasiertes Spurhaltewarnsystem ist, kann ein neuronales Netz in der Überwachungs-MCU lernen, das Spurhaltewarnsystem außer Kraft zu setzen, wenn Radfahrer oder Fußgänger vorhanden sind und ein Verlassen der Fahrspur tatsächlich das sicherste Manöver ist. In Ausführungsformen, in denen ein neuronales Netz bzw. neuronale Netze auf der überwachenden MCU laufen, kann die überwachende MCU mindestens einen DLA oder einen Grafikprozessor enthalten, der für den Betrieb des neuronalen Netzes bzw. der neuronalen Netze mit zugehörigem Speicher geeignet ist. In bevorzugten Ausführungsformen kann die Überwachungs-MCU eine Komponente des/der SoC(s) 704 umfassen und/oder darin enthalten sein.The monitoring MCU may be configured to execute a neural network or networks that are trained and configured to determine the conditions based on the outputs of the primary computer and the secondary computer .determine under which the secondary computer generates false alarms. This allows the neural network(s) 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 higher-level MCU can learn when the FCW system identifies metallic objects that do not actually pose a threat, such as a drain grate or a manhole cover , which triggers an alarm. If the secondary computer is a camera-based lane departure warning system, a neural network in the monitoring MCU can learn to override the lane departure warning system when cyclists or pedestrians are present and lane departure is indeed the safest manoeuvre. In embodiments where a neural network(s) is/are running on the monitoring MCU, the monitoring MCU may include at least one DLA or graphics processor capable of operating the neural network(s) with associated memory. In preferred embodiments, the monitoring MCU may comprise and/or be included as a component of the SoC(s) 704 .

In anderen Beispielen kann das ADAS-System 738 einen sekundären Computer umfassen, der die ADAS-Funktionen unter Verwendung herkömmlicher Regeln der Computer Vision ausführt. Der sekundäre Computer kann also klassische Regeln der Computer Vision verwenden (wenn-dann), und das Vorhandensein eines neuronalen Netzes (von neuronalen Netzen) in der übergeordneten MCU kann die Zuverlässigkeit, Sicherheit und Leistung verbessern. Beispielsweise wird das Gesamtsystem durch die unterschiedliche Implementierung und die absichtliche Nichtidentität fehlertoleranter, insbesondere gegenüber Fehlern, die durch Softwarefunktionen (oder Software-Hardware-Schnittstellen) verursacht werden. Wenn beispielsweise ein Softwarefehler in der auf dem Primärcomputer laufenden Software auftritt und der nicht identische Softwarecode auf dem Sekundärcomputer das gleiche Gesamtergebnis liefert, kann die überwachende MCU mit größerer Sicherheit davon ausgehen, dass das Gesamtergebnis korrekt ist und der Fehler in der Software oder Hardware des Primärcomputers keinen wesentlichen Fehler verursacht.In other examples, the ADAS system 738 may include a secondary computer that performs the ADAS functions using conventional computer vision rules. So, the secondary computer can use classic computer vision rules (if-then), and having a neural network(s) in the parent MCU can improve reliability, security, and performance. For example, the different implementation and intentional non-identity makes the overall system more fault-tolerant, especially to faults caused by software functions (or software-hardware interfaces). For example, if a software error occurs in the software running on the primary computer and the non-identical software code on the secondary computer gives the same overall result, the monitoring MCU can be more confident that the overall result is correct and the error is in the software or hardware of the primary computer did not cause any significant error.

In einigen Beispielen kann die Ausgabe des ADAS-Systems 738 in den Wahrnehmungsblock des Primärrechners und/oder in den Block für dynamische Fahraufgaben des Primärrechners eingespeist werden. Wenn das ADAS-System 738 beispielsweise eine Warnung vor einem Aufprall aufgrund eines unmittelbar vorausliegenden Objekts anzeigt, kann der Wahrnehmungsblock diese Information bei der Identifizierung von Objekten verwenden. In anderen Beispielen kann der Sekundärcomputer über ein eigenes neuronales Netz verfügen, das trainiert ist und somit das Risiko von Fehlalarmen reduziert, wie hier beschrieben.In some examples, the output of the ADAS system 738 may be fed into the perception block of the host computer and/or the dynamic driving task block of the host computer. For example, if the ADAS system 738 displays a warning of an impact due to an object immediately ahead, the perception block can use this information in identifying objects. In other examples, the secondary computer may have its own neural network that is trained and thus reduces the risk of false positives, as described herein.

Das Fahrzeug 700 kann außerdem das Infotainment-SoC 730 (z. B. ein bordeigenes Infotainment-System (IVI)) enthalten. Obwohl das Infotainment-System als SoC dargestellt und beschrieben wird, muss es nicht unbedingt ein SoC sein, sondern kann auch zwei oder mehr diskrete Komponenten umfassen. Das Infotainment-SoC 730 kann eine Kombination aus Hardware und Software enthalten, die zur Bereitstellung von Audio (z. B. Musik, einem persönlichen digitalen Assistenten, Navigationsanweisungen, Nachrichten, Radio usw.), Video (z. B. Fernsehen, Filme, Streaming usw.), Telefon (z. B. Freisprechen), Netzwerkkonnektivität (z. B., LTE, Wi-Fi usw.) und/oder Informationsdienste (z. B. Navigationssysteme, Einparkhilfe hinten, ein Radiodatensystem, fahrzeugbezogene Informationen wie Kraftstoffstand, zurückgelegte Gesamtstrecke, Bremskraftstoffstand, Ölstand, Tür öffnen/schließen, Luftfilterinformationen usw.) an das Fahrzeug 700. Der Infotainment-SoC 730 kann beispielsweise Radios, Plattenspieler, Navigationssysteme, Videoplayer, USB- und Bluetooth-Konnektivität, Carputer, In-Car-Entertainment, Wi-Fi, Audiobedienelemente am Lenkrad, Freisprecheinrichtung, ein Heads-up-Display (HUD), ein HMI-Display 734, ein Telematikgerät, ein Bedienfeld (z. B. zur Steuerung und/oder Interaktion mit verschiedenen Komponenten, Funktionen und/oder Systemen) und/oder andere Komponenten umfassen. Der Infotainment-SoC 730 kann ferner verwendet werden, um einem oder mehreren Nutzern des Fahrzeugs Informationen (z. B. visuell und/oder akustisch) zur Verfügung zu stellen, z. B. Informationen aus dem ADAS-System 738, Informationen zum autonomen Fahren wie geplante Fahrzeugmanöver, Trajektorien, Umgebungsinformationen (z. B. Kreuzungsinformationen, Fahrzeuginformationen, Straßeninformationen usw.) und/oder andere Informationen.The vehicle 700 may also include the infotainment SoC 730 (eg, an in-vehicle infotainment system (IVI)). Although the infotainment system is illustrated and described as an SoC, it does not necessarily have to be one SoC and may also include two or more discrete components. The infotainment SoC 730 may include a combination of hardware and software used to provide audio (e.g., music, a personal digital assistant, navigation instructions, news, radio, etc.), video (e.g., television, movies, streaming, etc.), telephone (e.g. hands-free), network connectivity (e.g., LTE, Wi-Fi, etc.) and/or information services (e.g. navigation systems, rear parking assistance, 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. For example, the infotainment SoC 730 can provide radios, turntables, navigation systems, video players, USB and Bluetooth connectivity, carputers, in-car Entertainment, Wi-Fi, steering wheel audio controls, speakerphone, 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., visually and/or audibly) to one or more users of the vehicle, e.g. B. information from the ADAS system 738, autonomous driving information such as planned vehicle maneuvers, trajectories, environmental information (e.g., intersection information, vehicle information, road information, etc.), and/or other information.

Der Infotainment-SoC 730 kann GPU-Funktionen enthalten. Der Infotainment-SoC 730 kann über den Bus 702 (z. B. CAN-Bus, Ethernet usw.) mit anderen Geräten, Systemen und/oder Komponenten des Fahrzeugs 700 kommunizieren. In einigen Beispielen kann der Infotainment-SoC 730 mit einer Überwachungs-MCU gekoppelt sein, so dass die GPU des Infotainment-Systems einige Selbstfahrfunktionen ausführen kann, falls die primäre(n) Steuereinheit(en) 736 (z. B. die primären und/oder Backup-Computer des Fahrzeugs 700) ausfallen. In einem solchen Beispiel kann der Infotainment-SoC 730 das Fahrzeug 700, wie hier beschrieben, in einen Chauffeurmodus bis zum sicheren Anhalten versetzen.The infotainment SoC 730 may include GPU functionality. The infotainment SoC 730 can communicate with other devices, systems, and/or components of the vehicle 700 via the bus 702 (eg, CAN bus, Ethernet, etc.). In some examples, the infotainment SoC 730 may be coupled to a supervisory MCU such that the infotainment system's GPU may perform some self-driving functions if the primary controller(s) 736 (e.g., primary and/or or vehicle backup computer 700) fail. In such an example, the infotainment SoC 730 may place the vehicle 700 in a chauffeured mode until a safe stop, as described herein.

Das Fahrzeug 700 kann ferner ein Kombiinstrument 732 (z. B. ein digitales Armaturenbrett, ein elektronisches Kombiinstrument, eine digitale Instrumententafel usw.) enthalten. Das Kombiinstrument 732 kann einen Controller und/oder einen Supercomputer (z. B. einen diskreten Controller oder einen Supercomputer) enthalten. Das Kombiinstrument 732 kann eine Reihe von Instrumenten enthalten, z. B. Tachometer, Kraftstoffstand, Öldruck, Drehzahlmesser, Kilometerzähler, Blinker, Schaltstellungsanzeige, Sicherheitsgurt-Warnleuchte(n), Parkbrems-Warnleuchte(n), Motor-Fehlfunktionsleuchte(n), Informationen über das Airbag-System (SRS), Beleuchtungssteuerungen, Sicherheitssystemsteuerungen, Navigationsinformationen usw. In einigen Beispielen können die Informationen vom Infotainment-SoC 730 und dem Kombiinstrument 732 angezeigt und/oder gemeinsam genutzt werden. Mit anderen Worten: Das Kombiinstrument 732 kann Teil des Infotainment-SoC 730 sein oder umgekehrt.The vehicle 700 may further include an instrument cluster 732 (eg, a digital dashboard, an electronic instrument cluster, a digital instrument panel, etc.). The cluster 732 may include a controller and/or a supercomputer (eg, a discrete controller or a supercomputer). The instrument cluster 732 may include a number of instruments, e.g. B. 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, security system controls , navigation information, etc. In some examples, the information may be displayed and/or shared between the infotainment SoC 730 and the instrument cluster 732 . In other words, the instrument cluster 732 can be part of the infotainment SoC 730 or vice versa.

7D ist ein Systemdiagramm für die Kommunikation zwischen einem oder mehreren cloudbasierten Servern und dem autonomen Beispielfahrzeug 700 aus 7A, gemäß einigen Ausführungsformen der vorliegenden Offenbarung. Das System 776 kann den/die Server 778, das/die Netzwerk(e) 790 und die Fahrzeuge, einschließlich des Fahrzeugs 700, umfassen. Der (die) Server 778 kann (können) eine Vielzahl von GPUs 784(A)-784(H) (hier zusammenfassend als GPUs 784 bezeichnet), PCIe-Switches 782(A)-782(H) (hier zusammenfassend als PCIe-Switches 782 bezeichnet) und/oder CPUs 780(A)-780(B) (hier zusammenfassend als CPUs 780 bezeichnet) umfassen. Die GPUs 784, die CPUs 780 und die PCIe-Switches können mit Hochgeschwindigkeitsverbindungen, wie z. B. den von NVIDIA entwickelten NVLink-Schnittstellen 788 und/oder PCIe-Verbindungen 786, miteinander verbunden sein. In einigen Beispielen sind die GPUs 784 über NVLink und/oder NVSwitch SoC und die GPUs 784 und die PCIe-Switches 782 über PCIe-Verbindungen verbunden. Obwohl acht GPUs 784, zwei CPUs 780 und zwei PCIe-Switches abgebildet sind, ist dies nicht als Einschränkung zu verstehen. Je nach Ausführungsform kann jeder der Server 778 eine beliebige Anzahl von GPUs 784, CPUs 780 und/oder PCIe-Switches umfassen. Beispielsweise kann jeder der Server 778 acht, sechzehn, zweiunddreißig und/oder mehr GPUs 784 enthalten. 7D 7 is a system diagram for communication between one or more cloud-based servers and the example autonomous vehicle 700. FIG 7A , according to some embodiments of the present disclosure. System 776 may include server(s) 778, network(s) 790, and vehicles, including vehicle 700. The server(s) 778 may include a variety 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). The 784 GPUs, 780 CPUs, and PCIe switches can be used with high-speed connections such as g. NVLink interfaces 788 and/or PCIe connections 786 developed by NVIDIA. In some examples, the GPUs 784 are connected via NVLink and/or NVSwitch SoC, and the GPUs 784 and PCIe switches 782 are connected via PCIe connections. Although eight 784 GPUs, two 780 CPUs, and two PCIe switches are shown, this should not be taken as a limitation. Depending on the embodiment, each of the servers 778 may include any number of GPUs 784, CPUs 780, and/or PCIe switches. For example, each of the servers 778 may include eight, sixteen, thirty-two, and/or more GPUs 784.

Der (die) Server 778 kann (können) über das (die) Netzwerk(e) 790 und von den Fahrzeugen Bilddaten empfangen, die für Bilder repräsentativ sind, die unerwartete oder veränderte Straßenzustände zeigen, z. B. kürzlich begonnene Straßenarbeiten. Der (die) Server 778 kann (können) über das (die) Netzwerk(e) 790 und an die Fahrzeuge neuronale Netze 792, aktualisierte neuronale Netze 792 und/oder Karteninformationen 794, einschließlich Informationen über Verkehrs- und Straßenbedingungen, übertragen. Die Aktualisierungen der Karteninformationen 794 können Aktualisierungen für die HD-Karte 722 enthalten, z. B. Informationen über Baustellen, Schlaglöcher, Umleitungen, Überschwemmungen und/oder andere Hindernisse. In einigen Beispielen können die neuronalen Netze 792, die aktualisierten neuronalen Netze 792 und/oder die Karteninformationen 794 aus neuem Training und/oder Erfahrungen resultieren, die in Daten dargestellt sind, die von einer beliebigen Anzahl von Fahrzeugen in der Umgebung empfangen wurden, und/oder auf einem Training basieren, das in einem Datenzentrum durchgeführt wurde (z. B. unter Verwendung des/der Server(s) 778 und/oder anderer Server).The server(s) 778 may receive, via the network(s) 790 and from the vehicles, image data representative of images showing unexpected or changing road conditions, e.g. B. Recently started road works. The server(s) 778 may transmit neural networks 792, updated neural networks 792, and/or map information 794, including information about traffic and road conditions, over the network(s) 790 and to the vehicles. Map information 794 updates may include HD map 722 updates, e.g. B. Information about roadworks, 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 data received from any number of vehicles in the area and/or or based on training performed in a data center (e.g., using server(s) 778 and/or other servers).

Der/die Server 778 kann/können verwendet werden, um Modelle für maschinelles Lernen (z. B. neuronale Netze) basierend auf Trainingsdaten zu trainieren. Die Trainingsdaten können von den Fahrzeugen und/oder in einer Simulation (z. B. mit einer Spiel-Engine) erzeugt werden. In einigen Beispielen werden die Trainingsdaten mit Tags versehen (z. B. wenn das neuronale Netz von überwachtem Lernen profitiert) und/oder einer anderen Vorverarbeitung unterzogen, während in anderen Beispielen die Trainingsdaten nicht mit Tags versehen und/oder vorverarbeitet werden (z. B. wenn das neuronale Netz kein überwachtes Lernen benötigt). Das Training kann nach einer oder mehreren Klassen von maschinellen Lerntechniken durchgeführt werden, einschließlich, aber nicht beschränkt auf Klassen wie: überwachtes Training, halbüberwachtes Training, unüberwachtes Training, selbstlernendes Lernen, Verstärkungslernen, föderiertes Lernen, Transferlernen, Merkmalslernen (einschließlich Hauptkomponenten- und Clusteranalysen), multilineares Unterraumlemen, vielfältiges Lernen, Repräsentationslemen (einschließlich Lernen mit Ersatzwörterbüchern), regelbasiertes maschinelles Lernen, Anomalieerkennung und alle Varianten oder Kombinationen davon. Sobald die maschinellen Lernmodelle trainiert sind, können die maschinellen Lernmodelle von den Fahrzeugen verwendet werden (z. B. durch Übertragung an die Fahrzeuge über das/die Netzwerk(e) 790 und/oder die maschinellen Lernmodelle können von dem/den Server(n) 778 zur Fernüberwachung der Fahrzeuge verwendet werden.The server(s) 778 can be used to train machine learning models (e.g., neural networks) based on training data. The training data can be generated by the vehicles and/or in a simulation (e.g. with a game engine). In some examples, the training data is tagged (e.g., where the neural network benefits from supervised learning) and/or undergoes other preprocessing, while in other examples, the training data is untagged and/or preprocessed (e.g., . if the neural network does not require supervised learning). Training may be performed following one or more classes of machine learning techniques, including but not limited to classes such as: supervised training, semi-supervised training, unsupervised training, self-learning, reinforcement learning, federated learning, transfer learning, feature learning (including principal component and cluster analyses) , multilinear subspace learning, diverse learning, representational learning (including learning with replacement dictionaries), rule-based machine learning, anomaly detection, and any variants or combinations thereof. Once the machine learning models are trained, the machine learning models can be used by the vehicles (e.g. by transmission to the vehicles via the network(s) 790 and/or the machine learning models can be used by the server(s) 778 to remotely monitor the vehicles.

In einigen Beispielen können die Server 778 Daten von den Fahrzeugen empfangen und die Daten auf aktuelle neuronale Netze in Echtzeit für intelligente Schlussfolgerungen in Echtzeit anwenden. Der/die Server 778 kann/können Deep-Learning-Supercomputer und/oder dedizierte KI-Computer umfassen, die von GPUs 784 angetrieben werden, wie z. B. die von NVIDIA entwickelten DGX- und DGX Station-Maschinen. In einigen Beispielen können die Server 778 jedoch auch Deep-Learning-Infrastrukturen umfassen, die nur CPU-betriebene Rechenzentren verwenden.In some examples, the servers 778 may receive data from the vehicles and apply the data to real-time up-to-date neural networks for real-time intelligent reasoning. Server(s) 778 may include deep learning supercomputers and/or dedicated AI computers powered by GPUs 784, such as B. the DGX and DGX Station machines developed by NVIDIA. However, in some examples, the servers 778 may also include deep learning infrastructures using only CPU-powered data centers.

Die Deep-Learning-Infrastruktur des/der Server(s) 778 kann zu schnellem Inferencing in Echtzeit fähig sein und kann diese Fähigkeit nutzen, um den Zustand der Prozessoren, der Software und/oder der zugehörigen Hardware im Fahrzeug 700 zu bewerten und zu überprüfen. Beispielsweise kann die Deep-Learning-Infrastruktur regelmäßige Aktualisierungen vom Fahrzeug 700 erhalten, wie etwa eine Abfolge von Bildern und/oder Objekten, die das Fahrzeug 700 in dieser Abfolge von Bildern lokalisiert hat (z. B. über Computer Vision und/oder andere maschinelle Objektklassifizierungstechniken). Die Deep-Learning-Infrastruktur kann ihr eigenes neuronales Netz laufen lassen, um die Objekte zu identifizieren und sie mit den vom Fahrzeug 700 identifizierten Objekten zu vergleichen. Wenn die Ergebnisse nicht übereinstimmen und die Infrastruktur zu dem Schluss kommt, dass die KI im Fahrzeug 700 nicht richtig funktioniert, kann der Server (oder die Server) 778 ein Signal an das Fahrzeug 700 senden, das einen ausfallsicheren Computer des Fahrzeugs 700 anweist, die Kontrolle zu übernehmen, die Fahrgäste zu benachrichtigen und ein sicheres Parkmanöver durchzuführen.The deep learning infrastructure of the server(s) 778 may be capable of high-speed, real-time inferencing and may use this capability to assess 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 700 located in that sequence of images (e.g., via computer vision and/or other machine tools). object classification techniques). The deep learning infrastructure can run its own neural network to identify the objects and compare them to the objects identified by the vehicle 700. If the results do not match and the infrastructure concludes that the AI in the vehicle 700 is not working properly, the server (or servers) 778 can send a signal to the vehicle 700 instructing a failsafe vehicle 700 computer to do the Take control, notify passengers and perform a safe parking manoeuvre.

Für die Inferenzerstellung kann der/die Server 778 die GPU(s) 784 und einen oder mehrere programmierbare Inferenzbeschleuniger (z. B. TensorRT von NVIDIA) enthalten. Die Kombination von GPU-gesteuerten Servern und Inferenzbeschleunigung kann eine Reaktionsfähigkeit in Echtzeit ermöglichen. In anderen Beispielen, in denen die Leistung weniger kritisch ist, können Server mit CPUs, FPGAs und anderen Prozessoren für die Inferenzbildung verwendet werden.For inferencing, the server(s) 778 may include the GPU(s) 784 and one or more programmable inference accelerators (e.g., NVIDIA's TensorRT). The combination of GPU-driven servers and inference acceleration can enable real-time responsiveness. In other examples where performance is less critical, servers with CPUs, FPGAs, and other processors can be used for inference.

Beispielhafte RechenvorrichtungExemplary computing device

8 ist ein Blockdiagramm einer beispielhaften Rechenvorrichtung(en) 800, die zur Verwendung bei der Implementierung einiger Ausführungsformen der vorliegenden Offenbarung geeignet ist. Die Rechenvorrichtung 800 kann ein Verbindungssystem 802 enthalten, das direkt oder indirekt die folgenden Vorrichtungen verbindet: Speicher 804, eine oder mehrere Zentraleinheiten (CPUs) 806, eine oder mehrere Grafikverarbeitungseinheiten (GPUs) 808, eine Kommunikationsschnittstelle 810, Ein-/Ausgabeanschlüsse (I/O) 812, Ein-/Ausgabekomponenten 814, eine Stromversorgung 816, eine oder mehrere Präsentationskomponenten 818 (z. B. Display(s)) und eine oder mehrere Logikeinheiten 820. In mindestens einer Ausführungsform kann die Rechnereinheit(en) 800 eine oder mehrere virtuelle Maschinen (VMs) umfassen und/oder jede ihrer Komponenten kann virtuelle Komponenten (z. B. virtuelle Hardwarekomponenten) umfassen. Als nicht einschränkende Beispiele können eine oder mehrere der GPUs 808 eine oder mehrere vGPUs umfassen, eine oder mehrere der CPUs 806 können eine oder mehrere vCPUs umfassen, und/oder eine oder mehrere der Logikeinheiten 820 können eine oder mehrere virtuelle Logikeinheiten umfassen. Als solche kann (können) ein (mehrere) Rechengerät(e) 800 diskrete Komponenten (z. B. eine vollständige GPU, die dem Rechengerät 800 gewidmet ist), virtuelle Komponenten (z. B. einen Teil einer GPU, die dem Rechengerät 800 gewidmet ist) oder eine Kombination davon umfassen. 8th 8 is a block diagram of an example computing device(s) 800 suitable for use in implementing some embodiments of the present disclosure. The computing device 800 may include an interconnection system 802 that directly or indirectly connects 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 O) 812, input/output components 814, a power supply 816, one or more presentation components 818 (e.g. display(s)) and one or more logic units 820. In at least one embodiment, the computing unit(s) 800 can have one or more include virtual machines (VMs) and/or each of their components 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 logical units 820 may include one or more virtual logical units. As such, a computing device(s) 800 may have discrete components (e.g., a full GPU dedicated to computing device 800), virtual components (e.g., a portion of a GPU dedicated to computing device 800 dedicated) or a combination thereof.

Obwohl die verschiedenen Blöcke in 8 als über das Verbindungssystem 802 mit Leitungen verbunden dargestellt sind, ist dies nicht als Einschränkung zu verstehen und dient nur der Klarheit. In einigen Ausführungsformen kann beispielsweise eine Präsentationskomponente 818, wie z. B. ein Anzeigegerät, als I/O-Komponente 814 betrachtet werden (z. B. wenn die Anzeige ein Touchscreen ist). Ein weiteres Beispiel ist, dass die CPUs 806 und/oder GPUs 808 Speicher enthalten können (z. B. kann der Speicher 804 zusätzlich zum Speicher der GPUs 808, der CPUs 806 und/oder anderer Komponenten ein Speichergerät darstellen). Mit anderen Worten, die Rechnereinrichtung der 8 ist lediglich illustrativ. Es wird nicht zwischen Kategorien wie „Workstation“, „Server“, „Laptop“, „Desktop“, „Tablet“, „Client-Gerät“, „mobiles Gerät“, „Handheld-Gerät“, „Spielkonsole“, „elektronische Steuereinheit (ECU)“, „Virtual-Reality-System“ und/oder anderen Geräte- oder Systemtypen unterschieden, da sie alle in den Anwendungsbereich der Rechenvorrichtung der 8 fallen.Although the various blocks in 8th shown connected to leads via connection 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 a display device, may be considered an I/O component 814 (e.g., if the display is a touch screen). Another example is that CPUs 806 and/or GPUs 808 may include memory (e.g., memory 804 may represent a storage device in addition to the memory of GPUs 808, CPUs 806, and/or other components). In other words, the computing device of the 8th is purely illustrative. It does not differentiate 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 types of devices or systems, as they all fall within the scope of the computing device 8th fall.

Das Verbindungssystem 802 kann eine oder mehrere Verbindungen oder Busse darstellen, wie z. B. einen Adressbus, einen Datenbus, einen Steuerbus oder eine Kombination davon. Das Verbindungssystem 802 kann einen oder mehrere Bus- oder Verbindungstypen umfassen, z. B. einen ISA-Bus (Industry Standard Architecture), einen EISA-Bus (Extended Industry Standard Architecture), einen VESA-Bus (Video Electronics Standards Association), einen PCI-Bus (Peripheral Component Interconnect), einen PCIe-Bus (Peripheral Component Interconnect Express) und/oder eine andere Art von Bus oder Verbindung. In einigen Ausführungsformen gibt es direkte Verbindungen zwischen den Komponenten. So kann beispielsweise die CPU 806 direkt mit dem Speicher 804 verbunden sein. Außerdem kann die CPU 806 direkt mit der GPU 808 verbunden sein. Bei direkten oder Punkt-zu-Punkt-Verbindungen zwischen Komponenten kann das Verbindungssystem 802 eine PCIe-Verbindung enthalten, um die Verbindung herzustellen. In diesen Beispielen muss ein PCI-Bus nicht in der Rechenvorrichtung 800 enthalten sein.Connection system 802 may represent one or more connections or buses, such as B. an address bus, a data bus, a control bus or a combination thereof. Connection system 802 may include one or more bus or connection types, e.g. an ISA (Industry Standard Architecture) bus, an EISA (Extended Industry Standard Architecture) bus, a VESA (Video Electronics Standards Associa tion), a Peripheral Component Interconnect (PCI) bus, a Peripheral Component Interconnect Express (PCIe) bus, and/or other type of bus or interconnect. In some embodiments, there are direct connections between the components. For example, the CPU 806 can be directly connected to the memory 804. In addition, the CPU 806 can be connected to the GPU 808 directly. For direct or point-to-point connections between components, connection system 802 may include a PCIe connection to establish the connection. In these examples, a PCI bus need not be included in computing device 800 .

Der Speicher 804 kann aus einer Vielzahl von computerlesbaren Medien bestehen. Bei den computerlesbaren Medien kann es sich um alle verfügbaren Medien handeln, auf die das Computergerät 800 zugreifen kann. Die computerlesbaren Medien können sowohl flüchtige als auch nicht-flüchtige Medien sowie austauschbare und nicht-entfernbare Medien umfassen. Als Beispiel und ohne Einschränkung können die computerlesbaren Medien Computerspeichermedien und Kommunikationsmedien umfassen.Memory 804 may consist of a variety of computer-readable media. The computer-readable media can be any available media that the computing device 800 can access. The computer-readable media can 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 communications media.

Die Computerspeichermedien können sowohl flüchtige als auch nichtflüchtige Medien und/oder entfernbare und nicht entfernbare Medien umfassen, die in einem beliebigen Verfahren oder einer beliebigen Technologie zur Speicherung von Informationen wie computerlesbaren Anweisungen, Datenstrukturen, Programmmodulen und/oder anderen Datentypen implementiert sind. Beispielsweise kann der Speicher 804 computerlesbare Anweisungen speichern (z. B. solche, die ein Programm bzw. Programme und/oder ein Programmelement bzw. Programmelemente darstellen, wie z. B. ein Betriebssystem. Zu den Computerspeichermedien können unter anderem RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologien, CD-ROM, Digital Versatile Disks (DVD) oder andere optische Plattenspeicher, Magnetkassetten, Magnetbänder, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder jedes andere Medium gehören, das zur Speicherung der gewünschten Informationen verwendet werden kann und auf das die Rechenvorrichtung 800 zugreifen kann. Der hier verwendete Begriff „Computerspeichermedium“ umfasst nicht per se Signale.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, memory 804 may store computer-readable instructions (e.g., those representing a program(s) and/or program element(s), such as an operating system. Computer storage media may include, but is not limited to, RAM, ROM, EEPROM , flash memory or other storage technology, CD-ROM, Digital Versatile Disks (DVD) or other optical disk storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage device, or any other medium that can be used to store the desired information and onto which the computing device 800. As used herein, the term "computer storage medium" does not encompass signals per se.

Die Computerspeichermedien können computerlesbare Befehle, Datenstrukturen, Programmmodule und/oder andere Datentypen in einem modulierten Datensignal wie z. B. einer Trägerwelle oder einem anderen Transportmechanismus verkörpern und umfassen beliebige Informationsübertragungsmedien. Der Begriff „moduliertes Datensignal“ kann sich auf ein Signal beziehen, bei dem eine oder mehrere seiner Eigenschaften so eingestellt oder verändert sind, dass Informationen in dem Signal codiert werden. Die Computerspeichermedien können beispielsweise verdrahtete Medien, wie ein verdrahtetes Netzwerk oder eine direkte Kabelverbindung, und drahtlose Medien, wie akustische, RF-, Infrarot- und andere drahtlose Medien, umfassen. Kombinationen der oben genannten Medien sollten ebenfalls in den Bereich der computerlesbaren Medien fallen.The computer storage media may contain computer-readable instructions, data structures, program modules, and/or other types of data in a modulated data signal such as a B. embody a carrier wave or other transport mechanism and include any information transmission media. The term "modulated data signal" may refer to a signal that has one or more of its properties adjusted or altered to encode information in the signal. The computer storage media may include, for example, wired media, such as a wired network or direct cable connection, and wireless media, such as acoustic, RF, infrared, and other wireless media. Combinations of the above media should also fall within the scope of computer-readable media.

Die CPU(s) 806 kann/können so konfiguriert sein, dass sie mindestens einige der computerlesbaren Anweisungen ausführen, um eine oder mehrere Komponenten des Computergeräts 800 zu steuern und eines oder mehrere der hierin beschriebenen Verfahren und/oder Prozesse durchzuführen. Die CPU(s) 806 kann/können jeweils einen oder mehrere Kerne (z. B. einen, zwei, vier, acht, achtundzwanzig, zweiundsiebzig usw.) umfassen, die in der Lage sind, eine Vielzahl von Software-Threads gleichzeitig zu verarbeiten. Die CPU(s) 806 kann/können jeden Prozessortyp umfassen und je nach Art der implementierten Rechenvorrichtung 800 unterschiedliche Prozessortypen umfassen (z. B. Prozessoren mit weniger Kernen für mobile Geräte und Prozessoren mit mehr Kernen für Server). Je nach Art des Rechengeräts 800 kann der Prozessor beispielsweise ein Advanced RISC Machines (ARM)-Prozessor sein, der mit Reduced Instruction Set Computing (RISC) arbeitet, oder ein x86-Prozessor, der mit Complex Instruction Set Computing (CISC) arbeitet. Die Recheneinheit 800 kann eine oder mehrere CPUs 806 zusätzlich zu einem oder mehreren Mikroprozessoren oder zusätzlichen Co-Prozessoren, wie z. B. mathematischen Co-Prozessoren, enthalten.The CPU(s) 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 and perform one or more of the methods and/or processes described herein. The CPU(s) 806 may each include one or more cores (e.g., one, two, four, eight, twenty-eight, seventy-two, etc.) capable of processing multiple software threads concurrently . The CPU(s) 806 may include any type of processor and may include different types of processors (e.g., processors with fewer cores for mobile devices and processors with more cores for servers) depending on the type of computing device 800 implemented. Depending on the nature of the computing device 800, the processor may be, for example, an Advanced RISC Machines (ARM) processor that uses Reduced Instruction Set Computing (RISC) or an x86 processor that uses Complex Instruction Set Computing (CISC). The computing unit 800 can include one or more CPUs 806 in addition to one or more microprocessors or additional co-processors, such as e.g. B. mathematical co-processors included.

Zusätzlich zu oder alternativ zu der/den CPU(s) 806 kann/können die GPU(s) 808 so konfiguriert sein, dass sie mindestens einige der computerlesbaren Anweisungen ausführen, um eine oder mehrere Komponenten des Computergeräts 800 zu steuern, um eines oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. Eine oder mehrere der GPU(s) 808 können eine integrierte GPU sein (z.B. mit einer oder mehreren der CPU(s) 806 und/oder eine oder mehrere der GPU(s) 808 können eine diskrete GPU sein. In Ausführungsformen kann eine oder mehrere der GPU(s) 808 ein Coprozessor einer oder mehrerer der CPU(s) 806 sein. Der/die Grafikprozessor(en) 808 kann/können von der Rechenvorrichtung 800 verwendet werden, um Grafiken (z. B. 3D-Grafiken) zu rendern oder allgemeine Berechnungen durchzuführen. Die GPU(s) 808 kann/können beispielsweise für General-Purpose Computing on GPUs (GPGPU) verwendet werden. Die GPU(s) 808 kann/können Hunderte oder Tausende von Kernen umfassen, die in der Lage sind, Hunderte oder Tausende von Software-Threads gleichzeitig zu verarbeiten. Die GPU(s) 808 kann/können als Reaktion auf Rendering-Befehle (z. B. Rendering-Befehle von der/den CPU(s) 806, die über eine Host-Schnittstelle empfangen werden) Pixeldaten für Ausgabebilder erzeugen. Die GPU(s) 808 kann/können einen Grafikspeicher, z. B. einen Anzeigespeicher, zum Speichern von Pixeldaten oder anderen geeigneten Daten, z. B. GPGPU-Daten, enthalten. Der Anzeigespeicher kann als Teil des Speichers 804 enthalten sein. Die GPU(s) 808 kann/können zwei oder mehr GPUs umfassen, die parallel arbeiten (z. B. über eine Verbindung). Die Verbindung kann die GPUs direkt verbinden (z. B. mit NVLINK) oder die GPUs über einen Switch verbinden (z. B. mit NVSwitch). Wenn sie miteinander kombiniert werden, kann jede GPU 808 Pixeldaten oder GPGPU-Daten für verschiedene Teile einer Ausgabe oder für verschiedene Ausgaben erzeugen (z. B. eine erste GPU für ein erstes Bild und eine zweite GPU für ein zweites Bild). Jede GPU kann ihren eigenen Speicher haben oder sich den Speicher mit anderen GPUs teilen.In addition to or in the alternative to the CPU(s) 806, the GPU(s) 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 to carry out the methods and/or processes described herein. One or more of the GPU(s) 808 may be an integrated GPU (eg, with one or more of the CPU(s) 806 and/or one or more of the GPU(s) 808 may be a discrete GPU. In embodiments, one or more of the GPU(s) 808 may be a co-processor of one or more of the CPU(s) 806. The graphics processor(s) 808 may be used by the computing device 800 to render graphics (e.g., 3D graphics). or perform general purpose computations. The GPU(s) 808 may be used, for example, for General-Purpose Computing on GPUs (GPGPU).The GPU(s) 808 may include hundreds or thousands of cores capable of Process hundreds or thousands of software threads concurrently The GPU(s) 808 may, in response to rendering Commands (e.g., rendering commands from the CPU(s) 806 received over a host interface) generate pixel data for output images. The GPU(s) 808 may include graphics memory, e.g. a display memory, for storing pixel data or other suitable data, e.g. B. GPGPU data included. Display memory may be included as part of memory 804 . The GPU(s) 808 may include two or more GPUs operating in parallel (e.g., via an interconnect). The connection can connect the GPUs directly (e.g. using NVLINK) or connect the GPUs through a switch (e.g. using NVSwitch). When combined together, each GPU 808 can generate pixel data or GPGPU data for different parts 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 have its own memory or share memory with other GPUs.

Zusätzlich zu oder alternativ zu der (den) CPU(s) 806 und/oder der (den) GPU(s) 808 kann (können) die Logikeinheit(en) 820 so konfiguriert sein, dass sie mindestens einige der computerlesbaren Anweisungen ausführt (ausführen), um eine oder mehrere Komponenten des Computergeräts 800 zu steuern, um eines oder mehrere der hier beschriebenen Verfahren und/oder Prozesse durchzuführen. In Ausführungsformen können die CPU(s) 806, die GPU(s) 808 und/oder die Logikeinheit(en) 820 diskret oder gemeinsam eine beliebige Kombination der Methoden, Prozesse und/oder Teile davon ausführen. Eine oder mehrere der Logikeinheiten 820 können Teil einer oder mehrerer der CPU(s) 806 und/oder der GPU(s) 808 sein und/oder eine oder mehrere der Logikeinheiten 820 können diskrete Komponenten oder anderweitig außerhalb der CPU(s) 806 und/oder der GPU(s) 808 sein. In Ausführungsformen kann eine oder mehrere der Logikeinheiten 820 ein Koprozessor einer oder mehrerer der CPU(s) 806 und/oder einer oder mehrerer der GPU(s) 808 sein.In addition to or in the alternative to CPU(s) 806 and/or GPU(s) 808, logic unit(s) 820 may be configured to execute at least some of the computer-readable instructions ) to control one or more components of computing device 800 to perform one or more of the methods and/or processes described herein. In embodiments, CPU(s) 806, GPU(s) 808, and/or logic unit(s) 820 may execute any combination of the methods, processes, and/or portions thereof, discretely or collectively. One or more of the logic units 820 may be part of one or more of the CPU(s) 806 and/or the GPU(s) 808 and/or one or more of the logic units 820 may be discrete components or otherwise external to the CPU(s) 806 and/or or the GPU(s) 808. In embodiments, one or more of the logic units 820 may be a co-processor of one or more of the CPU(s) 806 and/or one or more of the GPU(s) 808 .

Beispiele für die Logikeinheit(en) 820 umfassen einen oder mehrere Verarbeitungskerne und/oder Komponenten davon, wie Datenverarbeitungseinheiten (DPUs), Tensorkerne (TCs), Tensorverarbeitungseinheiten (TPUs), Pixel Visual Cores (PVCs), Bildverarbeitungseinheiten (VPUs), Grafikverarbeitungscluster (GPCs), Texturverarbeitungscluster (TPCs), Streaming-Multiprozessoren (SMs), Tree Traversal Units (TTUs), Artificial Intelligence Accelerators (AIAs), Deep Learning Accelerators (DLAs), Arithmetic-Logic Units (ALUs), Application-Specific Integrated Circuits (ASICs), Floating Point Units (FPUs), Input/Output (I/O)-Elemente, Peripheral Component Interconnect (PCI) oder Peripheral Component Interconnect Express (PCIe)-Elemente und/oder dergleichen.Examples of the logic unit(s) 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), image 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 (ASICs ), Floating Point Units (FPUs), Input/Output (I/O) elements, Peripheral Component Interconnect (PCI) or Peripheral Component Interconnect Express (PCIe) elements and/or the like.

Die Kommunikationsschnittstelle 810 kann einen oder mehrere Empfänger, Sender und/oder Transceiver enthalten, die es dem Computergerät 800 ermöglichen, mit anderen Computergeräten über ein elektronisches Kommunikationsnetzwerk zu kommunizieren, einschließlich drahtgebundener und/oder drahtloser Kommunikation. Die Kommunikationsschnittstelle 810 kann Komponenten und Funktionen enthalten, die die Kommunikation über eine Reihe verschiedener Netzwerke ermöglichen, wie z. B. drahtlose Netzwerke (z. B. Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee usw.), drahtgebundene Netzwerke (z. B. Kommunikation über Ethernet oder InfiniBand), Weitverkehrsnetzwerke mit geringer Leistung (z. B. LoRaWAN, SigFox usw.) und/oder das Internet. In einer oder mehreren Ausführungsformen können die Logikeinheit(en) 820 und/oder die Kommunikationsschnittstelle 810 eine oder mehrere Datenverarbeitungseinheiten (DPUs) enthalten, um über ein Netzwerk und/oder über das Verbindungssystem 802 empfangene Daten direkt an (z. B. einen Speicher) eine oder mehrere GPU(s) 808 zu übertragen.Communications interface 810 may include one or more receivers, transmitters, and/or transceivers that enable computing device 800 to communicate with other computing devices over an electronic communications network, including wired and/or wireless communications. Communications interface 810 may include components and functionality that enable communication over a variety of networks, such as B. wireless networks (e.g. Wi-Fi, Z-Wave, Bluetooth, Bluetooth LE, ZigBee, etc.), wired networks (e.g. communication via Ethernet or InfiniBand), low-power wide area networks (e.g. LoRaWAN, SigFox, etc.) and/or the Internet. In one or more embodiments, logical unit(s) 820 and/or communication interface 810 may include one or more data processing units (DPUs) to transmit data received over a network and/or over connection system 802 directly to (e.g., a memory) one or more GPU(s) 808 to transmit.

Über die I/O-Ports 812 kann das Computergerät 800 logisch mit anderen Geräten gekoppelt werden, darunter die I/O-Komponenten 814, die Präsentationskomponente(n) 818 und/oder andere Komponenten, von denen einige in das Computergerät 800 eingebaut (z. B. integriert) sein können. Illustrative I/O-Komponenten 814 umfassen ein Mikrofon, eine Maus, eine Tastatur, einen Joystick, ein Gamepad, einen Gamecontroller, eine Satellitenschüssel, einen Scanner, einen Drucker, ein drahtloses Gerät usw. Die I/O-Komponenten 814 können eine natürliche Benutzerschnittstelle (NUI) bereitstellen, die Luftgesten, Sprache oder andere physiologische Eingaben eines Benutzers verarbeitet. In einigen Fällen können die Eingaben zur weiteren Verarbeitung an ein geeignetes Netzwerkelement übertragen werden. Eine NUI kann eine beliebige Kombination aus Spracherkennung, Stifterkennung, Gesichtserkennung, biometrischer Erkennung, Gestenerkennung sowohl auf dem Bildschirm als auch in der Nähe des Bildschirms, Luftgesten, Kopf- und Augenverfolgung und Berührungserkennung (wie unten ausführlicher beschrieben) in Verbindung mit einer Anzeige des Computergeräts 800 implementieren. Die Computervorrichtung 800 kann Tiefenkameras, wie stereoskopische Kamerasysteme, Infrarotkamerasysteme, RGB-Kamerasysteme, Touchscreen-Technologie und Kombinationen davon, zur Gestenerkennung und - erfassung enthalten. Darüber hinaus kann das Computergerät 800 Beschleunigungsmesser oder Gyroskope (z. B. als Teil einer Trägheitsmesseinheit (IMU)) enthalten, die die Erkennung von Bewegungen ermöglichen. In einigen Beispielen kann die Ausgabe der Beschleunigungsmesser oder Gyroskope von der Computervorrichtung 800 verwendet werden, um immersive Augmented Reality oder Virtual Reality darzustellen.Through I/O ports 812, computing device 800 may be logically coupled to other devices, including I/O components 814, presentation component(s) 818, and/or other components, some of which are built into computing device 800 (e.g., B. integrated) can be. Illustrative I/O components 814 include a microphone, mouse, keyboard, joystick, gamepad, game controller, satellite dish, scanner, printer, wireless device, etc. I/O components 814 can be a natural Provide a user interface (NUI) that processes a user's air gestures, speech, or other physiological input. In some cases, the inputs may be transmitted to an appropriate network element for further processing. A NUI may use any combination of speech recognition, pen recognition, facial recognition, biometric recognition, both on-screen and near-screen gesture recognition, air gestures, head and eye tracking, and touch recognition (as described in more detail below) in conjunction with a display of the computing device implement 800. Computing device 800 may include depth cameras such as stereoscopic camera systems, infrared camera systems, RGB camera systems, touch screen technology, and combinations thereof for gesture recognition and capture. Additionally, computing device 800 may include accelerometers or gyroscopes (e.g., as part of an inertial measurement unit (IMU)) that enable motion detection. In some examples, the output of the accelerometers or gyroscopes from the computing device 800 can be used to display immersive augmented reality or virtual reality.

Die Stromversorgung 816 kann eine festverdrahtete Stromversorgung, eine Batteriestromversorgung oder eine Kombination davon sein. Die Stromversorgung 816 kann das Computergerät 800 mit Strom versorgen, um den Betrieb der Komponenten des Computergeräts 800 zu ermöglichen.The power supply 816 can be a hardwired power supply, a battery power supply, or a combination thereof. The power supply 816 may provide power to the computing device 800 to enable the components of the computing device 800 to operate.

Die Präsentationskomponente(n) 818 kann/können eine Anzeige (z. B. einen Monitor, einen Touchscreen, einen Fernsehbildschirm, ein Heads-up-Display (HUD), andere Anzeigetypen oder eine Kombination davon), Lautsprecher und/oder andere Präsentationskomponenten umfassen. Die Präsentationskomponente(n) 818 kann/können Daten von anderen Komponenten (z. B. der/den GPU(s) 808, der/den CPU(s) 806, DPUs usw.) empfangen und die Daten ausgeben (z. B. als Bild, Video, Ton usw.).The presentation component(s) 818 may include a display (e.g., a monitor, touch screen, television screen, heads-up display (HUD), other display types, or a combination thereof), speakers, and/or other presentation components . The presentation component(s) 818 may receive data from other components (e.g., the GPU(s) 808, the CPU(s) 806, DPUs, etc.) and output the data (e.g. as image, video, sound, etc.).

Beispielhaftes DatenzentrumExemplary data center

9 zeigt ein beispielhaftes Datenzentrum 900, das in mindestens einer Ausführungsform der vorliegenden Offenbarung verwendet werden kann. Das Datenzentrum 900 kann eine Datenzentrumsinfrastrukturschicht 910, eine Framework-Schicht 920, eine Softwareschicht 930 und/oder eine Anwendungsschicht 940 umfassen. 9 FIG. 9 shows an exemplary data center 900 that may be used in at least one embodiment of the present disclosure. The 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.

Wie in 9 dargestellt, kann die Infrastrukturschicht 910 des Datenzentrums einen Ressourcen-Orchestrator 912, gruppierte Rechenressourcen 914 und Knotenrechenressourcen („Knoten-C.R.s“) 916(1)-916(N) umfassen, wobei „N“ eine beliebige ganze, positive Zahl darstellt. In mindestens einer Ausführungsform können die Knoten C.R.s 916(1)-916(N) eine beliebige Anzahl von Zentraleinheiten (CPUs) oder anderen Prozessoren (einschließlich DPUs, Beschleunigern, Field Programmable Gate Arrays (FPGAs), Grafikprozessoren oder Grafikverarbeitungseinheiten (GPUs) usw.), Speichervorrichtungen (z. B., dynamischer Festwertspeicher), Speichergeräte (z. B. Festkörper- oder Plattenlaufwerke), Netzwerk-Eingabe-/Ausgabegeräte (NW I/O), Netzwerk-Switches, virtuelle Maschinen (VMs), Stromversorgungsmodule und/oder Kühlmodule usw. In einigen Ausführungsformen können ein oder mehrere Knoten-CRs unter den Knoten-CRs 916(1)-916(N) einem Server entsprechen, der über eine oder mehrere der oben erwähnten Rechenressourcen verfügt. Darüber hinaus können in einigen Ausführungsformen die Knoten C.R.s 916(1)-9161(N) eine oder mehrere virtuelle Komponenten enthalten, wie z. B. vGPUs, vCPUs und/oder dergleichen, und/oder einer oder mehrere der Knoten C.R.s 916(1)-916(N) können einer virtuellen Maschine (VM) entsprechen.As in 9 As illustrated, the data center infrastructure layer 910 may include a resource orchestrator 912, clustered compute resources 914, and node compute resources ("node CRs") 916(1)-916(N), where "N" represents any positive integer. In at least one embodiment, node CRs 916(1)-916(N) may include 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. ), storage devices (e.g., dynamic read-only memory), storage devices (e.g., solid state or disk drives), network input/output devices (NW I/O), network switches, virtual machines (VMs), power supply modules, and /or cooling modules, etc. In some embodiments, one or more node CRs among node CRs 916(1)-916(N) may correspond to a server having one or more of the computing resources mentioned above. Additionally, in some embodiments, node CRs 916(1)-9161(N) may include one or more virtual components, such as: , vGPUs, vCPUs, and/or the like, and/or one or more of node CRs 916(1)-916(N) may correspond to a virtual machine (VM).

In mindestens einer Ausführungsform können die gruppierten Rechenressourcen 914 separate Gruppierungen von Knoten-CRs 916 umfassen, die in einem oder mehreren Racks (nicht dargestellt) oder in vielen Racks in Datenzentren an verschiedenen geografischen Standorten (ebenfalls nicht dargestellt) untergebracht sind. Separate Gruppierungen von Knoten-C.R.s 916 innerhalb der gruppierten Rechenressourcen 914 können gruppierte Rechen-, Netzwerk-, Speicher- oder Speicherressourcen umfassen, die zur Unterstützung einer oder mehrerer Arbeitslasten konfiguriert oder zugewiesen werden können. In mindestens einer Ausführungsform können mehrere Knoten-CRs 916 mit CPUs, GPUs, DPUs und/oder anderen Prozessoren in einem oder mehreren Racks gruppiert werden, um Rechenressourcen zur Unterstützung einer oder mehrerer Arbeitslasten bereitzustellen. Das eine oder die mehreren Racks können auch eine beliebige Anzahl von Stromversorgungsmodulen, Kühlmodulen und/oder Netzwerk-Switches in beliebiger Kombination enthalten.In at least one embodiment, the clustered computing resources 914 may include separate clusters of node CRs 916 housed in one or more racks (not shown) or in many racks in data centers in different geographic locations (also not shown). Separate groupings of node C.R.s 916 within the grouped compute resources 914 may include grouped compute, 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 containing CPUs, GPUs, DPUs, and/or other processors may be grouped in one or more racks to provide compute 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.

Der Ressourcen-Orchestrator 912 kann einen oder mehrere Knoten-CRs 916(1)-916(N) und/oder gruppierte Rechenressourcen 914 konfigurieren oder anderweitig steuern. In mindestens einer Ausführungsform kann der Ressourcen-Orchestrator 912 eine Software-Design-Infrastruktur (SDI)-Verwaltungseinheit für das Datenzentrum 900 umfassen. Der Ressourcen-Orchestrator 912 kann Hardware, Software oder eine Kombination davon umfassen.The 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 comprise a data center software design infrastructure (SDI) manager 900 . The resource orchestrator 912 may include hardware, software, or a combination thereof.

In mindestens einer Ausführungsform, wie in 9 gezeigt, kann die Framework-Schicht 920 einen Job Scheduler 933, einen Konfigurationsmanager 934, einen Ressourcenmanager 936 und/oder ein verteiltes Dateisystem 938 enthalten. Die Framework-Schicht 920 kann ein Framework zur Unterstützung der Software 932 der Softwareschicht 930 und/oder einer oder mehrerer Anwendungen 942 der Anwendungsschicht 940 enthalten. Die Software 932 oder die Anwendung(en) 942 können jeweils webbasierte Dienstsoftware oder Anwendungen umfassen, wie sie von Amazon Web Services, Google Cloud und Microsoft Azure bereitgestellt werden. Bei der Framework-Schicht 920 kann es sich um eine Art von freiem und quelloffenem Software-Webanwendungs-Framework wie Apache Spark™ (im Folgenden „Spark“) handeln, das ein verteiltes Dateisystem 938 für die Verarbeitung großer Datenmengen (z. B. „Big Data“) nutzen kann, ohne darauf beschränkt zu sein. In mindestens einer Ausführungsform kann der Job Scheduler 933 einen Spark-Treiber enthalten, um die Planung von Arbeitslasten zu erleichtern, die von verschiedenen Schichten des Datenzentrums 900 unterstützt werden. Der Konfigurationsmanager 934 kann in der Lage sein, verschiedene Schichten zu konfigurieren, z. B. die Softwareschicht 930 und die Framework-Schicht 920 einschließlich Spark und das verteilte Dateisystem 938 zur Unterstützung der Verarbeitung großer Datenmengen. Der Ressourcenmanager 936 kann in der Lage sein, geclusterte oder gruppierte Computerressourcen zu verwalten, die zur Unterstützung des verteilten Dateisystems 938 und des Job Schedulers 933 zugeordnet sind. In mindestens einer Ausführungsform können geclusterte oder gruppierte Rechenressourcen gruppierte Rechenressourcen 914 auf der Infrastrukturschicht 910 des Datenzentrums umfassen. Der Ressourcenmanager 936 kann sich mit dem Ressourcen-Orchestrator 912 abstimmen, um diese zugeordneten oder zugewiesenen Computerressourcen zu verwalten.In at least one embodiment, as in 9 As shown, the framework layer 920 may include a job scheduler 933, a configuration manager 934, a resource manager 936, and/or a distributed file system 938. Framework layer 920 may include a framework to support software 932 of software layer 930 and/or one or more applications 942 of application layer 940 . The software 932 or application(s) 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 can be some type of free and open source software web application framework such as Apache Spark™ (hereafter "Spark"), which provides a distributed file system 938 for processing large amounts of data (e.g. " Big Data"), but is not limited to it. In at least one embodiment, job scheduler 933 may include a Spark driver to facilitate scheduling of workloads supported by different data center 900 tiers. The configuration manager 934 may be able to configure different layers, e.g. B. the software layer 930 and the framework layer 920 including Spark and the distributed file system 938 to support processing of large amounts of data. Resource manager 936 may be able to manage clustered or grouped computing resources allocated to support distributed file system 938 and job scheduler 933 . In at least one embodiment, clustered or grouped computing resources may include clustered computing resources 914 at the data center infrastructure layer 910 . The resource manager 936 may coordinate with the resource orchestrator 912 to manage these allocated or assigned computing resources.

In mindestens einer Ausführungsform kann die in der Softwareschicht 930 enthaltene Software 932 Software enthalten, die von mindestens Teilen der Knoten C.R.s 916(1)-916(N), den gruppierten Computerressourcen 914 und/oder dem verteilten Dateisystem 938 der Framework-Schicht 920 verwendet wird. Eine oder mehrere Arten von Software können u. a. Internet-Suchsoftware, E-Mail-Virenscan-Software, Datenbanksoftware und Software für Streaming-Videoinhalte umfassen.In at least one embodiment, the software 932 included in the software layer 930 may include software used by at least portions of the node C.R.s 916(1)-916(N), the clustered computing resources 914, and/or the distributed file system 938 of the framework layer 920 becomes. One or more types of software may include: Internet search software, email virus scanning software, database software and streaming video content software.

In mindestens einer Ausführungsform kann (können) die in der Anwendungsschicht 940 enthaltene(n) Anwendung(en) 942 eine oder mehrere Arten von Anwendungen umfassen, die von mindestens Teilen der Knoten C.R.s 916(1)-916(N), den gruppierten Rechenressourcen 914 und/oder dem verteilten Dateisystem 938 der Framework-Schicht 920 verwendet werden. Eine oder mehrere Arten von Anwendungen können eine beliebige Anzahl von Genomanwendungen, kognitiven Berechnungen und Anwendungen für maschinelles Lernen umfassen, einschließlich Trainings- oder Inferenzsoftware, Framework-Software für maschinelles Lernen (z. B. PyTorch, TensorFlow, Caffe usw.) und/oder andere Anwendungen für maschinelles Lernen, die in Verbindung mit einer oder mehreren Ausführungsformen verwendet werden, sind aber nicht darauf beschränkt.In at least one embodiment, the application(s) 942 contained in the application layer 940 may include one or more types of applications used by at least portions of the node C.R.s 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 any number of genomic, cognitive computing, and machine learning applications, including training or inference software, machine learning framework software (e.g., PyTorch, TensorFlow, Caffe, etc.), and/or but are not limited to other machine learning applications used in connection with one or more embodiments.

In mindestens einer Ausführungsform können der Konfigurationsmanager 934, der Ressourcenmanager 936 und der Ressourcen-Orchestrator 912 eine beliebige Anzahl und Art von selbstmodifizierenden Aktionen implementieren, die auf einer beliebigen Menge und Art von Daten basieren, die auf jede technisch mögliche Weise erfasst wurden. Selbstmodifizierende Aktionen können einen Datenzentrumsbetreiber des Datenzentrums 900 davon entlasten, möglicherweise schlechte Konfigurationsentscheidungen zu treffen und möglicherweise nicht ausgelastete und/oder schlecht funktionierende Teile eines Datenzentrums zu vermeiden.In at least one embodiment, configuration manager 934, resource manager 936, and 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 possible manner. Self-modifying actions can relieve a data center operator of the data center 900 from potentially making bad configuration decisions and avoiding potentially underutilized and/or malfunctioning parts of a data center.

Das Datenzentrum 900 kann Werkzeuge, Dienste, Software oder andere Ressourcen enthalten, um ein oder mehrere maschinelle Lernmodelle zu trainieren oder Informationen unter Verwendung eines oder mehrerer maschineller Lernmodelle gemäß einer oder mehrerer hier beschriebener Ausführungsformen vorherzusagen oder abzuleiten. Beispielsweise kann ein maschinelles Lernmodell bzw. können maschinelle Lernmodelle trainiert werden, indem Gewichtsparameter gemäß einer neuronalen Netzwerkarchitektur unter Verwendung von Software und/oder Computerressourcen berechnet werden, die oben in Bezug auf das Datenzentrum 900 beschrieben wurden. In mindestens einer Ausführungsform können trainierte oder eingesetzte maschinelle Lernmodelle, die einem oder mehreren neuronalen Netzen entsprechen, verwendet werden, um Informationen abzuleiten oder vorherzusagen, wobei die oben beschriebenen Ressourcen in Bezug auf das Datenzentrum 900 verwendet werden, indem Gewichtungsparameter verwendet werden, die durch eine oder mehrere Trainingstechniken berechnet werden, wie z. B., aber nicht nur, die hier beschriebenen.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, a machine learning model(s) may be trained by computing weight parameters according to a neural network architecture using software and/or computing resources described above 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 derive or predict information using the resources described above in relation to the data center 900 using weighting parameters determined by a or several training techniques are calculated, e.g. B., but not only, those described here.

In mindestens einer Ausführungsform kann das Datenzentrum 900 CPUs, anwendungsspezifische integrierte Schaltungen (ASICs), GPUs, FPGAs und/oder andere Hardware (oder entsprechende virtuelle Rechenressourcen) verwenden, um das Training und/oder die Inferenz unter Verwendung der oben beschriebenen Ressourcen durchzuführen. Darüber hinaus können eine oder mehrere der oben beschriebenen Software- und/oder Hardwareressourcen als Dienst konfiguriert werden, um Benutzern das Training oder die Inferenz von Informationen zu ermöglichen, wie z. B. Bilderkennung, Spracherkennung oder andere Dienste der künstlichen Intelligenz.In at least one embodiment, data center 900 may use CPUs, application specific integrated circuits (ASICs), GPUs, FPGAs, and/or other hardware (or equivalent virtual computing resources) to perform training and/or inference using the resources described above. Additionally, one or more of the software and/or hardware resources described above may be configured as a service to enable users to train or infer information such as: B. image recognition, speech recognition or other artificial intelligence services.

Beispielhafte NetzwerkumgebungenSample Network Environments

Netzwerkumgebungen, die zur Verwendung bei der Implementierung von Ausführungsformen der Offenbarung geeignet sind, können ein oder mehrere Client-Geräte, Server, Network Attached Storage (NAS), andere Backend-Geräte und/oder andere Gerätetypen umfassen. Die Client-Geräte, Server und/oder anderen Gerätetypen (z. B. jedes Gerät) können auf einer oder mehreren Instanzen des/der Rechengeräts/e 800 der 8 implementiert werden - z. B. kann jedes Gerät ähnliche Komponenten, Merkmale und/oder Funktionalität des/der Rechengeräts/e 800 enthalten. Wenn Backend-Geräte (z. B. Server, NAS usw.) implementiert sind, können die Backend-Geräte außerdem Teil eines Datenzentrums 900 sein, dessen Beispiel hier in Bezug auf 9 näher beschrieben wird.Network environments suitable for use in implementing embodiments of the disclosure may include one or more client devices, servers, network attached storage (NAS), other backend devices, and/or other types of devices. The client devices, servers, and/or other device types (e.g., any device) may reside on one or more instances of the computing device(s) 800 of the 8th be implemented - e.g. e.g., each device may include similar components, features, and/or functionality of the computing device(s) 800. Additionally, where backend devices (e.g., servers, NAS, etc.) are implemented, the backend devices may be part of a data center 900, an example of which is provided here with reference to FIG 9 is described in more detail.

Die Komponenten einer Netzwerkumgebung können über ein oder mehrere Netzwerke miteinander kommunizieren, die drahtgebunden, drahtlos oder beides sein können. Das Netz kann mehrere Netze oder ein Netz von Netzen umfassen. Beispielsweise kann das Netzwerk ein oder mehrere Wide Area Networks (WANs), ein oder mehrere Local Area Networks (LANs), ein oder mehrere öffentliche Netzwerke wie das Internet und/oder ein öffentliches Telefonnetz (PSTN) und/oder ein oder mehrere private Netzwerke umfassen. Wenn das Netz ein drahtloses Telekommunikationsnetz umfasst, können Komponenten wie eine Basisstation, ein Kommunikationsturm oder sogar Zugangspunkte (sowie andere Komponenten) eine drahtlose Verbindung ermöglichen.The components of a network environment can communicate with one another over one or more networks, which may be wired, wireless, or both. The network can include multiple networks or a network of networks. For example, the network may include 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 . When the network includes a wireless telecommunications network, components such as a base station, a communications tower, or even access points (among other components) can enable a wireless connection.

Zu den kompatiblen Netzwerkumgebungen gehören eine oder mehrere Peer-to-Peer-Netzwerkumgebungen - in diesem Fall kann ein Server nicht in eine Netzwerkumgebung eingebunden sein - und eine oder mehrere Client-Server-Netzwerkumgebungen - in diesem Fall können ein oder mehrere Server in eine Netzwerkumgebung eingebunden sein. In Peer-to-Peer-Netzwerkumgebungen kann die hier beschriebene Funktionalität in Bezug auf einen oder mehrere Server auf einer beliebigen Anzahl von Client-Geräten implementiert werden.Compatible network environments include one or more peer-to-peer network environments - in which case a server cannot be included in one network environment - and one or more client-server network environments - in which case one or more servers can be included in one network environment to be involved. In peer-to-peer network environments, the functionality described herein may be implemented in relation to one or more servers on any number of client devices.

In mindestens einer Ausführungsform kann eine Netzumgebung eine oder mehrere Cloud-basierte Netzumgebungen, eine verteilte Rechenumgebung, eine Kombination davon usw. umfassen. Eine Cloud-basierte Netzwerkumgebung kann eine Framework-Schicht, einen Job Scheduler, einen Ressourcenmanager und ein verteiltes Dateisystem umfassen, die auf einem oder mehreren Servern implementiert sind, die einen oder mehrere Kernnetzwerkserver und/oder Edge-Server umfassen können. Eine Framework-Schicht kann ein Framework zur Unterstützung von Software einer Softwareschicht und/oder einer oder mehrerer Anwendungen einer Anwendungsschicht umfassen. Die Software oder die Anwendung(en) können jeweils webbasierte Dienstsoftware oder Anwendungen umfassen. In Ausführungsformen können ein oder mehrere Client-Geräte die webbasierte Dienstsoftware oder Anwendungen nutzen (z. B. durch Zugriff auf die Dienstsoftware und/oder Anwendungen über eine oder mehrere Anwendungsprogrammierschnittstellen (APIs)). Bei der Framework-Schicht kann es sich um eine Art von freiem und quelloffenem Software-Webanwendungs-Framework handeln, das z. B. ein verteiltes Dateisystem für die Verarbeitung großer Datenmengen (z. B. „Big Data“) verwendet, ohne darauf beschränkt zu sein.In at least one embodiment, a network environment may include one or more cloud-based network environments, a distributed computing environment, a combination thereof, and so forth. 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 to support software of a software layer and/or one or more applications of an application layer. The software or application(s) may each include web-based service software or applications. In embodiments, one or more 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 can be some type of free and open source software web application framework, e.g. B. a distributed file system used for processing large amounts of data (e.g. "Big Data"), but not limited to it.

Eine Cloud-basierte Netzwerkumgebung kann Cloud-Computing und/oder Cloud-Speicher bereitstellen, die eine beliebige Kombination der hier beschriebenen Rechen- und/oder Datenspeicherfunktionen (oder einen oder mehrere Teile davon) ausführen. Jede dieser verschiedenen Funktionen kann über mehrere Standorte von zentralen oder Kernservern (z. B. von einem oder mehreren Datenzentren, die über einen Staat, eine Region, ein Land, den Globus usw. verteilt sein können) verteilt sein. Befindet sich eine Verbindung zu einem Benutzer (z. B. einem Client-Gerät) relativ nahe an einem oder mehreren Edge-Servern, kann ein Kernserver mindestens einen Teil der Funktionalität dem oder den Edge-Servern zuweisen. Eine Cloud-basierte Netzwerkumgebung kann privat (z. B. auf eine einzelne Organisation beschränkt), öffentlich (z. B. für viele Organisationen verfügbar) und/oder eine Kombination davon (z. B. eine hybride Cloud-Umgebung) sein.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 across multiple central or core server locations (e.g., from one or more data centers that may be spread across a state, region, country, globe, etc.). When a connection to a user (e.g., a client device) is relatively close to one or more edge servers, a core server may assign at least some functionality to the edge server or servers. A cloud-based network environment can 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).

Das (die) Client-Gerät(e) kann (können) mindestens einige der Komponenten, Merkmale und Funktionen des (der) hier in Bezug auf 8 beschriebenen Rechenvorrichtung(en) 800 enthalten. Beispielhaft und ohne Einschränkung kann ein Client-Gerät ein Personal Computer (PC), ein Laptop, ein mobiles Gerät, ein Smartphone, ein Tablet-Computer, eine Smartwatch, ein tragbarer Computer, ein Personal Digital Assistant (PDA), ein MP3-Player, ein Virtual-Reality-Headset, ein Global Positioning System (GPS) oder ein Gerät, ein Videoplayer, eine Videokamera, ein Überwachungsgerät oder -system, ein Fahrzeug, ein Boot, ein fliegendes Schiff, eine virtuelle Maschine, ein Computer, der in der Lage ist, die Daten zu verarbeiten und zu speichern, ein Boot, ein fliegendes Schiff, eine virtuelle Maschine, eine Drohne, ein Roboter, ein tragbares Kommunikationsgerät, ein Krankenhausgerät, ein Spielgerät oder -system, ein Unterhaltungssystem, ein Fahrzeugcomputersystem, einen eingebetteten Systemcontroller, eine Fernbedienung, ein Gerät, ein Unterhaltungselektronikgerät, eine Workstation, ein Edge-Gerät, eine beliebige Kombination dieser beschriebenen Geräte oder jedes andere geeignete Gerät.The Client Device(s) may have at least some of the components, features and functionality of the(s) referred to herein 8th described computing device(s) 800 included. By way of example and without limitation, a client device may include a personal computer (PC), laptop, mobile device, smartphone, tablet computer, smart watch, wearable computer, personal digital assistant (PDA), MP3 player , a virtual reality headset, a global positioning system (GPS) or device, video player, video camera, surveillance device or system, vehicle, boat, flying ship, virtual machine, computer installed in capable of processing and storing the data, a boat, a flying ship, a virtual machine, a drone, a robot, a portable communication device, a hospital device, a gaming device or system, an entertainment system, a vehicle computer system, an embedded System controller, remote control, device, consumer electronic device, workstation, edge device, any combination of the described devices, or any other suitable device.

Die Offenbarung kann im allgemeinen Kontext von Computercode oder maschinell verwendbaren Anweisungen, einschließlich von computerausführbaren Anweisungen wie Programmmodulen, beschrieben werden, die von einem Computer oder einer anderen Maschine, z. B. einem persönlichen Datenassistenten oder einem anderen Handheld-Gerät, ausgeführt werden. Im Allgemeinen beziehen sich Programmmodule, einschließlich Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw., auf Code, der bestimmte Aufgaben ausführt oder bestimmte abstrakte Datentypen implementiert. Die Offenbarung kann in einer Vielzahl von Systemkonfigurationen angewendet werden, einschließlich tragbaren Geräten, Unterhaltungselektronik, Allzweckcomputern, spezielleren Datenverarbeitungsgeräten usw. Die Offenbarung kann auch in verteilten Computerumgebungen angewendet werden, in denen Aufgaben von ferngesteuerten Geräten ausgeführt werden, die über ein Kommunikationsnetz verbunden sind.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, e.g. a personal data assistant or other handheld device. In general, program modules, including routines, programs, objects, components, data structures, etc., refer to code that performs specific tasks or implements specific abstract data types. The disclosure can be applied in a variety of system configurations, including portable devices, consumer electronics, general purpose computing, more specialized computing devices, etc. The disclosure may also be applied in distributed computing environments where tasks are performed by remotely controlled devices that are linked through a communications network.

Wenn hier von „und/oder“ in Bezug auf zwei oder mehr Elemente die Rede ist, sollte dies so verstanden werden, dass nur ein Element oder eine Kombination von Elementen gemeint ist. So kann beispielsweise „Element A, Element B und/oder Element C“ nur Element A, nur Element B, nur Element C, Element A und Element B, Element A und Element C, Element B und Element C oder die Elemente A, B und C umfassen. Darüber hinaus kann „mindestens eines der Elemente A oder B“ mindestens eines der Elemente A, mindestens eines der Elemente B oder mindestens eines der Elemente A und mindestens eines der Elemente B einschließen.When reference is made herein to "and/or" in relation to two or more elements, it should be understood to mean only one element or a combination of elements. For example, "Item A, Item B, and/or Item C" can include only Item A, only Item B, only Item C, Item A and Item B, Item A and Item C, Item B and Item C, or Items A, B and C include. Additionally, "at least one of A or B" may include at least one of A, at least one of B, or at least one of A and at least one of B.

Der Gegenstand der vorliegenden Offenbarung wird hier mit einer Genauigkeit beschrieben, die den gesetzlichen Anforderungen entspricht. Die Beschreibung selbst soll jedoch den Umfang dieser Offenbarung nicht einschränken. Vielmehr haben die Erfinder in Betracht gezogen, dass der beanspruchte Gegenstand auch auf andere Weise verkörpert werden könnte, um verschiedene Schritte oder Kombinationen von Schritten, die den in diesem Dokument beschriebenen ähnlich sind, in Verbindung mit anderen gegenwärtigen oder zukünftigen Technologien zu umfassen. Obwohl die Begriffe „Schritt“ und/oder „Block“ hier verwendet werden können, um verschiedene Elemente der angewandten Methoden zu bezeichnen, sollten die Begriffe nicht so ausgelegt werden, dass sie eine bestimmte Reihenfolge unter oder zwischen den verschiedenen hier offenbarten Schritten implizieren, es sei denn, die Reihenfolge der einzelnen Schritte wird ausdrücklich beschrieben.The subject matter of the present disclosure is described herein with sufficient detail to meet the requirements of the law. However, the description itself is not intended to limit the scope of this disclosure. Rather, the inventors contemplated that the claimed subject matter could be embodied in other ways to include various steps or combinations of steps similar to those described in this document in conjunction with other present or future technologies. Although the terms "step" and/or "block" may be used herein to denote various elements of the methods employed, the terms should not be construed to imply any particular order among or between the various steps disclosed herein, es unless the order of each step is specifically described.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents cited by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent Literature Cited

  • US 16101232 [0137]US16101232 [0137]

Zitierte Nicht-PatentliteraturNon-patent Literature Cited

  • ISO 26262 [0136]ISO 26262 [0136]

Claims (20)

Verfahren, das aufweist: Identifizieren eines Szenarios für ein erstes Fahrzeug mindestens basierend auf dem Analysieren von Wahrnehmungsdaten, die von mindestens einem Sensor des ersten Fahrzeugs in einer Umgebung erzeugt werden; Bestimmen, mindestens basierend auf den Wahrnehmungsdaten, eines ersten Wegs für das erste Fahrzeug im Szenario und eines zweiten Wegs für ein zweites Fahrzeug im Szenario, wobei der zweite Weg mindestens einen Konkurrenzpunkt mit dem ersten Weg enthält; Bestimmen, mindestens basierend auf den Wahrnehmungsdaten und einem Satz von Verkehrsregeln, die der Umgebung entsprechen, einer oder mehrerer Verkehrsregeln aus dem Satz von Verkehrsregeln, die für das Szenario gelten; Zuweisen eines Konkurrenzzustands zu den mindestens einen Konkurrenzpunkt basierend auf der mindestens einen oder den mehreren Verkehrsregeln, die für das Szenario gelten; Erzeugen eines Warteelements, das mit dem Szenario verbunden ist, wobei das Warteelement eine Darstellung der ersten Geometrie, die mit dem ersten Weg verbunden ist, der zweiten Geometrie, die mit dem zweiten Weg verbunden ist, und des Zustands der Konkurrenz codiert; und Bereitstellen des Warteelements für einen Steueragenten des ersten Fahrzeugs, wobei der Steueragent konfiguriert ist, unter Verwendung des Warteelements ein Vorfahrtsverhalten für das erste Fahrzeug zu bestimmen. Procedure that includes: identifying a scenario for a first vehicle based at least on analyzing perception data generated by at least one sensor of the first vehicle in an environment; determining, based at least on the perception data, a first path for the first vehicle in the scenario and a second path for a second vehicle in the scenario, the second path including at least one contention point with the first path; determine, based at least on the perception data and a set of traffic rules corresponding to the environment, one or more traffic rules from the set of traffic rules that apply to the scenario; assigning a contention state to the at least one contention point based on the at least one or more traffic rules applicable to the scenario; generating a wait element associated with the scenario, the wait element encoding a representation of the first geometry associated with the first path, the second geometry associated with the second path, and the state of the contention; and providing the queuing element to a control agent of the first vehicle, wherein the control agent is configured to determine a right-of-way behavior for the first vehicle using the queuing element. Verfahren nach Anspruch 1, das ferner das Erfassen, unter Verwendung der Wahrnehmungsdaten, eines aktuellen Zustands eines oder mehrerer Verkehrssignale aufweist, die in der Umgebung enthalten sind, wobei das Bestimmen der einen oder mehreren Verkehrsregeln des Satzes von Verkehrsregeln, die für das Szenario gelten, mindestens auf dem aktuellen Zustand des einen oder der mehreren Verkehrssignale basiert.procedure after claim 1 , further comprising detecting, using the perception data, a current state of one or more traffic signals contained in the environment, wherein determining the one or more traffic rules of the set of traffic rules applicable to the scenario at least on the current State of the one or more traffic signals is based. Verfahren nach Anspruch 1, wobei die Wahrnehmungsdaten erste Geometrieinformationen enthalten, die mit mindestens dem ersten Weg verbunden sind, und das Verfahren ferner aufweist: Empfangen von Kartendaten, die für zweite Geometrieinformationen repräsentativ sind, die mit mindestens dem ersten Weg verbunden sind; und Erzeugen einer Darstellung der ersten Geometrie des ersten Weges mindestens basierend auf dem Verschmelzen der ersten Geometrieinformationen mit den zweiten Geometrieinformationen.procedure after claim 1 wherein the perceptual data includes first geometry information associated with at least the first pathway, and the method further comprises: receiving map data representative of second geometry information associated with at least the first pathway; and generating a representation of the first geometry of the first path based at least on the merging of the first geometry information with the second geometry information. Verfahren nach Anspruch 1 oder 2, wobei die Wahrnehmungsdaten erste Signalinformationen enthalten, die mit einem oder mehreren erfassten Verkehrssignalen in der Umgebung verbunden sind, und das Verfahren ferner aufweist: Empfangen von Kartendaten, die zweite Signalinformationen enthalten, die mit einem oder mehreren lokalisierten Verkehrssignalen aus mindestens einer Karte verbunden sind; und Erzeugen von verschmolzenen Signalinformationen, die mit mindestens einem Verkehrssignal verbunden sind, mindestens basierend auf dem Verschmelzen der ersten Signalinformationen mit den zweiten Signalinformationen, wobei das Bestimmen der einen oder mehreren Verkehrsregeln des Satzes von Verkehrsregeln, die für das Szenario gelten, mindestens auf den verschmolzenen Signalinformationen basiert.procedure after claim 1 or 2 wherein the perception data includes first signal information associated with one or more detected traffic signals in the area, and the method further comprises: receiving map data including second signal information associated with one or more localized traffic signals from at least one map; and generating merged signal information associated with at least one traffic signal based at least on the merging of the first signal information with the second signal information, wherein determining the one or more traffic rules of the set of traffic rules applicable to the scenario based at least on the merged Signal information based. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Wahrnehmungsdaten Geometrie-Wahrnehmungsdaten enthalten und das Verfahren ferner das Klassifizieren des ersten Weges als zu mindestens einer Klasse eines Satzes vorbestimmter Klassen gehörend, mindestens basierend auf den Geometrie-Wahrnehmungsdaten aufweist, wobei das Bestimmen der einen oder mehreren Verkehrsregeln des Satzes von Verkehrsregeln, die für das Szenario gelten, mindestens auf dem ersten Weg basiert, der zu der mindestens einen Klasse gehört.The method of any preceding claim, wherein the perceptual data includes perceptual geometry data, and the method further comprises classifying the first path as belonging to at least one class of a set of predetermined classes based at least on the perceptual geometry data, wherein determining the one or more traffic rules of the set of traffic rules applicable to the scenario is based at least on the first path belonging to the at least one class. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Wahrnehmungsdaten Signalwahrnehmungsdaten, die mit einem oder mehreren Verkehrssignalen verbunden sind, und Geometriedaten enthalten, die mit dem ersten Weg verbunden sind, und das Verfahren ferner das Zuordnen des einen oder der mehreren Verkehrssignale zum ersten Weg mindestens basierend auf dem Bewerten einer Entfernung zwischen dem einen oder den mehreren Verkehrssignalen und dem ersten Weg unter Verwendung der Signalwahrnehmungsdaten und der Geometriedaten aufweist.The method of any preceding claim, wherein the perception data includes signal perception data associated with one or more traffic signals and geometry data associated with the first path, and the method further at least based on associating the one or more traffic signals with the first path on evaluating a distance between the one or more traffic signals and the first path using the signal perception data and the geometry data. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Satz von Verkehrsregeln mindestens eine von einer oder mehreren Kartenregeln, die mit dem Lokalisieren des ersten Fahrzeugs auf mindestens einer Karte verbunden sind, oder eine oder mehrere Basisregeln enthält, die mit einer geografischen Region des ersten Fahrzeugs verbunden sind.The method of any preceding claim, wherein the set of traffic rules includes at least one of one or more map rules associated with locating the first vehicle on at least one map, or one or more base rules associated with a geographic region of the first vehicle are. Prozessor, der aufweist: eine oder mehrere Schaltungen, um: ein Szenario für ein erstes Fahrzeug zu identifizieren, mindestens basierend auf der Analyse von Sensordaten, die von mindestens einem Sensor des ersten Fahrzeugs in einer Umgebung erzeugt werden; mindestens basierend auf dem Lokalisieren des ersten Fahrzeugs auf einer oder mehreren Karten einen ersten Weg für das erste Fahrzeug im Szenario und einen zweiten Weg für ein zweites Fahrzeug im Szenario zu bestimmen, wobei der zweite Weg mindestens einen Konkurrenzpunkt mit dem ersten Weg enthält; mindestens basierend auf dem Lokalisieren des ersten Fahrzeugs eine oder mehrere Verkehrsregeln zu bestimmen, die für das Szenario gelten; dem mindestens einen Konkurrenzpunkt mindestens basierend auf einer oder mehreren der für das Szenario geltenden Verkehrsregeln einen Zustand einer Konkurrenz zuzuweisen; ein Warteelement zu erzeugen, das mit dem Szenario verbunden ist, wobei das Warteelement eine Darstellung der ersten Geometrie, die mit dem ersten Weg verbunden ist, der zweiten Geometrie, die mit dem zweiten Weg verbunden ist, und des Zustands der Konkurrenz codiert; und das Warteelement für einen Steueragenten des ersten Fahrzeugs bereitzustellen, wobei der Steueragent konfiguriert ist, unter Verwendung des Warteelements ein Vorfahrtsverhalten für das erste Fahrzeug zu bestimmen.A processor comprising: one or more circuits to: identify a scenario for a first vehicle based at least on analysis of sensor data generated by at least one sensor of the first vehicle in an environment; based at least on locating the first vehicle on one or more maps determine a first path for the first vehicle in the scenario and a second path for a second vehicle in the scenario, the second path including at least one contention point with the first path; determine one or more traffic rules applicable to the scenario based at least on the locating of the first vehicle; assign a state of contention to the at least one contention point based at least on one or more of the traffic rules applicable to the scenario; generate a wait element associated with the scenario, the wait element encoding a representation of the first geometry associated with the first path, the second geometry associated with the second path, and the state of the contention; and provide the wait element to a control agent of the first vehicle, wherein the control agent is configured to determine a give-way behavior for the first vehicle using the wait element. Prozessor nach Anspruch 8, wobei die eine oder die mehreren Schaltungen ferner dazu dienen, unter Verwendung von Wahrnehmungsdaten, die von mindestens einem Sensor des ersten Fahrzeugs in der Umgebung erzeugt werden, einen aktuellen Zustand eines oder mehrerer Verkehrssignale zu erfassen, die in der einen oder den mehreren Karten enthalten sind, wobei das Bestimmen der einen oder der mehreren Verkehrsregeln, die für das Szenario gelten, mindestens auf dem aktuellen Zustand des einen oder der mehreren Verkehrssignale basiert.processor after claim 8 wherein the one or more circuits are further operable to sense a current state of one or more traffic signals included in the one or more maps using perception data generated by at least one sensor of the first vehicle in the vicinity wherein determining the one or more traffic rules applicable to the scenario is based at least on the current state of the one or more traffic signals. Prozessor nach Anspruch 8 oder 9, wobei die eine oder die mehreren Schaltungen ferner dazu dienen: Kartendaten der einen oder mehreren Karten zu empfangen, mindestens auf dem Lokalisieren basierend, wobei die Kartendaten erste Geometrieinformationen enthalten, die mit mindestens dem ersten Weg verbunden sind; Wahrnehmungsdaten zu bestimmen, die von dem mindestens einen Sensor des ersten Fahrzeugs in der Umgebung erzeugt werden, wobei die Wahrnehmungsdaten zweite Geometrieinformationen enthalten, die mit mindestens dem ersten Weg verbunden sind; und eine Darstellung mindestens der ersten Geometrie des ersten Weges zu erzeugen, mindestens basierend auf dem Verschmelzen der ersten Geometrieinformationen mit den zweiten Geometrieinformationen.processor after claim 8 or 9 wherein the one or more circuits are further to: receive map data of the one or more maps based at least on the locating, the map data including first geometry information associated with at least the first path; determine perception data generated by the at least one sensor of the first vehicle in the environment, the perception data including second geometry information associated with at least the first pathway; and generate a representation of at least the first geometry of the first path based at least on the merging of the first geometry information with the second geometry information. Prozessor nach einem der Ansprüche 8 bis 10, wobei die eine oder die mehreren Schaltungen ferner dazu dienen: Kartendaten der einen oder mehreren Karten zu empfangen, mindestens auf dem Lokalisieren basierend, wobei die Kartendaten erste Signalinformationen enthalten, die mit einem oder mehreren lokalisierten Verkehrssignalen aus der einen oder den mehreren Karten verbunden sind; Wahrnehmungsdaten zu bestimmen, die von dem mindestens einen Sensor des ersten Fahrzeugs in der Umgebung erzeugt werden, wobei die Wahrnehmungsdaten zweite Signalinformationen enthalten, die mit einem oder mehreren erfassten Verkehrssignalen in der Umgebung verbunden sind; und verschmolzene Signalinformationen zu erzeugen, die mit mindestens einem Verkehrssignal verbunden sind, mindestens basierend auf dem Verschmelzen der ersten Signalinformationen mit den zweiten Signalinformationen, wobei das Bestimmen der einen oder der mehrere der Verkehrsregeln, die für das Szenario gelten, mindestens auf den verschmolzenen Signalinformationen basiert.Processor after one of Claims 8 until 10 wherein the one or more circuits are further to: receive map data from the one or more maps based at least on the locating, the map data including first signal information associated with one or more localized traffic signals from the one or more maps ; determine perception data generated by the at least one sensor of the first vehicle in the environment, the perception data including second signal information associated with one or more detected traffic signals in the environment; and generate fused signal information associated with at least one traffic signal based at least on the merging of the first signal information with the second signal information, wherein determining the one or more traffic rules applicable to the scenario is based at least on the fused signal information . Prozessor nach einem der Ansprüche 8 bis 11, wobei die Kartendaten Geometriedaten enthalten und das Verfahren ferner das Klassifizieren des ersten Wegs als zu mindestens einer Klasse eines Satzes vorbestimmter Klassen gehörend basierend auf mindestens den Geometriedaten aufweist, wobei das Bestimmen der einen oder der mehreren der Verkehrsregeln, die für das Szenario gelten, mindestens auf dem ersten Weg basiert, der zu der mindestens einen Klasse gehört.Processor after one of Claims 8 until 11 , wherein the map data includes geometry data and the method further comprises classifying the first path as belonging to at least one class of a set of predetermined classes based on at least the geometry data, wherein determining the one or more traffic rules that apply to the scenario at least based on the first way belonging to the at least one class. Prozessor nach einem der Ansprüche 8 bis 12, wobei die Kartendaten Signaldaten enthalten, die mit einem oder mehreren Verkehrssignalen verbunden sind, und die eine oder die mehreren Schaltungen ferner dazu dienen, das eine oder die mehreren Verkehrssignale dem ersten Weg zuzuordnen, mindestens basierend auf dem Bewerten einer Entfernung zwischen dem einen oder den mehreren Verkehrssignalen und dem ersten Weg unter Verwendung der Signaldaten und der Geometriedaten, die mit dem ersten Weg verbunden sind.Processor after one of Claims 8 until 12 , wherein the map data includes signal data associated with one or more traffic signals, and the one or more circuits are further operable to associate the one or more traffic signals with the first path based at least on evaluating a distance between the one or more multiple traffic signals and the first path using the signal data and the geometry data associated with the first path. Prozessor nach einem der Ansprüche 8 bis 13, wobei die Verkehrsregeln eine oder mehrere Kartenregeln enthalten, die mit dem Lokalisieren des ersten Fahrzeugs auf mindestens einer Karte oder einer oder mehreren Basisregeln verbunden sind, die mit einer geografischen Region des ersten Fahrzeugs verbunden sind.Processor after one of Claims 8 until 13 , wherein the traffic rules include one or more map rules associated with locating the first vehicle on at least one map or one or more base rules associated with a geographic region of the first vehicle. System, das aufweist: eine oder mehrere Verarbeitungseinheiten, um mindestens basierend auf dem Analysieren von Sensordaten, die unter Verwendung mindestens eines Sensors eines Fahrzeugs in einer Umgebung erzeugt werden, eine oder mehrere Verkehrsregeln zu bestimmen, die für ein Szenario gelten, wobei das Szenario einen erzeugten Weg des Fahrzeugs in der Umgebung aufweist; einen Zustand einer Konkurrenz basierend auf der mindestens einen oder den mehreren Verkehrsregeln zuzuweisen, die für das Szenario gelten; ein Warteelement zu erzeugen, das mit dem Szenario verbunden ist, wobei das Warteelement eine erste Geometrie codiert, die mindestens mit dem erzeugten Weg und dem Zustand der Konkurrenz verbunden ist; und das Warteelement für einen Steueragenten des Fahrzeugs bereitzustellen, wobei der Steueragent konfiguriert ist, ein Vorfahrtsverhalten für das Fahrzeug unter Verwendung des Warteelements zu bestimmen.A system comprising: one or more processing units to determine one or more traffic rules applicable to a scenario based at least on analyzing sensor data generated using at least one sensor of a vehicle in an environment, the scenario having a generated path of the vehicle has in the area; assign a state of contention based on the at least one or more traffic rules applicable to the scenario; generate a wait element associated with the scenario, the wait element encoding a first geometry associated at least with the generated path and the state of contention; and provide the wait item to a control agent of the vehicle, wherein the control agent is configured to determine a right-of-way behavior for the vehicle using the wait item. System nach Anspruch 15, wobei die eine oder die mehreren Verarbeitungseinheiten ferner dazu dienen, einen aktuellen Zustand eines oder mehrerer Verkehrssignale zu erfassen, die in der Umgebung enthalten sind, wobei das Bestimmen der einen oder der mehreren Verkehrsregeln, die für das Szenario gelten, mindestens auf dem aktuellen Zustand des einen oder der mehreren Verkehrssignale basiert.system after claim 15 , wherein the one or more processing units are further operative to detect a current state of one or more traffic signals contained in the environment, wherein the determining of the one or more traffic rules applicable to the scenario is at least based on the current state of the one or more traffic signals. System nach Anspruch 15 oder 16, wobei die eine oder die mehreren Verarbeitungseinheiten ferner dazu dienen: Wahrnehmungsdaten zu empfangen, die erste Geometrieinformationen enthalten, die mindestens mit dem Weg verbunden sind; Kartendaten zu empfangen, die für zweite Geometrieinformationen repräsentativ sind, die mindestens mit dem Weg verbunden sind; und mindestens die erste Geometrie des Weges zu erzeugen, mindestens basierend auf dem Verschmelzen der ersten Geometrieinformationen mit den zweiten Geometrieinformationen.system after claim 15 or 16 , wherein the one or more processing units are further operable to: receive perception data including first geometry information associated at least with the path; receive map data representative of second geometry information associated at least with the path; and generate at least the first geometry of the path based at least on the merging of the first geometry information with the second geometry information. System nach einem der Ansprüche 15 bis 17, wobei die eine oder die mehreren Verarbeitungseinheiten ferner dazu dienen: Wahrnehmungsdaten zu empfangen, die erste Signalinformationen enthalten, die mit einem oder mehreren erfassten Verkehrssignalen in der Umgebung verbunden sind; Kartendaten zu empfangen, die zweite Signalinformationen enthalten, die mit einem oder mehreren lokalisierten Verkehrssignalen aus mindestens einer Karte verbunden sind; und verschmolzene Signalinformationen zu erzeugen, die mit mindestens einem Verkehrssignal verbunden sind, mindestens basierend auf dem Verschmelzen der ersten Signalinformationen mit den zweiten Signalinformationen, wobei das Bestimmen das einen oder der mehreren der Verkehrsregeln, die für das Szenario gelten, mindestens auf den verschmolzenen Signalinformationen basiert.system according to one of the Claims 15 until 17 wherein the one or more processing units are further operable to: receive perception data including first signal information associated with one or more detected traffic signals in the environment; receive map data including second signal information associated with one or more localized traffic signals from at least one map; and generate fused signal information associated with at least one traffic signal based at least on the merging of the first signal information with the second signal information, wherein determining the one or more traffic rules applicable to the scenario is based at least on the fused signal information . System nach einem der Ansprüche 15 bis 18, wobei die eine oder die mehreren Verarbeitungseinheiten ferner dazu dienen, den Weg als zu mindestens einer Klasse eines Satzes vorbestimmter Klassen gehörend zu klassifizieren mindestens basierend auf Geometriewahrnehmungsdaten, wobei das Bestimmen der einen oder der mehreren Verkehrsregeln, die für das Szenario gelten, mindestens auf dem Weg basiert, der zu der mindestens einen Klasse gehört.system according to one of the Claims 15 until 18 , wherein the one or more processing units are further operative to classify the path as belonging to at least one class of a set of predetermined classes based at least on geometry perception data, wherein determining the one or more traffic rules applicable to the scenario is based at least on the path that belongs to the at least one class. System nach einem der Ansprüche 15 bis 19, wobei die eine oder die mehreren Verarbeitungseinheiten in mindestens einem enthalten sind von: einem Steuersystem für eine autonome oder halbautonome Maschine; einem Wahrnehmungssystem für eine autonome oder halbautonome Maschine; einem System zum Durchführen von Simulationsoperationen; einem System zum Durchführen von Deep-Learning-Operationen; einem System, das unter Verwendung einer Edge-Vorrichtung implementiert ist; einem System, das unter Verwendung eines Roboters implementiert ist; einem System, das eine oder mehrere virtuelle Maschinen (VMs) enthält; einem System, das mindestens teilweise in einem Datenzentrum implementiert ist; oder einem System, das mindestens teilweise unter Verwendung von Cloud-Computing-Ressourcen implementiert ist.system according to one of the Claims 15 until 19 wherein the one or more processing units are included in at least one of: 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 performing deep learning operations; a system implemented using an edge device; a system implemented using a robot; a system containing one or more virtual machines (VMs); a system implemented at least in part in a data center; or a system implemented at least in part using cloud computing resources.
DE102022126537.4A 2021-10-27 2022-10-12 Coding of priority scenarios for autonomous systems Pending DE102022126537A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/512,495 US20230130814A1 (en) 2021-10-27 2021-10-27 Yield scenario encoding for autonomous systems
US17/512,495 2021-10-27

Publications (1)

Publication Number Publication Date
DE102022126537A1 true DE102022126537A1 (en) 2023-04-27

Family

ID=85795687

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022126537.4A Pending DE102022126537A1 (en) 2021-10-27 2022-10-12 Coding of priority scenarios for autonomous systems

Country Status (4)

Country Link
US (1) US20230130814A1 (en)
JP (1) JP2023065279A (en)
CN (1) CN116030652A (en)
DE (1) DE102022126537A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220152475A (en) * 2021-05-07 2022-11-16 현대자동차주식회사 Apparatus for managing remote control of autonomous driving, system having the same and method thereof
US20230202521A1 (en) * 2021-12-27 2023-06-29 Gm Cruise Holdings Llc System and method of using an autolabeler to generate yield/assert labels based on on-road autonomous vehicle use
CN116798233B (en) * 2023-08-25 2024-01-09 湖南天宇汽车制造有限公司 Ambulance rapid passing guiding system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9645577B1 (en) * 2016-03-23 2017-05-09 nuTonomy Inc. Facilitating vehicle driving and self-driving
WO2019241022A1 (en) * 2018-06-13 2019-12-19 Nvidia Corporation Path detection for autonomous machines using deep neural networks
KR20210134317A (en) * 2019-03-29 2021-11-09 인텔 코포레이션 autonomous vehicle system
US20220048535A1 (en) * 2020-08-12 2022-02-17 Woven Planet North America, Inc. Generating Goal States for Prioritizing Path Planning
US11681296B2 (en) * 2020-12-11 2023-06-20 Motional Ad Llc Scenario-based behavior specification and validation

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ISO 26262

Also Published As

Publication number Publication date
JP2023065279A (en) 2023-05-12
CN116030652A (en) 2023-04-28
US20230130814A1 (en) 2023-04-27

Similar Documents

Publication Publication Date Title
DE112021000135T5 (en) SENSOR FUSION FOR AUTONOMOUS MACHINE APPLICATIONS THROUGH MACHINE LEARNING
DE112021000216T5 (en) Behavior planning for autonomous vehicles
DE112020002126T5 (en) DETECTION OF CROSSING POSES IN AUTONOMOUS MACHINE APPLICATIONS
DE112020006410T5 (en) THREE-DIMENSIONAL INTERSECTION STRUCTURE PREDICTION FOR AUTONOMOUS DRIVING APPLICATIONS
DE112019000048T5 (en) DETERMINATION OF A ACCESSIBLE CLEARANCE FOR AUTONOMOUS VEHICLES
DE112020003043T5 (en) DETECTION AND CLASSIFICATION OF CROSSROADS REGIONS FOR AUTONOMOUS MACHINE APPLICATIONS
DE102020117792A1 (en) EFFECTIVE USE OF OBSTACLE AND TRACK DETECTION TO DETERMINE TRACK ALLOCATIONS FOR OBJECTS IN AN ENVIRONMENT
DE112021000422T5 (en) Predict future trajectories in multi-actuator environments for autonomous machine applications
DE112020006404T5 (en) PLANNING AND CONTROL OF LANE CHANGES IN AUTONOMOUS MACHINE APPLICATIONS
DE112020001897T5 (en) Training of neural networks using basic truth data supplemented with map information for autonomous machine applications
DE102021117456A1 (en) SYSTEMS AND PROCEDURES FOR RISK ASSESSMENT AND DIRECTIONAL WARNING FOR PEDESTRIAN CROSSINGS
DE102021126254A1 (en) Monitoring occupant alertness and cognitive load for autonomous and semi-autonomous driving applications
DE112019000070T5 (en) GUIDING VEHICLES BY VEHICLE MANEUVER USING MODELS FOR MACHINE LEARNING
DE102021100065A1 (en) USE OF NEURONAL NETWORKS FOR ERROR DETECTION IN APPLICATIONS FOR AUTONOMOUS DRIVING
DE102021123159A1 (en) ADAPTIVE OBJECT TRACKING ALGORITHM FOR AUTONOMOUS MACHINE APPLICATIONS
DE112021001994T5 (en) MODEL-BASED REINFORCEMENT LEARNING FOR BEHAVIOR PREDICTION IN AUTONOMOUS SYSTEMS AND APPLICATIONS
DE102019113114A1 (en) BEHAVIOR-CONTROLLED ROUTE PLANNING IN AUTONOMOUS MACHINE APPLICATIONS
DE102021129528A1 (en) Detection of emergency vehicles for autonomous driving applications
DE102022121121A1 (en) Object tracking using LiDAR data for autonomous machine applications
DE112021000104T5 (en) PROJECTING IMAGES TAKEN WITH FISHEYE LENSES FOR FEATURE RECOGNITION IN AUTONOMOUS MACHINE APPLICATIONS
DE102022126537A1 (en) Coding of priority scenarios for autonomous systems
DE102022112748A1 (en) USE OF ARRIVAL TIMES AND SAFETY PROCEDURES IN MOVEMENT PLANNING TRAJECTORIES FOR AUTONOMOUS VEHICLES
DE102022119206A1 (en) Behavior planning for autonomous vehicles in priority scenarios
DE102022104026A1 (en) GENERATION OF GROUND TRUTH DATA FOR PERCEPTION BY DEEP NEURAL NETWORKS IN AUTONOMOUS DRIVING APPLICATIONS
DE102021105245A1 (en) USING IMAGE AUGMENTATION WITH SIMULATED OBJECTS TO TRAIN MACHINE LEARNING MODELS IN AUTONOMOUS DRIVING APPLICATIONS

Legal Events

Date Code Title Description
R012 Request for examination validly filed