-
GEBIET DER ERFINDUNG
-
Diese Beschreibung bezieht sich auf autonome Fahrzeuge und insbesondere auf die Lokalisierung autonomer Fahrzeuge.
-
HINTERGRUND
-
Autonome Fahrzeuge können verwendet werden, um Personen und/oder Fracht (z. B. Pakete, Objekte oder andere Gegenstände) von einem Ort zu einem anderen zu transportieren. Beispielsweise kann ein autonomes Fahrzeug zu dem Ort einer Person navigieren, die Person in das autonome Fahrzeug einsteigen lassen, und zu einem angegebenen Zielort (z. B. zu einem von der Person ausgewählten Ort) navigieren. Um in der Umgebung zu navigieren, sind diese autonomen Fahrzeuge mit verschiedenen Arten von Sensoren ausgerüstet, um Objekte in der Umgebung zu erkennen.
-
ZUSAMMENFASSUNG
-
Der in dieser Spezifikation beschriebene Gegenstand ist auf ein System und Techniken zum Bestimmen einer Position eines autonomen Fahrzeugs ausgerichtet. Im Allgemeinen ist das System dazu ausgelegt, die Position mit Hilfe von Lokalisierungsdaten von mehreren Quellen (z. B. GPS und LiDAR) zu bestimmen. Wenn die Lokalisierungsdaten von den mehreren Quellen nicht verfügbar oder ungenau sind (wie z. B. in einem Tunnel oder auf einer Brücke), ist das System dazu ausgelegt, die Position mit Hilfe vordefinierter Merkmale der Umgebung zu bestimmen.
-
Insbesondere schließt eine beispielhafte Technik Folgendes ein: während in einem ersten Lokalisierungsmodus befindlich: Empfangen von Lokalisierungsdaten; Bestimmen, ob die empfangenen Lokalisierungsdaten ein Genauigkeitskriterium erfüllen; im Einklang mit einer Bestimmung, dass die empfangenen Lokalisierungsdaten das Genauigkeitskriterium erfüllen: Bereitstellen einer geschätzten Position eines Fahrzeugs basierend zumindest teilweise auf den empfangenen Lokalisierungsdaten; und im ersten Lokalisierungsmodus verbleibend; und im Einklang mit einer Bestimmung, dass die empfangenen Lokalisierungsdaten das Genauigkeitskriterium nicht erfüllen:
- Umschalten auf einen zweiten Lokalisierungsmodus; während im zweiten Lokalisierungsmodus befindlich: Erkennen von ein oder mehreren vordefinierten Merkmalen der Umgebung des Fahrzeugs; und Bereitstellen der geschätzten Position des Fahrzeugs, basierend auf den ein oder mehreren vordefinierten Merkmalen der Umgebung des Fahrzeugs.
-
Diese und andere Aspekte, Merkmale und Implementierungen können als Verfahren, Vorrichtungen, Systeme, Komponenten, Programmprodukte, Mittel oder Schritte zum Durchführen einer Funktion und in anderen Weisen ausgedrückt werden.
-
Diese und andere Aspekte, Merkmale und Implementierungen werden anhand der folgenden Beschreibungen, einschließlich der Ansprüche, offensichtlich.
-
Figurenliste
-
- 1 zeigt ein Beispiel eines autonomen Fahrzeugs, das autonome Fähigkeiten besitzt.
- 2 stellt eine beispielhafte „Cloud“-Computing-Umgebung dar.
- 3 stellt ein Computersystem dar.
- 4 zeigt eine beispielhafte Architektur für ein autonomes Fahrzeug.
- 5 zeigt ein Beispiel von Eingaben und Ausgaben, die von einem Wahrnehmungsmodul verwendet werden können.
- 6 zeigt ein Beispiel eines LiDAR-Systems.
- 7 zeigt das LiDAR-System im Betrieb.
- 8 zeigt den Betrieb des LiDAR-Systems in zusätzlichem Detail.
- 9 zeigt ein Blockdiagramm der Beziehung zwischen Eingaben und Ausgaben eines Planungsmoduls.
- 10 zeigt einen gerichteten Graphen, der in der Wegplanung verwendet wird.
- 11 zeigt ein Blockdiagramm der Eingaben und Ausgaben eines Steuermoduls.
- 12 zeigt ein Blockdiagramm der Eingaben, Ausgaben und Komponenten eines Controllers.
- 13 ist ein Flussdiagramm eines beispielhaften Prozesses zum Bereitstellen einer Position eines autonomen Fahrzeugs.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden Beschreibung werden für Erläuterungszwecke zahlreiche spezielle Details dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung zu vermitteln. Es ist jedoch offensichtlich, dass die vorliegende Erfindung auch ohne diese speziellen Details praktiziert werden kann. In anderen Fällen werden bekannte Strukturen und Geräte in Blockdiagrammform gezeigt, um unnötige Verschleierung der vorliegenden Erfindung zu vermeiden.
-
In den Zeichnungen werden spezielle Anordnungen oder Ordnungen von schematischen Elementen, z. B. von denjenigen, die Geräte, Module, Befehlsblöcke und Datenelemente repräsentieren, zur Erleichterung der Beschreibung gezeigt. Fachleute werden jedoch verstehen, dass die spezielle Ordnung oder Anordnung der schematischen Elemente in den Zeichnungen nicht bedeuten soll, dass eine bestimmte Ordnung oder Sequenz der Verarbeitung oder Trennung von Prozessen erforderlich ist. Ferner soll die Einbeziehung eines schematischen Elements in einer Zeichnung nicht bedeuten, dass ein solches Element in allen Ausführungsformen erforderlich ist, oder dass die durch ein solches Element repräsentierten Merkmale in einigen Ausführungsformen eventuell nicht in anderen Elementen enthalten sind oder mit ihnen kombiniert werden.
-
Ferner soll in den Zeichnungen, in denen Verbindungselemente, wie z. B. durchgehende oder gestrichelte Linien oder Pfeile, verwendet werden, um eine Verbindung, Beziehung oder Assoziation zwischen oder unter zwei oder mehreren anderen schematischen Elementen darzustellen, die Abwesenheit irgendeines dieser Verbindungselemente nicht bedeuten, dass keine Verbindung, Beziehung oder Assoziation existieren kann. Mit anderen Worten, einige Verbindungen, Beziehungen oder Assoziationen zwischen Elementen in den Zeichnungen werden nicht gezeigt, um die Offenbarung nicht zu verschleiern. Darüber hinaus wird zur Erleichterung der Darstellung ein einzelnes Verbindungselement verwendet, um mehrere Verbindungen, Beziehungen oder Assoziationen zwischen Elementen zu repräsentieren. Wenn beispielsweise ein Verbindungselement eine Kommunikation von Signalen, Daten oder Anweisungen repräsentiert, ist es für Fachleute verständlich, dass ein solches Element je nach Bedarf einen oder mehrere Signalwege (z. B. einen Bus) repräsentiert, um die Kommunikation zu beeinflussen.
-
Nunmehr wird ausführlich auf Ausführungsformen Bezug genommen, von denen Beispiele in den begleitenden Zeichnungen dargestellt sind. In der folgenden ausführlichen Beschreibung werden zahlreiche spezielle Details dargelegt, um ein gründliches Verständnis der verschiedenen beschriebenen Ausführungsformen zu vermitteln. Einem Durchschnittsfachmann wird es jedoch offensichtlich sein, dass die verschiedenen beschriebenen Ausführungsformen auch ohne diese speziellen Details praktiziert werden können. In anderen Fällen sind bekannte Verfahren, Prozeduren, Komponenten, Schaltungen und Netzwerke nicht ausführlich beschrieben worden, um Aspekte der Ausführungsformen nicht unnötig zu verschleiern.
-
Im Folgenden werden mehrere Merkmale beschrieben, die jeweils unabhängig voneinander oder in beliebiger Kombination mit anderen Merkmalen verwendet werden können. Ein beliebiges einzelnes Merkmal mag jedoch nicht unbedingt irgendeines der oben erörterten Probleme ansprechen, oder es mag u. U. nur eines der oben erörterten Probleme ansprechen. Möglicherweise werden einige der oben erörterten Probleme nicht voll von irgendeinem der hierin beschriebenen Merkmale angesprochen. Obgleich Rubriken bereitgestellt werden, kann es sein, dass auf eine bestimmte Rubrik bezogene Informationen, die aber nicht in dem Abschnitt mit der betreffenden Rubrik vorhanden sind, eventuell auch woanders in dieser Beschreibung zu finden sind. Ausführungsformen werden hierin gemäß dem folgenden Umriss beschrieben:
- 1. Allgemeine Übersicht
- 2. Hardware-Übersicht
- 3. Architektur des autonomen Fahrzeugs
- 4. Eingaben des autonomen Fahrzeugs
- 5. Planung des autonomen Fahrzeugs
- 6. Steuerung des autonomen Fahrzeugs
- 7. Rechensystem für Objekterkennung mittels Säulen
- 8. Beispielhafte Punktwolken und Säulen
- 9. Beispielhafter Prozess zum Erkennen von Objekten und Betreiben des Fahrzeugs basierend auf der Erkennung der Objekte
-
Allgemeine Übersicht
-
Autonome Fahrzeuge, die in komplexen Umgebungen (z. B. einer urbanen Umgebung) fahren, stellen eine große technologische Herausforderung dar. Damit ein autonomes Fahrzeug in diesen Umgebungen navigieren kann, erkennt das Fahrzeug verschiedene Arten von Objekten, wie z. B. Fahrzeuge, Fußgänger und Fahrräder, in Echtzeit mit Hilfe von Sensoren, wie z. B. LiDAR oder RADAR. Das autonome Fahrzeug bestimmt auch die aktuelle Position des Fahrzeugs mit Hilfe von Lokalisierungsdaten, die oft von mehreren Quellen, wie z. B. GPS und LiDAR, stammen.
Wenn die Lokalisierungsdaten von den mehreren Quellen alle die gleiche ungefähre Position für das Fahrzeug angeben, dann kann das Fahrzeug mit hoher Zuversicht, dass die durch die Lokalisierungsdaten angegebene Position genau ist, operieren. Wenn jedoch die Lokalisierungsdaten von den mehreren Quellen nicht verfügbar oder ungenau sind (wie z. B. in einem Tunnel oder auf einer Brücke), ist das autonome Fahrzeug dazu ausgelegt, die aktuelle Position mittels anderer Quellen zu bestimmen.
-
Insbesondere stellen das System und die hierin beschriebenen Techniken eine geschätzte Position eines autonomen Fahrzeugs basierend auf vordefinierten Merkmalen der Umgebung bereit, wie z. B. dem strukturellen Muster der Straßenoberfläche oder anderen entlang der Fahrbahn installierten Markern. Das autonome Fahrzeug schaltet auf einen Lokalisierungsmodus um, der die vordefinierten Merkmale der Umgebung verwendet, wenn die Lokalisierungsdaten von anderen Quellen (wie z. B. GPS oder LiDAR) nicht das Genauigkeitskriterium erfüllen, etwa wenn Lokalisierungsdaten nur von einer Quelle verfügbar sind (z. B. wenn kein GPS-Signal erkannt wird).
-
Hardware-Übersicht
-
1 zeigt ein Beispiel eines autonomen Fahrzeugs 100, das autonome Fähigkeiten besitzt.
-
Wie hierin verwendet, bezieht sich der Begriff „autonome Fähigkeit“ auf eine Funktion, ein Merkmal oder eine Einrichtung, die es einem Fahrzeug ermöglicht, teilweise oder völlig ohne menschlichen Eingriff in Echtzeit betrieben zu werden, einschließlich und ohne Einschränkung völlig autonomer Fahrzeuge, hochgradig autonomer Fahrzeuge und bedingt autonomer Fahrzeuge.
-
Wie hierin verwendet, ist ein autonomes Fahrzeug (AV) ein Fahrzeug, das autonome Fähigkeiten besitzt.
-
Wie hierin verwendet, schließt „Fahrzeug“ Mittel zum Transportieren von Waren oder Personen ein. Beispielsweise Autos, Busse, Züge, Flugzeuge, Drohnen, Lastkraftwagen, Boote, Schiffe, Tauchboote, Luftschiffe usw. Ein fahrerloses Auto ist ein Beispiel eines Fahrzeugs.
-
Wie hierin verwendet, bezieht sich „Trajektorie“ auf einen Weg oder eine Route zum Navigieren eines AV von einem ersten raumzeitlichen Ort zu einem zweiten raumzeitlichen Ort. In einer Ausführungsform wird der erste raumzeitliche Ort als die Ausgangs- oder Startposition bezeichnet, und der zweite raumzeitliche Ort wird als Zielort, Endposition, Ziel, Zielposition oder Zielstandort bezeichnet. In einigen Beispielen besteht eine Trajektorie aus einem oder mehreren Segmenten (z. B. Abschnitten der Straße), und jedes Segment besteht aus einem oder mehreren Blöcken (z. B. Teilen einer Fahrspur oder Kreuzung).
In einer Ausführungsform entsprechen die raumzeitlichen Orte Orten in der realen Welt. Beispielsweise sind die raumzeitlichen Orte Abholungs- oder Abgabeorte zum Einladen oder Ausladen von Personen oder Waren.
-
Wie hierin verwendet, schließt (schließen) „Sensor(en)“ eine oder mehrere Hardware-Komponenten ein, die Informationen über die Umgebung des Sensors erfassen. Einige der Hardware-Komponenten können Sensorkomponenten (z. B. Bildsensoren, biometrische Sensoren), Sende- und/oder Empfangskomponenten (z. B. Laser- oder Funkfrequenzwellensender und - empfänger), elektronische Komponenten, wie z. B. Analog-Digital-Wandler, eine Datenspeichervorrichtung (wie z. B. ein RAM und/oder ein nichtflüchtiger Speicher), Software- oder Firmware-Komponenten und Datenverarbeitungskomponenten, wie z. B. eine ASIC (anwendungsspezifische integrierte Schaltung), einen Mikroprozessor und/oder einen Mikrocontroller einschließen.
-
Wie hierin verwendet, ist eine „Szenenbeschreibung“ eine Datenstruktur (z. B. Liste) oder ein Datenstrom, der ein oder mehrere klassifizierte oder bezeichnete Objekte einschließt, die von einem oder mehreren Sensoren an dem AV erkannt oder von einer Quelle extern dem AV bereitgestellt werden.
-
Wie hierin verwendet, ist eine „Straße“ ein physischer Bereich, der von einem Fahrzeug befahren werden kann, und mag einer benannten Durchgangsstraße (z. B. einer Stadtstraße, einer Autobahn usw.) entsprechen, oder sie mag einer unbenannten Durchgangsstraße (z. B. einem Fahrweg in einem Haus oder Bürogebäude, einem Abschnitt eines Parkplatzes, einem Abschnitt eines unbebauten Grundstücks, einem Feldweg in einem ländlichen Gebiet usw.) entsprechen. Da manche Fahrzeuge (z. B. Pickup-Trucks, Sport-Utility-Fahrzeuge mit 4-Rad-Antrieb, usw.) fähig sind, eine Vielzahl von physischen Bereichen zu befahren, die nicht speziell für Fahrzeugverkehr angepasst sind, mag eine „Straße“ ein physischer Bereich sein, der nicht formell als Durchgangsstraße von einer beliebigen Gemeinde oder Regierungs- oder Verwaltungsbehörde definiert ist.
-
Wie hierin verwendet, ist eine „Fahrspur“ ein Teil einer Straße, der von einem Fahrzeug befahren werden kann, und mag überwiegend oder ganz dem Raum zwischen Spurmarkierungen entsprechen, oder er mag nur einem Teil (z. B. weniger als 50 %) des Raums zwischen Spurmarkierungen entsprechen. Beispielsweise könnte eine Straße, deren Spurmarkierungen weit voneinander beabstandet sind, zwei oder mehr Fahrzeuge zwischen den Markierungen aufnehmen, so dass ein Fahrzeug das andere überholen kann, ohne die Spurmarkierungen zu überqueren, und könnte somit als eine Fahrspur aufweisend interpretiert werden, die schmaler als der Raum zwischen den Spurmarkierungen ist, oder als zwei Fahrspuren zwischen den Spurmarkierungen aufweisend. Eine Fahrspur könnte auch in der Abwesenheit von Spurmarkierungen interpretiert werden. Beispielsweise mag eine Fahrspur, basierend auf physischen Merkmalen einer Umgebung, z. B. Steine und Bäume entlang einer Durchgangsstraße in einem ländlichen Gebiet, definiert sein.
-
„Eine oder mehrere" schließt Folgendes ein: eine Funktion, die von einem Element durchgeführt wird, eine Funktion, die von mehr als einem Element durchgeführt wird, z. B. in einer verteilten Weise, mehrere Funktionen, die von einem Element durchgeführt werden, mehrere Funktionen, die von mehreren Elementen durchgeführt werden, oder eine beliebige Kombination der obigen Optionen.
-
Es versteht sich auch, dass, obgleich die Begriffe erste, zweite usw. in manchen Fällen hierin verwendet werden, um verschiedene Elemente zu beschreiben, diese Elemente nicht durch diese Begriffe eingeschränkt sein sollten. Diese Begriffe werden nur verwendet, um ein Element von einem anderen zu unterscheiden. Beispielsweise könnte ein erster Kontakt ein zweiter Kontakt genannt werden, und gleichermaßen könnte ein zweiter Kontakt ein erster Kontakt genannt werden, ohne von dem Umfang der verschiedenen beschriebenen Ausführungsformen abzuweichen. Der erste Kontakt und der zweite Kontakt sind beides Kontakte, aber sie sind nicht der gleiche Kontakt.
-
Die in der Beschreibung der verschiedenen hierin beschriebenen Ausführungsformen verwendete Terminologie dient lediglich dem Zweck des Beschreibens bestimmter Ausführungsformen und soll nicht einschränkend sein. Wie in der Beschreibung der verschiedenen beschriebenen Ausführungsformen und der angehängten Ansprüche verwendet, sollen die Singularformen „ein“, „eine“ und „der“, „die“, „das“ auch die Pluralformen einschließen, sofern der Kontext nicht klar etwas anderes angibt. Es versteht sich auch, dass der Begriff „und/oder“, wie hierin verwendet, sich auf jegliche und alle möglichen Kombinationen von einem oder mehreren der verbundenen aufgelisteten Posten bezieht und diese umfasst. Es versteht sich ferner, dass die Begriffe „schließt ein“, „einschließlich“, „umfasst“ und/oder „umfassend“, wenn sie in dieser Beschreibung verwendet werden, die Anwesenheit von genannten Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten angeben, aber nicht die Anwesenheit oder Hinzufügung von ein oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon ausschließen.
-
Wie hierin verwendet, ist der Begriff „falls“ optional dahin auszulegen, dass er abhängig vom Kontext „wenn“ oder „auf‟ oder „in Reaktion auf die Bestimmung“ oder „in Reaktion auf die Erkennung“ bedeutet. Gleichermaßen ist die Phrase „falls festgestellt wird“ oder „falls [ein genannter Zustand oder ein Ereignis] erkannt wird“ optional dahin auszulegen, dass sie abhängig vom Kontext „auf Bestimmung“ oder „in Reaktion auf die Bestimmung“ oder „auf Erkennen [des genannten Zustands oder Ereignisses]“ oder „in Reaktion auf die Erkennung [des genannten Zustands oder Ereignisses]“ bedeutet.
-
Wie hierin verwendet, bezieht sich ein AV-System auf das AV zusammen mit dem Array von Hardware, Software, gespeicherten Daten und in Echtzeit erzeugten Daten, die den Betrieb des AV unterstützen. In einer Ausführungsform ist das AV-System in das AV eingebaut. In einer Ausführungsform ist das AV-System auf mehrere Orte verteilt. Beispielsweise ist ein Teil der Software des AV-Systems auf einer Cloud-Computing-Umgebung ähnlich der nachstehend unter Bezugnahme auf 3 beschriebenen Cloud-Computing-Umgebung 300 implementiert.
-
Im Allgemeinen beschreibt dieses Dokument Technologien, die auf jegliche Fahrzeuge anwendbar sind, die eine oder mehrere autonome Fähigkeiten besitzen, einschließlich völlig autonomer Fahrzeuge, hochgradig autonomer Fahrzeuge und bedingt autonomer Fahrzeuge, wie z. B. Fahrzeuge der jeweils so genannten Stufe 5, Stufe 4 und Stufe 3, (siehe SAE International Standard J3016: Taxonomie und Definitionen für Begriffe, die auf automatisierte Fahrsysteme von Straßenkraftfahrzeugen bezogen sind, die in Form eines Verweises in ihrer Gesamtheit aufgenommen sind, um weitere Details über die Klassifikation von Stufen der Autonomie in Fahrzeugen zu erhalten). Die in diesem Dokument beschriebenen Technologien sind auch auf teilweise autonome Fahrzeuge und fahrerunterstützte Fahrzeuge, wie z. B. Fahrzeuge der so genannten Stufe 2 und Stufe 1, anwendbar (siehe SAE International Standard J3016:
- Taxonomie und Definitionen für Begriffe, die auf automatisierte Fahrsysteme von Straßenkraftfahrzeugen bezogen sind). In einer Ausführungsform können ein oder mehrere der Fahrzeugsysteme der Stufe 1, 2, 3, 4 und 5 bestimmte Fahrzeugoperationen (z. B. Lenkung, Bremsung und Gebrauch von Karten) unter bestimmten Betriebsbedingungen basierend auf der Verarbeitung von Sensoreingaben automatisieren. Die in diesem Dokument beschriebenen Technologien können für Fahrzeuge jeder Stufe, von völlig autonomen Fahrzeugen bis hin zu von Menschen betriebenen Fahrzeugen, von Nutzen sein.
-
Bezug nehmend auf , betreibt ein AV-System 120 das AV 100 entlang einer Trajektorie 198 durch eine Umgebung 190 zu einem Zielort 199 (manchmal auch Endposition genannt), während es Hindernisse (z. B. natürliche Behinderungen 191, Fahrzeuge 193, Fußgänger 192, Radfahrer und andere Hindernisse) vermeidet und die Verkehrsregeln (z. B. Betriebsregeln oder Fahrpräferenzen) befolgt.
-
In einer Ausführungsform schließt das AV-System 120 Geräte 101 ein, die instrumentiert sind, um Betriebsbefehle von den Computerprozessoren 146 zu empfangen und danach zu handeln. In einer Ausführungsform sind Computerprozessoren 146 ähnlich dem nachstehend unter Bezugnahme auf 3 beschriebenen Prozessor 304.
Beispiele von Geräten 101 umfassen eine Lenkkontrolle 102, Bremsen 103, Getriebe, Fahrpedal oder andere Beschleunigungssteuermechanismen, Scheibenwischer, Seitentürschlösser, Fensterheber und Blinker.
-
In einer Ausführungsform umfasst das AV-System 120 Sensoren 121 zum Messen oder Ableiten von Eigenschaften des Zustands oder der Bedingung des AV 100, wie z. B. Position, Linear- und Winkelgeschwindigkeit, Beschleunigung und Kurs des AV (z. B. eine Orientierung des Vorderendes des AV 100). Beispiele von Sensoren 121 sind GPS, Inertialmesseinheiten (IMU), die sowohl Linearbeschleunigungen und Winkelgeschwindigkeiten des Fahrzeugs messen, Raddrehzahlsensoren zum Messen oder Schätzen von Radschlupfverhältnissen, Radbremsdruck- oder Bremsmomentsensoren, Motordrehmoment- oder Raddrehmomentsensoren sowie Lenkwinkel- und Winkelgeschwindigkeitssensoren.
-
In einer Ausführungsform umfassen die Sensoren 121 auch Sensoren zum Erfassen oder Messen der Eigenschaften der Umgebung des AV. Beispielsweise monokulare oder Stereo-Videokameras 122 im sichtbaren Licht, Infrarot- oder Wärmespektren (oder beide), LiDAR 123, RADAR, Ultraschallsensoren, Time-of-Flight (TOF)-Tiefensensoren, Geschwindigkeitssensoren, Temperatursensoren, Feuchtigkeitssensoren und Niederschlagssensoren.
-
In einer Ausführungsform umfasst das AV-System 120 eine Datenspeichereinheit 142 und einen Speicher 144 zum Speichern von Maschinenbefehlen, die mit Computerprozessoren 146 oder von Sensoren 121 gesammelten Daten verbunden sind. In einer Ausführungsform ist die Datenspeichereinheit 142 dem ROM 308 oder der nachstehend in Bezug auf 3 beschriebenen Speichervorrichtung 310 ähnlich.
In einer Ausführungsform ist der Speicher 144 dem nachstehend beschriebenen Hauptspeicher 306 ähnlich.
In einer Ausführungsform speichern die Datenspeichereinheit 142 und der Speicher 144 historische, Echtzeit- und/oder prädiktive Informationen über die Umgebung 190. In einer Ausführungsform umfassen die gespeicherten Informationen Karten, Fahrleistung, Verkehrsstau-Updates oder Witterungsverhältnisse. In einer Ausführungsform werden auf die Umgebung 190 bezogene Daten über einen Kommunikationskanal von einer entfernt angeordneten Datenbank 134 zu dem AV 100 übertragen.
-
In einer Ausführungsform umfasst das AV-System 120 Kommunikationsvorrichtungen 140 zum Übermitteln von gemessenen oder abgeleiteten Eigenschaften der Zustände und Bedingungen anderer Fahrzeuge, wie z. B. Positionen, Linear- und Winkelgeschwindigkeiten, Linear- und Winkelbeschleunigungen sowie Linear- und Winkelkurse, zu dem AV 100. Diese Vorrichtungen umfassen Vehicle-to-Vehicle (V2V)- und Vehicle-to-Infrastructure (V21)-Kommunikationsvorrichtungen sowie Vorrichtungen für Drahtloskommunikation über Punkt-zu-Punkt- oder Ad-hoc-Netzwerke oder beide.
In einer Ausführungsform kommunizieren die Kommunikationsvorrichtungen 140 über das elektromagnetische Spektrum (einschließlich Funk- und optischer Kommunikation) oder andere Medien (z. B. Luft und akustische Medien).
Eine Kombination von Vehicle-to-Vehicle (V2V)- und Vehicle-to-Infrastructure (V21)-Kommunikation (und, in einigen Ausführungsformen, eine oder mehrere andere Kommunikationsarten) wird manchmal als Vehicle-to-Everything (V2X)-Kommunikation bezeichnet. V2X-Kommunikation entspricht typischerweise einem oder mehreren Kommunikationsstandards für Kommunikation mit, zwischen und unter autonomen Fahrzeugen.
-
In einer Ausführungsform umfassen die Kommunikationsvorrichtungen 140 Kommunikationsschnittstellen. Beispielsweise verdrahtete, drahtlose, WiMAX-, WiFi-, Bluetooth-, Satelliten-, Mobilfunk-, optische, Nahfeld-, Infrarot- oder Funkschnittstellen. Die Kommunikationsschnittstellen übertragen Daten von einer entfernt angeordneten Datenbank 134 zu dem AV-System 120. In einer Ausführungsform ist die entfernt angeordnete Datenbank 134 in einer Cloud-Computing-Umgebung 200 eingebettet, wie in 2 beschrieben. Die Kommunikationsschnittstellen 140 übertragen von Sensoren 121 gesammelte Daten oder andere, auf den Betrieb des AV 100 bezogene, Daten zu der entfernt angeordneten Datenbank 134. In einer Ausführungsform übertragen Kommunikationsschnittstellen 140 auf Teleoperationen bezogene Informationen zu dem AV 100. In einigen Ausführungsformen kommuniziert das AV 100 mit anderen entfernten Servern 136 (z. B. „Cloud“-Servern).
-
In einer Ausführungsform speichert und überträgt die entfernt angeordnete Datenbank 134 auch digitale Daten (z. B. Daten von Fernstraßen- und Stadtstraßenpositionen). Solche Daten werden in dem Speicher 144 im AV 100 gespeichert oder über einen Kommunikationskanal von der entfernt angeordneten Datenbank 134 zu dem AV 100 übertragen.
-
In einer Ausführungsform speichert und überträgt die entfernt angeordnete Datenbank 134 historische Informationen über Fahreigenschaften (z. B. Geschwindigkeits- und Beschleunigungsprofile) von Fahrzeugen, die zuvor zu ähnlichen Tageszeiten entlang der Trajektorie 198 gefahren sind. In einer Implementierung können solche Daten in dem Speicher 144 im AV 100 gespeichert oder über einen Kommunikationskanal von der entfernt angeordneten Datenbank 134 zu dem AV 100 übertragen werden.
-
An dem AV 100 angeordnete Rechenvorrichtungen 146 erzeugen algorithmisch Steueraktionen basierend auf Echtzeit-Sensordaten und Vorabinformationen, um es dem AV-System 120 zu gestatten, seine autonomen Fahrfähigkeiten auszuführen.
-
In einer Ausführungsform umfasst das AV-System 120 mit Rechenvorrichtungen 146 gekoppelte Computer-Peripheriegeräte 132, um Informationen und Warnungen zu einem Benutzer (z. B. einem Insassen oder einem Fernbenutzer) des AV 100 zu liefern und Eingaben von diesem zu empfangen. In einer Ausführungsform sind die Peripheriegeräte 132 dem nachstehend in Bezug auf 3 erörterten Display 312, der Eingabevorrichtung 314 und dem Cursorcontroller 316 ähnlich. Die Kopplung ist drahtlos oder verdrahtet. Beliebige zwei oder mehrere der Schnittstellenvorrichtungen können zu einer einzigen Vorrichtung integriert werden.
-
2 stellt eine beispielhafte „Cloud“-Computing-Umgebung dar. Cloud-Computing ist ein Modell einer Service-Bereitstellung, um bequemen On-Demand-Netzwerkzugriff auf einen gemeinsam genutzten Pool von konfigurierbaren Rechenressourcen (z. B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicher, Massenspeicher, Anwendungen, virtuelle Maschinen und Dienste) zu ermöglichen. In typischen Cloud-Computing-Systemen beherbergen ein oder mehrere große Cloud-Rechenzentren die Maschinen, die zum Liefern der durch die Cloud bereitgestellten Dienste verwendet werden. Nunmehr Bezug nehmend auf 2, umfasst die Cloud-Computing-Umgebung 200 die Cloud-Rechenzentren 204a, 204b und 204c, die durch die Cloud 202 miteinander verbunden sind. Die Rechenzentren 204a, 204b und 204c stellen Cloud-Computing-Dienste den mit der Cloud 202 verbundenen Computersystemen 206a, 206b, 206c, 206d, 206e und 206f bereit.
-
Die Cloud-Computing-Umgebung 200 umfasst ein oder mehrere Cloud-Rechenzentren. Im Allgemeinen bezieht sich ein Cloud-Rechenzentrum, zum Beispiel das in 2 gezeigte Cloud-Rechenzentrum 204a, auf die physische Anordnung von Servern, die eine Cloud bilden, zum Beispiel die in 2 gezeigte Cloud 202, oder einen bestimmten Teil einer Cloud. Beispielsweise sind Server im Cloud-Rechenzentrum physisch in Räumen, Gruppen, Reihen und Racks angeordnet. Ein Cloud-Rechenzentrum weist eine oder mehrere Zonen auf, die einen oder mehrere Räume von Servern einschließen. Jeder Raum hat eine oder mehrere Reihen von Servern, und jede Reihe weist ein oder mehrere Racks auf. Jedes Rack weist einen oder mehrere individuelle Serverknoten auf. In einigen Implementierungen sind Server in Zonen, Räumen, Racks und/oder Reihen, basierend auf physischen Infrastrukturanforderungen der Rechenzentrumseinrichtung, die Leistungs-, Energie-, Thermal-, Wärme- und/oder andere Anforderungen einschließen, in Gruppen angeordnet.
In einer Ausführungsform sind die Serverknoten dem in 3 beschriebenen Computersystem ähnlich. Das Rechenzentrum 204a weist viele Rechensysteme auf, die über viele Racks verteilt sind.
-
Die Cloud 202 umfasst die Cloud-Rechenzentren 204a, 204b und 204c neben dem Netzwerk und den Netzwerkressourcen (zum Beispiel Netzwerkgeräte, Knoten, Router, Switches und Netzwerkkabel), welche die Cloud-Rechenzentren 204a, 204b und 204c miteinander verbinden und dazu beitragen, den Zugriff der Rechensysteme 206a-f auf die Cloud-Computing-Dienste zu erleichtern. In einer Ausführungsform repräsentiert das Netzwerk eine beliebige Kombination von einem oder mehreren lokalen Netzwerken, Wide Area Networks oder Internetzwerken, die mittels verdrahteten oder drahtlosen Links gekoppelt sind und unter Verwendung von terrestrischen oder Satellitenverbindungen eingesetzt werden. Die über das Netzwerk ausgetauschten Daten werden unter Verwendung einer beliebigen Anzahl von Netzwerkschichtprotokollen, wie z. B. Internet Protocol (IP), Multiprotocol Label Switching (MPLS), Asynchronous Transfer Mode (ATM), Frame Relay etc. übertragen. Darüber hinaus werden in Ausführungsformen, in denen das Netzwerk eine Kombination von mehreren Teilnetzen repräsentiert, unterschiedliche Netzwerkschichtprotokolle bei jedem der zugrunde liegenden Teilnetze verwendet.
In einigen Ausführungsformen repräsentiert das Netzwerk ein oder mehrere miteinander verbundene Internetzwerke, wie z. B. das öffentliche Internet.
-
Die Rechensysteme 206a-f oder die Verbraucher von Cloud-Computing-Diensten sind über Netzwerkverbindungen und Netzwerkadapter mit der Cloud 202 verbunden. In einer Ausführungsform werden die Rechensysteme 206a-f als verschiedene Rechengeräte, zum Beispiel Server, Desktops, Laptops, Tablets, Smartphones, Internet-der-Dinge (IoT)-Geräte, autonome Fahrzeuge (einschließlich Autos, Drohnen, Shuttles, Zügen, Bussen usw.) und Unterhaltungselektronikgeräte implementiert. In einer Ausführungsform werden die Rechensysteme 206a-f in oder als Teil von anderen Systemen implementiert.
-
3 stellt ein Computersystem 300 dar. In einer Implementierung ist das Computersystem 300 eine Sonderzweck-Rechenvorrichtung. Die Sonderzweck-Rechenvorrichtung ist festverdrahtet, um die Techniken durchzuführen, oder sie enthält digitale elektronische Geräte, wie z. B. eine oder mehrere anwendungsspezifische integrierte Schaltungen (ASICs) oder feldprogrammierbare Gate-Arrays (FPGAs), die dauerhaft programmiert sind, um die Techniken durchzuführen, oder sie können einen oder mehrere Allzweck-Hardware-Prozessoren aufweisen, die programmiert sind, die Techniken gemäß Programmanweisungen in Firmware, Speicher, sonstigem Speicher oder einer Kombination durchzuführen. Solche Sonderzweck-Rechenvorrichtungen können auch angepasste festverdrahtete Logik, ASICs oder FPGAs mit Sonderprogrammierung kombinieren, um die Techniken zu erreichen. In verschiedenen Ausführungsformen sind die Sonderzweck-Rechenvorrichtungen Desktop-Computersysteme, tragbare Computersysteme, Handheld-Geräte, Netzwerkgeräte oder ein beliebiges anderes Gerät, das festverdrahtete und/oder Programmlogik enthält, um die Techniken zu implementieren.
-
In einer Ausführungsform weist das Computersystem 300 einen Bus 302 oder einen anderen Kommunikationsmechanismus zum Übermitteln von Informationen und einen mit einem Bus 302 gekoppelten Hardware-Prozessor 304 zum Verarbeiten von Informationen auf. Der Hardware-Prozessor 304 ist zum Beispiel ein Allzweck-Mikroprozessor.
Das Computersystem 300 enthält auch einen Hauptspeicher 306, wie z. B. einen Direktzugriffsspeicher (RAM) oder eine andere dynamische Speichervorrichtung, die mit dem Bus 302 gekoppelt ist, um Informationen und durch den Prozessor 304 auszuführende Anweisungen zu speichern. In einer Implementierung wird der Hauptspeicher 306 zum Speichern von temporären Variablen oder anderen Zwischeninformationen während der Ausführung der durch den Prozessor 304 auszuführenden Anweisungen verwendet. Solche Anweisungen, wenn sie in einem für den Prozessor 304 zugänglichen nichtflüchtigen Speichermedium gespeichert werden, machen das Computersystem 300 zu einer Sonderzweck-Maschine, die dazu angepasst ist, die in den Anweisungen angegebenen Operationen durchzuführen.
-
In einer Ausführungsform enthält das Computersystem 300 ferner einen Nur-LeseSpeicher (ROM) 308 oder eine andere statische Speichervorrichtung, die mit dem Bus 302 gekoppelt ist, um statische Informationen und Anweisungen für den Prozessor 304 zu speichern. Eine Speichervorrichtung 310, wie z. B. eine magnetische Disk, eine optische Disc, ein Festkörperlaufwerk oder ein dreidimensionaler Kreuzpunktspeicher, wird bereitgestellt und ist mit dem Bus 302 gekoppelt, um Informationen und Anweisungen zu speichern.
-
In einer Ausführungsform ist das Computersystem 300 über den Bus 302 mit einem Display 312, wie z. B. einer Kathodenstrahlröhre (CRT), einem Flüssigkristalldisplay (LCD), einem Plasmadisplay, einem Leuchtdioden (LED)-Display oder einem organischen Leuchtdioden (OLED)-Display gekoppelt, um Informationen für einen Computerbenutzer anzuzeigen. Eine Eingabevorrichtung 314, die alphanumerische und andere Tasten aufweist, ist mit dem Bus 302 gekoppelt, um Informationen und Befehlsauswahlen an den Prozessor 304 zu übermitteln. Eine weitere Art von Benutzereingabegerät ist ein Cursorcontroller 316, wie z. B. eine Maus, ein Trackball, ein touchfähiges Display oder Cursorrichtungstasten, um Richtungsinformationen und Befehlsauswahlen an den Prozessor 304 zu übermitteln und die Cursorbewegung auf dem Display 312 zu steuern.
Dieses Eingabegerät hat typischerweise zwei Freiheitsgrade in zwei Achsen, einer ersten Achse (z. B. X-Achse) und einer zweiten Achse (z. B. Y-Achse), die es dem Gerät erlauben, Positionen in einer Ebene anzugeben.
-
Gemäß einer Ausführungsform werden die hierin beschriebenen Techniken durch das Computersystem 300 in Reaktion darauf durchgeführt, dass der Prozessor 304 eine oder mehrere Sequenzen von einer oder mehreren Anweisungen ausführt, die in dem Hauptspeicher 306 enthalten sind. Solche Anweisungen werden von einem anderen Speichermedium, wie z. B. der Speichervorrichtung 310, in den Hauptspeicher 306 eingelesen.
Die Ausführung der Sequenzen von Anweisungen, die im Hauptspeicher 306 enthalten sind, veranlasst den Prozessor 304, die hierin beschriebenen Prozessschritte durchzuführen. In alternativen Ausführungsformen wird eine festverdrahtete Schaltung anstelle der Software-Anweisungen oder in Kombination damit verwendet.
-
Der hierin verwendete Begriff „Speichermedium“ bezieht sich auf ein beliebiges nichtflüchtiges Medium, das Daten und/oder Anweisungen speichert, die eine Maschine veranlassen, in einer speziellen Weise zu funktionieren. Solche Speichermedien schließen nichtflüchtige Medien und/oder flüchtige Medien ein. Nichtflüchtige Medien umfassen zum Beispiel optische Discs, magnetische Disks, Festkörperlaufwerke oder dreidimensionale Kreuzpunktspeicher, wie z. B. die Speichervorrichtung 310. Flüchtige Medien schließen dynamischen Speicher, wie z. B. den Hauptspeicher 306, ein.
Gängige Formen von Speichermedien umfassen zum Beispiel eine Diskette, eine flexible Disk, eine Festplatte, ein Festkörperlaufwerk, ein Magnetband oder ein beliebiges anderes magnetisches Datenspeichermedium, eine CD-ROM, ein beliebiges anderes optisches Datenspeichermedium, ein beliebiges physisches Medium mit Lochmustern, ein RAM, ein PROM sowie EPROM, FLASH-EPROM, NV-RAM oder einen beliebigen anderen Speicherchip oder eine Kassette.
-
Speichermedien unterscheiden sich von Übertragungsmedien, können aber in Verbindung mit diesen verwendet werden. Übertragungsmedien wirken an der Übertragung von Informationen zwischen Speichermedien mit. Beispielsweise umfassen Übertragungsmedien Koaxialkabel, Kupferdraht und Glasfaser, einschließlich der Drähte, die den Bus 302 bilden. Übertragungsmedien können auch die Form von Schall- oder Lichtwellen annehmen, wie z. B. diejenigen, die während Funkwellen- und Infrarotdatenübertragungen erzeugt werden.
-
In einer Ausführungsform sind verschiedene Formen von Medien daran beteiligt, eine oder mehrere Sequenzen von einer oder mehreren Anweisungen zur Ausführung zu dem Prozessor 304 zu transportieren. Beispielsweise werden die Anweisungen anfänglich auf einer magnetischen Disk oder einem Festkörperlaufwerk eines Remote-Computers getragen. Der Remote-Computer lädt die Anweisungen in seinen dynamischen Speicher und sendet die Anweisungen mittels eines Modems über eine Telefonleitung. Ein lokales Modem des Computersystems 300 empfängt die Daten auf der Telefonleitung und wandelt die Daten mit Hilfe eines Infrarotsenders in ein Infrarotsignal um. Ein Infrarotdetektor empfängt die in dem Infrarotsignal transportierten Daten, und eine geeignete Schaltung platziert die Daten auf den Bus 302. Der Bus 302 transportiert die Daten zum Hauptspeicher 306, von dem der Prozessor 304 die Anweisungen abruft und ausführt. Die vom Hauptspeicher 306 empfangenen Anweisungen können optional entweder vor oder nach der Ausführung durch den Prozessor 304 auf der Speichervorrichtung 310 gespeichert werden.
-
Das Computersystem 300 weist auch eine mit dem Bus 302 gekoppelte Kommunikationsschnittstelle 318 auf. Die Kommunikationsschnittstelle 318 stellt eine Zweiweg-Datenübertragungskopplung mit einer Netzwerkverbindung 320 bereit, die mit einem lokalen Netzwerk 322 verbunden ist.
Beispielsweise ist die Kommunikationsschnittstelle 318 eine Integrated Service Digital Network (ISDN)-Karte, ein Kabelmodem, ein Satellitenmodem oder ein Modem zur Bereitstellung einer Datenübertragungsverbindung mit einer entsprechenden Art von Telefonleitung. Als weiteres Beispiel ist die Kommunikationsschnittstelle 318 eine Local Area Network (LAN)-Karte, um eine Datenübertragungsverbindung mit einem kompatiblen LAN bereitzustellen. In einigen Implementierungen sind Drahtlosverbindungen ebenfalls implementiert. In einer beliebigen solchen Implementierung sendet und empfängt die Kommunikationsschnittstelle 318 elektrische, elektromagnetische oder optische Signale, die digitale Datenströme transportieren, die verschiedene Arten von Informationen repräsentieren.
-
Die Netzwerkverbindung 320 stellt typischerweise Datenübertragung über ein oder mehrere Netzwerke für andere Datenvorrichtungen bereit. Beispielsweise bietet die Netzwerkverbindung 320 eine Verbindung über das lokale Netzwerk 322 mit einem Host-Computer 324 oder einem Cloud-Rechenzentrum oder einer durch einen Internet Service Provider (ISP) 326 betriebenen Anlage. Der ISP 326 bietet wiederum Datenübertragungsdienste über das weltweite Paketdaten-Kommunikationsnetz, das heute allgemein als „Internet“ 328 bezeichnet wird. Das lokale Netzwerk 322 und das Internet 328 verwenden beide elektrische, elektromagnetische oder optische Signale, die digitale Datenströme transportieren.
-
Die Signale durch die verschiedenen Netzwerke und die Signale auf der Netzwerkverbindung 320 und durch die Kommunikationsschnittstelle 318, welche die digitalen Daten zu und von dem Computersystem 300 transportieren, sind beispielhafte Formen von Übertragungsmedien. In einer Ausführungsform enthält das Netzwerk 320 die Cloud 202 oder einen Teil der oben beschriebenen Cloud 202.
-
Das Computersystem 300 sendet Nachrichten und empfängt Daten, einschließlich Programmcode, durch das (die) Netzwerk(e), die Netzwerkverbindung 320 und die Kommunikationsschnittstelle 318. In einer Ausführungsform empfängt das Computersystem 300 Code für Verarbeitung. Der empfangene Code wird durch den Prozessor 304 ausgeführt, wie er empfangen wird, und/oder wird in der Speichervorrichtung 310 oder einem anderen nichtflüchtigen Speicher für spätere Ausführung gespeichert.
-
Architektur des autonomen Fahrzeugs
-
4 zeigt eine beispielhafte Architektur 400 für ein autonomes Fahrzeug (z. B. das in 1 gezeigte AV 100). Die Architektur 400 umfasst ein Wahrnehmungsmodul 402 (manchmal auch Wahrnehmungsschaltung genannt), ein Planungsmodul 404 (manchmal auch Planungsschaltung genannt), ein Steuermodul 406 (manchmal auch Steuerschaltung genannt), ein Lokalisierungsmodul 408 (manchmal auch Lokalisierungsschaltung genannt) und ein Datenbankmodul 410 (manchmal auch Datenbankschaltung genannt).
Jedes Modul spielt eine Rolle im Betrieb des AV 100. Zusammen können die Module 402, 404, 406, 408 und 410 Teil des in 1 gezeigten AV-Systems 120 sein. In einigen Ausführungsformen ist jedes der Module 402, 404, 406, 408 und 410 eine Kombination von Computer-Software (z. B. auf einem computerlesbaren Medium gespeicherter ausführbarer Code) und Computer-Hardware (z. B. ein oder mehrere Mikroprozessoren, Mikrocontroller, anwendungsspezifische integrierte Schaltungen [ASICs]), Hardware-Speichervorrichtungen, andere Arten von integrierten Schaltungen, andere Arten von Computer-Hardware oder eine Kombination von einigen oder allen dieser Dinge).
-
Während des Betriebs empfängt das Planungsmodul 404 Daten, die einen Zielort 412 repräsentieren, und bestimmt Daten, die eine Trajektorie 414 repräsentieren (manchmal auch Route genannt), die von dem AV 100 befahren werden kann, um den Zielort 412 zu erreichen (bzw. dort anzukommen). Damit das Planungsmodul 404 die Daten, welche die Trajektorie 414 repräsentieren, bestimmen kann, empfängt das Planungsmodul 404 Daten von dem Wahrnehmungsmodul 402, dem Lokalisierungsmodul 408 und dem Datenbankmodul 410.
-
Das Wahrnehmungsmodul 402 identifiziert nahe gelegene physische Objekte mit Hilfe eines oder mehrerer Sensoren 121, wie z. B. auch in 1 gezeigt. Die Objekte werden klassifiziert (z. B. in Typen wie etwa Fußgänger, Fahrrad, Automobil, Verkehrsschild usw. gruppiert), und eine Szenenbeschreibung, welche die klassifizierten Objekte 416 enthält, wird dem Planungsmodul 404 bereitgestellt.
-
Das Planungsmodul 404 empfängt auch Daten, welche die AV-Position 418 repräsentieren, von dem Lokalisierungsmodul 408. Das Lokalisierungsmodul 408 bestimmt die AV-Position anhand der Daten von den Sensoren 121 und der Daten von dem Datenbankmodul 410 (z. B. geographische Daten), um eine Position zu berechnen. Beispielsweise verwendet das Lokalisierungsmodul 408 Daten von einem GNSS (Global Navigation Satellite System)-Sensor und geographische Daten, um eine Länge und Breite des AV zu berechnen. In einer Ausführungsform umfassen von dem Lokalisierungsmodul 408 genutzte Daten hochpräzise Karten der geometrischen Eigenschaften der Fahrbahn, Karten, welche die Verbindungseigenschaften des Straßennetzes beschreiben, Karten, welche die physischen Eigenschaften der Fahrbahn (wie z. B. Verkehrsgeschwindigkeit, Verkehrsvolumen, die Anzahl von Fahrspuren für Fahrzeuge und Fahrräder, Fahrspurbreite, Fahrspur-Verkehrsrichtungen, oder Fahrspur-Markierungstypen und - positionen, oder Kombinationen davon) beschreiben, und Karten, welche die räumlichen Positionen von Straßenmerkmalen, wie z. B. Fußgängerüberwege, Verkehrsschilder oder andere Wegstreckensignale verschiedener Arten, beschreiben.
-
Das Steuermodul 406 empfängt die Daten, welche die Trajektorie 414 repräsentieren, und die Daten, welche die AV-Position 418 repräsentieren, und betätigt die Steuerfunktionen 420a-c (z. B. Lenkung, Fahrgeschwindigkeit, Bremsen, Zündung) des AV in einer Weise, die das AV 100 veranlassen, die Trajektorie 414 zum Zielort 412 zu befahren.
Falls die Trajektorie 414 beispielsweise Linksabbiegen enthält, betätigt das Steuermodul 406 die Steuerfunktionen 420a-c in einer Weise, dass der Lenkwinkel der Lenkfunktion das AV 100 veranlasst, links abzubiegen, und das Drosseln und Bremsen veranlassen das AV 100, anzuhalten und auf passierende Fußgänger oder Fahrzeuge zu warten, bevor die Richtungsänderung ausgeführt wird.
-
Eingaben des autonomen Fahrzeugs
-
5 zeigt ein Beispiel von Eingaben 502a-d (z. B. in. 1 gezeigte Sensoren 121) und Ausgaben 504a-d (z. B. Sensordaten), die von dem Wahrnehmungsmodul 402 (4) genutzt werden. Eine Eingabe 502a ist ein LiDAR (Light Detection and Ranging)-System (z. B. das in 1 gezeigte LiDAR 123).
LiDAR ist eine Technologie, die Licht (z. B. Lichtimpulse wie etwa Infrarotlicht) verwendet, um Daten über physische Objekte in ihrer Sichtlinie zu erhalten. Ein LiDAR-System erzeugt LiDAR-Daten als Ausgabe 504a. Beispielsweise sind LiDAR-Daten Sammlungen von 3D- oder 2D-Punkten (auch als Punktwolken bekannt), die verwendet werden, um eine Repräsentation der Umgebung 190 zu konstruieren.
-
Eine weitere Eingabe 502b ist ein RADAR-System. RADAR ist eine Technologie, die Funkwellen verwendet, um Daten über nahegelegene physische Objekte zu erhalten. RADAR kann Daten über Objekte erhalten, die nicht innerhalb der Sichtlinie eines LiDAR-Systems liegen. Ein RADAR-System 502b erzeugt RADAR-Daten als Ausgabe 504b. Beispielsweise sind RADAR-Daten ein oder mehrere elektromagnetische Funkfrequenzsignale, die verwendet werden, um eine Repräsentation der Umgebung 190 zu konstruieren.
-
Eine weitere Eingabe 502c ist ein Kamerasystem. Ein Kamerasystem verwendet eine oder mehrere Kameras (z. B. Digitalkameras, die einen Lichtsensor, wie z. B. ein ladungsgekoppeltes Bauelement [CCD], verwendet), um Informationen über nahegelegene physische Objekte zu erhalten. Ein Kamerasystem erzeugt Kameradaten als Ausgabe 504c. Kameradaten liegen oft in Form von Bilddaten vor (z. B. Daten in einem Bilddatenformat, wie etwa RAW, JPEG, PNG usw.). In einigen Beispielen hat das Kamerasystem mehrere unabhängige Kameras, z. B. für den Zweck von Stereopsis (stereoskopisches Sehen), die es dem Kamerasystem ermöglicht, Tiefe wahrzunehmen. Obgleich die von dem Kamerasystem wahrgenommenen Objekte hier als „nahegelegen“ beschrieben werden, ist dies relativ zum AV. Im Betrieb kann das Kamerasystem dazu ausgelegt sein, entfernte Objekte, z. B. bis zu einem Kilometer oder mehr vor dem AV, zu „sehen“. Dementsprechend kann das Kamerasystem Merkmale, wie z. B. Sensoren und Objektive, haben, die für die Wahrnehmung von weit entfernten Objekten optimiert sind.
-
Eine weitere Eingabe 502d ist ein System zur Verkehrsampelerkennung (TLD). Ein TLD-System verwendet eine oder mehrere Kameras, um Informationen über Verkehrsampeln, Straßenschilder und andere physische Objekte zu erhalten, die visuelle Navigationsinformationen liefern.
-
Ein TLD-System erzeugt TLD-Daten als Ausgabe 504d. TLD-Daten liegen oft in Form von Bilddaten vor (z. B. Daten in einem Bilddatenformat, wie etwa RAW, JPEG, PNG usw.). Ein TLD-System unterscheidet sich von einem Kamerasystem dadurch, dass ein TLD-System eine Kamera mit einem breiten Sichtfeld verwendet (z. B. durch Verwendung eines Weitwinkelobjektivs oder Fischaugenobjektivs), um Informationen über möglichst viele physische Objekte, die visuelle Navigationsinformationen liefern, zu erhalten, so dass das AV 100 Zugang zu allen relevanten Navigationsinformationen hat, die von diesen Objekten geliefert werden. Beispielsweise kann der Sichtwinkel des TLD-Systems etwa 120 Grad oder mehr betragen.
-
In einigen Ausführungsformen werden die Ausgaben 504a-d unter Verwendung einer Sensorfusionstechnik kombiniert. Daher werden entweder die individuellen Ausgaben 504a-d anderen Systemen des AV 100 bereitgestellt (z. B. einem Planungsmodul 404, wie in 4 gezeigt), oder die kombinierte Ausgabe kann den anderen Systemen bereitgestellt werden, entweder in der Form einer einzelnen kombinierten Ausgabe oder mehrerer kombinierter Ausgaben des gleichen Typs (z. B. unter Verwendung der gleichen Kombinationstechnik oder durch Kombinieren der gleichen Ausgaben oder beides) oder unterschiedlicher Typen (z. B. unter Verwendung unterschiedlicher jeweiliger Kombinationstechniken oder durch Kombinieren unterschiedlicher jeweiliger Ausgaben oder beides). In einigen Ausführungsformen wird eine frühe Fusionstechnik verwendet. Eine frühe Fusionstechnik ist dadurch gekennzeichnet, dass Ausgaben kombiniert werden, bevor ein oder mehrere Datenverarbeitungsschritte auf die kombinierte Ausgabe angewandt werden. In einigen Ausführungsformen wird eine späte Fusionstechnik verwendet. Eine späte Fusionstechnik ist dadurch gekennzeichnet, dass Ausgaben kombiniert werden, nachdem ein oder mehrere Datenverarbeitungsschritte auf die individuellen Ausgaben angewandt worden sind.
-
6 zeigt ein Beispiel eines LiDAR-Systems 602 (z. B. die in 5 gezeigte Eingabe 502a). Das LiDAR-System 602 emittiert Licht 604a-c von einem Lichtemitter 606 (z. B. einem Lasersender). Licht, das von einem LiDAR-System emittiert wird, liegt typischerweise nicht im sichtbaren Spektrum; zum Beispiel wird oft Infrarotlicht verwendet. Ein Teil des emittierten Lichts 604b trifft auf ein physisches Objekt 608 (z. B. ein Fahrzeug) und wird zu dem LiDAR-System 602 zurück reflektiert. (Von einem LiDAR-System emittiertes Licht durchdringt typischerweise keine physischen Objekte, z. B. physische Objekte in fester Form.) Das LiDAR-System 602 weist auch einen oder mehrere Lichtdetektoren 610 auf, die das reflektierte Licht erfassen. In einer Ausführungsform erzeugen ein oder mehrere Datenverarbeitungssysteme, die mit dem LiDAR-System verbunden sind, ein Bild 612, welches das Sichtfeld 614 des LiDAR-Systems repräsentiert. Das Bild 612 enthält Informationen, welche die Grenzen 616 eines physischen Objekts 608 repräsentieren. Auf diese Weise wird das Bild 612 verwendet, um die Grenzen 616 eines oder mehrerer physischer Objekte in der Nähe eines AV zu bestimmen.
-
7 zeigt das LiDAR-System 602 im Betrieb. In dem in dieser Figur gezeigten Szenario empfängt das AV 100 sowohl eine Kamerasystem-Ausgabe 504c in der Form eines Bilds 702 als auch eine LiDAR-System-Ausgabe 504a in der Form von LiDAR-Datenpunkten 704. Im Betrieb vergleichen die Datenverarbeitungssysteme des AV 100 das Bild 702 mit den Datenpunkten 704. Insbesondere wird ein in dem Bild 702 identifiziertes physisches Objekt 706 auch unter den Datenpunkten 704 identifiziert. Auf diese Weise nimmt das AV 100 die Grenzen des physischen Objekts basierend auf der Kontur und Dichte der Datenpunkte 704 wahr.
-
8 zeigt den Betrieb des LiDAR-Systems 602 in zusätzlichem Detail. Wie oben beschrieben, erfasst das AV 100 die Grenze eines physischen Objekts basierend auf Charakteristika der von dem LiDAR-System 602 erfassten Datenpunkte. Wie in 8 gezeigt, reflektiert ein flaches Objekt, wie z. B. der Boden 802, das von einem LiDAR-System 602 emittierte Licht 804a-d in einer konsistenten Weise. Anders ausgedrückt, weil das LiDAR-System 602 Licht unter Verwendung eines konsistenten Abstands emittiert, reflektiert der Boden 802 Licht mit dem gleichen konsistenten Abstand zu dem LiDAR-System 602 zurück. Wenn das AV 100 über den Boden 802 fährt, erfasst das LiDAR-System 602 fortlaufend das vom nächsten gültigen Bodenpunkt 806 reflektierte Licht, falls sich kein Hindernis auf der Straße befindet.
Falls jedoch ein Objekt 808 die Straße blockiert, wird das vom LiDAR-System 602 emittierte Licht 804e-f in einer Weise von den Punkten 810a-b reflektiert, die inkonsistent mit der erwarteten konsistenten Weise ist.
Anhand dieser Information kann das AV 100 ermitteln, dass das Objekt 808 vorhanden ist.
-
Wegplanung
-
9 zeigt ein Blockdiagramm 900 der Beziehung zwischen Eingaben und Ausgaben eines Planungsmoduls 404 (z. B. wie in 4 gezeigt). Im Allgemeinen ist die Ausgabe eines Planungsmoduls 404 eine Route 902 von einem Startpunkt 904 (z. B. Quellenort oder anfänglicher Ort) bis zu einem Endpunkt 906 (z. B. Zielort oder Endposition). Die Route 902 wird typischerweise durch ein oder mehrere Segmente definiert. Ein Segment ist beispielsweise eine Entfernung, die über mindestens einen Teil einer Stadtstraße, Fernstraße, Autobahn, Fahrweg oder einen anderen für Automobilverkehr geeigneten physischen Bereich zurückzulegen ist. In einigen Beispielen, wenn das AV 100 z. B. ein geländetaugliches Fahrzeug, wie etwa ein Auto mit Vierradantrieb (4WD) oder Allradantrieb (AWD), ein SUV, ein Pickup-Truck, oder dergleichen ist, enthält die Route 902 „Gelände“-Segmente, wie z. B. unbefestigte Wege oder offene Felder.
-
Zusätzlich zu der Route 902 gibt ein Planungsmodul auch Routenplanungsdaten auf Fahrspurebene 908 aus. Die Routenplanungsdaten auf Fahrspurebene 908 werden verwendet, um Segmente der Route 902, basierend auf den Bedingungen des Segments zu einer bestimmten Zeit, zu befahren.
Falls die Route 902 beispielsweise eine mehrspurige Autobahn enthält, schließen die Routenplanungsdaten auf Fahrspurebene 908 Trajektorieplanungsdaten 910 ein, die das AV 100 benutzen kann, um eine Fahrspur unter den mehreren Fahrspuren auszuwählen, z. B. darauf basierend, ob eine Ausfahrt sich nähert, ob eine oder mehrere der Fahrspuren andere Fahrzeuge aufweisen, oder andere Faktoren, die im Laufe einiger Minuten oder weniger variieren. Gleichermaßen enthalten die Routenplanungsdaten auf Fahrspurebene 908 in einigen Implementierungen Geschwindigkeitsbeschränkungen 912, die für ein Segment der Route 902 spezifisch sind.
Falls das Segment beispielsweise Fußgänger oder unerwarteten Verkehr aufweist, können die Geschwindigkeitsbeschränkungen 912 das AV 100 auf eine Fahrgeschwindigkeit begrenzen, die niedriger als eine erwartete Geschwindigkeit ist, z. B. eine Geschwindigkeit, basierend auf Geschwindigkeitsbegrenzungsdaten für das Segment.
-
In einer Ausführungsform umfassen die Eingaben in das Planungsmodul 404 Datenbankdaten 914 (z. B. von dem in 4 gezeigten Datenbankmodul 410), Istpositionsdaten 916 (z. B. die in 4 gezeigte AV-Position 418), Zielortdaten 918 (z. B. für den in 4 gezeigten Zielort 412) und Objektdaten 920 (z. B. die durch das Wahrnehmungsmodul 402 wahrgenommenen klassifizierten Objekte 416, wie in 4 gezeigt). In einigen Ausführungsformen enthalten die Datenbankdaten 914 für die Planung verwendete Regeln. Regeln werden unter Verwendung einer formalen Sprache, z. B. mit einer Booleschen Logik, angegeben. In jeder beliebigen Situation, der das AV 100 begegnet, treffen zumindest einige der Regeln auf die Situation zu. Eine Regel gilt für eine gegebene Situation, falls die Regel Bedingungen aufweist, die auf der Basis der für das AV 100 verfügbaren Informationen erfüllt werden, z. B. Informationen über die Umgebung. Regeln können Priorität haben. Beispielsweise kann eine Regel, die sagt „falls die Straße eine Autobahn ist, fahren Sie auf der äußersten linken Fahrspur“ eine niedrigere Priorität haben als „falls sich eine Ausfahrt innerhalb eines Kilometers nähert, fahren Sie auf der äußersten rechten Fahrspur“.
-
10 zeigt einen gerichteten Graphen 1000, der bei der Wegplanung verwendet wird, z. B. durch das Planungsmodul 404 (4). Im Allgemeinen wird ein gerichteter Graph 1000 wie der in 10 gezeigte verwendet, um einen Weg zwischen einem beliebigen Startpunkt 1002 und einem Endpunkt 1004 zu ermitteln. In der Realität kann die Entfernung, die den Startpunkt 1002 vom Endpunkt 1004 trennt, relativ groß sein (z. B. in zwei verschiedenen Metropolregionen), oder sie kann relativ klein sein (z. B. zwei Kreuzungen, die an einen Häuserblock angrenzen, oder zwei Fahrspuren einer mehrspurigen Straße).
-
In einer Ausführungsform hat der gerichtete Graph 1000 Knoten 1006a-d, die unterschiedliche Orte zwischen dem Startpunkt 1002 und dem Endpunkt 1004 repräsentieren, die von einem AV 100 besetzt werden könnten.
In einigen Beispielen, z. B. wenn Startpunkt 1002 und Endpunkt 1004 unterschiedliche Metropolregionen repräsentieren, repräsentieren die Knoten 1006a-d Segmente von Straßen. In einigen Beispielen, z. B. wenn Startpunkt 1002 und Endpunkt 1004 unterschiedliche Orte an derselben Straße repräsentieren, repräsentieren die Knoten 1006a-d unterschiedliche Positionen an dieser Straße.
Auf diese Weise enthält der gerichtete Graph 1000 Informationen bei unterschiedlichen Granularitätsstufen. In einer Ausführungsform ist ein gerichteter Graph mit hoher Granularität auch ein Teilgraph eines weiteren gerichteten Graphen mit einem größeren Maßstab. Beispielsweise hat ein gerichteter Graph, bei dem Startpunkt 1002 und Endpunkt 1004 weit entfernt sind (z. B. viele Kilometer auseinander), einen Großteil seiner Informationen bei einer niedrigen Granularität und ist auf gespeicherten Daten basiert, enthält aber auch einige Informationen von hoher Granularität für den Teil des Graphen, der physische Orte im Sichtfeld des AV 100 repräsentiert.
-
Die Knoten 1006a-d sind von den Objekten 1008a-b verschieden, die nicht mit einem Knoten überlappen können. In einer Ausführungsform, bei der die Granularität niedrig ist, repräsentieren die Objekte 1008a-b Regionen, die nicht von einem Automobil befahren werden können, z. B. Gebiete, die keine Stadtstraßen oder Fernstraßen aufweisen. Wenn die Granularität hoch ist, repräsentieren die Objekte 1008a-b physische Objekte im Sichtfeld des AV 100, z. B. andere Automobile, Fußgänger oder sonstige Entitäten, mit denen das AV 100 keinen physischen Raum teilen kann. In einer Ausführungsform sind einige oder alle der Objekte 1008a-b statische Objekte (z. B. ein Objekt, das seine Position nicht ändert, wie etwa eine Straßenlaterne oder ein Strommast) oder dynamische Objekte (z. B. ein Objekt, das fähig ist, seine Position zu ändern, wie etwa ein Fußgänger oder ein anderes Auto).
-
Die Knoten 1006a-d sind durch die Kanten 1010a-c verbunden. Wenn zwei Knoten 1006a-b durch eine Kante 1010a verbunden sind, ist es für ein AV 100 möglich, zwischen dem einen Knoten 1006a und dem anderen Knoten 1006b zu fahren, z. B. ohne zu einem Zwischenknoten fahren zu müssen, bevor es an dem anderen Knoten 1006b ankommt. (Wenn wir von einem AV 100 sprechen, das zwischen Knoten fährt, meinen wir, dass das AV 100 zwischen zwei physischen Positionen fährt, die durch die jeweiligen Knoten repräsentiert werden.) Die Kanten 1010a-c sind oft bidirektional in dem Sinne, dass ein AV 100 von einem ersten Knoten zu einem zweiten Knoten bzw. von dem zweiten Knoten zu dem ersten Knoten fährt. In einer Ausführungsform sind die Kanten 1010a-c unidirektional in dem Sinne, dass ein AV 100 von einem ersten Knoten zu einem zweiten Knoten fahren kann, dass das AV 100 aber nicht von dem zweiten Knoten zu dem ersten Knoten fahren kann. Die Kanten 1010a-c sind unidirektional, wenn sie zum Beispiel Einbahnstraßen, individuelle Fahrspuren einer Stadtstraße, Fernstraße oder Autobahn oder andere Merkmale repräsentieren, die aufgrund gesetzlicher oder physischer Einschränkungen nur in einer Richtung befahren werden können.
-
In einer Ausführungsform verwendet das Planungsmodul 404 den gerichteten Graphen 1000, um einen Weg 1012 zu identifizieren, der aus Knoten und Kanten zwischen dem Startpunkt 1002 und dem Endpunkt 1004 besteht.
-
Eine Kante 1010a-c hat einen damit verbundenen Preis 1014a-b. Der Preis 1014a-b ist ein Wert, der die Ressourcen repräsentiert, die aufgewendet werden, falls das AV 100 die betreffende Kante wählt. Eine typische Ressource ist Zeit.
Wenn beispielsweise eine Kante 1010a eine physische Entfernung repräsentiert, die zweimal so groß wie eine andere Kante 1010b ist, dann kann der mit der ersten Kante 1010a verbundene Preis 1014a zweimal so hoch wie der mit der zweiten Kante 1010b verbundene Preis 1014b sein. Andere Faktoren, welche die Zeit beeinflussen, schließen unerwarteten Verkehr, die Anzahl von Kreuzungen, Geschwindigkeitsbegrenzung usw. ein. Eine weitere typische Ressource ist Kraftstoffeinsparung. Die beiden Kanten 1010a-b mögen zwar die gleiche physische Entfernung repräsentieren, doch die Kante 1010a mag mehr Kraftstoff erfordern als die andere Kante 1010b, z. B. aufgrund der Straßenverhältnisse, der zu erwartenden Witterungsverhältnisse usw.
-
Wenn das Planungsmodul 404 einen Weg 1012 zwischen dem Startpunkt 1002 und dem Endpunkt 1004 identifiziert, wählt das Planungsmodul 404 typischerweise einen für Kosten optimierten Weg, z. B. den Weg, der die geringsten Gesamtkosten hat, wenn die individuellen Kosten der Kanten zusammengezählt werden.
-
Steuerung des autonomen Fahrzeugs
-
11 zeigt ein Blockdiagramm 1100 der Eingaben und Ausgaben eines Steuermoduls 406 (z. B. wie in 4 gezeigt). Ein Steuermodul arbeitet im Einklang mit einem Controller 1102, der zum Beispiel einen oder mehrere Prozessoren (z. B. einen oder mehrere Computerprozessoren, wie etwa Mikroprozessoren oder Mikrocontroller oder beides) ähnlich dem Prozessor 304, kurzfristige und/oder langfristige Datenspeicherung (z. B. Direktzugriffsspeicher oder Flash-Speicher oder beides) ähnlich dem Hauptspeicher 306, ROM 1308, eine Speichervorrichtung 210 und in dem Speicher gespeicherte Anweisungen umfasst, die Operationen des Controllers 1102 ausführen, wenn die Anweisungen ausgeführt werden (z. B. durch einen oder mehrere Prozessoren).
-
In einer Ausführungsform empfängt der Controller 1102 Daten, die eine gewünschte Ausgabe 1104 repräsentieren. Die gewünschte Ausgabe 1104 enthält typischerweise eine Geschwindigkeit, z. B. eine Fahrgeschwindigkeit, und einen Kurs. Die gewünschte Ausgabe 1104 kann zum Beispiel auf Daten basiert sein, die von einem Planungsmodul 404 empfangen werden (z. B. wie in 4 gezeigt). Im Einklang mit der gewünschten Ausgabe 1104 produziert der Controller 1102 Daten, die als Drosseleingabe 1106 und Lenkungseingabe 1108 verwendbar sind. Die Drosseleingabe 1106 repräsentiert die Größe, mit der die Drossel (z. B. Beschleunigungssteuerung) eines AV 100 zu betätigen ist, z. B. durch Betätigen des Fahrpedals oder einer anderen Drosselsteuerung, um die gewünschte Ausgabe 1104 zu erzielen. In einigen Beispielen enthält die Drosseleingabe 1106 auch Daten, die zum Betätigen der Bremse (z. B. Verzögerungssteuerung) des AV 100 verwendbar sind. Die Lenkungseingabe 1108 repräsentiert einen Lenkwinkel, z. B. den Winkel, auf den die Lenkungsbetätigung (z. B. Lenkrad, Lenkwinkelaktuator oder eine andere Funktionalität zum Steuern des Lenkwinkels) zu positionieren ist, um die gewünschte Ausgabe 1104 zu erzielen.
-
In einer Ausführungsform empfängt der Controller 1102 Rückmeldungen, die zum Anpassen der Eingaben verwendet werden, die der Drossel und Lenkung zugeführt werden. Falls das AV 100 beispielsweise auf eine Störung 1110, wie etwa eine Steigung, trifft, wird die gemessene Geschwindigkeit 1112 des AV 100 unter die gewünschte Ausgangsgeschwindigkeit abgesenkt. In einer Ausführungsform wird jede gemessene Ausgabe 1114 zu dem Controller 1102 geliefert, so dass die notwendigen Anpassungen durchgeführt werden, z. B. auf der Basis der Differenz 1113 zwischen der gemessenen Geschwindigkeit und der gewünschten Ausgabe. Die gemessene Ausgabe 1114 umfasst die gemessene Position 1116, die gemessene Geschwindigkeit 1118, (einschließlich Fahrgeschwindigkeit und Kurs), die gemessene Beschleunigung 1120 und andere Ausgaben, die von den Sensoren des AV 100 messbar sind.
-
In einer Ausführungsform werden Informationen über die Störung 1110 im Voraus erfasst, z. B. durch einen Sensor wie etwa eine Kamera oder einen LiDAR-Sensor, und einem prädiktiven Feedbackmodul 1122 zugeführt. Daraufhin führt das prädiktive Feedbackmodul 1122 Informationen dem Controller 1102 zu, die der Controller 1102 verwenden kann, um entsprechende Anpassungen vorzunehmen. Wenn beispielsweise die Sensoren des AV 100 eine Steigung erkennen („sehen“), können diese Informationen von dem Controller 1102 verwendet werden, um die Betätigung der Drossel zum geeigneten Zeitpunkt vorzubereiten, um eine erhebliche Verzögerung zu vermeiden.
-
12 zeigt ein Blockdiagramm 1200 der Eingaben, Ausgaben und Komponenten des Controllers 1102. Der Controller 1102 besitzt einen Geschwindigkeitsprofiler 1202, der den Betrieb eines Drossel-Bremsreglers 1204 beeinflusst. Beispielsweise weist der Geschwindigkeitsprofiler 1202 den Drossel-Bremsregler 1204 an, eine Beschleunigung oder Verzögerung durch die Drossel/Bremse 1206 zu bewirken, abhängig z. B. von der Rückmeldung, die von dem Controller 1102 empfangen und durch den Geschwindigkeitsprofiler 1202 verarbeitet wird.
-
Der Controller 1102 weist auch einen Spurhalteregler 1208 auf, der den Betrieb eines Lenkcontrollers 1210 beeinflusst. Beispielsweise weist der Spurhalteregler 1208 den Lenkcontroller 1210 an, die Position des Lenkwinkelaktuators 1212 z. B. abhängig von der Rückmeldung, die von dem Controller 1102 empfangen und durch den Spurhalteregler 1208 verarbeitet wird, einzustellen.
-
Der Controller 1102 empfängt mehrere Eingaben, die verwendet werden, um zu bestimmen, wie Drossel/Bremse 1206 und Lenkwinkelaktuator 1212 zu steuern sind. Ein Planungsmodul 404 liefert von dem Controller 1102 verwendete Informationen, um zum Beispiel einen Kurs zu wählen, wenn das AV 100 den Betrieb beginnt, und um zu bestimmen, welches Straßensegment zu befahren ist, wenn das AV 100 eine Kreuzung erreicht. Ein Lokalisierungsmodul 408 liefert Informationen zu dem Controller 1102, die zum Beispiel die aktuelle Position des AV 100 beschreiben, so dass der Controller 1102 ermitteln kann, ob sich das AV 100 an einem erwarteten Ort befindet, basierend auf der Weise, in der die Drossel/Bremse 1206 und der Lenkwinkelaktuator 1212 gesteuert werden.
In einer Ausführungsform empfängt der Controller 1102 Informationen von anderen Eingaben 1214, z. B. von Datenbanken, Computernetzen usw. empfangene Informationen.
-
Lokalisierung basierend auf vordefinierten Merkmalen der Umgebung
-
Zu 1 zurückkehrend, weisen einige Bereiche der Umgebung 190 vordefinierte Merkmale 195 auf.
-
In einigen Ausführungsformen schließen die vordefinierten Merkmale 195 das strukturelle Muster der Fahrbahnoberfläche ein (z. B. Rillen oder Vertiefungen in der Fahrbahnoberfläche, die entlang der Länge der Fahrbahn variieren). In einigen Ausführungsformen ist das strukturelle Muster in die Fahrbahnoberfläche eingraviert. In einigen Ausführungsformen schließen die vordefinierten Merkmale 195 vordefinierte Standortmarker (z. B. Fahnen) ein, die entlang einer Fahrbahn positioniert sind. In einigen Ausführungsformen identifizieren die vordefinierten Standortmarker Orte entlang der Fahrbahn, an denen die vordefinierten Standortmarker positioniert sind.
-
Die vordefinierten Merkmale 195 werden in Bereichen der Umgebung 190 verwendet, wo Lokalisierung mittels bestimmter Quellen (z. B. Kameras 122, LiDAR 123 und/oder GPS) eventuell nicht zuverlässig oder verfügbar sind. Diese Bereiche der Umgebung 190 können Bereiche einschließen, in denen GPS-Signale nicht erfassbar sind, und/oder Bereiche mit sich wiederholenden Merkmalen, die nicht erkennbar sind, wie z. B. Tunnel und Brücken.
Beispielsweise können die Wände eines Tunnels aus sich wiederholenden Betonplatten ohne erkennbare Merkmale bestehen, oder die Seiten einer Brücke können aus sich wiederholenden Aufhängungsdrähten ohne erkennbare Merkmale bestehen.
-
Genauer gesagt, das AV-System 120 verwendet die vordefinierten Merkmale 195, wenn die von anderen Quellen empfangenen Lokalisierungsdaten ein Genauigkeitskriterium nicht erfüllen.
-
In einigen Ausführungsformen wird das Genauigkeitskriterium nicht erfüllt, wenn Lokalisierungsdaten überhaupt nicht oder nur von einer Quelle verfügbar sind (z. B. nur LiDAR und nicht GPS). In einigen Ausführungsformen wird das Genauigkeitskriterium nicht erfüllt, wenn unterschiedliche Quellen unterschiedliche ungefähre Positionen für das AV 100 angeben. In einigen Ausführungsformen werden zwei ungefähre Positionen als unterschiedlich betrachtet, falls der Abstand zwischen ihnen einen Schwellenabstand überschreitet. Der Schwellenabstand kann auf einer geschätzten Positionsauflösung basieren, die Faktoren wie z. B. Sensorauflösung, Datenlatenz usw. ausmacht. Anders ausgedrückt, in einigen Ausführungsformen werden zwei geschätzte Positionen als die gleichen betrachtet, um das Genauigkeitskriterium zu erfüllen, falls der Abstand zwischen ihnen den Schwellenabstand nicht überschreitet.
-
Die vordefinierten Merkmale 195 werden von dem AV-System 120 verwendet, um eine geschätzte Position des AV 100 zu bestimmen. In einigen Ausführungsformen schließen die vordefinierten Merkmale 195 einen vordefinierten Standortmarker ein, der einen Ort entlang der Fahrbahn identifiziert, an dem der vordefinierte Standortmarker positioniert ist. Wenn das AV-System 120 den vordefinierten Standortmarker erkennt, verwendet das AV-System 120 den durch den vordefinierten Standortmarker identifizierten Ort, um eine geschätzte Position des AV 100 zu bestimmen.
In einigen Ausführungsformen schließen die vordefinierten Merkmale 195 strukturelle Muster entlang der Fahrbahnoberfläche ein, die durch das AV-System 120 identifizierbar sind (z. B. durch Verwendung von Hochfrequenz-RADAR). Nach der Erkennung eines strukturellen Musters vergleicht das AV-System 120 das erkannte strukturelle Muster mit einer Datenbank von strukturellen Mustern mit bekannten Orten. Falls das erkannte strukturelle Muster mit einem entsprechenden strukturellen Muster in der Datenbank übereinstimmt, dann verwendet das AV-System den bekannten Ort des entsprechenden strukturellen Musters in der Datenbank, um eine geschätzte Position des AV 100 bereitzustellen. In einigen Ausführungsformen sind die strukturellen Muster in der Fahrbahnoberfläche manuell eingraviert und haben vordefinierte Muster. In einigen Ausführungsformen sind die strukturellen Muster in der Fahrbahnoberfläche natürlich auftretende Variationen in der Fahrbahnoberfläche, die z. B. bereits früher abgebildet und in der Datenbank von strukturellen Mustern gespeichert worden sind.
-
In einigen Ausführungsformen, zusätzlich oder alternativ zu den vordefinierten Merkmalen 195, verfolgt das AV-System 120 die Bewegung des AV 100, um eine geschätzte Position des AV 100 bereitzustellen, wenn andere Quellen nicht verfügbar oder unzuverlässig sind (z. B. wenn die anderen Quellen das Genauigkeitskriterium nicht erfüllen). Das AV-System 120 erkennt die Bewegung des AV 100 (z. B. mit Sensoren 121 (z. B. IMU), mit Zeit- und Entfernungsmessungen) und schätzt die Position des AV 100 auf der Basis der erkannten Bewegung. In einigen Ausführungsformen verfolgt das AV-System 120 die Bewegung des AV 100 relativ zu einem Objekt mit einer bekannten Position (z. B. dem Eingang eines Tunnels oder einer Brücke).
-
In Bereichen, in denen die Lokalisierungsdaten verfügbar und zuverlässig sind (z. B. wo GPS-Signale empfangen werden und die Fahrbahn annotierte Merkmale aufweist, die von LiDAR 123 oder Kameras 122 erfasst werden), sind möglicherweise keine vordefinierten Merkmale 195 in dem Bereich enthalten. Stattdessen verwendet das AV-System 120 die Lokalisierungsdaten von den oben erörterten Quellen (z. B. Kameras 122, LiDAR 123 und/oder GPS). Solange die Lokalisierungsdaten das Genauigkeitskriterium erfüllen, liefert das AV-System 120 eine geschätzte Position des AV 100 unter Verwendung der von diesen Quellen empfangenen Lokalisierungsdaten.
-
Beispielhafter Prozess zum Bereitstellen einer geschätzten Position basierend auf vordefinierten Merkmalen der Umgebung
-
13 ist ein Flussdiagramm eines beispielhaften Prozesses 1300 zum Bereitstellen einer geschätzten Position eines autonomen Fahrzeugs basierend auf vordefinierten Merkmalen der Umgebung. Der Einfachheit halber wird der Prozess 1300 als von einem System von einem oder mehreren Computern durchgeführt beschrieben, die sich an einem oder mehreren Orten befinden. Beispielsweise kann das AV-System 120 von 1 (oder Teile davon), das im Einklang mit dieser Spezifikation entsprechend programmiert ist, den Prozess 1300 durchführen.
-
Bei Block 1302, während sich das System (z. B. AV-System 120) in einem ersten Lokalisierungsmodus (z. B. auf einer kartierten Fahrbahn mit annotierten Merkmalen) befindet, empfängt das System Lokalisierungsdaten (z. B. von Sensoren 121 (z. B. GPS), Kameras 122 oder LiDAR 123). In einigen Ausführungsformen beinhaltet das Empfangen der Lokalisierungsdaten, während im ersten Lokalisierungsmodus befindlich, das Empfangen von GPS-Signalen. In einigen Ausführungsformen beinhaltet das Empfangen der Lokalisierungsdaten, während im ersten Lokalisierungsmodus befindlich, das Erkennen eines Wahrzeichens (z. B. Gebäude, Straßenschilder) in der Umgebung des Fahrzeugs und das Bestimmen einer Position des Wahrzeichens.
-
Bei Block 1304 ermittelt das System, ob die Lokalisierungsdaten ein Genauigkeitskriterium erfüllen (z. B. Anzahl/Art der Quellen, die Lokalisierungsdaten liefern, Übereinstimmung zwischen Quellen der ungefähren Position des Fahrzeugs (z. B. die Quellen liefern geschätzte Positionen, die sich innerhalb eines Schwellenabstands voneinander befinden)).
-
Bei Block 1306, falls das Genauigkeitskriterium erfüllt ist (z. B. wenn die Lokalisierungsdaten von mindestens zwei Quellen stammen und die Quellen die gleiche ungefähre Position liefern), liefert das System eine geschätzte Position eines Fahrzeugs, basierend zumindest teilweise auf den bei Block 1302 empfangenen Lokalisierungsdaten. In einigen Ausführungsformen beinhaltet das Bereitstellen der geschätzten Position des Fahrzeugs, basierend zumindest teilweise auf den empfangenen Lokalisierungsdaten, das Bereitstellen der geschätzten Position des Fahrzeugs, basierend zumindest teilweise auf den empfangenen GPS-Signalen. In einigen Ausführungsformen beinhaltet das Bereitstellen der geschätzten Position des Fahrzeugs, basierend zumindest teilweise auf den empfangenen Lokalisierungsdaten, das Bereitstellen der geschätzten Position des Fahrzeugs, basierend zumindest teilweise auf der Position des Wahrzeichens.
-
Bei Block 1308, falls das Genauigkeitskriterium erfüllt ist (z. B. wenn die Lokalisierungsdaten von mindestens zwei Quellen stammen und die Quellen die gleiche ungefähre Position liefern), verbleibt das System im ersten Lokalisierungsmodus (z. B. das System empfängt weiterhin Lokalisierungsdaten wie in Block 1302).
-
Bei Block 1310, falls das Genauigkeitskriterium nicht erfüllt ist (z. B. wenn die Lokalisierungsdaten nur von einer einzigen Quelle stammen (z. B. nur Bilddaten ohne GPS-Daten)), schaltet das System auf einen zweiten Lokalisierungsmodus um. In einigen Ausführungsformen wird das Genauigkeitskriterium nicht erfüllt, wenn die empfangenen Lokalisierungsdaten angeben, dass sich das Fahrzeug auf einer Fahrbahn mit sich wiederholenden Merkmalen befindet (z. B. in einem Tunnel oder auf einer Brücke). Beispielsweise können die Wände eines Tunnels aus sich wiederholenden Betonplatten ohne erkennbare Merkmale bestehen, oder die Seiten einer Brücke können aus sich wiederholenden Aufhängungsdrähten ohne erkennbare Merkmale bestehen, die einen Sensor daran hindern können, eine Position von einer anderen zu unterscheiden, so dass das System daran gehindert wird, die spezielle Position anhand der Daten von dem betreffenden Sensor zu identifizieren.
-
Bei Block 1312, während sich das System im zweiten Lokalisierungsmodus befindet, erfasst das System ein oder mehrere vordefinierte Merkmale (z. B. 195) (z. B. Straßenoberfläche, vorinstallierte Marker) der Umgebung des Fahrzeugs (z. B. mit Kameras 122, LiDAR 123, RADAR oder Ultraschallsensoren). In einigen Ausführungsformen schließen die ein oder mehreren vordefinierten Merkmale ein strukturelles Muster einer Fahrbahnoberfläche ein (z. B. Rillen oder Vertiefungen in der Fahrbahnoberfläche, die entlang der Länge der Fahrbahn variieren). In einigen Ausführungsformen erfasst das System das strukturelle Muster der Fahrbahnoberfläche mit Hilfe einer Hochfrequenz-Radarvorrichtung. In einigen Ausführungsformen enthält das strukturelle Muster der Fahrbahnoberfläche vorbestimmte Muster, die in die Fahrbahnoberfläche eingraviert sind. In einigen Ausführungsformen schließen die ein oder mehreren vordefinierten Merkmale vordefinierte Standortmarker (z. B. Fahnen) ein, die entlang einer Fahrbahn positioniert sind. In einigen Ausführungsformen identifiziert ein entsprechender vordefinierter Standortmarker eine Position entlang der Fahrbahn, an welcher der entsprechende vordefinierte Standortmarker positioniert ist (z. B. der Standortmarker weist eine Angabe (Symbol, Nummer usw.) seiner Position auf, die ihn von anderen Markern in unterschiedlichen Positionen unterscheidet). In einigen Ausführungsformen, während sich das System im zweiten Lokalisierungsmodus befindet, erfasst das System die Bewegung des Fahrzeugs (z. B. mit Sensoren 121 (z. B. IMU), Zeit- und Entfernungsmessungen).
-
Bei Block 1314, während sich das System im zweiten Lokalisierungsmodus befindet, liefert das System die geschätzte Position des Fahrzeugs basierend auf den ein oder mehreren vordefinierten Merkmalen der Umgebung des Fahrzeugs (z. B. ohne Lokalisierungsdaten vom ersten Lokalisierungsmodus). In einigen Ausführungsformen beinhaltet das Bereitstellen der geschätzten Position des Fahrzeugs, basierend auf den ein oder mehreren vordefinierten Merkmalen der Umgebung des Fahrzeugs, das Bereitstellen der geschätzten Position des Fahrzeugs ohne Verwendung von GPS-Signalen.
In einigen Ausführungsformen beinhaltet das Bereitstellen der geschätzten Position des Fahrzeugs, basierend auf den ein oder mehreren vordefinierten Merkmalen der Umgebung des Fahrzeugs, das Bereitstellen der geschätzten Position des Fahrzeugs, basierend auf der erfassten Bewegung des Fahrzeugs (z. B. mit Sensoren 121 (z. B. IMU), Zeit- und Entfernungsmessungen) und den ein oder mehreren vordefinierten Merkmalen der Umgebung des Fahrzeugs. In einigen Ausführungsformen beinhaltet das Bereitstellen der geschätzten Position des Fahrzeugs das Bestimmen, basierend auf der erfassten Bewegung des Fahrzeugs (z. B. mit Sensoren 121 (z. B. IMU), Zeit- und Entfernungsmessungen), einer relativen Position des Fahrzeugs in Bezug auf eine Struktur mit einer bekannten Position (z. B. Eingang zu einem Tunnel oder einer Brücke).
-
In der vorstehenden Beschreibung sind Ausführungsformen der Erfindung unter Bezugnahme auf zahlreiche spezifische Details beschrieben worden, die von einer Implementierung zur anderen variieren können.
-
Die Beschreibungen und Zeichnungen sind dementsprechend vielmehr in einem illustrativen als einem einschränkenden Sinn zu betrachten. Der einzige und exklusive Indikator des Umfangs der Erfindung, und was von den Antragstellern als Umfang der Erfindung beabsichtigt ist, ist der wörtliche und gleichwertige Umfang des Satzes von Ansprüchen, die aus dieser Anmeldung hervorgehen, in der spezifischen Form, in der solche Ansprüche herauskommen, einschließlich einer etwaigen nachfolgenden Korrektur. Jegliche Definitionen, die hierin für die in solchen Ansprüchen enthaltenen Begriffe ausdrücklich dargelegt werden, sollen die Bedeutung solcher Begriffe, wie sie in den Ansprüchen verwendet werden, regeln. Darüber hinaus, wenn wir den Ausdruck „ferner umfassend“ in der vorstehenden Beschreibung oder den folgenden Ansprüchen verwenden, so kann das, was diesem Ausdruck folgt, ein zusätzlicher Schritt oder eine Entität oder ein Teilschritt/eine Teilentität eines Schritts oder einer Entität sein, der (die) vorher genannt worden ist.