-
Querverweise auf verwandte Anmeldungen
-
Diese Anmeldung beansprucht den Vorteil der Priorität der vorläufigen
US-Anmeldung Nr. 62/957.000 , eingereicht am 3. Januar 2020, und der vorläufigen US-Anmeldung Nr. 63/082.619, eingereicht am 24. September 2020. Die vorstehenden Anmeldungen sind hier durch Bezugnahme vollständig mit aufgenommen.
-
HINTERGRUND
-
Technisches Gebiet
-
Die vorliegende Offenbarung bezieht sich allgemein auf autonome Fahrzeugnavigation.
-
Hintergrundinformationen
-
Mit dem weiteren Fortschritt der Technologie rückt das Ziel eines vollständig autonomen Fahrzeugs, das in der Lage ist, auf Straßen zu navigieren, in greifbare Nähe. Autonome Fahrzeuge müssen unter Umständen eine Vielzahl von Faktoren berücksichtigen und basierend auf diesen Faktoren geeignete Entscheidungen treffen, um ein vorgesehenes Ziel sicher und genau zu erreichen. Ein autonomes Fahrzeug muss möglicherweise visuelle Informationen (z. B. von einer Kamera aufgenommene Informationen) verarbeiten und interpretieren und kann auch Informationen, die aus anderen Quellen (z. B. von einer GPS-Einheit, einem Geschwindigkeitssensor, einem Beschleunigungsmesser, einem Radaufhängungssensor usw.) erhalten werden, verwenden. Gleichzeitig muss ein autonomes Fahrzeug möglicherweise auch seinen Ort innerhalb einer speziellen Fahrbahn (z. B. eine spezifische Spur auf einer mehrspurigen Straße) identifizieren, neben anderen Fahrzeugen navigieren, Hindernissen und Fußgängern ausweichen, Verkehrssignale und Schilder beachten und an geeigneten Kreuzungen oder Einmündungen von einer Straße auf eine andere Straße fahren, um zu einem Ziel zu navigieren. Nutzen und Interpretieren großer Mengen an Informationen, die durch ein autonomes Fahrzeug gesammelt werden, wenn das Fahrzeug zu seinem Ziel fährt, stellen eine Vielzahl von Herausforderungen an die Konstruktion. Die schiere Menge an Daten (z. B. aufgenommene Bilddaten, Kartendaten, GPS-Daten, Sensordaten usw.), die ein autonomes Fahrzeug möglicherweise analysieren und/oder auf die sie zugreifen und/oder die sie speichern muss, stellt eine Herausforderung dar, die in der Tat eine autonome Navigation einschränken oder sogar nachteilig beeinflussen kann. Darüber hinaus stellt, falls ein autonomes Fahrzeug auf herkömmliche Kartentechnologie angewiesen ist, um zu navigieren, die schiere Datenmenge, die zum Speichern und Aktualisieren der Karte benötigt wird, eine gewaltige Herausforderung dar.
-
KURZDARSTELLUNG
-
Ausführungsformen, die mit der vorliegenden Offenbarung konsistent sind, stellen Systeme und Verfahren zur autonomen Fahrzeugnavigation bereit. Die offenbarten Ausführungsformen können Kameras verwenden, um Merkmale der autonomen Fahrzeugnavigation bereitzustellen. Konsistent mit den offenbarten Ausführungsformen können die offenbarten Systeme beispielsweise eine, zwei oder mehr Kameras enthalten, die die Umgebung eines Fahrzeugs überwachen. Die offenbarten Systeme können eine Navigationsantwort bereitstellen, die beispielsweise auf einer Analyse von durch eine oder mehrere Kameras aufgenommenen Bildern basiert.
-
In einer Ausführungsform enthält ein Navigationssystem für ein Trägerfahrzeug wenigstens einen Prozessor, der programmiert ist, wenigstens einen Indikator für die Eigenbewegung des Trägerfahrzeugs zu bestimmen. Der wenigstens eine Prozessor kann auch programmiert sein, von einem LIDAR-System, das dem Trägerfahrzeug zugeordnet ist, und basierend auf einer ersten LIDAR-Abtastung eines Sichtfeldes des LIDAR-Systems eine erste Punktwolke, die eine erste Repräsentation wenigstens eines Abschnitts eines Objekts enthält, zu empfangen. Der wenigstens eine Prozessor kann ferner programmiert sein, von einem LIDAR-System, das dem Trägerfahrzeug zugeordnet ist, und basierend auf einer ersten LIDAR-Abtastung eines Sichtfeldes des LIDAR-Systems eine erste Punktwolke, die eine erste Repräsentation wenigstens eines Abschnitts eines Objekts enthält, zu empfangen. Der wenigstens eine Prozessor kann auch programmiert sein, von dem LIDAR-System und basierend auf einer zweiten LIDAR-Abtastung des Sichtfelds des LIDAR-Systems eine zweite Punktwolke, die eine zweite Repräsentation des wenigstens einen Abschnitts des Objekts enthält, zu empfangen. Der wenigstens eine Prozessor kann ferner programmiert sein, eine Geschwindigkeit des Objekts basierend auf dem wenigstens einen Indikator für die Eigenbewegung des Trägerfahrzeugs und basierend auf einem Vergleich der ersten Punktwolke, die die erste Repräsentation des wenigstens einen Abschnitts des Objekts enthält, und der zweiten Punktwolke, die die zweite Repräsentation des wenigstens einen Abschnitts des Objekts enthält, zu bestimmen.
-
In einer Ausführungsform kann ein Verfahren zum Detektieren eines Objekts in einer Umgebung eines Trägerfahrzeugs das Bestimmen wenigstens eines Indikators für die Eigenbewegung des Trägerfahrzeugs enthalten. Das Verfahren kann auch das Empfangen von einem LIDAR-System, das dem Trägerfahrzeug zugeordnet ist, und basierend auf einer ersten LIDAR-Abtastung eines Sichtfeldes des LIDAR-Systems einer ersten Punktwolke, die eine erste Repräsentation wenigstens eines Abschnitts eines Objekts enthält, enthalten. Das Verfahren kann ferner das Empfangen von dem LIDAR-System und basierend auf einer zweiten LIDAR-Abtastung des Sichtfelds des LIDAR-Systems einer zweiten Punktwolke, die eine zweite Repräsentation des wenigstens einen Abschnitts des Objekts enthält, enthalten. Das Verfahren kann außerdem das Bestimmen einer Geschwindigkeit des Objekts basierend auf dem wenigstens einen Indikator für die Eigenbewegung des Trägerfahrzeugs und basierend auf einem Vergleich der ersten Punktwolke, die die erste Repräsentation des wenigstens einen Abschnitts des Objekts enthält, und der zweiten Punktwolke, die die zweite Repräsentation des wenigstens einen Abschnitts des Objekts enthält, enthalten.
-
In einer Ausführungsform kann ein Navigationssystem für ein Trägerfahrzeug wenigstens einen Prozessor enthalten, der programmiert ist, von einer relativ zu einem Fahrzeug entfernten Entität eine dünn besetzte Karte, die wenigstens einem durch das Fahrzeug zu durchfahrenden Straßensegment zugeordnet ist, zu empfangen. Die dünn besetzte Karte kann mehrere kartierten Navigationsorientierungspunkte und wenigstens eine Sollbewegungsbahn enthalten. Sowohl die mehreren kartierten Navigationsorientierungspunkte als auch die wenigstens eine Sollbewegungsbahn können basierend auf Fahrtinformationen erzeugt werden, die von mehreren Fahrzeugen, die zuvor das wenigstens ein Straßensegment durchfahren haben, gesammelt wurden. Der wenigstens eine Prozessor kann auch programmiert sein, Punktwolkeninformationen von einem Lidar-System an Bord des Fahrzeugs zu empfangen. Die Punktwolkeninformationen können repräsentativ für die Abstände zu verschiedenen Objekten in einer Umgebung des Fahrzeugs sein. Der wenigstens eine Prozessor kann ferner programmiert sein, die empfangenen Punktwolkeninformationen mit wenigstens einer der mehreren kartierten Navigationsorientierungspunkte in der dünn besetzten Karte zu vergleichen, um eine Lidar-basierte Ortsbestimmung des Fahrzeugs relativ zu der wenigstens einen Sollbewegungsbahn bereitzustellen. Der wenigstens eine Prozessor kann auch programmiert sein, wenigstens eine Navigationsaktion für das Fahrzeug basierend auf der Lidar-basierten Ortsbestimmung des Fahrzeugs relativ zu der wenigstens einen Sollbewegungsbahn zu bestimmen. Der wenigstens eine Prozessor kann ferner programmiert sein, die wenigstens eine durch das Fahrzeug auszuführende Navigationsaktion zu veranlassen.
-
In einer Ausführungsform kann ein Verfahren zum Steuern eines Navigationssystems für ein Trägerfahrzeug das Empfangen einer dünn besetzten Karte, die wenigstens einem durch das Fahrzeug zu durchfahrenden Straßensegment zugeordnet ist, von einer relativ zu einem Fahrzeug entfernt angeordneten Entität enthalten. Die dünn besetzte Karte kann mehrere kartierten Navigationsorientierungspunkte und wenigstens eine Sollbewegungsbahn enthalten. Sowohl die mehreren kartierten Navigationsorientierungspunkte als auch die wenigstens eine Sollbewegungsbahn können basierend auf Fahrtinformationen erzeugt werden, die von mehreren Fahrzeugen, die zuvor das wenigstens ein Straßensegment durchfahren haben, gesammelt wurden. Das Verfahren kann außerdem das Empfangen von Punktwolkeninformationen von einem Lidar-System an Bord des Fahrzeugs enthalten. Die Punktwolkeninformationen sind repräsentativ für die Abstände zu verschiedenen Objekten in einer Umgebung des Fahrzeugs. Das Verfahren kann außerdem das Vergleichen der empfangenen Punktwolkeninformationen mit wenigstens einer der mehreren kartierten Navigationsorientierungspunkte in der dünn besetzten Karte, um eine Lidar-basierte Ortsbestimmung des Fahrzeugs relativ zu der wenigstens einen Sollbewegungsbahn bereitzustellen, enthalten. Das Verfahren kann ferner das Bestimmen wenigstens einer Navigationsaktion für das Fahrzeug basierend auf der Lidar-basierten Ortsbestimmung des Fahrzeugs relativ zu der wenigstens einen Sollbewegungsbahn enthalten. Das Verfahren kann außerdem das Veranlassen, dass die wenigstens eine Navigationsaktion durch das Fahrzeug ausgeführt wird, enthalten.
-
In einer Ausführungsform kann ein Navigationssystem für ein Trägerfahrzeug wenigstens einen Prozessor enthalten, der programmiert ist, von einer Kamera an Bord des Trägerfahrzeugs wenigstens ein aufgenommenes Bild, das für eine Umgebung des Trägerfahrzeugs repräsentativ ist, zu empfangen. Der wenigstens eine Prozessor kann auch programmiert sein, Punktwolkeninformationen von einem LIDAR-System an Bord des Trägerfahrzeugs zu empfangen. Die Punktwolkeninformationen können repräsentativ für die Abstände zu verschiedenen Objekten in der Umgebung des Trägerfahrzeugs sein. Der wenigstens eine Prozessor kann ferner programmiert sein, die Punktwolkeninformationen mit dem wenigstens einen aufgenommenen Bild zu korrelieren, um Tiefeninformationen pro Pixel für einen oder mehrere Bereiche des wenigstens einen aufgenommenen Bildes bereitzustellen. Der wenigstens eine Prozessor kann außerdem programmiert sein, wenigstens eine Navigationsaktion für das Trägerfahrzeug basierend auf den Tiefeninformationen pro Pixel für einen oder mehrere Bereiche des wenigstens einen aufgenommenen Bildes zu bestimmen und zu veranlassen, dass die wenigstens eine Navigationsaktion durch das Trägerfahrzeug ausgeführt wird.
-
In einer Ausführungsform kann ein Verfahren zum Bestimmen einer Navigationsaktion für ein Trägerfahrzeug das Empfangen von Punktwolkeninformationen von einem LIDAR-System an Bord des Trägerfahrzeugs enthalten. Die Punktwolkeninformationen können repräsentativ für die Abstände zu mehreren Objekten in der Umgebung des Trägerfahrzeugs sein. Das Verfahren kann außerdem das Korrelieren der Punktwolkeninformationen mit dem wenigstens einen aufgenommenen Bild, um Tiefeninformationen pro Pixel für einen oder mehrere Bereiche des wenigstens einen aufgenommenen Bildes bereitzustellen, enthalten. Das Verfahren kann ferner das Bestimmen wenigstens eine Navigationsaktion für das Trägerfahrzeug basierend auf den Tiefeninformationen pro Pixel für einen oder mehrere Bereiche des wenigstens einen aufgenommenen Bildes und das Veranlassen, dass die wenigstens eine Navigationsaktion durch das Trägerfahrzeug ausgeführt wird, enthalten
-
In einer Ausführungsform kann ein Navigationssystem für ein Trägerfahrzeug wenigstens einen Prozessor enthalten, der programmiert ist, von einer Kamera an Bord des Trägerfahrzeugs wenigstens ein aufgenommenes Bild, das für eine Umgebung des Trägerfahrzeugs repräsentativ ist, zu empfangen. Die Kamera kann an einem ersten Ort relativ zu dem Trägerfahrzeug positioniert sein. Der wenigstens eine Prozessor kann auch programmiert sein, Punktwolkeninformationen von einem LIDAR-System an Bord des Trägerfahrzeugs zu empfangen. Die Punktwolkeninformationen können repräsentativ für Abstände zu verschiedenen Objekten in einer Umgebung des Trägerfahrzeugs sein. Das LIDAR-System kann an einem zweiten Ort relativ zu dem Trägerfahrzeug positioniert sein, und der zweite Ort kann von dem ersten Ort verschieden sein. Ein Sichtfeld der Kamera kann ein Sichtfeld des LIDAR-Systems wenigstens teilweise überlappen, um einen gemeinsamen Sichtfeldbereich bereitzustellen. Der wenigstens eine Prozessor kann ferner programmiert sein, das wenigstens eine aufgenommene Bild und die empfangenen Punktwolkeninformationen zu analysieren, um ein oder mehrere Objekte im gemeinsamen Sichtfeldbereich zu detektieren. Das eine oder die mehreren detektierten Objekte können in nur einem aus dem wenigstens einen aufgenommenen Bild oder den empfangenen Punktwolkeninformationen repräsentiert sein. Der wenigstens eine Prozessor kann auch programmiert sein zu bestimmen, ob ein Blickwinkelunterschied zwischen dem ersten Ort der Kamera und dem zweiten Ort des LIDAR-Systems dazu führt, dass das eine oder die mehreren detektierten Objekte nur in einem aus dem wenigstens einen aufgenommenen Bild oder den empfangenen Punktwolkeninformationen repräsentiert sind. Der wenigstens eine Prozessor kann programmiert sein, wenigstens eine Abhilfeaktion zu veranlassen, die auszuführen ist, wenn der nicht Blickwinkelunterschied dazu führt, dass das eine oder die mehreren detektierten Objekte nur in einem aus dem wenigstens einen aufgenommenen Bild oder den empfangenen Punktwolkeninformationen repräsentiert sind. Der wenigstens eine Prozessor kann programmiert sein, basierend auf dem einen oder den mehreren detektierten Objekte wenigstens eine durch das Trägerfahrzeug zu ergreifende Navigationsaktion zu bestimmen und zu veranlassen, dass die wenigstens eine Navigationsaktion durch das Trägerfahrzeug ausgeführt wird, wenn der Blickwinkelunterschied dazu führt, dass das eine oder die mehreren detektierten Objekte nur in einem aus dem wenigstens einen aufgenommenen Bild oder den empfangenen Punktwolkeninformationen repräsentiert sind.
-
In einer Ausführungsform kann ein Verfahren zum Bestimmen einer Navigationsaktion für ein Trägerfahrzeug das Empfangen wenigstens eines aufgenommenen Bildes, das für eine Umgebung des Trägerfahrzeugs repräsentativ ist, von einer Kamera an Bord des Trägerfahrzeugs enthalten. Die Kamera kann an einem ersten Ort relativ zu dem Trägerfahrzeug positioniert sein. Das Verfahren kann außerdem das Empfangen von Punktwolkeninformationen von einem LIDAR-System an Bord des Trägerfahrzeugs enthalten. Die Punktwolkeninformationen können repräsentativ für die Abstände zu verschiedenen Objekten in einer Umgebung des Trägerfahrzeugs sein. Das LIDAR-System kann an einem zweiten Ort relativ zu dem Trägerfahrzeug positioniert sein, und der zweite Ort kann von dem ersten Ort verschieden sein. Ein Sichtfeld der Kamera kann ein Sichtfeld des LIDAR-Systems wenigstens teilweise überlappen, um einen gemeinsamen Sichtfeldbereich bereitzustellen. Das Verfahren kann ferner das Analysieren des wenigstens einen aufgenommenen Bildes und der empfangenen Punktwolkeninformationen, um ein oder mehrere Objekte im gemeinsamen Sichtfeldbereich zu detektieren, enthalten. Das eine oder die mehreren detektierten Objekte können in nur einem aus dem wenigstens einen aufgenommenen Bild oder den empfangenen Punktwolkeninformationen repräsentiert sein. Das Verfahren kann ferner das Bestimmen, ob ein Blickwinkelunterschied zwischen dem ersten Ort der Kamera und dem zweiten Ort des LIDAR-Systems dazu führt, dass das eine oder die mehreren detektierten Objekte nur in einem aus dem wenigstens einen aufgenommenen Bild oder in den empfangenen Punktwolkeninformationen repräsentiert sind, enthalten. Das Verfahren kann ferner dann, wenn nicht der Blickwinkelunterschied dazu führt, dass das eine oder die mehreren erkannten Objekte nur in einem aus dem wenigstens einen aufgenommenen Bild oder den empfangenen Punktwolkeninformationen repräsentiert sind, das Veranlassen, dass wenigstens eine Abhilfeaktion ausgeführt wird, enthalten. Das Verfahren kann auch, falls der Blickwinkelunterschied dazu führt, dass das eine oder die mehreren detektierten Objekte nur in einem aus dem wenigstens einen aufgenommenen Bild oder den empfangenen Punktwolkeninformationen repräsentiert sind, das Bestimmen wenigstens einer Navigationsaktion, die durch das Trägerfahrzeug auszuführen ist, basierend auf dem einen oder den mehreren detektierten Objekten und das Veranlassen, dass die wenigstens eine Navigationsaktion durch das Trägerfahrzeug ausgeführt wird, enthalten.
-
In einer Ausführungsform kann ein Navigationssystem für ein Trägerfahrzeug wenigstens einen Prozessor enthalten, der programmiert ist, von einer mittleren Kamera an Bord des Trägerfahrzeugs wenigstens ein aufgenommenes mittleres Bild, das eine Repräsentation wenigstens eines Abschnitts einer Umgebung des Trägerfahrzeugs enthält, zu empfangen, von einer linken Umgebungskamera an Bord des Trägerfahrzeugs wenigstens ein aufgenommenes linkes Umgebungsbild, das eine Repräsentation wenigstens eines Abschnitts der Umgebung des Trägerfahrzeugs enthält, zu empfangen und von einer rechten Umgebungskamera an Bord des Trägerfahrzeugs wenigstens ein aufgenommenes rechtes Umgebungsbild, das eine Repräsentation wenigstens eines Abschnitts der Umgebung des Trägerfahrzeugs enthält, zu empfangen. Ein Sichtfeld der mittleren Kamera kann sowohl ein Sichtfeld der linken Umgebungskamera als auch ein Sichtfeld der rechten Umgebungskamera wenigstens teilweise überlappen. Der wenigstens eine Prozessor kann auch programmiert sein, das wenigstens eine aufgenommene mittlere Bild, das wenigstens eine aufgenommene linke Umgebungsbild und das wenigstens eine aufgenommene rechte Umgebungsbild für ein Analysemodul bereitzustellen, das konfiguriert ist, basierend auf der Analyse des wenigstens einen aufgenommenen mittleren Bildes, des wenigstens einen aufgenommenen linken Umgebungsbildes und des wenigstens einen aufgenommenen rechten Umgebungsbildes eine Ausgabe in Bezug auf das des wenigstens eine aufgenommene mittlere Bild zu erzeugen. Die erzeugte Ausgabe enthält Tiefeninformationen pro Pixel für wenigstens einen Bereich des aufgenommenen mittleren Bildes. Der wenigstens eine Prozessor kann ferner programmiert sein, wenigstens eine Navigationsaktion durch das Trägerfahrzeugs basierend auf der erzeugten Ausgabe, die die Tiefeninformationen pro Pixel für den wenigstens einen Bereich des aufgenommenen mittleren Bildes enthält, zu veranlassen.
-
In einer Ausführungsform kann ein Verfahren zum Bestimmen einer Navigationsaktion für ein Trägerfahrzeug das Empfangen wenigstens eines aufgenommenen mittleren Bildes, das eine Repräsentation wenigstens eines Abschnitts einer Umgebung des Trägerfahrzeugs enthält, von einer mittleren Kamera an Bord des Trägerfahrzeugs, das Empfangen wenigstens eines aufgenommenen linken Umgebungsbildes, das eine Repräsentation wenigstens eines Abschnitts der Umgebung des Trägerfahrzeugs enthält, von einer linken Umgebungskamera an Bord des Trägerfahrzeugs und das Empfangen wenigstens eines aufgenommenen rechten Umgebungsbildes, das eine Repräsentation wenigstens eines Abschnitts der Umgebung des Trägerfahrzeugs enthält, von einer rechten Umgebungskamera an Bord des Trägerfahrzeugs enthalten. Ein Sichtfeld der mittleren Kamera überlappt wenigstens teilweise sowohl ein Sichtfeld der linken Umgebungskamera als auch ein Sichtfeld der rechten Umgebungskamera. Das Verfahren kann außerdem das Bereitstellen des wenigstens einen aufgenommenen mittleren Bildes, des wenigstens einen aufgenommenen linken Umgebungsbildes und des wenigstens einen aufgenommenen rechten Umgebungsbildes für ein Analysemodul, das konfiguriert ist, basierend auf der Analyse des wenigstens einen aufgenommenen mittleren Bildes, des wenigstens einen aufgenommenen linken Umgebungsbildes und des wenigstens einen aufgenommenen rechten Umgebungsbildes eine Ausgabe in Bezug auf das des wenigstens eine aufgenommene mittlere Bild zu erzeugen, enthalten. Die erzeugte Ausgabe enthält Tiefeninformationen pro Pixel für wenigstens einen Bereich des aufgenommenen mittleren Bildes. Das Verfahren kann ferner das Veranlassen wenigstens einer Navigationsaktion durch das Trägerfahrzeugs basierend auf der erzeugten Ausgabe, die die Tiefeninformationen pro Pixel für den wenigstens einen Bereich des aufgenommenen mittleren Bildes enthält, enthalten.
-
Konsistent mit anderen offenbarten Ausführungsformen können nicht-transitorische, computerlesbare Speichermedien Programmanweisungen speichern, die durch wenigstens eine Verarbeitungsvorrichtung ausgeführt werden und irgendeines der hier beschriebenen Verfahren ausführen.
-
Die vorstehende allgemeine Beschreibung und die folgende ausführliche Beschreibung sind nur beispielhaft und erläuternd und schränken die Ansprüche nicht ein.
-
Figurenliste
-
Die begleitenden Zeichnungen, die in diese Offenbarung aufgenommen sind und einen Teil davon bilden, stellen verschiedene offenbarte Ausführungsformen dar. In den Zeichnungen:
- ist 1 eine schematische Repräsentation eines beispielhaften Systems konsistent mit den offenbarten Ausführungsformen.
- ist 2A eine schematische Repräsentation in Seitenansicht eines beispielhaften Fahrzeugs, das ein System konsistent mit den offenbarten Ausführungsformen enthält.
- ist 2B eine schematische Repräsentation in Draufsicht des Fahrzeugs und Systems, die in 2A gezeigt sind, konsistent mit den offenbarten Ausführungsformen.
- ist 2C eine schematische Repräsentation in Draufsicht einer weiteren Ausführungsform eines Fahrzeugs, das ein System konsistent mit den offenbarten Ausführungsformen enthält.
- ist 2D eine schematische Repräsentation in Draufsicht noch einer weiteren Ausführungsform eines Fahrzeugs, das ein System konsistent mit den offenbarten Ausführungsformen enthält.
- ist 2E eine schematische Repräsentation in Draufsicht noch einer weiteren Ausführungsform eines Fahrzeugs, das ein System konsistent mit den offenbarten Ausführungsformen enthält.
- ist 2F eine schematische Repräsentation beispielhafter Fahrzeugsteuersysteme konsistent mit den offenbarten Ausführungsformen.
- ist 3A eine schematische Repräsentation eines Innenraums eines Fahrzeugs, der einen Rückspiegel und eine Anwenderschnittstelle für ein Fahrzeugbildaufnahmesystem konsistent mit den offenbarten Ausführungsformen enthält.
- ist 3B eine Darstellung eines Beispiels einer Kamerahalterung, die konfiguriert ist, hinter einem Rückspiegel und an einer Windschutzscheibe des Fahrzeugs positioniert zu sein, konsistent mit den offenbarten Ausführungsformen.
- ist 3C eine Darstellung der in 3B gezeigten Kamerahalterung aus einer anderen Perspektive konsistent mit den offenbarten Ausführungsformen.
- ist 3D eine Darstellung eines Beispiels einer Kamerahalterung, die konfiguriert ist, hinter einem Rückspiegel und an einer Windschutzscheibe des Fahrzeugs positioniert zu sein, konsistent mit den offenbarten Ausführungsformen.
- ist 4 ein beispielhaftes Blockdiagramm eines Speichers, der konfiguriert ist, Anweisungen zum Ausführen einer oder mehrere Operationen zu speichern, konsistent mit den offenbarten Ausführungsformen.
- ist 5A ein Ablaufplan, der einen beispielhaften Prozess zum Veranlassen einer oder mehrerer Navigationsreaktionen basierend auf einer Monokularbildanalyse konsistent mit offenbarten Ausführungsformen zeigt.
- ist 5B ein Ablaufplan, der einen beispielhaften Prozess zum Detektieren eines oder mehrerer Fahrzeuge und/oder Fußgänger in einer Gruppe von Bildern konsistent mit den offenbarten Ausführungsformen zeigt.
- ist 5C ein Ablaufplan, der einen beispielhaften Prozess zum Detektieren von Straßenmarkierungen und/oder Fahrspurgeometrieinformationen in einer Gruppe von Bildern konsistent mit den offenbarten Ausführungsformen zeigt.
- ist 5D ein Ablaufplan, der einen beispielhaften Prozess zum Detektieren von Verkehrsampeln in einer Gruppe von Bildern konsistent mit den offenbarten Ausführungsformen zeigt.
- ist 5E ein Ablaufplan, der einen beispielhaften Prozess zum Veranlassen einer oder mehrerer Navigationsreaktionen basierend auf einem Fahrzeugweg konsistent mit offenbarten Ausführungsformen zeigt.
- ist 5F ein Ablaufplan, der einen beispielhaften Prozess zum Bestimmen, ob ein vorausfahrendes Fahrzeug die Fahrspur wechselt, konsistent mit den offenbarten Ausführungsformen zeigt.
- ist 6 ein Ablaufplan, der einen beispielhaften Prozess zum Veranlassen einer oder mehrerer Navigationsreaktionen basierend auf einer Stereobildanalyse konsistent mit den offenbarten Ausführungsformen zeigt.
- ist 7 ein Ablaufplan, der einen beispielhaften Prozess zum Veranlassen einer oder mehrerer Navigationsreaktionen basierend auf einer Analyse von drei Gruppen von Bildern konsistent mit den offenbarten Ausführungsformen zeigt.
- zeigt 8 eine dünn besetzte Karte zum Bereitstellen von autonomer Fahrzeugnavigation konsistent mit den offenbarten Ausführungsformen.
- stellt 9A eine polynomische Repräsentation eines Abschnitts eines Straßensegments konsistent mit den offenbarten Ausführungsformen dar.
- stellt 9B eine Kurve im dreidimensionalen Raum, die eine Sollbewegungsbahn eines Fahrzeugs repräsentiert, für ein spezielles Straßensegment, das in einer dünn besetzten Karte enthalten ist, konsistent mit den offenbarten Ausführungsformen dar.
- stellt 10 beispielhafte Orientierungspunkte, die in einer dünn besetzten Karte enthalten sein können, konsistent mit den offenbarten Ausführungsformen dar.
- zeigt 11A polynomische Repräsentationen von Bewegungsbahnen konsistent mit den offenbarten Ausführungsformen.
- zeigen 11B und 11C Sollbewegungsbahnen entlang einer mehrspurigen Straße konsistent mit offenbarten Ausführungsformen.
- zeigt 11D ein beispielhaftes Straßensignaturprofil konsistent mit offenbarten Ausführungsformen.
- ist 12 eine schematische Darstellung eines Systems, das Crowdsourcing-Daten, die von mehreren Fahrzeugen empfangen werden, zur autonomen Fahrzeugnavigation verwendet, konsistent mit den offenbarten Ausführungsformen.
- stellt 13 ein beispielhaftes Modell für die Straßennavigation autonomer Fahrzeuge, das durch mehrere dreidimensionale Polynomzüge repräsentiert ist, konsistent mit den offenbarten Ausführungsformen dar.
- zeigt 14 ein durch Kombinieren von Ortsinformationen vieler Fahrten erzeugtes Kartenskelett konsistent mit den offenbarten Ausführungsformen.
- zeigt 15 ein Beispiel einer Längsausrichtung von zwei Fahrten an beispielhaften Schildern als Orientierungspunkte konsistent mit den offenbarten Ausführungsformen.
- zeigt 16 ein Beispiel einer Längsausrichtung vieler Fahrten an einem beispielhaften Schild als Orientierungspunkt konsistent mit den offenbarten Ausführungsformen.
- ist 17 eine schematische Darstellung eines Systems zur Erzeugung von Fahrtdaten unter Verwendung einer Kamera, eines Fahrzeugs und eines Servers konsistent mit den offenbarten Ausführungsformen.
- ist 18 eine schematische Darstellung eines Systems für Crowdsourcing einer dünn besetzten Karte konsistent mit den offenbarten Ausführungsformen.
- ist 19 ein Ablaufplan, der einen beispielhaften Prozess zum Erzeugen einer dünn besetzten Karte zur autonomen Fahrzeugnavigation entlang eines Straßensegments konsistent mit den offenbarten Ausführungsformen zeigt.
- stellt 20 ein Blockdiagramm eines Servers konsistent mit den offenbarten Ausführungsformen dar.
- stellt 21 ein Blockdiagramm eines Speichers konsistent mit den offenbarten Ausführungsformen dar.
- stellt 22 einen Prozess zum Clustern von Fahrzeugen zugeordneten Fahrzeugbewegungsbahnen konsistent mit den offenbarten Ausführungsformen dar.
- stellt 23 ein Navigationssystem für ein Fahrzeug, das zur autonomen Navigation verwendet werden kann, konsistent mit den offenbarten Ausführungsformen dar.
- stellen die 24A, 24B, 24C und 24D beispielhafte Fahrspurmarkierungen, die detektiert werden können, konsistent mit den offenbarten Ausführungsformen dar.
- zeigt 24E beispielhafte kartierte Fahrspurmarkierungen konsistent mit den offenbarten Ausführungsformen.
- zeigt 24F eine beispielhafte Anomalie, die dem Detektieren einer Fahrspurmarkierung zugeordnet ist, konsistent mit den offenbarten Ausführungsformen.
- zeigt 25A ein beispielhaftes Bild einer Umgebung eines Fahrzeugs zur Navigation basierend auf den kartierten Fahrspurmarkierungen konsistent mit den offenbarten Ausführungsformen.
- stellt 25B eine seitliche Ortsbestimmungskorrektur eines Fahrzeugs basierend auf kartierten Fahrspurmarkierungen in einem Straßennavigationsmodell konsistent mit den offenbarten Ausführungsformen dar.
- stellen die 25C und 25D konzeptionelle Repräsentationen eines Ortsbestimmungstechnik zur Ortsbestimmung des Trägerfahrzeugs entlang einer Sollbewegungsbahn unter Verwendung kartierter Merkmale, die in einer dünn besetzten Karte enthalten sind, dar.
- ist 26A ein Ablaufplan, der einen beispielhaften Prozess zum Kartieren einer Fahrspurmarkierung zum Gebrauch in der autonomen Fahrzeugnavigation konsistent mit offenbarten Ausführungsformen.
- ist 26B ein Ablaufplan, der einen beispielhaften Prozess zum autonomen Navigieren eines Trägerfahrzeugs entlang eines Straßensegments unter Verwendung kartierter Fahrspurmarkierungen konsistent mit offenbarten Ausführungsformen zeigt.
- stellt 27 ein beispielhaftes System zum Bestimmen einer Geschwindigkeit eines Objekts konsistent mit offenbarten Ausführungsformen dar.
- stellt 28 einen beispielhaften Server konsistent mit offenbarten Ausführungsformen dar.
- stellt 29 ein beispielhaftes Fahrzeug konsistent mit offenbarten Ausführungsformen dar.
- stellt 30A beispielhafte Objekte in einem Sichtfeld, das einem Navigationssystem zugeordnet ist, konsistent offenbarten Ausführungsformen dar.
- stellt 30B beispielhafte Objekte in dem Sichtfeld, das einem Navigationssystem zugeordnet ist, konsistent offenbarten Ausführungsformen dar.
- ist 31 ein Ablaufplan, der einen beispielhaften Prozess zum Bestimmen einer Geschwindigkeit eines Objekts konsistent mit offenbarten Ausführungsformen zeigt.
- stellt 32 ein beispielhaftes System zum Bestimmen einer Navigationsaktion für ein Trägerfahrzeug konsistent mit offenbarten Ausführungsformen dar.
- stellt 33 einen beispielhaften Server konsistent mit offenbarten Ausführungsformen dar.
- stellt 34 ein beispielhaftes Fahrzeug konsistent mit offenbarten Ausführungsformen dar.
- stellt 35A ein beispielhaftes Straßensegment konsistent mit offenbarten Ausführungsformen dar.
- stellt 35B eine beispielhafte dünn besetzte Karte, die einem beispielhaften Straßensegment zugeordnet ist, konsistent mit offenbarten Ausführungsformen dar.
- stellt 35C ein beispielhaftes Straßensegment konsistent mit offenbarten Ausführungsformen dar.
- ist 36 ein Ablaufplan, der einen beispielhaften Prozess zum Bestimmen einer Navigationsaktion für ein Trägerfahrzeug zeigt, konsistent mit offenbarten Ausführungsformen.
- stellt 37 ein beispielhaftes Fahrzeug konsistent mit offenbarten Ausführungsformen dar.
- ist 38 ein Ablaufplan, der einen beispielhaften Prozess zum Bestimmen einer Navigationsaktion für ein Trägerfahrzeug zeigt, konsistent mit offenbarten Ausführungsformen.
- stellen die 39A und 39B beispielhafte Punktwolkeninformationen und Bilder konsistent mit offenbarten Ausführungsformen dar.
- stellt 40 ein beispielhaftes Fahrzeug konsistent mit offenbarten Ausführungsformen dar.
- ist 41 ein Ablaufplan, der einen beispielhaften Prozess zum Bestimmen einer Navigationsaktion für ein Trägerfahrzeug zeigt, konsistent mit offenbarten Ausführungsformen.
- stellt 42 ein Trägerfahrzeug in einer beispielhaften Umgebung konsistent mit offenbarten Ausführungsformen dar.
- stellt 43 ein beispielhaftes Fahrzeug konsistent mit offenbarten Ausführungsformen dar.
- stellt 44 ein beispielhaftes Fahrzeug konsistent mit offenbarten Ausführungsformen dar.
- ist 45 ein Ablaufplan, der einen beispielhaften Prozess zum Bestimmen einer Navigationsaktion für ein Trägerfahrzeug zeigt, konsistent mit offenbarten Ausführungsformen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die folgende ausführliche Beschreibung nimmt Bezug auf die begleitenden Zeichnungen. Wo immer möglich, sind in den Zeichnungen und in der folgenden Beschreibung die gleichen Bezugszeichen verwendet, um gleiche oder ähnliche Teile zu referenzieren. Obwohl hier mehrere erläuternde Ausführungsformen beschrieben sind, sind Änderungen, Anpassungen und andere Implementierungen möglich. Beispielsweise können an den in den Zeichnungen dargestellten Komponenten Ersetzungen, Hinzufügungen oder Modifikationen vorgenommen werden, und die hier beschriebenen erläuternden Verfahren können durch Ersetzen, Umordnen, Entfernen oder Hinzufügen von Schritten zu den offenbarten Verfahren modifiziert werden. Dementsprechend ist die folgende ausführliche Beschreibung nicht auf die offenbarten Ausführungsformen und Beispiele beschränkt. Stattdessen ist der korrekte Schutzbereich durch die beigefügten Ansprüche definiert.
-
Überblick über das autonome Fahrzeug
-
Wie er in dieser Offenbarung durchgehend verwendet ist, bezieht sich der Begriff „autonomes Fahrzeug“ auf ein Fahrzeug, das zum Implementieren wenigstens einer Navigationsänderung ohne Fahrereingabe fähig ist. Eine „Navigationsänderung“ bezieht sich auf eine Änderung eines oder mehrerer aus der Lenkung, den Bremsen oder der Beschleunigung des Fahrzeugs. Um autonom zu sein, muss ein Fahrzeug nicht vollautomatisch sein (z. B. vollständiger Betrieb ohne einen Fahrer oder ohne Fahrereingabe). Vielmehr enthält ein autonomes Fahrzeug diejenigen, die während spezieller Zeitspannen unter der Steuerung durch einen Fahrers und während anderer Zeitspannen ohne Steuerung durch einen Fahrer betrieben werden können. Autonome Fahrzeuge können auch Fahrzeuge enthalten, die nur einige Aspekte der Fahrzeugnavigation steuern, wie z. B. die Lenkung (z. B. um die Richtung des Fahrzeugs zwischen den Fahrspurbegrenzungen zu halten), andere Aspekte aber dem Fahrer überlassen (z. B. das Bremsen). In einigen Fällen können autonome Fahrzeuge einige der oder alle Aspekte aus Bremsen, Geschwindigkeitssteuerung und/oder der Lenken des Fahrzeugs handhaben.
-
Da sich menschliche Fahrer typischerweise auf visuelle Hinweise und Beobachtungen verlassen, um ein Fahrzeug zu steuern, sind die Verkehrsinfrastrukturen entsprechend aufgebaut, wobei Fahrbahnmarkierungen, Verkehrsschilder und Ampeln so konstruiert sind, dass sie visuelle Informationen für die Fahrer bereitstellen. Angesichts dieser Konstruktionseigenschaften von Verkehrsinfrastrukturen kann ein autonomes Fahrzeug mit einer Kamera und einer Verarbeitungseinheit, die visuelle Informationen aus der Umgebung des Fahrzeugs auswertet, ausgestattet sein. Die visuellen Informationen können beispielsweise Komponenten der Verkehrsinfrastruktur (z. B. Fahrspurmarkierungen, Verkehrsschilder, Ampeln usw.), die von den Fahrern wahrgenommen werden können, und andere Hindernisse (z. B. andere Fahrzeuge, Fußgänger, Schmutz usw.) enthalten. Zusätzlich kann ein autonomes Fahrzeug auch gespeicherte Informationen verwenden, wie z. B. Informationen, die ein Modell der Umgebung des Fahrzeugs zum Navigieren bereitstellen. Beispielsweise kann das Fahrzeug GPS-Daten, Sensordaten (z. B. von einem Beschleunigungsmesser, einem Geschwindigkeitssensor, einem Radaufhängungssensor usw.) und/oder andere Kartendaten verwenden, um Informationen über seine Umgebung bereitzustellen, während das Fahrzeug fährt, und das Fahrzeug (und auch andere Fahrzeuge) kann diese Informationen verwenden, um sich selbst auf dem Modell zu lokalisieren.
-
In einigen Ausführungsformen dieser Offenbarung kann ein autonomes Fahrzeug Informationen verwenden, die während des Navigierens erhalten werden (z. B. von einer Kamera, einer GPS-Vorrichtung, einem Beschleunigungsmesser, einem Geschwindigkeitssensor, einem Radaufhängungssensor usw.). In anderen Ausführungsformen kann ein autonomes Fahrzeug während des Navigierens Informationen verwenden, die aus früheren Navigationen durch das Fahrzeug (oder durch andere Fahrzeuge) erhalten worden sind. In noch anderen Ausführungsformen kann ein autonomes Fahrzeug eine Kombination aus Informationen, die während des Navigierens erhalten werden, und Informationen, die aus früheren Navigationen erhalten worden sind, verwenden. Die folgenden Abschnitte geben einen Überblick über ein System, das mit den offenbarten Ausführungsformen konsistent ist, gefolgt von einem Überblick über ein nach vorne gerichtetes Bildaufnahmesystem und Verfahren, die mit dem System konsistent sind. Die folgenden Abschnitte offenbaren Systeme und Verfahren zum Konstruieren, Verwenden und Aktualisieren einer dünn besetzten Karte für autonome Fahrzeugnavigation.
-
Systemüberblick
-
1 ist ein Blockdiagrammrepräsentation eines Systems 100 konsistent mit den beispielhaften offenbarten Ausführungsformen. Das System 100 kann abhängig von den Anforderungen einer speziellen Implementierung verschiedene Komponenten enthalten. In einigen Ausführungsformen kann das System 100 eine Verarbeitungseinheit 110, eine Bilderfassungseinheit 120, einen Positionssensor 130, eine oder mehrere Speichereinheiten 140, 150, eine Kartendatenbank 160, eine Anwenderschnittstelle 170 und einen Drahtlos-Sender/Empfänger 172 enthalten. Die Verarbeitungseinheit 110 kann eine oder mehrere Verarbeitungsvorrichtungen enthalten. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 einen Anwendungsprozessor 180, einen Bildprozessor 190 oder irgendeine andere geeignete Verarbeitungsvorrichtung enthalten. In ähnlicher Weise kann die Bilderfassungseinheit 120 irgendeine Anzahl von Bilderfassungsvorrichtungen und Komponenten enthalten, abhängig von den Anforderungen einer speziellen Anwendung. In einigen Ausführungsformen kann die Bilderfassungseinheit 120 eine oder mehrere Bildaufnahmevorrichtungen (z. B. Kameras) enthalten, wie z. B. die Bildaufnahmevorrichtung 122, die Bildaufnahmevorrichtung 124 und die Bildaufnahmevorrichtung 126. Das System 100 kann auch eine Datenschnittstelle 128 enthalten, die die Verarbeitungsvorrichtung 110 mit der Bilderfassungsvorrichtung 120 kommunikationstechnisch verbindet. Die Datenschnittstelle 128 kann zum Beispiel irgendeine drahtgebundene und/oder drahtlose Verbindung oder Verbindungen zum Senden von Bilddaten, die durch die Bilderfassungsvorrichtung 120 erfasst wurden, an die Verarbeitungseinheit 110 enthalten.
-
Der Drahtlos-Sender/Empfänger 172 kann eine oder mehrere Vorrichtungen enthalten, die konfiguriert sind, Übertragungen über eine Luftschnittstelle zu einem oder mehreren Netzen (z. B. Mobilfunk, Internet usw.) unter Verwendung einer Funkfrequenz, Infrarotfrequenz, eines Magnetfelds oder eines elektrischen Felds auszutauschen. Der Drahtlos-Sender/Empfänger 172 kann irgendeinen bekannten Standard zum Senden und/oder Empfangen von Daten verwenden (z. B. Wi-Fi, Bluetooth®, Bluetooth Smart, 802.15.4, ZigBee usw.). Solche Übertragungen können die Kommunikation von dem Trägerfahrzeug zu einem oder mehreren entfernten Servern enthalten. Solche Übertragungen können auch die (Einweg- oder Zweiwege-) Kommunikation zwischen dem Trägerfahrzeug und einem oder mehreren Zielfahrzeugen in einer Umgebung des Trägerfahrzeugs (z. B. zum Unterstützen der Koordinierung der Navigation des Trägerfahrzeugs im Hinblick auf oder zusammen mit Zielfahrzeugen in der Umgebung des Trägerfahrzeugs), oder sogar eine Rundsendeübertragung an nicht näher bezeichnete Empfänger in der Nähe des sendenden Fahrzeugs enthalten.
-
Sowohl der Anwendungsprozessor 180 als auch der Bildprozessor 190 können verschiedene Typen von Verarbeitungsvorrichtungen enthalten. Der Anwendungsprozessor 180 und/oder der Bildprozessor 190 können beispielsweise einen Mikroprozessor, Vorprozessoren (z. B. einen Bildvorprozessor), eine Grafikverarbeitungseinheit (GPU), eine zentrale Verarbeitungseinheit (CPU), Unterstützungsschaltungen, digitale Signalprozessoren, integrierte Schaltungen, Speicher oder andere Typen von Vorrichtungen, die für den Ablauf von Anwendungen und zur Bildverarbeitung und -analyse geeignet sind, enthalten. In einigen Ausführungsformen kann der Anwendungsprozessor 180 und/oder der Bildprozessor 190 irgendeine Art von Einzel- oder Mehrkernprozessor, Mikrosteuereinheiten für mobile Vorrichtungen, zentrale Verarbeitungseinheit usw. enthalten. Es können verschiedene Verarbeitungsvorrichtungen verwendet werden, die beispielsweise Prozessoren von Herstellern wie Intel®, AMD® usw. oder GPUs von Herstellern wie NVIDIA®, ATI® usw. enthalten, und können verschiedene Architekturen (z. B. x86-Prozessor, ARM® usw.) enthalten.
-
In einigen Ausführungsformen können der Anwendungsprozessor 180 und/oder der Bildprozessor 190 einen der von Mobileye® erhältlichen Prozessorchips der EyeQ-Serie enthalten. Diese Prozessordesigns umfassen jeweils mehrere Verarbeitungseinheiten mit lokalem Speicher und Befehlssätzen. Solche Prozessoren können Videoeingänge zum Empfangen von Bilddaten von mehreren Bildsensoren enthalten, und können auch Videoausgangsfähigkeiten enthalten. In einem Beispiel verwendet der EyeQ2® 90-nm-Micron-Technologie, die an 332 MHz arbeitet. Die EyeQ2®-Architektur besteht aus zwei 32-Bit-RISC-CPUs mit Gleitkomma und Hyperthreading (MIPS32® 34K®-Keme), fünf „Vision Computing Engines“ (VCE), drei „Vector Microcode“-Prozessoren (VMP®), einer Denali 64-Bit-Mobile-DDR-Steuereinheit, einer internen 128-BitSonics-Zusammenschaltung, zwei 16-Bit-Videoeingangs- und 18-Bit-Videoausgangs-Steuereinheiten, 16-Kanal-DMA und verschiedenen Peripheriegeräten. Die MIPS34K-CPU managt die fünf VCEs, drei VMP™ und die DMA, die zweite MIPS34K-CPU und die Mehrkanal-DMA sowie die anderen Peripheriegeräte. Die fünf VCEs, drei VMP® und die MIPS34K-CPU können intensive Bildverarbeitungsberechnungen, die für Multifunktions-Bündelanwendungen erforderlich sind, ausführen. In einem weiteren Beispiel kann der EyeQ3®, der ein Prozessor der dritten Generation ist und der sechsmal leistungsfähiger ist als der EyeQ2®, in den offenbarten Ausführungsformen verwendet sein. In anderen Beispielen können der EyeQ4® und/oder der EyeQ5® in den offenbarten Ausführungsformen verwendet sein. Natürlich können auch neuere oder zukünftige EyeQ-Verarbeitungsvorrichtungen zusammen mit den offenbarten Ausführungsformen verwendet werden.
-
Jede der hier offenbarten Verarbeitungsvorrichtungen kann konfiguriert sein, spezielle Funktionen auszuführen. Das Konfigurieren einer Verarbeitungsvorrichtung, wie z. B. irgendeines der beschriebenen EyeQ-Prozessoren oder einer anderen Steuereinheit oder eines anderen Mikroprozessors, zum Ausführen spezieller Funktionen kann das Programmieren von computerausführbaren Anweisungen und das Verfügbarmachen dieser Anweisungen für die Verarbeitungsvorrichtung zur Ausführung während des Betriebs der Verarbeitungsvorrichtung enthalten. In einigen Ausführungsformen kann das Konfigurieren einer Verarbeitungsvorrichtung direktes Programmieren der Verarbeitungsvorrichtung mit Architekturanweisungen enthalten. Beispielsweise können Verarbeitungsvorrichtungen wie z. B. feldprogrammierbare Gatter-Arrays (FPGAs), anwendungsspezifische integrierte Schaltungen (ASICs) und dergleichen unter Verwendung beispielsweise einer oder mehrerer Hardwarebeschreibungssprachen (HDLs) konfiguriert werden.
-
In anderen Ausführungsformen kann das Konfigurieren einer Verarbeitungsvorrichtung das Speichern von ausführbaren Anweisungen in einem Speicher, auf den die Verarbeitungsvorrichtung während des Betriebs zugreifen kann, enthalten. Beispielsweise kann die Verarbeitungsvorrichtung auf den Speicher zugreifen, um die gespeicherten Anweisungen während des Betriebs zu erhalten und auszuführen. In jedem Fall repräsentiert die Verarbeitungsvorrichtung, die zum Ausführen der hier beschriebenen Erfassungs-, Bildanalyse- und/oder Navigationsfunktionen konfiguriert ist, ein spezialisiertes hardwarebasiertes System, das mehrere hardwarebasierte Komponenten eines Trägerfahrzeugs steuert.
-
Obwohl 1 zwei separate Verarbeitungsvorrichtungen, die in der Verarbeitungseinheit 110 enthalten sind, abbildet, können auch mehr oder weniger Verarbeitungsvorrichtungen verwendet sein. Beispielsweise kann in einigen Ausführungsformen eine einzelne Verarbeitungsvorrichtung verwendet sein, um die Aufgaben des Anwendungsprozessors 180 und des Bildprozessors 190 zu erfüllen. In anderen Ausführungsformen können diese Aufgaben von mehr als zwei Verarbeitungsvorrichtungen ausgeführt werden. Ferner kann das System 100 in einigen Ausführungsformen eine oder mehrere Verarbeitungseinheiten 110 enthalten, ohne dass es andere Komponenten, wie z. B. die Bilderfassungseinheit 120, enthält.
-
Die Verarbeitungseinheit 110 kann verschiedene Typen von Vorrichtungen umfassen. Die Verarbeitungseinheit 110 kann beispielsweise verschiedene Vorrichtungen wie z. B. eine Steuereinheit, einen Bildvorprozessor, eine zentrale Verarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU), Unterstützungsschaltungen, digitale Signalprozessoren, integrierte Schaltungen, Speicher oder irgendwelche anderen Typen von Vorrichtungen zur Bildverarbeitung und - analyse enthalten. Der Bildvorverarbeitungsprozessor kann einen Videoprozessor zum Aufnehmen, Digitalisieren und Verarbeiten der Bilder aus den Bildsensoren enthalten. Die CPU kann irgendeine Anzahl von Mikrosteuereinheiten oder Mikroprozessoren umfassen. Die GPU kann ebenfalls irgendeine Anzahl von Mikrosteuereinheiten oder Mikroprozessoren umfassen. Die Unterstützungsschaltungen können irgendeine Anzahl von Schaltungen sein, die allgemein in der Technik gut bekannt sind, einschließlich Cache-, Stromversorgungs-, Takt- und Eingabe/Ausgabe-Schaltungen. Der Speicher kann Software speichern, die dann, wenn sie durch den Prozessor ausgeführt wird, den Betrieb des Systems steuert. Der Speicher kann Datenbanken und Bildverarbeitungssoftware enthalten. Der Speicher kann irgendeine Anzahl von Direktzugriffsspeichern, Festwertspeichern, Flash-Speichern, Plattenlaufwerken, optischen Speichern, Bandspeichern, herausnehmbaren Speichern und anderen Speichertypen umfassen. In einem Fall kann der Speicher von der Verarbeitungseinheit 110 getrennt sein. In einem anderen Fall kann der Speicher in die Verarbeitungseinheit 110 integriert sein.
-
Jeder Speicher 140, 150 kann Softwareanweisungen enthalten, die dann, wenn sie durch einen Prozessor (z. B. Anwendungsprozessor 180 und/oder Bildprozessor 190) ausgeführt werden, den Betrieb verschiedener Aspekte des Systems 100 steuern können. Diese Speichereinheiten können verschiedene Datenbanken und Bildverarbeitungssoftware sowie ein trainiertes System, wie beispielsweise ein neuronales Netz oder ein tiefes neuronales Netz, enthalten. Die Speichereinheiten können Direktzugriffsspeicher (RAM), Festwertspeicher (ROM), Flash-Speicher, Plattenlaufwerke, optische Speicher, Bandspeicher, herausnehmbaren Speicher und/oder andere Speichertypen enthalten. In einigen Ausführungsformen können die Speichereinheiten 140, 150 von dem Anwendungsprozessor 180 und/oder Bildprozessor 190 getrennt sein. In anderen Ausführungsformen können diese Speichereinheiten in den Anwendungsprozessor 180 und/oder den Bildprozessor 190 integriert sein.
-
Der Positionssensor 130 kann irgendeinen Typ einer Vorrichtung enthalten, die geeignet ist, einen wenigstens einer Komponente des Systems 100 zugeordneten Ort zu bestimmen. In einigen Ausführungsformen kann der Positionssensor 130 einen GPS-Empfänger enthalten. Solche Empfänger können die Position und die Geschwindigkeit des Anwenders bestimmen, indem sie Signale, die durch Satelliten des globalen Positionsbestimmungssystems rundgesendet werden, verarbeiten. Positionsinformationen aus dem Positionssensor 130 können dem Anwendungsprozessor 180 und/oder dem Bildprozessor 190 zugänglich gemacht werden.
-
In einigen Ausführungsformen kann das System 100 Komponenten wie z. B. einen Geschwindigkeitssensor (z. B. einen Drehzahlmesser, einen Geschwindigkeitsmesser) zum Messen der Geschwindigkeit des Fahrzeugs 200 und/oder einen Beschleunigungsmesser (entweder einachsig oder mehrachsig) zum Messen der Beschleunigung des Fahrzeugs 200 enthalten.
-
Die Anwenderschnittstelle 170 kann irgendeine Vorrichtung enthalten, die geeignet ist, für einen oder mehrere Anwender des Systems 100 Informationen bereitzustellen oder Eingaben von ihnen zu empfangen. In einigen Ausführungsformen kann die Anwenderschnittstelle 170 Anwendereingabevorrichtungen enthalten, wie z. B. einen berührungssensitiven Bildschirm, ein Mikrofon, eine Tastatur, Zeigegeräte, Drehräder, Kameras, Knöpfe, Tasten usw. Mit solchen Eingabevorrichtungen kann ein Anwender Informationseingaben oder Befehle für das System 100 bereitstellen, indem er Anweisungen oder Informationen eintippt, Sprachbefehle erteilt, Menüoptionen auf einem Bildschirm mit Hilfe von Schaltflächen, Zeigern oder Augenverfolgungsfähigkeiten auswählt, oder über irgendwelche anderen geeigneten Techniken zur Kommunikation von Informationen an das System 100.
-
Die Anwenderschnittstelle 170 kann mit einer oder mehreren Verarbeitungsvorrichtungen ausgestattet sein, die konfiguriert sind, Informationen für einen einem Anwender bereitzustellen und oder von ihm zu empfangen und diese Informationen zur Verwendung durch beispielsweise den Anwendungsprozessor 180 verarbeiten. In einigen Ausführungsformen können solche Verarbeitungsvorrichtungen Anweisungen zum Erkennen und Verfolgen von Augenbewegungen, zum Empfangen und Interpretieren von Sprachbefehlen, zum Erkennen und Interpretieren von Berührungen und/oder Gesten, die auf einem berührungssensitiven Bildschirm ausgeführt werden, zum Reagieren auf Tastatureingaben oder Menüauswahlen usw. ausführen. In einigen Ausführungsformen kann die Anwenderschnittstelle 170 eine Anzeigevorrichtung, einen Lautsprecher, eine taktile Vorrichtung und/oder andere Vorrichtungen zum Bereitstellen von Ausgabeinformationen für einen Anwender enthalten.
-
Die Kartendatenbank 160 kann irgendeinen Typ einer Datenbank zum Speichern von Kartendaten, die für das System 100 nützlich sind, enthalten. In einigen Ausführungsformen kann die Kartendatenbank 160 Daten enthalten, die sich auf die Position verschiedener Elemente, die Straßen, Wassermerkmale, geografische Merkmale, Geschäfte, Sehenswürdigkeiten, Restaurants, Tankstellen usw. enthalten, in einem Referenzkoordinatensystem beziehen. Die Kartendatenbank 160 kann nicht nur die Orte solcher Elemente speichern, sondern auch Deskriptoren, die sich auf diese Elemente beziehen und die beispielsweise Namen, die irgendwelchen der gespeicherten Merkmalen zugeordnet sind, enthalten. In einigen Ausführungsformen kann die Kartendatenbank 160 physikalisch mit anderen Komponenten des Systems 100 angeordnet sein. Alternativ oder zusätzlich kann sich die Kartendatenbank 160 oder ein Abschnitt davon entfernt in Bezug auf andere Komponenten des Systems 100 (z. B. die Verarbeitungseinheit 110) befinden. In solchen Ausführungsformen können die Informationen aus der Kartendatenbank 160 über eine drahtgebundene oder drahtlose Datenverbindung zu einem Netz (z. B. über ein Mobilfunknetz und/oder das Internet usw.) heruntergeladen werden. In einigen Fällen kann die Kartendatenbank 160 ein dünn besetztes Datenmodell, das Polynomrepräsentationen spezieller Straßenmerkmale (z. B. Fahrspurmarkierungen) oder Sollbewegungsbahnen für das Trägerfahrzeug enthält, speichern. Systeme und Verfahren zum Erzeugen einer solchen Karte sind nachstehend unter Bezugnahme auf die 8-19 diskutiert.
-
Die Bildaufnahmevorrichtungen 122, 124 und 126 können jeweils irgendeinen Typ einer Vorrichtung enthalten, die zum Aufnehmen wenigstens eines Bildes der Umgebung geeignet ist. Außerdem kann irgendeine Anzahl von Bildaufnahmevorrichtungen verwendet werden, um Bilder zur Eingabe in den Bildprozessor zu erfassen. Einige Ausführungsformen können nur eine einzige Bildaufnahmevorrichtung enthalten, während andere Ausführungsformen zwei, drei oder sogar vier oder mehr Bildaufnahmevorrichtungen enthalten können. Die Bildaufnahmevorrichtungen 122, 124 und 126 werden nachstehend unter Bezugnahme auf die 2B-2E näher beschrieben.
-
Das System 100 oder verschiedene Komponenten davon können in verschiedene unterschiedliche Plattformen integriert sein. In einigen Ausführungsformen kann das System 100 in einem Fahrzeug 200 enthalten sein, wie in 2A gezeigt ist. Beispielsweise kann das Fahrzeug 200 mit einer Verarbeitungseinheit 110 und irgendwelchen der anderen Komponenten des Systems 100 ausgestattet sein, wie vorstehend in Bezug auf 1 beschrieben ist. Obwohl in einigen Ausführungsformen das Fahrzeug 200 mit nur einer einzigen Bildaufnahmevorrichtung (z. B. einer Kamera) ausgestattet sein kann, können in anderen Ausführungsformen, wie z. B. denjenigen, die in Verbindung mit den 2B-2E diskutiert sind, mehrere Bildaufnahmevorrichtungen verwendet sein. Beispielsweise kann eine der beiden Bildaufnahmevorrichtungen 122 und 124 des Fahrzeugs 200, wie in 2A gezeigt, Teil einer ADAS-Bildaufnahmegruppe (Bildaufnahmegruppe des weiterentwickelten Fahrerassistenzsystems) sein.
-
Die Bildaufnahmevorrichtungen, die auf dem Fahrzeug 200 als Teil der Bilderfassungseinheit 120 enthalten sind, können an irgendeinem geeigneten Ort positioniert sein. In einigen Ausführungsformen, wie in den 2A-2E und 3A-3C gezeigt, kann sich die Bilderfassungsvorrichtung 122 in der Nähe des Rückspiegels befinden. Diese Position kann eine ähnliche Sichtlinie wie die des Fahrers des Fahrzeugs 200 bereitstellen, was bei der Bestimmung dessen, was für den Fahrer sichtbar ist und was nicht, unterstützen kann. Die Bildaufnahmevorrichtung 122 kann an irgendeinem Ort in der Nähe des Rückspiegels positioniert sein, jedoch kann die Platzierung der Bildaufnahmevorrichtung 122 auf der Fahrerseite des Spiegels kann das Erhalten von Bildern, die für das Sichtfeld und/oder die Sichtlinie des Fahrers repräsentativ sind, weiter unterstützen.
-
Es können auch andere Orte für die Bildaufnahmevorrichtungen der Bilderfassungseinheit 120 verwendet sein. Beispielsweise kann sich die Bildaufnahmevorrichtung 124 auf oder in einem Stoßfänger des Fahrzeugs 200 befinden. Ein solcher Ort eignet sich insbesondere für Bildaufnahmevorrichtungen mit einem weiten Sichtfeld. Die Sichtlinie der an dem Stoßfänger angebrachten Bildaufnahmevorrichtungen kann sich von der des Fahrers unterscheiden, und deshalb können die Bildaufnahmevorrichtung am Stoßfänger und der Fahrer möglicherweise nicht immer dieselben Objekte sehen. Die Bildaufnahmevorrichtungen (z. B. die Bildaufnahmevorrichtungen 122, 124 und 126) können sich auch an anderen Orten befinden. Beispielsweise können sich die Bildaufnahmevorrichtungen auf oder in einem oder beiden Seitenspiegeln des Fahrzeugs 200, auf dem Dach des Fahrzeugs 200, auf der Motorhaube des Fahrzeugs 200, auf dem Kofferraum des Fahrzeugs 200, an den Seiten des Fahrzeugs 200 befinden, an einem der Fenster des Fahrzeugs montiert sein, hinter oder vor einem der Fenster des Fahrzeugs 200 positioniert sein und in oder in der Nähe von Lichtfiguren an der Vorder- und/oder Rückseite des Fahrzeugs 200 montiert sein, usw.
-
Zusätzlich zu den Bildaufnahmevorrichtungen kann das Fahrzeug 200 verschiedene andere Komponenten des Systems 100 enthalten. Beispielsweise kann die Verarbeitungseinheit 110 in dem Fahrzeug 200 enthalten sein, entweder integriert mit oder getrennt von der Kraftmaschinensteuereinheit (ECU) des Fahrzeugs. Das Fahrzeug 200 kann auch mit einem Positionssensor 130, wie z. B. einem GPS-Empfänger, ausgestattet sein und kann außerdem eine Kartendatenbank 160 und Speichereinheiten 140 und 150 enthalten.
-
Wie bereits diskutiert kann der Drahtlos-Sender/Empfänger 172 Daten über ein oder mehrere Netze (z. B. Mobilfunknetze, das Internet usw.) senden und/oder empfangen. Beispielsweise kann der Drahtlos-Sender/Empfänger 172 durch das System 100 gesammelte Daten zu einem oder mehreren Servern hochladen und Daten von dem einen oder den mehreren Servern herunterladen. Über den Drahtlos-Sender/Empfänger 172 kann das System 100 beispielsweise periodische oder bei Bedarf Aktualisierungen für die in der Kartendatenbank 160, dem Speicher 140 und/oder dem Speicher 150 gespeicherten Daten empfangen. Ähnlich kann der Drahtlos-Sender/Empfänger 172 irgendwelche Daten (z. B. von der Bilderfassungseinheit 120 aufgenommene Bilder, durch den Positionssensor 130 oder andere Sensoren, Fahrzeugsteuerungssystemen usw. empfangene Daten) von dem System 100 und/oder Daten, die durch die Verarbeitungseinheit 110 verarbeitet sind, zu dem einen oder den mehreren Servern hochladen.
-
Das System 100 kann Daten basierend auf einer Datenschutzeinstellung auf einen Server (z. B. in die Cloud) hochladen. Beispielsweise kann das System 100 Datenschutzeinstellungen implementieren, um die Typen von Daten (einschließlich Metadaten), die an den Server gesendet werden und die ein Fahrzeug oder den Fahrer/Eigentümer eines Fahrzeugs eindeutig identifizieren können, zu regulieren oder zu begrenzen. Solche Einstellungen können durch den Anwender beispielsweise über den Drahtlos-Sender/Empfänger 172 eingestellt werden, durch werkseitige Standardeinstellungen oder durch Daten, die durch den Drahtlos-Sender/Empfänger 172 empfangen werden, initialisiert werden.
-
In einigen Ausführungsformen kann das System 100 Daten gemäß einer „hohen“ Datenschutzstufe hochladen, und bei einer entsprechenden Einstellung kann das System 100 Daten (z. B. Ortsinformationen in Bezug auf eine Route, aufgenommene Bilder usw.) ohne irgendwelche Einzelheiten über das spezifische Fahrzeug und/oder den Fahrer/Eigentümer senden. Beispielsweise kann das System 100 beim Hochladen von Daten gemäß einer „hohen“ Datenschutzeinstellung keine Fahrzeugidentifikationsnummer (VIN) oder keinen Namen eines Fahrers oder Eigentümers des Fahrzeugs aufnehmen und stattdessen Daten wie z. B. aufgenommene Bilder und/oder eingeschränkte Ortsinformationen in Bezug auf eine Strecke senden.
-
Andere Datenschutzstufen werden in Betracht gezogen. Beispielsweise kann das System 100 Daten gemäß einer „mittleren“ Datenschutzstufe an einen Server senden und zusätzliche Informationen aufnehmen, die unter einer „hohen“ Datenschutzstufe nicht enthalten sind, wie z. B. das Fabrikat und/oder das Modell eines Fahrzeugs und/oder einen Fahrzeugtyp (z. B. Personenkraftwagen, Geländewagen, Lastkraftwagen usw.). In einigen Ausführungsformen kann das System 100 Daten gemäß einer „niedrigen“ Datenschutzstufe hochladen. Unter einer „niedrigen“ Datenschutzeinstellung kann das System 100 Daten hochladen und Informationen aufnehmen, die ausreichend sind, um ein spezifisches Fahrzeug, einen Eigentümer/Fahrer und/oder einen Abschnitt der oder die gesamte vom Fahrzeug zurückgelegte Strecke eindeutig zu identifizieren. Solche Daten mit „niedriger“ Datenschutzstufe können beispielsweise eines oder mehrere aus einer Fahrgestellnummer, einem Namen des Fahrers/Eigentümers, einem Ursprungsort des Fahrzeugs vor der Abfahrt, dem vorgesehenen Ziel des Fahrzeugs, dem Fabrikat und/oder dem Modell des Fahrzeugs, dem Fahrzeugtyp usw. enthalten.
-
2A ist eine schematische Repräsentation in Seitenansicht eines beispielhaften Fahrzeugbildaufnahmesystems konsistent mit den offenbarten Ausführungsformen. 2B ist eine schematische Darstellung in Draufsicht der in 2A gezeigten Ausführungsform. Wie in 2B dargestellt ist, können die offenbarten Ausführungsformen ein Fahrzeug 200 enthalten, das in seiner Karosserie ein System 100 mit einer ersten Bildaufnahmevorrichtung 122, die in der Nähe des Rückspiegels und/oder in der Nähe des Fahrers des Fahrzeugs 200 positioniert ist, einer zweiten Bildaufnahmevorrichtung 124, die auf oder in einem Stoßfängerbereich (z. B. einem der Stoßfängerbereiche 210) des Fahrzeugs 200 positioniert ist, und einer Verarbeitungseinheit 110 enthält.
-
Wie in 2C dargestellt ist, können beide Bildaufnahmevorrichtungen 122 und 124 in der Nähe des Rückspiegels und/oder in der Nähe des Fahrers des Fahrzeugs 200 positioniert sein. Zusätzlich ist zu verstehen, dass, obwohl in den und zwei Bildaufnahmevorrichtungen 122 und 124 gezeigt sind, andere Ausführungsformen mehr als zwei Bildaufnahmevorrichtungen enthalten können. Beispielsweise sind in den in den 2D und 2E gezeigten Ausführungsformen eine erste, eine zweite und eine dritte Bildaufnahmevorrichtungen 122, 124 und 126 in dem System 100 des Fahrzeugs 200 enthalten.
-
Wie in 2D dargestellt ist, kann die Bildaufnahmevorrichtung 122 in der Nähe des Rückspiegels und/oder in der Nähe des Fahrers des Fahrzeugs 200 positioniert sein, und die Bildaufnahmevorrichtungen 124 und 126 können auf oder in einem Stoßfängerbereich (z. B. einem der Stoßfängerbereiche 210) des Fahrzeugs 200 positioniert sein. Und wie in 2E gezeigt ist, können die Bildaufnahmevorrichtungen 122, 124 und 126 in der Nähe des Rückspiegels und/oder in der Nähe des Fahrersitzes des Fahrzeugs 200 positioniert sein. Die offenbarten Ausführungsformen sind nicht auf irgendeine spezielle Anzahl und Konfiguration der Bildaufnahmevorrichtungen beschränkt, und die Bildaufnahmevorrichtungen können an irgendeinem geeigneten Ort innerhalb des und/oder auf dem Fahrzeug 200 positioniert sein.
-
Es ist zu verstehen, dass die offenbarten Ausführungsformen nicht auf Fahrzeuge beschränkt sind und auch in anderen Kontexten eingesetzt werden könnten. Es ist auch zu verstehen, dass die offenbarten Ausführungsformen nicht auf einen speziellen Typ eines Fahrzeugs 200 beschränkt sind und für alle Fahrzeugtypen, die Pkws, Lastkraftwagen, Anhänger und andere Fahrzeugtypen enthalten, einsetzbar sein können.
-
Die erste Bildaufnahmevorrichtung 122 kann irgendeinen geeigneten Typ einer Bildaufnahmevorrichtung enthalten. Die Bildaufnahmevorrichtung 122 kann eine optische Achse enthalten. In einem Fall kann die Bildaufnahmevorrichtung 122 einen Aptina M9V024 WVGA-Sensor mit einem globalen Verschluss enthalten. In anderen Ausführungsformen kann die Bildaufnahmevorrichtung 122 eine Auflösung von 1280x960 Pixeln bereitstellen und kann einen rollenden Verschluss enthalten. Die Bildaufnahmevorrichtung 122 kann verschiedene optische Elemente enthalten. In einigen Ausführungsformen können ein oder mehrere Objektive enthalten sein, um beispielsweise eine gewünschte Brennweite und ein gewünschtes Sichtfeld für die Bildaufnahmevorrichtung bereitzustellen. In einigen Ausführungsformen kann die Bildaufnahmevorrichtung 122 einem 6-mm-Objektiv oder einem 12-mm-Objektiv zugeordnet sein. In einigen Ausführungsformen kann die Bildaufnahmevorrichtung 122 konfiguriert sein, Bilder mit einem gewünschten Sichtfeld (FOV) 202 aufzunehmen, wie in 2D dargestellt ist. Zum Beispiel kann die Bildaufnahmevorrichtung 122 so konfiguriert sein, dass sie ein reguläres FOV aufweist, wie z. B. innerhalb eines Bereichs von 40 Grad bis 56 Grad, das ein 46-Grad-FOV, ein 50-Grad-FOV, ein 52-Grad-FOV oder größer enthält. Alternativ kann die Bildaufnahmevorrichtung 122 so konfiguriert sein, dass sie ein enges FOV im Bereich von 23 bis 40 Grad aufweist, wie z. B. ein 28-Grad-FOV oder 36-Grad-FOV. Darüber hinaus kann die Bildaufnahmevorrichtung 122 so konfiguriert sein, dass sie ein weites FOV im Bereich von 100 bis 180 Grad aufweist. In einigen Ausführungsformen kann die Bildaufnahmevorrichtung 122 eine Weitwinkel-Stoßfängerkamera oder eine Kamera mit einem Sichtfeld von bis zu 180 Grad enthalten. In einigen Ausführungsformen kann die Bildaufnahmevorrichtung 122 eine 7,2-Megapixel-Bildaufnahmevorrichtung mit einem Seitenverhältnis von etwa 2:1 (z. B. HxV=3800x1900 Pixel) mit einem horizontalen FOV von etwa 100 Grad sein. Eine solche Bildaufnahmevorrichtung kann anstelle einer Konfiguration mit drei Bildaufnahmevorrichtungen verwendet sein. Aufgrund erheblicher Linsenverzerrungen kann das vertikale FOV einer solchen Bildaufnahmevorrichtung in Implementierungen, in denen die Bildaufnahmevorrichtung ein radialsymmetrisches Objektiv verwendet, deutlich kleiner als 50 Grad sein. Ein solches Objektiv kann beispielsweise nicht radialsymmetrisch sein, was ein vertikales FOV größer als 50 Grad mit einem horizontalen FOV von 100 Grad ermöglichen würde.
-
Die erste Bildaufnahmevorrichtung 122 kann mehrere erste Bilder in Bezug auf eine dem Fahrzeug 200 zugeordnete Szene erfassen. Jedes der mehreren ersten Bilder kann als eine Folge von Bildabtastzeilen erfasst werden, die unter Verwendung eines rollenden Verschlusses aufgenommen sein können. Jede Abtastzeile kann mehrere Pixel enthalten.
-
Die erste Bildaufnahmevorrichtung 122 kann eine Abtastrate aufweisen, die der Erfassung jeder der ersten Folge von Bildabtastzeilen zugeordnet ist. Die Abtastrate kann sich auf eine Rate beziehen, mit der ein Bildsensor Bilddaten, die jedem in einer speziellen Abtastzeile enthaltenen Pixel zugeordnet sind, erfassen kann.
-
Die Bildaufnahmevorrichtungen 122, 124 und 126 können irgendeinen geeigneten Typ und Anzahl von Bildsensoren, beispielsweise CCD-Sensoren oder CMOS-Sensoren enthalten, beinhalten. In einer Ausführungsform kann ein CMOS-Bildsensor zusammen mit einem rollenden Verschluss eingesetzt werden, so dass jedes Pixel in einer Zeile einzeln ausgelesen wird und das Abtasten der Zeilen zeilenweise fortgesetzt wird, bis ein ganzer Bildrahmen aufgenommen worden ist. In einigen Ausführungsformen können die Zeilen in Bezug auf den Rahmen von oben nach unten der Reihe nach aufgenommen werden.
-
In einigen Ausführungsformen können eine oder mehrere der hier offenbarten Bildaufnahmevorrichtungen (z. B. die Bildaufnahmevorrichtungen 122, 124 und 126) einen hochauflösenden Bildwandler bilden und können eine Auflösung von mehr als 5 Millionen Pixeln, 7 Millionen Pixeln, 10 Millionen Pixeln oder größer aufweisen.
-
Die Verwendung eines rollenden Verschlusses kann dazu führen, dass Pixel in unterschiedlichen Zeilen zu unterschiedlichen Zeiten belichtet und aufgenommen werden, was Verzerrungen und andere Bildartefakte in dem aufgenommenen Bildrahmen verursachen kann. Wenn die Bildaufnahmevorrichtung 122 andererseits so konfiguriert ist, dass sie mit einem globalen oder synchronen Verschluss arbeitet, können alle Pixel für die gleiche Zeitdauer und während einer gemeinsamen Belichtungszeitspanne belichtet werden. Als ein Ergebnis repräsentieren die Bilddaten in einem Rahmen, der von einem System mit globalen Verschluss gesammelt wird, eine Momentaufnahme des gesamten FOV (z. B. des FOV 202) zu einem speziellen Zeitpunkt. Im Gegensatz dazu wird bei einer Anwendung mit rollendem Verschluss jede Zeile in einem Rahmen belichtet, und die Daten werden zu unterschiedlichen Zeiten aufgenommen. Somit können sich bewegende Objekte in einer Bildaufnahmevorrichtung mit rollendem Verschluss verzerrt erscheinen. Dieses Phänomen wird nachstehend genauer beschrieben.
-
Die zweite Bildaufnahmevorrichtung 124 und die dritte Bildaufnahmevorrichtung 126 können von irgendeinem Typ einer Bildaufnahmevorrichtung sein. Wie die erste Bildaufnahmevorrichtung 122 kann auch jede der Bildaufnahmevorrichtungen 124 und 126 eine optische Achse enthalten. In einer Ausführungsform kann jede der Bildaufnahmevorrichtungen 124 und 126 einen Aptina M9V024 WVGA-Sensor mit einem globalen Verschluss enthalten. Alternativ kann jede der Bildaufnahmevorrichtungen 124 und 126 einen rollenden Verschluss enthalten. Wie die Bildaufnahmevorrichtung 122 können auch die Bildaufnahmevorrichtungen 124 und 126 so konfiguriert sein, dass sie verschiedene Objektive und optische Elemente enthalten. In einigen Ausführungsformen können Objektive, die den Bildaufnahmevorrichtungen 124 und 126 zugeordnet sind, FOVs (wie z. B. die FOVs 204 und 206) bereitstellen, die gleich einem oder enger als ein FOV (wie z. B. das FOV 202) sind, das der Bildaufnahmevorrichtung 122 zugeordnet ist. Beispielsweise können die Bildaufnahmevorrichtungen 124 und 126 FOVs von 40 Grad, 30 Grad, 26 Grad, 23 Grad, 20 Grad oder kleiner aufweisen.
-
Die Bildaufnahmevorrichtungen 124 und 126 können mehrere zweite und dritte Bilder in Bezug auf eine dem Fahrzeug 200 zugeordnete Szene erfassen. Jedes der mehreren zweiten und dritten Bilder kann als eine zweite und dritte Folge von Bildabtastzeilen erfasst werden, die mit einem rollenden Verschluss aufgenommen sein können. Jede Abtastzeile oder Zeile kann mehrere Pixel aufweisen. Die Bildaufnahmevorrichtungen 124 und 126 können eine zweite und dritte Abtastrate aufweisen, die der Erfassung jeder in der zweiten und dritten Folge enthaltenen Bildabtastzeile zugeordnet sind.
-
Jede Bildaufnahmevorrichtung 122, 124 und 126 kann an irgendeiner geeigneten Position und Orientierung relativ zu dem Fahrzeug 200 positioniert sein. Die relative Positionierung der Bildaufnahmevorrichtungen 122, 124 und 126 kann so ausgewählt werden, dass sie das Zusammenführen der von den Bildaufnahmevorrichtungen erfassten Informationen unterstützt. In einigen Ausführungsformen kann beispielsweise ein FOV (wie z. B. das FOV 204), das der Bildaufnahmevorrichtung 124 zugeordnet ist, ein FOV (wie z. B. das FOV 202), das der Bildaufnahmevorrichtung 122 zugeordnet ist, und ein FOV (wie z. B. das FOV 206), das der Bildaufnahmevorrichtung 126 zugeordnet ist, teilweise oder vollständig überlappen.
-
Die Bildaufnahmevorrichtungen 122, 124 und 126 können sich auf dem Fahrzeug 200 in irgendwelchen geeigneten relativen Höhen befinden. In einem Fall kann ein Höhenunterschied zwischen den Bildaufnahmevorrichtungen 122, 124 und 126 vorhanden sein, der ausreichende Parallaxeninformationen bereitstellen kann, um eine Stereoanalyse zu ermöglichen. Wie in 2A gezeigt ist, befinden sich die beiden Bildaufnahmevorrichtungen 122 und 124 beispielsweise auf unterschiedlichen Höhen. Es kann auch ein seitlicher Verschiebungsunterschied zwischen den Bildaufnahmevorrichtungen 122, 124 und 126 vorhanden sein, der beispielsweise zusätzliche Parallaxeninformationen für die Stereoanalyse durch die Verarbeitungseinheit 110 liefert. Der Unterschied in der seitlichen Verschiebung kann durch dx bezeichnet sein, wie in den 2C und 2D gezeigt ist. In einigen Ausführungsformen kann zwischen den Bildaufnahmevorrichtungen 122, 124 und 126 eine Verschiebung nach vorne oder hinten (z. B. eine Bereichsverschiebung) existieren. Beispielsweise kann sich die Bildaufnahmevorrichtung 122 0,5 bis 2 Meter oder mehr hinter der Bildaufnahmevorrichtung 124 und/oder der Bildaufnahmevorrichtung 126 befinden. Dieser Typ der Verschiebung kann ermöglichen, dass eine der Bildaufnahmevorrichtungen potenzielle blinde Flecken der anderen Bildaufhahmevorrichtung(en) abdeckt.
-
Die Bildaufnahmevorrichtungen 122 können irgendein geeignetes Auflösungsvermögen (z. B. die Anzahl der dem Bildsensor zugeordneten Pixel) aufweisen, und die Auflösung des Bildsensors/der Bildsensoren, der/die der Bildaufnahmevorrichtung 122 zugeordnet ist/sind, kann höher als die, niedriger als die oder gleich der Auflösung des Bildsensors/der Bildsensoren sein, der/die den Bildaufnahmevorrichtungen 124 und 126 zugeordnet ist/sind. In einigen Ausführungsformen kann/können der/die Bildsensor(en), der/die der Bildaufnahmevorrichtung 122 und/oder den Bildaufnahmevorrichtungen 124 und 126 zugeordnet ist/sind, eine Auflösung von 640 x 480, 1024 x 768, 1280 x 960 oder irgendeine andere geeignete Auflösung aufweisen.
-
Die Rahmenrate (z. B. die Rate, mit der eine Bildaufnahmevorrichtung eine Gruppe von Pixeldaten eines Bildrahmens erfasst, bevor sie zur Aufnahme von Pixeldaten, die dem nächsten Bildrahmen zugeordnet sind, fortschreitet) kann steuerbar sein. Die der Bildaufnahmevorrichtung 122 zugeordnete Rahmenrate kann höher als die, niedriger als die oder gleich der den Bildaufnahmevorrichtungen 124 und 126 zugeordnete Rahmenrate sein. Die den Bildaufnahmevorrichtungen 122, 124 und 126 zugeordnet Rahmenrate kann von einer Vielzahl von Faktoren abhängen, die den Zeitablauf der Bildrate beeinflussen können. Beispielsweise kann eine oder mehrere der Bildaufnahmevorrichtungen 122, 124 und 126 eine auswählbare Pixelverzögerungszeitspanne enthalten, die vor oder nach der Erfassung von Bilddaten, die einem oder mehreren Pixeln eines Bildsensors in der Bildaufnahmevorrichtung 122, 124 und/oder 126 zugeordnet sind, eingeführt wird. Im Allgemeinen können die Bilddaten, die jedem Pixel entsprechen, gemäß einer Taktrate für die Vorrichtung (z. B. ein Pixel pro Taktzyklus) erfasst werden. Zusätzlich kann in Ausführungsformen, die einen rollenden Verschluss enthalten, eine oder mehrere der Bildaufnahmevorrichtungen 122, 124 und 126 eine auswählbare horizontale Austastzeitspanne enthalten, die vor oder nach der Erfassung von Bilddaten, die einer Zeile von Pixeln eines Bildsensors in der Bildaufnahmevorrichtung 122, 124 und/oder 126 zugeordnet sind, eingeführt wird. Ferner können eine oder mehrere der Bildaufnahmevorrichtungen 122, 124 und/oder 126 eine auswählbare vertikale Austastzeitspanne enthalten, die vor oder nach der Erfassung von Bilddaten, die einem Bildrahmen der Bildaufnahmevorrichtung 122, 124 und 126 zugeordnet sind, eingeführt wird.
-
Diese Zeitsteuerungen können die Synchronisierung der Rahmenraten, die den Bildaufnahmevorrichtungen 122, 124 und 126 zugeordnet sind, ermöglichen, selbst wenn die Zeilenabtastraten jeweils unterschiedlich sind. Zusätzlich können, wie nachstehend genauer diskutiert wird, diese auswählbaren Zeitsteuerungen neben anderen Faktoren (z. B. Bildsensorauflösung, maximale Zeilenabtastraten usw.) die Synchronisierung der Bildaufnahme aus einem Bereich, in dem das FOV der Bildaufnahmevorrichtung 122 ein oder mehrere FOVs der Bildaufnahmevorrichtungen 124 und 126 überlappt, ermöglichen, selbst wenn sich das Sichtfeld der Bildaufnahmevorrichtung 122 von den FOVs der Bildaufnahmevorrichtungen 124 und 126 unterscheidet.
-
Der Rahmenratenzeitablauf in der Bildaufnahmevorrichtung 122, 124 und 126 kann von der Auflösung der zugeordneten Bildsensoren abhängen. Falls beispielsweise eine Vorrichtung einen Bildsensor mit einer Auflösung von 640 x 480 enthält und eine andere Vorrichtung einen Bildsensor mit einer Auflösung von 1280 x 960 enthält, wird unter der Annahme ähnlicher Zeilenabtastraten für beide Vorrichtungen mehr Zeit für das Erfassen eines Rahmens von Bilddaten von dem Sensor mit der höheren Auflösung benötigt.
-
Ein weiterer Faktor, der den zeitlichen Ablauf der Bilddatenerfassung in den Bildaufnahmevorrichtungen 122, 124 und 126 beeinflussen kann, ist die maximale Zeilenabtastrate. Beispielsweise erfordert die Erfassung einer Zeile von Bilddaten von einem Bildsensor, der in den Bildaufnahmevorrichtungen 122, 124 und 126 enthalten ist, eine gewisse Mindestzeit. Unter der Annahme, dass keine Pixelverzögerungszeitspannen hinzugefügt werden, hängt diese Mindestzeit für die Erfassung einer Zeile von Bilddaten mit der maximalen Zeilenabtastrate für eine spezielle Vorrichtung zusammen. Vorrichtungen, die eine höhere maximale Zeilenabtastrate bieten, besitzen das Potenzial, höhere Rahmenraten bereitzustellen als Vorrichtungen mit niedrigeren maximalen Zeilenabtastraten. In einigen Ausführungsformen können eine oder mehrere der Bildaufnahmevorrichtungen 124 und 126 eine maximale Zeilenabtastrate aufweisen, die höher ist als die maximale Zeilenabtastrate, die der Bildaufnahmevorrichtung 122 zugeordnet ist. In einigen Ausführungsformen kann die maximale Zeilenabtastrate der Bildaufnahmevorrichtung 124 und/oder 126 das 1,25-, 1,5-, 1,75- oder 2-Fache oder mehr der maximalen Zeilenabtastrate der Bildaufnahmevorrichtung 122 sein.
-
In einer weiteren Ausführungsform können die Bildaufnahmevorrichtungen 122, 124 und 126 die gleiche maximale Zeilenabtastrate aufweisen, aber die Bildaufnahmevorrichtung 122 kann mit einer Abtastrate betrieben werden, die kleiner als ihre oder gleich ihrer maximalen Abtastrate ist. Das System kann so konfiguriert sein, dass eine oder mehrere der Bildaufnahmevorrichtungen 124 und 126 mit einer Zeilenabtastrate arbeiten, die gleich der Zeilenabtastrate der Bildaufnahmevorrichtung 122 ist. In anderen Fällen kann das System so konfiguriert sein, dass die Zeilenabtastrate der Bildaufnahmevorrichtung 124 und/oder der Bildaufnahmevorrichtung 126 das 1,25-, 1,5-, 1,75- oder 2-Fache oder mehr der Zeilenabtastrate der Bildaufnahmevorrichtung 122 ist.
-
In einigen Ausführungsformen können die Bildaufnahmevorrichtungen 122, 124 und 126 asymmetrisch sein. Das heißt, sie können Kameras mit unterschiedlichen Sichtfeldern (FOV) und Brennweiten enthalten. Die Sichtfelder der Bildaufnahmevorrichtungen 122, 124 und 126 können beispielsweise irgendeinen gewünschten Bereich in Bezug auf die Umgebung des Fahrzeugs 200 enthalten. In einigen Ausführungsformen können eine oder mehrere der Bildaufnahmevorrichtungen 122, 124 und 126 konfiguriert sein, Bilddaten von einer Umgebung vor dem Fahrzeug 200, hinter dem Fahrzeug 200, an den Seiten des Fahrzeugs 200 oder Kombinationen davon zu erfassen.
-
Ferner kann die Brennweite, die jeder Bildaufnahmevorrichtung 122, 124 und/oder 126 zugeordnet ist, auswählbar sein (z. B. durch Aufnehmen geeigneter Objektive usw.), so dass jede Vorrichtung Bilder von Objekten in einem gewünschten Entfernungsbereich relativ zu dem Fahrzeug 200 erfasst. Beispielsweise können in einigen Ausführungsformen die Bildaufnahmevorrichtungen 122, 124 und 126 Bilder von nahen Objekten innerhalb weniger Meter von dem Fahrzeug erfassen. Die Bildaufnahmevorrichtungen 122, 124 und 126 können auch konfiguriert sein, Bilder von Objekten in weiter von dem Fahrzeug entfernten (z. B. 25 m, 50 m, 100 m, 150 m oder mehr) Bereichen zu erfassen. Ferner können die Brennweiten der Bildaufnahmevorrichtungen 122, 124 und 126 so ausgewählt sein, dass eine Bildaufnahmevorrichtung (z. B. die Bildaufnahmevorrichtung 122) Bilder von Objekten, die sich relativ nahe am Fahrzeug befinden (z. B. innerhalb von 10 m oder innerhalb von 20 m), erfassen kann, während die anderen Bildaufnahmevorrichtungen (z. B. die Bildaufnahmevorrichtungen 124 und 126) Bilder von weiter von dem Fahrzeug 200 entfernten Objekten (z. B. mehr als 20 m, 50 m, 100 m, 150 m usw.) erfassen können.
-
Gemäß einigen Ausführungsformen kann das FOV einer oder mehrerer Bildaufnahmevorrichtungen 122, 124 und 126 einen Weitwinkel aufweisen. So kann es beispielsweise vorteilhaft sein, ein FOV von 140 Grad zu haben, insbesondere für Bildaufnahmevorrichtungen 122, 124 und 126, die zur Aufnahme von Bildern des Bereichs in der Nähe des Fahrzeugs 200 verwendet werden können. Beispielsweise kann die Bildaufnahmevorrichtung 122 verwendet werden, um Bilder des Bereichs rechts oder links des Fahrzeugs 200 aufzunehmen, und in solchen Ausführungsformen kann es wünschenswert sein, dass die Bildaufnahmevorrichtung 122 ein weites FOV (z. B. wenigstens 140 Grad) aufweist.
-
Das jeder der Bildaufnahmevorrichtungen 122, 124 und 126 zugeordnete Sichtfeld kann von den jeweiligen Brennweiten abhängen. So nimmt beispielsweise mit zunehmender Brennweite das entsprechende Sichtfeld ab.
-
Die Bildaufnahmevorrichtungen 122, 124 und 126 können so konfiguriert sein, dass sie irgendwelche geeigneten Sichtfelder aufweisen. In einem speziellen Beispiel kann die Bildaufnahmevorrichtung 122 ein horizontales FOV von 46 Grad aufweisen, die Bildaufnahmevorrichtung 124 kann ein horizontales FOV von 23 Grad aufweisen, und die Bildaufnahmevorrichtung 126 kann ein horizontales FOV zwischen 23 und 46 Grad aufweisen. In einem weiteren Fall kann die Bildaufnahmevorrichtung 122 ein horizontales FOV von 52 Grad aufweisen, die Bildaufnahmevorrichtung 124 kann ein horizontales FOV von 26 Grad aufweisen, und die Bildaufnahmevorrichtung 126 kann ein horizontales FOV zwischen 26 und 52 Grad aufweisen. In einigen Ausführungsformen kann das Verhältnis zwischen dem FOV der Bildaufnahmevorrichtung 122 und den FOVs der Bildaufnahmevorrichtung 124 und/oder der Bildaufnahmevorrichtung 126 im Bereich von 1,5 und 2,0 variieren. In anderen Ausführungsformen kann dieses Verhältnis im Bereich von 1,25 bis 2,25 variieren.
-
Das System 100 kann so konfiguriert sein, dass ein Sichtfeld der Bildaufnahmevorrichtung 122 ein Sichtfeld der Bildaufnahmevorrichtung 124 und/oder der Bildaufnahmevorrichtung 126 wenigstens teilweise oder vollständig überlappt. In einigen Ausführungsformen kann das System 100 so konfiguriert sein, dass die Sichtfelder der Bildaufnahmevorrichtungen 124 und 126 beispielsweise in das Sichtfeld des Bilderfassungsgeräts 122 fallen (z. B. enger sind als dieses) und eine gemeinsame Mitte mit diesem besitzen. In anderen Ausführungsformen können die Bildaufnahmevorrichtungen 122, 124 und 126 benachbarte FOVs aufnehmen, oder ihre FOVs können teilweise überlappen. In einigen Ausführungsformen können die Sichtfelder der Bildaufnahmevorrichtungen 122, 124 und 126 so ausgerichtet sein, dass sich eine Mitte des engeren Sichtfelds der Bildaufnahmevorrichtungen 124 und/oder 126 in einer unteren Hälfte des Sichtfelds der Vorrichtung 122 mit dem weiteren Sichtfeld befindet.
-
2F ist eine schematische Repräsentation beispielhafter Fahrzeugsteuersysteme konsistent mit den offenbarten Ausführungsformen. Wie in 2F angegeben, kann das Fahrzeug 200 ein Drosselsystem 220, ein Bremssystem 230 und ein Lenksystem 240 umfassen. Das System 100 kann Eingaben (z. B. Steuersignale) für eines oder mehrere aus dem Drosselsystem 220, dem Bremssystem 230 und dem Lenksystem 240 über eine oder mehrere Datenverbindungen (z. B. eine oder mehrere drahtgebundene und/oder drahtlose Verbindungen zur Datenübertragung) bereitstellen. Beispielsweise kann das System 100 basierend auf der Analyse von Bildern, die durch die Bildaufnahmevorrichtungen 122, 124 und/oder 126 aufgenommen wurden, Steuersignale für eines oder mehrere aus dem Drosselsystem 220, den Bremssystem 230 und dem Lenksystem 240 bereitstellen, um das Fahrzeug 200 zu navigieren (z. B. durch Veranlassen einer Beschleunigung, eines Abbiegens, eines Spurwechsels usw.). Ferner kann das System 100 Eingaben von einem oder mehreren aus dem Drosselsystem 220, dem Bremssystem 230 und dem Lenksystem 24 empfangen, die die Betriebsbedingungen des Fahrzeugs 200 angeben (z. B. die Geschwindigkeit, ob das Fahrzeug 200 bremst und/oder abbiegt usw.). Weitere Einzelheiten sind nachstehend im Zusammenhang mit den 4-7 bereitgestellt.
-
Wie in 3A gezeigt ist, kann das Fahrzeug 200 auch eine Anwenderschnittstelle 170 für die Interaktion mit einem Fahrer oder einem Insassen des Fahrzeugs 200 enthalten. Beispielsweise kann die Anwenderschnittstelle 170 in einer Fahrzeuganwendung einen berührungssensitiven Bildschirm 320, Knöpfe 330, Tasten 340 und ein Mikrofon 350 enthalten. Ein Fahrer oder Insasse des Fahrzeugs 200 kann auch Griffe (die sich z. B. an oder in der Nähe der Lenksäule des Fahrzeugs 200 befinden und beispielsweise Blinkergriffe enthalten), Tasten (die sich z. B. am Lenkrad des Fahrzeugs 200 befinden) und dergleichen verwenden, um mit dem System 100 zu interagieren. In einigen Ausführungsformen kann das Mikrofon 350 in der Nähe eines Rückspiegels 310 positioniert sein. In ähnlicher Weise kann sich in einigen Ausführungsformen die Bildaufnahmevorrichtung 122 in der Nähe des Rückspiegels 310 befinden. In einigen Ausführungsformen kann die Anwenderschnittstelle 170 auch einen oder mehrere Lautsprecher 360 (z. B. Lautsprecher eines Fahrzeug-Audiosystems) enthalten. Beispielsweise kann das System 100 verschiedene Meldungen (z. B. Alarme) über die Lautsprecher 360 bereitstellen.
-
3B-3D sind Darstellungen einer beispielhaften Kamerahalterung 370, die so konfiguriert ist, dass sie hinter einem Rückspiegel (z.B. dem Rückspiegel 310) und an einer Windschutzscheibe des Fahrzeugs positioniert sein kann, konsistent mit offenbarten Ausführungsformen. Wie in 3B gezeigt ist, kann die Kamerahalterung 370 die Bildaufnahmevorrichtungen 122, 124 und 126 enthalten. Die Bildaufnahmevorrichtungen 124 und 126 können hinter einem Blendschutz 380 positioniert sein, der mit der Windschutzscheibe des Fahrzeugs bündig sein kann und eine Zusammensetzung aus Folie und/oder Antireflexmaterialien enthalten kann. Der Blendschutz 380 kann beispielsweise so positioniert sein, dass sich der Schutz an einer Windschutzscheibe des Fahrzeugs mit übereinstimmender Neigung ausrichtet. In einigen Ausführungsformen kann jede der Bildaufnahmevorrichtungen 122, 124 und 126 hinter dem Blendschutz 380 positioniert sein, wie beispielsweise in 3D abgebildet ist. Die offenbarten Ausführungsformen sind nicht auf irgendeine spezielle Konfiguration der Bildaufnahmevorrichtungen 122, 124 und 126, der Kamerahalterung 370 und des Blendschutzes 380 beschränkt. 3C ist eine Darstellung der in 3B gezeigten Kamerahalterung 370 aus einer vorderen Perspektive.
-
Wie durch einen Fachmann, der einen Nutzen aus dieser Offenbarung zieht, erkannt wird, können zahlreiche Variationen und/oder Modifikationen an den vorstehend offenbarten Ausführungsformen vorgenommen werden. So sind beispielsweise nicht alle Komponenten für den Betrieb des Systems 100 wesentlich. Ferner kann sich irgendeine Komponente in irgendeinem geeigneten Teil des Systems 100 befinden, und die Komponenten können in einer Vielzahl von Konfigurationen neu angeordnet werden, während die Funktionalität der offenbarten Ausführungsformen bereitgestellt wird. Deshalb sind die vorstehenden Konfigurationen Beispiele, und unabhängig von den vorstehend diskutierten Konfigurationen kann das System 100 einen weiten Bereich von Funktionalität zum Analysieren der Umgebung des Fahrzeugs 200 und Navigieren des Fahrzeugs 200 in Reaktion auf die Analyse bereitstellen.
-
Wie nachstehend näher diskutiert und konsistent mit verschiedenen offenbarten Ausführungsformen, kann das System 100 eine Vielzahl von Funktionen in Bezug auf autonomes Fahren und/oder Fahrerassistenztechnologie bereitstellen. Das System 100 kann beispielsweise Bilddaten, Positionsdaten (z.B. GPS-Ortsinformationen), Kartendaten, Geschwindigkeitsdaten und/oder Daten von in dem Fahrzeug 200 enthaltenen Sensoren analysieren. Das System 100 kann die Daten für die Analyse beispielsweise von der Bilderfassungseinheit 120, dem Positionssensor 130 und anderen Sensoren erfassen. Ferner kann das System 100 die gesammelten Daten analysieren, um zu bestimmen, ob das Fahrzeug 200 spezielle Aktionen ausführen sollte oder nicht, und dann automatisch die bestimmten Aktionen ohne menschliches Eingreifen zu ausführen. Wenn das Fahrzeug 200 beispielsweise ohne menschliches Eingreifen navigiert, kann das System 100 automatisch das Bremsen, die Beschleunigung und/oder das Lenken des Fahrzeugs 200 steuern (z. B. durch Senden von Steuersignalen an das Drosselsystem 220, das Bremssystem 230 oder das Lenksystem 240). Ferner kann das System 100 die gesammelten Daten analysieren und basierend auf der Analyse der gesammelten Daten Warnungen und/oder Alarme an die Fahrzeuginsassen ausgeben. Zusätzliche Einzelheiten zu den verschiedenen Ausführungsformen, die durch das System 100 bereitgestellt sind, sind nachstehend bereitgestellt.
-
Nach vorne gerichtetes Mehrfachbildaufhahmesystem
-
Wie oben diskutiert, kann das System 100 eine Fahrassistenzfunktion bereitstellen, die ein Mehrkamerasystem verwendet. Das Mehrkamerasystem kann eine oder mehrere Kameras verwenden, die in die Vorwärtsrichtung eines Fahrzeugs gerichtet sind. In anderen Ausführungsformen kann das Mehrkamerasystem eine oder mehrere Kameras enthalten, die zu der Seite eines Fahrzeugs oder nach hinten von dem Fahrzeug gerichtet sind. In einer Ausführungsform kann das System 100 beispielsweise ein Zwei-Kamera-Bildaufnahmesystem verwenden, wobei eine erste Kamera und eine zweite Kamera (z. B. die Bildaufnahmevorrichtungen 122 und 124) an der Vorderseite und/oder an den Seiten eines Fahrzeugs (z. B. des Fahrzeugs 200) positioniert sein können. Die erste Kamera kann ein Sichtfeld aufweisen, das größer oder kleiner als das Sichtfeld der zweiten Kamera ist oder teilweise mit diesem überlappt. Zusätzlich kann die erste Kamera mit einem ersten Bildprozessor verbunden sein, um eine Monokularbildanalyse von durch die erste Kamera bereitgestellten Bilder auszuführen, und die zweite Kamera kann mit einem zweiten Bildprozessor verbunden sein, um eine Monokularbildanalyse von durch die zweite Kamera bereitgestellten Bilder auszuführen. Die Ausgaben (z. B. verarbeiteten Informationen) des ersten und des zweiten Bildprozessors können kombiniert werden. In einigen Ausführungsformen kann der zweite Bildprozessor Bilder von sowohl der ersten als auch der zweiten Kamera empfangen, um eine Stereoanalyse auszuführen. In einer weiteren Ausführungsform kann das System 100 ein Drei-Kamera-Bildaufnahmesystem verwenden, wobei jede der Kameras ein anderes Sichtfeld besitzt. Ein solches System kann daher Entscheidungen basierend auf Informationen treffen, die von Objekten abgeleitet sind, die sich in unterschiedlichen Abständen sowohl vor dem als auch seitlich des Fahrzeugs befinden. Bezugnahmen auf Monokularbildanalyse können sich auf Fälle beziehen, in denen die Bildanalyse basierend auf Bildern, die aus einem einzigen Blickwinkel (z. B. von einer einzigen Kamera) aufgenommen wurden, ausgeführt wird. Stereobildanalyse kann sich auf Fälle beziehen, in denen die Bildanalyse basierend auf zwei oder mehr Bildern, die mit einer oder mehreren Variationen eines Bildaufnahmeparameters aufgenommen wurden, ausgeführt wird. Beispielsweise können aufgenommene Bilder, die zum Ausführen von Stereobildanalyse geeignet sind, Bilder enthalten, die aufgenommen wurden: aus zwei oder mehr unterschiedlichen Positionen, aus unterschiedlichen Sichtfeldern, unter Verwendung unterschiedlicher Brennweiten, zusammen mit Parallaxeninformationen usw.
-
In einer Ausführungsform kann das System 100 beispielsweise eine Drei-Kamera-Konfiguration unter Verwendung der Bildaufnahmevorrichtungen 122, 124 und 126 implementieren. In einer solchen Konfiguration kann die Bildaufnahmevorrichtung 122 ein enges Sichtfeld bereitstellen (z. B. 34 Grad oder andere Werte, die aus einem Bereich von etwa 20 bis 45 Grad usw. ausgewählt sind), die Bildaufnahmevorrichtung 124 kann ein weites Sichtfeld bereitstellen (z. B. 150 Grad oder andere Werte, die aus einem Bereich von etwa 100 bis etwa 180 Grad ausgewählt sind), und die Bildaufnahmevorrichtung 126 kann ein mittleres Sichtfeld bereitstellen (z. B. 46 Grad oder andere Werte, die aus einem Bereich von etwa 35 bis etwa 60 Grad ausgewählt sind). In einigen Ausführungsformen kann die Bildaufnahmevorrichtung 126 als eine Haupt- oder Primärkamera agieren. Die Bildaufnahmevorrichtungen 122, 124 und 126 können hinter dem Rückspiegel 310 positioniert sein und im Wesentlichen nebeneinander (z. B. mit 6 cm Abstand) positioniert sein Ferner können in einigen Ausführungsformen, wie vorstehend diskutiert, eine oder mehrere der Bildaufnahmevorrichtungen 122, 124 und 126 hinter dem Blendschutz 380, der mit der Windschutzscheibe des Fahrzeugs 200 bündig ist, montiert sein. Eine solche Abschirmung kann funktionieren, um die Auswirkungen irgendwelcher Reflexionen aus dem Fahrzeuginneren auf die Bildaufnahmevorrichtungen 122, 124 und 126 zu minimieren.
-
In einer weiteren Ausführungsform kann, wie vorstehend in Zusammenhang mit den 3B und 3C diskutiert, die Kamera mit dem weiten Sichtfeld (z. B. die Bildaufnahmevorrichtung 124 in dem vorstehenden Beispiel) niedriger montiert sein als die Kameras mit dem engen und dem Hauptgesichtsfeld (z. B. die Bildaufnahmevorrichtungen 122 und 126 in dem vorstehenden Beispiel). Diese Konfiguration kann eine freie Sichtlinie von der Kamera mit dem weiten Gesichtsfeld bereitstellen. Um Reflexionen zu reduzieren, können die Kameras nahe der Windschutzscheibe des Fahrzeugs 200 montiert sein und Polarisatoren auf den Kameras enthalten, um reflektiertes Licht zu dämpfen.
-
Ein Drei-Kamera-System kann spezielle Leistungsmerkmale bereitstellen. Einige Ausführungsformen können zum Beispiel eine Möglichkeit enthalten, die Detektion von Objekten durch eine Kamera basierend auf Detektionsergebnissen aus einer weiteren Kamera zu validieren. In der vorstehend diskutierten Drei-Kamera-Konfiguration kann die Verarbeitungseinheit 110 beispielsweise drei Verarbeitungsvorrichtungen enthalten (z. B. drei Prozessorchips der EyeQ-Serie, wie vorstehend diskutiert), wobei jede Verarbeitungsvorrichtung für die Verarbeitung von Bildern, die durch eine oder mehrere der Bildaufnahmevorrichtungen 122, 124 und 126 aufgenommen wurden, dediziert ist.
-
In einem Drei-Kamera-System kann eine erste Verarbeitungsvorrichtung Bilder sowohl von der Hauptkamera als auch von der Kamera mit engem Sichtfeld empfangen und eine Bildverarbeitung der FOV-Kamera ausführen, um beispielsweise andere Fahrzeuge, Fußgänger, Fahrspurmarkierungen, Verkehrszeichen, Ampeln und andere Straßenobjekte zu detektieren. Ferner kann die erste Verarbeitungsvorrichtung eine Disparität von Pixeln zwischen den Bildern der Hauptkamera und der engen Kamera berechnen und eine 3D-Rekonstruktion der Umgebung des Fahrzeugs 200 erzeugen. Die erste Verarbeitungsvorrichtung kann dann die 3D-Rekonstruktion mit 3D-Kartendaten oder mit 3D-Informationen, die basierend auf Informationen aus einer weiteren Kamera berechnet wurden, kombinieren.
-
Die zweite Verarbeitungsvorrichtung kann Bilder von der Hauptkamera empfangen und eine Bildverarbeitung ausführen, um andere Fahrzeuge, Fußgänger, Fahrspurmarkierungen, Verkehrszeichen, Ampeln und andere Straßenobjekte zu detektieren. Zusätzlich kann die zweite Verarbeitungsvorrichtung eine Kameraverschiebung berechnen und basierend auf der Verschiebung eine Disparität von Pixeln zwischen aufeinanderfolgenden Bildern berechnen und eine 3D-Rekonstruktion der Szene (z. B. eine Struktur aus Bewegung) erzeugen. Die zweite Verarbeitungsvorrichtung kann die auf der Struktur aus der Bewegung basierende 3D-Rekonstruktion an die erste Verarbeitungsvorrichtung senden, um mit den 3D-Stereobildern kombiniert zu werden.
-
Die dritte Verarbeitungsvorrichtung kann Bilder von der Kamera mit weitem FOV empfangen und die Bilder verarbeiten, um Fahrzeuge, Fußgänger, Fahrspurmarkierungen, Verkehrszeichen, Ampeln und andere Straßenobjekte zu detektieren. Die dritte Verarbeitungsvorrichtung kann ferner zusätzliche Verarbeitungsanweisungen ausführen, um Bilder zu analysieren, um Objekte, die sich im Bild bewegen, zu identifizieren, wie z. B. Fahrzeuge, die die Fahrspur wechseln, Fußgänger usw.
-
Einige Ausführungsformen, die Ströme bildbasierter Informationen, die unabhängig voneinander aufgenommen und verarbeitet werden, aufweisen, können eine Möglichkeit zum Bereitstellen von Redundanz in dem System bereitstellen. Eine solche Redundanz kann beispielsweise das Verwenden einer ersten Bildaufnahmevorrichtung und der verarbeiteten Bilder aus dieser Vorrichtung, um Informationen zu validieren und/oder zu ergänzen, die durch die Aufnehmen und Verarbeiten von Bildinformationen aus wenigstens einer zweiten Bildaufnahmevorrichtung erhalten wurden, enthalten.
-
In einigen Ausführungsformen kann das System 100 zwei Bildaufnahmevorrichtungen (z. B. die Bildaufnahmevorrichtungen 122 und 124) zum Bereitstellen von Navigationsunterstützung für das Fahrzeug 200 verwenden und eine dritte Bildaufnahmevorrichtung (z. B. die Bildaufnahmevorrichtung 126) verwenden, um Redundanz bereitzustellen und die Analyse der von den beiden anderen Bildaufnahmevorrichtungen empfangenen Daten zu validieren. Beispielsweise können in einer solchen Konfiguration die Bildaufnahmevorrichtungen 122 und 124 Bilder zur Stereoanalyse durch das System 100 zum Navigieren des Fahrzeugs 200 bereitstellen, während die Bildaufnahmevorrichtung 126 Bilder zur Monokularanalyse durch das System 100 bereitstellen kann, um Redundanz und Validierung von Informationen, die basierend auf von der Bildaufnahmevorrichtung 122 und/oder von der Bildaufnahmevorrichtung 124 aufgenommenen Bildern erhalten wurden, bereitzustellen. Das heißt, die Bildaufnahmevorrichtung 126 (und eine entsprechende Verarbeitungsvorrichtung) kann als redundantes Teilsystem zum Bereitstellen einer Überprüfung der von den Bildaufnahmevorrichtungen 122 und 124 abgeleiteten Analyse betrachtet werden (z. B. zum Bereitstellen eines automatischen Notbremssystems (AEB-Systems)). Darüber hinaus können in einigen Ausführungsformen die Redundanz und Validierung empfangener Daten basierend auf Informationen, die von einem oder mehreren Sensoren (z. B. Radar, Lidar, akustische Sensoren, Informationen, die von einem oder mehreren Sender/Empfängern außerhalb des Fahrzeugs empfangen werden, usw.) empfangen werden, ergänzt werden.
-
Ein Fachmann wird erkennen, dass die vorstehend genannten Kamerakonfigurationen, Kameraplatzierungen, Anzahl der Kameras, Kameraorte usw. nur Beispiele sind. Diese und andere Komponenten, die in Bezug auf das Gesamtsystem beschrieben sind, können in einer Vielzahl unterschiedlicher Konfigurationen zusammengebaut und verwendet werden, ohne dass dies von dem Schutzbereich der offenbarten Ausführungsformen abweicht. Weitere Einzelheiten zur Verwendung eines Mehrkamerasystems zum Bereitstellen von Fahrerassistenz und/oder autonomen Fahrzeugfunktionen folgen nachstehend.
-
4 ist ein beispielhaftes funktionales Blockdiagramm des Speichers 140 und/oder 150, in dem Anweisungen zum Ausführen einer oder mehrerer Operationen konsistent mit den offenbarten Ausführungsformen gespeichert/programmiert sein können. Obwohl sich das Folgende auf den Speicher 140 bezieht, wird ein Fachmann erkennen, dass die Anweisungen in dem Speicher 140 und/oder 150 gespeichert sein können.
-
Wie in 4 gezeigt ist, kann der Speicher 140 ein Monokularbildanalysemodul 402, ein Stereobildanalysemodul 404 zur Stereobildanalyse, ein Geschwindigkeits- und Beschleunigungsmodul 406 und ein Navigationsreaktionsmodul 408 speichern. Die offenbarten Ausführungsformen sind nicht auf irgendeine spezielle Konfiguration des Speichers 140 beschränkt. Ferner kann der Anwendungsprozessor 180 und/oder der Bildprozessor 190 die Anweisungen ausführen, die in irgendeinem der in dem Speicher 140 enthaltenen Module 402, 404, 406 und 408 gespeichert sind. Ein Fachmann wird verstehen, dass sich Bezugnahmen in der folgenden Diskussion auf die Verarbeitungseinheit 110 auf den Anwendungsprozessor 180 und den Bildprozessor 190 einzeln oder gemeinsam beziehen können. Dementsprechend können die Schritte jedes der folgenden Prozesse durch eine oder mehrere Verarbeitungsvorrichtungen ausgeführt werden.
-
In einer Ausführungsform kann das Monokularbildanalysemodul 402 Anweisungen (wie z. B. Software für Computersehen) speichern, die dann, wenn sie durch die Verarbeitungseinheit 110 ausgeführt werden, eine Monokularbildanalyse einer Gruppe von Bildern, die durch eine der Bildaufnahmevorrichtungen 122, 124 und 126 erfasst wurden, ausführen. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 Informationen aus einer Gruppe von Bildern mit zusätzlichen Sensorinformationen (z. B. Informationen aus Radar, Lidar usw.) kombinieren, um die Monokularbildanalyse auszuführen. Wie in Verbindung mit den 5A-5D nachstehend beschrieben ist, kann das Monokularbildanalysemodul 402 Anweisungen zum Detektieren einer Gruppe von Merkmalen innerhalb der Gruppe von Bildern enthalten, wie z.B. Fahrspurmarkierungen, Fahrzeuge, Fußgänger, Straßenschilder, Autobahnausfahrten, Ampeln, gefährliche Objekte und irgendein anderes Merkmal, das einer Umgebung eines Fahrzeugs zugeordnet ist. Basierend auf der Analyse kann das System 100 (z.B. über die Verarbeitungseinheit 110) eine oder mehrere Navigationsreaktionen in dem Fahrzeug 200 veranlassen, wie z.B. ein Abbiegen, einen Spurwechsel, eine Änderung der Beschleunigung und dergleichen, wie nachstehend in Verbindung mit dem Navigationsreaktionsmodul 408 diskutiert ist.
-
In einer Ausführungsform kann das Stereobildanalysemodul 404 Anweisungen (z. B. Software für Computersehen) speichern, die dann, wenn sie durch die Verarbeitungseinheit 110 ausgeführt werden, eine Stereobildanalyse einer ersten und einer zweiten Gruppe von Bildern, die durch eine Kombination von Bildaufnahmevorrichtungen erfasst wurden, die aus den Bildaufnahmevorrichtungen 122, 124 und 126 ausgewählt wurden, ausführen. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 Informationen aus der ersten und der zweiten Gruppe von Bildern mit zusätzlichen Sensorinformationen (z. B. Informationen aus Radar) kombinieren, um die Stereobildanalyse auszuführen. Beispielsweise kann das Stereobildanalysemodul 404 Anweisungen zum Ausführen einer Stereobildanalyse basierend auf eine ersten Gruppe von Bildern, die durch die Bildaufnahmevorrichtung 124 erfasst wurden, und einer zweiten Gruppe von Bildern, die durch die Bildaufnahmevorrichtung 126 erfasst wurden, enthalten. Wie nachstehend in Verbindung mit 6 beschrieben, kann das Stereobildanalysemodul 404 Anweisungen zum Detektieren einer Gruppe von Merkmalen innerhalb der ersten und der zweiten Gruppe von Bildern enthalten, wie z.B. Fahrspurmarkierungen, Fahrzeuge, Fußgänger, Straßenschilder, Autobahnausfahrten, Ampeln, gefährliche Objekte und dergleichen. Basierend auf der Analyse kann das System 100 eine oder mehrere Navigationsreaktionen in dem Fahrzeug 200 veranlassen, wie z.B. ein Abbiegen, einen Spurwechsel, eine Änderung der Beschleunigung und dergleichen, wie nachstehend in Verbindung mit dem Navigationsreaktionsmodul 408 diskutiert ist. Darüber hinaus kann das Stereobildanalysemodul 404 in einigen Ausführungsformen Techniken implementieren, die einem trainierten System (z. B. einem neuronalen Netz oder einem tiefen neuronalen Netz) oder einem untrainierten System zugeordnet sind, z. B. einem System, das konfiguriert sein kann, Algorithmen für Computersehen zu verwenden, um Objekte in einer Umgebung, von denen sensorische Informationen aufgenommen und verarbeitet wurden, zu detektieren und/oder zu kennzeichnen. In einer Ausführungsform kann das Stereobildanalysemodul 404 und/oder andere Bildverarbeitungsmodule konfiguriert sein, eine Kombination aus einem trainierten und einem untrainierten System zu verwenden.
-
In einer Ausführungsform kann das Geschwindigkeits- und Beschleunigungsmodul 406 Software speichern, die konfiguriert ist, Daten zu analysieren, die von einer oder mehreren Rechen- und elektromechanischen Vorrichtungen in dem Fahrzeug 200, die konfiguriert sind, eine Änderung der Geschwindigkeit und/oder Beschleunigung des Fahrzeugs 200 zu veranlassen, empfangen werden. Beispielsweise kann die Verarbeitungseinheit 110 Anweisungen ausführen, die dem Geschwindigkeits- und Beschleunigungsmodul 406 zugeordnet sind, um eine Zielgeschwindigkeit für das Fahrzeug 200 basierend auf Daten, die aus der Ausführung des Monokularbildanalysemoduls 402 und/oder des Stereobildanalysemoduls 404 abgeleitet wurden, zu berechnen. Solche Daten können beispielsweise eine Zielposition, Geschwindigkeit und/oder Beschleunigung, die Position und/oder Geschwindigkeit des Fahrzeugs 200 relativ zu einem nahegelegenen Fahrzeug, einem Fußgänger oder einem Straßenobjekt, Positionsinformationen für das Fahrzeug 200 relativ zu Fahrspurmarkierungen der Straße und dergleichen enthalten. Zusätzlich kann die Verarbeitungseinheit 110 eine Zielgeschwindigkeit für das Fahrzeug 200 basierend auf Sensoreingaben (z. B. Informationen von Radar) und Eingaben von anderen Systemen des Fahrzeugs 200, wie dem Drosselsystem 220, dem Bremssystem 230 und/oder dem Lenksystem 240 des Fahrzeugs 200, berechnen. Basierend auf der berechneten Zielgeschwindigkeit kann die Verarbeitungseinheit 110 elektronische Signale an das Drosselsystem 220, das Bremssystem 230 und/oder das Lenksystem 240 des Fahrzeugs 200 senden, um eine Änderung der Geschwindigkeit und/oder der Beschleunigung auszulösen, indem beispielsweise die Bremse physikalisch heruntergedrückt oder das Fahrpedal des Fahrzeugs 200 nachgelassen wird.
-
In einer Ausführungsform kann das Navigationsreaktionsmodul 408 Software speichern, die durch die von der Verarbeitungseinheit 110 ausgeführt werden kann, um eine gewünschte Navigationsreaktion basierend auf Daten, die aus der Ausführung des Monokularbildanalysemoduls 402 und/oder des Stereobildanalysemoduls 404 abgeleitet sind, zu bestimmen. Solche Daten können Positions- und Geschwindigkeitsinformationen, die nahegelegenen Fahrzeugen, Fußgängern und Straßenobjekten zugeordnet sind, Zielpositionsinformationen für das Fahrzeug 200 und dergleichen enthalten. Zusätzlich kann in einigen Ausführungsformen die Navigationsreaktion (teilweise oder vollständig) auf Kartendaten, einer vorbestimmten Position des Fahrzeugs 200 und/oder einer relativen Geschwindigkeit oder einer relativen Beschleunigung zwischen dem Fahrzeug 200 und einem oder mehreren Objekten, die durch die Ausführung des Monokularbildanalysemoduls 402 und/oder des Stereobildanalysemoduls 404 detektiert wurden, basieren. Das Navigationsreaktionsmodul 408 kann auch eine gewünschte Navigationsreaktion basierend auf Sensoreingaben (z.B. Informationen aus dem Radar) und Eingaben von anderen Systemen des Fahrzeugs 200, wie dem Drosselsystem 220, dem Bremssystem 230 und dem Lenksystem 240 des Fahrzeugs 200, bestimmen. Basierend auf der gewünschten Navigationsreaktion kann die Verarbeitungseinheit 110 elektronische Signale an das Drosselsystem 220, das Bremssystem 230 und das Lenksystem 240 des Fahrzeugs 200 senden, um eine gewünschte Navigationsreaktion durch beispielsweise Drehen des Lenkrad des Fahrzeugs 200, um eine Drehung um einen vorbestimmten Winkel zu erreichen, auszulösen. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 die Ausgabe des Navigationsreaktionsmoduls 408 (z. B. die gewünschte Navigationsreaktion) als Eingabe für die Ausführung des Geschwindigkeits- und Beschleunigungsmoduls 406 verwenden, um eine Änderung der Geschwindigkeit des Fahrzeugs 200 zu berechnen.
-
Darüber hinaus kann irgendeines der hier offenbarten Module (z. B. die Module 402, 404 und 406) Techniken implementieren, die einem trainierten System (z. B. einem neuronalen Netz oder einem tiefen neuronalen Netz) oder einem untrainierten System zugeordnet sind.
-
5A ist ein Ablaufplan, der einen beispielhaften Prozess 500A zum Veranlassen einer oder mehrerer Navigationsreaktionen basierend auf einer Monokularbildanalyse konsistent mit offenbarten Ausführungsformen zeigt. In Schritt 510 kann die Verarbeitungseinheit 110 mehrere Bilder über die Datenschnittstelle 128 zwischen der Verarbeitungseinheit 110 und der Bilderfassungseinheit 120 empfangen. Beispielsweise kann eine Kamera, die in der Bilderfassungseinheit 120 enthalten ist (z. B. die Bildaufnahmevorrichtung 122 mit dem Sichtfeld 202), mehrere Bilder eines Bereichs vor dem Fahrzeug 200 (oder beispielsweise zu den Seiten oder am Heck eines Fahrzeugs) aufnehmen und sie über eine Datenverbindung (z. B. digital, drahtgebunden, USB, drahtlos, Bluetooth usw.) an die Verarbeitungseinheit 110 senden. Die Verarbeitungseinheit 110 kann das Monokularbildanalysemodul 402 ausführen, um mehreren Bilder in Schritt 520 zu analysieren, wie in Verbindung mit den 5B-5D nachstehend genauer beschrieben. Durch Ausführen der Analyse kann die Verarbeitungseinheit 110 eine Gruppe von Merkmalen innerhalb der Gruppe von Bilder, wie z. B. Fahrspurmarkierungen, Fahrzeuge, Fußgänger, Straßenschilder, Autobahnausfahrten, Ampeln und dergleichen, detektieren.
-
Die Verarbeitungseinheit 110 kann auch das Monokularbildanalysemodul 402 ausführen, um in Schritt 520 verschiedene Straßengefahren zu detektieren, wie z. B. Teile eines Lkw-Reifens, umgefallene Straßenschilder, lose Ladung, kleine Tiere und dergleichen. Straßengefahren können sich in Struktur, Form, Größe und Farbe unterscheiden, was die Detektion solcher Gefahren erschweren kann. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 das Monokularbildanalysemodul 402 ausführen, um eine Mehrrahmenanalyse der mehreren Bilder auszuführen, um Straßengefahren zu detektieren. Beispielsweise kann die Verarbeitungseinheit 110 die Kamerabewegung zwischen aufeinanderfolgenden Bildrahmen schätzen und die Disparitäten in Pixeln zwischen den Rahmen berechnen, um eine 3D-Karte der Straße zu konstruieren. Die Verarbeitungseinheit 110 kann dann die 3D-Karte verwenden, um die Straßenoberfläche sowie Gefahren, die oberhalb der Straßenoberfläche existieren, zu detektieren.
-
In Schritt 530 kann die Verarbeitungseinheit 110 das Navigationsreaktionsmodul 408 ausführen, um eine oder mehrere Navigationsreaktionen in dem Fahrzeug 200 basierend auf der in Schritt 520 ausgeführten Analyse und den vorstehend in Verbindung mit 4 beschriebenen Techniken zu veranlassen. Die Navigationsreaktionen können beispielsweise ein Abbiegen, einen Spurwechsel, eine Änderung der Beschleunigung und dergleichen enthalten. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 Daten, die aus der Ausführung des Geschwindigkeits- und Beschleunigungsmoduls 406 abgeleitet wurden, verwenden, um die eine oder mehreren Navigationsreaktionen zu veranlassen. Zusätzlich können mehrere Navigationsreaktionen gleichzeitig, nacheinander oder in irgendeiner Kombination stattfinden. Beispielsweise kann die Verarbeitungseinheit 110 das Fahrzeug 200 veranlassen, eine Spur zu wechseln und dann zu beschleunigen, indem sie beispielsweise nacheinander Steuersignale an das Lenksystem 240 und das Drosselsystem 220 des Fahrzeugs 200 sendet. Alternativ kann die Verarbeitungseinheit 110 das Fahrzeug 200 dazu veranlassen, zu bremsen und gleichzeitig die Fahrspur zu wechseln, indem sie beispielsweise gleichzeitig Steuersignale an das Bremssystem 230 und das Lenksystem 240 des Fahrzeugs 200 sendet.
-
5B ist ein Ablaufplan, der einen beispielhaften Prozess 500B zum Detektieren eines oder mehrerer Fahrzeuge und/oder Fußgänger in einer Gruppe von Bildern konsistent mit offenbarten Ausführungsformen zeigt. Die Verarbeitungseinheit 110 kann das Monokularbildanalysemodul 402 ausführen, um den Prozess 500B zu implementieren. In Schritt 540 kann die Verarbeitungseinheit 110 eine Gruppe von Kandidatenobjekten, die mögliche Fahrzeuge und/oder Fußgänger repräsentieren, bestimmen. Beispielsweise kann die Verarbeitungseinheit 110 ein oder mehrere Bilder abtasten, die Bilder mit einem oder mehreren vorgegebenen Mustern vergleichen und in jedem Bild mögliche Orte, die Objekte von Interesse (z. B. Fahrzeuge, Fußgänger oder Teile davon) enthalten können, identifizieren. Die vorbestimmten Muster können konstruiert sein, um eine hohe Rate von „falschen Treffern“ und eine niedrige Rate von „Übersehen“ zu erreichen Beispielsweise kann die Verarbeitungseinheit 110 einen niedrigen Schwellenwert für die Ähnlichkeit mit vorgegebenen Mustern verwenden, um die Kandidatenobjekte als mögliche Fahrzeuge oder Fußgänger zu identifizieren. Auf diese Weise kann die Verarbeitungseinheit 110 die Wahrscheinlichkeit verringern, dass ein Kandidatenobjekt, das ein Fahrzeug oder einen Fußgänger repräsentiert, übersehen (z. B. nicht identifiziert) wird.
-
In Schritt 542 kann die Verarbeitungseinheit 110 die Gruppe der Kandidatenobjekte filtern, um spezielle Kandidaten (z. B. irrelevante oder weniger relevante Objekte) basierend Klassifizierungskriterien auszuschließen. Solche Kriterien können aus verschiedenen Eigenschaften abgeleitet werden, die Objekttypen zugeordnet sind, die in einer Datenbank (z.B. einer Datenbank, die in dem Speicher 140 gespeichert ist) gespeichert sind. Eigenschaften können Objektform, Abmessungen, Textur, Position (z. B. relativ zu dem Fahrzeug 200) und dergleichen enthalten. Somit kann die Verarbeitungseinheit 110 eine oder mehrere Gruppen von Kriterien verwenden, um falsche Kandidaten aus der Gruppe der Kandidatenobjekte abzulehnen.
-
In Schritt 544 kann die Verarbeitungseinheit 110 mehrere Rahmen von Bildern analysieren, um zu bestimmen, ob die Objekte in der Gruppe der Kandidatenobjekten Fahrzeuge und/oder Fußgänger repräsentieren. Beispielsweise kann die Verarbeitungseinheit 110 ein detektiertes Kandidatenobjekt über aufeinanderfolgende Rahmen hinweg verfolgen und Rahmen-für-Rahmen-Daten, die dem detektierten Objekt zugeordnet sind, (z. B. Größe, Position relativ zu dem Fahrzeug 200 usw.) akkumulieren. Zusätzlich kann die Verarbeitungseinheit 110 Parameter für das detektierte Objekt schätzen und die Rahmen-für-Rahmen-Positionsdaten des Objekts mit einer vorhergesagten Position vergleichen.
-
In Schritt 546 kann die Verarbeitungseinheit 110 eine Gruppe von Messungen für die detektierten Objekte erstellen. Solche Messungen können beispielsweise Positions-, Geschwindigkeits- und Beschleunigungswerte (relativ zu dem Fahrzeug 200), die den detektierten Objekten zugeordnet sind, enthalten. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 die Messungen basierend auf Schätztechniken unter Verwendung einer Folge von zeitbasierten Beobachtungen wie z. B. Kalman-Filtern oder linearer quadratischer Schätzung (LQE) und/oder basierend auf verfügbaren Modellierungsdaten für unterschiedliche Objekttypen (z. B. Autos, Lastwagen, Fußgänger, Fahrräder, Straßenschilder usw.) erstellen. Die Kalman-Filter können auf einer Messung der Größenordnung eines Objekts basieren, wobei die Messung der Größenordnung proportional der Zeit bis zur Kollision ist (z. B. die Zeit, die das Fahrzeug 200 benötigt, um das Objekt zu erreichen). Somit kann die Verarbeitungseinheit 110 durch Ausführen der Schritte 540-546 Fahrzeuge und Fußgänger, die in der Gruppe der aufgenommenen Bilder erscheinen, identifizieren und Informationen (z. B. Position, Geschwindigkeit, Größe), die den Fahrzeugen und Fußgängern zugeordnet sind, ableiten. Basierend auf der Identifikation und den abgeleiteten Informationen kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen in dem Fahrzeug 200 veranlassen, wie vorstehend in Verbindung mit 5A beschrieben ist.
-
In Schritt 548 kann die Verarbeitungseinheit 110 eine Analyse des optischen Flusses eines oder mehrerer Bilder ausführen, um die Wahrscheinlichkeit dafür zu verringern, dass ein „falscher Treffer“ detektiert und ein Kandidatenobjekt, das ein Fahrzeug oder einen Fußgänger repräsentiert, übersehen wird. Die Analyse des optischen Flusses kann sich beispielsweise auf die Analyse von Bewegungsmustern relativ zu dem Fahrzeug 200 in dem einen oder den mehreren Bildern, die anderen Fahrzeugen und Fußgängern in zugeordnet sind und sich von der Bewegung der Straßenoberfläche unterscheiden, beziehen. Die Verarbeitungseinheit 110 kann die Bewegung der in Kandidatenobjekte berechnen, indem sie die unterschiedlichen Positionen der Objekte über mehrere, zu unterschiedlichen Zeiten aufgenommene Bildrahmen beobachtet. Die Verarbeitungseinheit 110 kann die Positions- und Zeitwerte als Eingaben in mathematische Modelle zum Berechnen der Bewegung der Kandidatenobjekte verwenden. Somit kann die Analyse des optischen Flusses ein weiteres Verfahren zum Detektieren von Fahrzeugen und Fußgängern, die sich in der Nähe von Fahrzeug 200 befinden, bereitstellen. Die Verarbeitungseinheit 110 kann eine Analyse des optischen Flusses in Kombination mit den Schritten 540-546 ausführen, um Redundanz für das Detektieren von Fahrzeugen und Fußgängern bereitzustellen und die Zuverlässigkeit des Systems 100 zu erhöhen.
-
5C ist ein Ablaufplan, der einen beispielhaften Prozess 500C zum Detektieren von Straßenmarkierungen und/oder Fahrspurgeometrieinformationen in einer Gruppe von Bildern konsistent mit offenbarten Ausführungsformen zeigt. Die Verarbeitungseinheit 110 kann das Monokularbildanalysemodul 402 ausführen, um den Prozess 500C zu implementieren. In Schritt 550 kann die Verarbeitungseinheit 110 eine Gruppe von Objekten durch Abtasten eines oder mehrerer Bilder detektieren. Um Segmente von Fahrspurmarkierungen, Informationen zur Fahrspurgeometrie und andere relevante Straßenmarkierungen zu detektieren, kann die Verarbeitungseinheit 110 die Gruppe der Objekte filtern, um diejenigen auszuschließen, die als irrelevant bestimmt werden (z. B. kleinere Schlaglöcher, kleine Steine usw.). In Schritt 552 kann die Verarbeitungseinheit 110 die in Schritt 550 detektierten Segmente, die zur gleichen Straßenmarkierung oder Fahrspurmarkierung gehören, zusammen gruppieren. Basierend auf der Gruppierung kann die Verarbeitungseinheit 110 ein Modell zum Repräsentieren der detektierten Segmente entwickeln, wie z. B. ein mathematisches Modell.
-
In Schritt 554 kann die Verarbeitungseinheit 110 eine Gruppe von den detektierten Segmenten zugeordneten Messungen erstellen. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Projektion der detektierten Segmente von der Bildebene auf die Ebene der realen Welt erzeugen. Die Projektion kann durch ein Polynom 3. Grades charakterisiert werden, dessen Koeffizienten den physikalischen Eigenschaften wie z. B. der Position, der Neigung, der Krümmung und der Ableitung der Krümmung der detektierten Straße entsprechen. Bei der Erzeugung der Projektion kann die Verarbeitungseinheit 110 Änderungen der Fahrbahnoberfläche sowie die dem Fahrzeug 200 zugeordneten Neigungs- und Rollraten berücksichtigen. Zusätzlich kann die Verarbeitungseinheit 110 durch Analysieren von auf der Straßenoberfläche vorhandenen Positions- und Bewegungshinweisen die Straßensteigung modellieren. Ferner kann die Verarbeitungseinheit 110 durch Verfolgen einer Gruppe von Merkmalspunkten in einem oder mehreren Bildern die dem Fahrzeug 200 zugeordneten Neigungs- und Rollraten schätzen.
-
In Schritt 556 kann die Verarbeitungseinheit 110 eine Mehrrahmenanalyse ausführen, beispielsweise durch Verfolgen der detektierten Segmente über aufeinanderfolgende Bildrahmen und Akkumulieren von Rahmen-für-Rahmen-Daten, die den erkannten Segmenten zugeordnet sind. Wenn die Verarbeitungseinheit 110 eine Mehrrahmenanalyse ausführt, kann die in Schritt 554 erstellte Gruppe von Messungen zuverlässiger werden und einem zunehmend höheren Vertrauensniveau zugeordnet werden. Somit kann die Verarbeitungseinheit 110 durch Ausführen der Schritte 550, 552, 554 und 556 Straßenmarkierungen, die in der Gruppe aufgenommener Bildern erscheinen, identifizieren und Informationen über die Fahrspurgeometrie ableiten. Basierend auf der Identifikation und den abgeleiteten Informationen kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen in dem Fahrzeug 200 veranlassen, wie vorstehend in Verbindung mit 5A beschrieben ist.
-
In Schritt 558 kann die Verarbeitungseinheit 110 zusätzliche Informationsquellen berücksichtigen, um ferner ein Sicherheitsmodell für das Fahrzeug 200 im Kontext seiner Umgebung zu entwickeln. Die Verarbeitungseinheit 110 kann das Sicherheitsmodell verwenden, um einen Kontext, in dem das System 100 die autonome Steuerung des Fahrzeugs 200 in einer sicheren Weise ausführen kann, zu definieren. Um das Sicherheitsmodell zu entwickeln, kann die Verarbeitungseinheit 110 in einigen Ausführungsformen die Position und Bewegung anderer Fahrzeuge, die detektierten Straßenränder und Sperren und/oder allgemeine Beschreibungen der Straßenform, die aus Kartendaten extrahiert werden (wie z. B. Daten aus der Kartendatenbank 160), berücksichtigen. Durch die Berücksichtigung zusätzlicher Informationsquellen kann die Verarbeitungseinheit 110 Redundanz bei der Detektion von Straßenmarkierungen und Fahrspurgeometrie bereitstellen und die Zuverlässigkeit des Systems 100 erhöhen.
-
5D ist ein Ablaufplan, der einen beispielhaften Prozess 500D zum Detektieren von Verkehrsampeln in einer Gruppe von Bildern konsistent mit offenbarten Ausführungsformen zeigt. Die Verarbeitungseinheit 110 kann das Monokularbildanalysemodul 402 ausführen, um den Prozess 500D zu implementieren. In Schritt 560 kann die Verarbeitungseinheit 110 die Gruppe von Bildern abtasten und Objekte, die an Orten in den Bildern erscheinen, die wahrscheinlich Ampeln enthalten, identifizieren. Beispielsweise kann die Verarbeitungseinheit 110 die identifizierten Objekte filtern, um eine Gruppe von Kandidatenobjekten zu erstellen, wobei diejenigen Objekte ausgeschlossen werden, bei denen es unwahrscheinlich ist, dass sie einer Ampel entsprechen. Das Filtern kann basierend auf verschiedenen Eigenschaften, die Verkehrsampeln zugeordnet sind, wie z. B. Form, Abmessungen, Textur, Position (z. B. relativ zum Fahrzeug 200) und dergleichen, erfolgen. Solche Eigenschaften können auf mehreren Beispielen von Ampeln und Verkehrssteuerungssignalen basieren und in einer Datenbank gespeichert sein. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Mehrrahmenanalyse für die Gruppe der Kandidatenobjekte, die mögliche Verkehrsampeln widerspiegeln, ausführen. Beispielsweise kann die Verarbeitungseinheit 110 die Kandidatenobjekte über aufeinanderfolgende Bildrahmen verfolgen, die Position der Kandidatenobjekte in der realen Welt schätzen und diejenigen Objekte herausfiltern, die sich bewegen (für die es unwahrscheinlich ist, dass sie Ampeln sind). In einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Farbanalyse der Kandidatenobjekte ausführen und die relative Position der detektierten Farben, die innerhalb möglicher Ampeln erscheinen, identifizieren.
-
In Schritt 562 kann die Verarbeitungseinheit 110 die Geometrie einer Straßenkreuzung analysieren. Die Analyse kann auf irgendeiner Kombination des Folgenden basieren: (i) die Anzahl der Fahrspuren, die auf beiden Seiten des Fahrzeugs 200 detektiert werden, (ii) Markierungen (z. B. Pfeilmarkierungen), die auf der Straße detektiert werden, und (iii) Beschreibungen der Straßenkreuzung, die aus Kartendaten (z. B. Daten aus der Kartendatenbank 160) extrahiert werden. Die Verarbeitungseinheit 110 kann die Analyse unter Verwendung von Informationen, die aus der Ausführung des Monokularbildanalysemoduls 402 abgeleitet sind, durchführen. Zusätzlich kann die Verarbeitungseinheit 110 eine Entsprechung zwischen den in Schritt 560 detektierten Ampeln und den in der Nähe des Fahrzeugs 200 erscheinenden Fahrspuren bestimmen.
-
Wenn sich das Fahrzeug 200 der Straßenkreuzung nähert, kann die Verarbeitungseinheit 110 in Schritt 564 das der analysierten Straßenkreuzungsgeometrie und den erkannten Ampeln zugeordnete Vertrauensniveau aktualisieren. Beispielsweise kann die Anzahl der Ampeln, die geschätzt an der Straßenkreuzung erscheinen, im Vergleich zu der Anzahl, die tatsächlich an der Straßenkreuzung erscheint, das Vertrauensniveau beeinflussen. Somit kann die Verarbeitungseinheit 110 basierend auf dem Vertrauensniveau die Steuerung an den Fahrer des Fahrzeugs 200 übergeben, um die Sicherheitsbedingungen zu verbessern. Die Verarbeitungseinheit 110 kann durch Ausführen der Schritte 560, 562, 564 und 554 Ampeln, die in der Gruppe aufgenommener Bilder erscheinen, identifizieren und Informationen über die Straßenkreuzungsgeometrie analysieren. Basierend auf der Identifizierung und der Analyse kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen in dem Fahrzeug 200 veranlassen, wie vorstehend in Verbindung mit 5A beschrieben ist.
-
5E ist ein Ablaufplan, der einen beispielhaften Prozess 500E zum Veranlassen einer oder mehrerer Navigationsreaktionen in dem Fahrzeug 200 basierend auf einem Fahrzeugweg konsistent mit offenbarten Ausführungsformen zeigt. In Schritt 570 kann die Verarbeitungseinheit 110 einen initialen Fahrzeugweg, der dem Fahrzeug 200 zugeordnet ist, konstruieren. Der Fahrzeugweg kann unter Verwendung einer Punktmenge repräsentiert sein, die in Koordinaten (x, z) ausgedrückt sind, und der Abstand di zwischen zwei Punkten in der Punktmenge kann in den Bereich von 1 bis 5 Metern fallen. In einer Ausführungsform kann die Verarbeitungseinheit 110 den initialen Fahrzeugweg unter Verwendung von zwei Polynomen konstruieren, z. B. einem linken und einem rechten Straßenpolynom. Die Verarbeitungseinheit 110 kann den geometrischen Mittelpunkt zwischen den beiden Polynomen berechnen und jeden Punkt, der in dem resultierenden Fahrzeugweg enthalten ist, um einen vorbestimmten Versatz (z. B. einen intelligenten Fahrspurversatz) versetzen, falls vorhanden (ein Versatz von Null kann einer Fahrt in der Mitte einer Fahrspur entsprechen). Der Versatz kann in einer Richtung senkrecht zu einem Segment zwischen zwei beliebigen Punkten auf dem Fahrzeugweg sein. In einer weiteren Ausführungsform kann die Verarbeitungseinheit 110 ein Polynom und eine geschätzte Fahrspurbreite verwenden, um jeden Punkt des Fahrzeugwegs um die Hälfte der geschätzten Fahrspurbreite plus einem vorgegebenen Versatz (z. B. einen intelligenten Fahrspurversatz) zu versetzen.
-
In Schritt 572 kann die Verarbeitungseinheit 110 den in Schritt 570 konstruierten Fahrzeugweg aktualisieren. Die Verarbeitungseinheit 110 kann den in Schritt 570 konstruierten Fahrzeugweg unter Verwendung einer höheren Auflösung neu konstruieren, so dass der Abstand dk zwischen zwei Punkten in der den Fahrzeugpfad repräsentierenden Punktmenge kleiner ist als der vorstehend beschriebene Abstand di. Der Abstand dk kann beispielsweise in den Bereich von 0,1 bis 0,3 Metern fallen. Die Verarbeitungseinheit 110 kann den Fahrzeugweg mit Hilfe eines parabolischen Polynomzug-Algorithmus neu konstruieren, der einen kumulativen Abstandsvektor S, der der Gesamtlänge des Fahrzeugwegs entspricht, ergeben kann (d. h. basierend auf der Punktmenge, die den Fahrzeugweg repräsentiert).
-
In Schritt 574 kann die Verarbeitungseinheit 110 einen Vorausschau-Punkt (ausgedrückt in Koordinaten als (xl, zl)) basierend auf dem in Schritt 572 konstruierten aktualisierten Fahrzeugweg bestimmen. Die Verarbeitungseinheit 110 kann den Vorausschau-Punkt aus dem kumulativen Abstandsvektor S extrahieren, und der Vorausschau-Punkt kann einem Vorausschau-Abstand und einer Vorausschau-Zeit zugeordnet sein. Der Vorausschau-Abstand, der eine Untergrenze im Bereich von 10 bis 20 Metern aufweisen kann, kann als das Produkt aus der Geschwindigkeit des Fahrzeugs 200 und der Vorausschau-Zeit berechnet werden. Wenn sich beispielsweise die Geschwindigkeit des Fahrzeugs 200 verringert, kann sich auch der Vorausschau-Abstand verringern (z. B. bis er die Untergrenze erreicht). Die Vorausschau-Zeit, die im Bereich von 0,5 bis 1,5 Sekunden sein kann, kann umgekehrt proportional zur Verstärkung eines oder mehrerer Regelkreise sein, die dem Veranlassen einer Navigationsreaktion im Fahrzeug 200 zugeordnet sind, wie z. B. der Regelkreis für die Richtungsfehlerverfolgung. Die Verstärkung des Regelkreises für die Richtungsfehlerverfolgung kann beispielsweise von der Bandbreite eines Gierratenregelkreises, eines Lenkaktorregelkreises, der Querdynamik des Autos und dergleichen abhängen. Die Vorausschau-Zeit ist somit umso kürzer, je größer die Verstärkung des Regelkreises für die Richtungsfehlerverfolgung ist.
-
In Schritt 576 kann die Verarbeitungseinheit 110 einen Richtungsfehler und einen Gierratenbefehl basierend auf dem in Schritt 574 bestimmten Vorausschau-Punkt bestimmen. Die Verarbeitungseinheit 110 kann den Richtungsfehler durch Berechnen des Arkustangens des Vorausschau-Punktes bestimmen, z. B. arctan (xl/ zl). Die Verarbeitungseinheit 110 kann den Gierratenbefehl als Produkt aus dem Richtungsfehler und einer Hochpegel-Steuerverstärkung bestimmen. Die Hochpegel-Steuerverstärkung kann gleich (2 / Vorausschau-Zeit) sein, wenn der Vorausschau-Abstand nicht an der Untergrenze ist. Andernfalls kann die Hochpegel-Steuerverstärkung gleich (2 * Geschwindigkeit des Fahrzeugs 200 / Vorausschau-Abstand) sein.
-
5F ist ein Ablaufplan, der einen beispielhaften Prozess 500F zum Bestimmen, ob ein vorausfahrendes Fahrzeug die Fahrspur wechselt, konsistent mit den offenbarten Ausführungsformen zeigt. In Schritt 580 kann die Verarbeitungseinheit 110 Navigationsinformationen, die einem vorausfahrenden Fahrzeug zugeordnet sind (z. B. einem Fahrzeug, das vor dem Fahrzeug 200 fährt), bestimmen. Beispielsweise kann die Verarbeitungseinheit 110 die Position, die Geschwindigkeit (z. B. Richtung und Geschwindigkeit) und/oder die Beschleunigung des vorausfahrenden Fahrzeugs durch Verwenden der Techniken, die vorstehend in Verbindung mit den 5A und 5B beschrieben sind, bestimmen. Die Verarbeitungseinheit 110 kann auch ein oder mehrere Straßenpolynome, einen Vorausschau-Punkt (der dem Fahrzeug 200 zugeordnet ist) und/oder eine Verfolgungsstrecke (z. B. eine Punktmenge, die einen von dem vorausfahrenden Fahrzeug zurückgelegten Weg beschreiben) durch Verwenden von Techniken, vorstehend in Verbindung mit 5E beschrieben sind, bestimmen.
-
In Schritt 582 kann die Verarbeitungseinheit 110 die in Schritt 580 bestimmten Navigationsinformationen analysieren. In einer Ausführungsform kann die Verarbeitungseinheit 110 den Abstand zwischen einer Verfolgungsstrecke und einem Straßenpolynom (z. B. entlang der Strecke) berechnen. Wenn die Abweichung dieses Abstands entlang der Strecke einen vorgegebenen Schwellenwert übersteigt (beispielsweise 0,1 bis 0,2 Meter auf einer geraden Straße, 0,3 bis 0,4 Meter auf einer mäßig kurvigen Straße und 0,5 bis 0,6 Meter auf einer Straße mit scharfen Kurven), kann die Verarbeitungseinheit 110 bestimmen, dass das vorausfahrende Fahrzeug wahrscheinlich die Spur wechselt. In dem Fall, in dem mehrere Fahrzeuge detektiert werden, die vor dem Fahrzeug 200 fahren, kann die Verarbeitungseinheit 110 die jedem Fahrzeug zugeordneten Verfolgungsstrecken vergleichen. Basierend auf dem Vergleich kann die Verarbeitungseinheit 110 bestimmen, dass ein Fahrzeug, dessen Verfolgungsstrecke nicht mit den Verfolgungsstrecken der anderen Fahrzeuge übereinstimmt, wahrscheinlich die Spur wechselt. Die Verarbeitungseinheit 110 kann zusätzlich die Krümmung der (dem vorausfahrenden Fahrzeug zugeordneten) Verfolgungsstrecke mit der erwarteten Krümmung des Straßensegments, auf dem das vorausfahrende Fahrzeug fährt, vergleichen. Die erwartete Krümmung kann aus Kartendaten (z. B. Daten aus der Kartendatenbank 160), aus Straßenpolynomen, aus den Verfolgungsstrecken anderer Fahrzeuge, aus dem Vorwissen über die Straße und dergleichen extrahiert werden. Falls der Unterschied zwischen der Krümmung der Verfolgungsstrecke und der erwarteten Krümmung des Straßensegments einen vorbestimmten Schwellenwert übersteigt, kann die Verarbeitungseinheit 110 bestimmen, dass das vorausfahrende Fahrzeug wahrscheinlich die Fahrspur wechselt.
-
In einer weiteren Ausführungsform kann die Verarbeitungseinheit 110 die momentane Position des vorausfahrenden Fahrzeugs mit dem Vorausschau-Punkt (der dem Fahrzeug 200 zugeordnet ist) über eine spezifische Zeitspanne (z. B. 0,5 bis 1,5 Sekunden) vergleichen. Wenn der Abstand zwischen der momentanen Position des vorausfahrenden Fahrzeugs und dem Vorausschau-Punkt während der spezifischen Zeitspanne variiert und die kumulative Summe der Variation einen vorbestimmten Schwellenwert übersteigt (beispielsweise 0,3 bis 0,4 Meter auf einer geraden Straße, 0,7 bis 0,8 Meter auf einer mäßig kurvigen Straße und 1,3 bis 1,7 Meter auf einer Straße mit scharfen Kurven), kann die Verarbeitungseinheit 110 bestimmen, dass das vorausfahrende Fahrzeug wahrscheinlich die Spur wechselt. In einer weiteren Ausführungsform kann die Verarbeitungseinheit 110 die Geometrie der Verfolgungsstrecke analysieren, indem sie die seitliche Entfernung, die entlang der Strecke zurückgelegt wurde, mit der erwarteten Krümmung der Verfolgungsstrecke vergleicht. Der zu erwartende Krümmungsradius kann gemäß der folgenden Berechnung bestimmt werden: (δz 2 + δx 2) / 2 / (δx), wobei δx die seitlich zurückgelegte Entfernung repräsentiert und δz die in Längsrichtung zurückgelegte Entfernung repräsentiert. Falls der Unterschied zwischen der zurückgelegten seitlichen Entfernung und der erwarteten Krümmung einen vorbestimmten Schwellenwert (z. B. 500 bis 700 Meter) übersteigt, kann die Verarbeitungseinheit 110 bestimmen, dass das vorausfahrende Fahrzeug wahrscheinlich die Fahrspur wechselt. In einer weiteren Ausführungsform kann die Verarbeitungseinheit 110 die Position des vorausfahrenden Fahrzeugs analysieren. Falls die Position des vorausfahrenden Fahrzeugs ein Straßenpolynom verdeckt (z. B. das vorausfahrende Fahrzeug das Straßenpolynom überlagert), kann die Verarbeitungseinheit 110 bestimmen, dass das vorausfahrende Fahrzeug wahrscheinlich die Fahrspur wechselt. In dem Fall, in dem die Position des vorausfahrenden Fahrzeugs so ist, dass ein weiteres Fahrzeug vor dem vorausfahrenden Fahrzeug detektiert wird und die Verfolgungsstrecken der beiden Fahrzeuge nicht parallel sind, kann die Verarbeitungseinheit 110 bestimmen, dass das (nähere) vorausfahrende Fahrzeug wahrscheinlich die Fahrspur wechselt.
-
In Schritt 584 kann die Verarbeitungseinheit 110 basierend auf der in Schritt 582 ausgeführten Analyse bestimmen, ob das vorausfahrende Fahrzeug 200 die Fahrspur wechselt oder nicht. Beispielsweise kann die Verarbeitungseinheit 110 die Bestimmung basierend auf einem gewichteten Mittelwert der in Schritt 582 ausgeführten Einzelanalysen vornehmen. Im Rahmen eines solchen Schemas kann beispielsweise einer Entscheidung der Verarbeitungseinheit 110, dass das vorausfahrende Fahrzeug wahrscheinlich die Fahrspur wechselt, basierend auf einem speziellen Typ einer Analyse ein Wert „1" zugewiesen werden (und „0“, um eine Bestimmung dass das vorausfahrende Fahrzeug wahrscheinlich nicht die Fahrspur wechselt, zu repräsentieren). Unterschiedlichen Analysen, die in Schritt 582 ausgeführt werden, können unterschiedliche Gewichtungen zugewiesen werden, und die offenbarten Ausführungsformen sind nicht auf eine spezielle Kombination aus Analysen und Gewichtungen beschränkt.
-
6 ist ein Ablaufplan, der einen beispielhaften Prozess 600 zum Veranlassen einer oder mehrerer Navigationsreaktionen basierend auf einer Stereobildanalyse konsistent mit offenbarten Ausführungsformen zeigt. In Schritt 610 kann die Verarbeitungseinheit 110 erste und zweite mehrere Bilder über die Datenschnittstelle 128 empfangen. Beispielsweise können Kameras, die in der Bilderfassungseinheit 120 enthalten sind, (z. B. die Bildaufnahmevorrichtungen 122 und 124 mit den Sichtfeldern 202 und 204) erste und eine zweite mehrere Bilder eines Bereichs vor dem Fahrzeug 200 aufnehmen und sie über eine digitale Verbindung (z. B. USB, drahtlos, Bluetooth usw.) an die Verarbeitungseinheit 110 übertragen. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 die ersten und zweiten mehreren Bilder über zwei oder mehr Datenschnittstellen empfangen. Die offenbarten Ausführungsformen sind nicht auf spezielle Datenschnittstellenkonfigurationen oder Protokolle beschränkt.
-
In Schritt 620 kann die Verarbeitungseinheit 110 das Stereobildanalysemodul 404 ausführen, um eine Stereobildanalyse der ersten und zweiten mehreren Bilder auszuführen, um eine 3D-Karte der Straße vor dem Fahrzeug zu erzeugen und Merkmale in den Bildern, wie z. B. Fahrspurmarkierungen, Fahrzeuge, Fußgänger, Straßenschilder, Autobahnausfahrten, Ampeln, Straßengefahren und dergleichen, zu detektieren. Die Stereobildanalyse kann in ähnlicher Weise ausgeführt werden wie die vorstehend in Verbindung mit den 5A-5D beschriebenen Schritte. Beispielsweise kann die Verarbeitungseinheit 110 das Stereobildanalysemodul 404 ausführen, um Kandidatenobjekte (z. B. Fahrzeuge, Fußgänger, Straßenmarkierungen, Verkehrsampeln, Straßenhindernisse usw.) in den ersten und zweiten mehreren Bildern zu detektieren, eine Teilmenge der Kandidatenobjekte basierend auf verschiedene Kriterien herauszufiltern, und eine Mehrrahmenanalyse ausführen, Messungen erstellen und ein Vertrauensniveau für die verbleibenden Kandidatenobjekte bestimmen. Bei der Ausführung der vorstehenden Schritte kann die Verarbeitungseinheit 110 Informationen sowohl aus den ersten als auch aus den zweiten mehreren Bildern anstatt Informationen allein aus einer Gruppe von Bildern berücksichtigen. Beispielsweise kann die Verarbeitungseinheit 110 die Unterschiede in den Daten auf Pixelebene (oder anderen Datenuntergruppen aus den beiden Strömen aufgenommener Bildern) für ein Kandidatenobjekt, das sowohl in den ersten als auch in den zweiten mehreren Bildern erscheint, analysieren. Als weiteres Beispiel kann die Verarbeitungseinheit 110 eine Position und/oder Geschwindigkeit eines Kandidatenobjekts (z. B. relativ zu dem Fahrzeug 200) schätzen, indem sie beobachtet, dass das Objekt in einem der mehreren Bilder jedoch nicht in dem anderen erscheint, oder in Bezug auf andere Unterschiede, die in Bezug auf Objekte, die in den beiden Bildströmen erscheinen, existieren können. Beispielsweise können Position, Geschwindigkeit und/oder Beschleunigung relativ zu dem Fahrzeug 200 basierend auf Bewegungsbahnen, Positionen, Bewegungsmerkmalen usw. von Merkmalen, die einem Objekt, das in einem oder beiden Bildströmen erscheint, zugeordnet sind, bestimmt werden.
-
In Schritt 630 kann die Verarbeitungseinheit 110 das Navigationsreaktionsmodul 408 ausführen, um eine oder mehrere Navigationsreaktionen in dem Fahrzeug 200 basierend auf der in Schritt 620 ausgeführten Analyse und den vorstehend in Verbindung mit 4 beschriebenen Techniken veranlassen. Die Navigationsreaktionen können beispielsweise ein Abbiegen, einen Spurwechsel, eine Änderung der Beschleunigung, eine Änderung der Geschwindigkeit, Abbremsen und dergleichen enthalten. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 Daten, die aus der Ausführung des Geschwindigkeits- und Beschleunigungsmoduls 406 abgeleitet wurden, verwenden, um die eine oder mehreren Navigationsreaktionen zu veranlassen. Zusätzlich können mehrere Navigationsreaktionen gleichzeitig, nacheinander oder in irgendeiner Kombination stattfinden.
-
7 ist ein Ablaufplan, einen beispielhaften Prozess 700 zum Veranlassen einer oder mehrerer Navigationsreaktionen basierend auf einer Analyse von drei Gruppen von Bildern konsistent mit offenbarten Ausführungsformen zeigt. In Schritt 710 kann die Verarbeitungseinheit 110 erste, zweite und dritte mehrere Bilder über die Datenschnittstelle 128 empfangen. Beispielsweise können Kameras, die in der Bilderfassungseinheit 120 enthalten sind, (z. B. die Bildaufnahmevorrichtungen 122, 124 und 126 mit den Sichtfeldern 202, 204 und 205) erste, zweite und dritte mehrere Bilder eines Bereichs vor dem oder zu der Seite des Fahrzeugs 200 aufnehmen und sie über eine digitale Verbindung (z. B. USB, drahtlos, Bluetooth usw.) an die Verarbeitungseinheit 110 senden. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 die ersten, zweiten und dritten mehreren Bilder über drei oder mehr Datenschnittstellen empfangen. Beispielsweise kann jede der Bildaufnahmevorrichtungen 122, 124, 126 eine zugeordnete Datenschnittstelle zum Kommunizieren von Daten an die Verarbeitungseinheit 110 aufweisen. Die offenbarten Ausführungsformen sind nicht auf spezielle Datenschnittstellenkonfigurationen oder Protokolle beschränkt.
-
In Schritt 720 kann die Verarbeitungseinheit 110 die ersten, zweiten und dritten mehreren Bilder analysieren, um Merkmale in den Bildern, wie z. B. Fahrbahnmarkierungen, Fahrzeuge, Fußgänger, Straßenschilder, Autobahnausfahrten, Ampeln, Straßengefahren und dergleichen, zu detektieren. Die Analyse kann in ähnlicher Weise ausgeführt werden wie die vorstehend in Verbindung mit den 5A-5D und 6 beschriebenen Schritte. Beispielsweise kann die Verarbeitungseinheit 110 eine Monokularbildanalyse (z.B. durch Ausführung des Monokularbildanalysemoduls 402 und basierend auf den vorstehend in Verbindung mit den 5A-5D beschriebenen Schritten) für jedes der ersten, zweiten und dritten mehreren Bilder ausführen. Alternativ kann die Verarbeitungseinheit 110 eine Stereobildanalyse (z.B. über die Ausführung des Stereobildanalysemoduls 404 und basierend auf den vorstehend in Verbindung mit 6 beschriebenen Schritten) für die ersten und zweiten mehreren Bilder, die zweiten und dritten mehreren Bilder und/oder die ersten und dritten mehreren Bilder ausführen. Die verarbeiteten Informationen, die der Analyse der ersten, zweiten und/oder dritten mehreren Bilder entsprechen, können kombiniert werden. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Kombination aus Monokular- und Stereobildanalyse ausführen. Beispielsweise kann die Verarbeitungseinheit 110 eine Monokularbildanalyse (z.B. durch Ausführung des Monokularbildanalysemoduls 402) für die ersten mehreren Bilder und eine Stereobildanalyse (z.B. durch Ausführung des Stereobildanalysemoduls 404) für die zweiten und dritten mehreren Bilder ausführen. Die Konfiguration der Bildaufnahmevorrichtungen 122, 124 und 126 - einschließlich ihrer jeweiligen Orte und Sichtfelder 202, 204 und 206 - kann die Typen von Analysen beeinflussen, die mit den ersten, zweiten und dritten mehreren Bilder durchgeführt werden. Die offenbarten Ausführungsformen sind nicht auf eine spezielle Konfiguration der Bildaufnahmevorrichtungen 122, 124 und 126 oder auf die Typen von Analysen, die mit den ersten, zweiten und dritten mehreren Bilder durchgeführt werden, beschränkt.
-
In einigen Ausführungsformen kann die Verarbeitungseinheit 110 Tests am System 100 basierend auf den in den Schritten 710 und 720 erfassten und analysierten Bilder ausführen. Solche Tests können einen Indikator für die Gesamtleistung des Systems 100 für spezielle Konfigurationen der Bildaufnahmevorrichtungen 122, 124 und 126 bereitstellen. Beispielsweise kann die Verarbeitungseinheit 110 den Anteil der „falschen Treffer“ (z. B. Fälle, in denen das System 100 das Vorhandensein eines Fahrzeugs oder Fußgängers fälschlicherweise bestimmt hat) und des „Übersehens“ bestimmen.
-
In Schritt 730 kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen im Fahrzeug 200 veranlassen, die auf Informationen basieren, die aus zwei der ersten, zweiten und dritten mehreren Bilder abgeleitet werden. Die Auswahl von zwei aus den ersten, zweiten und dritten mehreren Bilder kann von verschiedenen Faktoren abhängen, wie z.B. der Anzahl, dem Typ und der Größe der Objekte, die in jedem der mehreren Bilder detektiert werden. Die Verarbeitungseinheit 110 kann die Auswahl auch basierend auf der Bildqualität und -auflösung, des effektiven Sichtfelds, das sich in den Bildern widerspiegelt, der Anzahl der aufgenommenen Rahmen, dem Ausmaß, in dem ein oder mehrere Objekte von Interesse tatsächlich in den Bildern erscheinen (z. B. dem prozentualen Anteil der Rahmen, in denen ein Objekt erscheint, dem Anteil des Objekts, der in jedem dieser Rahmen erscheint, usw.), und dergleichen treffen.
-
In einigen Ausführungsformen kann die Verarbeitungseinheit 110 Informationen auswählen, die von zwei aus den ersten, zweiten und dritten mehreren Bildern abgeleitet sind, indem sie das Ausmaß bestimmt, in dem die von einer Bildquelle abgeleiteten Informationen mit den von anderen Bildquellen abgeleiteten Informationen konsistent sind. Beispielsweise kann die Verarbeitungseinheit 110 die verarbeiteten Informationen, die von jeder der Bildaufnahmevorrichtungen 122, 124 und 126 abgeleitet sind (sei es durch Monokularanalyse, Stereoanalyse oder irgendeine Kombination aus beidem), kombinieren und visuelle Indikatoren (z. B. Fahrspurmarkierungen, ein detektiertes Fahrzeug und seinen Ort und/oder Weg, eine detektierte Ampel usw.) bestimmen, die über die von jeder der Bildaufnahmevorrichtungen 122, 124 und 126 aufgenommenen Bilder hinweg konsistent sind. Die Verarbeitungseinheit 110 kann auch Informationen ausschließen, die über die aufgenommenen Bilder inkonsistent sind (z. B. ein Fahrzeug, das die Fahrspur wechselt, ein Fahrspurmodell, das ein Fahrzeug angibt, das sich zu nahe an dem Fahrzeug 200 befindet, usw.). Somit kann die Verarbeitungseinheit 110 Informationen, die aus zwei der ersten, zweiten und dritten mehreren Bilder abgeleitet sind, basierend auf den Bestimmungen von konsistenten und inkonsistenten Informationen auswählen.
-
Die Navigationsreaktionen können beispielsweise ein Abbiegen, einen Spurwechsel, eine Änderung der Beschleunigung und dergleichen enthalten. Die Verarbeitungseinheit 110 kann die eine oder die mehreren Navigationsreaktionen basierend auf der in Schritt 720 ausgeführten Analyse und den vorstehend in Verbindung mit 4 beschriebenen Techniken veranlassen. Die Verarbeitungseinheit 110 kann auch Daten, die aus der Ausführung des Geschwindigkeits- und Beschleunigungsmoduls 406 abgeleitet wurden, verwenden, um die eine oder mehreren Navigationsreaktionen zu veranlassen. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 die eine oder mehreren Navigationsreaktionen basierend auf einer relativen Position, einer relativen Geschwindigkeit und/oder einer relativen Beschleunigung zwischen dem Fahrzeug 200 und einem Objekt, das in irgendeinem aus den ersten, zweiten und dritten mehreren Bildern detektiert wurde, veranlassen. Mehrere Navigationsreaktionen können gleichzeitig, nacheinander oder in irgendeiner Kombination stattfinden.
-
Dünn besetztes Straßenmodell für autonome Fahrzeugnavigation
-
In einigen Ausführungsformen können die offenbarten Systeme und Verfahren eine dünn besetzte Karte zur autonomen Fahrzeugnavigation verwenden. Insbesondere kann die dünn besetzte Karte zur autonomen Fahrzeugnavigation entlang eines Straßensegments dienen. Beispielsweise kann die dünn besetzte Karte ausreichende Informationen zum Navigieren eines autonomen Fahrzeugs bereitstellen, ohne eine große Datenmenge zu speichern und/oder zu aktualisieren. Wie nachstehend genauer diskutiert, kann ein autonomes Fahrzeug die dünn besetzte Karte verwenden, um auf einer oder mehreren Straßen basierend auf einer oder mehreren gespeicherten Bewegungsbahnen zu navigieren.
-
Dünn besetzte Karte zur autonomen Fahrzeugnavigation
-
In einigen Ausführungsformen können die offenbarten Systeme und Verfahren eine dünn besetzte Karte zur autonomen Fahrzeugnavigation erzeugen. Beispielsweise kann die dünn besetzte Karte ausreichende Informationen für die Navigation bereitstellen, ohne dass eine übermäßige Datenspeicherung oder Datenübertragungsraten erforderlich ist. Wie nachstehend genauer diskutiert, kann ein Fahrzeug (das ein autonomes Fahrzeug sein kann) die dünn besetzte Karte verwenden, um auf einer oder mehreren Straßen zu navigieren. Beispielsweise kann in einigen Ausführungsformen die dünn besetzte Karte Daten, die sich auf eine Straße beziehen, und potentiell Orientierungspunkte entlang der Straße enthalten, die zur Fahrzeugnavigation ausreichen, die jedoch auch einen kleinen Datenfußabdruck zeigen. Beispielsweise können die nachstehend genau beschriebenen dünn besetzten Datenkarten im Vergleich zu digitalen Karten, die genaue Karteninformationen, wie z. B. entlang einer Straße gesammelten Bilddaten, enthalten, deutlich weniger Speicherplatz und Datenübertragungsbandbreite erfordern.
-
Beispielsweise kann, anstatt genaue Repräsentationen eines Straßensegments zu speichern, die dünn besetzte Datenkarte dreidimensionale Polynomrepräsentationen von bevorzugten Fahrzeugwegen entlang einer Straße speichern. Diese Wege können sehr wenig Datenspeicherplatz erfordern. Ferner können in den beschriebenen dünn besetzten Datenkarten Orientierungspunkte identifiziert und in das Straßenmodell der dünn besetzten Karte aufgenommen werden, um die Navigation zu unterstützen. Diese Orientierungspunkte können in beliebigen Abständen, die zum Ermöglichen der Fahrzeugnavigation geeignet sind, angeordnet sein, jedoch müssen in einigen Fällen solche Orientierungspunkte nicht mit hoher Dichte und geringen Abständen identifiziert und in das Modell aufgenommen werden. Vielmehr kann die Navigation in einigen Fällen basierend auf Orientierungspunkten, die wenigstens 50 Meter, wenigstens 100 Meter, wenigstens 500 Meter, wenigstens 1 Kilometer oder wenigstens 2 Kilometer voneinander entfernt sind, möglich sein. Wie in anderen Abschnitten genauer diskutiert wird, kann die dünn besetzte Karte basierend auf Daten erzeugt werden, die durch Fahrzeuge, die mit verschiedenen Sensoren und Vorrichtungen, wie z. B. Bildaufnahmevorrichtungen, Sensoren des globalen Positionsbestimmungssystems, Bewegungssensoren usw., ausgestattet sind, gesammelt oder gemessen werden, während die Fahrzeuge auf den Straßen fahren. In einigen Fällen kann die dünn besetzte Karte basierend auf Daten erzeugt werden, die während mehrerer Fahrten eines oder mehrerer Fahrzeuge auf einer speziellen Straße gesammelt wurden. Das Erzeugen einer dünn besetzten Karte unter Verwendung mehrerer Fahrten eines oder mehrerer Fahrzeuge kann als „Crowdsourcing“ einer dünn besetzten Karte bezeichnet sein.
-
Konsistent mit offenbarten Ausführungsformen kann ein autonomes Fahrzeugsystem eine dünn besetzte Karte zur Navigation verwenden. Beispielsweise können die offenbarten Systeme und Verfahren eine dünn besetzte Karte zur Erzeugung eines Straßennavigationsmodells für ein autonomes Fahrzeug verteilen und können ein autonomes Fahrzeug entlang eines Straßensegments unter Verwendung einer dünn besetzten Karte und/oder eines erzeugten Straßennavigationsmodells navigieren. Dünn besetzte Karten, die mit der vorliegenden Offenbarung konsistent sind, können eine oder mehrere dreidimensionale Konturen enthalten, die vorbestimmte Bewegungsbahnen repräsentieren können, die autonome Fahrzeuge durchfahren können, wenn sie sich entlang zugeordneter Straßenabschnitte bewegen.
-
Dünn besetzte Karten konsistent mit der vorliegenden Offenbarung können auch Daten enthalten, die ein oder mehrere Straßenmerkmale repräsentieren. Solche Straßenmerkmale enthalten erkannte Orientierungspunkte, Straßensignaturprofile und irgendwelche anderen straßenbezogenen Merkmale, die für die Navigation eines Fahrzeugs nützlich sind. Dünn besetzte Karten konsistent mit der vorliegenden Offenbarung können die autonome Navigation eines Fahrzeugs basierend auf relativ kleinen Datenmengen, die in der dünn besetzten Karte enthalten sind, ermöglichen. Beispielsweise können die offenbarten Ausführungsformen der dünn besetzten Karte, anstatt genaue Repräsentationen einer Straße, wie z. B. Straßenränder, Straßenkrümmungen, Straßensegmenten zugeordnete Bilder oder Daten, die andere einem Straßensegment zugeordnete physikalische Merkmale genau darstellen, zu enthalten, relativ wenig Speicherplatz (und relativ wenig Bandbreite, wenn Abschnitte der dünn besetzten Karte an ein Fahrzeug übertragen werden) erfordern, jedoch immer noch eine autonome Fahrzeugnavigation auf angemessene Weise bereitstellen. Der kleine Datenfußabdruck der offenbarten dünn besetzten Karten, der nachstehend genauer diskutiert ist, kann in einigen Ausführungsformen durch Speichern von Repräsentationen straßenbezogener Elemente, die nur geringe Datenmengen erfordern, jedoch immer noch eine autonome Navigation ermöglichen, erreicht werden.
-
Beispielsweise können die offenbarten dünn besetzten Karten, anstatt genaue Repräsentationen verschiedener Aspekte einer Straße zu speichern, Polynomrepräsentationen einer oder mehrerer Bewegungsbahnen, denen ein Fahrzeug entlang der Straße folgen kann, speichern. Somit kann, anstatt Einzelheiten über die physikalische Beschaffenheit der Straße zu speichern (oder übertragen zu müssen), um eine Navigation entlang der Straße zu ermöglichen, ein Fahrzeug unter Verwendung der offenbarten dünn besetzten Karten entlang eines speziellen Straßensegments navigiert werden, ohne dass in einigen Fällen physikalische Aspekte der Straße interpretiert werden müssen, sondern vielmehr durch Ausrichten seines Fahrweg an einer Bewegungsbahn (z. B. einem Polynomzug) entlang des speziellen Straßensegments. Auf diese Weise kann das Fahrzeug hauptsächlich basierend auf der gespeicherten Bewegungsbahn (z. B. einem Polynomzug) navigiert werden, die viel weniger Speicherplatz benötigen kann als eine Herangehensweise, die das Speichern von Straßenbildern, Straßenparametern, Straßenlayout usw. beinhaltet.
-
Zusätzlich zu den gespeicherten Polynomrepräsentationen von Bewegungsbahnen entlang eines Straßensegments können die offenbarten dünn besetzten Karten auch kleine Datenobjekte, die ein Straßenmerkmal repräsentieren können, enthalten. In einigen Ausführungsformen können die kleinen Datenobjekte digitale Signaturen enthalten, die von einem digitalen Bild (oder einem digitalen Signal) abgeleitet sind, das durch einen Sensor (z. B. eine Kamera oder einen anderen Sensor, wie z. B. einem Radaufhängungssensor) an Bord eines Fahrzeugs, das entlang des Straßensegments fährt, erhalten wurde. Die digitale Signatur kann eine relativ zu dem durch den Sensor erfassten Signal reduzierte Größe aufweisen. In einigen Ausführungsformen kann die digitale Signatur so erzeugt werden, dass sie mit einer Klassifizierungsfunktion kompatibel ist, die konfiguriert ist, das Straßenmerkmal aus dem durch dem Sensor erfassten Signal, z. B. während einer nachfolgenden Fahrt, zu detektieren und zu identifizieren. In einigen Ausführungsformen kann eine digitale Signatur so erzeugt werden, dass die digitale Signatur einen möglichst kleinen Fußabdruck aufweist, während die Fähigkeit erhalten bleibt, das Straßenmerkmal mit der gespeicherten Signatur basierend auf einem Bild (oder einem durch einen Sensor erzeugten digitalen Signal, falls die gespeicherte Signatur nicht auf einem Bild basiert und/oder andere Daten enthält) des Straßenmerkmals, das durch eine Kamera an Bord eines Fahrzeugs, das zu einem späteren Zeitpunkt entlang desselben Straßensegments fährt, aufgenommen wird, zu korrelieren oder abzugleichen.
-
In einigen Ausführungsformen kann die Größe der Datenobjekte ferner einer Einzigartigkeit des Straßenmerkmals zugeordnet sein. Beispielsweise für ein Straßenmerkmal, das durch eine Kamera an Bord eines Fahrzeugs detektiert werden kann, und wenn das Kamerasystem an Bord des Fahrzeugs mit einem Klassifizierer gekoppelt ist, der in der Lage ist, die Bilddaten, die diesem Straßenmerkmal entsprechen, als einem speziellen Typ von Straßenmerkmal zugeordnet zu unterscheiden, z. B. einem Straßenschild, und wenn ein solches Straßenschild in diesem Gebiet örtlich einzigartig ist (z. B. gibt es in der Nähe kein gleiches Straßenschild oder Straßenschild desselben Typs), kann es ausreichen, Daten zu speichern, die den Typ des Straßenmerkmals und seinen Ort angeben.
-
Wie nachstehend genauer diskutiert wird, können Straßenmerkmale (z. B. Orientierungspunkte entlang eines Straßensegments) als kleine Datenobjekte gespeichert sein, die ein Straßenmerkmal in relativ wenigen Bytes repräsentieren können, während sie gleichzeitig ausreichende Informationen zum Erkennen und Verwenden eines solchen Merkmals zur Navigation bereitstellen können. In einem Beispiel kann ein Straßenschild als erkannter Orientierungspunkt identifiziert werden, auf dem die Navigation eines Fahrzeugs basieren kann. Eine Repräsentation des Straßenschildes kann in der dünn besetzten Karte gespeichert sein und z.B. einige Bytes an Daten, die einen Typ des Orientierungspunktes (z.B. ein Stoppschild) und einige Bytes an Daten, die einen Standort des Orientierungspunktes (z.B. Koordinaten) angeben, enthalten. Das Navigieren basierend auf solchen datenarmen Repräsentationen von Orientierungspunkten (z.B. unter Verwendung von Repräsentationen, die zum Lokalisieren, Erkennen und Navigieren basierend auf den Orientierungspunkten ausreichen) kann ein gewünschtes Niveau an Navigationsfunktionalität, das dünn besetzten Karten zugeordnet ist, bereitstellen, ohne den mit den dünn besetzten Karten zugeordneten Daten-Overhead wesentlich zu erhöhen. Diese schlanke Repräsentation von Orientierungspunkten (und anderen Straßenmerkmalen) kann die Vorteile der Sensoren und Prozessoren, die an Bord solcher Fahrzeuge enthalten sind und die konfiguriert sind, spezielle Straßenmerkmale zu detektieren, zu identifizieren und/oder zu klassifizieren, nutzen.
-
Wenn beispielsweise ein Schild oder sogar ein spezieller Typ eines Schildes in einem gegebenen Gebiet lokal einzigartig ist (z.B. wenn kein anderes Schild oder kein anderes Schild desselben Typs vorhanden ist), kann die dünn besetzte Karte Daten verwenden, die einen Typ eines Orientierungspunktes (ein Schild oder einen bestimmten Typ eines Schildes) angeben, und während der Navigation (z.B. der autonomen Navigation), wenn eine Kamera an Bord eines autonomen Fahrzeugs ein Bild des Gebiets, das ein Schild (oder einem bestimmten Typ eines Schildes) enthält, aufnimmt, kann der Prozessor das Bild verarbeiten, das Schild detektieren (falls es tatsächlich in dem Bild vorhanden ist), das Bild als ein Schild (oder als einen bestimmten Typ eines Schildes) klassifizieren und den Ort des Bildes mit dem Ort des Schildes, wie er in der dünn besetzten Karte gespeichert ist, korrelieren.
-
Die dünn besetzte Karte kann irgendeine geeignete Repräsentation von Objekten, die entlang eines Straßensegments identifiziert werden, enthalten. In einigen Fällen können die Objekte als semantische Objekte oder nicht-semantische Objekte bezeichnet sein. Semantische Objekte können beispielsweise Objekte, die einer vorbestimmten Typklassifizierung zugeordnet sind, enthalten. Dieser Typ der Klassifizierung kann nützlich sein, um die Datenmenge, die zur Beschreibung des in einer Umgebung erkannten semantischen Objekts erforderlich ist, zu reduzieren, was sowohl in der Sammelphase (z. B. zur Reduzierung der Kosten im Zusammenhang mit der Bandbreitennutzung für die Übertragung von Fahrtinformationen von mehreren Sammelfahrzeugen an einen Server) als auch während der Navigationsphase (z. B. kann die Reduzierung von Kartendaten die Übertragung von Kartenkacheln von einem Server an ein navigierendes Fahrzeug beschleunigen und auch die Kosten im Zusammenhang mit der Bandbreitennutzung für solche Übertragungen reduzieren) von Vorteil sein kann. Semantische Objektklassifizierungstypen können irgendeinem Typ von Objekten oder Merkmalen, die auf einer Fahrbahn zu erwarten sind, zugewiesen werden.
-
Semantische Objekte können ferner in zwei oder mehr logische Gruppen unterteilt werden. In einigen Fällen kann beispielsweise eine Gruppe semantischer Objekttypen vorbestimmten Abmessungen zugeordnet sein. Solche semantischen Objekten können spezielle Geschwindigkeitsbegrenzungsschilder, Vorfahrtsschilder, Zusammenführungsschilder, Stoppschilder, Ampeln, Richtungspfeile auf einer Fahrbahn, Kanaldeckel oder irgendein anderer Typ eines Objekt sein, das einer standardisierten Größe zugeordnet werden kann. Ein Vorteil solcher semantischen Objekte besteht darin, dass nur sehr wenige Daten benötigt werden, um die Objekte zu repräsentieren / vollständig zu definieren. Falls beispielsweise eine standardisierte Größe eines Geschwindigkeitsbegrenzungsschildes bekannt ist, muss ein Sammelfahrzeug lediglich das Vorhandensein eines Geschwindigkeitsbegrenzungsschildes (eines erkannten Typs) zusammen mit einer Positionsangabe des erkannten Geschwindigkeitsbegrenzungsschildes (z. B. einer 2D-Position im aufgenommenen Bild (oder alternativ einer 3D-Position in Koordinaten der realen Welt) einer Mitte des Schildes oder einer speziellen Ecke des Schildes) identifizieren (durch die Analyse eines aufgenommenen Bildes), um ausreichende Informationen für die Kartenerzeugung auf der Serverseite bereitzustellen. Wenn 2D-Bildpositionen an den Server gesendet werden, kann auch eine dem aufgenommenen Bild zugeordnete Position, an der das Schild erkannt wurde, gesendet werden, so dass der Server eine Position in der realen Welt des Schildes bestimmen kann (z. B. durch Struktur-in-Bewegung-Techniken unter Verwendung mehrerer aufgenommener Bilder von einem oder mehreren Sammelfahrzeugen). Selbst mit diesen begrenzten Informationen (die nur wenige Bytes zur Definition jedes detektierten Objekts erfordern) kann der Server basierend auf der Typklassifizierung (die für ein Geschwindigkeitsbegrenzungsschild repräsentativ ist), die er von einem oder mehreren Sammelfahrzeugen zusammen mit den Positionsinformationen für das detektierte Schild erhält, die Karte, die ein vollständig repräsentiertes Geschwindigkeitsbegrenzungsschild enthält, konstruieren.
-
Semantische Objekte können auch andere erkannte Objekt- oder Merkmalstypen, die nicht speziellen standardisierten Merkmalen zugeordnet sind, enthalten. Solche Objekte oder Merkmale können Schlaglöcher, Teernähte, Lichtmasten, nicht standardisierte Schilder, Bordsteine, Bäume, Äste oder irgendein anderer Typ eines erkanntem Objekttyps mit einer oder mehreren variablen Eigenschaften (z. B. variablen Abmessungen) sein. In solchen Fällen kann ein Sammelfahrzeug zusätzlich zum Senden einer Angabe des detektierten Objekts oder Merkmalstyps (z. B. Schlagloch, Mast usw.) und der Positionsdaten des detektierten Objekts oder Merkmals an einen Server auch eine Angabe über eine Größe des Objekts oder Merkmals senden. Die Größe kann in 2D-Bildabmessungen (z. B. mit einem Begrenzungsrahmen oder einem oder mehreren Abmessungswerten) oder in Abmessungen der realen Welt (bestimmt durch Struktur-in-Bewegung-Berechnungen, basierend auf LIDAR- oder RADAR-Systemausgaben, basierend auf Ausgaben trainierter neuronaler Netze usw.) ausgedrückt werden.
-
Nicht-semantische Objekte oder Merkmale können irgendwelche detektierbaren Objekte oder Merkmale enthalten, die nicht in eine erkannte Kategorie oder einen erkannten Typ fallen, die jedoch immer noch wertvolle Informationen für die Kartenerzeugung bereitstellen können. In einigen Fällen können solche nicht-semantischen Merkmale eine detektierte Gebäudeecke oder eine Ecke eines detektierten Fensters eines Gebäudes, einen einzigartigen Stein oder ein Objekt in der Nähe einer Fahrbahn, ein Betonspritzer auf einem Straßenbankett oder irgendein anderes detektierbares Objekt oder Merkmal enthalten. Bei der Detektion eines solchen Objekts oder Merkmals können ein oder mehrere Sammelfahrzeuge einen Ort eines oder mehrerer Punkte (2D-Bildpunkte oder 3D-Punkte der realen Welt), die dem detektierten Objekt/Merkmal zugeordnet sind, an einen Kartenerzeugungsserver senden. Zusätzlich kann ein komprimiertes oder vereinfachtes Bildsegment (z. B. ein Bild-Hash) für einen Bereich des aufgenommenen Bildes, der das detektierte Objekt oder Merkmal enthält, erzeugt werden. Dieser Bild-Hash kann basierend auf einem vorbestimmten Bildverarbeitungsalgorithmus berechnet werden und kann eine effektive Signatur für das detektierte nicht-semantische Objekt oder Merkmal bilden. Eine solche Signatur kann für die Navigation in Bezug auf eine dünn besetzte Karte, die das nicht-semantische Merkmal oder Objekt enthält, nützlich sein, da ein Fahrzeug, das die Straße durchfährt, einen Algorithmus anwenden kann, der dem Algorithmus ähnlich ist, der zur Erzeugung des Bild-Hashs verwendet wird, um das Vorhandensein des kartierten nicht-semantischen Merkmals oder Objekts in einem aufgenommenen Bild zu bestätigen/zu überprüfen. Unter Verwendung dieser Technik können nicht-semantische Merkmale die Reichhaltigkeit der dünn besetzten Karten erhöhen (z. B. um ihre Nützlichkeit für die Navigation zu verbessern), ohne dass ein wesentlicher Daten-Overhead hinzugefügt wird.
-
Wie bereits erwähnt, können Sollbewegungsbahnen in der dünn besetzten Karte gespeichert sein. Diese Sollbewegungsbahnen (z. B. 3D-Polynomzüge) können die bevorzugten oder empfohlenen Wege für jede verfügbare Fahrspur einer Fahrbahn, jeden gültigen Weg durch eine Kreuzung, für Einmündungen und Ausfahrten usw. repräsentieren. Zusätzlich zu den Sollbewegungsbahnen können auch andere Straßenmerkmale detektiert, gesammelt und in Form von repräsentativen Polynomzügen in die dünn besetzten Karten integriert werden. Solche Merkmale können beispielsweise Straßenränder, Fahrspurmarkierungen, Bordsteine, Leitplanken oder andere Objekte oder Merkmale sein, die sich entlang einer Fahrbahn oder eines Straßensegments erstrecken.
-
Erzeugen einer dünn besetzten Karte
-
In einigen Ausführungsformen kann eine dünn besetzte Karte wenigstens eine Linienrepräsentation eines Straßenoberflächenmerkmals, das sich entlang eines Straßensegments erstreckt, und mehrere Orientierungspunkte, die dem Straßenabschnitt zugeordnet sind, enthalten. In speziellen Aspekten kann die dünn besetzte Karte durch „Crowdsourcing“ erzeugt werden, beispielsweise durch Bildanalyse mehrerer Bilder, die erfasst werden, wenn ein oder mehrere Fahrzeuge das Straßensegment durchfahren.
-
8 zeigt eine dünn besetzte Karte 800, auf die ein oder mehrere Fahrzeuge, z. B. das Fahrzeug 200 (das ein autonomes Fahrzeug sein kann), zum Bereitstellen autonomer Fahrzeugnavigation zugreifen können. Die dünn besetzte Karte 800 kann in einem Speicher, z. B. dem Speicher 140 oder 150, gespeichert sein. Solche Speichervorrichtungen können irgendwelche Typen nicht-transitorischer Speichervorrichtungen oder computerlesbarer Medien enthalten. In einigen Ausführungsformen kann der Speicher 140 oder 150 beispielsweise Festplatten, Compact-Discs, Flash-Speicher, magnetische Speichervorrichtungen, optische Speichervorrichtungen usw. enthalten. In einigen Ausführungsformen kann die dünn besetzte Karte 800 in einer Datenbank (z. B. der Kartendatenbank 160) gespeichert sein, die im Speicher 140 oder 150 oder in anderen Typen von Speichervorrichtungen gespeichert sein kann.
-
In einigen Ausführungsformen kann die dünn besetzte Karte 800 auf einer Speichervorrichtung oder einem nicht-transitorischen computerlesbaren Medium gespeichert sein, das an Bord des Fahrzeugs 200 bereitgestellt ist (z.B. einer Speichervorrichtung, die in einem Navigationssystem an Bord des Fahrzeugs 200 enthalten ist). Ein Prozessor (z.B. die Verarbeitungseinheit 110), der im Fahrzeug 200 bereitgestellt ist, kann auf die dünn besetzte Karte 800, die in der Speichervorrichtung oder dem computerlesbaren Medium, die/das im Fahrzeug 200 bereitgestellt ist, gespeichert ist, zugreifen, um Navigationsanweisungen zum Führen des autonomen Fahrzeugs 200 zu erzeugen, während das Fahrzeug ein Straßensegment durchfährt.
-
Die dünn besetzte Karte 800 muss jedoch nicht lokal in Bezug auf ein Fahrzeug gespeichert sein. In einigen Ausführungsformen kann die dünn besetzte Karte 800 auf einer Speichervorrichtung oder einem computerlesbaren Medium, das auf einem entfernten Server bereitgestellt ist, der mit dem Fahrzeug 200 oder einem der Fahrzeug 200 zugeordneten Vorrichtung kommuniziert, gespeichert sein. Ein in dem Fahrzeug 200 bereitgestellter Prozessor (z. B. die Verarbeitungseinheit 110) kann Daten, die in der dünn besetzten Karte 800 enthalten sind, von dem entfernten Server empfangen und kann die Daten zum Führen des autonomen Fahrens des Fahrzeugs 200 ausführen. In solchen Ausführungsformen kann der entfernte Server die gesamte dünn besetzte Karte 800 oder nur einen Abschnitt davon speichern. Dementsprechend kann die Speichervorrichtung oder das computerlesbare Medium, die/das an Bord des Fahrzeugs 200 und/oder an Bord eines oder mehrerer weiterer Fahrzeuge bereitgestellt ist, den/die verbleibenden Abschnitt(e) der dünn besetzten Karte 800 speichern.
-
Darüber hinaus kann in solchen Ausführungsformen die dünn besetzte Karte 800 mehreren Fahrzeugen, die verschiedene Straßensegmente durchfahren (z. B. mehrere zehn, hundert, tausend oder Millionen von Fahrzeugen usw.), zugänglich gemacht werden. Es wird auch darauf hingewiesen, dass die dünn besetzte 800 mehrere Teilkarten enthalten kann. In einigen Ausführungsformen kann die dünn besetzte Karte 800 beispielsweise Hunderte, Tausende, Millionen oder mehr Teilkarten (z. B. Kartenkacheln) enthalten, die bei der Navigation eines Fahrzeugs verwendet werden können. Solche Teilkarten können als lokale Karten oder Kartenkacheln bezeichnet sein, und ein Fahrzeug, das eine Straße entlang fährt, kann auf irgendeine Anzahl lokaler Karten, die für den Ort, an dem das Fahrzeug fährt ist, relevant sind, zugreifen. Die lokalen Kartenausschnitte der dünn besetzten Karte 800 können mit einem Schlüssel des globalen Navigationssatellitensystems (GNSS-Schlüssel) als einen Index in die Datenbank der dünn besetzten Karte 800 gespeichert sein. Somit können, während die Berechnung von Lenkwinkeln zum Navigieren eines Trägerfahrzeugs in dem vorliegenden System ohne Abhängigkeit von einer GNSS-Position des Trägerfahrzeugs, von Straßenmerkmalen oder Orientierungspunkten erfolgen kann, solche GNSS-Informationen zum Abrufen relevanter lokaler Karten verwendet werden.
-
Im Allgemeinen kann die dünn besetzte Karte 800 basierend auf Daten (z. B. Fahrtinformationen), die von einem oder mehreren Fahrzeugen während ihrer Fahrt auf den Straßen gesammelt werden, erzeugt werden. Beispielsweise können unter Verwendung von Sensoren an Bord des einen oder der mehreren Fahrzeuge (z. B. Kameras, Geschwindigkeitsmesser, GPS, Beschleunigungsmesser usw.) die Bewegungsbahnen, die das eine oder die mehreren Fahrzeuge auf einer Straße zurücklegen, aufgezeichnet werden, und die Polynomrepräsentation einer bevorzugten Bewegungsbahn für Fahrzeuge, die nachfolgend auf der Straße fahren, kann basierend auf den gesammelten Bewegungsbahnen, die von dem einen oder den mehreren Fahrzeugen durchfahren wurden, bestimmt werden. Ähnlich können die durch das eine oder die mehreren Fahrzeugen gesammelten Daten das Identifizieren potenzieller Orientierungspunkte entlang einer speziellen Straße unterstützen. Daten, die von den durchfahrenden Fahrzeugen erfassten werden, können auch zum Identifizieren von Straßenprofilinformationen verwendet werden, wie z. B. Straßenbreitenprofilen, Straßenrauigkeitsprofilen, Profilen von Fahrspurlinienabständen, Straßenzuständen usw. Unter Verwendung der gesammelten Informationen kann eine dünn besetzte Karte 800 erzeugt und zur Verwendung in der Navigation eines oder mehrerer autonomer Fahrzeuge verteilt werden (z. B. zur lokalen Speicherung oder über eine fliegende Datenübertragung). In einigen Ausführungsformen kann die Kartenerzeugung jedoch nicht mit der initialen Erzeugung der Karte enden. Wie nachstehend genauer diskutiert wird, kann die dünn besetzte Karte 800 kontinuierlich oder periodisch basierend auf von Fahrzeugen gesammelten Daten aktualisiert werden, wenn diese Fahrzeuge weiterhin die in der dünn besetzten Karte 800 enthaltenen Straßen durchfahren.
-
Die in der dünn besetzten Karte 800 aufgezeichneten Daten können Positionsinformationen, die auf Daten des globalen Positionsbestimmungssystems (GPS-Daten) basieren, enthalten. Beispielsweise können in der dünn besetzten Karte 800 Ortsinformationen für verschiedene Kartenelemente enthalten sein, die beispielsweise Orte von Orientierungspunkten, Orte von Straßenprofilen usw. enthalten. Orte für Kartenelemente, die in der dünn besetzten Karte 800 enthalten sind, können unter Verwendung von GPS-Daten, die von Fahrzeugen, die eine Straße befahren, gesammelt werden, erhalten werden. Beispielsweise kann ein Fahrzeug, das an einem identifizierten Orientierungspunkt vorbeifährt, einen Ort des identifizierten Orientierungspunkts unter Verwendung von GPS-Positionsinformationen, die dem Fahrzeug zugeordnet sind, und einer Bestimmung des Orts des identifizierten Orientierungspunkts relativ zu dem Fahrzeug (z. B. basierend auf einer Bildanalyse von Daten, die von einer oder mehreren Kameras an Bord des Fahrzeugs erfasst wurden) bestimmen. Solche Ortsbestimmungen eines identifizierten Orientierungspunkts (oder irgendeines anderen Merkmals, das in der dünn besetzten Karte 800 enthalten ist) können wiederholt werden, wenn zusätzliche Fahrzeuge den Ort des identifizierten Orientierungspunkts passieren. Einige der oder alle zusätzlichen Ortsbestimmungen können verwendet werden, um die in der dünn besetzten Karte 800 gespeicherten Ortsinformationen in Bezug auf den identifizierten Orientierungspunkt zu verfeinern. In einigen Ausführungsformen können beispielsweise mehrere Positionsmessungen relativ zu einem speziellen Merkmal, das in der dünn besetzten 800 gespeichert ist, gemittelt werden. Es können jedoch auch irgendwelche anderen mathematischen Operationen verwendet werden, um einen gespeicherten Ort eines Kartenelements basierend auf mehreren bestimmten Orten für das Kartenelement zu verfeinern.
-
In einem speziellen Beispiel können die Sammelfahrzeuge ein spezielles Straßensegment durchfahren. Jedes Sammelfahrzeug nimmt Bilder von seiner jeweiligen Umgebung auf. Die Bilder können mit irgendeiner geeigneten Bildaufnahmerate(z. B. 9 Hz usw.) gesammelt werden. Bildanalyseprozessor(en) an Bord jedes Sammelfahrzeugs analysieren die aufgenommenen Bilder, um das Vorhandensein von semantischen und/oder nicht-semantischen Merkmalen/Objekten zu detektieren. Auf einer hohen Ebene senden die Sammelfahrzeuge Angaben über die Detektion semantischer und/oder nicht-semantischer Objekte/Merkmale zusammen mit den diesen Objekten/Merkmalen zugeordneten Positionen an einen Kartierungsserver. Genauer gesagt können zusammen mit den Positionsdaten auch Angaben über den Typ, Angaben über Abmessungen usw. gesendet werden. Die Positionsinformationen können irgendwelche geeigneten Informationen enthalten, die es dem Kartierungsserver ermöglichen, die detektierten Objekte/Merkmale zu einer dünn besetzten Karte, die für die Navigation nützlich ist, zusammenzuführen. In einigen Fällen können die Positionsinformationen eine oder mehrere 2D-Bildpositionen (z. B. X-Y-Pixelorte) in einem aufgenommenen Bild, an denen die semantischen oder nicht-semantischen Merkmale/Objekte detektiert wurden, enthalten. Solche Bildpositionen können einer Mitte des Merkmals/Objekts, einer Ecke usw. entsprechen. Um den Kartierungsserver bei der Rekonstruktion der Fahrtinformationen und dem Abgleich der Fahrtinformationen von mehreren Sammelfahrzeugen zu unterstützen, kann in diesem Szenario jedes Sammelfahrzeug dem Server auch einen Ort (z. B. einen GPS-Ort), an dem jedes Bild aufgenommen wurde, zur Verfügung stellen.
-
In anderen Fällen kann das Sammelfahrzeug dem Server einen oder mehrere 3D-Punkte in der realen Welt, die den detektierten Objekten/Merkmalen zugeordnet sind, zur Verfügung stellen. Solche 3D-Punkte können relativ zu einem vorbestimmten Ursprung (z. B. dem Ursprung eines Fahrtsegments) sein und können durch irgendeine geeignete Technik bestimmt werden. In einigen Fällen kann eine Struktur-in-Bewegung-Technik verwendet werden, um die 3D-Position in der realen Welt eines detektierten Objekts/Merkmals zu bestimmen. Beispielsweise kann ein spezielles Objekt, wie ein spezielles Geschwindigkeitsbegrenzungsschild, in zwei oder mehr aufgenommenen Bildern detektiert werden. Unter Verwendung von Informationen wie der bekannten Eigenbewegung (Geschwindigkeit, Bewegungsbahn, GPS-Position usw.) des Sammelfahrzeugs zwischen den aufgenommenen Bildern zusammen mit den beobachteten Veränderungen des Geschwindigkeitsbegrenzungsschilds in den aufgenommenen Bildern (Veränderung des X-Y-Pixelortes, Veränderung der Größe usw.) kann die Position in der realen Welt eines oder mehrerer dem Geschwindigkeitsbegrenzungsschild zugeordneter Punkte bestimmt und an den Kartierungsserver weitergegeben werden. Eine solche Herangehensweise ist optional, da sie mehr Berechnungen auf Seiten der Sammelfahrzeugsysteme erfordert. Die dünn besetzte Karte der offenbarten Ausführungsformen kann die autonome Navigation eines Fahrzeugs unter Verwendung relativ kleiner Mengen gespeicherter Daten ermöglichen. In einigen Ausführungsformen kann die dünn besetzte Karte 800 eine Datendichte (die z. B. die Daten, die die Sollbewegungsbahnen, Orientierungspunkte und irgendwelche anderen gespeicherte Straßenmerkmale repräsentieren, enthält) von weniger als 2 MB pro Straßenkilometer, weniger als 1 MB pro Straßenkilometer, weniger als 500 kB pro Straßenkilometer oder weniger als 100 kB pro Straßenkilometer aufweisen. In einigen Ausführungsformen kann die Datendichte der dünn besetzten Karte 800 weniger als 10 kB pro Straßenkilometer oder sogar weniger als 2 kB pro Straßenkilometer (z. B. 1,6 kB pro Kilometer) oder nicht mehr als 10 kB pro Straßenkilometer oder nicht mehr als 20 kB pro Straßenkilometer sein. In einigen Ausführungsformen können die meisten, wenn nicht sogar alle Straßen der Vereinigten Staaten unter Verwendung einer dünn besetzten Karte mit insgesamt 4 GB oder weniger Daten autonom navigiert werden. Diese Datendichtewerte können einen Durchschnitt über eine gesamte dünn besetzte Karte 800, über eine lokale Karte innerhalb der dünn besetzten Karte 800 und/oder über ein spezielles Straßensegment innerhalb der dünn besetzten Karte 800 repräsentieren.
-
Wie bereits erwähnt, kann die dünn besetzte Karte 800 Repräsentationen mehrerer Sollbewegungsbahnen 810 zum Führen des autonomen Fahrens oder der Navigation entlang eines Straßensegments enthalten. Solche Sollbewegungsbahnen können als dreidimensionale Polynomzüge gespeichert sein. Die in der dünn besetzten 800 gespeicherten Sollbewegungsbahnen können beispielsweise basierend auf zwei oder mehr rekonstruierten Bewegungsbahnen früherer Fahrten von Fahrzeugen entlang eines speziellen Straßensegments bestimmt werden. Einem Straßensegment können eine einzige Sollbewegungsbahn oder mehrere Sollbewegungsbahnen zugeordnet sein. Auf einer zweispurigen Straße kann beispielsweise eine erste Sollbewegungsbahn gespeichert sein, um einen vorgesehenen Fahrweg entlang der Straße in einer ersten Richtung zu repräsentieren, und eine zweite Sollbewegungsbahn kann gespeichert sein, um einen vorgesehenen Fahrweg entlang der Straße in einer anderen Richtung (z.B. entgegengesetzt der ersten Richtung) zu repräsentieren. Zusätzliche Sollbewegungsbahnen können in Bezug auf ein spezielles Straßensegment gespeichert sein.. Beispielsweise können auf einer mehrspurigen Straße eine oder mehrere Sollbewegungsbahnen gespeichert sein, die die vorgesehenen Fahrwege für Fahrzeuge auf einer oder mehreren Fahrspuren, die der mehrspurigen Straße zugeordnet sind, repräsentieren. In einigen Ausführungsformen kann jeder Fahrspur einer mehrspurigen Straße ihre eigene Sollbewegungsbahn zugeordnet sein. In anderen Ausführungsformen können weniger Sollbewegungsbahnen gespeichert sein als Fahrspuren auf einer mehrspurigen Straße vorhanden sind. In solchen Fällen kann ein Fahrzeug, das auf einer mehrspurigen Straße navigiert, irgendeine der gespeicherten Sollbewegungsbahnen verwenden, um seine Navigation zu führen, indem es eine Größe eines Fahrspurversatzes zu einer Fahrspur, für die eine Sollbewegungsbahn gespeichert ist, berücksichtigt (z. B. falls ein Fahrzeug auf der linken äußersten Fahrspur einer dreispurigen Autobahn unterwegs ist und eine Sollbewegungsbahn nur für die mittlere Fahrspur der Autobahn gespeichert ist, kann das Fahrzeug unter Verwendung der Sollbewegungsbahn der mittleren Fahrspur navigieren, indem es die Größe des Fahrspurversatzes zwischen der mittleren Fahrspur und der äußersten linken Fahrspur bei der Erzeugung von Navigationsanweisungen berücksichtigt).
-
In einigen Ausführungsformen kann die Sollbewegungsbahn einen idealen Weg, den ein Fahrzeug während seiner Fahrt nehmen sollte, repräsentieren. Die Sollbewegungsbahn kann sich beispielsweise in einer ungefähren Mitte einer Fahrspur befinden. In anderen Fällen kann sich die Sollbewegungsbahn an einer anderen Stelle relativ zu einem Straßensegment befinden. Beispielsweise kann eine Sollbewegungsbahn ungefähr mit einer Straßenmitte, einem Straßenrand oder einem Fahrspurrand usw. zusammenfallen. In solchen Fällen kann die Navigation basierend auf der Sollbewegungsbahn eine spezielle Größe eines Versatzes, der relativ zu dem Ort der Sollbewegungsbahn einzuhalten ist, enthalten. Außerdem kann in einigen Ausführungsformen die bestimmte Größe des Versatzes, der in Bezug auf den Ort der Sollbewegungsbahn einzuhalten ist, basierend auf dem Fahrzeugtyp unterschiedlich sein (z. B. kann ein Pkw, der zwei Achsen enthält, entlang wenigstens eines Abschnitts der Sollbewegungsbahn einen anderen Versatz aufweisen als ein Lkw, der mehr als zwei Achsen enthält).
-
Die dünn besetzte Karte 800 kann außerdem Daten enthalten, die sich auf mehrere vorbestimmte Orientierungspunkte 820, die speziellen Straßensegmenten, lokalen Karten usw. zugeordnet sind, beziehen. Wie nachstehend genauer diskutiert, können diese Orientierungspunkte bei der Navigation des autonomen Fahrzeugs verwendet werden. In einigen Ausführungsformen können die Orientierungspunkte beispielsweise verwendet werden, um eine aktuelle Position des Fahrzeugs relativ zu einer gespeicherten Sollbewegungsbahn zu bestimmen. Mit diesen Positionsinformationen kann das autonome Fahrzeug im Stande sein, die Fahrtrichtung so anpassen, dass sie mit der Richtung der Sollbewegungsbahn an dem bestimmten Ort übereinstimmt.
-
Die mehreren Orientierungspunkte 820 können in irgendeinem geeigneten Abstand identifiziert und in der dünn besetzten Karte 800 gespeichert werden. In einigen Ausführungsformen können Orientierungspunkte in relativ hoher Dichte gespeichert sein (z. B. alle paar Meter oder mehr). In einigen Ausführungsformen können jedoch wesentlich größere Abstände zwischen den Orientierungspunkt eingesetzt sein. In der dünn besetzten Karte 800 können die identifizierten (oder erkannten) Orientierungspunkte beispielsweise um 10 Meter, 20 Meter, 50 Meter, 100 Meter, 1 Kilometer oder 2 Kilometer voneinander entfernt sein. In einigen Fällen können sich die identifizierten Orientierungspunkte sogar in Abständen von mehr als 2 Kilometer voneinander entfernt befinden.
-
Zwischen den Orientierungspunkten und somit zwischen den Bestimmungen der Fahrzeugposition relativ zu einer Sollbewegungsbahn kann das Fahrzeug basierend auf Koppelnavigation navigieren, bei der das Fahrzeug Sensoren verwendet, um seine Eigenbewegung zu bestimmen und seine Position in Bezug auf die Sollbewegungsbahn zu schätzen. Da sich während der Navigation durch Koppelnavigation Fehler akkumulieren können, können die Positionsbestimmungen relativ zu der Sollbewegungsbahn mit der Zeit zunehmend ungenauer werden. Das Fahrzeug kann die in der dünn besetzten Karte 800 auftretenden Orientierungspunkte (und deren bekannte Orte) verwenden, um die durch die Koppelnavigation verursachten Fehler bei der Positionsbestimmung zu entfernen. Auf diese Weise können die identifizierten Orientierungspunkte, die in der dünn besetzten Karte 800 enthalten sind, als Navigationsanker dienen, anhand derer eine genaue Position des Fahrzeugs relativ zu einer Sollbewegungsbahn bestimmt werden kann. Da ein gewisser Fehler bei der Positionsbestimmung zulässig sein kann, muss nicht immer ein identifizierter Orientierungspunkt für ein autonomes Fahrzeug verfügbar sein. Vielmehr kann eine geeignete Navigation sogar basierend auf den vorstehend genannten Abständen der Orientierungspunkte von 10 Metern, 20 Metern, 50 Metern, 100 Metern, 500 Metern, 1 Kilometer, 2 Kilometern oder mehr möglich sein. In einigen Ausführungsformen kann eine Dichte von 1 identifizierten Orientierungspunkt pro 1 km Straße ausreichend sein, um eine Genauigkeit der Positionsbestimmung in Längsrichtung von 1 m aufrechtzuerhalten. Somit muss nicht jeder potenzielle Orientierungspunkt, der entlang eines Straßensegments erscheint, in der dünn besetzten Karte 800 gespeichert sein.
-
Außerdem können in einigen Ausführungsformen Fahrspurmarkierungen zur Ortsbestimmung des Fahrzeugs innerhalb der Orientierungspunktabstände verwendet werden. Unter Verwendung der Fahrspurmarkierungen innerhalb der Orientierungspunktabstände kann die Akkumulierung von Fehlern bei der Navigation durch Koppelnavigation minimiert werden.
-
Zusätzlich zu den Sollbewegungsbahnen und identifizierten Orientierungspunkten kann die dünn besetzte Karte 800 Informationen über verschiedene andere Straßenmerkmale enthalten. 9A stellt beispielsweise eine Repräsentation von Kurven entlang eines speziellen Straßensegments dar, die in der dünn besetzten Karte 800 gespeichert sein kann. In einigen Ausführungsformen kann eine einzelne Fahrspur einer Straße durch eine dreidimensionale Polynombeschreibung der linken und rechten Straßenseite modelliert werden. Solche Polynome, die die linke und rechte Seite einer einzelnen Fahrspur repräsentieren, sind in 9A gezeigt. Unabhängig davon, wie viele Fahrspuren eine Straße haben kann, kann die Straße unter Verwendung von Polynomen in ähnlicher Weise wie in 9A dargestellt repräsentiert sein. So können beispielsweise die linke und rechte Seite einer mehrspurigen Straße durch Polynome ähnlich in 9A gezeigten repräsentiert sein, und die Zwischenmarkierungen, die auf einer mehrspurigen Straße enthalten sind, (z. B. unterbrochene Markierungen, die die Fahrspurgrenzen repräsentieren, durchgezogene gelbe Linien, die die Grenzen zwischen den in verschiedenen Richtungen verlaufenden Fahrspuren repräsentieren, usw.) können ebenfalls unter Verwendung von Polynomen wie die in 9A gezeigten repräsentiert sein.
-
Wie in 9A gezeigt ist, kann eine Fahrspur 900 unter Verwendung von Polynomen (z. B. Polynomen erster, zweiter oder dritter Ordnung oder irgendeiner geeigneten Ordnung) repräsentiert sein. Zur Veranschaulichung ist die Fahrspur 900 als eine zweidimensionale Fahrspur gezeigt, und die Polynome sind als zweidimensionale Polynome gezeigt. Wie in 9A abgebildet, enthält die Fahrspur 900 eine linke Seite 910 und eine rechte Seite 920. In einigen Ausführungsformen kann mehr als ein Polynom verwendet sein, um einen Ort jeder Seite der Straße oder Fahrspurbegrenzung zu repräsentieren. Beispielsweise können die linke Seite 910 und die rechte Seite 920 jeweils durch mehrere Polynome irgendeiner geeigneten Länge repräsentiert sein. In einigen Fällen können die Polynome eine Länge von etwa 100 m aufweisen, obwohl auch andere Längen größer oder kleiner als 100 m verwendet werden können. Zusätzlich können die Polynome einander überlappen, um nahtlose Übergänge beim Navigieren basierend auf der Reihe nach angetroffenen Polynomen zu erleichtern, wenn ein Trägerfahrzeug entlang einer Straße fährt. Beispielsweise können die linke Seite 910 und die rechte Seite 920 jeweils durch mehrere Polynome dritter Ordnung repräsentiert sein, die in Segmente von etwa 100 Metern Länge unterteilt sind (ein Beispiel für den ersten vorbestimmten Bereich) und um etwa 50 Meter überlappen. Die Polynome, die die linke Seite 910 und die rechte Seite 920 repräsentieren, können die gleiche Ordnung aufweisen oder nicht. In einigen Ausführungsformen können beispielsweise einige Polynome Polynome zweiter Ordnung sein, einige können Polynome dritter Ordnung sein, und einige können Polynome vierter Ordnung sein.
-
In dem in 9A gezeigten Beispiel ist die linke Seite 910 der Fahrspur 900 durch zwei Gruppen von Polynomen dritter Ordnung repräsentiert. Die erste Gruppe enthält die Polynomsegmente 911, 912 und 913. Die zweite Gruppe enthält die Polynomsegmente 914, 915 und 916. Die beiden Gruppen verlaufen zwar im Wesentlichen parallel zueinander, folgen jedoch den Orten ihrer jeweiligen Straßenseite. Die Polynomsegmente 911, 912, 913, 914, 915 und 916 weisen eine Länge von etwa 100 Metern auf und überlappen benachbarte Segmente der Reihe um etwa 50 Meter. Wie bereits erwähnt, können jedoch auch Polynome unterschiedlicher Länge und unterschiedlicher Überlappungsgrößen verwendet sein. Die Polynome können beispielsweise eine Länge von 500 m, 1 km oder mehr aufweisen, und die Überlappungsgröße kann von 0 bis 50 m, 50 m bis 100 m oder mehr als 100 m variieren. Zusätzlich, obwohl 9A so gezeigt ist, dass sie Polynome repräsentiert, die sich im 2D-Raum (z. B. auf der Papieroberfläche) erstrecken, ist zu verstehen, dass diese Polynome auch Kurven repräsentieren können, die sich in drei Dimensionen erstrecken (die z. B. eine Höhenkomponente enthalten), um zusätzlich zur X-Y-Krümmung Höhenänderungen in einem Straßensegment zu repräsentieren. In dem in 9A gezeigten Beispiel ist die rechte Seite 920 der Fahrspur 900 ferner durch eine erste Gruppe, die die Polynomsegmente 921, 922 und 923 aufweist, und eine zweite Gruppe, die die Polynomsegmente 924, 925 und 926 aufweist, repräsentiert.
-
Zurück zu den Sollbewegungsbahnen der dünn besetzten 800 zeigt 9B ein dreidimensionales Polynom, das eine Sollbewegungsbahn für ein Fahrzeug, das entlang eines speziellen Straßensegments fährt, repräsentiert. Die Sollbewegungsbahn repräsentiert nicht nur den X-Y-Weg, den ein Trägerfahrzeug entlang eines speziellen Straßensegments fahren sollte, sondern auch die Höhenänderung, die das Trägerfahrzeug während der Fahrt entlang des Straßensegments erfährt. So kann jede Sollbewegungsbahn in der dünn besetzten Karte 800 durch ein oder mehrere dreidimensionale Polynome wie das in 9B gezeigte dreidimensionale Polynom 950 repräsentiert sein. Die dünn besetzte Karte 800 kann mehrere Bewegungsbahnen enthalten (z.B. Millionen oder Milliarden oder mehr, um Bewegungsbahnen von Fahrzeugen entlang verschiedener Straßensegmente auf Straßen in der ganzen Welt zu repräsentieren). In einigen Ausführungsformen kann jede Sollbewegungsbahn einem Polynomzug entsprechen, der dreidimensionale Polynomsegmente verbindet.
-
Hinsichtlich des Datenfußabdrucks in der dünn besetzten Karte 800 gespeicherten Polynomkurven kann in einigen Ausführungsformen jedes Polynom dritten Grades durch vier Parameter repräsentiert sein, die jeweils vier Bytes an Daten erfordern. Geeignete Repräsentationen können mit Polynomen dritten Grades erhalten werden, die etwa 192 Bytes an Daten pro 100 m erfordern. Bei einem Trägerfahrzeug, das mit einer Geschwindigkeit von etwa 100 km/h fährt, entspricht dies einem Datennutzungs/übertragungsbedarf von etwa 200 kB pro Stunde.
-
Die dünn besetzte Karte 800 kann die Fahrspurvernetzung unter Verwendung einer Kombination von Geometriedeskriptoren und Metadaten beschreiben. Die Geometrie kann durch Polynome oder Polynomzüge beschrieben sein, wie vorstehend beschrieben. Die Metadaten können die Anzahl der Fahrspuren, spezielle Eigenschaften (z. B. eine Fahrspur für Fahrgemeinschaften) und möglicherweise andere dünn besetzte Kennzeichnungen beschreiben. Der gesamte Fußabdruck solcher Indikatoren kann vernachlässigbar sein.
-
Dementsprechend kann eine dünn besetzte Karte gemäß Ausführungsformen der vorliegenden Offenbarung wenigstens eine Linienrepräsentation eines Straßenoberflächenmerkmals, das sich entlang des Straßensegments erstreckt, enthalten, wobei jede Linienrepräsentation einen Weg entlang des Straßensegments, der im Wesentlichen dem Straßenoberflächenmerkmal entspricht, repräsentiert. In einigen Ausführungsformen kann die wenigstens eine Linienrepräsentation des Straßenoberflächenmerkmals, wie vorstehend diskutiert, einen Polynomzug, eine Polynomrepräsentation oder eine Kurve enthalten. Darüber hinaus kann in einigen Ausführungsformen das Straßenoberflächenmerkmal einen Straßenrand und/oder eine Fahrspurmarkierung enthalten. Außerdem kann, wie nachstehend in Bezug auf „Crowdsourcing“ diskutiert, das Straßenoberflächenmerkmal durch Bildanalyse mehrerer Bilder, die erfasst wurden, als ein oder mehrere Fahrzeuge das Straßensegment durchfahren haben, identifiziert werden.
-
Wie vorstehend erwähnt, kann die dünn besetzte Karte 800 mehrere vorbestimmte Orientierungspunkte, die einem Straßensegment zugeordnet sind, enthalten. Anstatt tatsächliche Bilder der Orientierungspunkte zu speichern und sich beispielsweise auf eine Bilderkennungsanalyse, die auf aufgenommenen Bildern und gespeicherten Bildern basiert, zu stützen, kann jeder Orientierungspunkt in der dünn besetzten Karte 800 unter Verwendung von weniger Daten, als ein gespeichertes, tatsächliches Bild erfordern würde, repräsentiert und erkannt werden. Daten, die Orientierungspunkte repräsentieren, können immer noch ausreichende Informationen zur Beschreibung oder Identifizierung der Orientierungspunkte entlang einer Straße enthalten. Das Speichern von Daten, die die Eigenschaften von Orientierungspunkten beschreiben, anstatt der tatsächlichen Bilder von Orientierungspunkten, kann die Größe der dünn besetzten Karte 800 reduzieren.
-
10 stellt Beispiele für Typen von Orientierungspunkten, die in der dünn besetzten Karte 800 repräsentiert sein können, dar. Die Orientierungspunkte können irgendwelche sichtbaren und identifizierbaren Objekte entlang eines Straßensegments enthalten. Die Orientierungspunkte können so ausgewählt sein, dass sie fest sind und sich in Bezug auf ihren Ort und/oder ihren Inhalt nicht häufig ändern. Die in der dünn besetzten Karte 800 enthaltenen Orientierungspunkte können bei der Bestimmung eines Orts des Fahrzeugs 200 in Bezug auf eine Sollbewegungsbahn nützlich sein, wenn das Fahrzeug ein spezielles Straßensegment durchfährt. Beispiele für Orientierungspunkte können Verkehrsschilder, Richtungsschilder, allgemeine Schilder (z. B. rechteckige Schilder), Installationen an der Straßenseite (z. B. Lichtmasten, Reflektoren usw.) und irgendeine andere geeignete Kategorie sein. In einigen Ausführungsformen können auch Fahrbahnmarkierungen auf der Straße als Orientierungspunkte in der dünn besetzten Karte 800 enthalten sein.
-
Beispiele für die in 10 gezeigten Orientierungspunkte enthalten Verkehrsschilder, Richtungsschilder, Installationen an der Straßenseite und allgemeine Schilder. Verkehrsschilder können beispielsweise Geschwindigkeitsbegrenzungsschilder (z. B. das Geschwindigkeitsbegrenzungsschild 1000), Vorfahrtsschilder (z. B. das Vorfahrtsschild 1005), Routennummernschilder (z. B. das Routennummernschild 1010), Ampelschilder (z. B. das Ampelschild 1015) und Stoppschilder (z. B. das Stoppschild 1020) enthalten. Richtungsschilder können ein Schild enthalten, das einen oder mehrere Pfeile enthält, die eine oder mehrere Richtungen zu verschiedenen Orten angeben. Richtungsschilder können beispielsweise ein Autobahnschild 1025 mit Pfeilen, die Fahrzeuge zu verschiedenen Straßen oder Orten leiten, ein Ausfahrtsschild 1030 mit einem Pfeil, der Fahrzeuge aus einer Straße heraus leitet, usw. enthalten. Dementsprechend kann wenigstens einer der mehreren Orientierungspunkte ein Straßenschild enthalten.
-
Allgemeine Schilder können verkehrsunabhängig sein. Allgemeine Schilder können beispielsweise Werbetafeln oder eine Begrüßungstafel an der Grenze zwischen zwei Ländern, Staaten, Landkreisen, Städten oder Gemeinden enthalten. 10 zeigt ein allgemeines Schild 1040 („Joe's Restaurant“). Obwohl das allgemeine Zeichen 1040 eine rechteckige Form aufweisen kann, wie in 10 gezeigt, kann das allgemeine Zeichen 1040 auch andere Formen aufweisen, wie z. B. ein Quadrat, einen Kreis, ein Dreieck usw.
-
Orientierungspunkte können auch Installationen am Straßenrand enthalten. Installationen am Straßenrand können Objekte sein, die keine Schilder sind, und können sich nicht auf den Verkehr oder Richtungen beziehen. Installationen am Straßenrand können beispielsweise Lichtmasten (z. B. den Lichtmast 1035), Stromleitungsmasten, Ampelmasten usw. enthalten.
-
Orientierungspunkte können auch Baken enthalten, die speziell für die Verwendung in einem autonomen Fahrzeugnavigationssystem konstruiert sind. Solche Baken können beispielsweise eigenständige Strukturen enthalten, die in vorbestimmten Abständen platziert sind, um die Navigation des Trägerfahrzeugs zu unterstützen. Solche Baken können auch visuelle/grafische Informationen enthalten, die zu existierenden Straßenschildern hinzugefügt werden (z. B. Symbole, Embleme, Strichcodes usw.), die durch ein Fahrzeug, das entlang eines Straßensegments fährt, identifiziert oder erkannt werden können. Solche Baken können auch elektronische Komponenten enthalten. In solchen Ausführungsformen können elektronische Baken (z. B. RFID-Identifizierungskennzeichen usw.) verwendet werden, um nicht-visuelle Informationen an ein Trägerfahrzeug zu übertragen. Solche Informationen können beispielsweise Informationen zur Identifizierung von Orientierungspunkten und/oder zum Ort von Orientierungspunkt enthalten, die ein Trägerfahrzeug bei der Bestimmung seiner Position entlang einer Sollbewegungsbahn verwenden kann.
-
In einigen Ausführungsformen können die in der dünn besetzten Karte 800 enthaltenen Orientierungspunkte durch ein Datenobjekt einer vorbestimmten Größe repräsentiert sein. Die Daten, die einen Orientierungspunkt repräsentieren, können irgendwelche geeigneten Parameter zur Identifizierung eines speziellen Orientierungspunktes enthalten. In einigen Ausführungsformen können die in der dünn besetzten Karte 800 gespeicherten Orientierungspunkte beispielsweise Parameter wie z. B. eine physikalische Größe des Orientierungspunkts (z. B. zur Unterstützung der Abschätzung der Abstands zum Orientierungspunkt basierend auf einer bekannten Größe/eines bekannten Maßstabs), einen Abstand zu einem vorherigen Orientierungspunkt, den seitlichen Versatz, die Höhe, einen Typencode (z. B. einen Typ des Orientierungspunkts - welcher Typ von Richtungsschild, Verkehrsschild usw.), eine GPS-Koordinate (z. B. zur Unterstützung der globalen Ortsbestimmung) und andere geeignete Parameter enthalten. Jedem Parameter kann eine Datengröße zugeordnet sein. Beispielsweise kann die Größe eines Orientierungspunkts unter Verwendung von 8 Byte Daten gespeichert sein. Ein Abstand zu einem vorherigen Orientierungspunkt, ein seitlicher Versatz und die Höhe können unter Verwendung von 12 Byte Daten spezifiziert sein. Ein Typencode, der einem Orientierungspunkt wie z. B. einem Richtungsschild oder einem Verkehrszeichen zugeordnet ist, kann etwa 2 Bytes an Daten erfordern. Für allgemeine Schilder kann eine Bildsignatur, die die Identifizierung des allgemeinen Schildes ermöglicht, unter Verwendung 50 Byte Datenspeicherplatz gespeichert sein. Der GPS-Position des Orientierungspunkts können 16 Bytes Datenspeicher zugeordnet sein. Diese Datengrößen für jeden Parameter sind nur Beispiele, und es können auch andere Datengrößen verwendet sein. Das Repräsentieren von Orientierungspunkten in der dünn besetzten Karte 800 auf diese Weise kann eine schlanke Lösung für das effiziente Repräsentieren von Orientierungspunkten in der Datenbank bieten. In einigen Ausführungsformen können die Objekte als semantische Standardobjekte oder als semantische Nicht-Standardobjekte bezeichnet sein. Ein semantisches Standardobjekt kann irgendeine Objektklasse enthalten, für die es eine standardisierte Gruppe von Merkmalen gibt (z. B. Geschwindigkeitsbegrenzungsschilder, Warnschilder, Richtungsschilder, Verkehrsampeln usw. mit bekannten Abmessungen oder anderen Merkmalen). Ein semantisches Nicht-Standardobjekt kann irgendein Objekt enthalten, das keiner standardisierten Gruppe von Merkmalen zugeordnet ist (z. B. allgemeine Werbeschilder, Schilder zum Identifizieren von Geschäftseinrichtungen, Schlaglöcher, Bäume usw., die variable Abmessungen aufweisen können).Jedes semantische Nicht-Standardobjekt kann mit 38 Byte Daten dargestellt repräsentiert werden (z. B. 8 Byte für die Größe; 12 Byte für den Abstand zum vorherigen Orientierungspunkt, seitlichen Versatz und Höhe; 2 Byte für einen Typencode; und 16 Byte für Positionskoordinaten). Semantische Standardobjekte können unter Verwendung von noch weniger Daten repräsentiert sein, da der Kartierungsserver möglicherweise keine Größeninformationen benötigt, um das Objekt vollständig in der dünn besetzten Karte zu repräsentieren.
-
Die dünn besetzte Karte 800 kann ein System von Identifizierungskennzeichen verwenden, um Typen von Orientierungspunkt zu repräsentieren. In einigen Fällen kann jedem Verkehrszeichen oder Richtungsschild ein eigenes Identifizierungskennzeichen zugeordnet sein, das in der Datenbank als Teil der Orientierungspunktidentifizierung gespeichert sein kann. Beispielsweise kann die Datenbank eine Größenordnung von 1000 unterschiedlichen Identifizierungskennzeichen, die verschiedene Verkehrsschilder repräsentieren, und eine Größenordnung von etwa 10000 unterschiedlichen Identifizierungskennzeichen, die Richtungsschilder repräsentieren, enthalten. Natürlich kann irgendeine geeignete Anzahl von Identifizierungskennzeichen verwendet sein, und bei Bedarf können zusätzliche Identifizierungskennzeichen erzeugt werden. In einigen Ausführungsformen können Schilder für allgemeine Zwecke unter Verwendung von weniger als 100 Byte repräsentiert sein (z. B. etwa 86 Byte, die 8 Byte für die Größe; 12 Byte für den Abstand zu dem vorherigen Orientierungspunkt, den seitlichen Versatz und die Höhe; 50 Byte für eine Bildsignatur; und 16 Byte für GPS-Koordinaten enthalten).
-
Somit kann für semantische Straßenschilder, die keine Bildsignatur erfordern, die Auswirkung auf die Datendichte der dünn besetzten Karte 800 selbst bei einer relativ hohen Orientierungspunktdichte von etwa 1 pro 50 m in der Größenordnung von etwa 760 Byte pro Kilometer sein (z. B. 20 Orientierungspunkte pro km x 38 Byte pro Orientierungspunkt = 760 Byte). Selbst für Schilder für allgemeine Zwecke, die eine Bildsignaturkomponente enthalten, ist die Auswirkung auf die Datendichte etwa 1,72 kB pro km (z. B. 20 Orientierungspunkte pro km x 86 Byte pro Orientierungspunkt = 1.720 Byte). Für semantische Straßenschilder gleicht dies einer Datennutzung von etwa 76 kB pro Stunde für ein Fahrzeug, das mit 100 km/h fährt. Für Schilder für allgemeine Zwecke gleicht dies etwa 170 kB pro Stunde für ein Fahrzeug, das mit 100 km/h fährt. Es wird darauf hingewiesen, dass in manchen Umgebungen (z. B. in Städten) eine viel höhere Dichte an detektierten Objekten zur Aufnahme in die dünn besetzte Karte zur Verfügung stehen kann (vielleicht mehr als eines pro Meter). In einigen Ausführungsformen kann ein allgemein rechteckiges Objekt, wie z. B. ein rechteckiges Schild, in der dünn besetzten Karte 800 durch nicht mehr als 100 Bytes an Daten repräsentiert sein. Die Repräsentation des allgemein rechteckigen Objekts (z.B. des allgemeinen Schildes 1040) in der dünn besetzten Karte 800 kann eine komprimierte Bildsignatur oder einen Bild-Hash (z.B. die komprimierte Bildsignatur 1045), die/der dem allgemein rechteckigen Objekt zugeordnet ist, enthalten. Diese/r komprimierte Bildsignatur/Bild-Hash kann unter Verwendung irgendeines geeigneten Bild-Hash-Algorithmus bestimmt werden und kann beispielsweise zur Unterstützung der Identifizierung eines Schildes für allgemeine Zwecke, z. B. eines erkannten Orientierungspunktes, verwendet werden. Eine solche komprimierte Bildsignatur (z. B. Bildinformationen, die von tatsächlichen Bilddaten, die ein Objekt repräsentieren, abgeleitet sind) kann eine Notwendigkeit der Speicherung eines tatsächlichen Bildes eines Objekts oder eine Notwendigkeit einer vergleichenden Bildanalyse, die auf tatsächlichen Bildern ausgeführt wird, um Orientierungspunkte zu erkennen, vermeiden.
-
Bezug nehmend auf 10 kann die dünn besetzte Karte 800 eine komprimierte Bildsignatur 1045, die einem allgemeinen Schild 1040 zugeordnet ist, anstelle eines tatsächlichen Bildes des allgemeinen Schildes 1040 enthalten oder speichern. Nachdem beispielsweise eine Bildaufnahmevorrichtung (z. B. die Bildaufnahmevorrichtung 122, 124 oder 126) ein Bild des allgemeinen Schildes 1040 aufgenommen hat, kann ein Prozessor (z. B. der Bildprozessor 190 oder irgendein anderer Prozessor, der Bilder entweder an Bord eines Fahrzeugs oder an einem entfernten Standort in Bezug auf ein Trägerfahrzeug verarbeiten kann) eine Bildanalyse ausführen, um eine komprimierte Bildsignatur 1045, die eine eindeutige Signatur oder ein Muster, die/das dem allgemeinen Zeichen 1040 zugeordnet ist, enthält, zu extrahieren/erzeugen. In einer Ausführungsform kann die komprimierte Bildsignatur 1045 eine Form, ein Farbmuster, ein Helligkeitsmuster oder irgendein anderes Merkmal, das aus dem Bild des allgemeinen Schildes 1040 extrahiert werden kann, um das allgemeine Schild 1040 zu beschreiben, enthalten.
-
Beispielsweise können in 10 die Kreise, Dreiecke und Sterne, die in der komprimierten Bildsignatur 1045 gezeigt sind, Bereiche mit unterschiedlichen Farben repräsentieren. Das durch die Kreise, Dreiecke und Sterne repräsentierte Muster kann in der dünn besetzten Karte 800 gespeichert sein, z. B. innerhalb der 50 Bytes, die für die Aufnahme einer Bildsignatur vorgesehen sind. Insbesondere sind die Kreise, Dreiecke und Sterne sind nicht notwendigerweise so zu deuten, dass sie angeben, dass solche Formen als Teil der Bildsignatur gespeichert sind. Vielmehr sollen diese Formen erkennbare Bereiche mit unterscheidbaren Farbunterschieden, Textbereiche, grafische Formen oder andere Variationen von Eigenschaften, die einem Schild für allgemeine Zwecke zugeordnet werden können, konzeptionell repräsentieren. Solche komprimierten Bildsignaturen können verwendet werden, um einen Orientierungspunkt in Form eines allgemeinen Schildes zu identifizieren. Die komprimierte Bildsignatur kann beispielsweise verwendet werden, um eine Gleich-nicht-Gleich-Analyse auszuführen, die auf einem Vergleich einer gespeicherten komprimierten Bildsignatur mit Bilddaten, die beispielsweise unter Verwendung einer Kamera an Bord eines autonomen Fahrzeugs aufgenommen wurden, basiert.
-
Dementsprechend können die mehrere Orientierungspunkten durch Bildanalyse der mehreren Bilder, die erfasst werden, wenn ein oder mehrere Fahrzeuge das Straßensegment durchfahren, identifiziert werden. Wie nachstehend in Bezug auf „Crowdsourcing“ erläutert, kann in einigen Ausführungsformen die Bildanalyse zur Identifizierung der mehreren Orientierungspunkte das Akzeptieren potenzieller Orientierungspunkte enthalten, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt erscheint, zu Bildern, in denen der Orientierungspunkt nicht erscheint, einen Schwellenwert übersteigt. Darüber hinaus kann in einigen Ausführungsformen die Bildanalyse zur Identifizierung der mehreren Orientierungspunkte das Ablehnen potenzieller Orientierungspunkte enthalten, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt nicht erscheint, zu Bildern, in denen der Orientierungspunkt erscheint, einen Schwellenwert übersteigt.
-
Zurück zu den Sollbewegungsbahnen, die ein Trägerfahrzeug zur Navigation auf einem speziellen Straßensegment verwenden kann, zeigt 11A Polynomrepräsentationen von Bewegungsbahnen, die während eines Prozesses zum Aufbauen oder Pflegen der dünn besetzten Karte 800 aufgenommen werden. Eine Polynomrepräsentation einer Sollbewegungsbahn, die in der dünn besetzten Karte 800 enthalten ist, kann basierend auf zwei oder mehr rekonstruierten Bewegungsbahnen früherer Durchfahrten von Fahrzeugen entlang desselben Straßensegments bestimmt werden. In einigen Ausführungsformen kann die Polynomrepräsentation der Sollbewegungsbahn, die in der dünn besetzten Karte 800 enthalten ist, eine Aggregation von zwei oder mehr rekonstruierten Bewegungsbahnen früherer Durchfahrten von Fahrzeugen entlang desselben Straßensegments sein. In einigen Ausführungsformen kann die Polynomrepräsentation der Sollbewegungsbahn, die in der dünn besetzten Karte 800 enthalten ist, ein Mittelwert der zwei oder mehr rekonstruierten Bewegungsbahnen früherer Durchfahrten von Fahrzeugen entlang desselben Straßensegments sein. Andere mathematische Operationen können ebenfalls verwendet werden, um eine Sollbewegungsbahn entlang eines Straßenwegs basierend auf rekonstruierten Bewegungsbahnen, die von Fahrzeugen, die ein Straßensegment durchfahren, gesammelt werden, zu konstruieren.
-
Wie in 11A gezeigt ist, kann ein Straßensegment 1100 von einer Anzahl von Fahrzeugen 200 zu unterschiedlichen Zeiten befahren werden. Jedes Fahrzeug 200 kann Daten über einen Weg, den das Fahrzeug entlang des Straßensegments genommen hat, sammeln. Der von einem speziellen Fahrzeug gefahrene Weg kann, unter anderen potenziellen Quellen, basierend auf Kameradaten, Beschleunigungsmesserdaten, Geschwindigkeitssensorinformationen und/oder GPS-Informationen bestimmt werden. Solche Daten können zur Rekonstruktion der Bewegungsbahnen von entlang des Straßensegments fahrenden Fahrzeugen verwendet werden, und basierend auf diesen rekonstruierten Bewegungsbahnen kann eine Sollbewegungsbahn (oder mehrere Sollbewegungsbahnen) für das spezielle Straßensegment bestimmt werden. Solche Sollbewegungsbahnen können einen bevorzugten Weg eines Trägerfahrzeugs repräsentieren (z. B. geführt durch ein autonomes Navigationssystem), wenn das Fahrzeug entlang des Straßensegments fährt.
-
In dem in 11A gezeigten Beispiel kann eine erste rekonstruierte Bewegungsbahn 1101 basierend auf Daten, die von einem ersten Fahrzeug, das das Straßensegment 1100 in einer ersten Zeitspanne (z.B. Tag 1) durchfährt, empfangen wurden, bestimmt werden, eine zweite rekonstruierte Bewegungsbahn 1102 kann von einem zweiten Fahrzeug, das das Straßensegment 1100 in einer zweiten Zeitspanne (z.B. Tag 2) durchfährt, erhalten werden, und eine dritte rekonstruierte Bewegungsbahn 1103 kann von einem dritten Fahrzeug, das das Straßensegment 1100 in einer dritten Zeitspanne (z.B. Tag 3) durchfährt, erhalten werden. Jede Bewegungsbahn 1101, 1102 und 1103 kann durch ein Polynom, beispielsweise ein dreidimensionales Polynom, repräsentiert sein. Es wird darauf hingewiesen, dass in einigen Ausführungsformen irgendeine der rekonstruierten Bewegungsbahnen an Bord der Fahrzeuge, die das Straßensegment 1100 durchfahren, zusammengestellt werden kann.
-
Zusätzlich oder alternativ können solche rekonstruierten Bewegungsbahnen auf der Serverseite basierend auf Informationen, die von Fahrzeugen, die das Straßensegment 1100 befahren, empfangen werden, bestimmt werden. In einigen Ausführungsformen können die Fahrzeuge 200 beispielsweise Daten über ihre Bewegung entlang des Straßensegments 1100 (z. B. unter anderem Lenkwinkel, Fahrtrichtung, Zeit, Position, Geschwindigkeit, erfasste Straßengeometrie und/oder erfasste Orientierungspunkte) an einen oder mehrere Server senden. Der Server kann basierend auf den empfangenen Daten Bewegungsbahnen für die Fahrzeuge 200 rekonstruieren. Der Server kann auch eine Sollbewegungsbahn zum Führen der Navigation eines autonomen Fahrzeugs, das zu einem späteren Zeitpunkt auf demselben Straßenabschnitt 1100 fährt, basierend auf der ersten, zweiten und dritten Bewegungsbahn 1101, 1102 und 1103 erzeugen. Während eine Sollbewegungsbahn einem einzigen vorherigen Durchfahren eines Straßensegments zugeordnet sein kann, kann in einigen Ausführungsformen jede in der dünn besetzten Karte 800 enthaltene Sollbewegungsbahn basierend auf zwei oder mehr rekonstruierten Bewegungsbahnen von Fahrzeugen, die dasselbe Straßensegment durchfahren haben, bestimmt werden. In 11A ist die Sollbewegungsbahn durch 1110 repräsentiert. In einigen Ausführungsformen kann die Sollbewegungsbahn 1110 basierend auf einem Mittelwert der ersten, zweiten und dritten Bewegungsbahn 1101, 1102 und 1103 erzeugt werden. In einigen Ausführungsformen kann die in der dünn besetzten Karte 800 enthaltene Sollbewegungsbahn 1110 eine Aggregation (z. B. eine gewichtete Kombination) von zwei oder mehr rekonstruierten Bewegungsbahnen sein.
-
In dem Kartierungsserver kann der Server die tatsächlichen Bewegungsbahnen für ein spezielles Straßensegment von mehreren Sammelfahrzeugen, die das Straßensegment durchfahren, empfangen. Um eine Sollbewegungsbahn für jeden gültigen Weg entlang des Straßensegments (z. B. jede Fahrspur, jede Fahrtrichtung, jeden Weg durch eine Kreuzung usw.) zu erzeugen, können die empfangenen tatsächlichen Bewegungsbahnen abgeglichen werden. Der Abgleichsprozess kann das Verwenden detektierter Objekte/Merkmale, die entlang des Straßensegments identifiziert wurden, zusammen mit den gesammelten Positionen dieser detektierten Objekte/Merkmale, um die tatsächlichen, gesammelten Bewegungsbahnen miteinander zu korrelieren, enthalten. Nach dem Abgleichen kann basierend auf den aggregierten, korrelierten/abgeglichenen tatsächlichen Bewegungsbahnen eine mittlere oder am besten passende Sollbewegungsbahn für jede verfügbare Fahrspur usw. bestimmt werden.
-
Die 11B und 11C stellen ferner das Konzept der Sollbewegungsbahnen, die Straßensegmenten innerhalb eines geographischen Gebiets 1111 zugeordnet sind, dar. Wie in 11B gezeigt, kann ein erstes Straßensegment 1120 innerhalb des geografischen Gebiets 1111 eine mehrspurige Straße enthalten, die zwei Fahrspuren 1122, die für den Fahrzeugverkehr in einer ersten Richtung festgelegt sind, und zwei zusätzliche Fahrspuren 1124, die für den Fahrzeugverkehr in einer zweiten, der ersten Richtung entgegengesetzten Richtung festgelegt sind, enthält. Die Fahrspuren 1122 und 1124 können durch eine doppelte gelbe Linie 1123 getrennt sein. Das geografische Gebiet 1111 kann auch ein abzweigendes Straßensegment 1130 enthalten, das das Straßensegment 1120 kreuzt. Das Straßensegment 1130 kann eine zweispurige Straße enthalten, wobei jede Fahrspur für eine andere Fahrtrichtung festgelegt ist. Das geographische Gebiet 1111 kann auch andere Straßenmerkmale enthalten, z. B. eine Haltelinie 1132, ein Stoppschild 1134, ein Geschwindigkeitsbegrenzungsschild 1136 und ein Gefahrenschild 1138.
-
Wie in 11C gezeigt ist, kann die dünn besetzte Karte 800 eine lokale Karte 1140, die ein Straßenmodell zur Unterstützung der autonomen Navigation von Fahrzeugen innerhalb des geografischen Gebiets 1111 enthält, enthalten. Beispielsweise kann die lokale Karte 1140 Sollbewegungsbahnen für eine oder mehrere Fahrspuren, die Straßensegmenten 1120 und/oder 1130 innerhalb des geografischen Gebiets 1111 zugeordnet sind, enthalten. Beispielsweise kann die lokale Karte 1140 Sollbewegungsbahnen 1141 und/oder 1142 enthalten, auf die ein autonomes Fahrzeug beim Durchfahren der Fahrspuren 1122 zugreifen oder sich darauf stützen kann. In ähnlicher Weise kann die lokale Karte 1140 Sollbewegungsbahnen 1143 und/oder 1144 enthalten, auf die ein autonomes Fahrzeug beim Durchfahren der Fahrspuren 1124 zugreifen oder sich darauf stützen kann. Ferner kann die lokale Karte 1140 Sollbewegungsbahnen 1145 und/oder 1146 enthalten, auf die ein autonomes Straßensegment beim Durchfahren Straßensegments 1130 zugreifen oder sich darauf stützen kann. Die Sollbewegungsbahn 1147 repräsentiert einen bevorzugten Weg, dem ein autonomes Fahrzeug folgen sollte, wenn es von den Fahrspuren 1120 (und insbesondere in Bezug auf die Sollbewegungsbahn 1141, die der äußersten rechten Fahrspur der Fahrspuren 1120 zugeordnet ist) zu dem Straßensegment 1130 (und insbesondere in Bezug auf die Sollbewegungsbahn 1145, die der ersten Seite des Straßensegments 1130 zugeordnet ist) wechselt. Ähnlich repräsentiert die Sollbewegungsbahn 1148 einen bevorzugten Weg, dem ein autonomes Fahrzeug folgen sollte, wenn es von dem Straßensegment 1130 (und insbesondere in Bezug auf die Sollbewegungsbahn 1146) zu einem Abschnitt des Straßensegments 1124 (und insbesondere, wie gezeigt, in Bezug auf eine Sollbewegungsbahn 1143, die einer linken Spur der Fahrspuren 1124 zugeordnet ist) wechselt.
-
Die dünn besetzte Karte 800 kann auch Repräsentationen anderer straßenbezogener Merkmale, die dem geografischen Gebiet 1111 zugeordnet sind, enthalten. Beispielsweise kann die dünn besetzte Karte 800 auch Repräsentationen eines oder mehrerer Orientierungspunkte, die in dem geografischen Gebiet 1111 identifiziert wurden, enthalten. Solche Orientierungspunkte können einen ersten Orientierungspunkt 1150, der der Haltelinie 1132 zugeordnet ist, einen zweiten Orientierungspunkt 1152, der dem Stoppschild 1134 zugeordnet ist, einen dritten Orientierungspunkt, der dem Geschwindigkeitsbegrenzungsschild 1154 zugeordnet ist, und einen vierten Orientierungspunkt 1156, der dem Gefahrenschild 1138 zugeordnet ist, enthalten. Solche Orientierungspunkte können beispielsweise verwendet werden, um ein autonomes Fahrzeug bei der Bestimmung seines aktuellen Orts in Bezug auf irgendeine der gezeigten Sollbewegungsbahnen zu unterstützen, so dass das Fahrzeug seine Fahrtrichtung so anpassen kann, dass sie mit einer Richtung der Sollbewegungsbahn an dem bestimmten Ort übereinstimmt.
-
In einigen Ausführungsformen kann die dünn besetzte Karte 800 auch Straßensignaturprofile enthalten. Solche Straßensignaturprofile können jeder erkennbaren/messbaren Variation wenigstens eines einer Straße zugeordneten Parameters zugeordnet sein. In einigen Fällen können solche Profile beispielsweise Variationen der Straßenoberflächeninformationen zugeordnet sein, wie z. B. Variationen der Oberflächenrauigkeit eines speziellen Straßensegments, Variationen der Straßenbreite über ein spezielles Straßensegment, Variationen der Abstände zwischen unterbrochenen Linien entlang eines speziellen Straßensegments, Variationen der Straßenkrümmung entlang eines bestimmten Straßensegments, usw. 11D zeigt ein Beispiel für ein Straßensignaturprofil 1160. Obwohl das Profil 1160 irgendeinen der vorstehend genannten oder andere Parameter repräsentieren kann, kann das Profil 1160 in einem Beispiel ein Maß für die Straßenoberflächenrauigkeit repräsentieren, wie sie beispielsweise durch die Überwachung eines oder mehrerer Sensoren, die Ausgaben bereitstellen, die eine Größe der Radaufhängungsverschiebung angeben, wenn ein Fahrzeug einen bestimmten Straßenabschnitt befährt, erhalten wird.
-
Alternativ oder gleichzeitig kann das Profil 1160 eine Variation der Straßenbreite repräsentieren, wie sie basierend auf Bilddaten bestimmt wird, die über eine Kamera an Bord eines Fahrzeugs, das ein spezielles Straßensegment befährt, erhalten werden. Solche Profile können beispielsweise bei der Bestimmung eines speziellen Orts eines autonomen Fahrzeugs in Bezug auf eine bestimmte Sollbewegungsbahn nützlich sein. Das heißt, ein autonomes Fahrzeug kann beim Durchfahren eines Straßensegments ein Profil messen, das einem oder mehreren Parametern des Straßensegments zugeordnet ist. Falls das gemessene Profil mit einem vorbestimmten Profil, das die Parametervariation in Bezug auf die Position entlang des Straßensegments darstellt, korreliert/abgeglichen werden kann, können das gemessene und das vorbestimmte Profil verwendet werden (z. B. durch Überlagerung entsprechender Abschnitte des gemessenen und des vorbestimmten Profils), um eine aktuelle Position entlang des Straßensegments und dadurch eine aktuelle Position relativ zu einer Sollbewegungsbahn für das Straßensegment zu bestimmen.
-
In einigen Ausführungsformen kann die dünn besetzte Karte 800 unterschiedliche Bewegungsbahnen enthalten, die auf unterschiedlichen Eigenschaften, die einem Benutzer autonomer Fahrzeuge, Umweltbedingungen und/oder anderen Parametern in Bezug auf das Fahren zugeordnet sind, basieren. In einigen Ausführungsformen können beispielsweise unterschiedliche Bewegungsbahnen basierend unterschiedlichen Benutzerpräferenzen und/oder -profilen erzeugt werden. Die dünn besetzte Karte 800, die solche unterschiedlichen Bewegungsbahnen enthält, kann unterschiedlichen autonomen Fahrzeugen unterschiedlicher Nutzer zur Verfügung gestellt werden. Beispielsweise können es einige Nutzer bevorzugen, mautpflichtige Straßen zu vermeiden, während es andere vorziehen, die kürzeste oder schnellste Strecke zu nehmen, unabhängig davon, ob auf der Strecke eine Mautstraße liegt. Die diskutierten Systeme können basierend auf solchen unterschiedlichen Benutzerpräferenzen oder -profilen unterschiedliche dünn besetzte Karten mit unterschiedlichen Bewegungsbahnen erzeugen. Als ein weiteres Beispiel können es einige Benutzer vorziehen, auf einer schnelleren Fahrspur zu fahren, während andere es vorziehen können, eine Position in der mittleren Fahrspur zu allen Zeiten beizubehalten.
-
Basierend auf unterschiedlichen Umgebungsbedingungen, wie z. B. Tag und Nacht, Schnee, Regen, Nebel usw., können unterschiedliche Bewegungsbahnen erzeugt und in die dünn besetzte Karte 800 aufgenommen werden. Autonome Fahrzeuge, die unter unterschiedlichen Umgebungsbedingungen fahren, können mit einer dünn besetzten Karte 800 ausgestattet werden, die basierend auf solchen unterschiedlichen Umgebungsbedingungen erzeugt ist. In einigen Ausführungsformen können Kameras, die in autonomen Fahrzeugen vorgesehen sind, die Umgebungsbedingungen detektieren und diese Informationen an einen Server, der dünn besetzte Karten erzeugt und bereitstellt, zurückgeben. Beispielsweise kann der Server eine bereits erzeugte dünn besetzte Karte 800 erzeugen oder aktualisieren, um Bewegungsbahnen aufzunehmen, die für autonomes Fahren unter den detektierten Umgebungsbedingungen besser geeignet oder sicherer sind. Die Aktualisierung der dünn besetzten Karte 800 basierend auf Umgebungsbedingungen kann dynamisch ausgeführt werden, während die autonomen Fahrzeuge auf den Straßen fahren.
-
Andere unterschiedliche Parameter, die sich auf das Fahren beziehen, können ebenfalls als eine Basis das Erzeugen und Bereitstellen unterschiedlicher dünn besetzter Karten für unterschiedliche autonome Fahrzeuge verwendet werden. Wenn ein autonomes Fahrzeug beispielsweise mit hoher Geschwindigkeit fährt, können Kurven enger sein. Bewegungsbahnen, die eher spezifischen Fahrspuren als Straßen zugeordnet sind, können in der dünn besetzten Karte 800 enthalten sein, so dass das autonome Fahrzeug innerhalb einer spezifischen Fahrspur bleiben kann, während es einer spezifischen Bewegungsbahn folgt. Wenn ein durch eine Kamera an Bord des autonomen Fahrzeugs aufgenommenes Bild angibt, dass das Fahrzeug aus der Fahrspur gedriftet ist (z. B. die Fahrspurmarkierung überquert hat), kann eine Aktion innerhalb des Fahrzeugs ausgelöst werden, um das Fahrzeug gemäß der spezifischen Bewegungsbahn auf die vorgesehene Fahrspur zurückzubringen.
-
Crowdsourcing einer dünn besetzten Karte
-
Die offenbarten dünn besetzten Karten können effizient (und passiv) durch über die Leistung von Crowdsourcing erzeugt werden. So kann beispielsweise jedes private oder kommerzielle Fahrzeug, das mit einer Kamera (z. B. einer einfachen Kamera mit geringer Auflösung, die in regelmäßig als OEM-Ausrüstung in heutigen Fahrzeuge enthalten ist) und einem geeigneten Bildanalyseprozessor ausgestattet ist, als Sammelfahrzeug dienen. Es ist keine spezielle Ausrüstung (z. B. ein hochauflösendes Bildaufnahme- und/oder Positionsbestimmungssystem) erforderlich. Als ein Ergebnis der offenbarten Crowdsourcing-Technik können die erzeugten dünn besetzten Karten extrem genau sein und können extrem verfeinerte Positionsinformationen enthalten (die Navigationsfehlergrenzen von 10 cm oder weniger ermöglichen), ohne dass eine spezielle Bildaufnahme- oder Erfassungsausrüstung als Eingabe für den Kartenerzeugungsprozess erforderlich ist. Crowdsourcing ermöglicht auch eine sehr viel schnellere (und kostengünstigere) Aktualisierung der erzeugten Karten, da dem Kartenserversystem ständig neue Fahrtinformationen von allen Straßen zur Verfügung gestellt werden, die von privaten oder kommerziellen Fahrzeugen befahren werden, die minimal so ausgestattet sind, dass sie auch als Sammelfahrzeuge dienen können. Es werden keine designierten Fahrzeuge, die mit hochauflösenden Bildaufnahme- und Kartierungssensoren ausgestattet sind, benötigt. Deshalb können die mit dem Bau solcher Spezialfahrzeuge verbundenen Kosten vermieden werden. Ferner können Aktualisierungen der jetzt offenbarten dünn besetzten Karten viel schneller vorgenommen werden als bei Systemen, die auf dedizierten, spezialisierte Kartierungsfahrzeuge angewiesen sind (die aufgrund ihrer Kosten und Spezialausrüstung typischerweise auf eine Flotte spezialisierter Fahrzeuge beschränkt sind, deren Anzahl weit geringer ist als die Anzahl privater oder kommerzieller Fahrzeuge, die bereits zum Ausführen der offenbarten Sammeltechniken verfügbar sind).
-
Die offenbarten dünn besetzten Karten, die durch Crowdsourcing erstellt werden, können extrem genau sein, weil sie basierend auf vielen Eingaben von mehreren (einigen 10, Hunderten, Millionen usw.) Sammelfahrzeugen erzeugt werden können, die Fahrtinformationen entlang eines speziellen Straßensegments gesammelt haben. Beispielsweise kann jedes Sammelfahrzeug, das entlang eines speziellen Straßensegments fährt, seine tatsächliche Bewegungsbahn aufzeichnen und kann Positionsinformationen relativ zu detektierten Objekten/Merkmalen entlang des Straßensegments bestimmen. Diese Informationen werden von mehreren Sammelfahrzeugen an einen Server weitergegeben. Die tatsächlichen Bewegungsbahnen werden aggregiert, um eine verfeinerte Sollbewegungsbahn für jeden gültigen Fahrweg entlang des Straßensegments zu erzeugen. Zusätzlich können die von den mehreren Sammelfahrzeugen gesammelten Positionsinformationen für jedes der detektierten Objekte/Merkmale entlang des Straßensegments (semantisch oder nicht-semantisch) ebenfalls aggregiert werden. Als ein Ergebnis kann die kartierte Position jedes detektierten Objekts/Merkmals einen Mittelwert aus Hunderten, Tausenden oder Millionen individuell bestimmten Positionen für jedes detektierte Objekt/Merkmal bilden. Eine solche Technik kann genaue Kartierungspositionen für die detektierten Objekte/Merkmale ergeben.
-
In einigen Ausführungsformen können die offenbarten Systeme und Verfahren eine dünn besetzte Karte zur autonomen Fahrzeugnavigation erzeugen. Beispielsweise können die offenbarten Systeme und Verfahren Crowdsourcing-Daten zur Erzeugung einer dünn besetzten Karte verwenden, die ein oder mehrere autonome Fahrzeuge zur Navigation entlang eines Straßensystems verwenden können. Wie hier verwendet, bedeutet „Crowdsourcing“, dass Daten von verschiedenen Fahrzeugen (z. B. autonomen Fahrzeugen), die zu unterschiedlichen Zeiten auf einem Straßensegment fahren, empfangen werden und diese Daten zum Erzeugen und/oder Aktualisieren des Straßenmodells, das dünn besetzte Kartenkacheln enthält, verwendet werden. Das Modell oder irgendeine seiner dünn besetzten Kartenkacheln kann wiederum an die Fahrzeuge oder andere Fahrzeuge, die später entlang des Straßensegments fahren, gesendet werden, um autonome Fahrzeugnavigation zu unterstützen. Das Straßenmodell kann mehrere Sollbewegungsbahnen enthalten, die bevorzugte Bewegungsbahnen repräsentieren, denen autonome Fahrzeuge folgen sollten, wenn sie einen ein Straßensegment durchfahren. Die Sollbewegungsbahnen können gleich einer rekonstruierten tatsächlichen Bewegungsbahn sein, die von einem Fahrzeug, das ein Straßensegment durchfährt, gesammelt und von dem Fahrzeug an einen Server übertragen werden können. In einigen Ausführungsformen können sich die Sollbewegungsbahnen von den tatsächlichen Bewegungsbahnen, die ein oder mehrere Fahrzeuge zuvor beim Durchfahren eines Straßensegments genommen haben, unterscheiden. Die Sollbewegungsbahnen können basierend auf tatsächlichen Bewegungsbahnen erzeugt werden (z. B. durch Mitteln oder irgendeine andere geeignete Operation).
-
Die Fahrzeugbewegungsbahndaten, die ein Fahrzeug auf einen Server hochladen kann, können der tatsächlichen rekonstruierten Bewegungsbahn für das Fahrzeug entsprechen oder können einer empfohlenen Bewegungsbahn entsprechen, die auf der tatsächlichen rekonstruierten Bewegungsbahn des Fahrzeugs basieren oder sich auf diese beziehen kann, sich jedoch von der tatsächlichen rekonstruierten Bewegungsbahn unterscheiden kann. Beispielsweise können die Fahrzeuge ihre tatsächlichen, rekonstruierten Bewegungsbahnen modifizieren und die modifizierten tatsächlichen Bewegungsbahnen an den Server übermitteln (z. B. empfehlen). Das Straßenmodell kann die empfohlenen, modifizierten Bewegungsbahnen als Sollbewegungsbahnen für die autonome Navigation anderer Fahrzeuge verwenden.
-
Zusätzlich zu den Bewegungsbahninformationen können andere Informationen zur potenziellen Verwendung beim Aufbauen einer dünn besetzten Datenkarte 800 Informationen, die sich auf potenzielle Orientierungspunktkandidaten beziehen, enthalten. Beispielsweise können die offenbarten Systeme und Verfahren durch Crowdsourcing von Informationen potenzielle Orientierungspunkte in einer Umgebung identifizieren und die Positionen der Orientierungspunkte verfeinern. Die Orientierungspunkte können durch ein Navigationssystem autonomer Fahrzeuge verwendet werden, um die Position des Fahrzeugs entlang der Sollbewegungsbahnen zu bestimmen und/oder anzupassen.
-
Die rekonstruierten Bewegungsbahnen, die ein Fahrzeug erzeugen kann, während das Fahrzeug entlang einer Straße fährt, können durch irgendein geeignetes Verfahren erhalten werden. In einigen Ausführungsformen können die rekonstruierten Bewegungsbahnen durch Zusammenheften von Bewegungssegmenten für das Fahrzeug entwickelt werden, z. B. unter Verwendung von Eigenbewegungsschätzung (z. B. dreidimensionale Verschiebung und dreidimensionale Drehung der Kamera und somit des der Karosserie des Fahrzeugs). Die Schätzung der Drehung und Verschiebung kann basierend auf der Analyse von Bildern, die durch eine oder mehrere Bildaufnahmevorrichtungen aufgenommen werden, zusammen mit Informationen von anderen Sensoren oder Vorrichtungen, wie z. B. Trägheitssensoren und Geschwindigkeitssensoren, bestimmt werden. Beispielsweise können die Trägheitssensoren einen Beschleunigungsmesser oder andere geeignete Sensoren enthalten, die konfiguriert sind, Änderungen der Verschiebung und/oder Drehung der Fahrzeugkarosserie zu messen. Das Fahrzeug einen Geschwindigkeitssensor enthalten, der eine Geschwindigkeit des Fahrzeugs misst.
-
In einigen Ausführungsformen kann die Eigenbewegung der Kamera (und somit der Fahrzeugkarosserie) basierend auf einer Analyse des optischen Flusses der aufgenommenen Bilder geschätzt werden. Eine Analyse des optischen Flusses einer Bildfolge identifiziert die Bewegung von Pixeln aus der Bildfolge und bestimmt basierend auf der identifizierten Bewegung die Bewegungen des Fahrzeugs. Die Eigenbewegung kann über die Zeit und entlang des Straßensegments integriert werden, um eine dem Straßensegment zugeordnete Bewegungsbahn, der das Fahrzeug gefolgt ist, zu rekonstruieren.
-
Daten (z. B. rekonstruierte Bewegungsbahnen), die durch mehrere Fahrzeugen in mehreren Fahrten entlang eines Straßensegments zu unterschiedlichen Zeiten gesammelt wurden, können zum Konstruieren des Straßenmodells (das z. B. die Sollbewegungsbahnen usw. enthält), das in der dünn besetzten Datenkarte 800 enthalten ist, verwendet werden. Daten, die durch mehrere Fahrzeuge in mehreren Fahrten entlang eines Straßensegments zu unterschiedlichen Zeiten gesammelt wurden, können auch gemittelt werden, um eine Genauigkeit des Modells zu erhöhen. In einigen Ausführungsformen können Daten bezüglich der Straßengeometrie und/oder Orientierungspunkten von mehreren Fahrzeugen, die den gemeinsamen Straßenabschnitt zu unterschiedlichen Zeiten durchfahren, empfangen werden. Solche von unterschiedlichen Fahrzeugen empfangenen Daten können kombiniert werden, um das Straßenmodell zu erzeugen und/oder das Straßenmodell zu aktualisieren.
-
Die Geometrie einer rekonstruierten Bewegungsbahn (und auch einer Sollbewegungsbahn) entlang eines Straßensegments kann durch eine Kurve im dreidimensionalen Raum, die ein Polynomzug sein kann, der dreidimensionale Polynome verbindet, repräsentiert sein. Die rekonstruierte Bewegungsbahn kann aus der Analyse eines Videostroms oder mehrerer Bilder, die durch eine am Fahrzeug installierten Kamera aufgenommen wurden, bestimmt werden. In einigen Ausführungsformen wird in jedem Rahmen oder Bild ein Ort, der einige Meter vor der aktuellen Position des Fahrzeugs ist, identifiziert. Dieser Ort ist der Ort, zu dem das Fahrzeug voraussichtlich in einer vorbestimmten Zeitspanne fahren wird. Diese Operation kann Rahmen für Rahmen wiederholt werden, und gleichzeitig kann das Fahrzeug die Eigenbewegung (Drehung und Verschiebung) der Kamera berechnen. Bei jedem Rahmen oder Bild wird ein Nahbereichsmodell für den gewünschten Weg durch das Fahrzeug in einem Bezugsrahmen, der an der Kamera angebracht ist, erzeugt. Die Nahbereichsmodelle können zusammengeheftet werden, um ein dreidimensionales Modell der Straße in einem Koordinatenrahmen, der ein beliebiger oder vorbestimmter Koordinatenrahmen sein kann, zu erhalten Das dreidimensionale Modell der Straße kann dann durch einen Polynomzug, der ein oder mehrere Polynome geeigneter Ordnung enthalten oder verbinden kann, angepasst werden.
-
Zum Abschluss des Nahbereichsstraßenmodells an jedem Rahmen können ein oder mehrere Detektionsmodule verwendet werden. So kann beispielsweise ein Modul zur Erkennung von Fahrspuren von unten nach oben verwendet werden. Das Modul zur Erkennung von Fahrspuren von unten nach oben kann nützlich sein, wenn Fahrspurmarkierungen auf der Straße eingezeichnet sind. Dieses Modul kann nach Rändern im Bild suchen und diese zusammensetzen, um die Fahrspurmarkierungen zu bilden. Ein zweites Modul kann zusammen mit dem Modul zur Erkennung von Fahrspuren von unten nach oben verwendet werden. Das zweite Modul ist ein tiefes neuronales Ende-zu-Ende-Netz, das so trainiert werden kann, dass es aus einem Eingangsbild den richtigen Nahbereichsweg vorhersagt. In beiden Modulen kann das Straßenmodell in dem Bildkoordinatenrahmen detektiert und in einen dreidimensionalen Raum, der virtuell an der Kamera angebracht sein kann, transformiert werden.
-
Obwohl das Verfahren zum Modellieren der rekonstruierten Bewegungsbahn aufgrund der Integration der Eigenbewegung über eine lange Zeitspanne, die eine Rauschkomponente enthalten kann, eine Akkumulation von Fehlern einführen kann, können solche Fehler unerheblich sein, da das erzeugte Modell eine ausreichende Genauigkeit für die Navigation auf lokaler Ebene bereitstellen kann. Zusätzlich ist es möglich, den integrierten Fehler durch die Verwendung externer Informationsquellen, wie z. B. Satellitenbilder oder geodätische Messungen, auszulöschen. Beispielsweise können die offenbarten Systeme und Verfahren einen GNSS-Empfänger verwenden, um akkumulierte Fehler auszulöschen. Die GNSS-Positionsbestimmungssignale können jedoch nicht immer verfügbar und genau sein. Die offenbarten Systeme und Verfahren können eine Lenkungsanwendung ermöglichen, die nur in geringem Maße von der Verfügbarkeit und Genauigkeit der GNSS-Positionsbestimmung abhängt. In solchen Systemen kann die Verwendung der GNSS-Signale eingeschränkt sein. In einigen Ausführungsformen können die offenbarten Systeme die GNSS-Signale beispielsweise nur für Zwecke der Indexierung der Datenbank verwenden.
-
In einigen Ausführungsformen kann die Größenordnung des Bereichs (z. B. die lokale Größenordnung), die für eine Lenkungsanwendung in der autonomen Fahrzeugnavigation relevant sein kann, in der Größenordnung von 50 Metern, 100 Metern, 200 Metern, 300 Metern usw. sein. Solche Abstände können verwendet werden, da das geometrische Straßenmodell hauptsächlich für zwei Zwecke verwendet wird: Vorausplanen der Bewegungsbahn und Lokalisieren des Fahrzeugs auf dem Straßenmodell. In einigen Ausführungsformen kann die Planungsaufgabe das Modell in einem typischen Bereich von 40 Metern voraus (oder einem anderen geeigneten Vorausabstand, wie z. B. 20 Meter, 30 Meter, 50 Meter) verwenden, wenn der Steuerungsalgorithmus das Fahrzeug gemäß einem Zielpunkt lenkt, der 1,3 Sekunden (oder irgendeine andere Zeit, wie 1,5 Sekunden, 1,7 Sekunden, 2 Sekunden usw.) in der Zukunft liegt. Die Lokalisierungsaufgabe verwendet das Straßenmodell über einen typischen Bereich von 60 Metern (oder in irgendwelchen anderen geeigneten Abständen wie 50, 100, 150 Meter usw.) hinter dem Auto gemäß einem Verfahren, das als „Heckausrichtung“ bezeichnet ist und das in einem weiteren Abschnitt näher beschrieben ist. Die offenbarten Systeme und Verfahren können ein geometrisches Modell erzeugen, das über einen speziellen Bereich, wie z. B. 100 Meter, eine ausreichende Genauigkeit aufweist, so dass eine geplante Bewegungsbahn um nicht mehr als beispielsweise 30 cm von der Fahrspurmitte abweicht.
-
Wie vorstehend erläutert, kann ein dreidimensionales Straßenmodell aus der Detektion von Nahbereichsabschnitten und deren Zusammenheften konstruiert werden. Das Heften kann durch Berechnung eines Sechs-Grad-Eigenbewegungsmodells unter Verwendung der durch die Kamera aufgenommenen Videos und/oder Bilder, der Daten aus den Trägheitssensoren, die die Bewegungen des Fahrzeugs widerspiegeln, und des Geschwindigkeitssignals des Trägerfahrzeugs ermöglicht werden. Der akkumulierte Fehler kann über eine Größenordnung des lokalen Bereichs, wie z. B. in der Größenordnung von 100 Metern, klein genug sein. Das alles kann in einer einzigen Fahrt über ein spezielles Straßensegment fertiggestellt werden.
-
In einigen Ausführungsformen können mehrere Fahrten verwendet werden, um das resultierende Modell zu mitteln und seine Genauigkeit weiter zu erhöhen. Dasselbe Auto kann dieselbe Strecke mehrmals fahren, oder mehrere Autos können ihre gesammelten Modelldaten an einen zentralen Server senden. In jedem Fall kann eine Abgleichsprozedur ausgeführt werden, um überlappende Modelle zu identifizieren und ein Mitteln zu ermöglichen, um Sollbewegungsbahnen zu erzeugen. Sobald ein Konvergenzkriterium erfüllt ist, kann das konstruierte Modell (das z. B. die Sollbewegungsbahnen enthält) zum Lenken verwendet werden. Nachfolgende Fahrten können für weitere Modellverbesserungen und um an Infrastrukturänderungen aufzunehmen verwendet werden.
-
Das gemeinsame Verwenden von Fahrerfahrungen (wie z. B. von erfassten Daten) durch mehrere Fahrzeuge wird machbar, falls diese mit einem zentralen Server verbunden sind. Jeder Fahrzeug-Client kann eine Teilkopie eines universellen Straßenmodells, die für seine aktuelle Position relevant sein kann, speichern. Eine bidirektionale Aktualisierungsprozedur zwischen den Fahrzeugen und dem Server kann durch die Fahrzeuge und den Server ausgeführt werden. Das vorstehend diskutierte Konzept des geringen Fußabdrucks ermöglicht es den offenbarten Systemen und Verfahren, die bidirektionalen Aktualisierungen unter Verwendung einer sehr geringen Bandbreite auszuführen.
-
Informationen über potenzielle Orientierungspunkte können ebenfalls bestimmt und an einen zentralen Server weitergeleitet werden. Beispielsweise können die offenbarten Systeme und Verfahren eine oder mehrere physikalische Eigenschaften eines potenziellen Orientierungspunkts basierend auf einem oder mehreren Bildern, die den Orientierungspunkt enthalten, bestimmen. Die physikalischen Eigenschaften können eine physikalische Größe (z. B. Höhe, Breite) des Orientierungspunkts, einen Abstand zwischen einem Fahrzeug und einem Orientierungspunkt, einen Abstand zwischen dem Orientierungspunkt und einem vorherigen Orientierungspunkt, die seitliche Position des Orientierungspunkts (z. B. die Position des Orientierungspunkts relativ zur Fahrspur), die GPS-Koordinaten des Orientierungspunkts, einen Typ des Orientierungspunkts, die Identifizierung von Text auf dem Orientierungspunkt usw. enthalten. Beispielsweise kann ein Fahrzeug ein oder mehrere durch eine Kamera aufgenommene Bilder analysieren, um einen potenziellen Orientierungspunkt, wie z. B. ein Geschwindigkeitsbegrenzungsschild, zu detektieren.
-
Das Fahrzeug kann basierend auf der Analyse des einen oder der mehreren Bilder einen Abstand zwischen dem Fahrzeug und dem Orientierungspunkt oder eine dem Orientierungspunkt zugeordnete Position (z. B. irgendein semantisches oder nicht-semantisches Objekt oder Merkmal entlang eines Straßensegments) bestimmen. In einigen Ausführungsformen kann der Abstand basierend auf der Analyse von Bildern des Orientierungspunkts unter Verwendung eines geeigneten Bildanalyseverfahrens, wie z. B. eines Skalierungsverfahrens und/oder optischen Flussverfahrens, bestimmt werden. Wie vorstehend erwähnt, kann eine Position des Objekts/Merkmals eine 2D-Bildposition (z. B. eine X-Y-Pixelposition in einem oder mehreren aufgenommenen Bildern) eines oder mehrerer Punkte, die dem Objekt/Merkmal zugeordnet sind, oder eine 3D-Position in der realen Welt eines oder mehrerer Punkte (z. B. bestimmt durch Struktur in Bewegung/optische Flusstechniken, LIDAR- oder RADAR-Informationen usw.) enthalten. In einigen Ausführungsformen können die offenbarten Systeme und Verfahren konfiguriert sein, einen Typ oder eine Klassifizierung eines potenziellen Orientierungspunkts zu bestimmen. In einem Fall, in dem das Fahrzeug bestimmt, dass ein spezieller potenzieller Orientierungspunkt einem vorbestimmten Typ oder einer vorbestimmten Klassifizierung, der/die in einer dünn besetzten Karte gespeichert ist, entspricht, kann es ausreichend sein, dass das Fahrzeug eine Angabe über den Typ oder die Klassifizierung des Orientierungspunkts zusammen mit seinem Ort an den Server kommuniziert. Der Server kann solche Angaben speichern. Zu einer späteren Zeit, während der Navigation, kann ein navigierendes Fahrzeug ein Bild aufnehmen, das eine Repräsentation des Orientierungspunktes enthält, das Bild verarbeiten (z.B. unter Verwendung eines Klassifizierers) und den resultierenden Orientierungspunkt vergleichen, um die Detektion des kartierten Orientierungspunkts zu bestätigen, und den kartierte Orientierungspunkt bei der Ortsbestimmung des navigierenden Fahrzeugs in Bezug auf die dünn besetzte Karte verwenden.
-
In einigen Ausführungsformen können mehrere autonome Fahrzeuge, die auf einem Straßensegment fahren, mit einem Server kommunizieren. Die Fahrzeuge (oder Clients) können eine Kurve, die ihre Fahrt beschreibt (z. B. durch Integration der Eigenbewegung), in einem beliebigen Koordinatenrahmen erzeugen. Die Fahrzeuge können Orientierungspunkte detektieren und sie in demselben Bild lokalisieren. Die Fahrzeuge können die Kurve und die Orientierungspunkte zu dem den Server hochladen. Der Server kann Daten von Fahrzeugen über mehrere Fahrten sammeln und ein vereinheitlichtes Straßenmodell erzeugen. Beispielsweise kann der Server, wie nachstehend mit Bezug auf 19 diskutiert ist, eine dünn besetzte Karte mit dem vereinheitlichten Straßenmodell unter Verwendung der hochgeladenen Kurven und Orientierungspunkte erzeugen.
-
Der Server kann das Modell auch an Clients (z. B. Fahrzeuge) verteilen. Beispielsweise kann der Server die dünn besetzte Karte an ein oder mehrere Fahrzeuge verteilen. Der Server kann das Modell kontinuierlich oder periodisch aktualisieren, wenn er neue Daten von den Fahrzeugen empfängt. Beispielsweise kann der Server die neuen Daten verarbeiten, um zu bewerten, ob die Daten Informationen enthalten, die eine Aktualisierung oder die Erzeugung neuer Daten auf dem Server auslösen sollten. Der Server kann das aktualisierte Modell oder die Aktualisierungen an die Fahrzeuge zum Bereitstellen autonomer Fahrzeugnavigation verteilen.
-
Der Server kann ein oder mehrere Kriterien verwenden, um zu bestimmen, ob neue von den Fahrzeugen empfangene Daten eine Aktualisierung des Modells auslösen oder die Erzeugung neuer Daten auslösen sollten. Beispielsweise wenn die neuen Daten angeben, dass ein zuvor erkannter Orientierungspunkt an einem spezifischen Ort nicht mehr existiert oder durch einen anderen Orientierungspunkt ersetzt wurde, kann der Server bestimmen, dass die neuen Daten eine Aktualisierung des Modells auslösen sollten. Ein weiteres Beispiel kann der Server, wenn die neuen Daten angeben, dass ein Straßensegment gesperrt wurde, und wenn dies durch die von anderen Fahrzeugen empfangenen Daten bestätigt wurde, bestimmen, dass die neuen Daten eine Aktualisierung des Modells auslösen sollten.
-
Der Server kann das aktualisierte Modell (oder den aktualisierten Abschnitt des Modells) an ein oder mehrere Fahrzeuge, die auf dem Straßensegment, dem die Aktualisierungen des Modells zugeordnet sind, fahren, verteilen. Der Server kann das aktualisierte Modell auch an Fahrzeuge verteilen, die das Straßensegment demnächst befahren werden, oder an Fahrzeuge, deren geplante Fahrt das Straßensegment, dem die Aktualisierungen des Modells zugeordnet sind, enthält. Wenn beispielsweise ein autonomes Fahrzeug entlang eines anderen Straßensegments fährt, bevor es das Straßensegment, dem eine Aktualisierung zugeordnet ist, erreicht, kann der Server die Aktualisierungen oder das aktualisierte Modell an das autonome Fahrzeug verteilen, bevor das Fahrzeug das Straßensegment erreicht.
-
In einigen Ausführungsformen kann der entfernte Server Bewegungsbahnen und Orientierungspunkte von mehreren Clients (z. B. von Fahrzeugen, die auf einem gemeinsamen Straßensegment fahren) sammeln. Der Server kann Kurven unter Verwendung von Orientierungspunkten abgleichen und ein mittleres Straßenmodell basierend auf den von mehreren Fahrzeugen gesammelten Bewegungsbahnen erzeugen. Der Server kann auch einen Graphen von Straßen und den wahrscheinlichsten Weg an jedem Knoten oder jeder Verknüpfung des Straßensegments berechnen. Beispielsweise kann der entfernte Server die Bewegungsbahnen abgleichen, um aus den gesammelten Bewegungsbahnen eine durch Crowdsourcing erstellte dünn besetzte Karte zu erzeugen.
-
Der Server kann die von mehreren Fahrzeugen, die entlang des gemeinsamen Straßensegments gefahren sind, empfangenen Orientierungspunkteigenschaften, wie z. B. die durch mehrere Fahrzeuge gemessenen Abstände zwischen einem Orientierungspunkt und einem anderen (z. B. einem früheren entlang des Straßensegments), mitteln, um einen Parameter für die Bogenlänge zu bestimmen und die Ortsbestimmung entlang des Weges und die Geschwindigkeitskalibrierung für jedes Client-Fahrzeug zu unterstützen. Der Server kann die physikalischen Abmessungen eines Orientierungspunktes, die von mehreren Fahrzeugen, die entlang des gemeinsamen Straßensegments gefahren sind und denselben Orientierungspunkt erkannt haben, gemessen wurden, mitteln. Die gemittelten physikalischen Abmessungen können zur Unterstützung der Abstandsschätzung verwendet werden, z. B. für den Abstand zwischen dem Fahrzeug und dem Orientierungspunkt. Der Server kann die seitlichen Positionen eines Orientierungspunktes (z. B. die Position von der Fahrspur, auf der die Fahrzeuge zu dem Orientierungspunkt fahren), die von mehreren Fahrzeugen, die entlang desselben Straßensegments gefahren sind und denselben Orientierungspunkt erkannt haben, gemessen wurden, mitteln. Die gemittelte seitliche Position kann zur Unterstützung der Fahrspurzuweisung verwendet werden. Der Server kann die GPS-Koordinaten des Orientierungspunktes, die von mehreren Fahrzeugen, die entlang desselben Straßensegments gefahren sind und denselben Orientierungspunkt erkannt haben, gemessen wurden, mitteln. Die gemittelten GPS-Koordinaten des Orientierungspunktes können zur Unterstützung der globalen Ortsbestimmung oder Positionsbestimmung des Orientierungspunktes in dem Straßenmodell verwendet werden.
-
In einigen Ausführungsformen kann der Server basierend auf den von den Fahrzeugen empfangenen Daten Modelländerungen, wie z. B. Bauarbeiten, Umleitungen, neue Schilder, Entfernung von Schildern usw., identifizieren. Der Server kann das Modell kontinuierlich oder periodisch oder sofort aktualisieren, wenn er neue Daten von den Fahrzeugen empfängt. Der Server kann Aktualisierungen des Modells oder das aktualisierte Modell an Fahrzeuge zum Bereitstellen autonomer Navigation verteilen. Beispielsweise kann der Server, wie nachstehend diskutiert, Crowdsourcing-Daten verwenden, um von Fahrzeugen detektierte „Geister“-Orientierungspunkte herauszufiltern.
-
In einigen Ausführungsformen kann der Server die Fahrereingriffe während des autonomen Fahrens analysieren. Der Server kann Daten, die zum Zeitpunkt und am Ort des Eingriffs vom Fahrzeug empfangen wurden, und/oder Daten, die vor dem Zeitpunkt des Eingriffs empfangen wurden, analysieren. Der Server kann spezielle Abschnitte der Daten identifizieren, die den Eingriff verursacht haben oder in engem Zusammenhang damit stehen, beispielsweise Daten, die eine vorübergehende Sperrung der Fahrspur anzeigen, Daten, die auf einen Fußgänger auf der Straße angeben. Der Server kann das Modell basierend auf den identifizierten Daten aktualisieren. Beispielsweise kann der Server eine oder mehrere in dem Modell gespeicherte Bewegungsbahnen modifizieren.
-
12 ist eine schematische Darstellung eines Systems, das Crowdsourcing verwendet, um eine dünn besetzte Karte zu erzeugen (sowie eine dünn besetzte Karte aus Crowdsourcing zu verteilen und damit zu navigieren). 12 zeigt ein Straßensegment 1200, das eine oder mehrere Fahrspuren enthält. Mehrere Fahrzeuge 1205, 1210, 1215, 1220 und 1225 können gleichzeitig oder zu unterschiedlichen Zeiten auf dem Straßensegment 1200 fahren (obwohl sie 12 so gezeigt sind, dass sie gleichzeitig auf dem Straßensegment 1200 erscheinen). Wenigstens eines der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 kann ein autonomes Fahrzeug sein. Zur Vereinfachung des vorliegenden Beispiels wird davon ausgegangen, dass alle Fahrzeuge 1205, 1210, 1215, 1220 und 1225 autonome Fahrzeuge sind.
-
Jedes Fahrzeug kann Fahrzeugen ähneln, die in anderen Ausführungsformen offenbart sind (z. B. Fahrzeug 200), und kann Komponenten oder Vorrichtungen enthalten, die in Fahrzeugen, die in anderen Ausführungsformen offenbart sind, enthalten sind oder diesen zugeordnet sind. Jedes Fahrzeug kann mit einer Bildaufnahmevorrichtung oder einer Kamera (z. B. der Bildaufnahmevorrichtung 122 oder der Kamera 122) ausgestattet sein. Jedes Fahrzeug kann mit einem entfernten Server 1230 über ein oder mehrere Netze (z. B. über ein Mobilfunknetz und/oder das Internet usw.) über drahtlose Kommunikationswege 1235 kommunizieren, wie durch die gestrichelten Linien angegeben ist. Jedes Fahrzeug kann Daten an den Server 1230 senden und Daten von dem Server 1230 empfangen. Beispielsweise kann der Server 1230 Daten von mehreren Fahrzeugen, die zu unterschiedlichen Zeiten auf dem Straßensegment 1200 fahren, sammeln und kann die gesammelten Daten verarbeiten, um ein Straßennavigationsmodell für autonome Fahrzeuge oder eine Aktualisierung des Modells zu erzeugen. Der Server 1230 kann das Straßennavigationsmodell für autonome Fahrzeuge oder die Aktualisierung des Modells an die Fahrzeuge, die Daten an den Server 1230 gesendet haben, senden. Der Server 1230 kann das Straßennavigationsmodell für autonome Fahrzeuge oder die Aktualisierung des Modells zu einem späteren Zeitpunkt an andere Fahrzeuge, die auf dem Straßensegment 1200 fahren, senden.
-
Wenn die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 auf dem Straßensegment 1200 fahren, können die durch die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 gesammelten (z. B. detektierten, erfassten oder gemessenen) Navigationsinformationen an den Server 1230 gesendet werden. In einigen Ausführungsformen können die Navigationsinformationen dem gemeinsamen Straßensegment 1200 zugeordnet sein. Die Navigationsinformationen können eine Bewegungsbahn enthalten, die jedem der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 zugeordnet ist, enthalten, da jedes Fahrzeug über das Straßensegment 1200 fährt. In einigen Ausführungsformen kann die Bewegungsbahn basierend auf Daten, die durch verschiedene Sensoren und Vorrichtungen in dem Fahrzeug 1205 erfasst werden, rekonstruiert werden. Beispielsweise kann die Bewegungsbahn basierend Beschleunigungsmesserdaten, Geschwindigkeitsdaten, Daten zu Orientierungspunkten, Straßengeometrie- oder Profildaten, Fahrzeugpositionsbestimmungsdaten und Eigenbewegungsdaten rekonstruiert werden. In einigen Ausführungsformen kann die Bewegungsbahn basierend auf Daten von Trägheitssensoren, z. B. einem Beschleunigungsmesser, und der durch einen Geschwindigkeitssensor erfassten Geschwindigkeit des Fahrzeugs 1205 rekonstruiert werden. Zusätzlich kann in einigen Ausführungsformen die Bewegungsbahn (z. B. durch einen Prozessor an Bord jedes der Fahrzeuge 1205, 1210, 1215, 1220 und 1225) basierend auf der erfassten Eigenbewegung der Kamera, die eine dreidimensionale Verschiebung und/oder dreidimensionale Drehungen (oder Drehbewegungen) angeben kann, bestimmt werden. Die Eigenbewegung der Kamera (und damit der Fahrzeugkarosserie) kann aus der Analyse eines oder mehrerer durch die Kamera aufgenommener Bilder bestimmt werden.
-
In einigen Ausführungsformen kann die Bewegungsbahn des Fahrzeugs 1205 durch einen an Bord des Fahrzeugs 1205 bereitgestellten Prozessor bestimmt und an den Server 1230 gesendet werden. In anderen Ausführungsformen kann der Server 1230 Daten, die durch die verschiedenen Sensoren und Vorrichtungen, die in dem Fahrzeug 1205 bereitgestellt sind, erfasst werden, empfangen und die Bewegungsbahn basierend auf den von dem Fahrzeug 1205 empfangenen Daten bestimmen.
-
In einigen Ausführungsformen können die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 an den Server 1230 gesendeten Navigationsinformationen Daten über die Straßenoberfläche, die Straßengeometrie oder das Straßenprofil enthalten. Die Geometrie des Straßensegments 1200 kann eine Fahrspurstruktur und/oder Orientierungspunkte enthalten. Die Fahrspurstruktur kann die Gesamtzahl der Fahrspuren des Straßensegments 1200, den Typ der Fahrspuren (z. B. Fahrspur für eine Richtung, Fahrspur für beide Richtungen, Fahrspur, Überholspur usw.), Markierungen auf den Fahrspuren, Breite der Fahrspuren usw. enthalten. In einigen Ausführungsformen können die Navigationsinformationen eine Fahrspurzuweisung enthalten, z. B. auf welcher Fahrspur aus mehreren Fahrspuren ein Fahrzeug fährt. Die Fahrspurzuweisung kann beispielsweise einem Zahlenwert „3“ zugeordnet sein, der angibt, dass das Fahrzeug auf der dritten Spur von links oder rechts fährt. Als weiteres Beispiel kann die Fahrspurzuweisung einem Textwert „mittlere Fahrspur“ zugeordnet sein, der angibt, dass das Fahrzeug auf der mittleren Fahrspur fährt.
-
Der Server 1230 kann die Navigationsinformationen auf einem nicht-transitorischen, computerlesbaren Medium speichern, z. B. auf einer Festplatte, einer Compact-Disc, einem Band, in einem Speicher usw. Der Server 1230 kann (z.B. durch einen im Server 1230 enthaltenen Prozessor) wenigstens einen Abschnitt eines Straßennavigationsmodell für autonome Fahrzeuge für das gemeinsame Straßensegment 1200 basierend auf den von den mehreren der Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangenen Navigationsinformationen erzeugen und das Modell als einen Abschnitt einer dünn besetzten Karte speichern. Der Server 1230 kann eine jeder Spur zugeordnete Bewegungsbahn basierend auf Crowdsourcing-Daten (z. B. Navigationsinformationen), die von mehreren Fahrzeugen (z. B. 1205, 1210, 1215, 1220 und 1225) empfangen werden, die zu unterschiedlichen Zeiten auf einer Spur eines Straßensegments fahren, bestimmen. Der Server 1230 kann das Straßennavigationsmodell für autonome Fahrzeuge oder einen Abschnitt des Modells (z.B. einen aktualisierten Abschnitt) basierend auf mehreren Bewegungsbahnen, die basierend auf den Crowdsourcing-Navigationsdaten bestimmt wurden, erzeugen. Der Server 1230 kann das Modell oder den aktualisierten Abschnitt des Modells an eines oder mehrere der autonomen Fahrzeuge 1205, 1210, 1215, 1220 und 1225, die auf dem Straßensegment 1200 fahren, oder an irgendwelche anderen autonomen Fahrzeuge, die zu einem späteren Zeitpunkt auf dem Straßensegment fahren, senden, um ein existierendes Straßennavigationsmodell für autonome Fahrzeuge, das in einem Navigationssystem der Fahrzeuge bereitgestellt ist, zu aktualisieren. Das Straßennavigationsmodell für autonome Fahrzeuge kann durch die autonomen Fahrzeuge zum autonomen Navigieren entlang des gemeinsamen Straßensegments 1200 verwendet werden.
-
Wie vorstehend erläutert kann das Straßennavigationsmodell für autonome Fahrzeuge in einer dünn besetzten Karte (z. B. in der in 8 abgebildeten dünn besetzten Karte 800) enthalten sein. Die dünn besetzte Karte 800 kann eine dünn besetzte Aufzeichnung von Daten in Bezug auf die Straßengeometrie und/oder Orientierungspunkte entlang einer Straße enthalten, die ausreichende Informationen zum Führen der autonomen Navigation eines autonomen Fahrzeugs bereitstellen kann, jedoch keine übermäßige Datenspeicherung erfordert. In einigen Ausführungsformen kann das Straßennavigationsmodell für autonome Fahrzeuge getrennt von der dünn besetzten Karte 800 gespeichert sein und Kartendaten der dünn besetzten Karte 800 verwenden, wenn das Modell zur Navigation ausgeführt wird. In einigen Ausführungsformen kann das Straßennavigationsmodell für autonome Fahrzeuge Kartendaten, die in der dünn besetzten Karte 800 enthalten sind, zum Bestimmen von Sollbewegungsbahnen entlang des Straßensegments 1200 verwenden, um die autonome Navigation der autonomen Fahrzeuge 1205, 1210, 1215, 1220 und 1225 oder anderer Fahrzeuge, die später entlang des Straßensegments 1200 fahren, zu führen. Wenn das Straßennavigationsmodell für autonome Fahrzeuge beispielsweise durch einen Prozessor, der in einem Navigationssystem des Fahrzeugs 1205 enthalten ist, ausgeführt wird, kann das Modell den Prozessor veranlassen, die basierend auf den von dem Fahrzeug 1205 empfangenen Navigationsinformationen bestimmten Bewegungsbahnen mit den in der dünn besetzten Karte 800 enthaltenen vorbestimmten Bewegungsbahnen zu vergleichen, um die aktuelle Richtung Fahrzeugs 1205 zu validieren und/oder zu korrigieren.
-
In dem Straßennavigationsmodell für autonome Fahrzeuge kann die Geometrie eines Straßenmerkmals oder einer Sollbewegungsbahn durch eine Kurve in einem dreidimensionalen Raum codiert sein. In einer Ausführungsform kann die Kurve ein dreidimensionaler Polynomzug sein, der ein oder mehrere verbindende dreidimensionale Polynome enthält. Wie ein Fachmann verstehen würde, kann ein Polynomzug eine numerische Funktion sein, die stückweise durch eine Folge von Polynomen zum Angleichen von Daten definiert ist. Ein Polynomzug zum Angleichen der dreidimensionalen Geometriedaten der Straße kann einen linearen Polynomzug (erster Ordnung), einen quadratische Polynomzug (zweiter Ordnung), einen kubischen Polynomzug (dritter Ordnung) oder irgendwelche andere Polynomzüge (andere Ordnungen) oder eine Kombination davon enthalten. Der Polynomzug kann ein oder mehrere dreidimensionale Polynome unterschiedlicher Ordnung enthalten, die Datenpunkte der dreidimensionalen Geometriedaten der Straße verbinden (z. B. angleichen). In einigen Ausführungsformen kann das Modell für die Straßennavigation autonomer Fahrzeuge einen dreidimensionalen Polynomzug enthalten, der einer Sollbewegungsbahn entlang eines gemeinsamen Straßensegments (z. B. des Straßensegments 1200) oder einer Fahrspur des Straßensegments 1200 entspricht.
-
Wie vorstehend erläutert, kann das in der dünn besetzten Karte enthaltene Straßennavigationsmodell für autonome Fahrzeuge andere Informationen enthalten, wie z. B. die Identifizierung wenigstens eines Orientierungspunktes entlang des Straßensegments 1200. Der Orientierungspunkt kann innerhalb des Sichtfelds einer Kamera (z. B. der Kamera 122), die an jedem der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 installiert ist, sichtbar sein. In einigen Ausführungsformen kann die Kamera 122 ein Bild eines Orientierungspunktes aufnehmen. Ein Prozessor (z. B. der Prozessor 180, 190 oder die Verarbeitungseinheit 110), der in dem Fahrzeug 1205 bereitgestellt ist, kann das Bild des Orientierungspunktes verarbeiten, um Identifikationsinformationen für den Orientierungspunkt zu extrahieren. Die Identifizierungsinformationen des Orientierungspunktes und nicht ein tatsächliches Bild des Orientierungspunktes können in der dünn besetzten Karte 800 gespeichert sein. Die Identifizierungsinformationen von Orientierungspunkten können viel weniger Speicherplatz benötigen als ein tatsächliches Bild. Andere Sensoren oder Systeme (z. B. das GPS-System) können ebenfalls spezielle Identifizierungsinformationen des Orientierungspunktes (z. B. die Position des Orientierungspunktes) bereitstellen. Der Orientierungspunkt kann wenigstens eines aus einem Verkehrszeichen, einer Pfeilmarkierung, einer Fahrspurmarkierung, einer unterbrochenen Fahrspurmarkierung, einer Ampel, einer Haltelinie, einem Richtungsschild (z. B. einem Autobahnausfahrtschild mit einem Pfeil, der eine Richtung angibt, einem Autobahnschild mit Pfeilen, die in verschiedene Richtungen oder auf verschiedene Orte weisen), einer Orientierungspunktbake oder einem Lichtmast sein. Eine Orientierungspunktbake bezieht sich auf eine Vorrichtung (z. B. eine RFID-Vorrichtung), die entlang eines Straßensegments installiert ist und ein Signal zu einem Empfänger, der in einem Fahrzeug installiert ist, sendet oder reflektiert, so dass dann, wenn das Fahrzeug an der Vorrichtung vorbeifahrt, die durch das Fahrzeug empfangene Bake und der Ort der Vorrichtung (der z. B. aus dem GPS-Ort der Vorrichtung bestimmt wird) als Orientierungspunkt verwendet werden können, der in das Modell für die Straßennavigation autonomer Fahrzeuge und/oder die dünn besetzte Karte 800 aufzunehmen ist.
-
Die Identifikation des wenigstens einen Orientierungspunktes kann eine Position des wenigstens einen Orientierungspunktes enthalten. Die Position Orientierungspunktes kann basierend auf Positionsmessungen, die unter Verwendung von Sensorsystemen (z. B. Systemen zur globalen Positionsbestimmung, auf Trägheit basierende Positionsbestimmungssysteme, Orientierungspunktbaken usw.), die den mehreren Fahrzeugen 1205, 1210, 1215, 1220 und 1225 zugeordnet sind, ausgeführt werden, bestimmt werden. In einigen Ausführungsformen kann die Position des Orientierungspunktes durch Mitteln der Positionsmessungen, die durch die Sensorsystemen verschiedener Fahrzeuge 1205, 1210, 1215, 1220 und 1225 durch mehrere Fahrten detektiert, gesammelt oder empfangen werden, bestimmt werden. Beispielsweise können die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 Positionsmessdaten an den Server 1230 senden, der die Positionsmessungen mitteln und die gemittelte Positionsmessung als Position des Orientierungspunktes verwenden kann. Die Position des Orientierungspunktes kann durch Messungen, die von Fahrzeugen in späteren Fahrten empfangen werden, kontinuierlich verfeinert werden.
-
Die Identifizierung des Orientierungspunktes kann eine Größe des Orientierungspunktes enthalten. Der in einem Fahrzeug bereitgestellte Prozessor (z. B. 1205) kann die physikalische Größe des Orientierungspunktes basierend auf der Analyse der Bilder schätzen. Server 1230 kann mehrere Schätzungen der physikalischen Größe desselben Orientierungspunktes von unterschiedlichen Fahrzeugen über unterschiedliche Fahrten erhalten. Der Server 1230 kann aus den unterschiedlichen Schätzungen einen Mittelwert bilden, um zu einer physikalischen Größe für den Orientierungspunkt zu kommen, und diese Größe des Orientierungspunktes im Straßenmodell speichern. Die Schätzung der physikalischen Größe kann zur weiteren Bestimmung oder Schätzung eines Abstands zwischen dem Fahrzeug und dem Orientierungspunkt verwendet werden. Der Abstand zu dem Orientierungspunkt kann basierend auf der aktuellen Geschwindigkeit des Fahrzeugs und eines Ausdehnungsmaßstabs basierend auf der Position des in den Bildern erscheinenden Orientierungspunktes relativ zu dem Fokus der Ausdehnung der Kamera geschätzt werden. Beispielsweise kann der Abstand zu dem Orientierungspunkt durch Z= V*dt*R/D geschätzt werden, wobei V die Geschwindigkeit des Fahrzeugs ist, R der Abstand in dem Bild von dem Orientierungspunkt zum Zeitpunkt t1 bis zum Fokus der Ausdehnung ist und D die Änderung des Abstands des Orientierungspunktes in dem Bild von t1 bis t2 ist. dt repräsentiert (t2-t 1). Beispielsweise kann der Abstand zu dem Orientierungspunkt durch Z= V*dt*R/D geschätzt werden, wobei V die Geschwindigkeit des Fahrzeugs ist, R der Abstand in dem Bild zwischen dem Orientierungspunkt und dem Fokus der Ausdehnung ist, dt ein Zeitintervall ist und D die Bildverschiebung des Orientierungspunktes entlang der Epipolarlinie ist. Andere Gleichungen, die der obigen Gleichung äquivalent sind, wie z. B. Z = V * ω/Δω, können zum Schätzen des Abstands zu dem Orientierungspunkt verwendet werden. Hier ist V die Fahrzeuggeschwindigkeit, ω ist eine Bildlänge (wie die Objektbreite), und Δω ist die Änderung dieser Bildlänge in einer Zeiteinheit.
-
Wenn die physikalische Größe des Orientierungspunktes bekannt ist, kann der Abstand zu dem Orientierungspunkt auch basierend auf der folgenden Gleichung bestimmt werden: Z = f * W/ω, wobei f die Brennweite ist, W die Größe des Orientierungspunktes (z. B. Höhe oder Breite) ist und ω die Anzahl der Pixel ist, wenn die Landmarke das Bild verlässt. Aus der vorstehenden Gleichung kann eine Änderung des Abstands Z mit ΔZ = f * W * Δω / ω2 + f * ΔW/ω berechnet werden, wobei ΔW durch Mitteln auf Null abfällt und wobei Δω die Anzahl der Pixel ist, die eine Genauigkeit des Begrenzungsrahmens in dem Bild repräsentieren. Ein Wert, der die physikalische Größe des Orientierungspunktes schätzt, kann durch Mitteln mehrerer Beobachtungen auf der Serverseite berechnet werden. Der resultierende Fehler der Abstandsschätzung kann sehr klein sein. Es gibt zwei Fehlerquellen, die bei der Verwendung der vorstehenden Formel auftreten können, nämlich ΔW und Δω. Ihr Beitrag zum Abstandsfehler ist gegeben durch ΔZ = f * W * Δω / ω2 + f * ΔW/ω. Jedoch fällt ΔW durch Mitteln auf Null; somit ist ΔZ durch Δω bestimmt (z. B. die Ungenauigkeit des Begrenzungsrahmens in dem Bild).
-
Für Orientierungspunkte mit unbekannten Abmessungen kann der Abstand zu dem Orientierungspunkt durch Verfolgung von Merkmalspunkten auf dem Orientierungspunkt zwischen aufeinanderfolgenden Rahmen geschätzt werden. Beispielsweise können spezielle Merkmale, die auf einem Geschwindigkeitsbegrenzungsschild erscheinen, zwischen zwei oder mehr Bildrahmen verfolgt werden. Basierend auf diesen verfolgten Merkmalen kann eine Abstandsverteilung pro Merkmalspunkt erzeugt werden. Die Abstandsschätzung kann aus der Abstandsverteilung extrahiert werden. Beispielsweise kann der häufigste in der Abstandsverteilung auftretende Abstand als Abstandsschätzung verwendet werden. Als weiteres Beispiel kann der Mittelwert der Abstandsverteilung als Abstandsschätzung verwendet werden.
-
13 stellt ein Beispiel für ein Straßennavigationsmodell für autonome Fahrzeuge dar, das durch mehrere dreidimensionale Polynomzüge 1301, 1302 und 1303 repräsentiert ist. Die in 13 gezeigten Kurven 1301, 1302 und 1303 dienen nur der Veranschaulichung. Jeder Polynomzug kann ein oder mehrere dreidimensionale Polynome enthalten, die mehrere Datenpunkte 1310 verbinden. Jedes Polynom kann ein Polynom erster Ordnung, ein Polynom zweiter Ordnung, ein Polynom dritter Ordnung oder eine Kombination irgendwelcher geeigneten Polynome unterschiedlicher Ordnungen sein. Jeder Datenpunkt 1310 kann den von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangenen Navigationsinformationen zugeordnet sein. In einigen Ausführungsformen kann jeder Datenpunkt 1310 Daten zugeordnet sein, die sich auf Orientierungspunkte (z. B. Größe, Ort und Identifikationsinformationen von Orientierungspunkten) und/oder Straßensignaturprofile (z. B. Straßengeometrie, Straßenrauigkeitsprofil, Straßenkrümmungsprofil, Straßenbreitenprofil) beziehen. In einigen Ausführungsformen können einige Datenpunkte 1310 Daten zugeordnet sein, die sich auf Orientierungspunkte beziehen, und andere können Daten zugeordnet sein, die sich auf Straßensignaturprofile beziehen.
-
14 stellt Ortsrohdaten 1410 (z. B. GPS-Daten) dar, die aus fünf getrennten Fahrten empfangen wurden. Eine Fahrt kann von einer anderen Fahrt getrennt sein, wenn sie von getrennten Fahrzeugen zur gleichen Zeit, von demselben Fahrzeug zu getrennten Zeiten oder von getrennten Fahrzeugen zu getrennten Zeiten unternommen wurde. Um Fehler in den Ortsdaten 1410 und unterschiedliche Orte von Fahrzeugen auf derselben Spur zu berücksichtigen (z. B. kann ein Fahrzeug näher an der linken Seite einer Fahrspur fahren als ein anderes), kann der Server 1230 ein Kartenskelett 1420 unter Verwendung eines oder mehrerer Statistiktechniken erzeugen, um zu bestimmen, ob Variationen in den Ortsrohdaten 1410 tatsächliche Abweichungen oder statistische Fehler repräsentieren. Jeder Weg innerhalb des Skeletts 1420 kann mit den Rohdaten 1410, die den Weg gebildet haben, rückwärts verknüpft werden. Zum Beispiel ist der Weg zwischen A und B innerhalb des Skeletts 1420 mit den Rohdaten 1410 aus den Fahrten 2, 3, 4 und 5 verknüpft, nicht aber aus der Fahrt 1. Das Skelett 1420 ist möglicherweise nicht genau genug, um zum Navigieren eines Fahrzeugs verwendet zu werden (z. B. weil es anders als die vorstehend beschriebenen Polynomzüge Fahrten von mehreren Fahrspuren auf derselben Straße kombiniert), kann aber nützliche topologische Informationen bereitstellen und kann zur Definition von Kreuzungen verwendet werden.
-
15 stellt ein Beispiel dar, durch das zusätzliche Einzelheiten für eine dünn besetzte Karte innerhalb eines Segments eines Kartenskeletts (z. B. Segments A bis B innerhalb des Skeletts 1420) erzeugt werden können. Wie in 15 abgebildet, können die Daten (z.B. Eigenbewegungsdaten, Straßenmarkierungsdaten und dergleichen) als eine Funktion der Position S (oder S1 oder S2) entlang der Fahrt gezeigt werden. Der Server 1230 kann Orientierungspunkte für die dünn besetzte Karte identifizieren, indem er eindeutige Übereinstimmungen zwischen den Orientierungspunkten 1501, 1503 und 1505 der Fahrt 1510 und den Orientierungspunkten 1507 und 1509 der Fahrt 1520 identifiziert. Ein solcher Abgleichsalgorithmus kann zur Identifizierung der Orientierungspunkte 1511, 1513 und 1515 führen. Ein Fachmann würde jedoch erkennen, dass auch andere Abgleichsalgorithmen verwendet werden können. Beispielsweise kann Wahrscheinlichkeitsoptimierung anstelle von oder in Kombination mit dem eindeutigen Abgleich verwendet werden. Der Server 1230 kann die Fahrten in Längsrichtung abgleichen, um die übereinstimmenden Orientierungspunkte abzugleichen. Beispielsweise kann der Server 1230 eine Fahrt (z. B. die Fahrt 1520) als eine Referenzfahrt auswählen und dann die andere(n) Fahrt(en) (z. B. die Fahrt 1510) zum Abgleichen verschieben und/oder elastisch dehnen.
-
16 zeigt ein Beispiel für abgeglichene Orientierungspunktdaten zum Gebrauch in einer dünn besetzten Karte. Im Beispiel von 16 umfasst der Orientierungspunkt 1610 ein Straßenschild. Das Beispiel von 16 bildet ferner Daten aus mehreren Fahrten 1601, 1603, 1605, 1607, 1609, 1611 und 1613 ab. Im Beispiel von 16 bestehen die Daten der Fahrt 1613 aus einem „Geister“-Orientierungspunkt, und der Server 1230 kann sie als solchen identifizieren, weil keine der Fahrten 1601, 1603, 1605, 1607, 1609 und 1611 eine Identifikation eines Orientierungspunktes in der Nähe des in der Fahrt 1613 identifizierten Orientierungspunktes enthält. Dementsprechend kann der Server 1230 potenzielle Orientierungspunkte akzeptieren, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt erscheint, zu Bildern, in denen der Orientierungspunkt nicht erscheint, einen Schwellenwert übersteigt, und/oder kann potenzielle Orientierungspunkte ablehnen, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt nicht erscheint, zu Bildern, in denen der Orientierungspunkt erscheint, einen Schwellenwert übersteigt.
-
17 bildet ein System 1700 zum Erzeugen von Fahrtdaten, die zum Crowdsourcing für eine dünn besetzte Karte verwendet werden können, ab. Wie in 17 abgebildet, kann das System 1700 eine Kamera 1701 und eine Ortsbestimmungsvorrichtung 1703 (z. B. ein GPS-Ortungsgerät) umfassen. Die Kamera 1701 und die Ortsbestimmungsvorrichtung 1703 können an einem Fahrzeug (z. B. einem der Fahrzeuge 1205, 1210, 1215, 1220 und 1225) montiert sein. Die Kamera 1701 kann mehrere Daten mehrerer Typen produzieren, z. B. Eigenbewegungsdaten, Verkehrszeichendaten, Straßendaten oder dergleichen. Die Kameradaten und Ortsdaten können in Fahrtsegmente 1705 segmentiert werden. Beispielsweise können die Fahrtsegmente 1705 jeweils Kameradaten und Ortsdaten von weniger als 1 km Fahrt aufweisen.
-
In einigen Ausführungsformen kann das System 1700 Redundanzen in den Fahrtsegmenten 1705 entfernen. Falls beispielsweise ein Orientierungspunkt in mehreren Bildern von der Kamera 1701 erscheint, kann das System 1700 die redundanten Daten entfernen, so dass die Fahrtsegmente 1705 nur eine Kopie des Orts des Orientierungspunktes und irgendwelcher Metadaten zu dem Orientierungspunkt beinhalten. Als ein weiteres Beispiel kann, falls eine Fahrspurmarkierung in mehreren Bildern von der Kamera 1701 erscheint, das System 1700 die redundanten Daten entfernen, so dass die Fahrtsegmente 1705 nur eine Kopie des Orts der Fahrspurmarkierung und irgendwelcher Metadaten zu der Fahrspurmarkierung beinhalten.
-
Das System 1700 enthält auch einen Server (z. B. den Server 1230). Der Server 1230 kann Fahrtsegmente 1705 von dem Fahrzeug empfangen und die Fahrtsegmente 1705 in eine einzige Fahrt 1707 rekombinieren. Eine solche Anordnung kann ermöglichen, die Anforderungen an die Bandbreite für die Übertragung von Daten zwischen dem Fahrzeug und dem Server zu reduzieren und außerdem ermöglichen, dass der Server Daten, die sich auf eine vollständige Fahrt beziehen, speichert.
-
18 bildet das System 1700 von 17, das ferner für Crowdsourcing einer dünn besetzten Karte konfiguriert ist, ab. Wie in 17 enthält das System 1700 ein Fahrzeug 1810, das Fahrtdaten beispielsweise unter Verwendung einer Kamera (die z. B. Eigenbewegungsdaten, Verkehrszeichendaten, Straßendaten oder der dergleichen produziert) und einer Ortsbestimmungsvorrichtung (z. B. einem GPS-Ortungsgerät) aufnimmt. Wie in 17 segmentiert das Fahrzeug 1810 die gesammelten Daten in Fahrtsegmente (in 18 als „DS1 1“, „DS2 1“ und „DSN 1“ abgebildet). Der Server 1230 empfängt dann die Fahrtsegmente und rekonstruiert aus den empfangenen Segmenten eine Fahrt (in 18 als „Fahrt 1“ abgebildet).
-
Wie in 18 ferner abgebildet ist, empfängt das System 1700 auch Daten von zusätzlichen Fahrzeugen. Beispielsweise erfasst das System 1700 auch Fahrtdaten beispielsweise unter Verwendung einer Kamera 1820 (die z. B. Eigenbewegungsdaten, Verkehrszeichendaten, Straßendaten oder der dergleichen produziert) und einer Ortsbestimmungsvorrichtung (z. B. einem GPS-Ortungsgerät). Ähnlich zu dem Fahrzeug 1810 segmentiert das Fahrzeug 1820 die gesammelten Daten in Fahrtsegmente (in 18 als „DS1 2“, „DS2 2“ und „DSN 2“ abgebildet). Der Server 1230 empfängt dann die Fahrtsegmente und rekonstruiert aus den empfangenen Segmenten eine Fahrt (in 18 als „Fahrt 2“ abgebildet). Es kann irgendeine Anzahl zusätzlicher Fahrzeuge verwendet werden.. Beispielsweise enthält 18 auch „AUTO N“, das Fahrtdaten erfasst, sie in Fahrtsegmente segmentiert (in 18 als „DS1 N“, „DS2 N“, „DSN N“ abgebildet) und sie an den Server 1230 zur Rekonstruktion in eine Fahrt (in 18 als „Fahrt N“ abgebildet) sendet.
-
Wie in 18 abgebildet ist, kann der Server 1230 eine dünn besetzte Karte (abgebildet als „KARTE“) unter Verwendung der rekonstruierten Fahrten (z.B. „Fahrt 1“, „Fahrt 2“ und „Fahrt N“), die von mehreren Fahrzeugen (z.B. „AUTO 1“ (auch als Fahrzeug 1810 bezeichnet), „AUTO 2“ (auch als Fahrzeug 1820 bezeichnet) und „AUTO N“) gesammelt wurden, konstruieren.
-
19 ist ein Ablaufplan, der einen Beispielprozess 1900 zum Erzeugen einer dünn besetzten Karte zur autonomen Fahrzeugnavigation entlang eines Straßensegments zeigt. Der Prozess 1900 kann durch eine oder mehrere in dem Server 1230 enthaltenen Verarbeitungsvorrichtungen ausgeführt werden.
-
Der Prozess 1900 kann das Empfangen mehrerer Bilder enthalten, die erfasst wurden, als ein oder mehrere Fahrzeuge das Straßensegment durchführen (Schritt 1905). Server 1230 kann Bilder von Kameras, die in einem oder mehreren der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 enthalten sind, empfangen. Beispielsweise kann die Kamera 122 ein oder mehrere Bilder der Umgebung des Fahrzeugs 1205 aufnehmen, während das Fahrzeug 1205 entlang des Straßensegments 1200 fährt. In einigen Ausführungsformen kann der Server 1230 auch reduzierte Bilddaten empfangen, bei denen Redundanzen durch einen Prozessor in dem Fahrzeug 1205 entfernt wurden, wie vorstehend in Bezug auf 17 beschrieben ist.
-
Der Prozess 1900 kann ferner das Identifizieren wenigstens einer Linienrepräsentation eines Straßenoberflächenmerkmals, das sich entlang des Straßensegments erstreckt, basierend auf den mehreren Bildern enthalten (Schritt 1910). Jede Linienrepräsentation kann einen Weg entlang des Straßensegments, der im Wesentlichen mit dem Straßenoberflächenmerkmal entspricht, repräsentieren. Beispielsweise kann der Server 1230 die von der Kamera 122 empfangenen Umgebungsbilder analysieren, um einen Straßenrand oder eine Fahrspurmarkierung zu identifizieren und eine Bewegungsbahn entlang des Straßensegments 1200, die dem Straßenrand oder der Fahrspurmarkierung zugeordnet ist, bestimmen. In einigen Ausführungsformen kann die Bewegungsbahn (oder Linienrepräsentation) einen Polynomzug, eine Polynomrepräsentation oder eine Kurve enthalten. Der Server 1230 kann die Bewegungsbahn des Fahrzeugs 1205 basierend auf den in Schritt 1905 empfangenen Kamera-Eigenbewegungen (z. B. dreidimensionalen Verschiebungs- und/oder dreidimensionale Drehbewegungen) bestimmen.
-
Der Prozess 1900 kann auch das Identifizieren mehrerer Orientierungspunkte, die dem Straßensegment zugeordnet sind, basierend auf den mehreren Bildern enthalten (Schritt 1910). Beispielsweise kann der Server 1230 die von der Kamera 122 empfangenen Umgebungsbilder analysieren, um einen oder mehrere Orientierungspunkte, wie z. B. Straßenschilder, entlang des Straßensegments 1200 zu identifizieren. Der Server 1230 kann die Orientierungspunkte unter Verwendung der Analyse der mehreren Bilder, die erfasst wurden, als ein oder mehrere Fahrzeuge das Straßensegment befahren haben, identifizieren. Um Crowdsourcing zu ermöglichen, kann die Analyse Regeln für das Akzeptieren und Ablehnen möglicher Orientierungspunkte, die dem Straßensegment zugeordnet sind, enthalten. Beispielsweise kann die Analyse das Akzeptieren potenzieller Orientierungspunkte, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt erscheint, zu Bildern, in denen der Orientierungspunkt nicht erscheint, einen Schwellenwert übersteigt, und/oder das Ablehnen potenzieller Orientierungspunkte, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt nicht erscheint, zu Bildern, in denen der Orientierungspunkt erscheint, einen Schwellenwert übersteigt, enthalten.
-
Der Prozess 1900 kann andere Operationen oder Schritte, die durch den Server 1230 ausgeführt werden, enthalten. Beispielsweise können die Navigationsinformationen eine Sollbewegungsbahn für Fahrzeuge zum Fahren entlang eines Straßensegments enthalten, und der Prozess 1900 kann das Clustern von Fahrzeugbewegungsbahnen, die sich auf mehrere Fahrzeuge beziehen, die auf dem Straßensegment fahren, durch den Server 1230 und das Bestimmen der Sollbewegungsbahn basierend auf den geclusterten Fahrzeugbewegungsbahnen enthalten, wie nachstehend genauer erläutert. Das Clustern von Fahrzeugbewegungsbahnen kann das Clustern durch den Server 1230 der mehreren Bewegungsbahnen, die sich auf die auf dem Straßensegment fahrenden Fahrzeuge beziehen, in mehrere Cluster basierend auf der absoluten Richtung der Fahrzeuge und/oder der Fahrspurzuweisung der Fahrzeuge enthalten. Das Erzeugen der Sollbewegungsbahn kann ein Mitteln der den geclusterten Bewegungsbahnen durch den Server 1230 enthalten. Als weiteres Beispiel kann der Prozess 1900 das Abgleichen der in Schritt 1905 empfangenen Daten enthalten. Andere Prozesse oder Schritte, die durch den Server 1230 ausgeführt werden, wie vorstehend beschrieben, können ebenfalls in dem Prozess 1900 enthalten sein.
-
Die offenbarten Systeme und Verfahren können andere Merkmale enthalten. Beispielsweise können die offenbarten Systeme lokale Koordinaten anstelle von globalen Koordinaten verwenden. Für das autonome Fahren können einige Systeme Daten in Weltkoordinaten präsentieren. Beispielsweise können Längen- und Breitenkoordinaten auf der Erdoberfläche verwendet werden. Um die Karte zum Lenken zu verwenden, kann das Trägerfahrzeug seine Position und Orientierung relativ zu der Karte bestimmen. Es liegt nahe, eine GPS-Vorrichtung an Bord zu verwenden, um das Fahrzeug auf der Karte zu positionieren und um die Rotationstransformation zwischen dem Karosseriebezugsrahmen und dem Weltbezugsrahmen (z. B. Norden, Osten und Unten) zu finden. Sobald der Karosseriebezugsrahmen mit dem Kartenbezugsrahmen abgeglichen ist, kann die gewünschte Route in dem Karosseriebezugsrahmen ausgedrückt werden, und die Lenkbefehle können berechnet oder erzeugt werden.
-
Die offenbarten Systeme und Verfahren können eine autonome Fahrzeugnavigation (z. B. Lenkungssteuerung) mit Modellen mit geringem Fußabdruck ermöglichen, die durch die autonomen Fahrzeuge selbst ohne die Hilfe teurer Geodäsieausrüstung gesammelt werden können. Zur Unterstützung der autonomen Navigation (z. B. bei Lenkanwendungen) kann das Straßenmodell eine dünn besetzte Karte enthalten, die die Geometrie der Straße, ihre Fahrspurstruktur und Orientierungspunkte, die zur Bestimmung des Orts oder der Position von Fahrzeugen entlang einer in dem Modell enthaltenen Bewegungsbahn verwendet werden können, aufweist. Wie vorstehend diskutiert, kann die Erzeugung der dünn besetzten Karte durch einen entfernten Server ausgeführt werden, der mit den auf der Straße fahrenden Fahrzeugen kommuniziert und der Daten von den Fahrzeugen empfängt. Die Daten können erfasste Daten, basierend auf den erfassten Daten rekonstruierte Bewegungsbahnen und/oder empfohlene Bewegungsbahnen, die modifizierte rekonstruierte Bewegungsbahnen repräsentieren können, enthalten. Wie nachstehend diskutiert, kann der Server das Modell an die Fahrzeuge oder andere Fahrzeuge, die später auf der Straße fahren, zurücksenden, um die autonome Navigation zu unterstützen.
-
20 stellt ein Blockdiagramm des Servers 1230 dar. Der Server 1230 kann eine Kommunikationseinheit 2005 enthalten, die sowohl Hardwarekomponenten (z. B. Kommunikationssteuerungsschaltungen, Schalter und Antenne) als auch Softwarekomponenten (z. B. Kommunikationsprotokolle, Computercodes) enthalten kann. Die Kommunikationseinheit 2005 kann beispielsweise wenigstens eine Netzschnittstelle enthalten. Der Server 1230 kann über die Kommunikationseinheit 2005 mit den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 kommunizieren. Beispielsweise kann der Server 1230 über die Kommunikationseinheit 2005 Navigationsinformationen, die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 gesendet werden, empfangen. Der Server 1230 kann über die Kommunikationseinheit 2005 das Straßennavigationsmodell für autonome Fahrzeuge an ein oder mehrere autonome Fahrzeuge verteilen.
-
Der Server 1230 kann wenigstens ein nicht-transitorisches Speichermedium 2010 enthalten, wie z. B. eine Festplatte, eine Compact-Disc, ein Band usw. Die Speichervorrichtung 1410 kann konfiguriert sein, Daten, wie z. B. von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangene Navigationsinformationen und/oder das Straßennavigationsmodell für autonome Fahrzeuge, das der Server 1230 basierend auf Navigationsinformationen erzeugt, zu speichern. Die Speichervorrichtung 2010 kann konfiguriert sein, irgendwelche andere Informationen, wie z. B. eine dünn besetzte Karte (z. B. die dünn besetzte Karte 800, die vorstehend in Bezug auf 8 diskutiert ist), zu speichern.
-
Zusätzlich zu der oder anstelle Speichervorrichtung 2010 kann der Server 1230 einen Speicher 2015 enthalten. Der Speicher 2015 kann dem Speicher 140 oder 150 ähnlich sein oder sich von ihm unterscheiden. Der Speicher 2015 kann ein nicht-transitorischer Speicher sein, wie z. B. ein Flash-Speicher, Direktzugriffsspeicher usw. Der Speicher 2015 kann konfiguriert sein, Daten, wie z. B. Computercodes oder Anweisungen, die durch einen Prozessor (z. B. den Prozessor 2020) ausführbar sind, Kartendaten (z. B. Daten der dünn besetzten Karte 800), das Straßennavigationsmodell für autonome Fahrzeuge und/oder Navigationsinformationen, die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangen werden, zu speichern.
-
Der Server 1230 kann wenigstens eine Verarbeitungsvorrichtung 2020 enthalten, die konfiguriert ist, im Speicher 2015 gespeicherte Computercodes oder Anweisungen auszuführen, um verschiedene Funktionen auszuführen. Beispielsweise kann die Verarbeitungsvorrichtung 2020 die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangenen Navigationsinformationen analysieren und basierend auf der Analyse das Straßennavigationsmodell für autonome Fahrzeuge erzeugen. Die Verarbeitungsvorrichtung 2020 kann die Kommunikationseinheit 1405 steuern, das Straßennavigationsmodell für autonome Fahrzeuge an ein oder mehrere autonome Fahrzeuge (z. B. eines oder mehrere der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 oder irgendein anderes Fahrzeug, das zu einem späteren Zeitpunkt auf dem Straßensegment 1200 fährt) zu verteilen. Die Verarbeitungsvorrichtung 2020 kann dem Prozessor 180, 190 oder der Verarbeitungseinheit 110 ähnlich sein oder sich von diesen unterscheiden.
-
21 stellt ein Blockdiagramm des Speichers 2015 dar, Computercode oder Anweisungen zum Ausführen einer oder mehrerer Operationen zum Erzeugen eines Straßennavigationsmodell zur Verwendung in der autonomen Fahrzeugnavigation speichern kann. Wie in 21 gezeigt ist, kann der Speicher 2015 ein oder mehrere Module zum Ausführen der Operationen zum Verarbeiten von Fahrzeugnavigationsinformationen speichern. Beispielsweise kann der Speicher 2015 ein Modellerzeugungsmodul 2105 und ein Modellverteilungsmodul 2110 enthalten. Der Prozessor 2020 kann die Anweisungen, die in irgendeinem der in dem Speicher 2015 enthaltenen Module 2105 und 2110 gespeichert sind, ausführen.
-
Das Modellerzeugungsmodul 2105 kann Befehle speichern, die dann, wenn sie durch den Prozessor 2020 ausgeführt werden, wenigstens einen Abschnitt eines Straßennavigationsmodells für autonome Fahrzeuge für ein gemeinsames Straßensegment (z. B. das Straßensegment 1200) basierend auf den von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangenen Navigationsinformationen erzeugen können. Beispielsweise kann der Prozessor 2020 bei der Erzeugung des Straßennavigationsmodells für autonome Fahrzeuge die Fahrzeugbewegungsbahnen entlang des gemeinsamen Straßensegments 1200 in verschiedene Cluster clustern. Der Prozessor 2020 kann eine Sollbewegungsbahn entlang des gemeinsamen Straßensegments 1200 basierend auf den geclusterten Fahrzeugbewegungsbahnen für jedes der unterschiedlichen Cluster bestimmen. Eine solche Operation kann das Finden einer mittleren oder durchschnittlichen Bewegungsbahn der geclusterten Fahrzeugbewegungsbahnen (z. B. durch Mitteln von Daten, die die geclusterten Fahrzeugbewegungsbahnen repräsentieren) in jedem Cluster enthalten. In einigen Ausführungsformen kann die Sollbewegungsbahn einer einzelnen Fahrspur des gemeinsamen Straßenabschnitts 1200 zugeordnet sein.
-
Das Straßenmodell und/oder die dünn besetzte Karte können Bewegungsbahnen, die einem Straßenabschnitt zugeordnet sind, speichern. Diese Bewegungsbahnen können als Sollbewegungsbahnen bezeichnet werden, die den autonomen Fahrzeugen zur autonomen Navigation zur Verfügung gestellt werden. Die Sollbewegungsbahnen können von mehreren Fahrzeugen empfangen oder basierend auf tatsächlichen Bewegungsbahnen oder empfohlenen Bewegungsbahnen (tatsächlichen Bewegungsbahnen mit einigen Modifikationen), die von mehreren Fahrzeugen empfangen wurden, erzeugt werden. Die im Straßenmodell oder in der dünn besetzten Karte enthaltenen Sollbewegungsbahnen können mit neuen Bewegungsbahnen, die von anderen Fahrzeugen empfangen werden, kontinuierlich aktualisiert (z. B. gemittelt) werden.
-
Fahrzeuge, die auf einem Straßensegment fahren, können mit verschiedenen Sensoren Daten sammeln. Die Daten können Orientierungspunkte, Straßensignaturprofile, Fahrzeugbewegungen (z. B. Beschleunigungsmesserdaten, Geschwindigkeitsdaten) und Fahrzeugpositionen (z. B. GPS-Daten) enthalten und können entweder selbst die tatsächlichen Bewegungsbahnen rekonstruieren oder die Daten an einen Server senden, der die tatsächlichen Bewegungsbahnen für die Fahrzeuge rekonstruiert. In einigen Ausführungsformen können die Fahrzeuge Daten in Bezug auf eine Bewegungsbahn (z. B. eine Kurve in einem beliebigen Bezugsrahmen), Daten zu Orientierungspunkten und die Fahrspurzuweisung entlang des Fahrwegs an den Server 1230 senden. Verschiedene Fahrzeuge, die entlang desselben Straßensegments in mehreren Fahrten fahren, können unterschiedliche Bewegungsbahnen aufweisen. Der Server 1230 kann aus den von den Fahrzeugen empfangenen Bewegungsbahnen durch einen Clustering-Prozess Routen oder Bewegungsbahnen, die jeder Fahrspur zugeordnet sind, identifizieren.
-
22 stellt einen Prozess zum Clustern von Fahrzeugbewegungsbahnen, die den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 zugeordnet sind, zum Bestimmen einer Sollbewegungsbahn für das gemeinsamen Straßensegment (z.B. das Straßensegment 1200) dar. Die Sollbewegungsbahn oder mehreren Sollbewegungsbahnen, die aus dem Clustering-Prozess bestimmt wurden, können in das Straßennavigationsmodell für autonome Fahrzeuge oder die dünn besetzte Karte 800 aufgenommen werden. In einigen Ausführungsformen können die Fahrzeuge 1205, 1210, 1215, 1220 und 1225, die auf dem Straßensegment 1200 fahren, mehrere Bewegungsbahnen 2200 an den Server 1230 senden. In einigen Ausführungsformen kann der Server 1230 Bewegungsbahnen basierend auf Informationen über Orientierungspunkte, Straßengeometrie und Fahrzeugbewegungen, die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangen werden, erzeugen. Um das Straßennavigationsmodell für autonome Fahrzeuge zu erzeugen, kann der Server 1230 die Fahrzeugbewegungsbahnen 1600 in mehrere Cluster 2205, 2210, 2215, 2220, 2225 und 2230 clustern, wie in 22 gezeigt ist.
-
Das Clustern kann nach verschiedenen Kriterien ausgeführt werden. In einigen Ausführungsformen können alle Fahrten in einem Cluster in Bezug auf die absolute Richtung entlang des Straßensegments 1200 ähnlich sein. Die absolute Richtung kann aus GPS-Signalen, die durch die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 empfangen werden, erhalten werden. In einigen Ausführungsformen kann die absolute Richtung unter Verwendung von Koppelnavigation erhalten werden. Die Koppelnavigation kann, wie ein Fachmann versteht, zum Bestimmen der aktuellen Position und damit der Richtung der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 unter Verwendung der zuvor bestimmten Position, der geschätzten Geschwindigkeit usw. verwendet werden. Bewegungsbahnen, die nach absoluter Richtung geclustert sind, können zum Identifizieren von Routen entlang der Straßen nützlich sein.
-
In einigen Ausführungsformen können alle Fahrten in einem Cluster in Bezug auf die Fahrspurzuweisung (z. B. auf der gleichen Fahrspur vor und nach einer Kreuzung) entlang der Fahrt auf dem Straßensegment 1200 ähnlich sein. Bewegungsbahnen, die nach der Fahrspurzuweisung geclustert sind, können zum Identifizieren von Fahrspuren entlang der Fahrbahnen nützlich sein. In einigen Ausführungsformen können beide Kriterien (z. B. die absolute Richtung und die Fahrspurzuweisung) zum Clustern verwendet werden.
-
In jedem Cluster 2205, 2210, 2215, 2220, 2225 und 2230 können die Bewegungsbahnen gemittelt werden, um eine dem spezifischen Cluster zugeordnete Sollbewegungsbahn zu erhalten. Beispielsweise können die Bewegungsbahnen von mehreren Fahrten, die demselben Fahrspurcluster zugeordnet sind, gemittelt werden. Die gemittelte Bewegungsbahn kann eine Sollbewegungsbahn sein, die einer spezifischen Fahrspur zugeordnet ist. Um eine Gruppe von Bewegungsbahnen zu mitteln, kann der Server 1230 einen Bezugsrahmen für eine beliebige Bewegungsbahn C0 auswählen. Für alle anderen Bewegungsbahnen (C1, ..., Cn) kann der Server 1230 eine starre Transformation finden, die Ci auf C0 abbildet, wobei i = 1, 2, ..., n ist, wobei n eine positive ganze Zahl ist, die der Gesamtzahl der in dem Cluster enthaltenen Bewegungsbahnen entspricht. Server 1230 kann eine mittlere Kurve oder Bewegungsbahn in dem CO-Bezugsrahmen berechnen.
-
In einigen Ausführungsformen können die Orientierungspunkte eine Bogenlänge definieren, die zwischen verschiedenen Fahrten übereinstimmt, was zum Abgleich von Bewegungsbahnen mit Fahrspuren verwendet werden kann. In einigen Ausführungsformen können Fahrspurmarkierungen vor und nach einer Kreuzung zum Abgleich von Bewegungsbahnen mit Fahrspuren verwendet werden.
-
Um Fahrspuren aus den Bewegungsbahnen zusammenzustellen, kann der Server 1230 einen Bezugsrahmen einer beliebigen Fahrspur auswählen. Der Server 1230 kann teilweise überlappende Fahrspuren dem ausgewählten Bezugsrahmen zuordnen. Der Server 1230 kann das Abbilden fortsetzen, bis sich alle Fahrspuren in demselben Bezugsrahmen befinden. Nebeneinander liegende Fahrspuren können so abgeglichen werden, als wären sie dieselbe Fahrspur, und später können sie seitlich verschoben werden.
-
Entlang des Straßensegments erkannte Orientierungspunkte können auf den gemeinsamen Bezugsrahmen abgebildet werden, zunächst auf der Ebene der Fahrspur, dann auf der Ebene der Kreuzung. Beispielsweise können dieselben Orientierungspunkte von mehreren Fahrzeugen in mehreren Fahrten mehrmals erkannt werden. Die Daten, die dieselben Orientierungspunkte betreffen und die in verschiedenen Fahrten empfangen werden, können sich geringfügig unterscheiden. Solche Daten können gemittelt und auf denselben Bezugsrahmen, z. B. den CO-Bezugsrahmen, abgebildet werden. Zusätzlich oder alternativ kann die Varianz der Daten desselben Orientierungspunktes, die in mehreren Fahrten empfangen wurden, berechnet werden.
-
In einigen Ausführungsformen können jeder Fahrspur des Straßensegments 120 ein Sollbewegungsbahn und spezielle Orientierungspunkten zugeordnet sein. Die Sollbewegungsbahn oder mehrere solche Sollbewegungsbahnen können in das Straßennavigationsmodell für autonome Fahrzeuge aufgenommen werden, das später von anderen autonomen Fahrzeugen, die auf demselben Straßensegment 1200 fahren, verwendet werden kann. Orientierungspunkte, die durch die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 identifiziert werden, während die Fahrzeuge entlang des Straßensegments 1200 fahren, können in Zuordnung zu der Sollbewegungsbahn aufgezeichnet werden. Die Daten der Sollbewegungsbahnen und Orientierungspunkte können kontinuierlich oder periodisch mit neuen Daten, die von anderen Fahrzeugen bei späteren Fahrten empfangen werden, aktualisiert werden.
-
Zur Ortsbestimmung eines autonomen Fahrzeugs können die offenbarten Systeme und Verfahren ein erweitertes Kalman-Filter verwenden. Der Ort des Fahrzeugs kann basierend auf dreidimensionalen Positionsdaten und/oder dreidimensionalen Orientierungsdaten, Vorhersage des zukünftigen Orts vor dem aktuellen Ort des Fahrzeugs durch Integration der Eigenbewegung bestimmt werden. Die Ortsbestimmung des Fahrzeugs kann durch Bildbeobachtungen von Orientierungspunkten korrigiert oder angepasst werden. Wenn das Fahrzeug beispielsweise einen Orientierungspunkt in einem durch die Kamera aufgenommenen Bild detektiert, kann der Orientierungspunkt mit einem bekannten Orientierungspunkt, der im Straßenmodell oder in der dünn besetzten Karte 800 gespeichert ist, verglichen werden. Der bekannte Orientierungspunkt kann einen bekannten Ort (z.B. GPS-Daten) entlang einer Sollbewegungsbahn aufweisen, die im Straßenmodell und/oder der dünn besetzten Karte 800 gespeichert ist. Basierend auf der aktuellen Geschwindigkeit und den Bildern des Orientierungspunktes kann der Abstand von dem Fahrzeug zu dem Orientierungspunkt geschätzt werden. Der Ort des Fahrzeugs entlang einer Sollbewegungsbahn kann basierend auf dem Abstand zu dem Orientierungspunkt und dem bekannten Ort des Orientierungspunktes (der in dem Straßenmodell oder in der dünn besetzten Karte 800 gespeichert ist) angepasst werden. Die im Straßenmodell und/oder in der dünn besetzten Karte 800 gespeicherten Positions-/Ortsdaten des Orientierungspunktes (z. B. Mittelwerte aus mehreren Fahrten) können als genau angenommen werden.
-
In einigen Ausführungsformen kann das offenbarte System ein Teilsystem mit geschlossenem Regelkreis bilden, in dem die Schätzung des Ortes des Fahrzeugs mit sechs Freiheitsgraden (z. B. dreidimensionale Positionsdaten plus dreidimensionale Orientierungsdaten) zur Navigation (z. B. Lenkung des Rades) des autonomen Fahrzeugs verwendet werden kann, um einen gewünschten Punkt (z. B. 1,3 Sekunden nach dem gespeicherten) zu erreichen. Die aus der Lenkung und der tatsächlichen Navigation gemessenen Daten können wiederum zum Schätzen des Ortes mit sechs Freiheitsgraden verwendet werden.
-
In einigen Ausführungsformen können Masten entlang einer Straße, wie z. B. Lichtmasten und Strom- oder Kabelleitungsmasten, als Orientierungspunkte für die Ortsbestimmung der Fahrzeuge verwendet werden. Andere Orientierungspunkte wie z. B. Verkehrszeichen, Ampeln, Pfeile auf der Straße, Haltelinien sowie statische Merkmale oder Signaturen eines Objekts entlang des Straßensegments können ebenfalls als Orientierungspunkte für die Ortsbestimmung des Fahrzeugs verwendet werden. Wenn Masten zur Ortsbestimmung verwendet werden, kann die x-Beobachtung der Masten (d. h. der Blickwinkel vom Fahrzeug aus) anstelle der y-Beobachtung (d. h. der Abstand zu dem Mast) verwendet werden, da die untersten Teile der Masten verdeckt sein können und sie manchmal nicht auf der Straßenebene sind.
-
23 stellt ein Navigationssystem für ein Fahrzeug, das zur autonomen Navigation unter Verwendung einer dünn besetzten Crowdsourcing-Karte verwendet werden kann, dar. Zur Veranschaulichung ist das Fahrzeug als Fahrzeug 1205 bezeichnet. Das in 23 gezeigte Fahrzeug kann ein beliebiges anderes hier offenbartes Fahrzeug sein, z. B. die Fahrzeuge 1210, 1215, 1220 und 1225 sowie das in anderen Ausführungsformen gezeigte Fahrzeug 200. Wie in 12 gezeigt ist, kann das Fahrzeug 1205 mit dem Server 1230 kommunizieren. Das Fahrzeug 1205 kann eine Bildaufnahmevorrichtung 122 (z. B. eine Kamera 122) enthalten. Das Fahrzeug 1205 kann ein Navigationssystem 2300 enthalten, das konfiguriert ist, Navigationsführung für das Fahrzeug 1205 zum Fahren auf einer Straße (z. B. dem Straßensegment 1200) bereitzustellen. Das Fahrzeug 1205 kann auch andere Sensoren enthalten, z. B. einen Geschwindigkeitssensor 2320 und einen Beschleunigungsmesser 2325. Der Geschwindigkeitssensor 2320 kann konfiguriert sein, die Geschwindigkeit des Fahrzeugs 1205 zu detektieren. Der Beschleunigungsmesser 2325 kann konfiguriert sein, eine Beschleunigung oder Verzögerung des Fahrzeugs 1205 zu detektieren. Das in 23 gezeigte Fahrzeug 1205 kann ein autonomes Fahrzeug sein, und das Navigationssystem 2300 kann zur Navigationsführung für autonomes Fahren verwendet werden. Alternativ kann das Fahrzeug 1205 auch ein nicht-autonomes, durch einen Menschen gesteuertes Fahrzeug sein, und das Navigationssystem 2300 kann immer noch zur Navigationsführung verwendet werden.
-
Das Navigationssystem 2300 kann eine Kommunikationseinheit 2305 enthalten, die konfiguriert ist, mit dem Server 1230 über den Kommunikationspfad 1235 zu kommunizieren. Das Navigationssystem 2300 kann auch eine GPS-Einheit 2310 enthalten, die konfiguriert ist, GPS-Signale zu empfangen und zu verarbeiten. Das Navigationssystem 2300 kann ferner wenigstens einen Prozessor 2315 enthalten, der konfiguriert ist, Daten, wie z. B. GPS-Signale, Kartendaten aus der dünn besetzten Karte 800 (die auf einer Speichervorrichtung, die an Bord des Fahrzeugs 1205 bereitgestellt ist, gespeichert und/oder vom Server 1230 empfangen werden können), die durch einen Straßenprofilsensor 2330 erfasste Straßengeometrie, durch die Kamera 122 aufgenommene Bilder und/oder das von dem Server 1230 empfangene Straßennavigationsmodell für autonome Fahrzeuge, zu verarbeiten. Der Straßenprofilsensor 2330 kann unterschiedliche Typen von Vorrichtungen zum Messen unterschiedlicher Typen von Straßenprofilen, wie z. B. der Rauheit der Straßenoberfläche, der Straßenbreite, die Straßensteigung, der Straßenkrümmung usw., enthalten. Der Straßenprofilsensor 2330 kann beispielsweise eine Vorrichtung, die die Bewegung einer Radaufhängung des Fahrzeugs 2305 misst, um das Straßenrauigkeitsprofil abzuleiten, enthalten. In einigen Ausführungsformen kann der Straßenprofilsensor 2330 Radarsensoren, um den Abstand zwischen dem Fahrzeug 1205 und den Straßenrändern (z. B. den Sperren an den Straßenrändern) zu messen und dadurch die Breite der Straße zu messen, enthalten. In einigen Ausführungsformen kann der Straßenprofilsensor 2330 eine Vorrichtung enthalten, die zum Messen der Steigung und des Gefälles der Straße konfiguriert ist. In einigen Ausführungsformen kann der Straßenprofilsensor 2330 eine Vorrichtung, die zum Messen der Straßenkrümmung konfiguriert ist, enthalten. Beispielsweise kann eine Kamera (z. B. die Kamera 122 oder eine andere Kamera) verwendet werden, um Bilder der Straße, die die Straßenkrümmungen zeigen, aufzunehmen. Das Fahrzeug 1205 kann solche Bilder verwenden, um Straßenkrümmungen zu detektieren.
-
Der wenigstens eine Prozessor 2315 kann programmiert sein, von der Kamera 122 wenigstens ein dem Fahrzeug 1205 zugeordnetes Umgebungsbild zu empfangen. Der wenigstens eine Prozessor 2315 kann das wenigstens eine Umgebungsbild analysieren, um Navigationsinformationen in Bezug auf das Fahrzeug 1205 zu bestimmen. Die Navigationsinformationen können eine Bewegungsbahn enthalten, die sich auf das Fahren des Fahrzeugs 1205 entlang des Straßensegments 1200 bezieht. Der wenigstens eine Prozessor 2315 kann die Bewegungsbahn basierend auf Bewegungen der Kamera 122 (und damit des Fahrzeugs), z. B. dreidimensionalen Verschiebungs- und dreidimensionalen Drehbewegungen, bestimmen. In einigen Ausführungsformen kann der wenigstens eine Prozessor 2315 die Verschiebungs- und Drehbewegungen der Kamera 122 basierend auf der Analyse mehrerer Bilder, die von der Kamera 122 erfasst wurden, bestimmen. In einigen Ausführungsformen können die Navigationsinformationen Informationen über die Fahrspurzuweisung enthalten (z.B. auf welcher Fahrspur das Fahrzeug 1205 entlang des Straßensegments 1200 fährt). Die vom Fahrzeug 1205 an den Server 1230 gesendeten Navigationsinformationen können durch den Server 1230 verwendet werden, um ein Straßennavigationsmodell für autonome Fahrzeuge zu erstellen und/oder zu aktualisieren, das vom Server 1230 zurück an das Fahrzeug 1205 gesendet werden kann, um eine autonome Navigationsführung für das Fahrzeug 1205 bereitzustellen.
-
Der wenigstens eine Prozessor 2315 kann auch programmiert sein, die Navigationsinformationen vom Fahrzeug 1205 an den Server 1230 zu senden. In einigen Ausführungsformen können die Navigationsinformationen zusammen mit den Straßeninformationen an den Server 1230 gesendet werden. Die Informationen über den Straßenort können wenigstens eines aus dem durch die GPS-Einheit 2310 empfangenen GPS-Signal, Informationen über Orientierungspunkte, die Straßengeometrie, Fahrspurinformationen usw. enthalten. Der wenigstens eine Prozessor 2315 kann von dem Server 1230 das Straßennavigationsmodell für autonome Fahrzeuge oder einen Abschnitt des Modells empfangen. Das vom Server 1230 empfangene Straßennavigationsmodell für autonome Fahrzeuge kann wenigstens eine Aktualisierung, die auf den von dem Fahrzeug 1205 an den Server 1230 gesendeten Navigationsinformationen basiert, enthalten. Der vom Server 1230 an das Fahrzeug 1205 gesendete Abschnitt des Modells kann einen aktualisierten Abschnitt des Modells enthalten. Der wenigstens eine Prozessor 2315 kann wenigstens ein Navigationsmanöver (z. B. Lenken, wie z. B. Abbiegen, Bremsen, Beschleunigen, Überholen eines anderen Fahrzeugs usw.) durch das Fahrzeug 1205 basierend auf dem empfangenen Straßennavigationsmodell für autonome Fahrzeuge oder dem aktualisierten Abschnitt des Modells veranlassen.
-
Der wenigstens eine Prozessor 2315 kann konfiguriert sein, mit verschiedenen Sensoren und Komponenten in dem Fahrzeug 1205, die die Kommunikationseinheit 1705, die GPS-Einheit 2315, die Kamera 122, den Geschwindigkeitssensor 2320, den Beschleunigungsmesser 2325 und den Straßenprofilsensor 2330 enthalten, zu kommunizieren. Der wenigstens eine Prozessor 2315 kann Informationen oder Daten von verschiedenen Sensoren und Komponenten sammeln und die Informationen oder Daten über die Kommunikationseinheit 2305 an den Server 1230 senden. Alternativ oder zusätzlich können verschiedene Sensoren oder Komponenten des Fahrzeugs 1205 auch mit dem Server 1230 kommunizieren und Daten oder Informationen, die durch die Sensoren oder Komponenten gesammelt werden, an den Server 1230 senden.
-
In einigen Ausführungsformen können die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 miteinander kommunizieren und können Navigationsinformationen gemeinsam verwenden, so dass wenigstens eines der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 das Straßennavigationsmodell für autonome Fahrzeuge unter Verwendung von Crowdsourcing, z. B. basierend auf Informationen, die mit anderen Fahrzeugen gemeinsam verwendet werden, erzeugen kann. In einigen Ausführungsformen können die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 Navigationsinformationen gemeinsam verwenden, und jedes Fahrzeug kann sein eigenes, im Fahrzeug bereitgestelltes Straßennavigationsmodell für autonome Fahrzeuge aktualisieren. In einigen Ausführungsformen kann wenigstens eines der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 (z. B. das Fahrzeug 1205) als Hub-Fahrzeug funktionieren. Der wenigstens eine Prozessor 2315 des Hub-Fahrzeugs (z. B. des Fahrzeugs 1205) kann einige der oder alle durch den Server 1230 ausgeführte Funktionen ausführen. Beispielsweise kann der wenigstens eine Prozessor 2315 des Hub-Fahrzeugs mit anderen Fahrzeugen kommunizieren und Navigationsinformationen von anderen Fahrzeugen empfangen. Der wenigstens eine Prozessor 2315 des Hub-Fahrzeugs kann das Straßennavigationsmodell für autonome Fahrzeuge oder eine Aktualisierung des Modells basierend auf den von anderen Fahrzeugen empfangenen gemeinsam verwendeten Informationen erzeugen. Der wenigstens eine Prozessor 2315 des Hub-Fahrzeugs kann das Straßennavigationsmodell für autonome Fahrzeuge oder die Aktualisierung des Modells an andere Fahrzeuge senden, um autonome Navigationsführung bereitzustellen.
-
Navigation basierend auf dünn besetzten Karten
-
Wie bereits diskutiert, kann das Straßennavigationsmodell für autonome Fahrzeuge, das die dünn besetzte Karte 800 enthält, mehrere kartierte Fahrspurmarkierungen und mehrere kartierte Objekte/Merkmale, die einem Straßensegment zugeordnet sind, enthalten. Wie nachstehend genauer diskutiert, können diese kartierten Fahrspurmarkierungen, Objekte und Merkmale bei der Navigation des autonomen Fahrzeugs verwendet werden. In einigen Ausführungsformen können die kartierten Objekte und Merkmale beispielsweise verwendet werden, um ein Trägerfahrzeug relativ zur Karte (z. B. relativ zu einer kartierten Sollbewegungsbahn) zu lokalisieren. Die kartierten Fahrspurmarkierungen können (z. B. zur Überprüfung) verwendet werden, um eine seitliche Position und/oder Orientierung relativ zu einer geplanten oder Sollbewegungsbahn zu bestimmen. Mit diesen Positionsinformationen kann das autonome Fahrzeug im Stande sein, eine Fahrtrichtung so anpassen, dass sie mit der Richtung einer Sollbewegungsbahn an der bestimmten Position übereinstimmt.
-
Das Fahrzeug 200 kann konfiguriert sein, Fahrspurmarkierungen auf einem gegebenen Straßensegment zu detektieren. Das Straßensegment kann irgendwelche Markierungen auf einer Straße zum Führen von Fahrzeugverkehr auf einer Fahrbahn enthalten. Die Fahrspurmarkierungen können beispielsweise durchgezogene oder unterbrochene Linien sein, die einen Rand einer Fahrspur markieren. Die Fahrspurmarkierungen können auch Doppellinien enthalten, z. B. doppelte durchgezogene Linien, doppelte unterbrochene Linien oder eine Kombination aus durchgezogenen und unterbrochenen Linien, die beispielsweise angeben, ob das Überholen auf einer benachbarten Fahrspur erlaubt ist. Die Fahrspurmarkierungen können auch Markierungen für Autobahnauffahrten- und -ausfahrten, die beispielsweise eine Verzögerungsspur für eine Ausfahrt angeben, oder unterbrochene Linien, die angeben, dass eine Fahrspur nur zum Abbiegen dient oder dass die Fahrspur endet, enthalten. Die Markierungen können ferner eine Baustellenzone, eine vorübergehende Fahrspurverschiebung, einen Fahrweg durch eine Kreuzung, einen Mittelstreifen, eine Sonderspur (z. B. Fahrradspur, HOV-Spur usw.) oder sonstige Markierungen (z. B. Fußgängerüberweg, Geschwindigkeitsschwelle, Bahnübergang, Haltelinie usw.) angeben.
-
Das Fahrzeug 200 kann Kameras, wie z. B. die in der Bilderfassungseinheit 120 enthaltenen Bildaufnahmevorrichtungen 122 und 124, verwenden, um Bilder der umgebenden Fahrspurmarkierungen aufzunehmen. Das Fahrzeug 200 kann die Bilder analysieren, um basierend auf Merkmalen, die in einem oder mehreren der aufgenommenen Bilder identifiziert werden, Punktorte, die mit den Fahrspurmarkierungen zugeordnet sind, zu detektieren. Diese Punktorte können auf einen Server hochgeladen werden, um die Fahrspurmarkierungen in der dünn besetzten Karte 800 zu repräsentieren. Abhängig von der Position und dem Sichtfeld der Kamera können Fahrspurmarkierungen für beide Seiten des Fahrzeugs gleichzeitig aus einem einzigen Bild detektiert werden. In anderen Ausführungsformen können unterschiedliche Kameras verwendet werden, um Bilder auf mehreren Seiten des Fahrzeugs aufzunehmen. Anstatt tatsächliche Bilder der Fahrspurmarkierungen hochzuladen, können die Markierungen in der dünn besetzten Karte 800 als Polynomzug oder eine Reihe von Punkten gespeichert werden, wodurch die Größe der dünn besetzten Karte 800 und/oder der Daten, die vom Fahrzeug aus der Ferne hochgeladen werden müssen, reduziert werden.
-
Die 24A-24D zeigen beispielhafte Punktorte, die durch das Fahrzeug 200 detektiert werden können, um spezielle Fahrspurmarkierungen zu repräsentieren. Ähnlich wie bei den oben beschriebenen Orientierungspunkten kann das Fahrzeug 200 verschiedene Bilderkennungsalgorithmen oder -software verwenden, um Punktorte innerhalb eines aufgenommenen Bildes zu identifizieren. Beispielsweise kann das Fahrzeug 200 eine Folge von Randpunkten, Eckpunkten oder verschiedenen anderen Punktorten, die einer speziellen Fahrspurmarkierung zugeordnet sind, detektieren. 24A zeigt eine durchgehende Fahrspurmarkierung 2410, die durch das Fahrzeug 200 detektiert werden kann. Die Fahrspurmarkierung 2410 kann den äußeren Rand einer Fahrbahn, der durch eine durchgehende weiße Linie repräsentiert ist, repräsentieren. Wie in 24A gezeigt ist, kann das Fahrzeug 200 konfiguriert sein, mehrere Randortspunkten 2411 entlang der Fahrspurmarkierung zu detektieren. Ortspunkte 2411 können gesammelt werden, um die Fahrspurmarkierung in irgendwelchen Abständen, die ausreichend sind, um eine kartierte Fahrspurmarkierung in der dünn besetzten Karte zu erzeugen, zu repräsentieren. Die Fahrspurmarkierung kann beispielsweise durch einen Punkt pro Meter des detektierten Rands, einen Punkt alle fünf Meter des detektierten Rands oder in anderen geeigneten Abständen repräsentiert sein. In einigen Ausführungsformen kann der Abstand durch andere Faktoren als durch festgelegte Intervalle bestimmt werden, z. B. basierend auf Punkten, an denen das Fahrzeug 200 die höchste Vertrauensbewertung in den Ort der detektierten Punkte besitzt. Obwohl 24A die Randortspunkte an einem Innenrand der Fahrspurmarkierung 2410 zeigt, können die Punkte auch an dem Außenrand der Linie oder entlang beider Ränder gesammelt werden. Ferner können, obwohl in eine einzelne Linie gezeigt ist, ähnliche Kantenpunkte auch für eine doppelte durchgehende Linie detektiert werden. Beispielsweise können Punkte 2411 entlang eines Rands einer oder beider durchgehender Linien detektiert werden.
-
Das Fahrzeug 200 kann auch Fahrspurmarkierungen abhängig von dem Typ oder der Form der Fahrspurmarkierung unterschiedlich repräsentieren. 24B zeigt eine beispielhafte unterbrochene Fahrspurmarkierung 2420, die durch das Fahrzeug 200 detektiert werden kann. Anstatt wie in 24A Randpunkte zu identifizieren, kann das Fahrzeug eine Folge von Eckpunkten 2421 detektieren, die die Ecken der Fahrspurstreifen repräsentieren, um die gesamte Begrenzung des Streifens zu definieren. Während 24B zeigt, dass jede Ecke einer gegebenen Strichmarkierung geortet ist, kann das Fahrzeug 200 eine Teilmenge der in der Figur gezeigten Punkte detektieren oder hochladen. Beispielsweise kann das Fahrzeug 200 den vorderen Rand oder die vordere Ecke einer gegebenen Strichmarkierung detektieren oder kann die beiden Eckpunkte, die dem Inneren der Fahrspur am nächsten liegen, detektieren. Ferner kann nicht jede Strichmarkierung aufgenommen werden. So kann das Fahrzeug 200 beispielsweise Punkte, die eine Stichprobe von Strichmarkierungen (z. B. jede zweite, jede dritte, jede fünfte usw.) repräsentieren, oder Strichmarkierungen in einem vordefinierten Abstand (z. B. jeden Meter, alle fünf Meter, alle 10 Meter usw.) aufnehmen und/oder aufzeichnen. Eckpunkte können auch für ähnliche Fahrspurmarkierungen detektiert werden, wie z. B. Markierungen, die zeigen, dass eine Fahrspur für eine Ausfahrtsrampe bestimmt ist, dass eine spezielle Fahrspur endet, oder andere verschiedene Fahrspurmarkierungen, die detektierbare Eckpunkte aufweisen können. Eckpunkte können auch für Fahrspurmarkierungen detektiert werden, die aus unterbrochenen Doppellinien oder einer Kombination aus durchgehenden und unterbrochenen Linien bestehen.
-
In einigen Ausführungsformen können die Punkte, die zum Server hochgeladen werden, um die kartierten Fahrspurmarkierungen zu erzeugen, andere Punkte außer den detektierten Kantenpunkten oder Eckpunkte repräsentieren. 24C stellt eine Folge von Punkten dar, die eine Mittellinie einer gegebenen Fahrspurmarkierung repräsentieren können. Beispielsweise kann eine durchgehende Fahrspur 2410 durch Mittellinienpunkte 2441 entlang einer Mittellinie 2440 der Fahrspurmarkierung repräsentiert werden. In einigen Ausführungsformen kann das Fahrzeug 200 konfiguriert sein, diese Mittelpunkte unter Verwendung verschiedener Bilderkennungstechniken, wie z. B. neuronal Faltungsnetze (CNN), skaleninvariante Merkmalstransformation (SIFT), Histogramm orientierter Gradienten (HOG) oder andere Techniken, zu detektieren. Alternativ kann das Fahrzeug 200 auch andere Punkte, wie z. B. die in 24A gezeigten Randpunkte 2411, detektieren und die Mittellinienpunkte 2441 berechnen, indem es z. B. Punkte entlang jedes Rands detektiert und einen Mittelpunkt zwischen den Randpunkten bestimmt. Auf ähnliche Weise kann eine unterbrochene Fahrspurmarkierung 2420 durch Mittellinienpunkte 2451 entlang einer Mittellinie 2450 der Fahrspurmarkierung repräsentiert werden. Die Mittellinienpunkte können sich am Rand eines Strichs, wie in 24C gezeigt, oder an verschiedenen anderen Orten entlang der Mittellinie befinden. Beispielsweise kann jeder Strich durch einen einzigen Punkt in der geometrischen Mitte des Strichs repräsentiert werden. Die Punkte können auch in einem vorbestimmten Abstand entlang der Mittellinie beabstandet sein (z. B. alle Meter, 5 Meter, 10 Meter usw.). Die Mittellinienpunkte 2451 können direkt durch das Fahrzeug 200 detektiert werden oder basierend auf anderen detektierten Referenzpunkten, wie z. B. Eckpunkten 2421, berechnet werden, wie in 24B gezeigt ist. Eine Mittellinie kann auch verwendet werden, um andere Typen von Fahrspurmarkierung zu repräsentieren, wie z. B. eine Doppellinie, wobei ähnliche Techniken wie vorstehend verwendet werden.
-
In einigen Ausführungsformen kann das Fahrzeug 200 Punkte identifizieren, die andere Merkmale repräsentieren, wie z. B. einen Scheitelpunkt zwischen zwei sich schneidenden Fahrspurmarkierungen. 24D zeigt beispielhafte Punkte, die einen Schnittpunkt zwischen zwei Fahrspurmarkierungen 2460 und 2465 repräsentieren. Das Fahrzeug 200 kann einen Scheitelpunkt 2466, der einen Schnittpunkt zwischen den beiden Fahrspurmarkierungen repräsentiert, berechnen. Beispielsweise kann eine der Fahrspurmarkierungen 2460 oder 2465 einen Bahnübergang oder einen anderen Kreuzungsbereich in dem Straßensegment repräsentieren. Obwohl die Fahrspurmarkierungen 2460 und 2465 sind so gezeigt sind, dass sie sich senkrecht kreuzen, können verschiedene andere Konfigurationen detektiert werden. Beispielsweise können sich die Fahrspurmarkierungen 2460 und 2465 in anderen Winkeln kreuzen, oder eine oder beide Fahrspurmarkierungen können am Scheitelpunkt 2466 enden. Ähnliche Techniken können auch für Kreuzungen zwischen unterbrochenen oder anderen Typen von Fahrspurmarkierungen angewandt werden. Zusätzlich zu dem Scheitelpunkt 2466 können auch verschiedene andere Punkte 2467 detektiert werden, die weitere Informationen über die Orientierung der Fahrspurmarkierungen 2460 und 2465 bereitstellen.
-
Das Fahrzeug 200 kann jedem detektierten Punkt der Fahrspurmarkierung Koordinaten der realen Welt zuordnen. Beispielsweise können Ortsidentifizierer, die Koordinaten für jeden Punkt enthalten, zum Hochladen auf einen Server erzeugt werden, um die Fahrspurmarkierung zu kartieren. Die Ortsidentifizierer können ferner andere Identifizierungsinformationen über die Punkte enthalten, die enthalten, ob der Punkt einen Eckpunkt, einen Randpunkt, ein Mittenpunkt usw. repräsentiert. Das Fahrzeug 200 kann daher konfiguriert sein, basierend auf der Analyse der Bilder eine Position in der realen Welt jedes Punktes zu bestimmen. Beispielsweise kann das Fahrzeug 200 andere Merkmale in dem Bild detektieren, wie z. B. die verschiedenen vorstehend beschriebenen Orientierungspunkte, um die Position in der realen Welt der Fahrspurmarkierungen zu lokalisieren. Dies kann das Bestimmen des Orts der Fahrspurmarkierungen im Bild in Bezug auf den detektierten Orientierungspunkt oder das Bestimmen der Position des Fahrzeugs basierend auf dem detektierten Orientierungspunkt und dann Bestimmen eines Abstands zwischen dem Fahrzeug (oder der Sollbewegungsbahn des Fahrzeugs) und der Fahrspurmarkierung beinhalten. Wenn kein Orientierungspunkt verfügbar ist, kann der Ort der Fahrspurmarkierungspunkte in Bezug auf eine Position des Fahrzeugs, die basierend auf einer Koppelnavigation bestimmt wurde, bestimmt werden. Die in den Ortsidentifizierern enthaltenen Koordinaten in der realen Welt können als absolute Koordinaten (z. B. Breiten-/Längenkoordinaten) repräsentiert sein oder können relativ zu anderen Merkmalen sein, z. B. basierend auf einer Längsposition entlang einer Sollbewegungsbahn und einem seitlichen Abstand von der Sollbewegungsbahn. Die Ortsidentifizierer können dann auf einen Server hochgeladen werden, um die kartierten Fahrspurmarkierungen in dem Navigationsmodell (z. B. die dünn besetzte Karte 800) zu erzeugen. In einigen Ausführungsformen kann der Server einen Polynomzug, der die Fahrspurmarkierungen eines Straßensegments repräsentiert, konstruieren. Alternativ kann das Fahrzeug 200 den Polynomzug erzeugen und ihn zum Speichern in dem Navigationsmodell auf den Server hochladen.
-
24E zeigt ein beispielhaftes Navigationsmodell oder eine dünn besetzte Karte für ein entsprechendes Straßensegment, das kartierte Fahrspurmarkierungen enthält. Die dünn besetzte Karte kann eine Sollbewegungsbahn 2475 enthalten, der ein Fahrzeug entlang eines Straßensegments folgen soll. Wie vorstehend beschrieben, kann die Sollbewegungsbahn 2475 einen idealen Weg, den ein Fahrzeug nehmen soll, wenn es auf dem entsprechenden Straßensegment fährt, repräsentieren oder kann sich an anderer Stelle auf der Straße befinden (z. B. auf einer Mittellinie der Straße usw.). Die Sollbewegungsbahn 2475 kann in den verschiedenen vorstehend beschriebenen Verfahren berechnet werden, z. B. basierend auf einer Aggregation (z. B. einer gewichteten Kombination) von zwei oder mehr rekonstruierten Bewegungsbahnen von Fahrzeugen, die dasselbe Straßensegment durchfahren.
-
In einigen Ausführungsformen kann die Sollbewegungsbahn für alle Fahrzeugtypen und für alle Straßen-, Fahrzeug- und/oder Umgebungsbedingungen auf die gleiche Weise erzeugt werden. In anderen Ausführungsformen können jedoch auch verschiedene andere Faktoren oder Variablen bei der Erzeugung der Sollbewegungsbahn berücksichtigt werden. Für unterschiedliche Fahrzeugtypen (z. B. ein privates Auto, einen Kleinlastwagen und einen voll beladenen Anhänger) kann eine unterschiedliche Sollbewegungsbahn erzeugt werden. So kann beispielsweise für ein kleines privates Auto eine Sollbewegungsbahn mit relativ engeren Kurvenradien erzeugt werden als für einen größeren Sattelschlepper. In einigen Ausführungsformen können auch Straßen-, Fahrzeug- und Umweltbedingungen berücksichtigt werden. Beispielsweise kann für unterschiedliche Straßenverhältnisse (z. B. nass, verschneit, vereist, trocken usw.), Fahrzeugzustände (z. B. Reifenzustand oder geschätzter Reifenzustand, Bremsenzustand oder geschätzter Bremsenzustand, verbleibende Kraftstoffmenge usw.) oder Umgebungsfaktoren (z. B. Tageszeit, Sicht, Wetter usw.) eine unterschiedliche Sollbewegungsbahn erzeugt werden. Die Sollbewegungsbahn kann auch von einem oder mehreren Aspekten oder Merkmalen eines speziellen Straßensegments abhängen (z. B. Geschwindigkeitsbegrenzung, Häufigkeit und Größe von Kurven, Steigung usw.). In einigen Ausführungsformen können auch verschiedene Benutzereinstellungen verwendet werden, um die Sollbewegungsbahn zu bestimmen, wie z. B. ein eingestellter Fahrmodus (z. B. gewünschte Fahraggressivität, Sparmodus usw.).
-
Die dünn besetzte Karte kann auch kartierte Fahrspurmarkierungen 2470 und 2480, die Fahrspurmarkierungen entlang des Straßensegments repräsentieren, enthalten. Die kartierten Fahrspurmarkierungen können durch mehrere Ortsidentifizierer 2471 und 2481 repräsentiert sein. Wie vorstehend beschrieben, können die Ortsidentifizierer die Orte in Koordinaten der realen Welt von Punkten, die mit einer detektierten Fahrspurmarkierung zugeordnet sind, enthalten. Ähnlich wie die Sollbewegungsbahn in dem Modell können die Fahrspurmarkierungen auch Höhendaten enthalten und als eine Kurve im dreidimensionalen Raum repräsentiert sein. Beispielsweise kann die Kurve ein Polynomzug sein, der dreidimensionale Polynome geeigneter Ordnung verbindet, und die Kurve kann basierend auf den Ortsidentifizierern berechnet werden. Die kartierten Fahrspurmarkierungen können auch andere Informationen oder Metadaten über die Fahrspurmarkierung, wie z. B. einen Identifizierer für den Typ der Fahrspurmarkierung (z. B. zwischen zwei Fahrspuren mit derselben Fahrtrichtung, zwischen zwei Fahrspuren mit entgegengesetzter Fahrtrichtung, am Rand einer Fahrbahn usw.) und/oder andere Eigenschaften der Fahrspurmarkierungen (z. B. durchgehend, unterbrochen, Einzellinie, Doppellinie, gelb, weiß usw.) enthalten. In einigen Ausführungsformen können die kartierten Fahrspurmarkierungen innerhalb des Modells kontinuierlich aktualisiert werden, z. B. durch Crowdsourcing-Techniken. Dasselbe Fahrzeug kann anlässlich mehrerer Fahrten auf demselben Straßensegment Ortsidentifizierer hochladen, oder es können Daten von mehreren Fahrzeugen (z. B. 1205, 1210, 1215, 1220 und 1225), die den Straßenabschnitt zu unterschiedlichen Zeiten befahren, ausgewählt werden. Die dünn besetzte Karte 800 kann basierend auf den von den Fahrzeugen empfangenen und im System gespeicherten späteren Ortsidentifizierern aktualisiert oder verfeinert werden. Wenn die kartierten Fahrspurmarkierungen aktualisiert und verfeinert werden, kann das aktualisierte Straßennavigationsmodell und/oder die dünn besetzte Karte an mehrere autonome Fahrzeuge verteilt werden.
-
Das Erzeugen der kartierten Fahrspurmarkierungen in der dünn besetzten Karte kann auch das Detektieren und/oder Abschwächen von Fehlern basierend auf Anomalien in den Bildern oder in den tatsächlichen Fahrspurmarkierungen selbst enthalten. 24F zeigt eine beispielhafte Anomalie 2495 im Zusammenhang mit dem Detektieren einer Fahrspurmarkierung 2490. Die Anomalie 2495 kann in dem durch das Fahrzeug 200 aufgenommenen Bild erscheinen, z. B. durch ein Objekt, das die Sicht der Kamera auf die Fahrbahnmarkierung behindert, durch Schmutz auf dem Objektiv usw. In einigen Fällen kann die Anomalie auf die Fahrspurmarkierung selbst zurückzuführen sein, die beschädigt oder abgenutzt oder teilweise verdeckt sein kann, z. B. durch Schmutz, Ablagerungen, Wasser, Schnee oder andere Materialien auf der Straße. Die Anomalie 2495 kann dazu führen, dass ein fehlerhafter Punkt 2491 durch das Fahrzeug 200 detektiert wird. Die dünn besetzte Karte 800 kann die korrekte kartierte Fahrspurmarkierung bereitstellen und den Fehler ausschließen. In einigen Ausführungsformen kann das Fahrzeug 200 den fehlerhaften Punkt 2491 beispielsweise durch Detektieren einer Anomalie 2495 in dem Bild oder durch Identifizieren des Fehlers basierend auf den detektierten Fahrspurmarkierungspunkten vor und nach der Anomalie detektieren. Basierend auf dem Detektieren der Anomalie kann das Fahrzeug den Punkt 2491 weglassen oder ihn so anpassen, dass er mit anderen detektierten Punkten übereinstimmt. In anderen Ausführungsformen kann der Fehler korrigiert werden, nachdem der Punkt hochgeladen worden ist, z. B. durch Bestimmen, dass der Punkt außerhalb eines erwarteten Schwellenwerts liegt, basierend auf anderen Punkten, die während derselben Fahrt hochgeladen wurden, oder basierend auf einer Aggregation von Daten aus früheren Fahrten entlang desselben Straßensegments.
-
Die in dem Navigationsmodell und/oder in der dünn besetzten Karte kartierten Fahrspurmarkierungen können auch durch ein autonomes Fahrzeug, das die entsprechende Fahrbahn befährt, zur Navigation verwendet werden. Beispielsweise kann ein Fahrzeug, das entlang einer Sollbewegungsbahn navigiert, periodisch die kartierten Fahrspurmarkierungen in der dünn besetzten Karte verwenden, um sich mit der Sollbewegungsbahn abzugleichen. Wie vorstehend erwähnt, kann das Fahrzeug zwischen den Orientierungspunkten basierend auf Koppelnavigation navigieren, wobei das Fahrzeug Sensoren verwendet, um seine Eigenbewegung zu bestimmen und seine Position in Bezug auf die Sollbewegungsbahn zu schätzen. Fehler können mit der Zeit akkumuliert werden, und die Positionsbestimmung des Fahrzeugs in Bezug auf die Sollbewegungsbahn kann zunehmend ungenauer werden. Dementsprechend kann das Fahrzeug die in der dünn besetzten Karte 800 auftretenden Fahrspurmarkierungen (und deren bekannte Orte) verwenden, um die durch die Koppelnavigation verursachten Fehler bei der Positionsbestimmung zu reduzieren. Auf diese Weise können die identifizierten Fahrspurmarkierungen, die in der dünn besetzten Karte 800 enthalten sind, als Navigationsanker dienen, anhand derer eine genaue Position des Fahrzeugs relativ zu einer Sollbewegungsbahn bestimmt werden kann.
-
25A zeigt ein beispielhaftes Bild 2500 der Umgebung eines Fahrzeugs, das zur Navigation basierend auf den kartierten Fahrspurmarkierungen verwendet werden kann. Das Bild 2500 kann beispielsweise durch das Fahrzeug 200 über die in der Bilderfassungseinheit 120 enthaltenen Bildaufnahmevorrichtungen 122 und 124 aufgenommen werden. Das Bild 2500 kann ein Bild wenigstens einer Fahrspurmarkierung 2510 enthalten, wie in 25A gezeigt ist. Das Bild 2500 kann auch einen oder mehrere Orientierungspunkte 2521, wie z. B. ein Straßenschild, enthalten, die wie vorstehend beschrieben zur Navigation verwendet werden. Einige in 25A gezeigte Elemente, wie z. B. die Elemente 2511, 2530 und 2520, die nicht in dem aufgenommenen Bild 2500 erscheinen, jedoch durch das Fahrzeug 200 detektiert und/oder bestimmt werden, sind als Referenz ebenfalls dargestellt.
-
Unter Verwendung der verschiedenen Techniken, die vorstehend in Bezug auf die 24A-D und 24F beschrieben sind, kann ein Fahrzeug das Bild 2500 analysieren, um die Fahrspurmarkierung 2510 zu identifizieren. Es können verschiedene Punkte 2511, die den Merkmalen der Fahrspurmarkierung in dem Bild entsprechen, detektiert werden. Die Punkte 2511 können beispielsweise einem Rand der Fahrspurmarkierung, einer Ecke der Fahrspurmarkierung, einem Mittenpunkt der Fahrspurmarkierung, einem Scheitelpunkt zwischen zwei sich kreuzenden Fahrspurmarkierungen oder verschiedenen anderen Merkmalen oder Orten entsprechen. Die Punkte 2511 können so detektiert werden, dass sie einem Ort von Punkten, die in einem von einem Server empfangenen Navigationsmodell gespeichert sind, entsprechen. Falls beispielsweise eine dünn besetzte Karte empfangen wird, die Punkte enthält, die eine Mittellinie einer kartierten Fahrspurmarkierung repräsentieren, können die Punkte 2511 auch basierend auf einer Mittellinie der Fahrspurmarkierung 2510 detektiert werden.
-
Das Fahrzeug kann auch eine Längsposition bestimmen, die durch das Element 2520 repräsentiert ist und sich entlang einer Sollbewegungsbahn befindet. Die Längsposition 2520 kann aus dem Bild 2500 bestimmt werden, beispielsweise durch Detektieren des Orientierungspunktes 2521 in dem Bild 2500 und Vergleich eines gemessenen Orts mit einem bekannten Ort des Orientierungspunktes, der in dem Straßenmodell oder in der dünn besetzten Karte 800 gespeichert ist. Der Ort des Fahrzeugs entlang einer Sollbewegungsbahn kann dann basierend auf dem Abstand zu dem Orientierungspunkt und dem bekannten Ort des Orientierungspunktes bestimmt werden. Die Längsposition 2520 kann auch aus anderen Bildern als denen, die zum Bestimmen der Position einer Fahrspurmarkierung verwendet werden, bestimmt werden. Beispielsweise kann die Längsposition 2520 durch Detektieren von Orientierungspunkten in Bildern anderer Kameras innerhalb der Bilderfassungseinheit 120, die gleichzeitig oder nahezu gleichzeitig mit Bild 2500 aufgenommen wurden, bestimmt werden. In einigen Fällen kann das Fahrzeug nicht in der Nähe irgendwelcher Orientierungspunkte oder anderer Bezugspunkte zur Bestimmung der Längsposition 2520 sein. In solchen Fällen kann das Fahrzeug basierend auf Koppelnavigation navigieren und somit Sensoren verwenden, um seine Eigenbewegung zu bestimmen und eine Längsposition 2520 relativ zu der Sollbewegungsbahn zu schätzen. Das Fahrzeug kann auch einen Abstand 2530 bestimmen, der den tatsächlichen Abstand zwischen dem Fahrzeug und der Fahrspurmarkierung 2510, der in dem/den aufgenommenen Bild(ern) beobachtet wurde, repräsentiert. Bei der Bestimmung des Abstands 2530 können der Kamerawinkel, die Geschwindigkeit des Fahrzeugs, die Breite des Fahrzeugs oder verschiedene andere Faktoren berücksichtigt werden.
-
25B stellt eine seitliche Ortsbestimmungskorrektur des Fahrzeugs basierend auf den kartierten Fahrspurmarkierungen in einem Straßennavigationsmodell dar. Wie vorstehend beschrieben, kann das Fahrzeug 200 einen Abstand 2530 zwischen dem Fahrzeug 200 und einer Fahrspurmarkierung 2510 unter Verwendung eines oder mehrerer durch das Fahrzeug 200 aufgenommener Bilder bestimmen. Das Fahrzeug 200 kann auch Zugang zu einem Straßennavigationsmodell besitzen, wie z. B. auf die dünn besetzte Karte 800, die eine kartierte Fahrspurmarkierung 2550 und eine Sollbewegungsbahn 2555 enthalten kann. Die kartierte Fahrspurmarkierung 2550 kann unter Verwendung der vorstehend beschriebenen Techniken modelliert sein, z. B. unter Verwendung Crowdsourcing-Ortsidentifizierern, die durch mehrere Fahrzeuge aufgenommen wurden. Die Sollbewegungsbahn 2555 kann auch unter Verwendung der verschiedenen vorstehend beschriebenen Techniken erzeugt werden. Das Fahrzeug 200 kann auch eine Längsposition 2520 entlang der Sollbewegungsbahn 2555 bestimmen oder schätzen, wie vorstehend in Bezug auf 25A beschrieben ist. Das Fahrzeug 200 kann dann einen erwarteten Abstand 2540 basierend auf einem seitlichen Abstand zwischen der Sollbewegungsbahn 2555 und der kartierten Fahrspurmarkierung 2550, die der Längsposition 2520 entspricht, bestimmen. Die seitliche Ortsbestimmung des Fahrzeugs 200 kann korrigiert oder angepasst werden, indem der tatsächliche Abstand 2530, der unter Verwendung der aufgenommenen Bilder gemessen wurde, mit dem erwarteten Abstand 2540 aus dem Modell verglichen wird.
-
Die 25C und 25D stellen Darstellungen bereit, die einem weiteren Beispiel für die Ortsbestimmung eines Trägerfahrzeugs während der Navigation basierend auf kartierten Orientierungspunkten/Objekten/Merkmalen in einer dünn besetzten Karte zugeordnet sind. 25C repräsentiert konzeptionell eine Folge von Bildern, die von einem Fahrzeug, das entlang eines Straßensegments 2560 navigiert, aufgenommen wurden. In diesem Beispiel enthält das Straßensegment 2560 einen geraden Abschnitt einer zweispurigen, geteilten Autobahn, der durch die Straßenränder 2561 und 2562 und die mittlere Fahrbahnmarkierung 2563 abgegrenzt ist. Wie gezeigt navigiert das Trägerfahrzeug entlang einer Spur 2564, die einer kartierten Sollbewegungsbahn 2565 zugeordnet ist. Somit sollte einer idealen Situation (und ohne Einflussfaktoren wie das Vorhandensein von Zielfahrzeugen oder Objekten auf der Fahrbahn usw.) das Trägerfahrzeug die kartierte Sollbewegungsbahn 2565 genau verfolgen, während es entlang der Fahrspur 2564 des Straßensegments 2560 navigiert. In der Realität kann das Trägerfahrzeug eine Drift erfahren, wenn es entlang der kartierten Sollbewegungsbahn 2565 navigiert. Für eine effektive und sichere Navigation sollte diese Drift innerhalb zulässiger Grenzen gehalten werden (z. B. +/- 10 cm seitliche Verschiebung von der Sollbewegungsbahn 2565 oder irgendein anderer geeigneter Schwellenwert). Um die Drift periodisch zu berücksichtigen und alle notwendigen Kurskorrekturen vorzunehmen, um sicherzustellen, dass das Trägerfahrzeug der Sollbewegungsbahn 2565 folgt, können die offenbarten Navigationssysteme in der Lage sein, unter Verwendung eines oder mehrerer kartierter Merkmale/Objekte, die in der dünn besetzten Karte enthalten sind, das Trägerfahrzeug entlang der Sollbewegungsbahn 2565 zu lokalisieren (z. B. eine seitliche und Längs-Position des Trägerfahrzeugs relativ zu der Sollbewegungsbahn 2565 zu bestimmen).
-
Als ein einfaches Beispiel zeigt 25C ein Geschwindigkeitsbegrenzungsschild 2566, wie es in fünf unterschiedlichen, nacheinander aufgenommenen Bildern erscheinen kann, während das Trägerfahrzeug entlang des Straßensegments 2560 navigiert. Beispielsweise kann zu einem ersten Zeitpunkt, t0, das Schild 2566 in einem aufgenommenen Bild in der Nähe des Horizonts erscheinen. Wenn sich das Trägerfahrzeug dem Schild 2566 nähert, erscheint das Schild 2566 in den später aufgenommenen Bildern zu den Zeitpunkten t1, t2, t3 und t4 an unterschiedlichen 2D-X-Y-Pixelorten der aufgenommenen Bilder. Beispielsweise wird sich das Schild 2566 in dem aufgenommenen Bildraum entlang der Kurve 2567 (z. B. einer Kurve, die sich in jedem der fünf erfassten Bildrahmen durch die Mitte des Schildes erstreckt) nach unten und nach rechts bewegen. Das Schild 2566 scheint auch an Größe zuzunehmen, wenn sich das Trägerfahrzeug nähert (d. h. es wird in den später aufgenommenen Bildern eine große Anzahl von Pixeln besetzen).
-
Diese Änderungen in den Bildraumrepräsentationen eines Objekts, wie z. B. des Schildes 2566, können zur Bestimmung einer lokalisierten Position des Trägerfahrzeugs entlang einer Sollbewegungsbahn genutzt werden. Wie in der vorliegenden Offenbarung beschrieben, kann beispielsweise jedes detektierbare Objekt oder Merkmal, wie z. B. ein semantisches Merkmal wie das Schild 2566 oder ein detektierbares nicht-semantisches Merkmal, durch ein oder mehrere Sammelfahrzeuge, die zuvor ein Straßensegment (z. B. das Straßensegment 2560) befahren haben, identifiziert werden. Ein Kartierungsserver kann die gesammelten Fahrtinformationen von mehreren Fahrzeugen sammeln, diese Informationen aggregieren und korrelieren und eine dünn besetzt Karte erzeugen, die beispielsweise eine Sollbewegungsbahn 2565 für die Fahrspur 2564 des Straßensegments 2560 enthält. Die dünn besetzte Karte kann auch den Ort des Schildes 2566 (zusammen mit Informationen zum Typ usw.) speichern. Während der Navigation (z. B. vor der Einfahrt in das Straßensegment 2560) kann ein Trägerfahrzeug mit einer Kartenkachel, die eine dünn besetzte Karte für das Straßensegment 2560 enthält, versorgt werden. Um in der Fahrspur 2564 des Straßensegments 2560 zu navigieren, kann das Trägerfahrzeug der kartierten Sollbewegungsbahn 2565 folgen.
-
Die kartierte Repräsentation des Schildes 2566 kann durch das Trägerfahrzeug verwendet werden, um sich selbst in Bezug auf die Sollbewegungsbahn zu lokalisieren. Beispielsweise nimmt eine Kamera auf dem Trägerfahrzeug ein Bild 2570 der Umgebung des Trägerfahrzeugs auf, und dieses aufgenommene Bild 2570 kann eine Bildrepräsentation des Schildes 2566 mit einer speziellen Größe und einem speziellen X-Y-Bildort enthalten, wie in 25D gezeigt ist. Diese Größe und der X-Y-Bildort können verwendet werden, um die Position des Trägerfahrzeugs relativ zu der Sollbewegungsbahn 2565 zu bestimmen. Beispielsweise kann ein Navigationsprozessor des Trägerfahrzeugs basierend auf der dünn besetzten Karte, die eine Repräsentation des Schildes 2566 enthält, bestimmen, dass als Reaktion auf die Fahrt des Trägerfahrzeugs entlang der Sollbewegungsbahn 2565 eine Repräsentation des Schildes 2566 in den aufgenommenen Bildern so erscheinen sollte, dass sich eine Mitte des Schildes 2566 (im Bildraum) entlang der Linie 2567 bewegt. Falls ein aufgenommenes Bild, wie z. B. das Bild 2570, zeigt, dass die Mitte (oder ein anderer Bezugspunkt) von der Linie 2567 (z. B. der erwarteten Bildraumbewegungsbahn) verschoben ist, kann das Navigationssystem des Trägerfahrzeugs dann bestimmen, dass es sich zum Zeitpunkt der Bildaufnahme nicht auf der Sollbewegungsbahn 2565 befand. Aus dem Bild kann der Navigationsprozessor jedoch eine geeignete Navigationskorrektur bestimmen, um das Trägerfahrzeug auf die Sollbewegungsbahn 2565 zurückzuführen. Falls die Analyse beispielsweise einen Bildort des Schildes 2566 zeigt, der im Bild um einen Abstand 2572 nach links von dem erwarteten Bildraumort auf der Linie 2567 verschoben ist, kann der Navigationsprozessor dann eine Richtungsänderung des Trägerfahrzeugs veranlassen (z. B. den Lenkwinkel der Räder ändern), um das Trägerfahrzeug um eine Strecke 2573 nach links zu bewegen. Auf diese Weise kann jedes aufgenommene Bild als Teil eines Rückkopplungsschleifenprozesses verwendet werden, so dass eine Differenz zwischen einer beobachteten Bildposition des Schildes 2566 und der erwarteten Bildbewegungsbahn 2567 minimiert werden kann, um sicherzustellen, dass das Trägerfahrzeug die Sollbewegungsbahn 2565 mit geringer oder keiner Abweichung verfolgt. Je mehr kartierte Objekte zur Verfügung stehen, desto häufiger kann natürlich die beschriebene Ortsbestimmungstechnik eingesetzt werden, was die driftbedingte Abweichungen von der Sollbewegungsbahn 2565 reduzieren oder eliminieren kann.
-
Der vorstehend beschriebene Prozess kann nützlich sein, um eine seitliche Orientierung oder Verschiebung des Trägerfahrzeugs relativ zu einer Sollbewegungsbahn zu detektieren. Die Ortsbestimmung des Trägerfahrzeugs in Bezug auf die Sollbewegungsbahn 2565 kann auch eine Bestimmung der Längsposition des Zielfahrzeugs entlang der Sollbewegungsbahn enthalten. Das aufgenommene Bild 2570 enthält beispielsweise eine Repräsentation des Schildes 2566 mit einer speziellen Bildgröße (z. B. 2D-X-Y-Pixelfläche). Diese Größe kann mit einer erwarteten Bildgröße des kartierten Schildes 2566, wenn es sich entlang der Linie 2567 durch den Bildraum bewegt (z. B. wenn die Größe des Schildes progressiv zunimmt, wie in 25C gezeigt ist), verglichen werden. Basierend auf der Bildgröße des Schildes 2566 in dem Bild 2570 und basierend auf der erwarteten Größenprogression in dem Bildraum in Bezug auf die kartierte Sollbewegungsbahn 2565 kann das Trägerfahrzeug seine Längsposition (zum Zeitpunkt der Aufnahme des Bildes 2570) in Bezug auf die Sollbewegungsbahn 2565 bestimmen. Diese Längsposition in Verbindung mit irgendeiner seitlichen Verschiebung relativ zu der Sollbewegungsbahn 2565, wie vorstehend beschrieben, ermöglicht eine vollständige Ortsbestimmung des Trägerfahrzeugs in Bezug auf die Sollbewegungsbahn 2565, während das Trägerfahrzeug entlang der Straße 2560 navigiert.
-
Die 25C und 25D stellen nur ein Beispiel für die offenbarte Ortsbestimmungstechnik unter Verwendung eines einzelnen kartierten Objekts und einer einzelnen Sollbewegungsbahn bereit. In anderen Beispielen können viel mehr Sollbewegungsbahnen vorhanden sein (z. B. eine Sollbewegungsbahn für jede nutzbare Spur einer mehrspurigen Autobahn, einer städtischen Straße, einer komplexen Kreuzung usw.), und es können viel mehr Karten für die Ortsbestimmung verfügbar sein. Beispielsweise kann eine dünn besetzte Karte, die für eine städtische Umgebung repräsentativ ist, viele Objekte pro Meter, die zur Ortsbestimmung zur Verfügung stehen, enthalten.
-
26A ist ein Ablaufplan, der einen beispielhaften Prozess 2600A zum Kartieren einer Fahrspurmarkierung zum Gebrauch in der autonomen Fahrzeugnavigation konsistent mit offenbarten Ausführungsformen zeigt. In Schritt 2610 kann der Prozess 2600A das Empfangen von zwei oder mehr Ortsidentifizierern, die einer detektierten Fahrspurmarkierung zugeordnet sind, enthalten. Der Schritt 2610 kann beispielsweise durch den Server 1230 oder einen oder mehrere dem Server zugeordnete Prozessoren ausgeführt werden. Die Ortsidentifizierer können Orte in Koordinaten in der realen Welt von Punkten, die der detektierten Fahrspurmarkierung zugeordnet sind, enthalten, wie vorstehend in Bezug auf 24E beschrieben. In einigen Ausführungsformen können die Ortsidentifizierer auch andere Daten, wie z. B. zusätzliche Informationen über das Straßensegment oder die Fahrspurmarkierung, beinhalten. In Schritt 2610 können auch zusätzliche Daten empfangen werden, z. B. Beschleunigungsmesserdaten, Geschwindigkeitsdaten, Orientierungspunktdaten, Straßengeometrie- oder Profildaten, Fahrzeugpositionsdaten, Eigenbewegungsdaten oder verschiedene andere Formen von Daten, die vorstehend beschrieben sind. Die Ortsidentifizierer können durch ein Fahrzeug, wie z. B. die Fahrzeuge 1205, 1210, 1215, 1220 und 1225, basierend auf durch das Fahrzeug aufgenommenen Bildern erzeugt werden. Die Identifizierer können beispielsweise basierend auf der Erfassung wenigstens eines Bildes, das für eine Umgebung des Trägerfahrzeugs repräsentativ ist, von einer dem Trägerfahrzeug zugeordneten Kamera, der Analyse des wenigstens einen Bildes zum Detektieren der Fahrspurmarkierung in der Umgebung des Trägerfahrzeugs und der Analyse des wenigstens einen Bildes zum Bestimmen einer Position der detektierten Fahrspurmarkierung in Bezug auf einen dem Trägerfahrzeug zugeordneten Ort bestimmt werden. Wie vorstehend beschrieben, kann die Fahrspurmarkierung eine Vielzahl unterschiedlicher Markierungstypen umfassen, und die Ortsidentifizierer können einer Vielzahl von Punkten relativ zu der Fahrspurmarkierung entsprechen. Wenn beispielsweise die detektierte Fahrspurmarkierung Teil einer unterbrochenen Linie ist, die eine Fahrspurbegrenzung markiert, können die Punkte den detektierten Ecken der Fahrspurmarkierung entsprechen. Wenn die detektierte Fahrspurmarkierung Teil einer durchgezogenen Linie ist, die eine Fahrspurbegrenzung markiert, können die Punkte einem detektierten Rand der Fahrspurmarkierung entsprechen, mit verschiedenen Abständen wie vorstehend beschrieben. In einigen Ausführungsformen können die Punkte einer Mittellinie der detektierten Fahrspurmarkierung entsprechen, wie in 24C gezeigt ist, oder sie können einem Scheitelpunkt zwischen zwei sich kreuzenden Fahrspurmarkierungen und wenigstens zwei weiteren Punkten, die sich kreuzenden Fahrspurmarkierungen zugeordnet sind, entsprechen, wie in 24D gezeigt ist.
-
In Schritt 2612 kann der Prozess 2600A das Zuordnen der detektierten Fahrspurmarkierung zu einem entsprechenden Straßensegment enthalten. Beispielsweise kann der Server 1230 die Koordinaten der realen Welt oder andere in Schritt 2610 empfangene Informationen analysieren und die Koordinaten oder anderen Informationen mit den in einem Straßennavigationsmodell für autonome Fahrzeuge gespeicherten Ortsinformationen vergleichen. Der Server 1230 kann ein Straßensegment in dem Modell bestimmen, das dem Straßensegment der realen Welt, auf dem die Fahrspurmarkierung detektiert wurde, entspricht.
-
In Schritt 2614 kann der Prozess 2600A das Aktualisieren eines Straßennavigationsmodells für autonome Fahrzeuge in Bezug auf das entsprechende Straßensegment basierend auf den zwei oder mehr Ortsidentifizierern, die der detektierten Fahrspurmarkierung zugeordnet sind, enthalten. Das autonome Straßennavigationsmodell kann zum Beispiel eine dünn besetzte Karte 800 sein, und der Server 1230 kann die dünn besetzte Karte aktualisieren, um eine kartierte Fahrspurmarkierung in das Modell aufzunehmen oder anzupassen. Der Server 1230 kann das Modell basierend auf verschiedenen Verfahren oder Prozessen, die vorstehend in Bezug auf 24E beschrieben sind, aktualisieren. In einigen Ausführungsformen kann das Aktualisieren des Straßennavigationsmodells für autonome Fahrzeuge das Speichern eines oder mehrerer Indikatoren für die Position der detektierten Fahrspurmarkierung in Koordinaten der realen Welt enthalten. Das Straßennavigationsmodell für autonome Fahrzeuge kann auch wenigstens eine Sollbewegungsbahn, der ein Fahrzeug entlang des entsprechenden Straßensegments folgen soll, enthalten, wie in 24E gezeigt ist.
-
In Schritt 2616 kann der Prozess 2600A das Verteilen des aktualisierten Straßennavigationsmodells für autonome Fahrzeuge an mehrere autonome Fahrzeuge enthalten. Beispielsweise kann der Server 1230 das aktualisierte Straßennavigationsmodell für autonome Fahrzeuge an die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 verteilen, die das Modell zur Navigation verwenden können. Das Straßennavigationsmodell für autonome Fahrzeuge kann über ein oder mehrere Netze (z. B. über ein Mobilfunknetz und/oder das Internet usw.) über drahtlose Kommunikationswege 1235 verteilt werden, wie in 12 gezeigt ist.
-
In einigen Ausführungsformen können die Fahrspurmarkierungen unter Verwendung von Daten, die von mehreren Fahrzeugen empfangen wurden, kartiert werden, wie z. B. durch eine Crowdsourcing-Technik, wie vorstehend in Bezug auf 24E beschrieben. Beispielsweise kann der Prozess 2600A das Empfangen einer ersten Kommunikation, die Ortsidentifizierer enthält, die einer detektierten Fahrspurmarkierung zugeordnet sind, von einem ersten Trägerfahrzeug und das Empfangen einer zweiten Kommunikation, die zusätzliche Ortsidentifizierer enthält, die der detektierten Fahrspurmarkierung zugeordnet sind, von einem zweiten Trägerfahrzeug enthalten. Die zweite Kommunikation kann beispielsweise von einem nachfolgenden Fahrzeug, das auf demselben Straßensegment fährt, oder von demselben Fahrzeug auf einer späteren Fahrt auf demselben Straßensegment empfangen werden. Der Prozess 2600A kann ferner das Verfeinern einer Bestimmung wenigstens einer Position, die der detektierten Fahrspurmarkierung zugeordnet ist, basierend auf den in der ersten Kommunikation empfangenen Ortsidentifizierern und basierend auf den in der zweiten Kommunikation empfangenen zusätzlichen Ortsidentifizierern enthalten. Das kann das Verwenden eines Mittelwerts aus mehreren Ortsidentifizierern und/oder das Herausfiltern von „Geister“-Identifizierern, die möglicherweise nicht die Position in der realen Welt der Fahrspurmarkierung widerspiegeln, enthalten.
-
26B ist ein Ablaufplan, der einen beispielhaften Prozess 2600B für das autonome Navigieren eines Trägerfahrzeugs entlang eines Straßensegments unter Verwendung von kartierten Fahrspurmarkierungen zeigt. Der Prozess 2600B kann beispielsweise durch die Verarbeitungseinheit 110 des autonomen Fahrzeugs 200 ausgeführt werden. In Schritt 2620 kann der Prozess 2600B das Empfangen eines Straßennavigationsmodells für autonome Fahrzeuge von einem serverbasierten System enthalten. In einigen Ausführungsformen kann das Straßennavigationsmodell für autonome Fahrzeuge eine Sollbewegungsbahn für das Trägerfahrzeug entlang des Straßensegments und Ortsidentifizierer, die einer oder den mehreren Fahrspurmarkierungen zugeordnet sind, die dem Straßensegment zugeordnet sind, enthalten. Beispielsweise kann das Fahrzeug 200 die dünn besetzte Karte 800 oder ein anderes Straßennavigationsmodell, das unter Verwendung des Prozesses 2600A entwickelt wurde, empfangen. In einigen Ausführungsformen kann die Sollbewegungsbahn als dreidimensionaler Polynomzug dargestellt sein, wie in 9B gezeigt ist. Wie vorstehend in Bezug auf die 24A-F beschrieben, können die Ortsidentifizierer die Orte in Koordinaten der realen Welt von Punkten, die der Fahrspurmarkierung zugeordnet sind (z. B. Eckpunkte einer unterbrochenen Fahrspurmarkierung, Randpunkte einer durchgezogenen Fahrspurmarkierung, einen Scheitelpunkt zwischen zwei sich kreuzenden Fahrspurmarkierungen und andere Punkte, die den sich kreuzenden Fahrspurmarkierungen zugeordnet sind, eine der Fahrspurmarkierung zugeordnete Mittellinie usw.) enthalten.
-
In Schritt 2621 kann der Prozess 2600B das Empfangen wenigstens eines Bildes, das für eine Umgebung des Fahrzeugs repräsentativ ist, enthalten. Das Bild kann von einer Bildaufnahmevorrichtung des Fahrzeugs, wie z. B. durch die in der Bilderfassungseinheit 120 enthaltenen Bildaufnahmevorrichtungen 122 und 124 empfangen werden. Das Bild kann ein Bild von einer oder mehreren Fahrspurmarkierungen enthalten, ähnlich dem vorstehend beschriebenen Bild 2500.
-
In Schritt 2622 kann der Prozess 2600B das Bestimmen einer Längsposition des Trägerfahrzeugs entlang der Sollbewegungsbahn enthalten. Wie vorstehend in Bezug auf 25A beschrieben, kann dies basierend auf anderen Informationen in dem aufgenommenen Bild (z. B. Landmarken usw.) oder durch Koppelnavigation des Fahrzeugs zwischen detektierten Orientierungspunkten erfolgen.
-
In Schritt 2623 kann der Prozess 2600B das Bestimmen eines erwarteten seitlichen Abstands zu der Fahrspurmarkierung basierend der bestimmten Längsposition des Trägerfahrzeugs entlang der Sollbewegungsbahn und basierend auf zwei oder mehr Ortsidentifizierern, die der wenigstens einen Fahrspurmarkierung zugeordnet sind, enthalten. Beispielsweise kann das Fahrzeug 200 die dünn besetzte Karte 800 verwenden, um einen erwarteten seitlichen Abstand zu der Fahrspurmarkierung zu bestimmen. Wie in 25B gezeigt ist, kann in Schritt 2622 die Längsposition 2520 entlang einer Sollbewegungsbahn 2555 bestimmt werden. Unter Verwendung der dünn besetzten Karte 800 kann das Fahrzeug 200 einen erwarteten Abstand 2540 zu der kartierten Fahrspurmarkierung 2550, der der Längsposition 2520 entspricht, bestimmen.
-
In Schritt 2624 kann der Prozess 2600B das Analysieren des wenigstens einen Bildes, um die wenigstens eine Fahrspurmarkierung zu identifizieren, enthalten. Das Fahrzeug 200 kann beispielsweise verschiedene Bilderkennungstechniken oder -algorithmen verwenden, um die Fahrspurmarkierung in dem Bild zu identifizieren, wie vorstehend beschrieben. Beispielsweise kann die Fahrspurmarkierung 2510 durch Bildanalyse des Bildes 2500 detektiert werden, wie in 25A gezeigt ist.
-
In Schritt 2625 kann der Prozess 2600B das Bestimmen eines tatsächlichen seitlichen Abstands zu der wenigstens einen Fahrspurmarkierung basierend auf der Analyse des wenigstens einen Bildes enthalten. Beispielsweise kann das Fahrzeug einen Abstand 2530 bestimmen, wie in 25A gezeigt ist, der den tatsächlichen Abstand zwischen dem Fahrzeug und der Fahrspurmarkierung 2510 repräsentiert. Der Kamerawinkel, die Geschwindigkeit des Fahrzeugs, die Breite des Fahrzeugs, die Position der Kamera relativ zu dem Fahrzeug oder verschiedene andere Faktoren können bei der Bestimmung des Abstands 2530 berücksichtigt werden.
-
In Schritt 2626 kann der Prozess 2600B das Bestimmen einer autonomen Lenkaktion für das Trägerfahrzeug basierend auf einer Differenz zwischen dem erwarteten seitlichen Abstand zu der wenigstens einen Fahrspurmarkierung und dem bestimmten tatsächlichen seitlichen Abstand zu der wenigstens einen Fahrspurmarkierung enthalten. Beispielsweise kann das Fahrzeug 200, wie vorstehend mit Bezug auf 25B beschrieben, den tatsächlichen Abstand 2530 mit einem erwarteten Abstand 2540 vergleichen. Die Differenz zwischen dem tatsächlichen und dem erwarteten Abstand kann einen Fehler (und dessen Größe) zwischen der tatsächlichen Position des Fahrzeugs und der durch das Fahrzeug zu verfolgenden Sollbewegungsbahn angeben. Dementsprechend kann das Fahrzeug basierend auf der Differenz eine autonome Lenkaktion oder eine andere autonome Aktion bestimmen. Falls beispielsweise der tatsächliche Abstand 2530 kleiner ist als der erwartete Abstand 2540, wie in 25B gezeigt ist, kann das Fahrzeug eine autonome Lenkaktion bestimmen, um das Fahrzeug nach links, weg von der Fahrspurmarkierung 2510, zu leiten. Somit kann die Position des Fahrzeugs relativ zu der Sollbewegungsbahn korrigiert werden. Der Prozess 2600B kann beispielsweise dazu verwendet werden, die Navigation des Fahrzeugs zwischen Orientierungspunkten zu verbessern.
-
Die Prozesse 2600A und 2600B stellen nur Beispiele für Techniken bereit, die zum Navigieren eines Trägerfahrzeugs unter Verwendung der offenbarten dünn besetzten Karten verwendet werden können. In anderen Beispielen können auch Prozesse eingesetzt werden, die mit den mit Bezug auf die 25C und 25D beschriebenen konsistent sind.
-
Eigenbewegungskorrektur der LIDAR-Ausgabe
-
Wie an anderer Stelle in dieser Offenbarung beschrieben, kann ein Fahrzeug oder ein Fahrer ein Fahrzeug entlang eines Straßensegments in der Umgebung navigieren. Das Fahrzeug kann verschiedene Arten von Informationen über die Straße sammeln. Beispielsweise kann das Fahrzeug mit einem LIDAR-System, um LIDAR-Reflexionen von einem oder mehreren Objekten aus seiner Umgebung zu sammeln, und/oder mit einer oder mehreren Kameras, um Bilder aus der Umgebung aufzunehmen, ausgerüstet sein. Wegen der Eigenbewegung des Trägerfahrzeugs kann sich ein unbewegliches Objekt (z. B. ein Lichtmast) im Sichtfeld des LIDAR-Systems bewegen, was in den gesammelten Daten (z. B. einer Punktwolke, die basierend auf Reflexionen der Laseremissionen durch das Objekt erzeugt wird) als bewegliches Objekt erscheinen kann, selbst wenn sich das Objekt selbst nicht bewegt. Somit kann es in einigen Fällen schwierig sein, in komplexen, unübersichtlichen Szenen kleine und sich langsam bewegende Objekte zu detektieren. Außerdem kann ein herkömmliches LIDAR-System kleinere Objekte fälschlicherweise als sich bewegende Objekte identifizieren. Ähnlich kann ein herkömmliches LIDAR-System ein sich bewegendes Objekt (z. B. ein Zielfahrzeug), das sich zusammen mit dem Trägerfahrzeug bewegt, fälschlicherweise als ein unbewegliches Objekt identifizieren. Deshalb kann es wünschenswert sein, die Möglichkeit einer falschen Identifizierung eines unbewegten Objekts als bewegtes Objekt (oder umgekehrt) zu verringern oder zu eliminieren. Diese Offenbarung beschreibt Systeme und Verfahren, die LIDAR-Punkte über zwei oder mehr Rahmen hinweg korrelieren und die durch die Eigenbewegung des Trägerfahrzeugs verursachten Tiefeneffekte entfernen können. Nachdem die durch die Eigenbewegung verursachten Effekte entfernt worden sind, können statische Objekte (z. B. unbewegliche Hintergrundobjekte) keine Geschwindigkeit zeigen (d. h. ihre Geschwindigkeit ist gleich Null), und sich bewegende Objekte können als diejenigen identifiziert werden, die Punkte mit einer Geschwindigkeit größer als Null aufweisen.
-
Diese Offenbarung stellt beispielsweise ein System bereit, das wenigstens einen Indikator für die Eigenbewegung des Trägerfahrzeugs bestimmen kann. Die Eigenbewegung des Trägerfahrzeugs kann sich auf irgendeine Umgebungsverschiebung des Trägerfahrzeugs in Bezug auf einen unbeweglichen Bezugspunkt oder ein unbewegliches Objekt beziehen. Beispielsweise kann, wie an anderer Stelle in dieser Offenbarung beschrieben ist, die Eigenbewegung der Kamera (und damit der Fahrzeugkarosserie) basierend auf einer Analyse des optischen Flusses der aufgenommenen Bilder geschätzt werden. Eine Analyse des optischen Flusses einer Bildfolge identifiziert die Bewegung von Pixeln aus der Bildfolge und bestimmt basierend auf der identifizierten Bewegung die Bewegungen des Fahrzeugs. Das System kann auch konfiguriert sein, von einem LIDAR-System, das dem Trägerfahrzeug zugeordnet ist, und basierend auf einer ersten LIDAR-Abtastung eines Sichtfeldes des LIDAR-Systems eine erste Punktwolke beispielsweise zu einem ersten Zeitpunkt zu empfangen. Die erste Punktwolke kann eine erste Repräsentation wenigstens eines Abschnitts eines Objekts enthalten. Das System kann ferner konfiguriert sein, von dem LIDAR-System und basierend auf einer zweiten LIDAR-Abtastung des Sichtfelds des LIDAR-Systems eine zweite Punktwolke beispielsweise zu einem zweiten Zeitpunkt zu empfangen. Die zweite Punktwolke kann eine zweite Repräsentation des wenigstens einen Abschnitts des Objekts enthalten. Das System kann außerdem eine Geschwindigkeit des Objekts basierend auf dem wenigstens einen Indikator für die Eigenbewegung des Trägerfahrzeugs und basierend auf einem Vergleich der ersten Punktwolke, die die erste Repräsentation des wenigstens einen Abschnitts des Objekts enthält, und der zweiten Punktwolke, die die zweite Repräsentation des wenigstens einen Abschnitts des Objekts enthält, bestimmen.
-
27 stellt ein beispielhaftes System 2700 zum Detektieren eines oder mehrerer Objekte in der Umgebung des Trägerfahrzeugs konsistent mit offenbarten Ausführungsformen dar. Wie in 27 dargestellt, kann das System 2700 einen Server 2710, ein oder mehrere Fahrzeuge 2720 (z. B. Fahrzeug 2720a, Fahrzeug 2720b, ..., Fahrzeug 2720n), ein Netz 2730 und eine Datenbank 2740 enthalten.
-
Ein Fahrzeug 2720 kann Informationen aus seiner Umgebung sammeln und die gesammelten Informationen beispielsweise über das Netz 2730 an den Server 2710 senden. Beispielsweise kann das Fahrzeug 2720 einen oder mehrere Sensoren enthalten, die konfiguriert sind, Daten und Informationen aus seiner Umgebung zu sammeln. Das Fahrzeug 2720 kann die Daten und Informationen (oder die daraus abgeleiteten Daten) an den Server 2710 senden. Als Beispiel kann das Fahrzeug 2720 einen Bildsensor (z. B. eine Kamera) enthalten, der konfiguriert ist, ein oder mehrere Bilder seiner Umgebung aufzunehmen. Als ein weiteres Beispiel kann das Fahrzeug 2720 ein LIDAR-System enthalten, das konfiguriert ist, LIDAR-Reflexionsinformationen innerhalb eines 360-Grad-Sichtfelds um das Fahrzeug 2720 oder aus einem beliebigen Teilsegment des 360-Grad-Sichtfelds (z. B. eines oder mehrerer FOVs, die jeweils weniger als 360 Grad repräsentieren) zu sammeln. In einigen Ausführungsformen kann das Fahrzeug 2720 ein LIDAR-System und eine oder mehrere Kameras enthalten.
-
Der Server 2710 kann Daten und/oder Informationen, die von einem oder mehreren Fahrzeugen 2720 empfangen werden, verarbeiten. Beispielsweise kann der Server 2710 von einem Fahrzeug 2720 Informationen über ein Objekt (z. B. den Ort des Objekts) empfangen. Server 2710 kann eine Karte aktualisieren, um das Objekt der Karte hinzuzufügen (oder das Objekt aus der Karte zu entfernen). In einigen Ausführungsformen kann der Server 2710 die aktualisierte Karte (oder wenigstens einen Abschnitt davon) an ein oder mehrere Fahrzeuge 2720 senden.
-
Obwohl 27 einen Server 2710 zeigt, wird ein Fachmann verstehen, dass das System 300 einen oder mehrere Server 2710 enthalten kann, die einzeln oder in Kombination die in dieser Anmeldung offenbarten Funktionen des Servers 2710 ausführen. Beispielsweise kann Server 2710 eine Cloud-Server-Gruppe bilden, die zwei oder mehr Server umfasst, die die hier offenbarten Funktionen ausführen. Der Begriff „Cloud-Server“ bezieht sich auf eine Computerplattform, die Dienste über ein Netz, wie z. B. das Internet, bereitstellt. In dieser Beispielkonfiguration kann der Server 2710 virtuelle Maschinen verwenden, die nicht notwendigerweise einer einzelnen Hardware entsprechen. Beispielsweise können Rechen- und/oder Speicherkapazitäten implementiert werden, indem geeignete Abschnitte der Rechen-/Speicherleistung aus einer skalierbaren Quelle, wie z. B. einem Datenzentrum oder einer verteilten Rechenumgebung, zugewiesen werden. In einem Beispiel kann der Server 2710 die hier beschriebenen Verfahren unter Verwendung kundenspezifischer, fest verdrahteter Logik, einer oder mehrerer anwendungsspezifischer integrierter Schaltungen (ASICs) oder feldprogrammierbarer Gatter-Arrays (FPGAs), von Firmware und/oder Programmlogik implementieren, die in Kombination mit dem Computersystem bewirken, dass der Server 2710 eine Spezialmaschine ist.
-
Das Netz 2730 kann konfiguriert sein, Kommunikation zwischen den Komponenten des Systems 2700 zu unterstützen. Das Netz 2730 kann drahtgebundene und drahtlose Kommunikationsnetze enthalten, wie z. B. ein lokales Netz (LAN), ein Weitbereichsnetz (WAN), ein Computernetz, ein Drahtlosnetz, ein Telekommunikationsnetz oder dergleichen oder eine Kombination daraus.
-
Die Datenbank 2740 kann konfiguriert sein, Informationen und Daten für eine oder mehrere Komponenten des Systems 2700 zu speichern. Beispielsweise kann die Datenbank 2740 die Daten (z. B. Kartendaten) für den Server 2710 speichern. Ein oder mehrere Fahrzeuge 2720 können die in der Datenbank 2740 gespeicherten Kartendaten beispielsweise über das Netz 2730 erhalten.
-
28 ist ein Blockdiagramm eines beispielhaften Servers 2710 konsistent mit den offenbarten Ausführungsformen. Wie in 28 dargestellt, kann der Server 2710 wenigstens einen Prozessor (z. B. den Prozessor 2801), einen Speicher 2802, wenigstens eine Speichervorrichtung (z. B. die Speichervorrichtung 2803), einen Kommunikationsanschluss 2804 und eine I/O-Vorrichtung 2805 enthalten.
-
Der Prozessor 2801 kann konfiguriert sein, eine oder mehrere der in dieser Offenbarung beschriebenen Funktionen des Servers 2710 auszuführen. Der Prozessor 2801 kann einen Mikroprozessor, Vorprozessoren (z. B. einen Bildvorprozessor), eine Grafikverarbeitungseinheit (GPU), eine zentrale Verarbeitungseinheit (CPU), Unterstützungsschaltungen, digitale Signalprozessoren, integrierte Schaltungen, Speicher oder irgendwelche anderen Typen von Vorrichtungen, die zum Ablaufen von Anwendungen oder Ausführen einer Berechnungsaufgabe geeignet sind, enthalten. In einigen Ausführungsformen kann der Prozessor 2801 irgendeine Art von Einzel- oder Mehrkernprozessor, Mikrosteuereinheiten für mobile Vorrichtungen, zentrale Verarbeitungseinheit usw. enthalten. Verschiedene Verarbeitungsvorrichtungen können verwendet werden, die beispielsweise Prozessoren von Herstellern wie Intel®, AMD® usw. oder GPUs von Herstellern wie NVIDIA®, ATI® usw. enthalten und verschiedene Architekturen (z. B. x86-Prozessor, ARME usw.) enthalten können. Jede der hier offenbarten Verarbeitungsvorrichtungen kann konfiguriert sein, spezielle Funktionen auszuführen. Das Konfigurieren einer Verarbeitungsvorrichtung, wie z. B. eines der beschriebenen Prozessoren oder einer anderen Steuereinheit oder eines anderen Mikroprozessors, zum Ausführen spezieller Funktionen kann das Programmieren von computerausführbaren Anweisungen und das Verfügbarmachen dieser Anweisungen für die Verarbeitungsvorrichtung zur Ausführung während des Betriebs der Verarbeitungsvorrichtung enthalten. In einigen Ausführungsformen kann das Konfigurieren einer Verarbeitungsvorrichtung direktes Programmieren der Verarbeitungsvorrichtung mit Architekturanweisungen enthalten. Beispielsweise können Verarbeitungsvorrichtungen wie z. B. feldprogrammierbare Gatter-Arrays (FPGAs), anwendungsspezifische integrierte Schaltungen (ASICs) und dergleichen unter Verwendung beispielsweise einer oder mehrerer Hardwarebeschreibungssprachen (HDLs) konfiguriert werden.
-
Der Server 2710 kann außerdem einen Speicher 2802 enthalten, der Anweisungen für verschiedene Komponenten des Servers 2710 speichern kann. Beispielsweise kann der Speicher 2802 Anweisungen speichern, die dann, wenn sie durch den Prozessor 2801 ausgeführt werden, konfiguriert sein können, den Prozessor 2801 zu veranlassen, eine oder mehrere hier beschriebene Funktionen auszuführen. Der Speicher 2802 kann irgendeine Anzahl von Direktzugriffsspeichern, Festwertspeichern, Flash-Speichern, Plattenlaufwerken, optischen Speichern, Bandspeichern, herausnehmbaren Speichern und anderen Speichertypen enthalten. In einem Fall kann der Speicher 2802 von dem Prozessor 2801 getrennt sein. In einem anderen Fall kann der Speicher 2802 in den Prozessor 2801 integriert sein.
-
Die Speichervorrichtung 2803 kann konfiguriert sein, verschiedene Daten und Informationen für eine oder mehrere Komponenten des Servers 2710 zu speichern. Beispielsweise kann die Speichervorrichtung 2803 Kartendaten speichern. Der Server 2710 kann die Kartendaten basierend auf den von einem oder mehreren Fahrzeugen 2720 empfangenen Daten und/oder Informationen aktualisieren. Der Server 2710 kann auch die aktualisierten Kartendaten in die Speichervorrichtung 2803 speichern. Die Speichervorrichtung 2803 kann eine oder mehrere Festplatten, Bänder, ein oder mehrere Festkörperlaufwerke, irgendeine Vorrichtung, die zum Schreiben und Lesen von Daten geeignet ist, oder dergleichen oder eine Kombination davon enthalten.
-
Der Kommunikationsanschluss 2804 kann konfiguriert sein, die Datenkommunikation zwischen dem Server 2710 und einer oder mehreren Komponenten des Systems 2700 über das Netz 2730 zu unterstützen. Beispielsweise kann der Kommunikationsanschluss 2804 konfiguriert sein, Daten von einer oder mehreren Komponenten des Systems 100 über ein oder mehrere öffentliche oder private Netze, die das Internet, ein Intranet, ein WAN (Weitbereichsnetz), ein MAN („Metropolitan-Area Network“), ein Drahtlosnetz, das mit den IEEE 802. 11a/b/g/n-Standards kompatibel ist, eine Standleitung oder dergleichen enthalten, zu empfangen und an sie zu senden.
-
Die I/O-Vorrichtung 2805 kann konfiguriert sein, Eingaben von dem Benutzer des Servers 2710 zu empfangen, und eine oder mehrere Komponenten des Servers 2710 können in Reaktion auf die empfangene Eingaben eine oder mehrere Funktionen ausführen. In einigen Ausführungsformen kann die I/O-Vorrichtung 2805 eine Schnittstelle enthalten, die auf einem berührungssensitiven Bildschirm angezeigt wird. Die I/O-Vorrichtung 2805 kann auch konfiguriert sein, Informationen und/oder Daten an den Benutzer auszugeben. Beispielsweise kann die I/O-Vorrichtung eine Anzeigevorrichtung enthalten, die konfiguriert ist, Kartendaten anzuzeigen.
-
29 ist ein Blockdiagramm eines beispielhaften Fahrzeugs 2720 konsistent mit den offenbarten Ausführungsformen. Wie in 29 dargestellt, kann das Fahrzeug 2720 wenigstens einen Prozessor (z. B. den Prozessor 2901), einen Speicher 2902, wenigstens eine Speichervorrichtung (z. B. die Speichervorrichtung 2903), einen Kommunikationsanschluss 2904, eine I/O-Vorrichtung 2905, einen oder mehrere Sensoren 2906, ein LIDAR-System 2907 und ein Navigationssystem 2908 enthalten.
-
Der Prozessor 2901 kann konfiguriert sein, eine oder mehrere der in dieser Offenbarung beschriebenen Funktionen des Fahrzeugs 2720 auszuführen. Der Prozessor 2901 kann einen Mikroprozessor, Vorprozessoren (z. B. einen Bildvorprozessor), eine Grafikverarbeitungseinheit (GPU), eine zentrale Verarbeitungseinheit (CPU), Unterstützungsschaltungen, digitale Signalprozessoren, integrierte Schaltungen, Speicher oder irgendwelche anderen Typen von Vorrichtungen, die zum Ablaufen von Anwendungen oder Ausführen einer Berechnungsaufgabe geeignet sind, enthalten. In einigen Ausführungsformen kann der Prozessor 2901 irgendeine Art von Einzel- oder Mehrkernprozessor, Mikrosteuereinheiten für mobile Vorrichtungen, einer zentralen Verarbeitungseinheit usw. enthalten. Verschiedene Verarbeitungsvorrichtungen können verwendet werden, die beispielsweise Prozessoren von Herstellern wie Intel®, AMD® usw. oder GPUs von Herstellern wie NVIDIA®, ATI® usw. enthalten und verschiedene Architekturen (z. B. x86-Prozessor, ARME usw.) enthalten können. Jede der hier offenbarten Verarbeitungsvorrichtungen kann konfiguriert sein, spezielle Funktionen auszuführen. Das Konfigurieren einer Verarbeitungsvorrichtung, wie z. B. eines der beschriebenen Prozessoren oder einer anderen Steuereinheit oder eines anderen Mikroprozessors, zum Ausführen spezieller Funktionen kann das Programmieren von computerausführbaren Anweisungen und das Verfügbarmachen dieser Anweisungen für die Verarbeitungsvorrichtung zur Ausführung während des Betriebs der Verarbeitungsvorrichtung enthalten. In einigen Ausführungsformen kann das Konfigurieren einer Verarbeitungsvorrichtung direktes Programmieren der Verarbeitungsvorrichtung mit Architekturanweisungen enthalten. Beispielsweise können Verarbeitungsvorrichtungen wie z. B. feldprogrammierbare Gatter-Arrays (FPGAs), anwendungsspezifische integrierte Schaltungen (ASICs) und dergleichen unter Verwendung beispielsweise einer oder mehrerer Hardwarebeschreibungssprachen (HDLs) konfiguriert werden.
-
Der Fahrzeug 2720 kann außerdem einen Speicher 2902 enthalten, der Anweisungen für verschiedene Komponenten des Servers 2710 speichern kann. Beispielsweise kann der Speicher 2902 Anweisungen speichern, die dann, wenn sie durch den Prozessor 2901 ausgeführt werden, konfiguriert sein können, den Prozessor 2901 zu veranlassen, eine oder mehrere hier beschriebene Funktionen auszuführen. Der Speicher 2902 kann irgendeine Anzahl von Direktzugriffsspeichern, Festwertspeichern, Flash-Speichern, Plattenlaufwerken, optischen Speichern, Bandspeichern, herausnehmbaren Speichern und anderen Speichertypen enthalten. In einem Fall kann der Speicher 2902 von dem Prozessor 2901 getrennt sein. In einem anderen Fall kann der Speicher 2902 in den Prozessor 2901 integriert sein. In einigen Ausführungsformen kann der Speicher 2902 Software zum Ausführen einer oder mehrerer Berechnungsaufgaben sowie ein trainiertes System, wie z. B. ein neuronales Netz oder ein tiefes neuronales Netz, enthalten.
-
Die Speichervorrichtung 2903 kann konfiguriert sein, verschiedene Daten und Informationen für eine oder mehrere Komponenten des Fahrzeugs 2720 zu speichern. Die Speichervorrichtung 2903 kann eine oder mehrere Festplatten, Bänder, ein oder mehrere Festkörperlaufwerke, irgendeine Vorrichtung, die zum Schreiben und Lesen von Daten geeignet ist, oder dergleichen oder eine Kombination davon enthalten.
-
Der Kommunikationsanschluss 2904 kann konfiguriert sein, die Datenkommunikation zwischen dem Fahrzeug 2720 und einer oder mehreren Komponenten des Systems 2700 über das Netz 2730 zu unterstützen. Beispielsweise kann der Kommunikationsanschluss 2904 konfiguriert sein, Daten von dem Server 2710 über ein oder mehrere öffentliche oder private Netze, die das Internet, ein Intranet, ein WAN (Weitbereichsnetz), ein MAN („Metropolitan-Area Network“), ein Drahtlosnetz, das mit den IEEE 802.1 1a/b/g/n-Standards kompatibel ist, eine Standleitung oder dergleichen enthalten, zu empfangen und an ihn zu senden.
-
Die I/O-Vorrichtung 2905 kann konfiguriert sein, Eingaben von dem Benutzer des Servers 2710 zu empfangen, und eine oder mehrere Komponenten des Servers 2710 können in Reaktion auf die empfangene Eingaben eine oder mehrere Funktionen ausführen. In einigen Ausführungsformen kann die I/O-Vorrichtung 2905 eine Schnittstelle enthalten, die auf einem berührungssensitiven Bildschirm angezeigt wird. Die I/O-Vorrichtung 2905 kann auch konfiguriert sein, Informationen und/oder Daten an den Benutzer auszugeben. Beispielsweise kann die I/O-Vorrichtung eine Anzeigevorrichtung enthalten, die konfiguriert ist, eine Karte anzuzeigen. In einigen Ausführungsformen kann das Fahrzeug 2720 Daten der Karte (oder wenigstens eines Abschnitts davon) von dem Server 2710 empfangen, beispielsweise über das Netz 2730.
-
Der Sensor 2906 kann konfiguriert sein, Informationen in Bezug auf das Fahrzeug 2720 und/oder die Umgebung des Fahrzeugs 2720 zu sammeln. Der Sensor 2906 kann einen oder mehrere aus einem Bildsensor (z. B. eine Kamera), einer Positionsbestimmungsvorrichtung (z. B. einer Vorrichtung des globalen Positionsbestimmungssystems (GPS-Vorrichtung)), einem Beschleunigungsmesser, einem Gyrosensor, einem Geschwindigkeitsmesser oder dergleichen oder eine Kombination davon enthalten. Beispielsweise kann das Fahrzeug 2720 einen Bildsensor (z. B. eine Kamera) enthalten, der konfiguriert ist, ein oder mehrere Bilder seiner Umgebung, die die Repräsentation eines Objekts (oder wenigstens eines Abschnitts davon) enthalten können, aufzunehmen. Als ein weiteres Beispiel kann das Fahrzeug 2720 eine GPS-Vorrichtung enthalten, die konfiguriert ist, Positionsbestimmungsdaten, die den Positionen des Fahrzeugs 2720 zugeordnet sind, über eine Zeitspanne hinweg zu sammeln.
-
Das LIDAR-System 2907 kann eine oder mehrere LIDAR-Einheiten enthalten. In einigen Ausführungsformen können die eine oder mehreren LIDAR-Einheiten auf einem Dach des Fahrzeugs 2720 positioniert sein. Eine solche Einheit kann eine sich drehende Einheit enthalten, die konfiguriert ist, LIDAR-Reflexionsinformationen innerhalb eines 360-Grad-Sichtfelds um das Fahrzeug 2720 oder aus einem beliebigen Teilsegment des 360-Grad-Sichtfelds (z. B. eines oder mehrerer FOVs, die jeweils weniger als 360 Grad repräsentieren) zu sammeln. In einigen Ausführungsformen kann eine LIDAR-Einheit an einem vorne gelegenen Ort auf dem Fahrzeug 2720 positioniert sein (z. B. in der Nähe der Scheinwerfer, im Frontgrill, in der Nähe der Nebelscheinwerfer, in einem vorderen Stoßfänger oder an irgendeinem anderen geeigneten Ort). In einigen Fällen können eine oder mehrere LIDAR-Einheiten, die an einem vorderen Abschnitt des Fahrzeugs 2720 installiert sind, Reflexionsinformationen aus einem Sichtfeld in einer Umgebung vor dem Fahrzeug 2720 sammeln. Die durch das LIDAR-System 2907 gesammelten Daten können dem Prozessor 2901 zur Verfügung gestellt werden. Alternativ oder zusätzlich können die Daten über das Netz 2730 an den Server 2710 und/oder die Datenbank 2740 gesendet werden.
-
Irgendein geeigneter Typ einer LIDAR-Einheit kann in dem Fahrzeug 2720 enthalten sein. In einigen Fällen kann das LIDAR-System 2907 eine oder mehrere Blitz-LIDAR-Einheiten (z. B. 3D-Blitz-LIDAR), bei denen ein gesamtes LIDAR-Sichtfeld (FOV) mit einem einzigen Laserimpuls beleuchtet wird, und einen Sensor, der Zeilen und Spalten von Pixeln zur Aufzeichnung der zurückgegebenen Lichtstärke und Flugzeit-/Tiefeninformationen enthält, enthalten. Solche Blitzsysteme können eine Szene beleuchten und mehrmals pro Sekunde LIDAR-„Bilder“ aufnehmen. Abtastende LIDAR-Einheiten können ebenfalls eingesetzt werden. Solche abtastenden LIDAR-Einheiten können sich auf eine oder mehrere Techniken zur Streuung eines Laserstrahls über ein spezielles FOV stützen. In einigen Fällen kann eine abtastende LIDAR-Einheit einen Abtastspiegel enthalten, der einen Laserstrahl ablenkt und auf Objekte innerhalb des FOV richtet. Abtastspiegel können sich um volle 360 Grad drehen oder können sich entlang einer einzelnen Achse oder mehrerer Achsen über weniger als 360 Grad drehen, um den Laser auf ein vorbestimmtes FOV zu richten. In einigen Fällen können LIDAR-Einheiten eine horizontale Zeile abtasten. In anderen Fällen kann eine LIDAR-Einheit mehrere horizontale Zeilen innerhalb eines FOV abtasten, so dass effektiv ein bestimmtes FOV mehrmals pro Sekunde gerastert wird.
-
Die LIDAR-Einheiten in dem LIDAR-System 2907 können irgendeine geeignete Laserquelle enthalten. In einigen Ausführungsformen können die LIDAR-Einheiten einen Dauerlaser einsetzen. In anderen Fällen können die LIDAR-Einheiten auf gepulsten Laseremissionen beruhen. Zusätzlich kann irgendeine geeignete Laserwellenlänge eingesetzt werden. In einigen Fällen kann eine Wellenlänge im Bereich von etwa 600 nm bis etwa 1000 nm verwendet werden.
-
Die LIDAR-Einheit(en) in dem LIDAR-System 2907 kann/können auch irgendeinen geeigneten Sensortyp enthalten und irgendeine geeignete Art einer Ausgabe bereitstellen. In einigen Fällen können die Sensoren der LIDAR-Einheiten Festkörper-Photodetektoren, wie z. B. eine oder mehrere Photodioden oder Photomultiplier, enthalten. Die Sensoren können auch eine oder mehrere CMOS- oder CCD-Vorrichtungen mit einer beliebigen Anzahl von Pixeln enthalten. Diese Sensoren können für Laserlicht, das von einer Szene innerhalb des LIDAR FOV reflektiert wird, empfindlich sein. Die Sensoren können verschiedene Typen von Ausgaben aus einer LIDAR-Einheit ermöglichen. In einigen Fällen kann eine LIDAR-Einheit Lichtstärkenrohwerte und Flugzeitinformationen ausgeben, die für das reflektierte Laserlicht, das an jedem Sensor oder an jedem Pixel oder jeder Teilkomponente eines speziellen Sensors gesammelt wurde, repräsentativ sind. Zusätzlich oder alternativ kann eine LIDAR-Einheit eine Punktwolke (z. B. eine 3D-Punktwolke), die Lichtstärke und Tiefen-/Abstandsinformationen relativ zu jedem gesammelten Punkt enthalten kann, ausgeben. LIDAR-Einheiten können auch verschiedene Typen von Tiefenkarten, die für die Lichtreflexionsamplitude und den Abstand zu Punkten innerhalb eines Sichtfelds repräsentativ sind, ausgeben. LIDAR-Einheiten können Tiefen- oder Abstandsinformationen relativ zu speziellen Punkte innerhalb eines FOV dadurch bereitstellen, dass sie den Zeitpunkt festhalten, an dem das Licht der LIDAR-Lichtquelle ursprünglich zu dem FOV projiziert wurde, und einen Zeitpunkt aufzeichnen, zu dem das einfallende Laserlicht durch einen Sensor in der LIDAR-Einheit empfangen wird. Die Zeitdifferenz kann eine Flugzeit repräsentieren, die direkt mit der Umlaufstrecke, die das einfallende Laserlicht von der Laserquelle zu einem reflektierenden Objekt und zurück zu der LIDAR-Einheit zurückgelegt hat, zusammenhängen kann. Das Überwachen der Flugzeitinformationen, die einzelnen Laserpunkten oder kleinen Segmenten eines LIDAR-FOV zugeordnet sind, kann genaue Abstandsinformationen für mehrere Punkte innerhalb des FOV (z. B. das Abbilden auf selbst sehr kleine Merkmale von Objekten innerhalb des FOV) bereitstellen. In einigen Fällen können LIDAR-Einheiten komplexere Informationen ausgeben, wie z. B. Klassifizierungsinformationen, die eine oder mehrere Laserreflexionen mit einem Objekttyp, von dem die Laserreflexion erfasst wurde, korrelieren.
-
Das Navigationssystem 2908 kann konfiguriert sein, einen Fahrer des Fahrzeugs 2720 bei der Bedienung des Fahrzeugs 2720 zu unterstützen. Beispielsweise kann das Navigationssystem 2908 eine Warnung erzeugen, wenn sich ein Objekt (z. B. ein anderes Fahrzeug) in einem vorbestimmten Abstand von der Karosserie des Fahrzeugs 2720 befindet. Als weiteres Beispiel kann das Navigationssystem 2908 ein autonomes Fahrzeugnavigationssystem umfassen, das konfiguriert ist, die Bewegung des Fahrzeugs 2720 zu steuern, wie an anderer Stelle in dieser Offenbarung beschrieben ist. In einigen Ausführungsformen kann das Navigationssystem 2908 ein weiterentwickeltes Fahrerassistenzsystem (ADAS) enthalten.
-
31 ist ein Ablaufplan, der einen beispielhaften Prozess 3100 konsistent mit den offenbarten Ausführungsformen zeigt. Es wird auch auf die 30A und 30B Bezug genommen, die schematische Darstellungen von beispielhaften Objekten in einem Sichtfeld, das einem Navigationssystem konsistent mit den offenbarten Ausführungsformen zugeordnet ist, sind. Obwohl der Prozess 3100 nachstehend unter Verwendung des Fahrzeugs 2720 als ein Beispiel beschrieben ist, wird ein Fachmann verstehen, dass auch der Server 2710 konfiguriert sein kann, einen oder mehrere Schritte des Prozesses 3100 auszuführen.
-
In Schritt 3101 kann der Prozessor 2901 des Fahrzeugs 2720 wenigstens einen Indikator für die Eigenbewegung des Trägerfahrzeugs (d. h. des Fahrzeugs 2720) bestimmen. Die Eigenbewegung des Trägerfahrzeugs kann sich auf irgendeine Umgebungsverschiebung des Trägerfahrzeugs in Bezug auf einen unbeweglichen Bezugspunkt oder ein unbewegliches Objekt beziehen. Ein Indikator für eine Eigenbewegung des Trägerfahrzeugs kann irgendeine Information sein, die angibt, dass sich das Trägerfahrzeug in Bezug auf einen unbeweglichen Referenzpunkt oder ein Objekt (z. B. ein Gebäude, eine Seitenlinie eines Straßensegments, einen Strommast, einen Lichtmast, einen Baum usw.) bewegt.
-
Beispielsweise kann das Fahrzeug 2720 eine Bordkamera enthalten, die konfiguriert ist, mehrere Bilder ihrer Umgebung aufzunehmen. Der Prozessor 2901 kann konfiguriert sein, die mehreren Bilder zu empfangen und basierend auf der Analyse der mehreren Bilder zu bestimmen, ob sich das Fahrzeug in Bezug auf eine starre Struktur (d. h. einen Indikator für die Eigenbewegung des Fahrzeugs) bewegt. Als Beispiel kann eine Kamera des Fahrzeugs 2720 das in 30A dargestellte Bild 3000A aufnehmen und dann das in 30B dargestellte Bild 3000B aufnehmen. Der Prozessor 2901 kann die Bilder 3000A und 3000B empfangen und analysieren, um zu bestimmen, dass sich das Fahrzeug in Bezug auf ein unbewegliches Objekt (z. B. das Objekt 3002, einen Lichtmast) vorwärts bewegt. Als Beispiel kann der Prozessor 2901 bestimmen, dass die Größe des Objekts 3002, die in dem Bild 3000B erscheint, größer sein kann als in dem Bild 3000A. Der Prozessor 2901 kann auch bestimmen, dass sich das Fahrzeug 2720 auf das Objekt 3002 zubewegt. Alternativ oder zusätzlich kann der wenigstens eine Indikator für die Eigenbewegung des Trägerfahrzeugs basierend auf der Analyse von Karteninformationen bestimmt werden. Beispielsweise kann der Prozessor 2901 die erste Position des Fahrzeugs 2720 auf einer Karte bestimmen und die zweite Position des Fahrzeugs 2720 auf der Karte bestimmen und die erste Position mit der zweiten Position vergleichen. Der Prozessor 2901 kann auch wenigstens einen Indikator für die Eigenbewegung des Trägerfahrzeugs basierend auf dem Vergleich bestimmen (z. B., dass die erste Position sich von der zweiten Position unterscheidet). Alternativ oder zusätzlich kann der wenigstens eine Indikator für die Eigenbewegung des Trägerfahrzeugs basierend auf einer Fahrtrichtung des Trägerfahrzeugs bestimmt werden. Beispielsweise kann das Fahrzeug 2720 einen Sensor (z. B. einen Kompass) enthalten, der konfiguriert ist, die Fahrtrichtung des Fahrzeugs 2720 zu bestimmen. Der Prozessor 2901 kann bestimmen, ob sich die Fahrtrichtung im Laufe der Zeit ändert, und wenn dies der Fall ist, kann der Prozessor 2901 bestimmen, dass sich das Trägerfahrzeug bewegt (d. h. einen Indikator für die Eigenbewegung des Trägerfahrzeugs). Alternativ oder zusätzlich kann der wenigstens eine Indikator für die Eigenbewegung des Trägerfahrzeugs basierend auf einer Analyse einer Ausgabe aus einem oder mehreren aus einem Geschwindigkeitsmesser (der z. B. angibt, dass sich der Kilometerstand des Trägerfahrzeugs mit der Zeit ändert), einem Beschleunigungsmesser (der z. B. eine Beschleunigung des Trägerfahrzeugs detektiert) und einer GPS-Vorrichtung (die z. B. die basierend auf im Laufe der Zeit empfangenen GPS-Signalen detektiert, dass sich die Position des Trägerfahrzeugs ändert) bestimmt werden. Alternativ oder zusätzlich kann der wenigstens eine Indikator für die Eigenbewegung des Trägerfahrzeugs basierend auf einer Folge von im Laufe der Zeit gesammelten Punktwolken bestimmt werden. Beispielsweise kann das LIDAR-System 2907 eine erste Punktwolke erzeugen, die zu einem ersten Zeitpunkt gesammelt wird und eine erste Punktwolkenrepräsentation eines unbeweglichen Objekts (z. B. eines Lichtmasts) enthalten kann. Das LIDAR-System 2907 kann eine zweite Punktwolke erzeugen, die zu einem zweiten Zeitpunkt nach dem ersten Zeitpunkt gesammelt wird und auch eine zweite Punktwolkenrepräsentation desselben unbeweglichen Objekts enthalten kann. Der Prozessor 2901 kann wenigstens einen Indikator für die Eigenbewegung des Trägerfahrzeugs basierend auf der Differenz zwischen der ersten Punktwolkenrepräsentation und der zweiten Punktwolkenrepräsentation bestimmen (der z. B. angibt, dass sich das Trägerfahrzeug vom ersten Zeitpunkt zum zweiten Zeitpunkt auf den Lichtmast zubewegt hat). Alternativ oder zusätzlich kann der wenigstens eine Indikator für die Eigenbewegung des Trägerfahrzeugs basierend auf einer Kombination aus Punktwolken und Bildern bestimmt werden. Beispielsweise kann der Prozessor 2901 eine erste Punktwolke und ein erstes Bild, das zu einem ersten Zeitpunkt aufgenommen wurde, und eine zweite Punktwolke und ein zweites Bild, das zu einem zweiten Zeitpunkt aufgenommen wurde, erhalten. Der Prozessor 2901 kann auch wenigstens einen Indikator für die Eigenbewegung des Trägerfahrzeugs basierend auf der Differenz zwischen der ersten und der zweiten Punktwolke und der Differenz zwischen dem ersten und dem zweiten Bild bestimmen.
-
In Schritt 3102 kann der Prozessor 2901 von einem dem Trägerfahrzeug zugeordneten LIDAR-System (z. B. dem LIDAR-System 2907) und basierend auf einer ersten LIDAR-Abtastung eines Sichtfelds des LIDAR-Systems eine erste Punktwolke empfangen. Die erste Punktwolke kann eine erste Repräsentation wenigstens Abschnitts eines Objekts innerhalb des Sichtfelds des LIDAR-Systems enthalten. In einigen Ausführungsformen kann die erste Punktwolke zu einem ersten Zeitpunkt gesammelt werden.
-
Wie an anderer Stelle in dieser Offenbarung kann das LIDAR-System 2907 eine Laserquelle enthalten, die konfiguriert ist, einen Laser (z. B. einen Dauerlaser oder gepulste Laseremissionen) in das Sichtfeld des LIDAR-Systems 2907 zu emittieren. Das LIDAR-System 2907 kann einen oder mehrere Sensoren enthalten, die konfiguriert sind, die Reflexionen des Lasers von einem oder mehreren Objekten in dem Sichtfeld zu detektieren. Das LIDAR-System 2907 kann eine Punktwolke (z. B. eine 3D-Punktwolke) erzeugen, die Lichtstärke und Tiefen-/Abstandsinformationen relativ zu jedem von dem/den Sensor(en) erfassten Punkt enthält.
-
Das LIDAR-System 2907 kann eine erste Punktwolke erzeugen, die dreidimensionale Koordinaten für mehrere Orte in dem Sichtfeld des LIDAR-Systems 2907, an denen mehrere Laserreflexionen durch das LIDAR-System 2907 zum ersten Zeitpunkt detektiert werden, enthält. Das LIDAR-System 2907 kann die erzeugte erste Punktwolke auch an den Prozessor 2901 zur weiteren Verarbeitung senden. Die erste Punktwolke kann eine erste Repräsentation wenigstens eines Abschnitts eines Objekts innerhalb des Sichtfelds des LIDAR-Systems 2907 enthalten. Eine Repräsentation wenigstens eines Abschnitts eines Objekts in einer Punktwolke bezieht sich auf eine Sammlung von Informationen, die sich auf Laserreflexionen durch den wenigstens einen Abschnitt des Objekts, die durch einen oder mehreren Sensoren des LIDAR-Systems 2907 detektiert wurden, beziehen.
-
In einigen Ausführungsformen kann das LIDAR-System 2907 auch verschiedene Typen von Tiefenkarten, die für die Lichtreflexionsamplitude und den Abstand zu Punkten innerhalb des Sichtfelds repräsentativ sind, an den Prozessor 2901 ausgeben.
-
In Schritt 3103 kann der Prozessor von dem LIDAR-System 2907 und basierend auf einer zweiten LIDAR-Abtastung des Sichtfelds des LIDAR-Systems 2907 eine zweite Punktwolke, die eine zweite Repräsentation des wenigstens einen Abschnitts des Objekts enthält, empfangen. Die zweite Punktwolke kann eine zweite Repräsentation wenigstens eines Abschnitts eines Objekts innerhalb des Sichtfelds des LIDAR-Systems 2907 enthalten. In einigen Ausführungsformen kann die zweite Punktwolke zu einem zweiten Zeitpunkt gesammelt werden. Der zweite Zeitpunkt kann nach dem ersten Zeitpunkt liegen.
-
In einigen Ausführungsformen kann die zweite Punktwolke dreidimensionale Koordinaten für mehrere Orte in dem Sichtfeld des LIDAR-Systems 2907, an denen mehrere Laserreflexionen durch das LIDAR-System 2907 detektiert werden, enthalten.
-
In Schritt 3104 kann der Prozessor eine Geschwindigkeit des Objekts basierend auf dem wenigstens einen Indikator für die Eigenbewegung des Trägerfahrzeugs und basierend auf einem Vergleich der ersten Punktwolke (die die erste Repräsentation des wenigstens einen Abschnitts des Objekts enthalten kann) und der zweiten Punktwolke (die die zweite Repräsentation des wenigstens einen Abschnitts des Objekts enthalten kann) bestimmen. In einigen Ausführungsformen kann das Bestimmen der Geschwindigkeit des Trägerfahrzeugs das Bestimmen einer Geschwindigkeit des Objekts und/oder einer Richtung des Objekts enthalten.
-
In einigen Ausführungsformen kann der Prozessor 2901 die Geschwindigkeit des Objekts basierend auf wenigstens einer einem tatsächlichen Punktwolkenunterschied zwischen der ersten und der zweiten Punktwolke bestimmen. Ein tatsächlicher Punktwolkenunterschied zwischen zwei Punktwolken bezieht sich auf die Unterschiede in den Daten der beiden Punktwolken. Wie an anderer Stelle in dieser Offenbarung beschrieben, ist eine Punktwolke eine Sammlung von Lichtstärke und Tiefen-/Abstandsinformationen in Bezug auf jeden durch den/die Sensor(en) des LIDAR-Systems 2907 erfassten Punkt. Der Prozessor 2901 kann die Daten der ersten Punktwolke von den Daten der zweiten Punktwolke subtrahieren, um einen tatsächliche Punktwolkenunterschied zu bestimmen.
-
In einigen Ausführungsformen kann der Prozessor 2901 auch einen erwarteten Punktwolkenunterschied zwischen der ersten und der zweiten Punktwolke aufgrund der Eigenbewegung des Trägerfahrzeugs bestimmen. Wie vorstehend erläutert, kann sich, wenn sich das Trägerfahrzeug bewegt, ein Objekt im Sichtfeld des LIDAR-Systems 2907 bewegen. Beispielsweise kann sich der Ort eines unbeweglichen Objekts in dem Sichtfeld des LIDAR-Systems 2907 ändern, falls sich das Trägerfahrzeug bewegt. Der Prozessor 2901 kann einen erwarteten Punktwolkenunterschied zwischen der ersten Punktwolke und der zweiten Punktwolke basierend auf der Geschwindigkeit und/oder Richtung des Trägerfahrzeugs (die wie an anderer Stelle in dieser Offenbarung beschrieben bestimmt werden können) bestimmen. Ein erwarteter Punktwolkenunterschied bezieht sich auf die Unterschiede zwischen der ersten Punktwolke, die ein zum ersten Zeitpunkt gemessener Datensatz sein kann, und einer erwarteten Punktwolke zum zweiten Zeitpunkt, die basierend auf der ersten Punktwolke und der bestimmten Eigenbewegung des Trägerfahrzeugs (z. B. der Geschwindigkeit und/oder Richtung des Trägerfahrzeugs) berechnet werden kann. Beispielsweise kann der Prozessor 2901 einen erwarteten Punktwolkenunterschied basierend auf einer Änderung eines Orts des Objekts 3002 (oder wenigstens eines Abschnitts davon) relativ zu einem Sichtfeld des LIDAR-Systems 2907 von dem ersten Zeitpunkt zu dem zweiten Zeitpunkt basierend auf der Geschwindigkeit und Richtung des Trägerfahrzeugs und der ersten Punktwolke bestimmen. Als ein Beispiel kann zu erwarten sein, dass sich der Ort des Objekts 3002 (dargestellt in Bild 3000A und Bild 3000B) im Sichtfeld des LIDAR-Systems 2907 nach oben und rechts verschiebt, wenn das Trägerfahrzeug geradeaus fahrt. Der Prozessor 2901 kann einen erwarteten Punktwolkenunterschied, der sich auf die Änderung eines Orts des Objekts 3002 bezieht, basierend auf der Geschwindigkeit und/oder Richtung des Trägerfahrzeugs und dem Ort des Objekts 3001 in der ersten Punktwolke bestimmen. Alternativ oder zusätzlich kann der Prozessor 2901 eine erwartete Änderung der Größe des Objekts 3002 (oder wenigstens eines Abschnitts davon) bestimmen, die in einer erwarteten zweiten Punktwolke zum zweiten Zeitpunkt (die ein berechneter Datensatz im Vergleich zur gemessenen zweiten Punktwolke sein kann) relativ zur ersten Punktwolkenrepräsentation des Objekts 3002 in der ersten Punktwolke erscheint. Beispielsweise kann die Größe des Objekts 3002, das in der erwarteten zweiten Punktwolke zum zweiten Zeitpunkt erscheint, im Vergleich zur Größe des Objekts 3002, das in der ersten Punktwolke zum ersten Zeitpunkt erscheint, zunehmen. Der Prozessor 2901 kann auch einen erwarteten Punktwolkenunterschied basierend auf der erwarteten Änderung der Größe des Objekts 3002 (oder wenigstens eines Abschnitts davon) bestimmen. Der Prozessor 2901 kann ferner die Geschwindigkeit des Objekts basierend auf einem Vergleich der tatsächlichen und erwarteten Punktwolkenunterschiede bestimmen. Falls der Prozessor 2901 beispielsweise bestimmt, dass kein Unterschied zwischen der tatsächlichen und der erwarteten Punktwolke vorhanden ist (oder der Unterschied zwischen der tatsächlichen und der erwarteten Punktwolke kleiner als ein Schwellenwert ist), kann der Prozessor 2901 bestimmen, dass die Geschwindigkeit des Objekts 3002 gleich Null ist (d. h., dass sich das Objekt 3002 nicht bewegt). Als weiteres Beispiel kann der Prozessor 2901, wie vorstehend beschrieben, eine Änderung der Größe der Punktwolkenrepräsentation des Objekts 3001 in der erwarteten zweiten Punktwolke (die eine berechnete Punktwolke zum zweiten Zeitpunkt basierend auf der ersten Punktwolke und der Geschwindigkeit und/oder Richtung des Trägerfahrzeugs sein kann) relativ zur ersten Punktwolkenrepräsentation des Objekts 3001 in der ersten Punktwolke basierend auf der Geschwindigkeit und/oder Richtung des Trägerfahrzeugs bestimmen. Als weiteres Beispiel kann der Prozessor 2901 die Geschwindigkeit des Objekts 3001 (eines sich bewegenden Fahrzeugs) basierend auf einem Vergleich der tatsächlichen und erwarteten Punktwolkenunterschiede in Bezug auf das Objekt 3001 bestimmen, ähnlich wie bei der vorstehend beschriebenen Bestimmung der Geschwindigkeit des Objekts 3002. Der Prozessor 2901 kann auch bestimmen, dass die tatsächlichen und erwarteten Punktwolkenunterschiede in Bezug auf das Objekt 3001 angeben können, dass die Geschwindigkeit des Objekts 3001 nicht Null ist.
-
In einigen Ausführungsformen kann der Prozessor 2901 die Geschwindigkeit des Trägerfahrzeugs basierend auf einem Vergleich von zwei oder mehr Bildern und dem wenigstens einen Indikator für die Eigenbewegung des Trägerfahrzeugs bestimmen. Beispielsweise kann eine Kamera des Fahrzeugs 2720 das in 30A dargestellte Bild 3000A zum ersten Zeitpunkt und dann das in 30B dargestellte Bild 3000B zum zweiten Zeitpunkt aufnehmen. Das Bild 3000A kann eine erste Bildrepräsentation wenigstens eines Abschnitts des Objekts 3002 (und wenigstens eines Abschnitts des Objekts 3001) enthalten, und das Bild 3000B kann eine zweite Bildrepräsentation des wenigstens eines Abschnitts des Objekts 3002 (und wenigstens eines Abschnitts des Objekts 3001) enthalten. Der Prozessor 2901 kann basierend auf einem Vergleich von Bild 3000A und Bild 3000B (und/oder des wenigstens einen Indikators für die Eigenbewegung des Trägerfahrzeugs und basierend auf einem Vergleich der ersten Punktwolke und der zweiten Punktwolke) eine Geschwindigkeit des Objekts 3002 bestimmen. In einigen Ausführungsformen kann der Prozessor 2901 eine Geschwindigkeit des Objekts 3001 basierend auf einem Vergleich von Bild 3000A und Bild 3000B, die jeweils Bildrepräsentationen des Objekts 3001 enthalten können, bestimmen, ähnlich wie bei der vorstehend beschriebenen Bestimmung der Geschwindigkeit des Objekts 3002.
-
In einigen Ausführungsformen kann der Prozessor 2901 die Geschwindigkeit eines Objekts basierend auf dem Vergleich zwischen einem tatsächlichen Bildunterschied und einem erwarteten Bildunterschied bestimmen. Ein tatsächlicher Bildunterschied zwischen zwei Bildern bezieht sich auf die Unterschiede in den Daten der beiden Bilder. Ein durch eine Kamera aufgenommenes Bild kann Pixel mit einer Lichtstärke(oder andere Arten von Informationen), die den Punkten im Sichtfeld der Kamera entsprechen, enthalten. Der Prozessor 2901 kann die Pixeldaten des ersten Bildes von den Pixeldaten des zweiten Bildes subtrahieren, um einen tatsächlichen Bildunterschied zu bestimmen. Der Prozessor 2901 kann beispielsweise wenigstens einen tatsächlichen Bildunterschied zwischen dem Bild 3000A und dem Bild 3000B bestimmen, indem er beispielsweise das erste Bild vom zweiten Bild subtrahiert.
-
Der Prozessor 2901 kann auch einen erwarteten Bildunterschied zwischen dem ersten Bild (das eine Sammlung von gemessenen Daten zum ersten Zeitpunkt ist) und einem erwarteten zweiten Bild (das eine Sammlung von berechneten Daten zum zweiten Zeitpunkt sein kann) basierend auf dem wenigstens einen Indikator für die Eigenbewegung des Trägerfahrzeugs (z. B. der Geschwindigkeit und/oder Richtung des Trägerfahrzeugs, die wie an anderer Stelle in dieser Offenbarung beschrieben bestimmt werden) bestimmen. Wenn sich beispielsweise das Trägerfahrzeug bewegt, kann sich ein Objekt im Sichtfeld der Kamera an Bord des Trägerfahrzeugs bewegen. Der Prozessor 2901 kann einen Unterschied zwischen dem Bild 3000A (das zum ersten Zeitpunkt aufgenommen sein kann) und einem erwarteten Bild zum zweiten Zeitpunkt (das basierend auf der Eigenbewegung des Trägerfahrzeugs berechnet sein kann) basierend auf dem wenigstens einen Indikator der Eigenbewegung des Trägerfahrzeugs berechnen. Beispielsweise kann der Prozessor 2901 einen erwarteten Bildunterschied basierend auf einer Änderung eines Orts des Objekts 3002 (oder wenigstens eines Abschnitts davon) relativ zu einem Sichtfeld der Kamera (z. B. der Ansicht von Bild 3000A) basierend auf der Geschwindigkeit und Richtung des Trägerfahrzeugs bestimmen. Beispielsweise wird erwartet, wie in den 30A und 30B dargestellt, dass sich der Ort des Objekts 3002 (d. h. eines unbeweglichen Objekts auf der rechten Seite des Sichtfelds der Kamera) in dem Sichtfeld der Kamera nach oben und rechts verschiebt, wenn das Trägerfahrzeug geradeaus fährt. Der Prozessor 2901 kann einen erwarteten Bildunterschied, der sich auf die Änderung des Orts des Objekts 3002 bezieht, basierend auf der Geschwindigkeit und/oder Richtung des Trägerfahrzeugs und dem Ort des Objekts 3001 in dem ersten Bild 3000A bestimmen. Alternativ oder zusätzlich kann der Prozessor 2901 einen erwarteten Bildunterschied basierend auf einer Änderung der Größe der Bildrepräsentation des Objekts 3002 in einem erwarteten Bild zum zweiten Zeitpunkt relativ zu der ersten Bildrepräsentation des Objekts 3002 in Bild 3000A bestimmen (z. B. eine erwartete Zunahme der Größe, die in Bild 3000B erscheint, im Vergleich zu der Größe, die in Bild 3000A erscheint). Der Prozessor 2901 kann ferner die Geschwindigkeit des Objekts basierend auf einem Vergleich der tatsächlichen und erwarteten Bildunterschiede bestimmen. Falls der Prozessor 2901 beispielsweise bestimmt, dass kein Unterschied zwischen dem tatsächlichen und dem erwarteten Bild vorhanden ist (oder der Unterschied zwischen dem tatsächlichen und dem erwarteten Bild kleiner als ein Schwellenwert ist), kann der Prozessor 2901 bestimmen, dass die Geschwindigkeit des Objekts 3002 gleich Null ist (d. h., dass sich das Objekt 3002 nicht bewegt). Als weiteres Beispiel kann der Prozessor 2901 eine erwartete Änderung der Größe der zweiten Bildrepräsentation des Objekts 3001 in dem Bild 3000B relativ zu der ersten Bildrepräsentation des Objekts 3001 in dem Bild 3000A basierend auf der Geschwindigkeit und/oder Richtung des Trägerfahrzeugs bestimmen. Als weiteres Beispiel kann der Prozessor 2901 die Geschwindigkeit des Objekts 3001 (eines sich bewegenden Fahrzeugs) basierend auf einem Vergleich der tatsächlichen und erwarteten Bildunterschiede in Bezug auf das Objekt 3001 bestimmen, ähnlich wie bei der vorstehend beschriebenen Bestimmung der Geschwindigkeit des Objekts 3002.
-
In einigen Ausführungsformen kann der Prozessor 2901 die Geschwindigkeit eines Objekts basierend auf dem Vergleich der tatsächlichen und erwarteten Punktwolkenunterschiede und dem Vergleich der tatsächlichen und erwarteten Bildunterschiede bestimmen. Beispielsweise kann der Prozessor 2901 eine erste vorläufige Geschwindigkeit eines Objekts basierend auf den tatsächlichen und erwarteten Punktwolkenunterschieden (wie an anderer Stelle in dieser Offenbarung beschrieben) bestimmen und eine zweite vorläufige Geschwindigkeit des Objekts und den Vergleich der tatsächlichen und erwarteten Bildunterschiede (wie an anderer Stelle in dieser Offenbarung beschrieben) bestimmen. Der Prozessor 2901 kann auch die Geschwindigkeit des Objekts basierend auf der ersten vorläufigen Geschwindigkeit und der zweiten vorläufigen Geschwindigkeit bestimmen. Beispielsweise kann der Prozessor 2901 eine Durchschnittsgeschwindigkeit aus der ersten vorläufigen Geschwindigkeit und der zweiten vorläufigen Geschwindigkeit als Geschwindigkeit des Objekts bestimmen. Als weiteres Beispiel kann der Prozessor 2901 bei der Bestimmung der Geschwindigkeit des Objekts einem Ergebnis des Vergleichs der tatsächlichen und erwarteten Punktwolkenunterschiede (z. B. der ersten vorläufigen Geschwindigkeit) eine erste Gewichtung zuweisen und einem Ergebnis eines Vergleichs der tatsächlichen und erwarteten Bildunterschiede (z. B. der zweiten vorläufigen Geschwindigkeit) eine zweite Gewichtung zuweisen. Der Prozessor 2901 kann auch die Geschwindigkeit des Objekts beispielsweise basierend auf einem gewichteten Mittelwert, der auf der Summe des Produkts aus der ersten Gewichtung mal der ersten vorläufigen Geschwindigkeit und dem Produkt aus der zweiten Gewichtung mal der zweiten vorläufigen Geschwindigkeit basiert, bestimmen. In einigen Ausführungsformen können die erste und die zweite Gewichtung unterschiedlich sein. Alternativ können die erste und die zweite Gewichtung gleich sein.
-
In einigen Ausführungsformen kann der Prozessor 2901 basierend der Geschwindigkeit des Objekts bestimmen, ob sich das Objekt bewegt. Beispielsweise kann der Prozessor 2901 bestimmen, dass die Geschwindigkeit des in den 30A und 30B dargestellten Objekts 3001 nicht Null ist (was basierend auf einem oder mehreren Schritten, die an anderer Stelle in dieser Offenbarung beschrieben sind, bestimmt werden kann), und bestimmen, dass sich das Objekt 3001 bewegt.
-
In einigen Ausführungsformen kann der Prozessor 2901 wenigstens eine Navigationsaktion für das Trägerfahrzeug basierend der Geschwindigkeit des Objekts bestimmen. Beispielsweise kann der Prozessor 2901 basierend auf der bestimmten Geschwindigkeit (die eine Geschwindigkeit und eine Richtung enthalten kann) bestimmen, dass sich ein Objekt auf das Trägerfahrzeug zu bewegt. Der Prozessor 2901 kann auch wenigstens eine Navigationsaktion für das Trägerfahrzeug bestimmen. Beispielsweise kann der Prozessor 2901 eine Navigationsaktion für das Trägerfahrzeug bestimmen, die beispielsweise wenigstens eines aus Beschleunigen, Abbremsen oder Abbiegen des Trägerfahrzeugs enthält, um eine Kollision mit dem Objekt zu vermeiden. Der Prozessor 2901 kann auch das Navigationssystem 2908 anweisen, die wenigstens eine Navigationsaktion zu implementieren.
-
In einigen Ausführungsformen kann der Prozessor 2901 basierend auf der Geschwindigkeit des Objekts bestimmen, ob eine Karte aktualisiert werden soll (oder eine Aktualisierung der Karte veranlassen). Beispielsweise kann der Prozessor 2901 basierend auf der Geschwindigkeit des Objekts 3002 bestimmen, dass es sich um ein unbewegliches Objekt handelt, und bestimmen, eine Karte nicht zu aktualisieren. Andererseits kann der Prozessor 2901 unter der Annahme, dass der Prozessor basierend auf der Geschwindigkeit des Objekts 3002 bestimmt, dass es sich um ein sich bewegendes Objekt handelt, eine in einer lokalen Speichervorrichtung gespeicherte Karte aktualisieren, indem er das Objekt 3002 aus der Karte entfernt (falls das Objekt 3002 in der Karte enthalten ist). Alternativ oder zusätzlich kann der Prozessor 2901 die Informationen über das Objekt 3002 (z. B. ein sich bewegendes Objekt) an den Server 2710 senden, der eine Karte basierend auf den empfangenen Informationen aktualisieren kann.
-
In einigen Ausführungsformen kann der Prozessor 2901 den Ort des Objekts basierend auf der Geschwindigkeit des Objekts bestimmen. Beispielsweise kann der Prozessor 2901 bestimmen, dass die Geschwindigkeit des in den 30A und 30B dargestellten Objekts 3002 gleich Null ist, und den Ort des Objekts 3002 bestimmen. Der Prozessor 2901 kann auch den Ort des Objekts 3002 an den Server 2710 senden (z. B. GPS-Koordinaten des Objekts 3002 und/oder einen Ort relativ zu einem bekannten Objekt), beispielsweise über das Netz 2730. Server 2710 kann konfiguriert sein, eine Karte basierend auf dem empfangenen Ort des Objekts 3002 zu aktualisieren. Beispielsweise kann der Server 2710 basierend auf dem empfangenen Ort des Objekts 3002 den Ort des Objekts 3002 in eine Karte einfügen oder den Ort des Objekts 3002 in einer Karte ändern. Als weiteres Beispiel kann der Prozessor 2901 bestimmen, dass die Geschwindigkeit eines Objekts nicht Null ist (d. h., dass sich das Objekt wenigstens während der Detektionszeitspanne bewegt hat), und einen Ort oder Orte des Objekts bestimmen. Der Prozessor 2901 kann die den/die Ort(e) des Objekts auch an den Server 2710 senden, der eine Karte basierend auf dem/den empfangenen Ort(en) des Objekts modifizieren kann. Beispielsweise kann eine Karte vorher angeben, dass das Objekt ein unbewegliches Objekt ist (z. B. ein Straßenschild). Der Server 2710 kann den/die Ort(e) des Objekts empfangen, die dem Server 2710 angeben, dass sich der Ort des Objekts geändert hat. Der Server 2710 kann die Karte aktualisieren, indem er beispielsweise den Ort des Objekts ändert oder das Objekt aus der Karte entfernt. In einigen Ausführungsformen kann der Server 2710 Ortsinformationen eines Objekts von mehreren Fahrzeugen 2720 empfangen. Der Server 2710 kann eine Karte basierend auf den von den mehreren Fahrzeugen 2720 empfangenen Ortsinformationen aktualisieren. Beispielsweise kann der Server 2710 konfiguriert sein, eine Karte nur dann zu aktualisieren, wenn ein prozentualer Anteil der von den mehreren Fahrzeugen 2720 empfangenen Ortsinformationen, die angeben, dass sich das Objekt bewegt, gleich einem oder größer als ein Schwellenwert ist.
-
LIDAR-Ortsbestimmung mit der dünn besetzten Karte
-
Diese Offenbarung stellt Systeme und Verfahren zur Bestimmung einer Position eines Trägerfahrzeugs basierend auf LIDAR-Daten, die durch ein LIDAR-System an Bord des Trägerfahrzeugs aufgenommen wurden, bereit. In einer Ausführungsform kann ein System die durch das LIDAR-System aufgenommenen LIDAR-Daten analysieren, um einen Orientierungspunkt, der einem Straßensegment in einer Umgebung des Trägerfahrzeugs zugeordnet ist, zu identifizieren. Das System kann auch bestimmen, ob der identifizierte Orientierungspunkt mit einem Orientierungspunkt in einer dünn besetzten Karte (der hier auch als kartierter Orientierungspunkt bezeichnet ist), die das System von einem Server empfangen hat, übereinstimmt. Die dünn besetzte Karte kann durch den Server basierend auf von mehreren Fahrzeugen gesammelten Daten erzeugt werden, wie an anderer Stelle in dieser Offenbarung beschrieben. Das System kann ferner eine Position des Trägerfahrzeugs bestimmen, indem es beispielsweise die Repräsentation des Orientierungspunktes in den durch das LIDAR-System aufgenommenen LIDAR-Daten mit dem kartierten Orientierungspunkt in der dünn besetzten Karte vergleicht.
-
32 stellt ein beispielhaftes System 3200 zum Erzeugen einer dünn besetzten Karte basierend auf Informationen, die durch mehrere Fahrzeuge gesammelt wurden, in Übereinstimmung mit offenbarten Ausführungsformen dar. Wie in 32 dargestellt ist, kann das System 3200 einen Server 3210, ein oder mehrere Fahrzeuge 3220 (z. B. Fahrzeug 3220a, Fahrzeug 3220b, ..., Fahrzeug 3220n), ein Netz 3230 und eine Datenbank 3240 enthalten.
-
Das Fahrzeug 3220 kann Informationen aus seiner Umgebung sammeln und die gesammelten Informationen beispielsweise über das Netz 3230 an den Server 3210 senden. In einem Beispiel kann das Fahrzeug 3220 einen oder mehrere Sensoren (z. B. eine Kamera, einen Geschwindigkeitsmesser, eine GPS-Vorrichtung, einen Beschleunigungsmesser usw.) enthalten, die konfiguriert sind, Daten und Informationen aus seiner Umgebung zu sammeln. Das Fahrzeug 3220 kann die Daten und Informationen (oder die daraus abgeleiteten Daten) an den Server 3210 senden. Als Beispiel kann das Fahrzeug 3220 einen Bildsensor (z. B. eine Kamera) enthalten, der konfiguriert ist, ein oder mehrere Bilder seiner Umgebung aufzunehmen. Alternativ oder zusätzlich kann das Fahrzeug 3220 ein LIDAR-System enthalten, das konfiguriert ist, LIDAR-Reflexionsinformationen innerhalb eines 360-Grad-Sichtfelds um das Fahrzeug 3220 oder aus einem beliebigen Teilsegment des 360-Grad-Sichtfelds (z. B. eines oder mehrerer FOVs, die jeweils weniger als 360 Grad repräsentieren) zu sammeln. Alternativ oder zusätzlich kann ein bordeigener Sensor (z. B. eine GPS-Vorrichtung, ein Bildsensor usw.) Daten über die Bewegungsbahn des Fahrzeugs 3220 entlang eines oder mehrerer Straßensegmente aufzeichnen. Das Fahrzeug 3220 kann ferner konfiguriert sein, die gesammelten Daten/Informationen über das Netz 3230 an den Server 3210 zu senden.
-
Der Server 3210 kann Daten/Informationen, die von einem oder mehreren Fahrzeugen 3220 empfangen werden, verarbeiten. Beispielsweise kann der Server 3210 eine Karte (z. B. eine dünn besetzte Karte) basierend auf den empfangenen Daten/Informationen erzeugen oder aktualisieren, wie an anderer Stelle in dieser Offenbarung beschrieben ist. In einem Beispiel kann der Server 3210 konfiguriert sein, von dem Fahrzeug 3220 Daten über einen einem Straßensegment zugeordneten Orientierungspunkt (z. B. Ort, Typ, Größe, Form, semantische Eigenschaft (falls vorhanden) usw. des Orientierungspunktes) zu empfangen. Server 3210 kann eine Karte aktualisieren, um den Orientierungspunkt basierend auf den von dem Fahrzeug 3220 empfangenen Informationen hinzuzufügen oder zu ändern. Als weiteres Beispiel kann der Server 3210 konfiguriert sein, von dem Fahrzeug 3220 Daten, die sich auf eine Bewegungsbahn des Fahrzeugs 3220 entlang eines Straßensegments beziehen, zu empfangen. Server 3210 kann auch konfiguriert sein, eine dünn besetzte Karte zu aktualisieren, indem er eine dem Straßensegment zugeordnete Sollbewegungsbahn basierend auf den empfangenen Daten aktualisiert. Der Server 3210 kann ferner konfiguriert sein, Kartendaten einer oder mehrerer dünn besetzter Karten an ein oder mehrere Fahrzeuge (z. B. das Fahrzeug 3220, das Fahrzeug 3400 usw.) zu senden.
-
In einigen Ausführungsformen kann eine dünn besetzte Karte eine oder mehrere Sollbewegungsbahnen, die einem oder mehreren Straßensegmenten zugeordnet sind, enthalten. Beispielsweise kann eine dünn besetzte Karte eine oder mehrere Sollbewegungsbahnen enthalten, von denen jede in der dünn besetzten Karte durch einen dreidimensionalen Polynomzug repräsentiert sein kann, ähnlich dem dreidimensionalen Polynomzug 950, der in 9B dargestellt und vorstehend beschrieben ist.
-
In einigen Ausführungsformen kann eine dünn besetzte Karte Informationen zu einem Orientierungspunkt, der einem Straßensegment zugeordnet ist, enthalten. Beispielsweise kann, wie vorstehend beschrieben, ein LIDAR-System an Bord eines Trägerfahrzeugs (z. B. des in 32 dargestellte Fahrzeugs 3220) Reflexionsinformationen aus seinem Sichtfeld in der Umgebung des Fahrzeugs aufnehmen. Die Reflexionsinformationen können Informationen über Reflexionen durch einen Orientierungspunkt in dem Sichtfeld enthalten. Das Fahrzeug 3220 kann die aufgenommenen LIDAR-Daten an den Server 3210 senden, der die LIDAR-Daten analysieren und den Orientierungspunkt in den LIDAR-Daten (z. B. in Form von Punktwolkeninformationen) identifizieren kann. Der Server 3210 kann auch konfiguriert sein, die Repräsentation des identifizierten Orientierungspunktes in den Punktwolkeninformationen in eine dünn besetzte Karte aufzunehmen. Alternativ oder zusätzlich kann der Server 3210 die Größe, die Form und/oder den Ort des Orientierungspunktes basierend auf den Punktwolkeninformationen bestimmen und die Größe, die Form und/oder den Ort des Orientierungspunktes in die dünn besetzte Karte aufnehmen.
-
In einigen Ausführungsformen kann ein Orientierungspunkt in einer dünn besetzten Karte durch einen Punktort repräsentiert sein. Alternativ kann ein Orientierungspunkt in einer dünn besetzten Karte durch mehrere Punktorte repräsentiert sein. Ein Orientierungspunkt kann beispielsweise Geschwindigkeitsbegrenzungsschild sein, das auf einer Seite einer Brücke über ein Straßensegment mit zwei entgegengesetzten Fahrspuren angebracht ist. Der Orientierungspunkt kann in einer dünn besetzten Karte durch zwei Punkte repräsentiert sein, die jeweils einer der Richtungen des Straßensegments zugeordnet sein können. Alternativ oder zusätzlich kann ein Orientierungspunkt in einer dünn besetzten Karte durch eine Objekttypklassifizierung repräsentiert sein. Beispielsweise kann ein semantisches Schild (d. h. ein Orientierungspunkt), das irgendeine Klasse von Schildern enthalten kann, für die es eine standardisierte Bedeutung gibt (z.B. Geschwindigkeitsbegrenzungsschilder, Warnschilder, Richtungsschilder usw.), in einer dünn besetzten Karte durch eine Objekttypklassifizierung (z.B. ein Stoppschild, ein Geschwindigkeitsbegrenzungsschild usw.) repräsentiert sein. Alternativ oder zusätzlich kann Orientierungspunkt in einer dünn besetzten Karte durch einen oder mehrere Objektdeskriptoren repräsentiert sein. Beispielsweise kann ein nicht-semantisches Schild, das irgendein Schild enthalten kann, das nicht einer standardisierten Bedeutung zugeordnet ist (z. B. allgemeine Werbeschilder, Schilder zur Kennzeichnung von Geschäftsbetrieben usw.), in einer dünn besetzten Karte durch einen oder mehrere Objektdeskriptoren (z. B. den Inhalt des Werbeschildes) repräsentiert sein.
-
In einigen Ausführungsformen kann eine dünn besetzte Karte LIDAR-Daten und/oder Bilddaten in Bezug auf einen Orientierungspunkt enthalten. Beispielsweise kann ein Fahrzeug (z.B. das Fahrzeug 3220), wie vorstehend beschrieben, LIDAR-Daten und/oder Bilddaten, die eine Repräsentation eines Orientierungspunktes in LIDAR-Daten und/oder Bilddaten enthalten können, an den Server 3210 senden. Der Server 3210 kann die Daten analysieren und einen Orientierungspunkt in den LIDAR-Daten (z. B. in Form von Punktwolkeninformationen) und/oder Bilddaten (z. B. in Form eines oder mehrerer Bilder) identifizieren. Der Server 3210 kann auch relevante LIDAR- und/oder Bilddaten dem identifizierten Bild zuordnen und die relevanten LIDAR- und/oder Bilddaten in eine dünn besetzte Karte aufnehmen. Beispielsweise kann der Server 3210 die Repräsentation eines Orientierungspunktes in den Punktwolkeninformationen und/oder einem oder mehreren Bilder, die von einem Punkt in einer Sollbewegungsbahn (z. B. der in 35B dargestellte Sollbewegungsbahn 3531) aufgenommen wurden, in eine dünn besetzte Karte (z. B. die dünn besetzte Karte 3500) aufnehmen.
-
Obwohl 32 einen Server 3210 zeigt, wird ein Fachmann verstehen, dass das System 3200 einen oder mehrere Server 3210 enthalten kann, die einzeln oder in Kombination die in dieser Anmeldung offenbarten Funktionen des Servers 3210 ausführen. Beispielsweise kann Server 3210 eine Cloud-Server-Gruppe bilden, die zwei oder mehr Server umfasst, die die hier offenbarten Funktionen ausführen. Der Begriff „Cloud-Server“ bezieht sich auf eine Computerplattform, die Dienste über ein Netz, wie z. B. das Internet, bereitstellt. In dieser Beispielkonfiguration kann der Server 3210 virtuelle Maschinen verwenden, die nicht notwendigerweise einer einzelnen Hardware entsprechen. Beispielsweise können Rechen- und/oder Speicherkapazitäten implementiert werden, indem geeignete Abschnitte der Rechen-/Speicherleistung aus einer skalierbaren Quelle, wie z. B. einem Datenzentrum oder einer verteilten Rechenumgebung, zugewiesen werden. In einem Beispiel kann der Server 3210 die hier beschriebenen Verfahren unter Verwendung kundenspezifischer, fest verdrahteter Logik, einer oder mehrerer anwendungsspezifischer integrierter Schaltungen (ASICs) oder feldprogrammierbarer Gatter-Arrays (FPGAs), von Firmware und/oder Programmlogik implementieren, die in Kombination mit dem Computersystem bewirken, dass der Server 3210 eine Spezialmaschine ist.
-
Das Netz 3230 kann konfiguriert sein, Kommunikation zwischen den Komponenten des Systems 3200 zu unterstützen. Das Netz 3230 kann drahtgebundene und drahtlose Kommunikationsnetze enthalten, wie z. B. ein lokales Netz (LAN), ein Weitbereichsnetz (WAN), ein Computernetz, ein Drahtlosnetz, ein Telekommunikationsnetz oder dergleichen oder eine Kombination daraus.
-
Die Datenbank 3240 kann konfiguriert sein, Informationen und Daten für eine oder mehrere Komponenten des Systems 3200 zu speichern. Beispielsweise kann die Datenbank 3240 die Daten (z. B. Kartendaten) für den Server 3210 speichern. Ein oder mehrere Fahrzeuge 3220 können in der Datenbank 3240 gespeicherte Kartendaten beispielsweise über das Netz 3230 erhalten.
-
33 stellt einen beispielhaften Server konsistent mit offenbarten Ausführungsformen dar. Wie in 28 dargestellt, kann der Server 2710 wenigstens einen Prozessor (z. B. den Prozessor 2801), einen Speicher 2802, wenigstens eine Speichervorrichtung (z. B. die Speichervorrichtung 2803), einen Kommunikationsanschluss 2804 und eine I/O-Vorrichtung 2805 enthalten.
-
[01] Der Prozessor 3301 kann konfiguriert sein, eine oder mehrere der in dieser Offenbarung beschriebenen Funktionen des Servers 3210 auszuführen. Der Prozessor 3301 kann einen Mikroprozessor, Vorprozessoren (z. B. einen Bildvorprozessor), eine Grafikverarbeitungseinheit (GPU), eine zentrale Verarbeitungseinheit (CPU), Unterstützungsschaltungen, digitale Signalprozessoren, integrierte Schaltungen, Speicher oder irgendwelche anderen Typen von Vorrichtungen, die zum Ablaufen von Anwendungen oder Ausführen einer Berechnungsaufgabe geeignet sind, enthalten. In einigen Ausführungsformen kann der Prozessor 3301 irgendeine Art von Einzel- oder Mehrkernprozessor, Mikrosteuereinheiten für mobile Vorrichtungen, einer zentralen Verarbeitungseinheit usw. enthalten. Verschiedene Verarbeitungsvorrichtungen können verwendet werden, die beispielsweise Prozessoren von Herstellern wie Intel®, AMD® usw. oder GPUs von Herstellern wie NVIDIA®, ATI® usw. enthalten und verschiedene Architekturen (z. B. x86-Prozessor, ARME usw.) enthalten können. Jede der hier offenbarten Verarbeitungsvorrichtungen kann konfiguriert sein, spezielle Funktionen auszuführen. Das Konfigurieren einer Verarbeitungsvorrichtung, wie z. B. eines der beschriebenen Prozessoren oder einer anderen Steuereinheit oder eines anderen Mikroprozessors, zum Ausführen spezieller Funktionen kann das Programmieren von computerausführbaren Anweisungen und das Verfügbarmachen dieser Anweisungen für die Verarbeitungsvorrichtung zur Ausführung während des Betriebs der Verarbeitungsvorrichtung enthalten. In einigen Ausführungsformen kann das Konfigurieren einer Verarbeitungsvorrichtung direktes Programmieren der Verarbeitungsvorrichtung mit Architekturanweisungen enthalten. Beispielsweise können Verarbeitungsvorrichtungen wie z. B. feldprogrammierbare Gatter-Arrays (FPGAs), anwendungsspezifische integrierte Schaltungen (ASICs) und dergleichen unter Verwendung beispielsweise einer oder mehrerer Hardwarebeschreibungssprachen (HDLs) konfiguriert werden.
-
Der Server 3210 kann außerdem einen Speicher 3302 enthalten, der Anweisungen für verschiedene Komponenten des Servers 3210 speichern kann. Beispielsweise kann der Speicher 3302 Anweisungen speichern, die dann, wenn sie durch den Prozessor 3301 ausgeführt werden, konfiguriert sein können, den Prozessor 3301 zu veranlassen, eine oder mehrere hier beschriebene Funktionen auszuführen. Der Speicher 3302 kann irgendeine Anzahl von Direktzugriffsspeichern, Festwertspeichern, Flash-Speichern, Plattenlaufwerken, optischen Speichern, Bandspeichern, herausnehmbaren Speichern und anderen Speichertypen enthalten. In einem Fall kann der Speicher 3302 von dem Prozessor 3301 getrennt sein. In einem anderen Fall kann der Speicher 3302 in den Prozessor 3301 integriert sein.
-
Die Speichervorrichtung 3303 kann konfiguriert sein, verschiedene Daten und Informationen für eine oder mehrere Komponenten des Servers 3210 zu speichern. Beispielsweise kann die Speichervorrichtung 3303 Kartendaten speichern. Der Server 3210 kann die Kartendaten basierend auf den von einem oder mehreren Fahrzeugen 3220 empfangenen Daten und/oder Informationen aktualisieren. Der Server 3210 kann auch die aktualisierten Kartendaten in die Speichervorrichtung 3303 speichern. Die Speichervorrichtung 3303 kann eine oder mehrere Festplatten, Bänder, ein oder mehrere Festkörperlaufwerke, irgendeine Vorrichtung, die zum Schreiben und Lesen von Daten geeignet ist, oder dergleichen oder eine Kombination davon enthalten.
-
Der Kommunikationsanschluss 3304 kann konfiguriert sein, die Datenkommunikation zwischen dem Server 3210 und einer oder mehreren Komponenten des Systems 3200 über das Netz 3230 zu unterstützen. Beispielsweise kann der Kommunikationsanschluss 3304 konfiguriert sein, Daten von einer oder mehreren Komponenten des Systems 100 über ein oder mehrere öffentliche oder private Netze, die das Internet, ein Intranet, ein WAN (Weitbereichsnetz), ein MAN („Metropolitan-Area Network“), ein Drahtlosnetz, das mit den IEEE 802. 1 1a/b/g/n-Standards kompatibel ist, eine Standleitung oder dergleichen enthält, zu empfangen und an sie zu senden.
-
Die I/O-Vorrichtung 3305 kann konfiguriert sein, Eingaben von dem Benutzer des Servers 3210 zu empfangen, und eine oder mehrere Komponenten des Servers 3210 können in Reaktion auf die empfangene Eingaben eine oder mehrere Funktionen ausführen. In einigen Ausführungsformen kann die I/O-Vorrichtung 3305 eine Schnittstelle enthalten, die auf einem berührungssensitiven Bildschirm angezeigt wird. Die I/O-Vorrichtung 3305 kann auch konfiguriert sein, Informationen und/oder Daten an den Benutzer auszugeben. Beispielsweise kann die I/O-Vorrichtung eine Anzeigevorrichtung enthalten, die konfiguriert ist, Kartendaten anzuzeigen.
-
34 stellt ein beispielhaftes Fahrzeug konsistent mit offenbarten Ausführungsformen dar. Wie in 34 dargestellt, kann das Fahrzeug 3400 wenigstens einen Prozessor (z. B. den Prozessor 3401), einen Speicher 3402, wenigstens eine Speichervorrichtung (z. B. die Speichervorrichtung 3403), einen Kommunikationsanschluss 3404, eine I/O-Vorrichtung 3405, einen oder mehrere Sensoren 3406, ein LIDAR-System 3407 und ein Navigationssystem 3408 enthalten. In einigen Ausführungsformen können ein oder mehrere Fahrzeuge 3220 unter Verwendung einer oder mehrerer Komponenten des Fahrzeugs 3400 implementiert sein.
-
Der Prozessor 3401 kann programmiert sein, eine oder mehrere der in dieser Offenbarung beschriebenen Funktionen des Fahrzeugs 3400 auszuführen. Der Prozessor 3401 kann einen Mikroprozessor, Vorprozessoren (z. B. einen Bildvorprozessor), eine Grafikverarbeitungseinheit (GPU), eine zentrale Verarbeitungseinheit (CPU), Unterstützungsschaltungen, digitale Signalprozessoren, integrierte Schaltungen, Speicher oder irgendwelche anderen Typen von Vorrichtungen, die zum Ablaufen von Anwendungen oder Ausführen einer Berechnungsaufgabe geeignet sind, enthalten. In einigen Ausführungsformen kann der Prozessor 3401 irgendeine Art von Einzel- oder Mehrkernprozessor, Mikrosteuereinheiten für mobile Vorrichtungen, eine zentrale Verarbeitungseinheit usw. enthalten. Verschiedene Verarbeitungsvorrichtungen können verwendet werden, die beispielsweise Prozessoren von Herstellern wie Intel®, AMD® usw. oder GPUs von Herstellern wie NVIDIA®, ATI® usw. enthalten und verschiedene Architekturen (z. B. x86-Prozessor, ARME usw.) enthalten können. Jede der hier offenbarten Verarbeitungsvorrichtungen kann konfiguriert sein, spezielle Funktionen auszuführen. Das Konfigurieren einer Verarbeitungsvorrichtung, wie z. B. eines der beschriebenen Prozessoren oder einer anderen Steuereinheit oder eines anderen Mikroprozessors, zum Ausführen spezieller Funktionen kann das Programmieren von computerausführbaren Anweisungen und das Verfügbarmachen dieser Anweisungen für die Verarbeitungsvorrichtung zur Ausführung während des Betriebs der Verarbeitungsvorrichtung enthalten. In einigen Ausführungsformen kann das Konfigurieren einer Verarbeitungsvorrichtung direktes Programmieren der Verarbeitungsvorrichtung mit Architekturanweisungen enthalten. Beispielsweise können Verarbeitungsvorrichtungen wie z. B. feldprogrammierbare Gatter-Arrays (FPGAs), anwendungsspezifische integrierte Schaltungen (ASICs) und dergleichen unter Verwendung beispielsweise einer oder mehrerer Hardwarebeschreibungssprachen (HDLs) konfiguriert werden.
-
Das Fahrzeug 3400 kann außerdem einen Speicher 3402 enthalten, der Anweisungen für verschiedene Komponenten des Fahrzeugs 3400 speichern kann. Beispielsweise kann der Speicher 3402 Anweisungen speichern, die dann, wenn sie durch den Prozessor 3401 ausgeführt werden, konfiguriert sein können, den Prozessor 3401 zu veranlassen, eine oder mehrere hier beschriebene Funktionen des Prozessors 3401 auszuführen. Der Speicher 3402 kann irgendeine Anzahl von Direktzugriffsspeichern, Festwertspeichern, Flash-Speichern, Plattenlaufwerken, optischen Speichern, Bandspeichern, herausnehmbaren Speichern und anderen Speichertypen enthalten. In einem Fall kann der Speicher 3402 von dem Prozessor 3401 getrennt sein. In einem anderen Fall kann der Speicher 3402 in den Prozessor 3401 integriert sein. In einigen Ausführungsformen kann der Speicher 3402 Software zum Ausführen einer oder mehrerer Berechnungsaufgaben sowie ein trainiertes System, wie z. B. ein neuronales Netz oder ein tiefes neuronales Netz, enthalten.
-
Die Speichervorrichtung 3403 kann konfiguriert sein, verschiedene Daten und Informationen für eine oder mehrere Komponenten des Fahrzeugs 3400 zu speichern. Die Speichervorrichtung 3403 kann eine oder mehrere Festplatten, Bänder, ein oder mehrere Festkörperlaufwerke, irgendeine Vorrichtung, die zum Schreiben und Lesen von Daten geeignet ist, oder dergleichen oder eine Kombination davon enthalten. Beispielsweise kann die Speichervorrichtung 3403 konfiguriert sein, die Daten einer oder mehrerer Karten zu speichern. Als Beispiel kann die Speichervorrichtung 3403 Daten einer dünn besetzten Karte, die einen oder mehrere einem Straßensegment zugeordnete Orientierungspunkte und eine oder mehrere dem Straßensegment zugeordnete Sollbewegungsbahnen enthalten kann, speichern
-
Der Kommunikationsanschluss 3404 kann konfiguriert sein, die Datenkommunikation zwischen dem Fahrzeug 3400 und einer oder mehreren Komponenten des Systems 3200 über das Netz 3230 zu unterstützen. Beispielsweise kann der Kommunikationsanschluss 3404 konfiguriert sein, Daten von dem Server 3210 über ein oder mehrere öffentliche oder private Netze, die das Internet, ein Intranet, ein WAN (Weitbereichsnetz), ein MAN („Metropolitan-Area Network“), ein Drahtlosnetz, das mit den IEEE 802.1 1a/b/g/n-Standards kompatibel ist, eine Standleitung oder dergleichen enthält, zu empfangen und an ihn zu senden.
-
Die I/O-Vorrichtung 3405 kann konfiguriert sein, Eingaben von dem Benutzer des Servers 3210 zu empfangen, und eine oder mehrere Komponenten des Servers 3210 können in Reaktion auf die empfangene Eingaben eine oder mehrere Funktionen ausführen. In einigen Ausführungsformen kann die I/O-Vorrichtung 3405 eine Schnittstelle enthalten, die auf einem berührungssensitiven Bildschirm angezeigt wird. Die I/O-Vorrichtung 3405 kann auch konfiguriert sein, Informationen und/oder Daten an den Benutzer auszugeben. Beispielsweise kann die I/O-Vorrichtung eine Anzeigevorrichtung enthalten, die konfiguriert ist, eine Karte anzuzeigen. In einigen Ausführungsformen kann das Fahrzeug 3400 Daten der Karte (oder wenigstens einen Abschnitt davon) von dem Server 3210 empfangen, beispielsweise über das Netz 3230.
-
Der Sensor 3406 kann konfiguriert sein, Informationen in Bezug auf das Fahrzeug 3400 und/oder die Umgebung des Fahrzeugs 3400 zu sammeln. Der Sensor 3406 kann eines oder mehrere aus einem Bildsensor (z. B. eine Kamera), einer Positionsbestimmungsvorrichtung (z. B. einer Vorrichtung des globalen Positionsbestimmungssystems (GPS-Vorrichtung)), einem Beschleunigungsmesser, einem Gyrosensor, einem Geschwindigkeitsmesser oder dergleichen oder eine Kombination davon enthalten. Beispielsweise kann das Fahrzeug 3400 einen Bildsensor (z. B. eine Kamera) enthalten, der konfiguriert ist, ein oder mehrere Bilder seiner Umgebung, die die Repräsentation eines Orientierungspunktes (oder wenigstens eines Abschnitts davon) enthalten können, aufzunehmen. Als ein weiteres Beispiel kann das Fahrzeug 3400 eine GPS-Vorrichtung enthalten, die konfiguriert ist, Positionsbestimmungsdaten, die der den Positionen des Fahrzeugs 3400 zugeordnet sind, über eine Zeitspanne hinweg zu sammeln.
-
Das LIDAR-System 3407 kann eine oder mehrere LIDAR-Einheiten enthalten. In einigen Ausführungsformen können die eine oder die mehreren LIDAR-Einheiten auf einem Dach des Fahrzeugs 3400 positioniert sein. Eine solche Einheit kann eine sich drehende Einheit enthalten, die konfiguriert ist, LIDAR-Reflexionsinformationen innerhalb eines 360-Grad-Sichtfelds um das Fahrzeug 3400 oder aus einem beliebigen Teilsegment des 360-Grad-Sichtfelds (z. B. eines oder mehrerer FOVs, die jeweils weniger als 360 Grad repräsentieren) zu sammeln. In einigen Ausführungsformen kann eine LIDAR-Einheit an einem vorne gelegenen Ort auf dem Fahrzeug 3400 positioniert sein (z. B. in der Nähe der Scheinwerfer, im Frontgrill, in der Nähe der Nebelscheinwerfer, in einem vorderen Stoßfänger oder an irgendeinem anderen geeigneten Ort). In einigen Fällen können eine oder mehrere LIDAR-Einheiten, die an einem vorderen Abschnitt des Fahrzeugs 3400 installiert sind, Reflexionsinformationen aus einem Sichtfeld in einer Umgebung vor dem Fahrzeug 3400 sammeln. Die durch das LIDAR-System 3407 gesammelten Daten können dem Prozessor 3401 zur Verfügung gestellt werden. Alternativ oder zusätzlich können die Daten über das Netz 3230 an den Server 3210 und/oder die Datenbank 3240 gesendet werden.
-
Irgendein geeigneter Typ einer LIDAR-Einheit kann in dem Fahrzeug 3400 enthalten sein. In einigen Fällen kann das LIDAR-System 3407 eine oder mehrere Blitz-LIDAR-Einheiten (z. B. 3D-Blitz-LIDAR), bei denen ein gesamtes LIDAR-Sichtfeld (LIDAR-FOV) mit einem einzigen Laserimpuls beleuchtet wird, und einen Sensor, der Zeilen und Spalten von Pixeln zur Aufzeichnung der zurückgegebenen Lichtstärke und Flugzeit-/Tiefeninformationen enthält, enthalten. Solche Blitzsysteme können eine Szene beleuchten und mehrmals pro Sekunde LIDAR-„Bilder“ aufnehmen. Abtastende LIDAR-Einheiten können ebenfalls eingesetzt werden. Solche abtastenden LIDAR-Einheiten können sich auf eine oder mehrere Techniken zur Streuung eines Laserstrahls über ein spezielles FOV stützen. In einigen Fällen kann eine abtastende LIDAR-Einheit einen Abtastspiegel enthalten, der einen Laserstrahl ablenkt und auf Objekte innerhalb des FOV richtet. Abtastspiegel können sich um volle 360 Grad drehen oder können sich entlang einer einzelnen Achse oder mehrerer Achsen über weniger als 360 Grad drehen, um den Laser auf ein vorbestimmtes FOV zu richten. In einigen Fällen können LIDAR-Einheiten eine horizontale Zeile abtasten. In anderen Fällen kann eine LIDAR-Einheit mehrere horizontale Zeilen innerhalb eines FOV abtasten, so dass effektiv ein bestimmtes FOV mehrmals pro Sekunde gerastert wird.
-
Die LIDAR-Einheiten in dem LIDAR-System 3407 können irgendeine geeignete Laserquelle enthalten. In einigen Ausführungsformenkönnen die LIDAR-Einheiten einen Dauerlaser einsetzen. In anderen Fällen können die LIDAR-Einheiten gepulste Laseremissionen verwenden. Zusätzlich kann irgendeine geeignete Laserwellenlänge eingesetzt werden. In einigen Fällen kann eine Wellenlänge im Bereich von etwa 600 nm bis etwa 1000 nm verwendet werden.
-
Die LIDAR-Einheit(en) in dem LIDAR-System 3407 kann/können auch irgendeinen geeigneten Sensortyp enthalten und irgendeinen geeigneten Typ einer Ausgabe bereitstellen. In einigen Fällen können die Sensoren der LIDAR-Einheiten Festkörper-Photodetektoren, wie z. B. eine oder mehrere Photodioden oder Photomultiplier, enthalten. Die Sensoren können auch eine oder mehrere CMOS- oder CCD-Vorrichtungen mit einer beliebigen Anzahl von Pixeln enthalten. Diese Sensoren können für Laserlicht, das von einer Szene innerhalb des LIDAR FOV reflektiert wird, empfindlich sein. Die Sensoren können verschiedene Typen von Ausgaben aus einer LIDAR-Einheit ermöglichen. In einigen Fällen kann eine LIDAR-Einheit Lichtstärkenrohwerte und Flugzeitinformationen ausgeben, die für das reflektierte Laserlicht, das an jedem Sensor oder an jedem Pixel oder jeder Teilkomponente eines speziellen Sensors gesammelt wurde, repräsentativ sind. Zusätzlich oder alternativ kann eine LIDAR-Einheit eine Punktwolke (z. B. eine 3D-Punktwolke) ausgeben, die Lichtstärke und Tiefen-/Abstandsinformationen relativ zu jedem gesammelten Punkt enthalten kann. LIDAR-Einheiten können auch verschiedene Arten von Tiefenkarten ausgeben, die für die Lichtreflexionsamplitude und den Abstand zu Punkten innerhalb eines Sichtfelds repräsentativ sind. LIDAR-Einheiten können Tiefen- oder Abstandsinformationen relativ zu speziellen Punkte innerhalb eines FOV dadurch bereitstellen, dass sie den Zeitpunkt festhalten, an dem das Licht der LIDAR-Lichtquelle ursprünglich zu dem FOV projiziert wurde, und einen Zeitpunkt aufzeichnen, zu dem das einfallende Laserlicht durch einen Sensor in der LIDAR-Einheit empfangen wird. Die Zeitdifferenz kann eine Flugzeit repräsentieren, die direkt mit der Umlaufstrecke zusammenhängen kann, die das einfallende Laserlicht von der Laserquelle zu einem reflektierenden Objekt und zurück zu der LIDAR-Einheit zurückgelegt hat. Das Überwachen der Flugzeitinformationen, die einzelnen Laserpunkten oder kleinen Segmenten eines LIDAR FOV zugeordnet sind, kann genaue Abstandsinformationen für mehrere Punkte innerhalb des FOV (z. B. das Abbilden auf selbst sehr kleine Merkmale von Objekten innerhalb des FOV) bereitstellen. In einigen Fällen können LIDAR-Einheiten komplexere Informationen ausgeben, wie z. B. Klassifizierungsinformationen, die eine oder mehrere Laserreflexionen mit einem Objekttyp, von dem die Laserreflexion erfasst wurde, korrelieren.
-
Das Navigationssystem 3408 kann konfiguriert sein, einen Fahrer des Fahrzeugs 3400 bei der Bedienung des Fahrzeugs 3400 zu unterstützen. Beispielsweise kann das Navigationssystem 3408 bestimmen, dass das Fahrzeug 3400 derzeit von einer Sollbewegungsbahn abweicht, und eine Meldung für den Fahrer erzeugen, die die Abweichung von der Sollbewegungsbahn angibt und die auf einer Anzeigevorrichtung angezeigt werden kann (z. B. durch Anzeigen der Sollbewegungsbahn und eines geschätzten Fahrwegs, der basierend auf der aktuellen Position und Fahrtrichtung des Fahrzeugs 3400 bestimmt wurde). Alternativ kann das Navigationssystem 3408 ein autonomes Fahrzeugnavigationssystem umfassen, das konfiguriert ist, die Bewegung des Fahrzeugs 3400 zu steuern, wie an anderer Stelle in dieser Offenbarung beschrieben. Beispielsweise kann das Navigationssystem 3408 eine durch den Prozessor 3401 bestimmte Navigationsaktion ausführen, wenn das Fahrzeug 3400 ein Straßensegment durchfährt (z. B. eines oder mehrere aus Lenken, Abbremsen oder Beschleunigen des Fahrzeugs). In einigen Ausführungsformen kann das Navigationssystem 3408 ein weiterentwickeltes Fahrerassistenzsystem (ADAS) enthalten. In einigen Ausführungsformen kann das Navigationssystem 3408 auf eine dünn besetzte Karte zugreifen, die in der Speichervorrichtung oder dem computerlesbaren Medium, das an Bord des Fahrzeugs 3400 bereitgestellt ist, gespeichert ist, um Navigationsanweisungen zum Führen des Fahrzeugs 3400 zu erzeugen, während das Fahrzeug ein Straßensegment durchfährt.
-
35A stellt ein beispielhaftes Straßensegment konsistent mit offenbarten Ausführungsformen dar. Wie in 35A dargestellt ist, fährt das Fahrzeug 3400 auf der Fahrspur 3511 und bewegt sich auf die Fahrspur 3512 zu und fährt in sie ein. Die Fahrspur 3512 und die Fahrspur 3513 sind durch einen Fahrbahnteiler 3514 getrennt, und die Fahrzeuge auf der Fahrspur 3512 und auf der Fahrspur 3513 können sich in entgegengesetzter Richtung bewegen. Ein Orientierungspunkt 3521 kann sich in der Nähe der Kreuzung von Fahrbahn 3511 und Fahrbahn 3512 befinden, und ein Orientierungspunkt 3522 kann sich entlang der Fahrbahn 3512 befinden. Als Beispiel kann der Orientierungspunkt 3521 ein Stoppschild sein, und der Orientierungspunkt 3522 kann ein Geschwindigkeitsbegrenzungsschild sein.
-
Das Fahrzeug 3400 kann eine dünn besetzte Karte 3500, wie sie in 35B dargestellt ist, beispielsweise von dem Server 3210 konsistent mit den offenbarten Ausführungsformen empfangen. Die dünn besetzte Karte 3500 kann einen kartierten Navigationsorientierungspunkt 3571 und einen kartierten Navigationsorientierungspunkt 3572 enthalten, die den in 35A dargestellten Orientierungspunkt 3521 bzw. Orientierungspunkt 3522 entsprechen können. Die dünn besetzte Karte 3500 kann auch eine Sollbewegungsbahn 3531 für ein Fahrzeug, das von der Fahrspur 3511 in die Fahrspur 3512 einfährt, eine Sollbewegungsbahn 3532 für ein Fahrzeug, das sich auf der Fahrspur 3512 bewegt, und eine Sollbewegungsbahn 3532 für ein Fahrzeug, das sich auf der Fahrspur 3513 bewegt, enthalten. In einigen Ausführungsformen kann die dünn besetzte Karte 3500 anderen dünn besetzten Karten ähnlich sein, die in dieser Offenbarung bereitgestellt sind (z. B. der vorstehend beschriebenen dünn besetzten Karte 800), und sie kann basierend auf verschiedenen Verfahren erzeugt werden, wie sie an anderer Stelle in dieser Offenbarung beschrieben sind (z. B. dem vorstehend beschriebenen Verfahren zum Erzeugen der dünn besetzten Karte 800).
-
35C stellt das Fahrzeug 3400 beim Einfahren in die Fahrspur 3512 konsistent mit den offenbarte Ausführungsformen dar. Das Fahrzeug 3400 kann konfiguriert sein, Punktwolkeninformationen von dem LIDAR-System 3407 (das sich an Bord des Fahrzeugs 3400 befinden kann) zu empfangen. Die Punktwolkeninformationen können repräsentativ für die Abstände zu verschiedenen Objekten in der Umgebung des Fahrzeugs sein. Die Punktwolkeninformationen können beispielsweise Informationen über einen Abstand 3551 zu einem Orientierungspunkt 3521 und einen Abstand 3552 zu einem Orientierungspunkt 3522 enthalten. Das Fahrzeug 3400 kann konfiguriert sein, die empfangenen Punktwolkeninformationen mit wenigstens einem der kartierten Navigationsorientierungspunkte in der dünn besetzten Karte 3500 zu vergleichen, um eine LIDAR-basierte Ortsbestimmung des Fahrzeugs 3400 relativ zu der Sollbewegungsbahn 3531 bereitzustellen. Beispielsweise kann das Fahrzeug 3400 eine aktuelle Position des Fahrzeugs 3400 in Bezug auf die Sollbewegungsbahn 3531 basierend auf dem Abstand 3551 und dem Abstand 3552 (die basierend auf den empfangenen Punktwolkeninformationen bestimmt werden können) bestimmen. Das Fahrzeug 3400 kann auch konfiguriert sein, wenigstens eine Navigationsaktion für das Fahrzeug 3400 basierend auf der LIDAR-basierten Ortsbestimmung relativ zu der Sollbewegungsbahn 3531 zu bestimmen. Wie vorstehend beschrieben, kann das Fahrzeug 3400 beispielsweise konfiguriert sein, seine in 35C gezeigte aktuelle Position (entlang der tatsächlichen Bewegungsbahn 3541) relativ zu der Sollbewegungsbahn zu bestimmen 3531 und zu bestimmen, dass es von der Sollbewegungsbahn 3531 abweicht (z. B. auf der rechten Seite der Sollbewegungsbahn 3531). Das Fahrzeug 3400 kann auch wenigstens eine Navigationsaktion bestimmen, die beispielsweise Lenken in die Richtung nach links in dem Ausmaß, dass das Fahrzeug 3400 der Sollbewegungsbahn 3531 (und der Sollbewegungsbahn 3532, sobald es in die Fahrspur 3512 eingefahren ist) folgen kann, enthält. Das Fahrzeug 3400 kann ferner das Navigationssystem 3408 veranlassen, die bestimmte Navigationsaktion, die beispielsweise das Lenken in die Richtung nach links enthält, zu implementieren.
-
36 ist ein Ablaufplan, der einen beispielhaften Prozess 3600 zum Bestimmen einer Navigationsaktion für ein Trägerfahrzeug zeigt, konsistent mit offenbarten Ausführungsformen. In Schritt 3601 kann der Prozessor 3401 programmiert sein, von einer Entität, die sich entfernt zu dem Fahrzeug 3400 befindet, eine dünn besetzte Karte, die wenigstens einem durch das Fahrzeug 3400 zu durchfahrenden Straßensegment zugeordnet ist, zu empfangen. Beispielsweise kann der Prozessor 3401 die dünn besetzte Karte 3500 von dem Server 3210 über das Netz 3230 empfangen. Wie in 35B dargestellt ist, kann die dünn besetzte Karte 3500 den kartierten Navigationsorientierungspunkt 3571 und den kartierten Navigationsorientierungspunkt 3572 enthalten. Die dünn besetzte Karte 3500 kann auch eine Sollbewegungsbahn 3531 für ein Fahrzeug, das von der Fahrspur 3511 in die Fahrspur 3512 einfährt, eine Sollbewegungsbahn 3532 für ein Fahrzeug, das sich auf der Fahrspur 3512 bewegt, und eine Sollbewegungsbahn 3532 für ein Fahrzeug, das sich auf der Fahrspur 3513 bewegt, enthalten. In einigen Ausführungsformen kann die dünn besetzte Karte 3500 (die die kartierten Navigationsorientierungspunkte 3571 und den kartierten Navigationsorientierungspunkt 3572 sowie die Sollbewegungsbahnen 3531, 3532 und 3532 enthält) durch den Server 3210 basierend auf Fahrtinformationen, die von mehreren Fahrzeugen gesammelt wurden, die zuvor entlang des wenigstens einen Straßensegments gefahren sind, erzeugt werden, wie an anderer Stelle in dieser Offenbarung beschrieben ist (z. B. in Verbindung mit den vorstehend bereitgestellten Beschreibungen der dünn besetzten Karte 800).
-
In Schritt 3602 kann der Prozessor 3401 programmiert sein, Punktwolkeninformationen von dem LIDAR-System 3407 an Bord des Fahrzeugs 3400 zu empfangen. In einigen Ausführungsformen können die Punktwolkeninformationen Informationen enthalten, die repräsentativ für die Abstände zu verschiedenen Objekten in der Umgebung des Fahrzeugs 3400 sind. Wie an anderer Stelle in dieser Offenbarung kann das LIDAR-System 3407 eine Laserquelle enthalten, die konfiguriert ist, einen Laser (z. B. einen Dauerlaser oder gepulste Laseremissionen) in das Sichtfeld des LIDAR-Systems 3407 zu emittieren. Das LIDAR-System 3407 kann einen oder mehrere Sensoren enthalten, die konfiguriert sind, die Reflexionen des Lasers von einem oder mehreren Objekten in dem Sichtfeld zu detektieren. Das LIDAR-System 2907 kann eine Punktwolke (z. B. eine 3D-Punktwolke) erzeugen, die Lichtstärke und Tiefen-/Abstandsinformationen relativ zu jedem von dem/den Sensor(en) erfassten Punkt enthält. Als Beispiel kann der Prozessor 3401 programmiert sein, Punktwolkeninformationen, die für den Abstand 3551 zu dem Orientierungspunkt 3521 und den Abstand 3552 zu dem Orientierungspunkt 3522 repräsentativ sind, wie in 35C dargestellt ist, zu empfangen.
-
In einigen Ausführungsformen können die durch den Prozessor 3401 in Schritt 3602 empfangenen Punktwolkeninformationen Tiefen- (oder Abstands-) Informationen über spezielle Objekttypen enthalten, um Verarbeitungsbandbreite einzusparen. Beispielsweise können die Punktwolkeninformationen Punktwolkeninformationen enthalten, die einem oder mehreren vertikal orientierten Objekten in der Umgebung des Fahrzeugs 3400 zugeordnet sind. Bei vertikal orientierten Objekten ist die Wahrscheinlichkeit, dass sie sich bewegen, vergleichsweise geringer als bei horizontal orientierten Objekten wie z. B. Fahrzeugen. Als Beispiel können die Punktwolkeninformationen wenigstens eines von einem Wegweiser, einem Lichtmast, einem Straßenleitpfostenstütze, einer Leitplankenstütze oder einem Baumstamm enthalten.
-
In Schritt 3603 kann der Prozessor 3401 programmiert sein, die empfangenen Punktwolkeninformationen mit wenigstens einer der mehreren kartierten Navigationsorientierungspunkte in der dünn besetzten Karte zu vergleichen, um eine LIDAR-basierte Ortsbestimmung des Fahrzeugs 3400 in Bezug auf die wenigstens eine Sollbewegungsbahn bereitzustellen. Die LIDAR-basierte Ortsbestimmung des Fahrzeugs 3400 bezieht sich auf das Bestimmen einer Position des Fahrzeugs 3400 basierend auf den durch das LIDAR-System 3407 aufgenommenen Daten (und in einigen Ausführungsformen in Kombination mit anderen Datentypen). Beispielsweise kann das LIDAR-System 3407 Reflexionsinformationen aus seinem Sichtfeld in der Umgebung des Fahrzeugs 3400 sammeln und die gesammelten LIDAR-Daten zur weiteren Verarbeitung an den Prozessor 3401 senden. Der Prozessor 3401 kann programmiert sein, basierend auf den LIDAR-Daten den Abstand des Fahrzeugs 3400 von einem Orientierungspunkt (z. B. dem in 35C dargestellten Orientierungspunkt 3521) zu bestimmen. Der Prozessor 3401 kann auch programmiert sein, Repräsentationen in den Punktwolkeninformationen eines kartierten Navigationsorientierungspunktes in einer dünn besetzten Karte zu identifizieren (z.B. des in 35B dargestellten kartierte Navigationsorientierungspunktes 3571) und die Position des Fahrzeugs 3400 relativ zu einer Sollbewegungsbahn (z.B. der in 35C dargestellte Sollbewegungsbahn 3531) basierend auf dem bestimmten Abstand des Fahrzeugs 3400 zu dem Orientierungspunkt 3521 (z.B. in 35C dargestellten Abstand 3551) zu bestimmen.
-
In einigen Ausführungsformen kann der Prozessor 3401 programmiert sein, eine LIDAR-basierte Ortsbestimmung des Fahrzeugs 3400 relativ zu einer Sollbewegungsbahn basierend auf einem oder mehreren Aspekten eines kartierten Navigationsorientierungspunktes, der in den Punktwolkeninformationen repräsentiert ist, bereitzustellen. Beispielsweise kann der Prozessor 3401 programmiert sein, in den Punktwolkeninformationen eine Repräsentation eines kartierten Navigationsorientierungspunktes (z. B. des in 35B dargestellten kartierten Navigationsorientierungspunktes 3571) zu identifizieren. Der Prozessor 3401 kann auch programmiert sein, einen oder mehrere Aspekte des kartierten Navigationsorientierungspunktes zu bestimmen. Beispielsweise kann der Prozessor 3401 wenigstens eines aus einer Größe oder eines zweidimensionalen Ortes innerhalb eines LIDAR-Abtastrahmens der Repräsentation des kartierten Navigationsorientierungspunktes in den durch das LIDAR-System 3407 aufgenommenen Punktwolkeninformationen bestimmen. Der Prozessor 3401 kann auch für eine erwartete Menge von Eigenschaften für den kartierten Navigationsorientierungspunkt, die basierend auf der dünn besetzten Karte bestimmt werden (und die die Größe, der Ort und/oder die Form des Orientierungspunktes enthalten können), programmiert sein. Eine erwartete Eigenschaft eines kartierten Navigationsorientierungspunktes bezieht sich auf eine Eigenschaft des kartierten Navigationsorientierungspunktes, der in den Punktwolkeninformationen von einem Punkt auf einer Sollbewegungsbahn aus gesehen repräsentiert wäre. Beispielsweise kann der Prozessor 3401 einen Punkt auf der Sollbewegungsbahn 3531 (dargestellt in 35C) bestimmen, der möglicherweise der aktuellen Position des Fahrzeugs 3400 entspricht, und eine erwarteten Menge von Eigenschaften für den kartierten Navigationsorientierungspunkt 3571 (die beispielsweise seine Größe und seinen zweidimensionalen Ort enthält) von diesem Punkt auf der Sollbewegungsbahn 3531 aus gesehen bestimmen. Als Beispiel kann der Prozessor 3401, wie vorstehend beschrieben, einen Abstand des Fahrzeugs 3400 von dem Orientierungspunkt 3521 basierend auf den durch das LIDAR-System 3407 aufgenommenen Punktwolkeninformationen bestimmen. Der Prozessor 3401 kann auch einen Punkt auf der Sollbewegungsbahn 3531, der den gleichen Abstand von dem kartierten Navigationsorientierungspunkt 3571 in der dünn besetzten Karte 3500 aufweist, bestimmen. Der Prozessor 3401 kann ferner eine erwartete Menge von Eigenschaften für den kartierten Navigationsorientierungspunkt 3571 (die beispielsweise die Größe und/oder den zweidimensionalen Ort des Orientierungspunktes 3512 enthält) von diesem Punkt auf der Sollbewegungsbahn 3531 aus gesehen bestimmen. Der Prozessor 3401 kann einen oder mehrere Aspekte des kartierten Navigationsorientierungspunktes, die in den Punktwolkeninformationen repräsentiert sind (z.B. eine Größe des kartierten Navigationsorientierungspunktes 3571, die in den Punktwolkeninformationen erscheint), mit einer erwarteten Menge von Eigenschaften für den kartierten Navigationsorientierungspunkt, die basierend auf der dünn besetzten Karte bestimmt wurden (z.B. eine erwartete Größe des kartierten Navigationsorientierungspunktes 3571), vergleichen. Der Prozessor 3401 kann auch eine aktuelle Position des Fahrzeugs 3400 relativ zu einer Sollbewegungsbahn (z. B. der in 35C dargestellten Sollbewegungsbahn 3531) basierend auf dem Vergleich bestimmen. Falls beispielsweise der Unterschied zwischen der Größe des in den Punktwolkeninformationen erscheinenden kartierten Navigationsorientierungspunktes 3571 und der erwarteten Größe des kartierten Navigationsorientierungspunktes 3571 kleiner als ein Schwellenwert ist, kann der Prozessor 3401 bestimmen, dass die aktuelle Position des Fahrzeugs 3400 auf der Sollbewegungsbahn 3531 ist. Falls andererseits der Unterschied größer ist als ein Schwellenwert, kann der Prozessor 3401 bestimmen, dass die aktuelle Position des Fahrzeugs 3400 außerhalb der Sollbewegungsbahn 3531 ist. Falls beispielsweise die Größe des kartierten Navigationsorientierungspunktes 3571, die in den Punktwolkeninformationen erscheint, kleiner ist als die erwartete Größe des kartierten Navigationsorientierungspunktes 3571, kann der Prozessor 3401 bestimmen, dass die aktuelle Position des Fahrzeugs 3400 auf der rechten Seite der Sollbewegungsbahn 3531 ist (wie in 35C dargestellt), weil das Fahrzeug 3400 weiter von dem Orientierungspunkt 3521 entfernt ist als von einer erwarteten Position in der Sollbewegungsbahn 3531.
-
In einigen Ausführungsformen kann der Prozessor 3401 programmiert sein, eine LIDAR-basierte Ortsbestimmung des Fahrzeugs 3400 relativ zu einer Sollbewegungsbahn basierend auf zwei oder mehr Orientierungspunkten, die in der Umgebung des Fahrzeugs 3400 detektiert wurden, bereitzustellen. Beispielsweise kann der Prozessor 3401 programmiert sein, in den Punktwolkeninformationen Repräsentationen von zwei kartierten Navigationsorientierungspunkten zu identifizieren. Der Prozessor 3401 kann auch programmiert sein, basierend auf den Punktwolkeninformationen die relativen Abstände zwischen einem dem Fahrzeug 3400 zugeordneten Referenzpunkt und jedem der kartierten Navigationsorientierungspunkte 3571 und kartierten Navigationsorientierungspunkte 3522 zu bestimmen. In einigen Ausführungsformen kann sich der Referenzpunkt auf dem LIDAR-System 3407 an Bord des Fahrzeugs 3400 befinden (z. B. kann das LIDAR-System 3407 auf oben auf dem Fahrzeugs 3400 installiert sein). Der Prozessor 3401 kann ferner programmiert sein, die aktuelle Position des Fahrzeugs 3400 relativ zu einer Sollbewegungsbahn (z.B. der in 35C dargestellte Sollbewegungsbahn 3531) basierend auf den relativen Abständen zwischen dem dem Fahrzeug 3400 zugeordneten Referenzpunkt und jedem der kartierten Navigationsorientierungspunkte (z.B. dem Abstand 3551 zu dem kartierten Navigationsorientierungspunkt 3571 und dem Abstand 3552 zu dem kartierten Navigationsorientierungspunkt 3572) zu bestimmen.
-
In einigen Ausführungsformen kann der Prozessor 3401 unter Verwendung eines trainierten neuronalen Netzes Repräsentationen von zwei kartierten Navigationsorientierungspunkten in den Punktwolkeninformationen identifizieren. Das trainierte neuronale Netz kann von dem Server 3210 über das Netz 3230 oder einen lokalen Speicher erhalten werden. Das trainierte neuronale Netz kann unter Verwendung mehrerer Trainingsmustern trainiert werden.
-
In einigen Ausführungsformen kann der Prozessor 3401 programmiert sein, eine LIDAR-basierte Ortsbestimmung des Fahrzeugs 3400 relativ zu einer Sollbewegungsbahn basierend auf zwei oder mehr LIDAR-Abtastungen bereitzustellen. Beispielsweise kann das LIDAR-System 3407 LIDAR-Daten in einer ersten LIDAR-Abtastung während einer ersten Zeitspanne aufnehmen (hier als erste LIDAR-Abtastungs-Punktwolke bezeichnet) und LIDAR-Daten in einer zweiten LIDAR-Abtastung während einer zweiten Zeitspanne aufnehmen (hier als zweite LIDAR-Abtastungs-Punktwolke bezeichnet). Der Prozessor 3401 kann programmiert sein, in der ersten LIDAR-Abtastungs-Punktwolke eine Repräsentation eines kartierten Navigationsorientierungspunktes zu identifizieren und basierend auf der ersten LIDAR-Abtastungs-Punktwolke einen ersten relativen Abstand zwischen einem dem Fahrzeug 3400 zugeordneten Referenzpunkt (z. B. von dem LIDAR-System 3407) und dem kartierten Navigationsorientierungspunkt zu bestimmen. Der Prozessor 3401 kann auch programmiert sein, in der zweiten LIDAR-Abtastungs-Punktwolke eine Repräsentation des kartierten Navigationsorientierungspunktes zu identifizieren und basierend auf der zweiten Abtastungs-Punktwolke einen zweiten relativen Abstand zwischen dem dem Fahrzeug 3400 zugeordneten Referenzpunkt und dem kartierten Navigationsorientierungspunkt zu bestimmen. Der Prozessor 3401 kann ferner eine aktuelle Position des Fahrzeugs 3400 relativ zu einer Sollbewegungsbahn basierend auf dem ersten und zweiten relativen Abstand bestimmen. Beispielsweise kann der Prozessor 3401 die Position des Fahrzeugs 3400 relativ zu einer Sollbewegungsbahn basierend auf den beiden relativen Abständen, die bei den beiden LIDAR-Abtastungen gemäß Triangulation (d. h. Bestimmung des Orts eines Punktes durch Bildung von Dreiecken zu dem Fahrzeug 3400 von bekannten Punkten) erhalten wurden, bestimmen.
-
In einigen Ausführungsformen kann der Prozessor 3401 bei der Bestimmung einer LIDAR-basierten Ortsbestimmung des Fahrzeugs 3400 relativ zu einer auf zwei oder mehr LIDAR-Abtastungen basierenden Sollbewegungsbahn programmiert sein, die Eigenbewegung des Fahrzeugs 3400 zwischen einem ersten Zeitpunkt, der der Erfassung der ersten LIDAR-Abtastpunktwolke zugeordnet ist, und einem zweiten Zeitpunkt, der der Erfassung der zweiten LIDAR-Abtastpunktwolke zugeordnet ist, zu berücksichtigen. Wie an anderer Stelle in dieser Offenbarung beschrieben, kann sich die Eigenbewegung des Trägerfahrzeugs auf irgendeine Umgebungsverschiebung des Trägerfahrzeugs in Bezug auf einen unbeweglichen Bezugspunkt oder ein unbewegliches Objekt beziehen. Beispielsweise kann, wie an anderer Stelle in dieser Offenbarung beschrieben, die Eigenbewegung der Fahrzeugkarosserie basierend auf einer Analyse des optischen Flusses der durch eine Kamera an Bord des Fahrzeugs 3400 aufgenommenen Bilder (oder anderen in dieser Offenbarung beschriebener Verfahren) geschätzt werden. Der Prozessor 3401 kann programmiert sein, bei der Bestimmung der Position des Fahrzeugs 3400 die Eigenbewegung zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt zu subtrahieren.
-
In einigen Ausführungsformen kann der Prozessor 3401 programmiert sein, eine bildbasierte Ortsbestimmung des Fahrzeugs 3400 relativ zu einer Sollbewegungsbahn basierend auf Bilddaten bereitzustellen. Beispielsweise kann der Prozessor 3401 programmiert sein, von einer Kamera an Bord des Fahrzeugs 3400 wenigstens ein aufgenommenes Bild, das eine Repräsentation wenigstens eines Abschnitts einer Umgebung des Fahrzeugs 3400 enthält, zu empfangen. Der Prozessor 3401 kann auch programmiert sein, in dem wenigstens einen aufgenommenen Bild Repräsentationen eines oder mehrerer kartierter Navigationsorientierungspunkte zu identifizieren (z. B. ein Bild, das den Orientierungspunkt 3522 enthält). Der Prozessor 3401 kann ferner programmiert sein, eine Position des Fahrzeugs 3400 relativ zu einer Sollbewegungsbahn (z. B. der Sollbewegungsbahn 3531) basierend auf der dünn besetzten Karte 3500 und basierend auf den Repräsentationen in dem wenigstens einen aufgenommenen Bild (das einen Orientierungspunkt 3522 enthalten kann) zu bestimmen, um eine bildbasierte Ortsbestimmung bereitzustellen. Wie an anderer Stelle in dieser Offenbarung beschrieben, kann eine dünn besetzte Karte beispielsweise eine Bildrepräsentation eines Orientierungspunktes (z. B. des Orientierungspunktes 3522), die von einem Punkt in der Sollbewegungsbahn 3531 aufgenommen wurde, enthalten. Der Prozessor 3401 kann die Bildrepräsentation des Orientierungspunktes 3522 in der dünn besetzten Karte 3500 mit der Bildrepräsentation des Orientierungspunktes 3522 in dem durch die Kamera an Bord des Fahrzeugs 3400 aufgenommenen Bild vergleichen, um eine Position des Fahrzeugs 3400 relativ zur Sollbewegungsbahn 3531 zu bestimmen. Falls beispielsweise die Bildrepräsentation des Orientierungspunktes 3522 in dem durch die Kamera an Bord des Fahrzeugs 3400 aufgenommenen Bild größer erscheint als die Bildrepräsentation des Orientierungspunktes 3522 in der dünn besetzten Karte 3500, kann der Prozessor 3401 bestimmen, dass sich das Fahrzeug 3400 auf der rechten Seite der Sollbewegungsbahn 3531 befindet (wie in 35C dargestellt ist).
-
In einigen Ausführungsformen kann der Prozessor 3401 programmiert sein, eine Position des Fahrzeugs 3400 basierend auf einer LIDAR-basierten Ortsbestimmung und einer bildbasierten Ortsbestimmung zu bestimmen. Beispielsweise kann der Prozessor 3401 programmiert sein, eine LIDAR-basierte Ortsbestimmung basierend auf von LIDAR-Daten vorzunehmen und eine bildbasierte Ortsbestimmung basierend auf Bilddaten zu bestimmen, wie an anderer Stelle in dieser Offenbarung beschrieben ist. Der Prozessor 3401 kann auch programmiert sein, eine Position des Fahrzeugs 3400 basierend auf der aus der LIDAR-basierten Ortsbestimmung erhaltenen Position und der aus der bildbasierten Ortsbestimmung erhaltenen Position zu bestimmen, indem er beispielsweise eine mittlere Position zwischen den beiden Positionen bestimmt. In einigen Ausführungsformen kann der Prozessor 3401 programmiert sein, dass er Gewichtungen auf die LIDAR-basierte Ortsbestimmung und die bildbasierte Ortsbestimmung anwendet, um zwei gewichtete Positionen zu bestimmen. Der Prozessor 3401 kann auch programmiert sein, eine Position des Fahrzeugs 3400 basierend auf den gewichteten Positionen zu bestimmen. Die Gewichtung, die auf eine LIDAR-basierte Ortsbestimmung angewandt wird, und die Gewichtung, die auf eine bildbasierte Ortsbestimmung angewandt wird, können gleich oder unterschiedlich sein. In einigen Ausführungsformen kann die Gewichtung, die auf eine LIDAR-basierte Ortsbestimmung angewandt wird, und/oder die Gewichtung, die auf eine bildbasierte Ortsbestimmung angewandt wird, basierend auf einer oder mehreren aktuellen Umgebungsbedingungen des Fahrzeugs 3400 angepasst werden. Falls sich das Fahrzeug 3400 beispielsweise in einer nebligen Umgebung, die die Detektion von Objekten unter Verwendung von LIDAR-Daten beeinträchtigen kann, befindet, kann die Gewichtung, die auf eine LIDAR-basierten Ortsbestimmung angewandt wird, durch den der Prozessor 3401 verringert werden. Als weiteres Beispiel kann der Prozessor 3401 bei Nacht, was die Detektion von Objekten unter Verwendung von Bilddaten beeinträchtigen kann, die auf eine bildbasierte Ortsbestimmung angewandte Gewichtung verringern.
-
In einigen Ausführungsformen kann der Prozessor 3401 auch einen Unterschied bestimmen, der der LIDAR-basierten Ortsbestimmung und der bildbasierten Lokalisierung zugeordnet ist (z. B. einen Unterschied zwischen der Position des Fahrzeugs 3400, die basierend auf LIDAR-Daten bestimmt wurde, und der Position des Fahrzeugs 3400, die basierend auf Bilddaten bestimmt wurde). Der Prozessor 3401 kann ferner bestimmen, ob der Unterschied zwischen den beiden Positionen einen vorbestimmten Schwellenwert übersteigt. Ein Positionsunterschied, die den vorbestimmten Schwellenwert übersteigt, kann ein mögliches Problem mit dem LIDAR-System 3407 und/oder der Kamera angeben. Der Prozessor 3401 kann wenigstens eine Abhilfeaktion implementieren, falls der Unterschied einen vorbestimmten Schwellenwert übersteigt. Beispielsweise kann der Prozessor 3401 wenigstens eines aus dem Verlangsamen des Fahrzeugs 3400, dem Anhalten des das Fahrzeugs 3400 und Ausgeben einer Warnung vor einer Systemunregelmäßigkeit implementieren. In einigen Ausführungsformen kann der Prozessor 3401 programmiert sein, einen Grund für den Unterschied zu bestimmen. Beispielsweise kann der Prozessor 3401 Informationen über die Wetterbedingungen empfangen (z. B. über einen Wettersensor an Bord des Fahrzeugs 3400 und/oder von dem Server 3210) und bestimmen, dass es schneit. Der Prozessor 3401 kann bestimmen, dass ein Unterschied zwischen der basierend auf LIDAR-Daten bestimmten Position des Fahrzeugs 3400 und der basierend auf Bilddaten bestimmten Position durch den Schnee verursacht sein kann. In einigen Ausführungsformen kann der Prozessor 3401 dem Fahrer (und/oder einem Insassen) den bestimmten Grund auch mit einer Warnung, die auf einer Anzeigevorrichtung an Bord angezeigt wird, oder über einen Lautsprecher des Fahrzeugs 3400 bereitstellen.
-
In Schritt 3604 kann der Prozessor 3401 auch programmiert sein, wenigstens eine Navigationsaktion für das Fahrzeug 3400 basierend auf der LIDAR-basierten Ortsbestimmung des Fahrzeugs 3400 relativ zu der wenigstens einen Sollbewegungsbahn zu bestimmen. In einem Beispiel, bestimmt der Prozessor 3401, falls der er basierend auf der LIDAR-basierten Ortsbestimmung des Fahrzeugs 3400 relativ zu der Sollbewegungsbahn 3531 bestimmt, dass zu erwarten ist, dass das Fahrzeug 3400 der Sollbewegungsbahn 3531 (dargestellt in 35B) folgt, eine Navigationsaktion zur Beibehaltung einer aktuellen Fahrtrichtung für das Fahrzeug 3400, so dass das Fahrzeug 3400 weiterhin der Sollbewegungsbahn 3531 folgen kann. Falls der Prozessor 3401 andererseits bestimmt, dass das Fahrzeug 3400 von der Sollbewegungsbahn 3531 abweicht (wie in 35C dargestellt), kann der Prozessor 3401 programmiert sein, eine Navigationsaktion zum Ändern einer aktuellen Fahrtrichtung für das Fahrzeug 3400 zu bestimmen, um den Abstand zwischen dem Fahrzeug 3400 und der Sollbewegungsbahn 3531 zu reduzieren. Beispielsweise kann der Prozessor 3401 programmiert sein, eine Navigationsaktion zum Lenken des Fahrzeugs 3400 in die Richtung nach links zu bestimmen, so dass der Abstand zwischen dem Fahrzeug 3400 und der Sollbewegungsbahn 3531 reduziert werden kann.
-
Bezug nehmend auf 36 kann in Schritt 3605 der Prozessor 3401 programmiert sein zu veranlassen, dass die wenigstens eine Navigationsaktion durch das Fahrzeug 3400 ausgeführt wird. Beispielsweise kann der Prozessor 3401 das Navigationssystem 3408 veranlassen, die bestimmte Navigationsaktion zu implementieren (z.B. das Fahrzeug 3400 nach links zu lenken).
-
LIDAR-Kamera-Zusammenführung basierend auf Eigenbewegung
-
Diese Offenbarung stellt Systeme und Verfahren zum Korrelieren von LIDAR-Tiefeninformationen, die durch ein LIDAR-System an Bord eines Trägerfahrzeugs erfasst wurden, mit einem Bild einer bordeigenen Kamera bereit, um Tiefeninformationen für jedes Pixel des Bildes (oder einen Abschnitt davon) bereitzustellen. Da zwischen der Kamera und dem LIDAR-System sechs Freiheitsgrade vorhanden sein können, muss die Bewegung des Trägerfahrzeugs berücksichtigt werden, um die LIDAR-Tiefeninformationen mit einem Bild zu korrelieren. Diese Offenbarung stellt eine Lösung bereit, um die Eigenbewegung des Trägerfahrzeugs zu bestimmen und die bestimmte Eigenbewegung über die Zeit zu verwenden, um aufgenommene LIDAR-Tiefeninformationen mit aufgenommenen Bildern zu korrelieren. Basierend auf den dem Bild hinzugefügten Tiefeninformationen pro Pixel kann das System eine oder mehrere Navigationsreaktionen in dem Trägerfahrzeug, wie z. B. das Beibehalten oder Ändern einer aktuellen Fahrtrichtung, veranlassen.
-
37 stellt ein beispielhaftes Fahrzeug konsistent mit offenbarten Ausführungsformen dar. Die offenbarten Systeme und Verfahren können unter Verwendung einer oder mehrerer Komponenten des Fahrzeugs 3700 implementiert sein. Wie in 37 dargestellt, kann das Fahrzeug 3700 wenigstens einen Prozessor (z. B. den Prozessor 3701), einen Speicher 3702, wenigstens eine Speichervorrichtung (z. B. die Speichervorrichtung 3703), einen Kommunikationsanschluss 3704, eine I/O-Vorrichtung 3705, eine Kamera 3706, ein LIDAR-System 3707 und ein Navigationssystem 3708 enthalten.
-
Der Prozessor 3701 kann programmiert sein, eine oder mehrere der in dieser Offenbarung beschriebenen Funktionen des Fahrzeugs 3700 auszuführen. Der Prozessor 3701 kann einen Mikroprozessor, Vorprozessoren (z. B. einen Bildvorprozessor), eine Grafikverarbeitungseinheit (GPU), eine zentrale Verarbeitungseinheit (CPU), Unterstützungsschaltungen, digitale Signalprozessoren, integrierte Schaltungen, Speicher oder irgendwelche anderen Typen von Vorrichtungen, die zum Ablaufen von Anwendungen oder Ausführen einer Berechnungsaufgabe geeignet sind, enthalten. In einigen Ausführungsformen kann der Prozessor 3701 irgendeine Art von Einzel- oder Mehrkernprozessor, Mikrosteuereinheiten für mobile Vorrichtungen, eine zentrale Verarbeitungseinheit usw. enthalten. Verschiedene Verarbeitungsvorrichtungen können verwendet werden, die beispielsweise Prozessoren von Herstellern wie Intel®, AMD® usw. oder GPUs von Herstellern wie NVIDIA®, ATI® usw. enthalten und verschiedene Architekturen (z. B. x86-Prozessor, ARME usw.) enthalten können. Jede der hier offenbarten Verarbeitungsvorrichtungen kann konfiguriert sein, spezielle Funktionen auszuführen. Das Konfigurieren einer Verarbeitungsvorrichtung, wie z. B. eines der beschriebenen Prozessoren oder einer anderen Steuereinheit oder eines anderen Mikroprozessors, zum Ausführen spezieller Funktionen kann das Programmieren von computerausführbaren Anweisungen und das Verfügbarmachen dieser Anweisungen für die Verarbeitungsvorrichtung zur Ausführung während des Betriebs der Verarbeitungsvorrichtung enthalten. In einigen Ausführungsformen kann das Konfigurieren einer Verarbeitungsvorrichtung direktes Programmieren der Verarbeitungsvorrichtung mit Architekturanweisungen enthalten. Beispielsweise können Verarbeitungsvorrichtungen wie z. B. feldprogrammierbare Gatter-Arrays (FPGAs), anwendungsspezifische integrierte Schaltungen (ASICs) und dergleichen unter Verwendung beispielsweise einer oder mehrerer Hardwarebeschreibungssprachen (HDLs) konfiguriert werden.
-
Der Fahrzeug 3700 kann außerdem einen Speicher 3702 enthalten, der Anweisungen für verschiedene Komponenten des Fahrzeugs 3700 speichern kann. Beispielsweise kann der Speicher 3702 Anweisungen speichern, die dann, wenn sie durch den Prozessor 3701 ausgeführt werden, konfiguriert sein können, den Prozessor 3701 zu veranlassen, eine oder mehrere hier beschriebene Funktionen des Prozessors 3701 auszuführen. Der Speicher 3702 kann irgendeine Anzahl von Direktzugriffsspeichern, Festwertspeichern, Flash-Speichern, Plattenlaufwerken, optischen Speichern, Bandspeichern, herausnehmbaren Speichern und anderen Speichertypen enthalten. In einem Fall kann der Speicher 3702 von dem Prozessor 3701 getrennt sein. In einem anderen Fall kann der Speicher 3702 in den Prozessor 3701 integriert sein. In einigen Ausführungsformen kann der Speicher 3702 Software zum Ausführen einer oder mehrerer Berechnungsaufgaben sowie ein trainiertes System, wie z. B. ein neuronales Netz oder ein tiefes neuronales Netz, enthalten.
-
Die Speichervorrichtung 3703 kann konfiguriert sein, verschiedene Daten und Informationen für eine oder mehrere Komponenten des Fahrzeugs 3700 zu speichern. Die Speichervorrichtung 3703 kann eine oder mehrere Festplatten, Bänder, ein oder mehrere Festkörperlaufwerke, irgendeine Vorrichtung, die zum Schreiben und Lesen von Daten geeignet ist, oder dergleichen oder eine Kombination davon enthalten. Beispielsweise kann die Speichervorrichtung 3703 konfiguriert sein, die Daten einer oder mehrerer Karten zu speichern. Als Beispiel kann die Speichervorrichtung 3703 Daten einer dünn besetzten Karte, die einen oder mehrere einem Straßensegment zugeordnete Orientierungspunkte und eine oder mehrere dem Straßensegment zugeordnete Sollbewegungsbahnen enthalten kann, speichern Als weiteres Beispiel kann die Speichervorrichtung 3703 konfiguriert sein, die durch die Kamera 3706 aufgenommenen Bilder und/oder die durch das LIDAR-System 3707 aufgenommenen LIDAR-Daten zu speichern. Die Speichervorrichtung 3703 kann auch ein oder mehrere Bilder mit den in dieser Offenbarung beschriebenen korrelierten Tiefeninformationen pro Pixel speichern.
-
Der Kommunikationsanschluss 3704 kann konfiguriert sein, die Datenkommunikation zwischen dem Fahrzeug 3700 und anderen Vorrichtungen zu unterstützen. Beispielsweise kann der Kommunikationsanschluss 3704 konfiguriert sein, Daten von einem Server (z. B. einem oder mehreren Servern, die in dieser Offenbarung beschrieben sind) über ein oder mehrere öffentliche oder private Netze, die das Internet, ein Intranet, ein WAN (Weitbereichsnetz), ein MAN („Metropolitan-Area Network“), ein Drahtlosnetz, das mit den IEEE 802.1 1a/b/g/n-Standards kompatibel ist, eine Standleitung oder dergleichen enthält, zu empfangen und an ihn zu senden.
-
Die I/O-Vorrichtung 3705 kann konfiguriert sein, Eingaben von dem Benutzer des Fahrzeugs 3700 zu empfangen, und eine oder mehrere Komponenten des Fahrzeugs 3700 können in Reaktion auf die empfangene Eingaben eine oder mehrere Funktionen ausführen. In einigen Ausführungsformen kann die I/O-Vorrichtung 3705 eine Schnittstelle enthalten, die auf einem berührungssensitiven Bildschirm angezeigt wird. Die I/O-Vorrichtung 3705 kann auch konfiguriert sein, Informationen und/oder Daten an den Benutzer auszugeben. Beispielsweise kann die I/O-Vorrichtung eine Anzeigevorrichtung enthalten, die konfiguriert ist, eine Karte anzuzeigen.
-
Die Kamera 3706 kann konfiguriert sein, ein oder mehrere Bilder der Umgebung des Fahrzeugs 3700 aufzunehmen. In einigen Ausführungsformen kann die Kamera 3706 einen Bildsensor mit einem globalen Verschluss, einen Bildsensor mit einem rollenden Verschluss oder dergleichen oder eine Kombination davon enthalten. Beispielsweise kann ein CMOS-Bildsensor zusammen mit einem rollenden Verschluss eingesetzt werden, so dass jedes Pixel in einer Zeile einzeln ausgelesen wird und das Abtasten der Zeilen zeilenweise fortgesetzt wird, bis ein ganzes Bild aufgenommen worden ist. In einigen Ausführungsformen können die Zeilen in Bezug auf den Rahmen von oben nach unten der Reihe nach aufgenommen werden. Die Verwendung eines rollenden Verschlusses kann dazu führen, dass Pixel in unterschiedlichen Zeilen zu unterschiedlichen Zeiten belichtet und aufgenommen werden, was Verzerrungen und anderen Bildartefakte in dem aufgenommenen Bildrahmen verursachen kann. Wenn die Kamera 3706 andererseits so konfiguriert ist, dass sie mit einem globalen oder synchronen Verschluss arbeitet, können alle Pixel für die gleiche Zeitdauer und während einer gemeinsamen Belichtungszeitspanne belichtet werden. Als ein Ergebnis repräsentieren die Bilddaten in einem Rahmen, der von einem System mit globalen Verschluss gesammelt wird, eine Momentaufnahme des gesamten FOV zu einem speziellen Zeitpunkt. Im Gegensatz dazu wird bei einer Anwendung mit rollendem Verschluss jede Zeile in einem Rahmen belichtet, und die Daten werden zu unterschiedlichen Zeiten aufgenommen. Somit können sich bewegende Objekte in einer Bildaufnahmevorrichtung mit rollendem Verschluss verzerrt erscheinen. Dieses Phänomen ist an anderer Stelle in dieser Offenbarung genauer beschrieben. In einigen Ausführungsformen kann die Kamera 3706 mehrere Kameras enthalten, die konfiguriert sind, Bilder der Umgebung des Fahrzeugs 3700 aufzunehmen. Obwohl sich die folgenden Beschreibungen auf eine Kamera beziehen, wird ein Fachmann verstehen, dass die offenbarten Systeme und Verfahren auch unter Verwendung von zwei oder mehr Kameras implementiert sein können.
-
Das LIDAR-System 3707 kann eine oder mehrere LIDAR-Einheiten enthalten. In einigen Ausführungsformen können die eine oder die mehreren LIDAR-Einheiten auf einem Dach des Fahrzeugs 3700 positioniert sein. Eine solche Einheit kann eine sich drehende Einheit enthalten, die konfiguriert ist, LIDAR-Reflexionsinformationen innerhalb eines 360-Grad-Sichtfelds um das Fahrzeug 3700 oder aus einem beliebigen Teilsegment des 360-Grad-Sichtfelds (z. B. eines oder mehrerer FOVs, die jeweils weniger als 360 Grad repräsentieren) zu sammeln. In einigen Ausführungsformen kann eine LIDAR-Einheit an einem vorne gelegenen Ort auf dem Fahrzeug 3700 positioniert sein (z. B. in der Nähe der Scheinwerfer, im Frontgrill, in der Nähe der Nebelscheinwerfer, in einem vorderen Stoßfänger oder an irgendeinem anderen geeigneten Ort). In einigen Fällen können eine oder mehrere LIDAR-Einheiten, die an einem vorderen Abschnitt des Fahrzeugs 3700 installiert sind, Reflexionsinformationen aus einem Sichtfeld in einer Umgebung vor dem Fahrzeug 3700 sammeln. Die durch das LIDAR-System 3707 gesammelten Daten können dem Prozessor 3701 zur Verfügung gestellt werden. Alternativ oder zusätzlich können die Daten über ein Netz an einen in dieser Offenbarung beschriebenen Server gesendet werden.
-
Irgendein geeigneter Typ einer LIDAR-Einheit kann in dem Fahrzeug 3700 enthalten sein. In einigen Fällen kann das LIDAR-System 3707 eine oder mehrere Blitz-LIDAR-Einheiten (hier auch also statische LIDAR-Einheiten bezeichnet) (z. B. 3D-Blitz-LIDAR), bei denen ein gesamtes LIDAR-Sichtfeld (FOV) mit einem einzigen Laserimpuls beleuchtet wird, und einen Sensor, der Zeilen und Spalten von Pixeln zur Aufzeichnung der zurückgegebenen Lichtstärken- und Flugzeit-/Tiefeninformationen enthält, enthalten. Solche Blitzsysteme können eine Szene beleuchten und mehrmals pro Sekunde LIDAR-„Bilder“ aufnehmen. Dementsprechend kann bei einem statischen LIDAR-System die gesamte Menge von LIDAR-Daten eines LIDAR-„Bildes“ denselben Zeitstempel aufweisen. Abtastende LIDAR-Einheiten können ebenfalls eingesetzt werden. Solche abtastenden LIDAR-Einheiten können sich auf eine oder mehrere Techniken zur Streuung eines Laserstrahls über ein spezielles FOV stützen. In einigen Fällen kann eine abtastende LIDAR-Einheit einen Abtastspiegel enthalten, der einen Laserstrahl ablenkt und auf Objekte innerhalb des FOV richtet. Abtastspiegel können sich um volle 360 Grad drehen oder können sich entlang einer einzelnen Achse oder mehrerer Achsen über weniger als 360 Grad drehen, um den Laser auf ein vorbestimmtes FOV zu richten. In einigen Fällen können LIDAR-Einheiten eine horizontale Zeile abtasten. In anderen Fällen kann eine LIDAR-Einheit mehrere horizontale Zeilen innerhalb eines FOV abtasten, so dass effektiv ein bestimmtes FOV mehrmals pro Sekunde gerastert wird. In einigen Ausführungsformen kann bei einem abtastenden LIDAR-System jede Abtastzeile zu einem anderen Zeitpunkt erfasst werden und somit einen anderen Zeitstempel aufweisen.
-
Die LIDAR-Einheiten in dem LIDAR-System 3707 können irgendeine geeignete Laserquelle enthalten. In einigen Ausführungsformenkönnen die LIDAR-Einheiten einen Dauerlaser einsetzen. In anderen Fällen können die LIDAR-Einheiten gepulste Laseremissionen verwenden. Zusätzlich kann irgendeine geeignete Laserwellenlänge eingesetzt werden. In einigen Fällen kann eine Wellenlänge im Bereich von etwa 600 nm bis etwa 1000 nm verwendet werden.
-
Die LIDAR-Einheit(en) in dem LIDAR-System 3707 kann/können auch irgendeinen geeigneten Sensortyp enthalten und irgendeinen geeigneten Typ einer Ausgabe bereitstellen. In einigen Fällen können die Sensoren der LIDAR-Einheiten Festkörper-Photodetektoren, wie z. B. eine oder mehrere Photodioden oder Photomultiplier, enthalten. Die Sensoren können auch eine oder mehrere CMOS- oder CCD-Vorrichtungen mit einer beliebigen Anzahl von Pixeln enthalten. Diese Sensoren können für Laserlicht, das von einer Szene innerhalb des LIDAR FOV reflektiert wird, empfindlich sein. Die Sensoren können verschiedene Typen der Ausgabe aus einer LIDAR-Einheit ermöglichen. In einigen Fällen kann eine LIDAR-Einheit Lichtstärkenrohwerte und Flugzeitinformationen ausgeben, die für das reflektierte Laserlicht, das an jedem Sensor oder an jedem Pixel oder jeder Teilkomponente eines speziellen Sensors gesammelt wurde, repräsentativ sind. Zusätzlich oder alternativ kann eine LIDAR-Einheit eine Punktwolke (z. B. eine 3D-Punktwolke) ausgeben, die Lichtstärke und Tiefen-/Abstandsinformationen relativ zu jedem gesammelten Punkt enthalten kann. LIDAR-Einheiten können auch verschiedene Arten von Tiefenkarten ausgeben, die für die Lichtreflexionsamplitude und den Abstand zu Punkten innerhalb eines Sichtfelds repräsentativ sind. LIDAR-Einheiten können Tiefen- oder Abstandsinformationen relativ zu speziellen Punkte innerhalb eines FOV dadurch bereitstellen, dass sie den Zeitpunkt festhalten, an dem das Licht der LIDAR-Lichtquelle ursprünglich zu dem FOV projiziert wurde, und einen Zeitpunkt aufzeichnen, zu dem das einfallende Laserlicht durch einen Sensor in der LIDAR-Einheit empfangen wird. Die Zeitdifferenz kann eine Flugzeit repräsentieren, die direkt mit der Umlaufstrecke zusammenhängen kann, die das einfallende Laserlicht von der Laserquelle zu einem reflektierenden Objekt und zurück zu der LIDAR-Einheit zurückgelegt hat. Das Überwachen der Flugzeitinformationen, die einzelnen Laserpunkten oder kleinen Segmenten eines LIDAR FOV zugeordnet sind, kann genaue Abstandsinformationen für mehrere Punkte innerhalb des FOV (z. B. das Abbilden auf selbst sehr kleine Merkmale von Objekten innerhalb des FOV) bereitstellen. In einigen Fällen können LIDAR-Einheiten komplexere Informationen ausgeben, wie z. B. Klassifizierungsinformationen, die eine oder mehrere Laserreflexionen mit einem Objekttyp, von dem die Laserreflexion erfasst wurde, korrelieren.
-
Das Navigationssystem 3708 kann konfiguriert sein, einen Fahrer des Fahrzeugs 3700 bei der Bedienung des Fahrzeugs 3700 zu unterstützen. Beispielsweise kann das Navigationssystem 3708 bestimmen, dass das Fahrzeug 3700 derzeit von einer Sollbewegungsbahn abweicht, und eine Meldung für den Fahrer erzeugen, die die Abweichung von der Sollbewegungsbahn angibt und die auf einer Anzeigevorrichtung angezeigt werden kann (z. B. durch Anzeigen der Sollbewegungsbahn und eines geschätzten Fahrwegs, der basierend auf der aktuellen Position und Fahrtrichtung des Fahrzeugs 3700 bestimmt wurde). Alternativ kann das Navigationssystem 3708 ein autonomes Fahrzeugnavigationssystem umfassen, das konfiguriert ist, die Bewegung des Fahrzeugs 3700 zu steuern, wie an anderer Stelle in dieser Offenbarung beschrieben. Beispielsweise kann das Navigationssystem 3708 eine durch den Prozessor 3701 bestimmte Navigationsaktion ausführen, wenn das Fahrzeug 3700 ein Straßensegment durchfährt (z. B. eines oder mehrere aus Lenken, Abbremsen oder Beschleunigen des Fahrzeugs). In einigen Ausführungsformen kann das Navigationssystem 3708 ein weiterentwickeltes Fahrerassistenzsystem (ADAS) enthalten. In einigen Ausführungsformen kann das Navigationssystem 3708 konfiguriert sein, die Aktivierung eines oder mehrerer Aktoren, die einem Lenksystem, einem Bremssystem oder einem Antriebssystem des Fahrzeugs 3700 zugeordnet sind, gemäß einer oder mehrerer Navigationsaktionen zu veranlassen.
-
In einigen Ausführungsformen kann das Fahrzeug 3700 auch einen oder mehrere Sensoren enthalten, die konfiguriert sind, Informationen in Bezug auf das Fahrzeug 3700 und/oder die Umgebung des Fahrzeugs 3700 zu sammeln. Beispielhafte Sensoren können eine Positionsbestimmungsvorrichtung (z. B. eine Vorrichtung des globalen Positionsbestimmungssystems (GPS-Vorrichtung)), einen Beschleunigungsmesser, einen Gyrosensor, einen Geschwindigkeitsmesser oder dergleichen oder eine Kombination davon enthalten. Beispielsweise kann das Fahrzeug 3700 eine GPS-Vorrichtung enthalten, die konfiguriert ist, Positionsbestimmungsdaten, die Positionen des Fahrzeugs 3700 zugeordnet sind, über eine Zeitspanne hinweg zu sammeln.
-
38 ist ein Ablaufplan, der einen beispielhaften Prozess 3800 zum Bestimmen einer Navigationsaktion für ein Trägerfahrzeug zeigt, konsistent mit offenbarten Ausführungsformen. Es wird auf die 39A und 39B Bezug genommen, die schematische Darstellungen beispielhafter Punktwolkeninformationen und Bilder sind. Obwohl der Prozess 3800 nachstehend unter Verwendung des Fahrzeugs 3700 als ein Beispiel beschrieben ist, versteht ein Fachmann, dass auch ein Server (z. B. ein oder mehrere in dieser Offenbarung beschriebene Server) konfiguriert sein kann, einen oder mehrere Schritte des Prozesses 3800 auszuführen. Beispielsweise kann das Fahrzeug 3700 ein durch die Kamera 3706 aufgenommenes Bild und durch das LIDAR-System 3707 aufgenommene LIDAR-Daten über ein Netz an einen Server senden. Der Server kann konfiguriert sein, die LIDAR-Daten mit dem Bild zu korrelieren, um Tiefeninformationen pro Pixel für einen oder mehrere Bereiche des Bildes bereitzustellen. Der Server kann auch konfiguriert sein, die Tiefeninformationen pro Pixel zur weiteren Verarbeitung an das Fahrzeug 3700 zu senden.
-
In Schritt 3801 kann der Prozessor 3701 programmiert sein, von der Kamera 3706 wenigstens ein aufgenommenes Bild, das für eine Umgebung des Fahrzeugs 3700 repräsentativ ist, zu empfangen. Beispielsweise kann die Kamera 3706 konfiguriert sein, ein in 39A dargestelltes Bild 3921 zu einem ersten Zeitpunkt (oder über eine erste Zeitspanne, falls das Bild durch eine Kamera mit rollendem Verschluss aufgenommen wird) aufzunehmen. Die Kamera 3706 kann auch konfiguriert sein, ein in 39B dargestelltes Bild 3922 zu einem zweiten Zeitpunkt nach dem ersten Zeitpunkt (oder über eine zweite Zeitspanne nach der ersten Zeitspanne, falls das Bild von einer Kamera mit rollendem Verschluss aufgenommen wird) aufzunehmen.
-
In einigen Ausführungsformen kann die Kamera 3706, wie vorstehend beschrieben, eine Kamera mit globalem Verschluss sein (d. h. eine Kamera, die mit einem Bildsensor mit einem globalen Verschluss ausgestattet ist). Wenn die Kamera 3706 so konfiguriert ist, dass sie mit einem globalen oder synchronen Verschluss arbeitet, können alle Pixel für die gleiche Zeitdauer und während einer gemeinsamen Belichtungszeitspanne belichtet werden. Als ein Ergebnis können alle Pixel in einem Rahmen, der von einer Kamera mit globalem Verschluss aufgenommen wurde, denselben Zeitstempel aufweisen. Alternativ oder zusätzlich kann die Kamera 3706 eine Kamera mit rollendem Verschluss (d. h. eine Kamera mit einem Bildsensor mit einem rollenden Verschluss) enthalten. Beispielsweise kann eine Kamera 3706 eine Kamera mit einem rollenden Verschluss enthalten, so dass jedes Pixel in einer Zeile einzeln ausgelesen werden kann und das Abtasten der Zeilen zeilenweise fortgesetzt wird, bis ein ganzes Bild aufgenommen worden ist. In einigen Ausführungsformen können die Zeilen in Bezug auf den Rahmen von oben nach unten (oder von unten nach oben) der Reihe nach aufgenommen werden. Dementsprechend können die Bilddaten einer Zeile einen anderen Zeitstempel aufweisen als die Bilddaten einer anderen Zeile.
-
In einigen Ausführungsformen kann der Prozessor 3701 programmiert sein, Informationen über die Aufnahmezeit jedes Pixels eines Bildes von der Kamera 3706 zu empfangen. Beispielsweise kann für ein Bild, das mit einer Kamera mit globalem Verschluss aufgenommen wurde, die Aufnahmezeit für alle Pixel gleich sein, und der Prozessor 3701 kann die Aufnahmezeit von der Kamera 3706 erhalten. Für ein Bild, das mit einer Kamera mit rollendem Verschluss aufgenommen wurde, können in einigen Ausführungsformen wenigstens eine/einige Zeile(n) des Bildes eine andere Aufnahmezeit als die anderen Zeilen aufweisen. Der Prozessor 3701 kann die Aufnahmezeit für jede der Zeilen des Bildes von der Kamera 3706 erhalten.
-
Bezug nehmend auf 38 kann der Prozessor 3701 in Schritt 3802 programmiert sein, Punktwolkeninformationen von einem LIDAR-System an Bord des Trägerfahrzeugs zu empfangen. Die Punktwolkeninformationen können für die Abstände zu verschiedenen Objekten in der Umgebung des Fahrzeugs 3700 repräsentativ sein. Das LIDAR-System 3707 kann Reflexionsinformationen aus seinem Sichtfeld in der Umgebung des Fahrzeugs 3700 aufnehmen. Die Reflexionsinformationen können Informationen, die sich auf Reflexionen durch verschiedene Objekte in dem Sichtfeld beziehen, enthalten. Beispielsweise kann das LIDAR-System 3707 Reflexionsinformationen von verschiedenen Objekten in seinem Sichtfeld zu einem dritten Zeitpunkt aufnehmen, falls die LIDAR-Daten durch ein statisches LIDAR-System aufgenommen werden (oder über eine dritte Zeitspanne, falls die LIDAR-Daten durch ein abtastendes LIDAR-System aufgenommen werden), was durch ein in 39A dargestelltes Punktwolken-„Bild“ 3911 repräsentiert werden kann. Das LIDAR-System 3707 kann Reflexionsinformationen von verschiedenen Objekten in seinem Sichtfeld zu einem vierten Zeitpunkt nach dem dritten Zeitpunkt aufnehmen, falls die LIDAR-Daten durch das statische LIDAR-System aufgenommen werden (oder über eine vierte Zeitspanne nach der dritten Zeitspanne, falls die LIDAR-Daten durch ein abtastendes LIDAR-System aufgenommen werden), was durch ein in 39B dargestelltes Punktwolken-„Bild“ 3912 repräsentiert werden kann.
-
In einigen Ausführungsformen kann der Prozessor 3701 programmiert sein, Informationen über die Aufnahmezeit jedes Punktes der Punktwolkeninformationen von LIDAR-System 3707 zu empfangen. Beispielsweise kann für Punktwolkeninformationen, die durch ein statisches LIDAR-System aufgenommen wurden, die Aufnahmezeit für alle Punkte der Punktwolkeninformationen gleich sein, und der Prozessor 3701 kann die Aufnahmezeit von dem LIDAR-System 3707 erhalten und die erhaltene Aufnahmezeit für alle Punkte in den Punktwolkeninformationen verwenden. Für Punktwolkeninformationen, die durch ein abtastendes LIDAR-System aufgenommen werden, können in einigen Ausführungsformen wenigstens eine/einige Zeile(n) von Punkten in den Punktwolkeninformationen eine andere Aufnahmezeit als andere Zeilen aufweisen. Wie an anderer Stelle in dieser Offenbarung beschrieben, kann das LIDAR-System 3707 beispielsweise ein abtastendes LIDAR-System enthalten, das für jeweils eine horizontale Zeile konfiguriert ist, und die Punkte jeder Zeile der durch das abtastende LIDAR-System aufgenommenen Punktwolkeninformationen können eine unterschiedliche Aufnahmezeit aufweisen. Als weiteres Beispiel kann das LIDAR-System 3707 ein abtastendes LIDAR-System enthalten, das konfiguriert ist, mehrere horizontale Zeilen (hier als Abtastzeilengruppe bezeichnet) innerhalb eines FOV gleichzeitig abzutasten, und die Punkte jeder Abtastzeilengruppe können eine andere Aufnahmezeit aufweisen als die anderer Zeilengruppen. Der Prozessor 3701 kann eine Aufnahmezeit für jede Zeile (oder eine Aufnahmezeit für jede Abtastzeilengruppe) von dem LIDAR-System 3707 erhalten.
-
In einigen Ausführungsformen können die Punktwolkeninformationen basierend auf LIDAR-Daten über eine Zeitspanne (z. B. LIDAR-Daten, die über mehrere Rahmen aufgenommen wurden) akkumuliert werden. Beispielsweise kann das LIDAR-System 3707 eine mehrere Rahmen aufnehmen und Punktwolkeninformationen durch Akkumulieren der LIDAR-Daten der Rahmen (z. B. Akkumulieren der Tiefeninformationen der Rahmen) erzeugen. Alternativ kann der Prozessor 3701 programmiert sein, LIDAR-Daten der Rahmen zu empfangen und die LIDAR-Daten zu akkumulieren, um Punktwolkeninformationen, die eine dichte Punktwolke bereitstellen können, zu erzeugen.
-
In einigen Ausführungsformen können die Punktwolkeninformationen zum gleichen Zeitpunkt, zu dem das Bild aufgenommen wurde, erfasst werden. In anderen Ausführungsformen vor (oder nach) dem Zeitstempel, mit dem das aufgenommene Bild erfasst wurde. Beispielsweise kann das Punktwolken-„Bild“ 3911 vor (oder nach) dem Zeitstempel erfasst werden, mit dem das Bild 3921 aufgenommen wurde. Alternativ wurde ein Teil der Punktwolkeninformationen vor dem Zeitstempel, mit dem das wenigstens eine aufgenommene Bild erfasst wurde, erfasst, und ein Teil der Punktwolkeninformationen wurde nach dem Zeitstempel, mit dem das wenigstens eine aufgenommene Bild erfasst wurde, erfasst. Beispielsweise können für Punktwolkeninformationen, die durch ein abtastendes LIDAR-System aufgenommen werden, das jeweils eine horizontale Zeile abtastet, einige der Zeilen vor dem Zeitstempel aufgenommen werden, mit dem das aufgenommene Bild erfasst wurde, und die anderen Zeilen können nach dem Zeitstempel aufgenommen werden, mit dem das aufgenommene Bild erfasst wurde.
-
Bezug nehmend auf 38 kann in Schritt 3803 der wenigstens eine Prozessor 3701 programmiert sein, die Punktwolkeninformationen mit dem wenigstens einen aufgenommenen Bild zu korrelieren, um Tiefeninformationen pro Pixel für einen oder mehrere Bereiche des wenigstens einen aufgenommenen Bildes bereitzustellen. Beispielsweise kann der Prozessor 3701 programmiert sein, einen Bereich in den Punktwolkeninformationen, der einem Bereich des Bildes entspricht, zu identifizieren und die Punkte des Bereichs in den Punktwolkeninformationen auf die entsprechenden Pixel des Bereichs des Bildes abzubilden, indem er beispielsweise die Tiefeninformationen der Punkte den entsprechenden Pixeln in dem Bild zuordnet.
-
In einigen Ausführungsformen kann der Prozessor 3701 den Bereich in den Punktwolkeninformationen und/oder den entsprechenden Bereich des Bildes anpassen, bevor er die Tiefeninformationen mit den Pixeln des Bildes korreliert. Beispielsweise kann der Prozessor 3701 einen oder mehrere Bereiche des Bildes strecken oder schrumpfen, um die entsprechenden Bereiche der Punktwolkeninformationen anzupassen, bevor er die Tiefeninformationen der Punktwolkeninformationen mit dem Bild korreliert.
-
In einigen Ausführungsformen können die Aufnahmezeiten der Punktwolkeninformationen und des Bildes unterschiedlich sein. Der Prozessor 3701 kann programmiert, die Punktwolkeninformationen auf einen Zeitstempel, mit dem das aufgenommene Bild erfasst wurde, zu verformen (oder abzubilden). Beispielsweise kann das LIDAR-System 3707 die Punktwolkeninformationen an einer ersten Aufnahmezeit aufnehmen, und die Punktwolkeninformationen können einen ersten Zeitstempel enthalten. Die Kamera 3706 kann das Bild an einer zweiten Aufnahmezeit nach der ersten Aufnahmezeit aufnehmen. Das Bild kann einen zweiten Zeitstempel enthalten. Der Prozessor 3701 kann die Tiefeninformationen der Punktwolkeninformationen mit dem Bild korrelieren. In einigen Ausführungsformen können der erste und der zweite Zeitstempel gleich oder unterschiedlich sein.
-
In einigen Ausführungsformen kann der Prozessor 3701 eine aus mehreren Mengen von Punktwolkeninformationen auswählen, um sie mit einem Bild zu korrelieren. Wenn beispielsweise keine Punktwolkeninformationen die gleiche Aufnahmezeit wie ein zu korrelierendes Bild aufweisen, kann der Prozessor 3701 die Punktwolkeninformationen, deren Aufnahmezeit der Aufnahmezeit des Bildes am nächsten kommt, auswählen und die Tiefeninformationen der ausgewählten Punktwolkeninformationen mit dem Bild korrelieren, um eine Tiefeninformation pro Pixel für einen oder mehrere Bereiche des Bildes bereitzustellen. Alternativ oder zusätzlich kann der Prozessor 3701 eine geschätzte Menge von Punktwolkeninformationen basierend auf zwei Mengen von Punktwolkeninformationen bestimmen und die Tiefeninformationen der geschätzten Menge von Punktwolkeninformationen mit dem Bild korrelieren. Beispielsweise kann der Prozessor 3701 eine erste Menge von Punktwolkeninformationen, die erfasst wurden, bevor das Bild erfasst wurde, erhalten und eine zweite Menge von Punktwolkeninformationen, die erfasst wurden, bevor das Bild erfasst wurde, erhalten. Der Prozessor 3701 kann eine geschätzte (oder interpolierte) Menge von Punktwolkeninformationen bestimmen (indem er z. B. die Tiefen der beiden Mengen von Punktwolkeninformationen mittelt, um eine mittlere Tiefe an jedem Punkt zu erhalten). Der Prozessor 3701 kann auch die Tiefeninformationen der geschätzten Menge von Punktwolkeninformationen mit dem Bild korrelieren.
-
Wenn der erste und der zweite Zeitstempel unterschiedlich sind, kann in einigen Ausführungsformen der Prozessor 3701 bei der Korrelation der Tiefeninformationen der Punktwolkeninformationen mit dem Bild die Eigenbewegung des Fahrzeugs 3700 berücksichtigen. In einigen Fällen kann eine direkte Korrelation der Tiefeninformationen der Punktwolkeninformationen mit dem Bild nicht genau sein, falls die Punktwolkeninformationen und das Bild zu unterschiedlichen Zeiten erfasst wurden. Der Prozessor 3701 kann die Eigenbewegung über die Zeitspanne zwischen der Aufnahmezeit der Punktwolkeninformationen und der Aufnahmezeit des Bildes bestimmen und die Tiefeninformationen der Punktwolkeninformationen entsprechend anpassen. Beispielsweise kann der Prozessor 3701 programmiert sein, einen Abstand oder eine Tiefe, der/die durch die Eigenbewegung des Fahrzeugs 3700 (über die Zeitspanne zwischen den Aufnahmezeiten der Punktwolkeninformationen und des Bildes) verursacht ist, zu den Tiefeninformationen der Punktwolkeninformationen, die Objekte in der Bewegungsrichtung des Fahrzeugs 3700 repräsentieren, zu addieren (oder von ihnen zu subtrahieren). In einigen Ausführungsformen kann der Prozessor 3701 die Eigenbewegung des Fahrzeugs 3700 basierend auf einer Ausgabe eines oder mehrerer Sensoren, die die Positionsänderung über die Zeitspanne zwischen den Aufnahmezeiten der Punktwolkeninformationen und des Bildes repräsentiert, bestimmen. Beispielsweise kann das Fahrzeug 3700 einen oder mehrere Sensoren (z.B. wenigstens einen Geschwindigkeitsmesser, einen Beschleunigungsmesser oder einen GPS-Sensor), die konfiguriert sind, die Position des Fahrzeugs 3700 über die Zeitspanne zu verfolgen, enthalten. Der Prozessor 3701 kann die Eigenbewegung des Fahrzeugs 3700 über die Zeitspanne basierend auf der Ausgabe von einem oder mehreren Sensoren bestimmen. Alternativ oder zusätzlich kann der Prozessor 3701 die Eigenbewegung basierend auf einem optischen Fluss von Objekten, der zwischen zwei oder mehr durch die Kamera 3706 aufgenommenen Bildern beobachtet wird, bestimmen. Beispielsweise kann der Prozessor 3701 den Ort eines unbeweglichen Objekts (z. B. eines Lichtmasts) in einem ersten Bild mit dem Ort des unbeweglichen Objekts in einem zweiten Bild vergleichen, um die Eigenbewegung des Fahrzeugs 3700 zu bestimmen. In einigen Ausführungsformen kann der Prozessor 3701 die Eigenbewegung basierend auf einer Kombination aus einem optischen Fluss von Objekten, der zwischen zwei oder mehr durch die Kamera 3706 aufgenommenen Bildern beobachtet wird, und einer Ausgabe eines oder mehrerer dem Fahrzeug 3700 zugeordneten Sensoren bestimmen.
-
In einigen Ausführungsformen kann die Eigenbewegung des Fahrzeugs 3700 basierend auf einem oder mehreren beschriebenen Verfahren bestimmt werden, die an anderer Stelle in dieser Offenbarung beschrieben sind (z. B. einem oder mehrerer Verfahren zum Bestimmen einer Eigenbewegung eines Trägerfahrzeugs, die in Verbindung mit 31 und ihren Beschreibungen bereitgestellt sind).
-
In Schritt 3804 kann der Prozessor 3701 programmiert sein, wenigstens eine Navigationsaktion für das Fahrzeug 3700 basierend auf den Tiefeninformationen pro Pixel für einen oder mehrere Bereiche des wenigstens einen aufgenommenen Bildes zu bestimmen. Beispielhafte Navigationsaktionen können wenigstens eines aus Beibehalten einer aktuellen Fahrtrichtung und Geschwindigkeit für das Fahrzeug 3700, Ändern einer aktuellen Fahrtrichtung für das Fahrzeug 3700 oder Ändern einer Geschwindigkeit des Fahrzeugs 3700 enthalten. Beispielsweise kann der Prozessor 3701 den einen oder die mehreren Bereich des wenigstens einen aufgenommenen Bildes und die Tiefeninformationen pro Pixel für den einen oder die mehreren Bereiche des wenigstens einen aufgenommenen Bildes analysieren, um ein Objekt, das sich innerhalb eines vorgegebenen Sicherheitsabstands befindet, zu identifizieren. Der Prozessor 3701 kann auch konfiguriert sein, eine Navigationsaktion für das Fahrzeug 3700 zu bestimmen, um das Fahrzeug 3700 zu verlangsamen oder von dem identifizierten Objekt weg zu lenken.
-
In Schritt 3805 kann der Prozessor 3701 programmiert sein zu veranlassen, dass die wenigstens eine Navigationsaktion durch das Fahrzeug 3700 ausgeführt wird. Beispielsweise kann der Prozessor 3701 programmiert sein zu veranlassen, dass die wenigstens eine durch das Fahrzeug 3700 Navigationsaktion ausgeführt wird, indem er die Aktivierung eines oder mehrerer Aktoren, die einem Lenksystem (z. B. Beibehalten oder Ändern einer aktuellen Fahrtrichtung), einem Bremssystem (z. B. Reduzieren einer aktuellen Geschwindigkeit) oder einem Antriebssystem des Fahrzeugs 3700 (z. B. Beschleunigen, Verzögern, Verringern einer aktuellen Geschwindigkeit) zugeordnet sind, veranlasst.
-
LIDAR-Kamera-Zusammenführung, wobei LIDAR und Kamera unterschiedliche Dinge gültig detektieren
-
In einigen Fällen kann ein Trägerfahrzeug mit einem LIDAR-System und einer Kamera ausgestattet sein. Das LIDAR-System und die Kamera können unterschiedliche Sichtfelder aufweisen und aufgrund von Unterschieden des physikalischen Ortes relativ zu dem Trägerfahrzeug unterschiedliche Szeneninformationen aus der Umgebung des Trägerfahrzeugs aufnehmen. Das LIDAR-System kann sich beispielsweise auf dem Dach des Trägerfahrzeugs befinden, und eine Kamera kann sich hinter der Windschutzscheibe befinden. Als ein Ergebnis kann das LIDAR-System in einigen Fällen ein Objekt (z. B. ein Zielfahrzeug) detektieren, das die Kamera nicht aufnimmt (z. B. kann das Objekt durch ein Fahrzeug, das sich unmittelbar vor dem Trägerfahrzeug befindet, verdeckt sein). Diese Unterschiede können Probleme verursachen, wenn das System versucht, die durch das LIDAR-System erfassten Informationen mit den durch die Kamera erfassten Informationen abzugleichen, was zu der Möglichkeit führen kann, dass solche Informationen als potenziell fehlerhaft verworfen werden. Diese Offenbarung stellt Systeme und Verfahren zum Bestimmen einer potenziellen Aktion, die das Trägerfahrzeug ausführen kann, wenn ein Unterschied zwischen den durch das LIDAR-System erfassten Informationen und den durch die Kamera erfassten Informationen detektiert wird, bereit. Wenn z. B. das LIDAR und/oder die Kamera ein Fahrzeug unmittelbar vor dem Träger detektiert, kann zu verstehen sein, dass dieses Fahrzeug Objekte weiter vorne in einem Bereich, den nur ein höher angebrachtes LIDAR-System detektieren kann, verdecken kann. In solchen Fällen können die offenbarten Systeme und Verfahren Informationen, die durch das LIDAR-System und die Kamera gesammelte werden, verwenden, um ein Objekt zu detektieren und zu bestimmen, welche Aktionen das Trägerfahrzeug in Reaktion auf die Detektion des Objekts ausführen kann.
-
40 stellt ein beispielhaftes Fahrzeug 4000 konsistent mit offenbarten Ausführungsformen dar. Die offenbarten Systeme und Verfahren können unter Verwendung einer oder mehrerer Komponenten des Fahrzeugs 4000 implementiert sein. Wie in 40 dargestellt, kann das Fahrzeug 4000 wenigstens einen Prozessor (z. B. den Prozessor 4001), einen Speicher 4002, wenigstens eine Speichervorrichtung (z. B. die Speichervorrichtung 4003), einen Kommunikationsanschluss 4004, eine I/O-Vorrichtung 4005, eine Kamera 4006, ein LIDAR-System 4007 und ein Navigationssystem 4008 enthalten.
-
Der Prozessor 4001 kann programmiert sein, eine oder mehrere der in dieser Offenbarung beschriebenen Funktionen des Fahrzeugs 4000 auszuführen. Der Prozessor 4001 kann einen Mikroprozessor, Vorprozessoren (z. B. einen Bildvorprozessor), eine Grafikverarbeitungseinheit (GPU), eine zentrale Verarbeitungseinheit (CPU), Unterstützungsschaltungen, digitale Signalprozessoren, integrierte Schaltungen, Speicher oder irgendwelche anderen Typen von Vorrichtungen, die zum Ablaufen von Anwendungen oder Ausführen einer Berechnungsaufgabe geeignet sind, enthalten. In einigen Ausführungsformen kann der Prozessor 4001 irgendeine Art von Einzel- oder Mehrkernprozessor, Mikrosteuereinheiten für mobile Vorrichtungen, zentrale Verarbeitungseinheit usw. enthalten. Verschiedene Verarbeitungsvorrichtungen können verwendet werden, die beispielsweise Prozessoren von Herstellern wie Intel®, AMD® usw. oder GPUs von Herstellern wie NVIDIA®, ATI® usw. enthalten und verschiedene Architekturen (z. B. x86-Prozessor, ARME usw.) enthalten können. Jede der hier offenbarten Verarbeitungsvorrichtungen kann konfiguriert sein, spezielle Funktionen auszuführen. Das Konfigurieren einer Verarbeitungsvorrichtung, wie z. B. eines der beschriebenen Prozessoren oder einer anderen Steuereinheit oder eines anderen Mikroprozessors, zum Ausführen spezieller Funktionen kann das Programmieren von computerausführbaren Anweisungen und das Verfügbarmachen dieser Anweisungen für die Verarbeitungsvorrichtung zur Ausführung während des Betriebs der Verarbeitungsvorrichtung enthalten. In einigen Ausführungsformen kann das Konfigurieren einer Verarbeitungsvorrichtung direktes Programmieren der Verarbeitungsvorrichtung mit Architekturanweisungen enthalten. Beispielsweise können Verarbeitungsvorrichtungen wie z. B. feldprogrammierbare Gatter-Arrays (FPGAs), anwendungsspezifische integrierte Schaltungen (ASICs) und dergleichen unter Verwendung beispielsweise einer oder mehrerer Hardwarebeschreibungssprachen (HDLs) konfiguriert werden.
-
Das Fahrzeug 4000 kann außerdem einen Speicher 4002 enthalten, der Anweisungen für verschiedene Komponenten des Fahrzeugs 4000 speichern kann. Beispielsweise kann der Speicher 4002 Anweisungen speichern, die dann, wenn sie durch den Prozessor 4001 ausgeführt werden, konfiguriert sein können, den Prozessor 4001 zu veranlassen, eine oder mehrere hier beschriebene Funktionen des Prozessors 4001 auszuführen. Der Speicher 4002 kann irgendeine Anzahl von Direktzugriffsspeichern, Festwertspeichern, Flash-Speichern, Plattenlaufwerken, optischen Speichern, Bandspeichern, herausnehmbaren Speichern und anderen Speichertypen enthalten. In einem Fall kann der Speicher 4002 von dem Prozessor 4001 getrennt sein. In einem anderen Fall kann der Speicher 4002 in den Prozessor 4001 integriert sein. In einigen Ausführungsformen kann der Speicher 4002 Software zum Ausführen einer oder mehrerer Berechnungsaufgaben sowie ein trainiertes System, wie z. B. ein neuronales Netz oder ein tiefes neuronales Netz, enthalten.
-
Die Speichervorrichtung 4003 kann konfiguriert sein, verschiedene Daten und Informationen für eine oder mehrere Komponenten des Fahrzeugs 4000 zu speichern. Die Speichervorrichtung 4003 kann eine oder mehrere Festplatten, Bänder, ein oder mehrere Festkörperlaufwerke, irgendeine Vorrichtung, die zum Schreiben und Lesen von Daten geeignet ist, oder dergleichen oder eine Kombination davon enthalten. Beispielsweise kann die Speichervorrichtung 4003 konfiguriert sein, die Daten einer oder mehrerer Karten zu speichern. Als Beispiel kann die Speichervorrichtung 4003 Daten einer dünn besetzten Karte, die einen oder mehrere einem Straßensegment zugeordnete Orientierungspunkte und eine oder mehrere dem Straßensegment zugeordnete Sollbewegungsbahnen enthalten kann, speichern. Als weiteres Beispiel kann die Speichervorrichtung 4003 konfiguriert sein, die durch die Kamera 4006 aufgenommenen Bilder und/oder die durch das LIDAR-System 4007 aufgenommenen LIDAR-Daten zu speichern.
-
Der Kommunikationsanschluss 4004 kann konfiguriert sein, die Datenkommunikation zwischen dem Fahrzeug 4000 und anderen Vorrichtungen zu unterstützen. Beispielsweise kann der Kommunikationsanschluss 4004 konfiguriert sein, Daten von einem Server (z. B. einem oder mehreren Servern, die in dieser Offenbarung beschrieben sind) über ein oder mehrere öffentliche oder private Netze, die das Internet, ein Intranet, ein WAN (Weitbereichsnetz), ein MAN („Metropolitan-Area Network“), ein Drahtlosnetz, das mit den IEEE 802.1 1a/b/g/n-Standards kompatibel ist, eine Standleitung oder dergleichen enthält, zu empfangen und an ihn zu senden.
-
Die I/O-Vorrichtung 4005 kann konfiguriert sein, Eingaben von dem Benutzer des Fahrzeugs 4000 zu empfangen, und eine oder mehrere Komponenten des Fahrzeugs 4000 können in Reaktion auf die empfangene Eingaben eine oder mehrere Funktionen ausführen. In einigen Ausführungsformen kann die I/O-Vorrichtung 4005 eine Schnittstelle enthalten, die auf einem berührungssensitiven Bildschirm angezeigt wird. Die I/O-Vorrichtung 4005 kann auch konfiguriert sein, Informationen und/oder Daten an den Benutzer auszugeben. Beispielsweise kann die I/O-Vorrichtung eine Anzeigevorrichtung enthalten, die konfiguriert ist, eine Karte anzuzeigen.
-
Die Kamera 4006 kann konfiguriert sein, ein oder mehrere Bilder von der Umgebung des Fahrzeugs 4000 aufzunehmen. Die Kamera 4006 kann irgendeinen Typ einer Vorrichtung, die zum Aufnehmen wenigstens eines Bildes aus einer Umgebung geeignet ist, enthalten. In einigen Ausführungsformen kann die Kamera 4006 den in 1 dargestellten und vorstehend beschriebenen Bildaufnahmevorrichtungen 122, 124 und 126 ähnlich sein. In einigen Ausführungsformen kann die Kamera 4006 mehrere Kameras enthalten, die konfiguriert sind, Bilder der Umgebung des Fahrzeugs 4000 aufzunehmen. Obwohl sich die folgenden Beschreibungen auf eine Kamera beziehen, wird ein Fachmann verstehen, dass die offenbarten Systeme und Verfahren auch unter Verwendung von zwei oder mehr Kameras implementiert sein können.
-
Die Kamera 4006 kann an irgendeinem geeigneten Ort an dem Fahrzeug 4000 positioniert sein. Beispielsweise kann sich die Kamera 4006 hinter einer Windschutzscheibe des Fahrzeugs 4000, in der Nähe eines vorderen Stoßfängers des Fahrzeugs 4000, in der Nähe des Rückspiegels des Fahrzeugs 4000, in einem oder beiden Seitenspiegeln des Fahrzeugs 4000, auf dem Dach des Fahrzeugs 4000, auf der Motorhaube des Fahrzeugs 4000, auf dem Kofferraum des Fahrzeugs 4000, an den Seiten des Fahrzeugs 4000, montiert auf, positioniert hinter oder positioniert vor einem der Fenster des Fahrzeugs 4000 und positioniert in oder in der Nähe von Lichtfiguren an der Vorderseite und/oder Rückseite des Fahrzeugs 4000 usw. befinden.
-
Das LIDAR-System 4007 kann eine oder mehrere LIDAR-Einheiten enthalten. In einigen Ausführungsformen können die eine oder mehreren LIDAR-Einheiten auf einem Dach des Fahrzeugs 4000 positioniert sein. Eine solche Einheit kann eine sich drehende Einheit enthalten, die konfiguriert ist, LIDAR-Reflexionsinformationen innerhalb eines 360-Grad-Sichtfelds um das Fahrzeug 4000 oder aus einem beliebigen Teilsegment des 360-Grad-Sichtfelds (z. B. eines oder mehrerer FOVs, die jeweils weniger als 360 Grad repräsentieren) zu sammeln. Die durch das LIDAR-System 4007 gesammelten Daten können dem Prozessor 4001 zur Verfügung gestellt werden. Alternativ oder zusätzlich können die Daten über ein Netz an einen in dieser Offenbarung beschriebenen Server gesendet werden.
-
In einigen Ausführungsformen kann eine LIDAR-Einheit an einem vorne gelegenen Ort auf dem Fahrzeug 4000 positioniert sein (z. B. in der Nähe der Scheinwerfer, im Frontgrill, in der Nähe der Nebelscheinwerfer, in einem vorderen Stoßfänger oder an irgendeinem anderen geeigneten Ort). In einigen Fällen können eine oder mehrere LIDAR-Einheiten, die an einem vorderen Abschnitt des Fahrzeugs 4000 installiert sind, Reflexionsinformationen aus einem Sichtfeld in einer Umgebung vor dem Fahrzeug 4000 sammeln. In anderen Ausführungsformen kann sich eine LIDAR-Einheit an anderen Orten befinden. Beispielsweise kann sich eine LIDAR-Einheit hinter einer Windschutzscheibe des Fahrzeugs 4000, in der Nähe eines vorderen Stoßfängers des Fahrzeugs 4000, in der Nähe des Rückspiegels des Fahrzeugs 4000, in einem oder beiden Seitenspiegeln des Fahrzeugs 4000, auf dem Dach des Fahrzeugs 4000, auf der Motorhaube des Fahrzeugs 4000, auf dem Kofferraum des Fahrzeugs 4000, an den Seiten des Fahrzeugs 4000, montiert auf, positioniert hinter oder positioniert vor einem der Fenster des Fahrzeugs 4000 und positioniert in oder in der Nähe von Lichtfiguren an der Vorderseite und/oder Rückseite des Fahrzeugs 4000 usw. befinden.
-
In einigen Ausführungsformen kann sich das LIDAR-System 4007 an einem anderen Ort als ein Ort der Kamera 4006 befinden. Beispielsweise kann sich die Kamera 4006 hinter einer Windschutzscheibe des Fahrzeugs 4000 befinden, und das LIDAR-System 4007 kann auf einem Dach des Fahrzeugs 4000 montiert sein. Als ein weiteres Beispiel befindet sich die Kamera 4006 in der Nähe des vorderen Stoßfängers des Fahrzeugs 4000, und das LIDAR-System 4007 ist auf einem Dach des Fahrzeugs 4000 montiert. Als ein weiteres Beispiel befindet sich die Kamera 4006 hinter einer Windschutzscheibe des Fahrzeugs 4000, und das LIDAR-System 4007 befindet sich in der Nähe eines vorderen Stoßfängers des Fahrzeugs 4000. In einigen Ausführungsformen kann die Kamera 4006 ein FOV aufweisen, das sich von dem FOV des LIDAR-Systems 4007 unterscheidet, jedoch kann das FOV der Kamera 4006 das FOV des LIDAR-Systems 4007 wenigstens teilweise überlappen, um einen gemeinsamen Sichtfeldbereich bereitzustellen.
-
Irgendein geeigneter Typ einer LIDAR-Einheit kann in dem Fahrzeug 4000 enthalten sein. In einigen Fällen kann das LIDAR-System 4007 eine oder mehrere Blitz-LIDAR-Einheiten (hier auch also statische LIDAR-Einheiten bezeichnet) (z. B. 3D-Blitz-LIDAR), bei denen ein gesamtes LIDAR-Sichtfeld (LIDAR-FOV) mit einem einzigen Laserimpuls beleuchtet wird, und einen Sensor, der Zeilen und Spalten von Pixeln zur Aufzeichnung der zurückgegebenen Lichtstärke und Flugzeit-/Tiefeninformationen enthält, enthalten. Solche Blitzsysteme können eine Szene beleuchten und mehrmals pro Sekunde LIDAR-„Bilder“ aufnehmen. Abtastende LIDAR-Einheiten können ebenfalls eingesetzt werden. Solche abtastenden LIDAR-Einheiten können sich auf eine oder mehrere Techniken zur Streuung eines Laserstrahls über ein spezielles FOV stützen. In einigen Fällen kann eine abtastende LIDAR-Einheit einen Abtastspiegel enthalten, der einen Laserstrahl ablenkt und auf Objekte innerhalb des FOV richtet. Abtastspiegel können sich um volle 360 Grad drehen oder können sich entlang einer einzelnen Achse oder mehrerer Achsen über weniger als 360 Grad drehen, um den Laser auf ein vorbestimmtes FOV zu richten. In einigen Fällen können LIDAR-Einheiten eine horizontale Zeile abtasten. In anderen Fällen kann eine LIDAR-Einheit mehrere horizontale Zeilen innerhalb eines FOV abtasten, so dass effektiv ein bestimmtes FOV mehrmals pro Sekunde gerastert wird.
-
Die LIDAR-Einheiten in dem LIDAR-System 4007 können irgendeine geeignete Laserquelle enthalten. In einigen Ausführungsformenkönnen die LIDAR-Einheiten einen Dauerlaser einsetzen. In anderen Fällen können die LIDAR-Einheiten gepulste Laseremissionen verwenden. Zusätzlich kann irgendeine geeignete Laserwellenlänge eingesetzt werden. In einigen Fällen kann eine Wellenlänge im Bereich von etwa 600 nm bis etwa 1000 nm verwendet werden.
-
Die LIDAR-Einheit(en) in dem LIDAR-System 4007 kann/können auch irgendeinen geeigneten Sensortyp enthalten und irgendeinen geeigneten Typ einer Ausgabe bereitstellen. In einigen Fällen können die Sensoren der LIDAR-Einheiten Festkörper-Photodetektoren, wie z. B. eine oder mehrere Photodioden oder Photomultiplier, enthalten. Die Sensoren können auch eine oder mehrere CMOS- oder CCD-Vorrichtungen mit einer beliebigen Anzahl von Pixeln enthalten. Diese Sensoren können für Laserlicht, das von einer Szene innerhalb des LIDAR FOV reflektiert wird, empfindlich sein. Die Sensoren können verschiedene Typen von Ausgaben aus einer LIDAR-Einheit ermöglichen. In einigen Fällen kann eine LIDAR-Einheit Lichtstärkenrohwerte und Flugzeitinformationen ausgeben, die für das reflektierte Laserlicht, das an jedem Sensor oder an jedem Pixel oder jeder Teilkomponente eines speziellen Sensors gesammelt wurde, repräsentativ sind. Zusätzlich oder alternativ kann eine LIDAR-Einheit eine Punktwolke (z. B. eine 3D-Punktwolke) ausgeben, die Lichtstärke und Tiefen-/Abstandsinformationen relativ zu jedem gesammelten Punkt enthalten kann. LIDAR-Einheiten können auch verschiedene Typen von Tiefenkarten ausgeben, die für die Lichtreflexionsamplitude und den Abstand zu Punkten innerhalb eines Sichtfelds repräsentativ sind. LIDAR-Einheiten können Tiefen- oder Abstandsinformationen relativ zu speziellen Punkte innerhalb eines FOV dadurch bereitstellen, dass sie den Zeitpunkt festhalten, an dem das Licht der LIDAR-Lichtquelle ursprünglich zu dem FOV projiziert wurde, und einen Zeitpunkt aufzeichnen, zu dem das einfallende Laserlicht durch einen Sensor in der LIDAR-Einheit empfangen wird. Die Zeitdifferenz kann eine Flugzeit repräsentieren, die direkt mit der Umlaufstrecke zusammenhängen kann, die das einfallende Laserlicht von der Laserquelle zu einem reflektierenden Objekt und zurück zu der LIDAR-Einheit zurückgelegt hat. Das Überwachen der Flugzeitinformationen, die einzelnen Laserpunkten oder kleinen Segmenten eines LIDAR-FOV zugeordnet sind, kann genaue Abstandsinformationen für mehrere Punkte innerhalb des FOV (z. B. das Abbilden auf selbst sehr kleine Merkmale von Objekten innerhalb des FOV) bereitstellen. In einigen Fällen können LIDAR-Einheiten komplexere Informationen ausgeben, wie z. B. Klassifizierungsinformationen, die eine oder mehrere Laserreflexionen mit einem Objekttyp, von dem die Laserreflexion erfasst wurde, korrelieren.
-
Das Navigationssystem 4008 kann konfiguriert sein, einen Fahrer des Fahrzeugs 4000 bei der Bedienung des Fahrzeugs 4000 zu unterstützen. Beispielsweise kann das Navigationssystem 4008 bestimmen, dass das Fahrzeug 4000 derzeit von einer Sollbewegungsbahn abweicht, und eine Meldung für den Fahrer erzeugen, die die Abweichung von der Sollbewegungsbahn angibt und die auf einer Anzeigevorrichtung angezeigt werden kann (z. B. durch Anzeigen der Sollbewegungsbahn und eines geschätzten Fahrwegs, der basierend auf der aktuellen Position und Fahrtrichtung des Fahrzeugs 4000 bestimmt wurde). Alternativ kann das Navigationssystem 4008 ein autonomes Fahrzeugnavigationssystem umfassen, das konfiguriert ist, die Bewegung des Fahrzeugs 4000 zu steuern, wie an anderer Stelle in dieser Offenbarung beschrieben. Beispielsweise kann das Navigationssystem 4008 eine durch den Prozessor 4001 bestimmte Navigationsaktion (z. B. eines oder mehrere aus Lenken, Abbremsen oder Beschleunigen des Fahrzeugs) ausführen, wenn das Fahrzeug 4000 ein Straßensegment durchfährt. In einigen Ausführungsformen kann das Navigationssystem 4008 ein weiterentwickeltes Fahrerassistenzsystem (ADAS) enthalten. In einigen Ausführungsformen kann das Navigationssystem 4008 konfiguriert sein, die Aktivierung eines oder mehrerer Aktoren, die einem Lenksystem, einem Bremssystem oder einem Antriebssystem des Fahrzeugs 4000 zugeordnet sind, gemäß einer oder mehrerer Navigationsaktionen zu veranlassen.
-
In einigen Ausführungsformen kann das Fahrzeug 4000 auch einen oder mehrere Sensoren enthalten, die konfiguriert sind, Informationen in Bezug auf das Fahrzeug 4000 und/oder die Umgebung des Fahrzeugs 4000 zu sammeln. Beispielhafte Sensoren können eine Positionsbestimmungsvorrichtung (z. B. eine Vorrichtung des globalen Positionsbestimmungssystems (GPS-Vorrichtung)), einen Beschleunigungsmesser, einen Gyrosensor, einen Geschwindigkeitsmesser oder dergleichen oder eine Kombination davon enthalten. Beispielsweise kann das Fahrzeug 4000 eine GPS-Vorrichtung enthalten, die konfiguriert ist, Positionsbestimmungsdaten, die den Positionen des Fahrzeugs 4000 zugeordnet sind, über eine Zeitspanne hinweg zu sammeln.
-
41 ist ein Ablaufplan, der einen beispielhaften Prozess 4100 zum Bestimmen einer Navigationsaktion für ein Trägerfahrzeug zeigt, konsistent mit offenbarten Ausführungsformen. Es wird auch auf 42 Bezug genommen, die eine schematische Darstellung einer beispielhaften Umgebung des Fahrzeugs 4000 ist.
-
In Schritt 4101 kann der Prozessor 4001 programmiert sein, von der Kamera 4006 an Bord des Fahrzeugs 4000 wenigstens ein aufgenommenes Bild, das für eine Umgebung des Fahrzeugs 4000 repräsentativ ist, zu empfangen. In einigen Ausführungsformen kann die Kamera 4006 konfiguriert sein, ein oder mehrere Bilder, die für die Umgebung des Fahrzeugs 4000 repräsentativ sind, aufzunehmen, ähnlich einem oder mehreren Prozessen zum Aufnehmen von Bildern, wie sie an anderer Stelle in dieser Offenbarung beschrieben sind.
-
Die Kamera 4006 kann an einem ersten Ort relativ zu dem Fahrzeug 4000 positioniert sein. Beispielsweise kann sich die Kamera 4006 hinter einer Windschutzscheibe des Fahrzeugs 4000, in der Nähe eines vorderen Stoßfängers des Fahrzeugs 4000, in der Nähe des Rückspiegels des Fahrzeugs 4000, in einem oder beiden Seitenspiegeln des Fahrzeugs 4000, auf dem Dach des Fahrzeugs 4000, auf der Motorhaube des Fahrzeugs 4000, auf dem Kofferraum des Fahrzeugs 4000, an den Seiten des Fahrzeugs 4000, montiert auf, positioniert hinter oder positioniert vor einem der Fenster des Fahrzeugs 4000 und positioniert in oder in der Nähe von Lichtfiguren an der Vorderseite und/oder Rückseite des Fahrzeugs 4000 usw. befinden. Als Beispiel kann sich die Kamera 4006, wie in 42 dargestellt, in der Nähe des vorderen Stoßfängers des Fahrzeugs 4000 befinden.
-
In einigen Ausführungsformen kann die Kamera 4006 konfiguriert sein, mehrere Bilder über eine Zeitspanne aufzunehmen, die die Bewegung des Fahrzeugs 4000 relativ zu einem oder mehreren Objekten in der Umgebung (z. B. Verzögern eines vorausfahrenden Fahrzeugs) angeben können.
-
Bezug nehmend auf 41 kann der Prozessor 4001 in Schritt 4102 programmiert sein, Punktwolkeninformationen von einem LIDAR-System an Bord des Trägerfahrzeugs zu empfangen. Wie an anderer Stelle in dieser Offenbarung beschrieben können Punktwolkeninformationen repräsentativ für die Abstände zu verschiedenen Objekten in der Umgebung des Trägerfahrzeugs sein. Das LIDAR-System 4007 kann Reflexionsinformationen aus seinem Sichtfeld in der Umgebung des Fahrzeugs 4000 aufnehmen. Die Reflexionsinformationen können Informationen enthalten, die sich auf Reflexionen durch verschiedene Objekte in dem Sichtfeld beziehen. In einigen Ausführungsformen können die Punktwolkeninformationen mehrere aufgenommene LIDAR-Rahmen enthalten. Ein LIDAR-Rahmen kann sich auf LIDAR-Daten beziehen, die während eines Abtastzyklus erfasst werden. In einem Beispiel kann eine typische Rahmenzeit kürzer als eine Sekunde sein. In einigen Ausführungsformen kann das LIDAR-System 4007 eine feste Rahmenrate aufweisen (z. B. 10 Rahmen pro Sekunde, 25 Rahmen pro Sekunde, 50 Rahmen pro Sekunde), oder die Rahmenrate kann dynamisch sein. Ähnlich wie bei einer Folge von Bildern, die durch die Kamera 4006 über eine Zeitspanne aufgenommen wurden, wie vorstehend beschrieben, kann der Prozessor 4001 auch mehrere aufgenommene LIDAR-Rahmen verwenden, um die Bewegung des Fahrzeugs 4000 relativ zu einem oder mehreren Objekten in der Umgebung (z. B. das Verzögern eines vorausfahrenden Fahrzeugs) zu bestimmen.
-
In einigen Ausführungsformen kann das LIDAR-System 4007 an einem zweiten Ort relativ zum Fahrzeug 4000 positioniert sein. Beispielsweise kann eine LIDAR System 4007 an einem vorne gelegenen Ort auf dem Fahrzeug 4000 positioniert sein (z. B. in der Nähe der Scheinwerfer, im Frontgrill, in der Nähe der Nebelscheinwerfer, in einem vorderen Stoßfänger oder an irgendeinem anderen geeigneten Ort). In einigen Fällen kann das LIDAR-System, das an einem vorderen Abschnitt des Fahrzeugs 4000 installiert sind, Reflexionsinformationen aus einem Sichtfeld in einer Umgebung vor dem Fahrzeug 4000 sammeln. In anderen Ausführungsformen kann sich das LIDAR-System 4007 an anderen Orten befinden. Beispielsweise kann sich das LIDAR-System 4007 hinter einer Windschutzscheibe des Fahrzeugs 4000, in der Nähe eines vorderen Stoßfängers des Fahrzeugs 4000, in der Nähe des Rückspiegels des Fahrzeugs 4000, in einem oder beiden Seitenspiegeln des Fahrzeugs 4000, auf dem Dach des Fahrzeugs 4000, auf der Motorhaube des Fahrzeugs 4000, auf dem Kofferraum des Fahrzeugs 4000, an den Seiten des Fahrzeugs 4000, montiert auf, positioniert hinter oder positioniert vor einem der Fenster des Fahrzeugs 4000 und positioniert in oder in der Nähe von Lichtfiguren an der Vorderseite und/oder Rückseite des Fahrzeugs 4000 usw. befinden.
-
In einigen Ausführungsformen können der zweite Ort (an dem das LIDAR-System 4007 positioniert ist) und der erste Ort (an dem die Kamera 4006 positioniert ist) unterschiedlich sein. Beispielsweise kann sich die Kamera 4006 hinter einer Windschutzscheibe des Fahrzeugs 4000 befinden, und das LIDAR-System 4007 kann auf einem Dach des Fahrzeugs 4000 montiert sein. Als ein weiteres Beispiel befindet sich die Kamera 4006 in der Nähe des vorderen Stoßfängers des Fahrzeugs 4000, und das LIDAR-System 4007 ist auf einem Dach des Fahrzeugs 4000 montiert. Als ein weiteres Beispiel befindet sich die Kamera 4006 hinter einer Windschutzscheibe des Fahrzeugs 4000, und das LIDAR-System 4007 befindet sich in der Nähe eines vorderen Stoßfängers des Fahrzeugs 4000. In einigen Ausführungsformen kann die Kamera 4006 ein FOV aufweisen, das sich von dem FOV des LIDAR-Systems 4007 unterscheidet, jedoch kann das FOV der Kamera 4006 das FOV des LIDAR-Systems 4007 wenigstens teilweise überlappen, um einen gemeinsamen Sichtfeldbereich bereitzustellen. In einigen Ausführungsformen kann ein Sichtfeld der Kamera 4006 ein Sichtfeld des LIDAR-Systems 4007 wenigstens teilweise überlappen, um einen gemeinsamen Sichtfeldbereich bereitzustellen. Beispielsweise befindet sich die Kamera 4006, wie in 42 dargestellt, in der Nähe eines vorderen Stoßfängers des Fahrzeugs 4000, und das LIDAR-System 4007 ist auf dem Dach des Fahrzeugs 4000 montiert. Das LIDAR-System 4007 besitzt ein LIDAR-FOV 4017, und die Kamera 4006 besitzt ein Kamera-FOV 4016, das ein Sichtfeld des LIDAR-Systems 4007 wenigstens teilweise überlappen kann, um einen gemeinsamen FOV-Bereich 4018 bereitzustellen. Ein gemeinsamer FOV-Bereich kann sich auf einen Bereich beziehen, den sowohl die Kamera 4006 als auch das LIDAR-System 4007 erfassen können, aber ihre Blickwinkelunterschiede können zu Unterschieden darin führen, was sie in dem gemeinsamen FOV-Bereich detektieren können. Beispielsweise kann, wie in 42 dargestellt, eine tiefer positionierte Kamera 4006 (die sich z. B. in der Nähe des vorderen Stoßfängers des Fahrzeugs 4000 befindet) nur ein vorausfahrendes Fahrzeug (z. B. das erste Fahrzeug 4201) erfassen, während ein höher positioniertes LIDAR-System 4007 (das sich z. B. auf dem Dach des Fahrzeugs 4000 befindet) ein Objekt jenseits des vorausfahrenden Fahrzeugs (z. B. das zweite Fahrzeug 4202) erfassen kann. In einem weiteren Beispiel hingegen kann eine in dem Kühlergrill des Trägerfahrzeugs positionierte Kamera Objekte in unmittelbarer Nähe des Trägerfahrzeugs erfassen (z. B. das in 42 dargestellte Objekt 4211 auf dem Boden), während ein auf dem Dach des Trägerfahrzeugs montiertes LIDAR-System durch die Motorhaube des Trägerfahrzeugs verdeckt sein kann. Als ein weiteres Beispiel kann ein LIDAR-System eine bessere Sicht auf nähere Objekte besitzen, die in den aufgenommenen Kamerabildern durch die Motorhaube des Trägerfahrzeugs verdeckt sein könnten.
-
Unter Bezugnahme auf 41 kann der Prozessor 4001 in Schritt 4103 programmiert sein, das wenigstens eine aufgenommene Bild und die empfangenen Punktwolkeninformationen zu analysieren, um ein oder mehrere Objekte in dem gemeinsamen Sichtfeldbereich (z. B. dem in 42 dargestellten gemeinsamen FOV-Bereich 4018) zu detektieren. Das eine oder die mehreren detektierten Objekte können in nur einem aus dem wenigstens einen aufgenommenen Bild oder den empfangenen Punktwolkeninformationen repräsentiert sein. Beispielsweise kann der Prozessor, wie in 42 dargestellt, programmiert sein, das wenigstens eine aufgenommene Bild und die empfangenen Punktwolkeninformationen zu analysieren und ein Objekt 4211 auf dem Boden, das sich in dem gemeinsamen FOV-Bereich 4018 befinden kann, zu detektieren. Das Objekt 4211 kann jedoch in dem wenigstens einen aufgenommenen Bild erscheinen, jedoch angesichts dessen, dass die Sicht des LIDAR-Systems 4007 durch die Motorhaube des Fahrzeugs 4000 verdeckt sein kann, nicht in den Punktwolkeninformationen erscheinen. In einigen Ausführungsformen kann ein durch den Prozessor 4001 in Schritt 4103 detektiertes Objekt ein Objekt enthalten, das sich vor einem Zielfahrzeug vor dem Trägerfahrzeug befindet. In einem Beispiel, wie in 42 dargestellt, ist, obwohl das zweite Fahrzeug 4202 auch in dem Kamera-FOV 4016 (und dem zweiten Fahrzeug 4202) erscheinen kann, das zweite Fahrzeug 4202 jedoch durch das erste Fahrzeug 4201 (d. h. das vorausfahrend Fahrzeug oder ein Zielfahrzeug) in dem Sichtfeld der Kamera 4006 blockiert. Als ein Ergebnis kann das zweite Fahrzeug 4202 in den Punktwolkeninformationen erscheinen, jedoch nicht in dem einen oder den mehreren aufgenommenen Bildern. Ein durch den Prozessor 4001 in Schritt 4103 detektiertes Objekt kann ein statisches Objekt auf einer Fahrbahn (z. B. eine Bodenwelle auf der Fahrbahn) enthalten. In einigen Ausführungsformen kann ein durch den Prozessor 4001 in Schritt 4103 detektiertes Objekt ein Objekt enthalten, das sich vor dem Fahrzeug 4000 befindet, jedoch nahe genug ist, dass ein Abschnitt des Fahrzeugs 4000 (z. B. die Vorderseite des Fahrzeugs 4000) das eine oder die mehreren Objekte entweder in dem wenigstens einen aufgenommenen Bild oder den Punktwolkeninformationen verdeckt. Beispielsweise kann der Prozessor 4001, wie in 42 dargestellt, ein Objekt 4211 auf dem Boden detektieren, das durch die Motorhaube des Fahrzeugs 4000 verdeckt sein kann und nur in dem aufgenommenen Bild erscheinen kann.
-
In Schritt 4104 kann der Prozessor programmiert sein zu bestimmen, ob ein Blickwinkelunterschied zwischen dem ersten Ort der Kamera 4006 und dem zweiten Ort des LIDAR-Systems 4007 dazu führt, dass das eine oder die mehreren detektierten Objekte nur in einem aus dem wenigstens einen aufgenommenen Bild oder den empfangenen Punktwolkeninformationen repräsentiert sind. Beispielsweise kann der Prozessor 4001 einen Blickwinkelunterschied basierend auf den FOVs und/oder den Orten der Kamera 4006 und des LIDAR-Systems 4007 bestimmen. Der Prozessor 4001 kann auch bestimmen, ob das Nichterscheinen eines Objekts (in Schritt 4103) in einem aus dem wenigstens einen aufgenommenen Bild oder den empfangenen Punktwolkeninformationen, jedoch nicht in dem anderen, auf den Blickwinkelunterschied zurückzuführen ist.
-
Falls der Prozessor 4001 bestimmt, dass nicht der Blickwinkelunterschied dazu führt, dass das eine oder die mehreren detektierten Objekte nur in einem aus dem wenigstens einen aufgenommenen Bild oder den empfangenen Punktwolkeninformationen repräsentiert sind, fährt der Prozess 4100 zu Schritt 4105 fort. In Schritt 4105 kann der Prozessor 4001 programmiert sein zu veranlassen, dass wenigstens eine Abhilfeaktion ausgeführt wird. Eine Abhilfeaktion kann wenigstens eines aus dem Ausgeben einer Warnung an einen Insassen und/oder einen Fahrer des Fahrzeugs 4000 (z. B. nach dem Detektieren einer Geschwindigkeitsschwelle auf einer Fahrbahn) oder dem Nichtbeachten des einen oder der mehreren detektierten Objekte bei der Navigation des Trägerfahrzeugs (z. B. nach dem Detektieren eines kleinen Objekts auf dem Boden) enthalten.
-
In einigen Ausführungsformen kann die wenigstens eine Abhilfemaßnahme das Anwenden unterschiedlicher Gewichtungen auf einen bildbasierten Detektionsweg basierend auf der Analyse des wenigstens einen aufgenommenen Bildes und einen LIDAR-basierten Detektionsweg basierend auf der Analyse der Punktwolkeninformationen enthalten. In einigen Fällen kann ein Unterschied in den Detektionsergebnissen durch die Kamera 4006 und das LIDAR-System nicht auf einen Blickwinkelunterschied zwischen Kamera 4006 und LIDAR-System 4007 zurückzuführen sein, sondern auf andere Gründe. Beispielsweise kann der Unterschied in den Detektionsergebnissen auf spezielle Umgebungsbedingungen zurückzuführen sein. Beispielsweise kann das LIDAR-System 4007 in einer Umgebung mit starker Sonneneinstrahlung (oder in einer stark reflektierenden Umgebung oder bei schlechten Lichtverhältnissen in der Nacht ohne Straßenbeleuchtung usw.) besser funktionieren als die Kamera 4006. Als ein Ergebnis kann der Prozessor 4001 ein Objekt in den Punktwolkeninformationen detektieren, jedoch nicht in den durch die Kamera 4006 aufgenommenen Bildern, selbst wenn das Objekt in beiden Ansichten der Kamera 4006 und des LIDAR-Systems 4007 erscheint. Andererseits kann die Kamera 4006 an einem nebligen oder regnerischen Tag besser funktionieren als das LIDAR-System 4007. Als ein Ergebnis kann der Prozessor 4001 ein Objekt in den Bildern, jedoch nicht in den Punktwolkeninformationen detektieren. Falls der Prozessor 4001 bestimmt, dass nicht der Blickwinkelunterschied dafür verantwortlich ist, dass das eine oder die mehreren detektierten Objekte nur in einem aus dem wenigstens einen aufgenommenen Bild oder den empfangenen Punktwolkeninformationen repräsentiert sind, kann der Prozessor 4001 auf einen bildbasierten Detektionsweg, der auf der Analyse des wenigstens einen aufgenommenen Bildes basiert, und auf einen LIDAR-basierten Detektionsweg, der auf der Analyse der Punktwolkeninformationen basiert, unterschiedliche Gewichtungen anwenden. Falls der Prozessor 4001 beispielsweise bestimmt, dass die Nichtdetektion eines Objekts in den Punktwolkeninformationen auf eine Wetterbedingung (z. B. einen regnerischen Tag) zurückzuführen ist, kann der Prozessor 4001 auf einen bildbasierten Detektionsweg eine höhere Gewichtung anwenden als auf einen LIDAR-basierten Detektionsweg, was ein genaueres Detektionsergebnis ergeben kann. Als weiteres Beispiel kann der Prozessor 4001, falls der Prozessor 4001 bestimmt, dass die Nichtdetektion eines Objekts in dem/den Bild(ern) auf die Lichtverhältnisse zurückzuführen ist (z. B. das Fahrzeug 4000 navigiert nachts ohne Straßenbeleuchtung), auf einen bildbasierten Detektionsweg eine geringere Gewichtung anwenden als auf einen LIDAR-basierten Detektionsweg.
-
Falls der Prozessor 4001 bestimmt, dass der Blickwinkelunterschied dafür verantwortlich ist, dass das eine oder die mehreren erkannten Objekte nur in einem aus dem wenigstens einen aufgenommenen Bild oder den empfangenen Punktwolkeninformationen repräsentiert sind, kann der Prozess 4100 zu Schritt 4106 fortfahren. In Schritt 4106 kann der Prozessor 4001 programmiert sein, basierend auf dem einen oder den mehreren detektierten Objekten wenigstens eine durch das Fahrzeug 4000 auszuführende Navigationsaktion zu bestimmen und in Schritt 4107 zu veranlassen, dass das Fahrzeug 4000 die wenigstens eine Navigationsaktion ausführt. Wie an anderer Stelle in dieser Offenbarung beschrieben, kann eine Navigationsaktion, die durch einen Prozessor bestimmt und durch das Fahrzeug 4000 ausgeführt wird, das Beibehalten oder Ändern einer aktuellen Fahrtrichtung, das Erhöhen oder Reduzieren einer aktuellen Geschwindigkeit oder dergleichen oder eine Kombination davon enthalten. Der Prozessor 4001 kann auch programmiert sein, die wenigstens eine Navigationsaktion, die durch das Fahrzeug 4000 auszuführen ist, gemäß einem oder mehreren Verfahren zum Steuern eines Navigationssystems, die an anderer Stelle in dieser Offenbarung beschrieben sind, zu veranlassen. Beispielsweise kann der Prozessor 4001 programmiert sein, die wenigstens eine durch das Fahrzeug 4000 auszuführende Navigationsaktion zu veranlassen, indem er die Aktivierung eines oder mehrerer Aktoren, die einem Lenksystem (z. B. Beibehalten oder Ändern einer aktuellen Fahrtrichtung), einem Bremssystem (z. B. Reduzieren einer aktuellen Geschwindigkeit) oder einem Antriebssystem des Fahrzeugs 4000 (z. B. Beschleunigen, Verzögern, Verringern einer aktuellen Geschwindigkeit) zugeordnet sind, veranlasst.
-
In einigen Ausführungsformen kann der Prozessor 4001 die wenigstens eine Navigationsaktion basierend auf einer detektierten Aktion oder Bewegung des oder der detektierten Objekte bestimmen. Beispielsweise kann der Prozessor 4001, wie vorstehend beschrieben, das in 42 dargestellte zweite Fahrzeug 4202 (das sich vor dem ersten Fahrzeug 4201, einem Zielfahrzeug, befindet) in den durch das LIDAR-System 4007 aufgenommenen Punktwolkeninformationen detektieren. Der Prozessor 4001 kann programmiert sein, basierend auf einer trotz des ersten Fahrzeugs 4201 detektierten Aktion des zweiten Fahrzeugs 4202 eine Navigationsaktion zu bestimmen. Beispielsweise kann der Prozessor 4001 programmiert sein, eine Verlangsamung des zweiten Fahrzeugs 4202 beispielsweise basierend auf mehreren LIDAR-Rahmen mit Punktwolkeninformationen zu detektieren, obwohl nicht detektiert wird, dass das Zielfahrzeug langsamer wird. Der Prozessor 4001 kann auch programmiert sein, eine Navigationsaktion des bremsenden Fahrzeugs 4000 zu bestimmen. Der Prozessor 4001 kann auch programmiert sein, zu veranlassen, dass das Navigationssystem 4008 das Fahrzeug 4000 abbremst.
-
Pseudo-LIDAR
-
Diese Offenbarung stellt Systeme und Verfahren bereit, die Tiefeninformationen in den Pixeln von Bildern, die durch eine oder mehrere Gruppen von Kameras aufgenommen wurden, ableiten können. In einigen Ausführungsformen kann ein Trägerfahrzeug beispielsweise eine Gruppe von Kameras, die drei Kameras enthalten kann, nämlich eine mittlere Kamera, eine linke Umgebungskamera und eine rechte Umgebungskamera, enthalten. Das FOV der mittleren Kamera kann sowohl ein FOV der linken Umgebungskamera als auch ein FOV der rechten Umgebungskamera wenigstens teilweise überlappen. Die mittlere Kamera kann konfiguriert sein, ein oder mehrere Bilder (hier auch als mittlere Bilder bezeichnet) wenigstens eines Abschnitts der Umgebung des Trägerfahrzeugs in dem FOV der mittleren Kamera aufzunehmen. Die linke Umgebungskamera kann konfiguriert sein, ein oder mehrere Bilder (hier auch als linke Umgebungsbilder bezeichnet) wenigstens eines Abschnitts der Umgebung des Trägerfahrzeugs in dem FOV der linken Umgebungskamera aufzunehmen. Die rechte Umgebungskamera kann konfiguriert sein, ein oder mehrere Bilder (hier auch als rechte Umgebungsbilder bezeichnet) wenigstens eines Abschnitts der Umgebung des Trägerfahrzeugs in dem FOV der rechten Umgebungskamera aufzunehmen. Das Trägerfahrzeug kann ein aufgenommenes mittleres Bild von der mittleren Kamera, ein aufgenommenes linkes Umgebungsbild von der linken Umgebungskamera und ein aufgenommenes rechtes Umgebungsbild von der rechten Umgebungskamera empfangen. Das Trägerfahrzeug kann die empfangenen Bilder auch einem Analysemodul zur Verfügung stellen, das konfiguriert sein kann, eine Ausgabe in Bezug auf das mittlere Bild basierend auf der Analyse des mittleren Bildes, des linken und des rechten Umgebungsbildes zu erzeugen. In einigen Ausführungsformen kann die erzeugte Ausgabe Tiefeninformationen pro Pixel für wenigstens einen Bereich des mittleren Bildes enthalten. Das Trägerfahrzeug kann ferner wenigstens eine Navigationsaktion basierend auf der erzeugten Ausgabe, die die Tiefeninformationen pro Pixel für den wenigstens einen Bereich des mittleren Bildes enthält, ausführen.
-
43 stellt ein beispielhaftes Fahrzeug 4300 konsistent mit offenbarten Ausführungsformen dar. Die offenbarten Systeme und Verfahren können unter Verwendung einer oder mehrerer Komponenten des Fahrzeugs 4300 implementiert sein. Wie in 43 dargestellt, kann das Fahrzeug 4300 wenigstens einen Prozessor (z. B. den Prozessor 4301), einen Speicher 4302, wenigstens eine Speichervorrichtung (z. B. die Speichervorrichtung 4303), einen Kommunikationsanschluss 4304, eine I/O-Vorrichtung 4305, mehrere Kameras 4306, ein LIDAR-System 4307 und ein Navigationssystem 4308 enthalten.
-
Der Prozessor 4301 kann programmiert sein, eine oder mehrere der in dieser Offenbarung beschriebenen Funktionen des Fahrzeugs 4300 auszuführen. Der Prozessor 4301 kann einen Mikroprozessor, Vorprozessoren (z. B. einen Bildvorprozessor), eine Grafikverarbeitungseinheit (GPU), eine zentrale Verarbeitungseinheit (CPU), Unterstützungsschaltungen, digitale Signalprozessoren, integrierte Schaltungen, Speicher oder irgendwelche anderen Typen von Vorrichtungen, die zum Ablaufen von Anwendungen oder Ausführen einer Berechnungsaufgabe geeignet sind, enthalten. In einigen Ausführungsformen kann der Prozessor 4301 irgendeine Art von Einzel- oder Mehrkernprozessor, Mikrosteuereinheiten für mobile Vorrichtungen, eine zentrale Verarbeitungseinheit usw. enthalten. Verschiedene Verarbeitungsvorrichtungen können verwendet werden, die beispielsweise Prozessoren von Herstellern wie Intel®, AMD® usw. oder GPUs von Herstellern wie NVIDIA®, ATI® usw. enthalten und verschiedene Architekturen (z. B. x86-Prozessor, ARME usw.) enthalten können. Jede der hier offenbarten Verarbeitungsvorrichtungen kann konfiguriert sein, spezielle Funktionen auszuführen. Das Konfigurieren einer Verarbeitungsvorrichtung, wie z. B. eines der beschriebenen Prozessoren oder einer anderen Steuereinheit oder eines anderen Mikroprozessors, zum Ausführen spezieller Funktionen kann das Programmieren von computerausführbaren Anweisungen und das Verfügbarmachen dieser Anweisungen für die Verarbeitungsvorrichtung zur Ausführung während des Betriebs der Verarbeitungsvorrichtung enthalten. In einigen Ausführungsformen kann das Konfigurieren einer Verarbeitungsvorrichtung direktes Programmieren der Verarbeitungsvorrichtung mit Architekturanweisungen enthalten. Beispielsweise können Verarbeitungsvorrichtungen wie z. B. feldprogrammierbare Gatter-Arrays (FPGAs), anwendungsspezifische integrierte Schaltungen (ASICs) und dergleichen unter Verwendung beispielsweise einer oder mehrerer Hardwarebeschreibungssprachen (HDLs) konfiguriert werden.
-
Das Fahrzeug 4300 kann außerdem einen Speicher 4302 enthalten, der Anweisungen für verschiedene Komponenten des Fahrzeugs 4300 speichern kann. Beispielsweise kann der Speicher 4302 Anweisungen speichern, die dann, wenn sie durch den Prozessor 4301 ausgeführt werden, konfiguriert sein können, den Prozessor 4301 zu veranlassen, eine oder mehrere hier beschriebene Funktionen des Prozessors 4301 auszuführen. Der Speicher 4302 kann irgendeine Anzahl von Direktzugriffsspeichern, Festwertspeichern, Flash-Speichern, Plattenlaufwerken, optischen Speichern, Bandspeichern, herausnehmbaren Speichern und anderen Speichertypen enthalten. In einem Fall kann der Speicher 4302 von dem Prozessor 4301 getrennt sein. In einem anderen Fall kann der Speicher 4302 in den Prozessor 4301 integriert sein. In einigen Ausführungsformen kann der Speicher 4302 Software zum Ausführen einer oder mehrerer Berechnungsaufgaben sowie ein trainiertes System, wie z. B. ein neuronales Netz (z. B. ein trainiertes tiefes neuronales Netz) oder ein tiefes neuronales Netz, enthalten. Beispielsweise kann der Speicher 4302 ein Analysemodul enthalten, auf das der Prozessor 4301 zugreifen kann, um Bilder zu empfangen und eine Ausgabe in Bezug auf eines der Bilder zu erzeugen, wie an anderer Stelle in dieser Offenbarung beschrieben ist.
-
In einigen Ausführungsformen kann das Analysemodul wenigstens ein trainiertes Modell enthalten, das basierend auf Trainingsdaten trainiert ist, die eine Kombination aus mehreren Bildern, die durch Kameras mit wenigstens teilweise überlappenden Feldern aufgenommen wurden, und LIDAR-Punktwolkeninformationen, die wenigstens einigen mehreren Bilder entsprechen, enthalten. Beispielsweise kann jede der Trainingsdatenmengen drei Bilder enthalten, von denen jedes durch eine aus einer Gruppe von Kameras (die eine mittlere Kamera, eine linke Umgebungskamera und eine rechte Umgebungskamera enthält), die auf einem Trainingsfahrzeug montiert sind, aufgenommen sein kann. Das FOV der mittleren Kamera kann das FOV der linken Umgebungskamera das FOV der rechten Umgebungskamera wenigstens teilweise überlappen. Die Trainingsdatenmenge kann auch Punktwolkeninformationen enthalten, die durch ein auf demselben Fahrzeug montierten LIDAR-System aufgenommen wurden, das gemessene Tiefeninformationen, die den durch die Kameragruppe aufgenommenen Bildern zugeordnet sind, bereitstellen kann. Die Punktwolkeninformationen können als Referenztiefeninformationen (oder wahre Tiefenwerte) zum Trainieren des neuronalen Netzes behandelt werden. Die Bilder in der Trainingsdatenmenge (und/oder extrahierte Bildmerkmale) können in ein vorläufiges (oder untrainiertes) neuronales Netz eingegeben werden, das eine Ausgabe, die berechnete Tiefeninformationen pro Pixel für wenigstens einen Bereich des mittleren Bildes enthält, erzeugen kann. Die berechneten Tiefeninformationen pro Pixel können mit den entsprechenden Tiefeninformationen der Punktwolkeninformationen verglichen werden, um zu bestimmen, ob das neuronale Netz die Modellparameter oder Gewichte besitzt, die ein vorgegebenes Genauigkeitsniveau für das Erzeugen von Tiefeninformationen pro Pixel erfüllen oder überschreiten. Beispielsweise kann das Trainingssystem zum Trainieren des neuronalen Netzes eine Genauigkeitsbewertung des neuronalen Netzes basierend auf dem Vergleich der berechneten Tiefeninformationen und der entsprechenden Tiefeninformationen in den Punktwolkeninformationen (die in den Trainingsdatenmengen enthalten sind) erzeugen. Falls die Genauigkeitsbewertung gleich einem Schwellenwert ist oder diesen übersteigt, kann der Trainingsprozess beendet werden, und das Trainingssystem kann das trainierte neuronale Netz in eine lokale Speichervorrichtung speichern und/oder das trainierte neuronale Netz an ein oder mehrere Fahrzeuge (z. B. das Fahrzeug 4300) senden. Falls andererseits die Genauigkeitsbewertung unterhalb des Schwellenwerts ist, kann das Trainingssystem einen oder mehrere Parameter oder Gewichte des neuronalen Netzes anpassen und den Trainingsprozess unter Verwendung von Trainingsdatenmengen wiederholen, bis eine Genauigkeitsbewertung des neuronalen Netzes erreicht wird, die gleich dem Schwellenwert ist oder ihn übersteigt (und/oder eine vorgegebene Anzahl von Trainingszyklen erreicht worden ist).
-
In einigen Ausführungsformen kann beim Trainieren eines neuronalen Netzes eine Kombination von Bewertungsfunktionen (oder Verlusten) verwendet werden, die einen photometrischen Verlust beinhalten kann, der eine Bewertung für die Tiefeninformationen, die durch das Netz basierend auf den Bildern der Trainingsdatenmenge berechnet werden, bereitstellt. Für die richtige Tiefe kann der Unterschied in der Erscheinung zwischen entsprechenden Bildstellen minimiert werden, was eine Führung in Bildbereichen, in denen Texturmerkmale existieren, bereitstellen kann. Zusätzlich kann eine dünner besetzte Bewertungsfunktion unter Verwendung einer Projektion von LIDAR-Punktmessungen, die durch das LIDAR-System des Trainingsfahrzeugs gesammelt wurden, berechnet werden. Diese Punkte können auf einem oder mehreren statischen Objekten in der Szene unter Verwendung der berechneten Eigenbewegung des Fahrzeugs aggregiert werden. Die Projektion kann die Zeitunterschiede zwischen dem Zeitpunkt, zu dem die Pixelintensität des Bildes, in dem die Tiefeninformation durch das neuronale Netz während des Trainingsprozesses berechnet werden soll, aufgezeichnet werden kann, und der Aufnahmezeit der LIDAR-Daten, die ebenfalls aufgezeichnet werden können, berücksichtigen. Statische Objekte können basierend auf monokularen Bildobjektdetektoren bestimmt werden, um die Falsch-Negativ-Rate zu minimieren (um den Preis einer hohen Falsch-Positiv-Rate). In einigen Ausführungsformen kann das neuronale Netz auch trainiert werden, um einen Vertrauenswert der berechneten Tiefeninformationen vorherzusagen, indem es auf die Größe seines eigenen geometrischen Fehlers zurückgreift, der zur Trainingszeit unter Verwendung der geometrischen Kennzeichnung des LIDAR optimiert werden kann.
-
In einigen Ausführungsformen kann das Fahrzeug 4300 das Analysemodul von einem Server über ein Netz empfangen und das Analysemodul in dem Speicher 4302 und/oder in der Speichervorrichtung 4303 speichern.
-
Die Speichervorrichtung 4303 kann konfiguriert sein, verschiedene Daten und Informationen für eine oder mehrere Komponenten des Fahrzeugs 4300 zu speichern. Die Speichervorrichtung 4303 kann eine oder mehrere Festplatten, Bänder, ein oder mehrere Festkörperlaufwerke, irgendeine Vorrichtung, die zum Schreiben und Lesen von Daten geeignet ist, oder dergleichen oder eine Kombination davon enthalten. Beispielsweise kann die Speichervorrichtung 4303 konfiguriert sein, die Daten einer oder mehrerer Karten zu speichern. Als Beispiel kann die Speichervorrichtung 4303 Daten einer dünn besetzten Karte, die einen oder mehrere einem Straßensegment zugeordnete Orientierungspunkte und eine oder mehrere dem Straßensegment zugeordnete Sollbewegungsbahnen enthalten kann, speichern Als weiteres Beispiel kann die Speichervorrichtung 4303 konfiguriert sein, die durch die Kamera 4306 aufgenommenen Bilder und/oder die durch das LIDAR-System 4307 aufgenommenen LIDAR-Daten zu speichern.
-
Der Kommunikationsanschluss 4304 kann konfiguriert sein, die Datenkommunikation zwischen dem Fahrzeug 4300 und anderen Vorrichtungen zu unterstützen. Beispielsweise kann der Kommunikationsanschluss 4304 konfiguriert sein, Daten von einem Server (z. B. einem oder mehreren Servern, die in dieser Offenbarung beschrieben sind) über ein oder mehrere öffentliche oder private Netze, die das Internet, ein Intranet, ein WAN (Weitbereichsnetz), ein MAN („Metropolitan-Area Network“), ein Drahtlosnetz, das mit den IEEE 802.11a/b/g/n-Standards kompatibel ist, eine Standleitung oder dergleichen enthält, zu empfangen und an ihn zu senden.
-
Die I/O-Vorrichtung 4305 kann konfiguriert sein, Eingaben von dem Benutzer des Fahrzeugs 4300 zu empfangen, und eine oder mehrere Komponenten des Fahrzeugs 4300 können in Reaktion auf die empfangene Eingaben eine oder mehrere Funktionen ausführen. In einigen Ausführungsformen kann die I/O-Vorrichtung 4305 eine Schnittstelle enthalten, die auf einem berührungssensitiven Bildschirm angezeigt wird. Die I/O-Vorrichtung 4305 kann auch konfiguriert sein, Informationen und/oder Daten an den Benutzer auszugeben. Beispielsweise kann die I/O-Vorrichtung eine Anzeigevorrichtung enthalten, die konfiguriert ist, eine Karte anzuzeigen.
-
Die Kameras 4306 können konfiguriert sein, ein oder mehrere Bilder der Umgebung des Fahrzeugs 4300 aufzunehmen. Die Kameras 4306 können irgendeine Art einer Vorrichtung, die zum Aufnehmen wenigstens eines Bildes aus einer Umgebung geeignet ist, enthalten. In einigen Ausführungsformen können die Kameras 4306 den in 1 dargestellten und vorstehend beschriebenen Bildaufnahmevorrichtungen 122, 124 und 126 ähnlich sein. Aus Gründen der Kürze werden genaue Beschreibungen hier nicht wiederholt.
-
Die Kameras 4306 können an irgendeinem geeigneten Ort an dem Fahrzeug 4300 positioniert sein. Beispielsweise kann sich eine Kamera 4306 hinter einer Windschutzscheibe des Fahrzeugs 4300, in der Nähe eines vorderen Stoßfängers des Fahrzeugs 4300, in der Nähe des Rückspiegels des Fahrzeugs 4300, in einem oder beiden Seitenspiegeln des Fahrzeugs 4300, auf dem Dach des Fahrzeugs 4300, auf der Motorhaube des Fahrzeugs 4300, auf dem Kofferraum des Fahrzeugs 4300, an den Seiten des Fahrzeugs 4300, montiert auf, positioniert hinter oder positioniert vor einem der Fenster des Fahrzeugs 4300 und positioniert in oder in der Nähe von Lichtfiguren an der Vorderseite und/oder Rückseite des Fahrzeugs 4300 usw. befinden.
-
In einigen Ausführungsformen können die Kameras 4306 eine oder mehrere Gruppen von Kameras enthalten. Jede Kameragruppe kann drei Kameras enthalten, nämlich eine mittlere Kamera, eine linke Umgebungskamera und eine rechte Umgebungskamera. Beispielsweise kann das Fahrzeug 4300, wie in 44 dargestellt ist, eine Gruppe von Kameras enthalten, die eine mittlere Kamera 4410, eine linke Umgebungskamera 4420 und eine rechte Umgebungskamera 4430 enthält. Die mittlere Kamera 4410 kann in der Nähe des Rückspiegels und/oder in der Nähe des Fahrers des Fahrzeugs 4300 positioniert sein. Die linke Umgebungskamera 4420 und die rechte Umgebungskamera 4430 können auf oder in einem Stoßfängerbereich des Fahrzeugs 4300 positioniert sein. Andere Konfigurationen sind ebenfalls möglich. Beispielsweise können die mittlere Kamera 4410, die linke Umgebungskamera 4420 und die rechte Umgebungskamera 4430 in der Nähe des Rückspiegels und/oder in der Nähe des Fahrersitzes des Fahrzeugs 4300 positioniert sein.
-
In einigen Ausführungsformen kann das FOV der mittleren Kamera 4410 sowohl das FOV der linken Umgebungskamera 4420 als auch das FOV der rechten Umgebungskamera 4430 wenigstens teilweise überlappen. Beispielsweise kann die mittlere Kamera 4411, wie in 44 dargestellt ist, ein mittleres Kamera-FOV 4411 aufweisen, die linke Umgebungskamera 4420 kann ein linkes Umgebungs-FOV 4421 aufweisen, und die rechte Umgebungskamera 4430 kann ein rechtes Umgebungs-FOV 4431 aufweisen. Das mittlere Kamera-FOV 4411 kann das linke Umgebungs-FOV 4421 und das rechte Umgebungs-FOV 4431 wenigstens teilweise überlappen. Beispielsweise kann ein Überlappungsbereich 4412 zwischen dem mittleren Kamera-FOV 4411 und dem linken Umgebungs-FOV 4421 und ein Überlappungsbereich 4413 zwischen dem mittleren Kamera-FOV 4411 und dem rechten Umgebungs-FOV 4431 vorhanden sein. In einigen Ausführungsformen können zwei oder mehr aus der mittleren Kamera 4410, der linken Umgebungskamera 4420 und der rechten Umgebungskamera 4430 unterschiedliche FOVs aufweisen (wie in dargestellt).
-
In einigen Ausführungsformen können zwei oder mehr aus der mittleren Kamera 4410, der linken Umgebungskamera 4420 und der rechten Umgebungskamera 4430 unterschiedliche Brennweiten aufweisen. In einigen Ausführungsformen können die Brennweiten der mittleren Kamera 4410, der linken Umgebungskamera 4420 und der rechten Umgebungskamera 4430 mit einem großen Bereich von Winkelüberschneidungen zwischen benachbarten FOVs ausgewählt sein, so dass das System Tiefeninformationen aus den durch die mittlere Kamera 4410, die linke Umgebungskamera 4420 und die rechte Umgebungskamera 4430 aufgenommenen Bildern ableiten kann.
-
In einigen Ausführungsformen kann das Fahrzeug 4300 eine oder mehrere Kameragruppen enthalten. Beispielsweise kann das Fahrzeug 4300 eine erste Kameragruppe enthalten, die die mittlere Kamera 4410, die linke Umgebungskamera 4420 und die rechte Umgebungskamera 4430 enthält. Das Fahrzeug 4300 kann auch eine zweite Kameragruppe enthalten, die eine mittlere Kamera, die sich in der Nähe des Rückspiegels des Fahrzeugs 4300 befindet, eine linke Umgebungskamera, die sich an der linken Rückseite des Fahrzeugs 4300 befindet, und eine rechte Umgebungskamera, die sich an der rechten Rückseite des Fahrzeugs 4300 befindet, enthält. In einigen Ausführungsformen können die FOVs der (zwei oder mehr) Kameragruppen ein Gesamt-FOV bilden, das 360 Grad abdeckt.
-
In einigen Ausführungsformen können sich die Kameragruppen wenigstens eine Kamera gemeinsam verwenden. Beispielsweise kann die zweite Kameragruppe anstelle einer weiteren mittleren Kamera in dem vorstehenden Beispiel die mittlere Kamera 4410 (der ersten Gruppe) als die mittlere Kamera der zweiten Kameragruppe enthalten. Als weiteres Beispiel kann das Fahrzeug 4300 drei oder mehr Kameragruppen enthalten, und die rechte Umgebungskamera der ersten Kameragruppe kann als die linke Umgebungskamera der zweiten Kameragruppe dienen, und die linke Umgebungskamera der ersten Kameragruppe kann die als rechte Umgebungskamera einer dritten Kameragruppe dienen. Alternativ oder zusätzlich kann wenigstens eine aus der linken Umgebungskamera oder der rechten Umgebungskamera der ersten Kameragruppe als mittlere Kamera für eine andere Kameragruppe als die erste Kameragruppe dienen. Der Fachmann wird verstehen, dass die vorstehenden Beispiele der Konfigurationen der Kameras nur der Veranschaulichung dienen und nicht dazu gedacht sind, den Umfang der Offenbarung einzuschränken; andere Konfigurationen von Kameras und/oder Kameragruppen können ebenfalls zum Implementieren der offenbarten Systeme und Verfahren verwendet werden.
-
Das LIDAR-System 4307 kann eine oder mehrere LIDAR-Einheiten enthalten. In einigen Ausführungsformen können die eine oder die mehreren LIDAR-Einheiten auf einem Dach des Fahrzeugs 4300 positioniert sein. Eine solche Einheit kann eine sich drehende Einheit enthalten, die konfiguriert ist, LIDAR-Reflexionsinformationen innerhalb eines 360-Grad-Sichtfelds um das Fahrzeug 4300 oder aus einem beliebigen Teilsegment des 360-Grad-Sichtfelds (z. B. eines oder mehrerer FOVs, die jeweils weniger als 360 Grad repräsentieren) zu sammeln. Die durch das LIDAR-System 4307 gesammelten Daten können dem Prozessor 4301 zur Verfügung gestellt werden. Alternativ oder zusätzlich können die Daten über ein Netz an einen in dieser Offenbarung beschriebenen Server gesendet werden.
-
In einigen Ausführungsformen kann eine LIDAR-Einheit an einem vorne gelegenen Ort auf dem Fahrzeug 4300 positioniert sein (z. B. in der Nähe der Scheinwerfer, im Frontgrill, in der Nähe der Nebelscheinwerfer, in einem vorderen Stoßfänger oder an irgendeinem anderen geeigneten Ort). In einigen Fällen können eine oder mehrere LIDAR-Einheiten, die an einem vorderen Abschnitt des Fahrzeugs 4300 installiert sind, Reflexionsinformationen aus einem Sichtfeld in einer Umgebung vor dem Fahrzeug 4300 sammeln. In anderen Ausführungsformen kann sich eine LIDAR-Einheit an anderen Orten befinden. Beispielsweise kann sich eine LIDAR-Einheit hinter einer Windschutzscheibe des Fahrzeugs 4300, in der Nähe eines vorderen Stoßfängers des Fahrzeugs 4300, in der Nähe des Rückspiegels des Fahrzeugs 4300, in einem oder beiden Seitenspiegeln des Fahrzeugs 4300, auf dem Dach des Fahrzeugs 4300, auf der Motorhaube des Fahrzeugs 4300, auf dem Kofferraum des Fahrzeugs 4300, an den Seiten des Fahrzeugs 4300, montiert auf, positioniert hinter oder positioniert vor einem der Fenster des Fahrzeugs 4300 und positioniert in oder in der Nähe von Lichtfiguren an der Vorderseite und/oder Rückseite des Fahrzeugs 4300 usw. befinden. Das LIDAR-System 4307 kann sich beispielsweise auf dem Dach des Fahrzeugs 4300 befinden, wie in 44 dargestellt ist.
-
Irgendein geeigneter Typ einer LIDAR-Einheit kann in dem Fahrzeug 4300 enthalten sein. In einigen Fällen kann das LIDAR-System 4307 eine oder mehrere Blitz-LIDAR-Einheiten (hier auch also statische LIDAR-Einheiten bezeichnet) (z. B. 3D-Blitz-LIDAR), bei denen ein gesamtes LIDAR-Sichtfeld (LIDAR-FOV) mit einem einzigen Laserimpuls beleuchtet wird, und einen Sensor, der Zeilen und Spalten von Pixeln zur Aufzeichnung der zurückgegebenen Lichtstärke und Flugzeit-/Tiefeninformationen enthält, enthalten. Solche Blitzsysteme können eine Szene beleuchten und mehrmals pro Sekunde LIDAR-„Bilder“ aufnehmen. Abtastende LIDAR-Einheiten können ebenfalls eingesetzt werden. Solche abtastenden LIDAR-Einheiten können sich auf eine oder mehrere Techniken zur Streuung eines Laserstrahls über ein spezielles FOV stützen. In einigen Fällen kann eine abtastende LIDAR-Einheit einen Abtastspiegel enthalten, der einen Laserstrahl ablenkt und auf Objekte innerhalb des FOV richtet. Abtastspiegel können sich um volle 360 Grad drehen oder können sich entlang einer einzelnen Achse oder mehrerer Achsen über weniger als 360 Grad drehen, um den Laser auf ein vorbestimmtes FOV zu richten. In einigen Fällen können LIDAR-Einheiten eine horizontale Zeile abtasten. In anderen Fällen kann eine LIDAR-Einheit mehrere horizontale Zeilen innerhalb eines FOV abtasten, so dass effektiv ein bestimmtes FOV mehrmals pro Sekunde gerastert wird.
-
Die LIDAR-Einheiten in dem LIDAR-System 4307 können irgendeine geeignete Laserquelle enthalten. In einigen Ausführungsformenkönnen die LIDAR-Einheiten einen Dauerlaser einsetzen. In anderen Fällen können die LIDAR-Einheiten gepulste Laseremissionen verwenden. Zusätzlich kann irgendeine geeignete Laserwellenlänge eingesetzt werden. In einigen Fällen kann eine Wellenlänge im Bereich von etwa 600 nm bis etwa 1000 nm verwendet werden.
-
Die LIDAR-Einheit(en) in dem LIDAR-System 4307 kann/können auch irgendeinen geeigneten Sensortyp enthalten und irgendeinen geeigneten Typ einer Ausgabe bereitstellen. In einigen Fällen können die Sensoren der LIDAR-Einheiten Festkörper-Photodetektoren, wie z. B. eine oder mehrere Photodioden oder Photomultiplier, enthalten. Die Sensoren können auch eine oder mehrere CMOS- oder CCD-Vorrichtungen mit einer beliebigen Anzahl von Pixeln enthalten. Diese Sensoren können für Laserlicht, das von einer Szene innerhalb des LIDAR FOV reflektiert wird, empfindlich sein. Die Sensoren können verschiedene Typen von Ausgaben aus einer LIDAR-Einheit ermöglichen. In einigen Fällen kann eine LIDAR-Einheit Lichtstärkenrohwerte und Flugzeitinformationen ausgeben, die für das reflektierte Laserlicht, das an jedem Sensor oder an jedem Pixel oder jeder Teilkomponente eines speziellen Sensors gesammelt wurde, repräsentativ sind. Zusätzlich oder alternativ kann eine LIDAR-Einheit eine Punktwolke (z. B. eine 3D-Punktwolke) ausgeben, die Lichtstärke und Tiefen-/Abstandsinformationen relativ zu jedem gesammelten Punkt enthalten kann. LIDAR-Einheiten können auch verschiedene Arten von Tiefenkarten ausgeben, die für die Lichtreflexionsamplitude und den Abstand zu Punkten innerhalb eines Sichtfelds repräsentativ sind. LIDAR-Einheiten können Tiefen- oder Abstandsinformationen relativ zu speziellen Punkte innerhalb eines FOV dadurch bereitstellen, dass sie den Zeitpunkt festhalten, an dem das Licht der LIDAR-Lichtquelle ursprünglich zu dem FOV projiziert wurde, und einen Zeitpunkt aufzeichnen, zu dem das einfallende Laserlicht durch einen Sensor in der LIDAR-Einheit empfangen wird. Die Zeitdifferenz kann eine Flugzeit repräsentieren, die direkt mit der Umlaufstrecke zusammenhängen kann, die das einfallende Laserlicht von der Laserquelle zu einem reflektierenden Objekt und zurück zu der LIDAR-Einheit zurückgelegt hat. Das Überwachen der Flugzeitinformationen, die einzelnen Laserpunkten oder kleinen Segmenten eines LIDAR-FOV zugeordnet sind, kann genaue Abstandsinformationen für mehrere Punkte innerhalb des FOV (z. B. das Abbilden auf selbst sehr kleine Merkmale von Objekten innerhalb des FOV) bereitstellen. In einigen Fällen können LIDAR-Einheiten komplexere Informationen ausgeben, wie z. B. Klassifizierungsinformationen, die eine oder mehrere Laserreflexionen mit einem Objekttyp, von dem die Laserreflexion erfasst wurde, korrelieren.
-
Das Navigationssystem 4308 kann konfiguriert sein, einen Fahrer des Fahrzeugs 4300 bei der Bedienung des Fahrzeugs 4300 zu unterstützen. Beispielsweise kann das Navigationssystem 4308 bestimmen, dass das Fahrzeug 4300 derzeit von einer Sollbewegungsbahn abweicht, und eine Meldung für den Fahrer erzeugen, die die Abweichung von der Sollbewegungsbahn angibt und die auf einer Anzeigevorrichtung angezeigt werden kann (z. B. durch Anzeigen der Sollbewegungsbahn und eines geschätzten Fahrwegs, der basierend auf der aktuellen Position und Fahrtrichtung des Fahrzeugs 4300 bestimmt wurde). Alternativ kann das Navigationssystem 4308 ein autonomes Fahrzeugnavigationssystem umfassen, das konfiguriert ist, die Bewegung des Fahrzeugs 4300 zu steuern, wie an anderer Stelle in dieser Offenbarung beschrieben. Beispielsweise kann das Navigationssystem 4308 eine durch den Prozessor 4301 bestimmte Navigationsaktion ausführen, wenn das Fahrzeug 4300 ein Straßensegment durchfährt (z. B. eines oder mehrere aus Lenken, Abbremsen oder Beschleunigen des Fahrzeugs). In einigen Ausführungsformen kann das Navigationssystem 4308 ein weiterentwickeltes Fahrerassistenzsystem (ADAS) enthalten. In einigen Ausführungsformen kann das Navigationssystem 4308 konfiguriert sein, die Aktivierung eines oder mehrerer Aktoren, die einem Lenksystem, einem Bremssystem oder einem Antriebssystem des Fahrzeugs 4300 zugeordnet sind, gemäß einer oder mehrerer Navigationsaktionen zu veranlassen.
-
In einigen Ausführungsformen kann das Fahrzeug 4300 auch einen oder mehrere Sensoren enthalten, die konfiguriert sind, Informationen in Bezug auf das Fahrzeug 4300 und/oder die Umgebung des Fahrzeugs 4300 zu sammeln. Beispielhafte Sensoren können eine Positionsbestimmungsvorrichtung (z. B. eine Vorrichtung des globalen Positionsbestimmungssystems (GPS-Vorrichtung)), einen Beschleunigungsmesser, einen Gyrosensor, einen Geschwindigkeitsmesser oder dergleichen oder eine Kombination davon enthalten. Beispielsweise kann das Fahrzeug 4300 eine GPS-Vorrichtung enthalten, die konfiguriert ist, Positionsbestimmungsdaten, die den Positionen des Fahrzeugs 4300 zugeordnet sind, über eine Zeitspanne hinweg zu sammeln.
-
45 ist ein Ablaufplan, der einen beispielhaften Prozess 4500 zum Bestimmen einer Navigationsaktion für ein Trägerfahrzeug zeigt, konsistent mit offenbarten Ausführungsformen. Obwohl sich einige der nachstehenden Beschreibungen des Prozesses 4500 auf die mittlere Kamera 4410, die linke Umgebungskamera 4420 und die rechte Umgebungskamera 4430, die in 44 dargestellt sind, beziehen, wird ein Fachmann jedoch verstehen, dass sich eine oder mehrere der Kameras 4306 auch an anderen Stellen des Fahrzeugs 4300 befinden können.
-
In Schritt 4501 kann der Prozessor 4301 programmiert sein, von der mittleren Kamera 4410 wenigstens ein aufgenommenes mittleres Bild, das eine Repräsentation wenigstens eines Abschnitts der Umgebung des Fahrzeugs 4300 enthalten kann, zu empfangen. Der Prozessor 4301 kann auch konfiguriert sein, von der linken Umgebungskamera 4420 wenigstens ein aufgenommenes Bild der linken Umgebung, das eine Repräsentation wenigstens eines Abschnitts der Umgebung des Fahrzeugs 4300 enthalten kann, zu empfangen. Der Prozessor 4301 kann ferner konfiguriert sein, von der rechten Umgebungskamera 4430 wenigstens ein aufgenommenes Bild der rechten Umgebung, das eine Repräsentation wenigstens eines Abschnitts der Umgebung des Fahrzeugs 4300 enthalten kann, zu empfangen. In einigen Ausführungsformen kann das FOV der mittleren Kamera 4410 sowohl das FOV der linken Umgebungskamera 4420 als auch das FOV der rechten Umgebungskamera 4430 wenigstens teilweise überlappen. Beispielsweise kann die mittlere Kamera 4411, wie in 44 dargestellt ist, ein mittleres Kamera-FOV 4411 enthalten, die linke Umgebungskamera 4420 kann ein linkes Umgebungs-FOV 4421 enthalten, und die rechte Umgebungskamera 4430 kann ein rechtes Umgebungs-FOV 4431 enthalten. Das mittlere Kamera-FOV 4411 kann das linke Umgebungs-FOV 4421 und das rechte Umgebungs-FOV 4431 wenigstens teilweise überlappen. Beispielsweise kann ein Überlappungsbereich 4412 zwischen dem mittleren Kamera-FOV 4411 und dem linken Umgebungs-FOV 4421 und ein Überlappungsbereich 4413 zwischen dem mittleren Kamera-FOV 4411 und dem rechten Umgebungs-FOV 4431 vorhanden sein.
-
Bezug nehmend auf 45 kann in Schritt 4502 der wenigstens eine Prozessor 4301 kann auch programmiert sein, das wenigstens eine aufgenommene mittlere Bild, das wenigstens eine aufgenommene linke Umgebungsbild und das wenigstens eine aufgenommene rechte Umgebungsbild für ein Analysemodul bereitzustellen, das konfiguriert ist, basierend auf der Analyse des wenigstens einen aufgenommenen mittleren Bildes, des wenigstens einen aufgenommenen linken Umgebungsbildes und des wenigstens einen aufgenommenen rechten Umgebungsbildes eine Ausgabe in Bezug auf das des wenigstens eine aufgenommene mittlere Bild zu erzeugen. Die erzeugte Ausgabe kann Tiefeninformationen pro Pixel für wenigstens einen Bereich des aufgenommenen mittleren Bildes enthalten.
-
In einigen Ausführungsformen kann das Analysemodul wenigstens ein trainiertes Modell enthalten. Das trainierter Modell kann ein trainiertes neuronales Netz enthalten, das basierend auf Trainingsdaten trainiert ist, die eine Kombination aus mehreren Bildern, die durch Kameras mit wenigstens teilweise überlappenden Feldern aufgenommen wurden, und LIDAR-Punktwolkeninformationen, die wenigstens einigen der mehreren Bilder entsprechen, enthalten. Beispielsweise kann jede der Trainingsdatenmengen drei Bilder enthalten, von denen jedes durch eine aus einer Gruppe von Kameras (die eine mittlere Kamera, eine linke Umgebungskamera und eine rechte Umgebungskamera enthält), die auf einem Trainingsfahrzeug montiert sind, aufgenommen sein kann. Das FOV der mittleren Kamera kann das FOV der linken Umgebungskamera und das FOV der rechten Umgebungskamera wenigstens teilweise überlappen. Die Trainingsdatenmenge kann auch Punktwolkeninformationen enthalten, die durch ein auf demselben Fahrzeug montierten LIDAR-System aufgenommen wurden, das gemessene Tiefeninformationen, die den durch die Kameragruppe aufgenommenen Bildern zugeordnet sind, bereitstellen kann. Die Punktwolkeninformationen können als Referenztiefeninformationen (oder wahre Tiefenwerte) zum Trainieren des neuronalen Netzes behandelt werden. Die Bilder in der Trainingsdatenmenge (und/oder extrahierte Bildmerkmale) können in ein vorläufiges (oder untrainiertes) neuronales Netz eingegeben werden, das eine Ausgabe, die berechnete Tiefeninformationen pro Pixel für wenigstens einen Bereich des mittleren Bildes enthält, erzeugen kann. Die berechneten Tiefeninformationen pro Pixel können mit den entsprechenden Tiefeninformationen der Punktwolkeninformationen verglichen werden, um zu bestimmen, ob das neuronale Netz die Modellparameter oder Gewichte besitzt, die ein vorgegebenes Genauigkeitsniveau für das Erzeugen von Tiefeninformationen pro Pixel erfüllen oder überschreiten. Beispielsweise kann das Trainingssystem zum Trainieren des neuronalen Netzes eine Genauigkeitsbewertung des neuronalen Netzes basierend auf dem Vergleich der berechneten Tiefeninformationen und der entsprechenden Tiefeninformationen in den Punktwolkeninformationen (die in den Trainingsdatenmengen enthalten sind) erzeugen. Falls die Genauigkeitsbewertung gleich einem Schwellenwert ist oder diesen übersteigt, kann der Trainingsprozess beendet werden, und das Trainingssystem kann das trainierte neuronale Netz in eine lokale Speichervorrichtung speichern und/oder das trainierte neuronale Netz an ein oder mehrere Fahrzeuge (z. B. das Fahrzeug 4300) senden. Falls andererseits die Genauigkeitsbewertung unterhalb des Schwellenwerts ist, kann das Trainingssystem einen oder mehrere Parameter oder Gewichte des neuronalen Netzes anpassen und den Trainingsprozess unter Verwendung von Trainingsdatenmengen wiederholen, bis eine Genauigkeitsbewertung des neuronalen Netzes erreicht wird, die gleich dem Schwellenwert ist oder ihn übersteigt (und/oder eine vorgegebene Anzahl von Trainingszyklen erreicht worden ist).
-
In einigen Ausführungsformen kann der Prozessor 4301, bevor er die Bilder für das Analysemodul bereitstellt, eine Menge synthetischer Lochblendenbilder erzeugen, die die Orientierungen der Bildachsen und die Richtung der Hauptachsen der Bilder gemeinsam haben, und zwar basierend auf den Bildern und den Parametern der Kameras (z. B. den Orientierungen ihrer Bildachsen und der Richtung ihrer Hauptachse). Dieser Vorverarbeitungsschritt kann eine effiziente Verkrümmung (homogene Bildskalierung und -verschiebung) ermöglichen. Der Prozessor 4301 kann auch die erzeugten synthetischen Lochblendenbilder (anstelle der Originalbilder) in das Analysemodul eingeben, um eine Ausgabe zu erzeugen.
-
In einigen Ausführungsformen kann der Prozessor 4301 die Bilder in das Analysemodul, das durch den Prozessor 4301 ausgeführt werden kann, eingeben. Das Analysemodul kann eine Ausgabe erzeugen, die Tiefeninformationen pro Pixel für wenigstens einen Bereich des aufgenommenen mittleren Bildes enthält.
-
In einigen Ausführungsformen kann das Fahrzeug 4300 das Analysemodul von einem Server über ein Netz empfangen und das Analysemodul in dem Speicher 4302 und/oder in der Speichervorrichtung 4303 speichern.
-
In einigen Ausführungsformen kann die durch das Analysemodul erzeugte Ausgabe Tiefeninformationen pro Pixel für wenigstens einen Bereich (oder alle Bereiche) des aufgenommenen mittleren Bildes enthalten. In einigen Ausführungsformen können die Tiefeninformationen pro Pixel für den wenigstens einen Bereich des aufgenommenen mittleren Bildes Tiefeninformationen für ein oder mehrere Objekte, die in dem erfassten mittleren Bild repräsentiert sind, bereitstellen oder enthalten. In einigen Fällen können das eine oder die mehreren Objekte nicht die Bodenoberfläche (z. B. eine Straßenoberfläche) berühren. Bei Monokularsystemen kann eine Grundfläche erforderlich sein, um die Tiefeninformationen über einen Prozess wie z. B. Struktur in Bewegung zu erhalten, was in den hier offenbarten Systemen nicht benötigt werden kann. In einigen Ausführungsformen können das eine oder die mehreren Objekte einem Zielfahrzeug zugeordnet sein (oder von dem Zielfahrzeug mitgeführt werden).
-
In einigen Ausführungsformen können die Tiefeninformationen pro Pixel für den wenigstens einen Bereich des aufgenommenen mittleren Bildes Tiefeninformationen für eine Oberfläche wenigstens eines in dem aufgenommenen mittleren Bild repräsentierten Objekts bereitstellen oder enthalten, und die Oberfläche des wenigstens einen Objekts kann eine Reflexion eines oder mehrerer anderer Objekte enthalten, da das Analysemodul Oberflächen wenigstens teilweise basierend auf Rändern der Oberflächen erkennen kann und erkennen kann, dass Reflexionen auf der Oberfläche sind und kein weiter entferntes Objekt jenseits der Oberfläche angeben.
-
In einigen Ausführungsformen können die Tiefeninformationen pro Pixel für den wenigstens einen Bereich des aufgenommenen mittleren Bildes Tiefeninformationen in Bezug auf ein Objekt bereitstellen oder enthalten, das in einem oder mehreren des wenigstens einen aufgenommenen mittleren Bildes, des wenigstens einen aufgenommenen linken Umgebungsbildes oder des wenigstens einen aufgenommenen rechten Umgebungsbildes wenigstens teilweise verdeckt ist, da das Analysemodul selbst dann Tiefeninformationen bereitstellen kann, wenn ein Objekt in einem oder mehreren der aufgenommenen Bilder teilweise verdeckt ist.
-
In einigen Ausführungsformen kann das Fahrzeug 4300, wie vorstehend beschrieben, eine oder mehrere Kameragruppen enthalten. Beispielsweise kann das Fahrzeug 4300 eine erste Kameragruppe enthalten, die die mittlere Kamera 4410, die linke Umgebungskamera 4420 und die rechte Umgebungskamera 4430 enthält. Das Fahrzeug 4300 kann auch eine zweite Kameragruppe enthalten, die eine mittlere Kamera, die sich in der Nähe des Rückspiegels des Fahrzeugs 4300 befindet, eine linke Umgebungskamera, die sich an der linken Rückseite des Fahrzeugs 4300 befindet, und eine rechte Umgebungskamera, die sich an der rechten Rückseite des Fahrzeugs 4300 befindet, enthält. Das Analysemodul kann ferner konfiguriert sein, eine weitere Ausgabe in Bezug auf wenigstens ein durch die mittlere Kamera der zweiten Kameragruppe aufgenommenes mittleres Bild zu erzeugen, basierend auf der Analyse wenigstens eines aufgenommenen mittleren Bildes, wenigstens eines aufgenommenen linken Umgebungsbildes und wenigstens eines aufgenommenen rechten Umgebungsbildes, die von den Kameras der zweiten Kameragruppe empfangen wurden, und die weitere erzeugte Ausgabe kann Tiefeninformationen pro Pixel für wenigstens einen Bereich des durch die mittlere Kamera der zweiten Kameragruppe aufgenommenen mittleren Bildes enthalten. In einigen Ausführungsformen kann das Analysemodul konfiguriert sein, Tiefeninformationen pro Pixel für wenigstens ein Bild zu erzeugen, das durch wenigstens eine Kamera in jeder aus der ersten Kameragruppe und der wenigstens einen zweiten Kameragruppe aufgenommen wurde, um eine aus einem 360-Grad-Bild erzeugte Punktwolke rund um das Fahrzeug bereitzustellen.
-
Der wenigstens eine Prozessor 4301 kann in Schritt 4503 ferner programmiert sein, wenigstens eine Navigationsaktion durch das Fahrzeug 4300 basierend auf der erzeugten Ausgabe, die die Tiefeninformationen pro Pixel für den wenigstens einen Bereich des aufgenommenen mittleren Bildes enthält, zu veranlassen. Beispielsweise kann der Prozessor 4301 die erzeugte Ausgabe, die die Tiefeninformationen pro Pixel für den wenigstens einen Bereich des aufgenommenen mittleren Bildes enthält, analysieren und ein oder mehrere Objekte basierend auf der erzeugten Ausgabe detektieren. Der Prozessor 4301 kann auch konfiguriert sein, wenigstens eine Navigationsaktion durch das Fahrzeug 4300 basierend auf dem/den detektierten Objekt(en) zu bestimmen, wie an anderer Stelle in dieser Offenbarung beschrieben ist. Der Prozessor 4301 kann ferner konfiguriert sein, das Fahrzeug 4300 zu veranlassen, die bestimmte Navigationsaktion zu implementieren, wie an anderer Stelle in dieser Offenbarung beschrieben ist. Beispielsweise kann der Prozessor 4301 wenigstens eines aus dem Beibehalten der aktuellen Fahrtrichtung und Geschwindigkeit des Fahrzeugs 4300, dem Ändern der aktuellen Fahrtrichtung des Fahrzeugs 4300 (z. B. Abbiegen des Fahrzeugs 4300) oder dem Ändern der Geschwindigkeit des Fahrzeugs 4300 (z. B. Beschleunigen oder Abbremsen des Fahrzeugs 4300) bestimmen. Beispielsweise kann der Prozessor 4301 die erzeugte Ausgabe analysieren und basierend auf der Analyse der erzeugten Ausgabe ein Objekt identifizieren, das sich innerhalb eines vorbestimmten Sicherheitsabstands befindet. Der Prozessor 4301 kann auch konfiguriert sein, eine Navigationsaktion für das Fahrzeug 4300 zu bestimmen, um das Fahrzeug 4300 zu verlangsamen oder von dem identifizierten Objekt weg zu lenken. Der Prozessor 4301 kann ferner konfiguriert sein, das Navigationssystem 4308 zu steuern, die Aktivierung eines oder mehrerer Aktoren, die einem Lenksystem, einem Bremssystem oder einem Antriebssystem des Fahrzeugs 4300 zugeordnet sind, gemäß einer oder mehrerer Navigationsaktionen zu veranlassen.
-
In einigen Ausführungsformen kann der Prozessor 4301 konfiguriert sein, die wenigstens eine Navigationsaktion basierend auf einer Kombination aus den Tiefeninformationen pro Pixel für den wenigstens einen Bereich des aufgenommenen mittleren Bildes und den von dem LIDAR-System 4307 empfangenen Punktwolkeninformationen zu bestimmen. In einigen Ausführungsformen kann der Prozessor 4301 die Tiefenwerte, die einem Objekt zugeordnet sind, das sowohl in den Tiefeninformationen pro Pixel für den wenigstens einen Bereich des aufgenommenen mittleren Bildes als auch in den entsprechenden Punktwolkeninformationen, die von dem LIDAR-System 4307 empfangen wurden, erscheint, mitteln, um gemittelte Tiefenwerte, die dem Objekt zugeordnet sind, zu erhalten. Der Prozessor 4301 kann auch eine Navigationsaktion basierend auf den dem Objekt zugeordneten gemittelten Tiefen bestimmen (z. B. Beibehaltung der aktuellen Geschwindigkeit und der Fahrtrichtung). Alternativ oder zusätzlich kann der Prozessor 4301 unterschiedliche Gewichtungen auf die Tiefenwerte, die aus den Tiefeninformationen pro Pixel für den mindestens einen Bereich des aufgenommenen mittleren Bildes erhalten wurden, und auf die Tiefenwerte, die aus den von dem LIDAR-System 4307 empfangenen Punktwolkeninformationen erhalten wurden, anwenden (was einem Prozess ähnlich sein kann, der vorstehend in Verbindung mit Schritt 4104 beschrieben ist). Der Prozessor 4301 kann auch konfiguriert sein, wenigstens eine Navigationsaktion basierend auf gewichteten Tiefenwerten zu bestimmen. Wie vorstehend beschrieben, kann ein LIDAR-System beispielsweise in einer von der Umgebung mit starker Sonneneinstrahlung (oder in einer stark reflektierenden Umgebung oder bei schlechten Lichtverhältnissen in der Nacht ohne Straßenbeleuchtung usw.) besser funktionieren als Kameras. In einer Umgebung mit starker Sonneneinstrahlung (oder in einer stark reflektierenden Umgebung oder bei schlechten Lichtverhältnissen in der Nacht ohne Straßenbeleuchtung usw.) kann der Prozessor 4301 auf die Tiefenwerte, die basierend auf den von dem LIDAR-System 4307 empfangenen Punktwolkeninformationen erhalten wurden, eine höhere Gewichtung anwenden als auf die Tiefenwerte, die aus den Tiefeninformationen pro Pixel für den wenigstens einen Bereich des aufgenommenen mittleren Bildes erhalten wurden. Andererseits können Kameras an einem nebligen oder regnerischen Tag besser funktionieren als ein LIDAR-System, und in einer solchen Umgebung wendet der Prozessor 4301 eine geringere Gewichtung auf die Tiefenwerte an, die basierend auf den von dem LIDAR-System 4307 empfangenen Punktwolkeninformationen erhalten wurden, als die Gewichtung, die auf die Tiefenwerte angewendet wird, die aus den Tiefeninformationen pro Pixel für den wenigstens einen Bereich des aufgenommenen mittleren Bildes erhalten wurden.
-
Die vorstehende Beschreibung ist nur für den Zweck der Veranschaulichung präsentiert worden. Sie ist nicht vollständig und ist nicht auf die präzisen Formen oder Ausführungsformen, die offenbart sind, beschränkt. Modifikationen und Anpassungen werden für den Fachmann aus der Betrachtung der Spezifikation und der Praxis der offenbarten Ausführungsformen offensichtlich. Zusätzlich, obwohl Aspekte der offenbarten Ausführungsformen als im Speicher gespeichert beschrieben sind, wird ein Fachmann erkennen, dass diese Aspekte auch auf anderen Typen computerlesbarer Medien gespeichert sein können, wie z. B. auf sekundären Speichervorrichtungen, beispielsweise Festplatten oder CD-ROM, oder anderen Formen von RAM oder ROM, USB-Medien, DVD, Blu-ray, 4K Ultra-HD-Blu-ray oder anderen Medien optischer Laufwerke.
-
Computerprogramme, die auf der schriftlichen Beschreibung und den offenbarten Methoden basieren, können von einem erfahrenen Entwickler erstellt werden. Die verschiedenen Programme oder Programm-Module können unter Verwendung irgendwelcher Fachleuten bekannten Techniken erstellt werden oder in Verbindung mit existierender Software entwickelt werden. Beispielsweise können Programmabschnitte oder Programmmodule in oder mit Hilfe von .Net Framework, .Net Compact Framework (und verwandten Sprachen wie Visual Basic, C usw.), Java, C++, Objective-C, HTML, HTML/AJAX-Kombinationen, XML oder HTML mit enthaltenen Java-Applets entwickelt werden.
-
Außerdem sind hier zwar erläuternde Ausführungsformen beschrieben worden, der Schutzbereich aller Ausführungsformen, die äquivalente Elemente, Modifikationen, Auslassungen, Kombinationen (z. B. von Aspekten verschiedener Ausführungsformen), Anpassungen und/oder Änderungen enthalten, wird von Fachleuten basierend auf vorliegenden Offenbarung erkannt. Die Einschränkungen in den Ansprüchen sind basierend auf der in den Ansprüchen eingesetzten Sprache weit auszulegen und nicht auf Beispiele beschränkt, die in der vorliegenden Spezifikation oder während der Verfolgung der Anmeldung beschrieben sind. Die Beispiele sind als nicht ausschließend zu deuten. Darüber hinaus können die Schritte der offenbarten Verfahren auf irgendeine Weise modifiziert werden, was Umordnen von Schritten und/oder Einfügen oder Löschen von Schritten enthält. Es ist daher beabsichtigt, dass die Spezifikation und die Beispiele nur als erläuternd betrachtet werden, wobei der wahre Schutzbereich und Geist durch die folgenden Ansprüche und ihren vollen Umfang an Äquivalenten angegeben ist.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
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.
-
Zitierte Patentliteratur
-