DE112021002014T5 - Regelkreis zum navigieren eines fahrzeugs - Google Patents

Regelkreis zum navigieren eines fahrzeugs Download PDF

Info

Publication number
DE112021002014T5
DE112021002014T5 DE112021002014.5T DE112021002014T DE112021002014T5 DE 112021002014 T5 DE112021002014 T5 DE 112021002014T5 DE 112021002014 T DE112021002014 T DE 112021002014T DE 112021002014 T5 DE112021002014 T5 DE 112021002014T5
Authority
DE
Germany
Prior art keywords
vehicle
road
steering
data
vehicles
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112021002014.5T
Other languages
English (en)
Inventor
Moran Molnar
Ilan Selig
Ronen Rojas
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mobileye Vision Technologies Ltd
Original Assignee
Mobileye Vision Technologies Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mobileye Vision Technologies Ltd filed Critical Mobileye Vision Technologies Ltd
Publication of DE112021002014T5 publication Critical patent/DE112021002014T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/08Control of attitude, i.e. control of roll, pitch, or yaw
    • G05D1/0891Control of attitude, i.e. control of roll, pitch, or yaw specially adapted for land vehicles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W60/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/20Conjoint control of vehicle sub-units of different type or different function including control of steering systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/10Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to vehicle motion
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/12Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to parameters of the vehicle itself, e.g. tyre models
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2510/00Input parameters relating to a particular sub-units
    • B60W2510/20Steering systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2520/00Input parameters relating to overall vehicle dynamics
    • B60W2520/16Pitch
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2556/00Input parameters relating to data
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62DMOTOR VEHICLES; TRAILERS
    • B62D15/00Steering not otherwise provided for
    • B62D15/02Steering position indicators ; Steering position determination; Steering aids
    • B62D15/025Active steering aids, e.g. helping the driver by actively influencing the steering system after environment evaluation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/091Active learning

Abstract

Ein System zum Navigieren eines Fahrzeugs kann einen Prozessor beinhalten, der dazu programmiert ist, eine Ausgabe zu empfangen, die von einem Fahrzeugsensor bereitgestellt wird, und ein Navigationsmanöver für das Fahrzeug entlang eines Straßensegments basierend auf der vom Fahrzeugsensor bereitgestellten Ausgabe zu bestimmen. Die Prozessor kann auch dazu programmiert sein, einen Gierratenbefehl und einen Geschwindigkeitsbefehl zum Implementieren des Navigationsmanövers zu bestimmen. Der Prozessor kann auch dazu programmiert sein, einen ersten Fahrzeuglenkwinkel basierend auf dem Gierraten- und dem Geschwindigkeitsbefehl unter Verwendung eines ersten Steuersubsystems zu bestimmen und einen zweiten Fahrzeuglenkwinkel basierend auf dem Gierraten- und dem Geschwindigkeitsbefehl unter Verwendung eines zweiten Steuersubsystems zu bestimmen. Der Prozessor kann ferner dazu programmiert sein, einen Gesamtlenkbefehl für das Fahrzeug basierend auf einer Kombination des ersten und des zweiten Fahrzeuglenkwinkels zu bestimmen und einen mit dem Fahrzeug assoziierten Aktuator zu veranlassen, den Gesamtlenkbefehl zu implementieren.

Description

  • Querverweis auf verwandte Anmeldung
  • Diese Anmeldung beansprucht den Vorteil der vorläufigen United States-Anmeldung Nr. 63/003,487 , eingereicht am 1. April 2020. Die zuvor genannte Anmeldung ist hierin durch Bezugnahme in ihrer Gänze aufgenommen.
  • HINTERGRUND
  • Technisches Gebiet
  • Die vorliegende Offenbarung bezieht sich im Allgemeinen auf autonome Fahrzeugnavigation.
  • Hintergrundinformationen
  • Weil sich Technologie weiterentwickelt, ist das Ziel eines vollautonomen Fahrzeugs, das zum Navigieren auf Fahrbahnen in der Lage ist, nicht mehr fern. Autonome Fahrzeuge müssen möglicherweise eine Vielzahl von Faktoren berücksichtigen und geeignete Entscheidungen basierend auf diesen Faktoren treffen, um einen vorgesehenen Zielort sicher und genau zu erreichen. Zum Beispiel muss ein autonomes Fahrzeug möglicherweise visuelle Informationen (z. B. aus einer Kamera aufgenommene Informationen) verarbeiten und interpretieren und kann auch Informationen verwenden, die aus anderen Quellen erhalten werden (z. B. aus einer GPS-Vorrichtung, einem Geschwindigkeitssensor, einem Beschleunigungsmesser, einem Aufhängungssensor usw.). Um zu einem Zielort zu navigieren, muss ein autonomes Fahrzeug möglicherweise zur gleichen Zeit seinen Ort auf einer speziellen Fahrbahn identifizieren (z. B. eine spezifische Fahrspur innerhalb einer mehrspurigen Straße), an anderen Fahrzeugen entlang navigieren, Hindernisse und Fußgänger vermeiden, Verkehrssignale und Verkehrszeichen beobachten und an geeigneten Kreuzungen oder Auffahrten von einer Straße auf eine andere Straße fahren. Erschließen und Interpretieren umfangreicher Informationsmengen, die von einem autonomen Fahrzeug erhoben werden, wenn das Fahrzeug zu seinem Zielort fährt, bilden eine Vielzahl von Designherausforderungen. Die schiere Datenmenge, die ein autonomes Fahrzeug möglicherweise analysieren, auf die es zugreifen und/oder die es speichern muss (z. B. aufgenommene Bilddaten, Kartendaten, GPS-Daten, Sensordaten usw.), stellt Herausforderungen dar, die die Navigation des autonomen Fahrzeugs tatsächlich einschränken oder sogar negativ beeinflussen können. Falls sich ein autonomes Fahrzeug zum Navigieren auf herkömmliche Kartierungstechnologie verlässt, stellt des Weiteren der schiere Umfang von Daten, die zum Speichern und Aktualisieren der Karte benötigt werden, entmutigende Herausforderungen dar.
  • KURZDARSTELLUNG
  • Mit der vorliegenden Offenbarung konsistente Ausführungsformen stellen Systeme und Verfahren zur Fahrzeugnavigation bereit.
  • In einer Ausführungsform kann ein System zum Navigieren eines Fahrzeugs mindestens einen Prozessor beinhalten, der Schaltungsanordnungen und einen Speicher umfasst. Der Speicher kann Anweisungen beinhalten, die bei Ausführung durch die Schaltungsanordnungen den mindestens einen Prozessor dazu veranlassen können, eine Ausgabe zu empfangen, die durch mindestens einen Fahrzeugsensor bereitgestellt wird. Die Schaltungsanordnungen können den mindestens einen Prozessor auch dazu veranlassen, basierend auf der Ausgabe, die von dem mindestens einen Fahrzeugsensor bereitgestellt wird, mindestens ein Navigationsmanöver für das Fahrzeug entlang eines Straßensegments zu bestimmen. Die Schaltungsanordnungen können ferner den mindestens einen Prozessor dazu veranlassen, einen Fahrzeuggierratenbefehl und einen Fahrzeuggeschwindigkeitsbefehl zum Implementieren des Navigationsmanövers zu bestimmen. Die Schaltungsanordnungen können den mindestens einen Prozessor auch dazu veranlassen, mindestens einen ersten Fahrzeuglenkwinkel basierend auf dem Fahrzeuggierratenbefehl und dem Fahrzeuggeschwindigkeitsbefehl unter Verwendung eines ersten Steuersubsystems, das durch den mindestens einen Prozessor implementiert ist, zu bestimmen. Die Schaltungsanordnungen können ferner den mindestens einen Prozessor dazu veranlassen, mindestens einen zweiten Fahrzeuglenkwinkel basierend auf dem Fahrzeuggierratenbefehl und dem Fahrzeuggeschwindigkeitsbefehl unter Verwendung eines zweiten Steuersubsystems, das durch den mindestens einen Prozessor implementiert ist, zu bestimmen. Die Schaltungsanordnungen können den mindestens einen Prozessor auch dazu veranlassen, einen Gesamtlenkbefehl für das Fahrzeug basierend auf einer Kombination des ersten Fahrzeuglenkwinkels und des zweiten Fahrzeuglenkwinkels zu bestimmen. Die Schaltungsanordnungen können ferner veranlassen, dass der mindestens eine Prozessor mindestens einen mit dem Fahrzeug assoziierten Aktuator dazu veranlasst, den Gesamtlenkbefehl zu implementieren.
  • In einer Ausführungsform kann ein nichtflüchtiges computerlesbares Medium Anweisungen enthalten, die bei Ausführung durch mindestens einen Prozessor, veranlassen können, dass mindestens ein Prozessor Operationen durchführt, die das Empfangen einer Ausgabe umfassen, die von mindestens einem Fahrzeugsensor bereitgestellt wird. Die Operationen können auch beinhalten, basierend auf der Ausgabe, die von dem mindestens einen Fahrzeugsensor bereitgestellt wird, mindestens ein Navigationsmanöver für das Fahrzeug entlang eines Straßensegments zu bestimmen. Die Operationen können auch beinhalten, einen Fahrzeuggierratenbefehl und einen Fahrzeuggeschwindigkeitsbefehl zum Implementieren des Navigationsmanövers zu bestimmen. Die Operationen können ferner beinhalten, mindestens einen ersten Fahrzeuglenkwinkel basierend auf dem Fahrzeuggierratenbefehl und dem Fahrzeuggeschwindigkeitsbefehl unter Verwendung eines ersten Steuersubsystems zu bestimmen. Die Operationen können auch beinhalten, mindestens einen zweiten Fahrzeuglenkwinkel basierend auf dem Fahrzeuggierratenbefehl und dem Fahrzeuggeschwindigkeitsbefehl unter Verwendung eines zweiten Steuersubsystems zu bestimmen. Die Operationen können ferner beinhalten, einen Gesamtlenkbefehl für das Fahrzeug basierend auf einer Kombination des ersten Fahrzeuglenkwinkels und des zweiten Fahrzeuglenkwinkels zu bestimmen. Die Operationen können auch beinhalten, mindestens einen mit dem Fahrzeug assoziierten Aktuator dazu zu veranlassen, den Gesamtlenkbefehl zu implementieren.
  • Die vorhergehende allgemeine Beschreibung und die folgende ausführliche Beschreibung sind lediglich beispielhaft und erklärend und schränken die Ansprüche nicht ein.
  • Figurenliste
  • Die begleitenden Zeichnungen, die in dieser Offenbarung aufgenommen sind und einen Teil von ihr bilden, veranschaulichen verschiedene offenbarte Ausführungsformen. In den Zeichnungen gilt:
    • 1 ist eine schematische Darstellung eines beispielhaften Systems, konsistent mit den offenbarten Ausführungsformen.
    • 2A ist eine schematische Seitenansicht eines beispielhaften Fahrzeugs, das ein System, konsistent mit den offenbarten Ausführungsformen, beinhaltet.
    • 2B ist eine schematische Draufsicht des in 2A gezeigten Fahrzeugs und Systems, konsistent mit den offenbarten Ausführungsformen.
    • 2C ist eine schematische Draufsicht einer anderen Ausführungsform eines Fahrzeugs, das ein System, konsistent mit den offenbarten Ausführungsformen, beinhaltet.
    • 2D ist eine schematische Draufsicht noch einer anderen Ausführungsform eines Fahrzeugs, das ein System, konsistent mit den offenbarten Ausführungsformen, beinhaltet.
    • 2E ist eine schematische Draufsicht noch einer anderen Ausführungsform eines Fahrzeugs, das ein System, konsistent mit den offenbarten Ausführungsformen, beinhaltet.
    • 2F ist eine schematische Darstellung beispielhafter Fahrzeugsteuersysteme, konsistent mit den offenbarten Ausführungsformen.
    • 3A ist eine schematische Darstellung eines Innenraums eines Fahrzeugs, das einen Rückspiegel und eine Benutzerschnittstelle für ein Fahrzeugbildgebungssystem beinhaltet, konsistent mit den offenbarten Ausführungsformen.
    • 3B ist eine Veranschaulichung eines Beispiels einer Kamerahalterung, die dazu konfiguriert ist, hinter einem Rückspiegel und gegen eine Fahrzeugwindschutzscheibe positioniert zu werden, konsistent mit den offenbarten Ausführungsformen.
    • 3C ist eine Veranschaulichung der in 3B gezeigten Kamerahalterung aus einer anderen Perspektive, konsistent mit den offenbarten Ausführungsformen.
    • 3D ist eine Veranschaulichung eines Beispiels einer Kamerahalterung, die dazu konfiguriert ist, hinter einem Rückspiegel und gegen eine Fahrzeugwindschutzscheibe positioniert zu werden, konsistent mit den offenbarten Ausführungsformen.
    • 4 ist ein beispielhaftes Blockdiagramm eines Speichers, der dazu konfiguriert ist, Anweisungen zum Durchführen einer oder mehrerer Operationen zu speichern, konsistent mit den offenbarten Ausführungsformen.
    • 5A ist ein Flussdiagramm, das einen beispielhaften Prozess zum Veranlassen einer oder mehrerer Navigationsreaktionen basierend auf monokularer Bildanalyse zeigt, konsistent mit den offenbarten Ausführungsformen.
    • 5B ist ein Flussdiagramm, das einen beispielhaften Prozess zum Detektieren eines oder mehrerer Fahrzeuge und/oder Fußgänger in einem Satz von Bildern zeigt, konsistent mit den offenbarten Ausführungsformen.
    • 5C ist ein Flussdiagramm, das einen beispielhaften Prozess zum Detektieren von Straßenmarkierungen und/oder Fahrspurgeometrieinformationen in einem Satz von Bildern zeigt, konsistent mit den offenbarten Ausführungsformen.
    • 5D ist ein Flussdiagramm, das einen beispielhaften Prozess zum Detektieren von Ampeln in einem Satz von Bildern zeigt, konsistent mit den offenbarten Ausführungsformen.
    • 5E ist ein Flussdiagramm, das einen beispielhaften Prozess zum Veranlassen einer oder mehrerer Navigationsreaktionen basierend auf einem Fahrzeugweg zeigt, konsistent mit den offenbarten Ausführungsformen.
    • 5F ist ein Flussdiagramm, das einen beispielhaften Prozess zum Bestimmen zeigt, ob ein vorausfahrendes Fahrzeug die Fahrspur wechselt, konsistent mit den offenbarten Ausführungsformen.
    • 6 ist ein Flussdiagramm, das einen beispielhaften Prozess zum Veranlassen einer oder mehrerer Navigationsreaktionen basierend auf Stereobildanalyse zeigt, konsistent mit den offenbarten Ausführungsformen.
    • 7 ist ein Flussdiagramm, das einen beispielhaften Prozess zum Veranlassen einer oder mehrerer Navigationsreaktionen basierend auf einer Analyse von drei Sätzen von Bildern zeigt, konsistent mit den offenbarten Ausführungsformen.
    • 8 zeigt eine dünnbesetzte Karte zum Bereitstellen von autonomer Fahrzeugnavigation, konsistent mit den offenbarten Ausführungsformen.
    • 9A veranschaulicht eine Polynomrepräsentation von Abschnitten eines Straßensegments, konsistent mit den offenbarten Ausführungsformen.
    • 9B veranschaulicht eine Kurve im dreidimensionalen Raum, die eine Zieltrajektorie eines Fahrzeugs für ein spezielles Straßensegment repräsentiert, das in einer dünnbesetzten Karte beinhaltet ist, konsistent mit den offenbarten Ausführungsformen.
    • 10 veranschaulicht beispielhafte Orientierungspunkte, die in einer dünnbesetzten Karte beinhaltet sein können, konsistent mit den offenbarten Ausführungsformen.
    • 11A zeigt Polynomrepräsentationen von Trajektorien, konsistent mit den offenbarten Ausführungsformen.
    • 11B und 11C zeigen Zieltrajektorien entlang einer mehrspurigen Straße, konsistent mit den offenbarten Ausführungsformen.
    • 11D zeigt ein beispielhaftes Straßensignaturprofil, konsistent mit den offenbarten Ausführungsformen.
    • 12 ist eine schematische Veranschaulichung eines Systems, das Crowdsourcing-Daten, die aus einer Vielzahl von Fahrzeugen empfangen werden, für autonome Fahrzeugnavigation verwendet, konsistent mit den offenbarten Ausführungsformen.
    • 13 veranschaulicht ein beispielhaftes Straßennavigationsmodell für autonome Fahrzeuge, das durch eine Vielzahl von dreidimensionalen Splines repräsentiert wird, konsistent mit den offenbarten Ausführungsformen.
    • 14 zeigt ein Kartenskelett, das durch Kombinieren von Ortsinformationen aus vielen Fahrten generiert wird, konsistent mit den offenbarten Ausführungsformen.
    • 15 zeigt ein Beispiel für eine Längsausrichtung von zwei Fahrten mit beispielhaften Zeichen als Orientierungspunkte, konsistent mit den offenbarten Ausführungsformen.
    • 16 zeigt ein Beispiel für eine Längsausrichtung von vielen Fahrten mit einem beispielhaften Zeichen als einem Orientierungspunkt, konsistent mit den offenbarten Ausführungsformen.
    • 17 ist eine schematische Veranschaulichung eines Systems zum Generieren von Fahrtdaten unter Verwendung einer Kamera, eines Fahrzeugs und eines Servers, konsistent mit den offenbarten Ausführungsformen.
    • 18 ist eine schematische Veranschaulichung eines Systems zum Crowdsourcing einer dünnbesetzten Karte, konsistent mit den offenbarten Ausführungsformen.
    • 19 ist ein Flussdiagramm, das einen beispielhaften Prozess zum Generieren einer dünnbesetzten Karte für autonome Fahrzeugnavigation entlang eines Straßensegments zeigt, konsistent mit den offenbarten Ausführungsformen.
    • 20 veranschaulicht ein Blockdiagramm eines Servers, konsistent mit den offenbarten Ausführungsformen.
    • 21 veranschaulicht ein Blockdiagramm eines Speichers, konsistent mit den offenbarten Ausführungsformen.
    • 22 veranschaulicht einen Prozess zum Clustern von Fahrzeugtrajektorien, die mit Fahrzeugen assoziiert sind, konsistent mit den offenbarten Ausführungsformen.
    • 23 veranschaulicht ein Navigationssystem für ein Fahrzeug, das für autonome Navigation verwendet werden kann, konsistent mit den offenbarten Ausführungsformen.
    • 24A, 24B, 24C und 24D veranschaulichen beispielhafte Fahrspurmarkierungen, die konsistent mit den offenbarten Ausführungsformen detektiert werden können.
    • 24E zeigt beispielhafte kartierte Fahrspurmarkierungen, konsistent mit den offenbarten Ausführungsformen.
    • 24F zeigt eine beispielhafte Anomalie, die mit dem Detektieren einer Fahrspurmarkierung assoziiert ist, konsistent mit den offenbarten Ausführungsformen.
    • 25A zeigt ein beispielhaftes Bild der Umgebung eines Fahrzeugs zur Navigation basierend auf den kartierten Fahrspurmarkierungen, konsistent mit den offenbarten Ausführungsformen.
    • 25B veranschaulicht eine Korrektur der seitlichen Lokalisierung eines Fahrzeugs basierend auf kartierten Fahrspurmarkierungen in einem Straßennavigationsmodell, konsistent mit den offenbarten Ausführungsformen.
    • 25C und 25D stellen konzeptionelle Darstellungen einer Lokalisierungstechnik zum Lokalisieren eines Host-Fahrzeugs entlang einer Zieltrajektorie unter Verwendung von kartierten Merkmalen, die in einer dünnbesetzten Karte beinhaltet sind, bereit.
    • 26A ist ein Flussdiagramm, das einen beispielhaften Prozess zum Kartieren einer Fahrspurmarkierung zur Verwendung in der autonomen Fahrzeugnavigation zeigt, konsistent mit den offenbarten Ausführungsformen.
    • 26B ist ein Flussdiagramm, das einen beispielhaften Prozess zum autonomen Navigieren eines Host-Fahrzeugs entlang eines Straßensegments unter Verwendung von kartierten Fahrspurmarkierungen zeigt, konsistent mit den offenbarten Ausführungsformen.
    • 27 ist eine schematische Darstellung eines beispielhaften Fahrzeugs, konsistent mit den offenbarten Ausführungsformen.
    • 28 ist eine schematische Darstellung eines beispielhaften Prozesses zum Generieren eines Lenkbefehls, konsistent mit den offenbarten Ausführungsformen.
    • 29 veranschaulicht ein beispielhaftes Lenkmodell, konsistent mit den offenbarten Ausführungsformen.
    • 30 ist ein Blockdiagramm eines beispielhaften Fahrzeugs, konsistent mit den offenbarten Ausführungsformen.
    • 31 ist ein Flussdiagramm, das einen beispielhaften Prozess zum Navigieren eines Fahrzeugs zeigt, konsistent mit den offenbarten Ausführungsformen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende ausführliche Beschreibung bezieht sich auf die begleitenden Zeichnungen. Soweit möglich werden die gleichen Bezugsnummern in den Zeichnungen und der folgenden Beschreibung verwendet, um auf gleiche oder ähnliche Teile zu verweisen. Obwohl hier mehrere veranschaulichende Ausführungsformen beschrieben werden, sind Modifikationen, Anpassungen und andere Implementierungen möglich. Zum Beispiel können an den in den Zeichnungen veranschaulichten Komponenten Substitutionen, Hinzufügungen oder Modifikationen vorgenommen werden, und die hier beschriebenen veranschaulichenden Verfahren können durch Substituieren, Neuordnen, 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 wird der richtige Schutzbereich durch die beigefügten Ansprüche definiert.
  • Übersicht über autonome Fahrzeuge
  • Wie in dieser Offenbarung verwendet, bezieht sich der Begriff „autonomes Fahrzeug“ auf ein Fahrzeug, das in der Lage ist, mindestens eine Navigationsänderung ohne Fahrereingabe zu implementieren. Eine „Navigationsänderung“ bezieht sich auf eine Änderung beim Lenken und/oder Bremsen und/oder bei Beschleunigung des Fahrzeugs. Um autonom zu sein, muss ein Fahrzeug nicht vollautomatisch sein (z. B. vollständiger Betrieb ohne Fahrer oder ohne Fahrereingabe). Vielmehr beinhaltet ein autonomes Fahrzeug diejenigen, die während bestimmter Zeiträume unter Fahrersteuerung und während anderer Zeiträume ohne Fahrersteuerung betrieben werden können. Autonome Fahrzeuge können auch Fahrzeuge beinhalten, die nur einige Aspekte der Fahrzeugnavigation steuern, wie etwa Lenken (z. B., um einen Fahrzeugkurs zwischen Fahrzeug-Fahrspur-Beschränkungen aufrechtzuerhalten), können jedoch andere Aspekte dem Fahrer überlassen (z. B. Bremsen). In einigen Fällen können autonome Fahrzeuge einige oder alle Aspekte des Bremsens, der Geschwindigkeitssteuerung und/oder des Lenkens des Fahrzeugs bewältigen.
  • Da menschliche Fahrer typischerweise auf visuelle Hinweise und Beobachtungen zurückgreifen, um ein Fahrzeug zu steuern, werden Transportinfrastrukturen entsprechend aufgebaut, wobei Fahrspurmarkierungen, Verkehrszeichen und Ampeln alle dazu ausgestaltet sind, den Fahrern visuelle Informationen bereitzustellen. Im Hinblick auf diese Designcharakteristiken von Transportinfrastrukturen kann ein autonomes Fahrzeug eine Kamera und eine Verarbeitungseinheit beinhalten, die visuelle Informationen analysiert, die aus der Umgebung des Fahrzeugs aufgenommen wurden. Die visuellen Informationen können zum Beispiel Komponenten der Transportinfrastruktur (z. B. Fahrspurmarkierungen, Verkehrszeichen, Ampeln usw.) beinhalten, die von Fahrern und anderen Hindernissen (z. B. anderen Fahrzeugen, Fußgängern, Ablagerungen usw.) beobachtet werden können. Zusätzlich kann ein autonomes Fahrzeug auch gespeicherte Informationen verwenden, wie etwa Informationen, die ein Modell der Umgebung des Fahrzeugs beim Navigieren bereitstellen. Zum Beispiel kann das Fahrzeug GPS-Daten, Sensordaten (z. B. aus einem Beschleunigungsmesser, einem Geschwindigkeitssensor, einem Aufhängungssensor usw.) und/oder andere Kartendaten verwenden, um Informationen in Bezug auf seine Umgebung bereitzustellen, während das Fahrzeug fährt, und das Fahrzeug (sowie andere Fahrzeuge) kann die Informationen verwenden, um sich auf dem Modell zu lokalisieren.
  • In einigen Ausführungsformen in dieser Offenbarung kann ein autonomes Fahrzeug Informationen verwenden, die während des Navigierens erhalten wurden (z. B. aus einer Kamera, einer GPS-Vorrichtung, einem Beschleunigungsmesser, einem Geschwindigkeitssensor, einem Aufhängungssensor usw.). In anderen Ausführungsformen kann ein autonomes Fahrzeug Informationen verwenden, die aus vergangenen Navigationen vom Fahrzeug (oder von anderen Fahrzeugen) während des Navigierens erhalten wurden. In noch anderen Ausführungsformen kann ein autonomes Fahrzeug eine Kombination aus Informationen, die während des Navigierens erhalten wurden, und Informationen, die aus vergangenen Navigationen erhalten wurden, verwenden. Die folgenden Abschnitte stellen einen Überblick über ein System bereit, das mit den offenbarten Ausführungsformen konsistent ist, gefolgt von einem Überblick über ein nach vom gerichtetes Bildgebungssystem und Verfahren, die mit dem System konsistent sind. Die folgenden Abschnitte offenbaren Systeme und Verfahren zum Konstruieren, Verwenden und Aktualisieren einer dünnbesetzten Karte für autonome Fahrzeugnavigation.
  • Systemübersicht
  • 1 ist eine Blockdiagrammdarstellung eines Systems 100, das mit den offenbarten Ausführungsformen konsistent ist. Das System 100 kann verschiedene Komponenten beinhalten, abhängig von den Anforderungen einer speziellen Implementierung. 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 Benutzerschnittstelle 170 und einen drahtlosen Sendeempfänger 172 beinhalten. Die Verarbeitungseinheit 110 kann eine oder mehrere Verarbeitungsvorrichtungen beinhalten. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 einen Anwendungsprozessor 180, einen Bildprozessor 190 oder eine beliebige andere geeignete Verarbeitungsvorrichtung beinhalten. Gleichermaßen kann die Bilderfassungseinheit 120 eine beliebige Anzahl von Bilderfassungsvorrichtungen und -komponenten beinhalten, abhängig von den Anforderungen einer speziellen Anwendung. In einigen Ausführungsformen kann die Bilderfassungseinheit 120 eine oder mehrere Bildaufnahmevorrichtungen (z. B. Kameras) beinhalten, wie etwa die Bildaufnahmevorrichtung 122, die Bildaufnahmevorrichtung 124 und die Bildaufnahmevorrichtung 126. Das System 100 kann auch eine Datenschnittstelle 128 beinhalten, die die Verarbeitungseinheit 110 kommunikativ mit der Bilderfassungsvorrichtung 120 verbindet. Zum Beispiel kann die Datenschnittstelle 128 einen beliebigen drahtgebundenen und/oder drahtlosen Link oder Links zum Übertragen von Bilddaten, die von der Bilderfassungsvorrichtung 120 erfasst worden sind, zur Verarbeitungseinheit 110 beinhalten.
  • Der drahtlose Sendeempfänger 172 kann eine oder mehrere Vorrichtungen beinhalten, die konfiguriert sind, um Übertragungen über eine Luftschnittstelle zu einem oder mehreren Netzwerken (z. B. Mobilfunk, Internet usw.) unter Verwendung einer Funkfrequenz, Infrarotfrequenz, eines Magnetfelds oder eines elektrischen Felds auszutauschen. Der drahtlose Sendeempfänger 172 kann jeden bekannten Standard verwenden, um Daten zu übertragen und/oder zu empfangen (z. B. Wi-Fi, Bluetooth® Bluetooth Smart, 802.15.4, ZigBee usw.). Solche Übertragungen können Kommunikationen vom Host-Fahrzeug zu einem oder mehreren entfernten Servern beinhalten. Solche Übertragungen können auch Kommunikationen (Einweg oder Zweiweg) zwischen dem Host-Fahrzeug und einem oder mehreren Zielfahrzeugen in einer Umgebung des Host-Fahrzeugs beinhalten (z. B., um die Koordination der Navigation des Host-Fahrzeugs im Hinblick auf oder zusammen mit Zielfahrzeugen in der Umgebung des Host-Fahrzeugs zu erleichtern) oder sogar eine Broadcast-Übertragung zu nicht spezifizierten Empfängern in einer Nähe des übertragenden Fahrzeugs.
  • Sowohl der Anwendungsprozessor 180 als auch der Bildprozessor 190 können verschiedene Typen von Verarbeitungsvorrichtungen beinhalten. Zum Beispiel können einer von dem Anwendungsprozessor 180 und dem Bildprozessor 190 oder beide einen Mikroprozessor, Präprozessoren (wie etwa einen Bildpräprozessor), eine Grafikverarbeitungseinheit (GPU, Graphics Processing Unit), eine zentrale Verarbeitungseinheit (CPU, Central Processing Unit), Unterstützungsschaltungen, digitale Signalprozessoren, integrierte Schaltungen, Speicher oder beliebige andere Typen von Vorrichtungen beinhalten, die zum Ausführen von Anwendungen und zur Bildverarbeitung und -analyse geeignet sind. In einigen Ausführungsformen können der Anwendungsprozessor 180 und/oder der Bildprozessor 190 einen beliebigen Typ von Einzel- oder Mehrkernprozessor, Mikrocontroller für mobile Vorrichtungen, zentrale Verarbeitungseinheit usw. beinhalten. Verschiedene Verarbeitungsvorrichtungen können verwendet werden, einschließlich zum Beispiel Prozessoren, die von Herstellern wie etwa Intel®, AMD® usw. erhältlich sind, oder GPUs, die von Herstellern wie etwa NVIDIA®, ATI® usw. erhältlich sind, und können verschiedene Architekturen (z. B. x86-Prozessor, ARM® usw.) beinhalten.
  • In einigen Ausführungsformen kann der Anwendungsprozessor 180 und/oder der Bildprozessor 190 einen beliebigen aus der EyeQ-Prozessorchipserie beinhalten, die von Mobileye® verfügbar ist. Diese Prozessordesigns beinhalten jeweils mehrere Verarbeitungseinheiten mit lokalem Speicher und Befehlssätzen. Solche Prozessoren können Videoeingänge zum Empfangen von Bilddaten aus mehreren Bildsensoren beinhalten und können auch Videoausgabefähigkeiten beinhalten. In einem Beispiel verwendet das EyeQ2® eine 90-nm-Mikrometer-Technologie, die bei 332 MHz betrieben wird. Die EyeQ2® -Architektur besteht aus zwei Gleitkomma-, Hyper-Thread-32-Bit-RISC-CPUs (MIPS32® 34K®-Kerne), fünf Vision Computing Engines (VCE), drei Vector Microcode Processors (VMP®), Denali 64-Bit Mobile DDR Controller, 128-Bit interne Sonics Interconnect, duale 16-Bit-Videoeingabe- und 18-Bit Videoausgabe-Controller, 16-Kanal-DMA und mehreren Peripheriegeräten. Die MIPS34K-CPU verwaltet die fünf VCEs, drei VMP™ und den DMA, die zweite MIPS34K-CPU und den Mehrkanal-DMA sowie die anderen Peripheriegeräte. Die fünf VCEs, drei VMP® und die MIPS34K-CPU können intensive Bildverarbeitungsberechnungen durchführen, die für Multifunktions-Bundle-Anwendungen erforderlich sind. In einem anderen Beispiel kann der EyeQ3®, der ein Prozessor der dritten Generation ist und sechsmal leistungsfähiger als der EyeQ2® ist, in den offenbarten Ausführungsformen verwendet werden. In anderen Beispielen können der EyeQ4® und/oder der EyeQ5® in den offenbarten Ausführungsformen verwendet werden. Natürlich können auch neuere oder zukünftige EyeQ-Verarbeitungsvorrichtungen zusammen mit den offenbarten Ausführungsformen verwendet werden.
  • Jede der hierin offenbarten Verarbeitungsvorrichtungen kann dazu konfiguriert sein, bestimmte Funktionen durchzuführen. Das Konfigurieren einer Verarbeitungsvorrichtung, wie etwa eines beliebigen der beschriebenen EyeQ-Prozessoren oder einer anderen Steuerung oder eines Mikroprozessors, zum Durchführen bestimmter 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 beinhalten. In einigen Ausführungsformen kann das Konfigurieren einer Verarbeitungsvorrichtung das Programmieren der Verarbeitungsvorrichtung direkt mit Architekturanweisungen beinhalten. Zum Beispiel können Verarbeitungsvorrichtungen, wie etwa Field Programmable Gate Arrays (FPGAs), anwendungsspezifische integrierte Schaltungen (ASICs) und dergleichen, zum Beispiel unter Verwendung einer oder mehrerer Hardwarebeschreibungssprachen (HDLs), konfiguriert werden.
  • In anderen Ausführungsformen kann das Konfigurieren einer Verarbeitungsvorrichtung das Speichern ausführbarer Anweisungen auf einem Speicher beinhalten, auf den die Verarbeitungsvorrichtung während des Betriebs zugreifen kann. Zum Beispiel kann die Verarbeitungsvorrichtung auf den Speicher zugreifen, um die gespeicherten Anweisungen während des Betriebs zu erhalten und auszuführen. In jedem Fall stellt die Verarbeitungsvorrichtung, die zum Durchführen der hierin offenbarten Abtast-, Bildanalyse- und/oder Navigationsfunktionen konfiguriert ist, ein spezialisiertes hardwarebasiertes System dar, das mehrere hardwarebasierte Komponenten eines Host-Fahrzeugs steuert.
  • Obwohl 1 zwei separate Verarbeitungsvorrichtungen darstellt, die in der Verarbeitungseinheit 110 beinhaltet sind, können mehr oder weniger Verarbeitungsvorrichtungen verwendet werden. Zum Beispiel kann in einigen Ausführungsformen eine einzelne Verarbeitungsvorrichtung verwendet werden, 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 durchgeführt werden. Ferner kann das System 100 in einigen Ausführungsformen eine oder mehrere der Verarbeitungseinheiten 110 beinhalten, ohne andere Komponenten, wie etwa die Bilderfassungseinheit 120, zu beinhalten.
  • Die Verarbeitungseinheit 110 kann verschiedene Typen von Vorrichtungen umfassen. Zum Beispiel kann die Verarbeitungseinheit 110 verschiedene Vorrichtungen beinhalten, wie etwa eine Steuerung, einen Bildpräprozessor, eine zentrale Verarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU), Unterstützungsschaltungen, digitale Signalprozessoren, integrierte Schaltungen, Speicher oder beliebige andere Typen von Vorrichtungen zur Bildverarbeitung und -analyse. Der Bildpräprozessor kann einen Videoprozessor zum Aufnehmen, Digitalisieren und Verarbeiten der Bilder aus den Bildsensoren beinhalten. Die CPU kann eine beliebige Anzahl von Mikrocontrollern oder Mikroprozessoren umfassen. Die GPU kann ebenfalls eine beliebige Anzahl von Mikrocontrollern oder Mikroprozessoren umfassen. Bei den Unterstützungsschaltungen kann es sich um eine beliebige Anzahl von Schaltungen handeln, die im Fachgebiet allgemein bekannt sind, einschließlich Cache-, Stromversorgungs-, Takt- und Eingabe-Ausgabe-Schaltungen. Der Speicher kann Software speichern, die bei Ausführung durch den Prozessor den Betrieb des Systems steuert. Der Speicher kann Datenbanken und Bildverarbeitungssoftware beinhalten. Der Speicher kann eine beliebige Anzahl von Direktzugriffsspeichern, Festwertspeichern, Flash-Speichern, Plattenlaufwerken, optischem Speicher, Bandspeicher, austauschbarem Speicher und anderen Typen von Speichern 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 beinhalten, die bei Ausführung durch einen Prozessor (z. B. den Anwendungsprozessor 180 und/oder den Bildprozessor 190) den Betrieb verschiedener Aspekte des Systems 100 steuern können. Diese Speichereinheiten können zum Beispiel verschiedene Datenbanken und Bildverarbeitungssoftware sowie ein trainiertes System, wie etwa ein neuronales Netzwerk oder ein tiefes neuronales Netzwerk, beinhalten. Die Speichereinheiten können Direktzugriffsspeicher (RAM, Random Access Memory), Festwertspeicher (ROM, Read-Only Memory), Flash-Speicher, Plattenlaufwerke, optischen Speicher, Bandspeicher, austauschbaren Speicher und/oder beliebige andere Typen von Speicher beinhalten. In einigen Ausführungsformen können die Speichereinheiten 140, 150 vom Anwendungsprozessor 180 und/oder Bildprozessor 190 getrennt sein. In anderen Ausführungsformen können diese Speichereinheiten in den Anwendungsprozessor 180 und/oder Bildprozessor 190 integriert sein.
  • Der Positionssensor 130 kann einen beliebigen Typ von Vorrichtung beinhalten, die geeignet ist, um einen Ort zu bestimmen, der mit mindestens einer Komponente des Systems 100 assoziiert ist. In einigen Ausführungsformen kann der Positionssensor 130 einen GPS-Empfänger beinhalten. Solche Empfänger können eine Benutzerposition und -geschwindigkeit bestimmen, indem sie Signale verarbeiten, die von Satelliten des globalen Positionsbestimmungssystems gesendet werden. Positionsinformationen aus dem Positionssensor 130 können dem Anwendungsprozessor 180 und/oder Bildprozessor 190 zur Verfügung gestellt werden.
  • In einigen Ausführungsformen kann das System 100 Komponenten beinhalten, wie etwa einen Geschwindigkeitssensor (z. B. ein Tachometer, einen Geschwindigkeitsmesser) zum Messen einer Geschwindigkeit des Fahrzeugs 200 und/oder einen Beschleunigungsmesser (entweder Einzelachse oder Mehrachse) zum Messen der Beschleunigung des Fahrzeugs 200.
  • Die Benutzerschnittstelle 170 kann eine beliebige Vorrichtung beinhalten, die geeignet ist, um Informationen an einen oder mehrere Benutzer des Systems 100 bereitzustellen oder Eingaben von diesen zu empfangen. In einigen Ausführungsformen kann die Benutzerschnittstelle 170 Benutzereingabevorrichtungen beinhalten, einschließlich zum Beispiel eines Touchscreens, eines Mikrofons, einer Tastatur, Zeigervorrichtungen, Trackwheels, Kameras, Knöpfen, Tasten usw. Mit solchen Eingabevorrichtungen kann ein Benutzer in der Lage sein, dem System 100 Informationseingaben oder -befehle durch Eintippen von Anweisungen oder Informationen, Bereitstellen von Sprachbefehlen, Auswählen von Menüoptionen auf einem Bildschirm unter Verwendung von Tasten, Zeigern oder Eye-Tracking-Fähigkeiten oder durch beliebige andere geeignete Techniken zum Kommunizieren von Informationen an das System 100 bereitzustellen.
  • Die Benutzerschnittstelle 170 kann mit einer oder mehreren Verarbeitungsvorrichtungen ausgestattet sein, die dazu konfiguriert sind, Informationen an einen oder von einem Benutzer bereitzustellen und zu empfangen und diese Informationen zum Beispiel zur Verwendung durch den Anwendungsprozessor 180 zu verarbeiten. In einigen Ausführungsformen können solche Verarbeitungsvorrichtungen Anweisungen zum Erkennen und Verfolgen von Augenbewegungen, Empfangen und Interpretieren von Sprachbefehlen, Erkennen und Interpretieren von Berührungen und/oder Gesten, die auf einem Touchscreen vorgenommen werden, Reagieren auf Tastatureingaben oder Menüauswahlen usw. ausführen. In einigen Ausführungsformen kann die Benutzerschnittstelle 170 eine Anzeige, einen Lautsprecher, eine taktile Vorrichtung und/oder beliebige andere Vorrichtungen zum Bereitstellen von Ausgabeinformationen an einen Benutzer beinhalten.
  • Die Kartendatenbank 160 kann einen beliebigen Typ von Datenbank zum Speichern von Kartendaten beinhalten, die für das System 100 nützlich sind. In einigen Ausführungsformen kann die Kartendatenbank 160 Daten in Bezug auf die Position verschiedener Elemente, einschließlich Straßen, Wassermerkmalen, geografischen Merkmalen, Geschäften, Sehenswürdigkeiten, Restaurants, Tankstellen usw., in einem Referenzkoordinatensystem beinhalten. Die Kartendatenbank 160 kann nicht nur die Orte solcher Elemente speichern, sondern auch Deskriptoren in Bezug auf diese Elemente, einschließlich zum Beispiel Namen, die mit einem der gespeicherten Merkmale assoziiert sind. In einigen Ausführungsformen kann sich die Kartendatenbank 160 physisch bei anderen Komponenten des Systems 100 befinden. 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 Informationen aus der Kartendatenbank 160 über eine drahtgebundene oder drahtlose Datenverbindung zu einem Netzwerk (z. B. über ein Mobilfunknetzwerk und/oder das Internet usw.) heruntergeladen werden. In einigen Fällen kann die Kartendatenbank 160 ein dünnbesetztes Datenmodell speichern, das Polynomrepräsentationen bestimmter Straßenmerkmale (z. B. Fahrspurmarkierungen) oder Zieltrajektorien für das Host-Fahrzeug beinhaltet. Systeme und Verfahren zum Generieren einer solchen Karte werden nachstehend unter Bezugnahme auf die 8 - 19 erörtert.
  • Die Bildaufnahmevorrichtungen 122, 124 und 126 können jeweils einen beliebigen Typ von Vorrichtung beinhalten, die geeignet ist, um mindestens ein Bild aus einer Umgebung aufzunehmen. Darüber hinaus kann eine beliebige Anzahl von Bildaufnahmevorrichtungen verwendet werden, um Bilder zur Eingabe in den Bildprozessor zu erfassen. Einige Ausführungsformen können nur eine einzige Bildaufnahmevorrichtung beinhalten, während andere Ausführungsformen zwei, drei oder sogar vier oder mehr Bildaufnahmevorrichtungen beinhalten können. Die Bildaufnahmevorrichtungen 122, 124 und 126 werden nachstehend unter Bezugnahme auf die 2B - 2E weiter beschrieben.
  • Das System 100 oder verschiedene Komponenten davon können in verschiedene Plattformen einbezogen sein. In einigen Ausführungsformen kann das System 100 in einem Fahrzeug 200 beinhaltet sein, wie in 2A gezeigt wird. Zum Beispiel kann das Fahrzeug 200 mit einer Verarbeitungseinheit 110 und einer beliebigen der anderen Komponenten des Systems 100 ausgestattet sein, wie vorstehend in Bezug auf 1 beschrieben wird. Obwohl das Fahrzeug 200 in einigen Ausführungsformen mit nur einer einzigen Bildaufnahmevorrichtung (z. B. Kamera) ausgestattet sein kann, können in anderen Ausführungsformen, wie etwa den in Verbindung mit 2B - 2E erörterten, mehrere Bildaufnahmevorrichtungen verwendet werden. Zum Beispiel kann eine der Bildaufnahmevorrichtungen 122 oder 124 des Fahrzeugs 200, wie in 2A gezeigt wird, Teil eines ADAS (Advanced Driver Assistance System)-Bildgebungssatzes sein.
  • Die Bildaufnahmevorrichtungen, die im Fahrzeug 200 als Teil der Bilderfassungseinheit 120 beinhaltet sind, können an einem beliebigen geeigneten Ort positioniert sein. In einigen Ausführungsformen, wie in 2A - 2E und 3A - 3C gezeigt wird, kann sich die Bildaufnahmevorrichtung 122 in der Nähe des Rückspiegels befinden. Diese Position kann eine Sichtlinie bereitstellen, die der des Fahrers des Fahrzeugs 200 ähnlich ist, was dabei helfen kann, zu bestimmen, was für den Fahrer sichtbar ist und was nicht. Die Bildaufnahmevorrichtung 122 kann an einem beliebigen Ort in der Nähe des Rückspiegels positioniert sein, aber das Platzieren der Bildaufnahmevorrichtung 122 auf der Fahrerseite des Spiegels kann ferner dabei helfen, Bilder zu erhalten, die das Sichtfeld und/oder die Sichtlinie des Fahrers darstellen.
  • Andere Orte für die Bildaufnahmevorrichtungen der Bilderfassungseinheit 120 können ebenfalls verwendet werden. Zum Beispiel kann sich die Bildaufnahmevorrichtung 124 an oder in einem Stoßfänger des Fahrzeugs 200 befinden. Ein solcher Ort kann besonders für Bildaufnahmevorrichtungen mit einem breiten Sichtfeld geeignet sein. Die Sichtlinie der am Stoßfänger befindlichen Bildaufnahmevorrichtungen kann sich von der des Fahrers unterscheiden, und daher sehen die Stoßfänger-Bildaufnahmevorrichtung und der Fahrer möglicherweise nicht immer die gleichen Objekte. Die Bildaufnahmevorrichtungen (z. B. die Bildaufnahmevorrichtungen 122, 124 und 126) können sich auch an anderen Orten befinden. Zum Beispiel können sich die Bildaufnahmevorrichtungen an oder in einem oder beiden der Seitenspiegel des Fahrzeugs 200, auf dem Dach des Fahrzeugs 200, auf der Motorhaube des Fahrzeugs 200, am Kofferraum des Fahrzeugs 200, an den Seiten des Fahrzeugs 200, an einem beliebigen der Fenster des Fahrzeugs 200 montiert, dahinter positioniert oder davor positioniert und in oder in der Nähe von Leuchtziffern an der Vorder- und/oder Rückseite des Fahrzeugs 200 usw. montiert befinden.
  • Zusätzlich zu den Bildaufnahmevorrichtungen kann das Fahrzeug 200 verschiedene andere Komponenten des Systems 100 beinhalten. Zum Beispiel kann die Verarbeitungseinheit 110 im Fahrzeug 200 beinhaltet sein, entweder in eine Motorsteuereinheit (ECU, Engine Control Unit) des Fahrzeugs integriert oder davon getrennt. Das Fahrzeug 200 kann auch mit einem Positionssensor 130, wie etwa einem GPS-Empfänger, ausgestattet sein und kann auch eine Kartendatenbank 160 und Speichereinheiten 140 und 150 beinhalten.
  • Wie bereits erörtert, kann der drahtlose Sendeempfänger 172 Daten über ein oder mehrere Netzwerke (z. B. Mobilfunknetze, das Internet usw.) und/oder empfangen. Zum Beispiel kann der drahtlose Sendeempfänger 172 Daten, die vom System 100 erhoben wurden, auf einen oder mehrere Server hochladen und Daten aus einem oder mehreren Servern herunterladen. Über den drahtlosen Sendeempfänger 172 kann das System 100 zum Beispiel periodische oder bedarfsgesteuerte Aktualisierungen an Daten empfangen, die in der Kartendatenbank 160, im Speicher 140 und/oder im Speicher 150 gespeichert sind. Gleichermaßen kann der drahtlose Sendeempfänger 172 beliebige Daten (z. B. Bilder, die von der Bilderfassungseinheit 120 aufgenommen wurden, Daten, die vom Positionssensor 130 oder anderen Sensoren, Fahrzeugsteuersystemen usw. empfangen wurden) aus dem System 100 und/oder beliebige Daten, die von der Verarbeitungseinheit 110 verarbeitet wurden, auf einen oder mehrere Server hochladen.
  • Das System 100 kann Daten basierend auf einer Einstellung der Datenschutzstufe auf einen Server (z. B. in die Cloud) hochladen. Zum Beispiel kann das System 100 Einstellungen der Datenschutzstufe implementieren, um die Typen von Daten (einschließlich Metadaten) zu regulieren oder zu begrenzen, die zum Server gesendet werden, der ein Fahrzeug und/oder einen Fahrer/Besitzer eines Fahrzeugs eindeutig identifizieren kann. Solche Einstellungen können vom Benutzer zum Beispiel über den drahtlosen Sendeempfänger 172 eingestellt, durch werksseitige Standardeinstellungen oder durch Daten, die vom drahtlosen Sendeempfänger 172 empfangen werden, initialisiert werden.
  • In einigen Ausführungsformen kann das System 100 Daten gemäß einer „hohen“ Datenschutzstufe hochladen, und gemäß der Einstellung einer Einstellung kann das System 100 Daten (z. B. Ortsinformationen in Bezug auf eine Route, aufgenommene Bilder usw.) ohne Details über das spezifische Fahrzeug und/oder den spezifischen Fahrer/Besitzer übertragen. Zum Beispiel kann das System 100 beim Hochladen von Daten gemäß einer „hohen“ Datenschutzeinstellung keine Fahrzeugidentifikationsnummer (VIN, Vehicle Identification Number) oder keinen Namen eines Fahrers oder Besitzers des Fahrzeugs beinhalten und kann stattdessen Daten, wie etwa aufgenommene Bilder und/oder begrenzte Ortsinformationen in Bezug auf eine Route, übertragen.
  • Andere Datenschutzstufen werden in Betracht gezogen. Zum Beispiel kann das System 100 Daten gemäß einer „mittleren“ Datenschutzstufe zu einem Server übertragen und zusätzliche Informationen beinhalten, die nicht unter einer „hohen“ Datenschutzstufe beinhaltet sind, wie etwa eine Marke und/oder ein Modell eines Fahrzeugs und/oder einen Fahrzeugtyp (z. B. ein Personenkraftwagen, ein Sport Utility Vehicle, ein Lastkraftwagen usw.). In einigen Ausführungsformen kann das System 100 Daten gemäß einer „niedrigen“ Datenschutzstufe hochladen. Unter einer „niedrigen“ Datenschutzstufeneinstellung kann das System 100 Daten hochladen und Informationen beinhalten, die ausreichen, um ein spezifisches Fahrzeug, einen spezifischen Besitzer/Fahrer und/oder einen Abschnitt oder die Gesamtheit einer vom Fahrzeug befahrenen Route eindeutig zu identifizieren. Solche „niedrigen“ Datenschutzstufendaten können zum Beispiel eine VIN und/oder einen Fahrer-Besitzernamen und/oder einen Ursprungspunkt eines Fahrzeugs vor der Abfahrt und/oder einen beabsichtigten Zielort des Fahrzeugs und/oder eine Marke und/oder ein Modell des Fahrzeugs und/oder einen Typ des Fahrzeugs usw. beinhalten.
  • 2A ist eine schematische Seitenansicht eines beispielhaften Fahrzeugbildgebungssystems, konsistent mit den offenbarten Ausführungsformen. 2B ist eine Veranschaulichung einer schematischen Draufsicht der in 2A gezeigten Ausführungsform. Wie in 2B veranschaulicht wird, können die offenbarten Ausführungsformen ein Fahrzeug 200 beinhalten, 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 an oder in einer Stoßfängerregion (z. B. einer der Stoßfängerregionen 210) des Fahrzeugs 200 positioniert ist, und einer Verarbeitungseinheit 110 beinhaltet.
  • Wie in 2C veranschaulicht wird, können die Bildaufnahmevorrichtungen 122 und 124 beide in der Nähe des Rückspiegels und/oder in der Nähe des Fahrers des Fahrzeugs 200 positioniert sein. Obwohl zwei Bildaufnahmevorrichtungen 122 und 124 in 2B und 2C gezeigt werden, versteht es sich zusätzlich, dass andere Ausführungsformen mehr als zwei Bildaufnahmevorrichtungen beinhalten können. Zum Beispiel sind in den Ausführungsformen, die in 2D und 2E gezeigt werden, die erste, zweite und dritte Bildaufnahmevorrichtung 122, 124 und 126 im System 100 des Fahrzeugs 200 beinhaltet.
  • Wie in 2D veranschaulicht wird, 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 an oder in einer Stoßfängerregion (z. B. einer der Stoßfängerregionen 210) des Fahrzeugs 200 positioniert sein. Und wie in 2E gezeigt wird, 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 eine beliebige spezielle Anzahl und Konfiguration der Bildaufnahmevorrichtungen beschränkt, und die Bildaufnahmevorrichtungen können an einem beliebigen geeigneten Ort innerhalb und/oder am Fahrzeug 200 positioniert sein.
  • Es versteht sich, dass die offenbarten Ausführungsformen nicht auf Fahrzeuge beschränkt sind und in anderen Kontexten angewendet werden könnten. Es versteht sich auch, dass die offenbarten Ausführungsformen nicht auf einen speziellen Typ von Fahrzeug 200 beschränkt sind und auf alle Typen von Fahrzeugen, einschließlich Automobilen, Lastkraftwagen, Anhängern und anderen Typen von Fahrzeugen, anwendbar sein können.
  • Die erste Bildaufnahmevorrichtung 122 kann einen beliebigen geeigneten Typ von Bildaufnahmevorrichtung beinhalten. Die Bildaufnahmevorrichtung 122 kann eine optische Achse beinhalten. In einem Fall kann die Bildaufnahmevorrichtung 122 einen Sensor Aptina M9V024 WVGA mit einem Global Shutter beinhalten. In anderen Ausführungsformen kann die Bildaufnahmevorrichtung 122 eine Auflösung von 1280 × 960 Pixeln bereitstellen und kann einen Rolling Shutter beinhalten. Die Bildaufnahmevorrichtung 122 kann verschiedene optische Elemente beinhalten. In einigen Ausführungsformen können eine oder mehrere Linsen beinhaltet sein, um zum Beispiel eine gewünschte Brennweite und ein gewünschtes Sichtfeld für die Bildaufnahmevorrichtung bereitzustellen. In einigen Ausführungsformen kann die Bildaufnahmevorrichtung 122 mit einer 6 mm-Linse oder einer 12 mm-Linse assoziiert sein. In einigen Ausführungsformen kann die Bildaufnahmevorrichtung 122 dazu konfiguriert sein, Bilder mit einem gewünschten Sichtfeld (FOV, Field of View) 202 aufzunehmen, wie in 2D veranschaulicht wird. Zum Beispiel kann die Bildaufnahmevorrichtung 122 dazu konfiguriert sein, ein normales FOV aufzuweisen, wie etwa innerhalb eines Bereichs von 40 Grad bis 56 Grad, einschließlich eines FOV von 46 Grad, eines FOV von 50 Grad, eines FOV von 52 Grad oder größer. Alternativ kann die Bildaufnahmevorrichtung 122 dazu konfiguriert sein, ein enges FOV im Bereich von 23 bis 40 Grad aufzuweisen, wie etwa ein FOV von 28 Grad oder ein FOV von 36 Grad. Zusätzlich kann die Bildaufnahmevorrichtung 122 dazu konfiguriert sein, ein breites FOV im Bereich von 100 bis 180 Grad aufzuweisen. In einigen Ausführungsformen kann die Bildaufnahmevorrichtung 122 eine Weitwinkel-Stoßfänger-Kamera oder eine mit einem FOV von bis zu 180 Grad beinhalten. In einigen Ausführungsformen kann die Bildaufnahmevorrichtung 122 eine 7,2M-Pixel-Bildaufnahmevorrichtung mit einem Aspektverhältnis von etwa 2:1 (z. B. H × V = 3800 × 1900 Pixel) mit etwa 100 Grad horizontalem FOV sein. Eine solche Bildaufnahmevorrichtung kann anstelle einer Konfiguration mit drei Bildaufnahmevorrichtungen verwendet werden. Aufgrund einer signifikanten Objektivverzeichnung kann das vertikale FOV einer solchen Bildaufnahmevorrichtung in Implementierungen, in denen die Bildaufnahmevorrichtung eine radialsymmetrische Linse verwendet, deutlich kleiner als 50 Grad sein. Zum Beispiel ist eine solche Linse möglicherweise nicht radialsymmetrisch, was ein vertikales FOV größer als 50 Grad mit 100 Grad horizontalem FOV gestatten würde.
  • Die erste Bildaufnahmevorrichtung 122 kann eine Vielzahl von ersten Bildern relativ zu einer mit dem Fahrzeug 200 assoziierten Szene erfassen. Jedes der Vielzahl von ersten Bildern kann als eine Serie von Bildscanlinien erfasst werden, die unter Verwendung eines Rolling Shutter aufgenommen werden können. Jede Scanlinie kann eine Vielzahl von Pixeln beinhalten.
  • Die erste Bildaufnahmevorrichtung 122 kann eine Scanrate aufweisen, die mit der Erfassung jeder der ersten Serie von Bildscanlinien assoziiert ist. Die Scanrate kann sich auf eine Rate beziehen, mit der ein Bildsensor mit jedem, in einer speziellen Scanlinie beinhalteten Pixel assoziierte Bilddaten erfassen kann.
  • Die Bildaufnahmevorrichtungen 122, 124 und 126 können einen beliebigen geeigneten Typ und eine beliebige geeignete Anzahl von Bildsensoren enthalten, einschließlich zum Beispiel CCD-Sensoren oder CMOS-Sensoren. In einer Ausführungsform kann ein CMOS-Bildsensor zusammen mit einem Rolling Shutter eingesetzt werden, so dass jedes Pixel in einer Zeile einzeln gelesen wird und das Scannen der Zeilen zeilenweise fortgesetzt wird, bis ein gesamtes Einzelbild aufgenommen worden ist. In einigen Ausführungsformen können die Zeilen sequenziell von oben nach unten relativ zum Einzelbild aufgenommen werden.
  • In einigen Ausführungsformen können eine oder mehrere der hierin offenbarten Bildaufnahmevorrichtungen (z. B. Bildaufnahmevorrichtungen 122, 124 und 126) einen hochauflösenden Bildgeber bilden und eine Auflösung größer als 5M Pixel, 7M Pixel, 10M Pixel oder größer aufweisen.
  • Die Verwendung eines Rolling Shutter kann dazu führen, dass Pixel in unterschiedlichen Zeilen zu unterschiedlichen Zeiten belichtet und aufgenommen werden, was zu Schräglauf und anderen Bildartefakten im aufgenommenen Einzelbild führen kann. Wenn andererseits die Bildaufnahmevorrichtung 122 dazu konfiguriert ist, mit einem Global Shutter oder synchronem Verschluss zu arbeiten, können alle Pixel für den gleiche Zeitraum und während einer gemeinsamen Belichtungsperiode belichtet werden. Als Ergebnis stellen die Bilddaten in einem Einzelbild, die von einem System erhoben wurden, das einen Global Shutter verwendet, eine Momentaufnahme des gesamten FOV (wie etwa des FOV 202) zu einer speziellen Zeit dar. Dagegen wird in einer Rolling-Shutter-Anwendung jede Zeile in einem Einzelbild belichtet, und Daten werden zu unterschiedlichen Zeiten aufgenommen. Somit können sich bewegende Objekte bei einer Bildaufnahmevorrichtung mit einem Rolling Shutter verzerrt scheinen. Dieses Phänomen wird nachstehend ausführlicher beschrieben.
  • Die zweite Bildaufnahmevorrichtung 124 und die dritte Bildaufnahmevorrichtung 126 können ein beliebiger Typ von Bildaufnahmevorrichtung sein. Wie die erste Bildaufnahmevorrichtung 122 kann jede der Bildaufnahmevorrichtungen 124 und 126 eine optische Achse beinhalten. In einer Ausführungsform kann jede der Bildaufnahmevorrichtungen 124 und 126 einen Aptina M9V024 WVGA-Sensor mit Global Shutter beinhalten. Alternativ kann jede der Bildaufnahmevorrichtungen 124 und 126 einen Rolling Shutter beinhalten. Wie die Bildaufnahmevorrichtung 122 können die Bildaufnahmevorrichtungen 124 und 126 dazu konfiguriert sein, verschiedene Linsen und optische Elemente zu beinhalten. In einigen Ausführungsformen können Linsen, die mit den Bildaufnahmevorrichtungen 124 und 126 assoziiert sind, FOVs bereitstellen (wie etwa die FOVs 204 und 206), die gleich oder enger als ein mit der Bildaufnahmevorrichtung 122 assoziiertes FOV (wie etwa das FOV 202) sind. Zum Beispiel können die Bildaufnahmevorrichtungen 124 und 126 FOVs von 40 Grad, 30 Grad, 26 Grad, 23 Grad, 20 Grad oder weniger aufweisen.
  • Die Bildaufnahmevorrichtungen 124 und 126 können eine Vielzahl von zweiten und dritten Bildern relativ zu einer mit dem Fahrzeug 200 assoziierten Szene erfassen. Jedes der Vielzahl von zweiten und dritten Bildern kann als eine zweite und dritte Serie von Bildscanlinien erfasst werden, die unter Verwendung eines Rolling Shutter aufgenommen werden können. Jede Scanlinie oder -zeile kann eine Vielzahl von Pixeln aufweisen. Die Bildaufnahmevorrichtungen 124 und 126 können zweite und dritte Scanraten aufweisen, die mit der Erfassung jeder der Bildscanlinien assoziiert sind, die in der zweiten und dritten Serie beinhaltet sind.
  • Jede Bildaufnahmevorrichtung 122, 124 und 126 kann an einer beliebigen geeigneten Position und in einer beliebigen geeigneten Ausrichtung relativ zum Fahrzeug 200 positioniert sein. Die relative Positionierung der Bildaufnahmevorrichtungen 122, 124 und 126 kann so ausgewählt werden, dass sie dabei hilft, die von den Bildaufnahmevorrichtungen erfassten Informationen zusammenzufassen. Zum Beispiel kann in einigen Ausführungsformen ein FOV, das mit der Bildaufnahmevorrichtung 124 assoziiert ist (wie etwa das FOV 204), sich teilweise oder vollständig mit einem FOV, das mit der Bildaufnahmevorrichtung 122 assoziiert ist (wie etwa dem FOV 202), und mit einem FOV, das mit der Bildaufnahmevorrichtung 126 assoziiert ist (wie etwa dem FOV 206), überlappen.
  • Die Bildaufnahmevorrichtungen 122, 124 und 126 können sich an dem Fahrzeug 200 in beliebigen geeigneten relativen Höhen befinden. In einem Fall kann es zu einer Höhendifferenz zwischen den Bildaufnahmevorrichtungen 122, 124 und 126 kommen, die ausreichende Parallaxeninformationen bereitstellen kann, um Stereoanalyse zu ermöglichen. Wie zum Beispiel in 2A gezeigt wird, befinden sich die beiden Bildaufnahmevorrichtungen 122 und 124 in unterschiedlichen Höhen. Es kann auch zu einer seitlichen Verschiebungsdifferenz zwischen den Bildaufnahmevorrichtungen 122, 124 und 126 kommen, wodurch zum Beispiel zusätzliche Parallaxeninformationen für Stereoanalyse durch die Verarbeitungseinheit 110 erhalten werden. Die Differenz der seitlichen Verschiebung kann mit dx bezeichnet werden, wie in 2C und 2D gezeigt wird. In einigen Ausführungsformen kann eine Vorwärts- oder Rückwärtsverschiebung (z. B. eine Entfemungsverschiebung) zwischen den Bildaufnahmevorrichtungen 122, 124 und 126 vorhanden sein. Zum Beispiel 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 es einer der Bildaufnahmevorrichtungen ermöglichen, potenzielle tote Winkel der anderen Bildaufnahmevorrichtung(en) abzudecken.
  • Die Bildaufnahmevorrichtungen 122 können eine beliebige geeignete Auflösungsfähigkeit aufweisen (z. B. Anzahl von Pixeln, die mit dem Bildsensor assoziiert sind), und die Auflösung des Bildsensors oder der Bildsensoren, die mit der Bildaufnahmevorrichtung 122 assoziiert sind, kann höher, niedriger oder gleich der Auflösung des Bildsensors oder der Bildsensoren sein, die mit den Bildaufnahmevorrichtungen 124 und 126 assoziiert sind. In einigen Ausführungsformen können der Bildsensor oder die Bildsensoren, die mit der Bildaufnahmevorrichtung 122 und/oder den Bildaufnahmevorrichtungen 124 und 126 assoziiert sind, eine Auflösung von 640 × 480, 1024 × 768, 1280 × 960 oder eine beliebige andere geeignete Auflösung aufweisen.
  • Die Bildrate (z. B. die Rate, mit der eine Bildaufnahmevorrichtung einen Satz von Pixeldaten eines Einzelbilds erfasst, bevor sie sich weiterbewegt, um Pixeldaten aufzunehmen, die mit dem nächsten Einzelbild assoziiert sind) kann steuerbar sein. Die Bildrate, die mit der Bildaufnahmevorrichtung 122 assoziiert ist, kann höher, niedriger oder gleich der Bildrate sein, die mit den Bildaufnahmevorrichtungen 124 und 126 assoziiert ist. Die Bildrate, die mit den Bildaufnahmevorrichtungen 122, 124 und 126 assoziiert ist, kann von einer Vielzahl von Faktoren abhängen, die das Timing der Bildrate beeinflussen können. Zum Beispiel können eine oder mehrere der Bildaufnahmevorrichtungen 122, 124 und 126 eine auswählbare Pixelverzögerungsperiode beinhalten, die vor oder nach der Erfassung von Bilddaten auferlegt wird, die mit einem oder mehreren Pixeln eines Bildsensors in der Bildaufnahmevorrichtung 122, 124 und/oder 126 assoziiert sind. Im Allgemeinen können Bilddaten, die jedem Pixel entsprechen, gemäß einer Taktrate für die Vorrichtung erfasst werden (z. B. ein Pixel pro Taktzyklus). Zusätzlich können in Ausführungsformen, die einen Rolling Shutter beinhalten, eine oder mehrere der Bildaufnahmevorrichtungen 122, 124 und 126 eine auswählbare horizontale Austastperiode beinhalten, die vor oder nach der Erfassung von Bilddaten auferlegt wird, die mit einer Zeile von Pixeln eines Bildsensors in der Bildaufnahmevorrichtung 122, 124 und/oder 126 assoziiert sind. Ferner können eine oder mehrere der Bildaufnahmevorrichtungen 122, 124 und/oder 126 eine auswählbare vertikale Austastperiode beinhalten, die vor oder nach der Erfassung von Bilddaten auferlegt wird, die mit einem Einzelbild der Bildaufnahmevorrichtung 122, 124 und 126 assoziiert sind.
  • Diese Timingsteuerungen können die Synchronisation von Bildraten ermöglichen, die mit den Bildaufnahmevorrichtungen 122, 124 und 126 assoziiert sind, selbst wenn die Zeilenscanraten jeweils unterschiedlich sind. Wie nachstehend ausführlicher erörtert wird, können diese auswählbaren Timingsteuerungen zusätzlich, neben anderen Faktoren (z. B. Bildsensorauflösung, maximale Zeilenscanraten usw.), die Synchronisation der Bildaufnahme von einem Gebiet ermöglichen, in dem sich das FOV der Bildaufnahmevorrichtung 122 mit einem oder mehreren FOVs der Bildaufnahmevorrichtungen 124 und 126 überlappt, selbst wenn sich das Sichtfeld der Bildaufnahmevorrichtung 122 von den FOVs der Bildaufnahmevorrichtungen 124 und 126 unterscheidet.
  • Das Timing der Bildrate in der Bildaufnahmevorrichtung 122, 124 und 126 kann von der Auflösung der assoziierten Bildsensoren abhängen. Unter der Annahme ähnlicher Zeilenscanraten für beide Vorrichtungen, ist zum Beispiel dann, wenn eine Vorrichtung einen Bildsensor mit einer Auflösung von 640 × 480 aufweist und eine andere Vorrichtung einen Bildsensor mit einer Auflösung von 1280 × 960 aufweist, mehr Zeit erforderlich, um ein Einzelbild mit Bilddaten aus dem Sensor mit der höheren Auflösung zu erfassen.
  • Ein anderer Faktor, der das Timing der Bilddatenerfassung in den Bildaufnahmevorrichtungen 122, 124 und 126 beeinflussen kann, ist die maximale Zeilenscanrate. So erfordert zum Beispiel die Erfassung einer Zeile von Bilddaten von einem Bildsensor, der in der Bildaufnahmevorrichtung 122, 124 und 126 beinhaltet ist, einen minimalen Zeitraum. Unter der Annahme, dass keine Pixelverzögerungsperioden hinzugefügt werden, wird dieser minimale Zeitraum für die Erfassung einer Zeile von Bilddaten mit der maximalen Zeilenscanrate für eine spezielle Vorrichtung in Beziehung gesetzt. Vorrichtungen, die höhere maximale Zeilenscanraten bieten, haben das Potenzial, höhere Bildraten als Vorrichtungen mit niedrigeren maximalen Zeilenscanraten bereitzustellen. In einigen Ausführungsformen können eine oder mehrere der Bildaufnahmevorrichtungen 124 und 126 eine maximale Zeilenscanrate aufweisen, die höher ist als eine maximale Zeilenscanrate, die mit der Bildaufnahmevorrichtung 122 assoziiert ist. In einigen Ausführungsformen kann die maximale Zeilenscanrate der Bildaufnahmevorrichtung 124 und/oder 126 das 1,25-, 1,5-, 1,75- oder 2-Fache oder mehr als eine maximale Zeilenscanrate der Bildaufnahmevorrichtung 122 betragen.
  • In einer anderen Ausführungsform können die Bildaufnahmevorrichtungen 122, 124 und 126 die gleiche maximale Zeilenscanrate aufweisen, aber die Bildaufnahmevorrichtung 122 kann mit einer Scanrate betrieben werden, die kleiner oder gleich ihrer maximalen Scanrate ist. Das System kann so konfiguriert sein, dass eine oder mehrere der Bildaufnahmevorrichtungen 124 und 126 mit einer Zeilenscanrate arbeiten, die gleich der Zeilenscanrate der Bildaufnahmevorrichtung 122 ist. In anderen Fällen kann das System so konfiguriert sein, dass die Zeilenscanrate der Bildaufnahmevorrichtung 124 und/oder der Bildaufnahmevorrichtung 126 das 1,25-, 1,5-, 1,75- oder 2-Fache oder mehr als die Zeilenscanrate der Bildaufnahmevorrichtung 122 betragen kann.
  • 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 beinhalten. Die Sichtfelder der Bildaufnahmevorrichtungen 122, 124 und 126 können zum Beispiel ein beliebiges gewünschtes Gebiet relativ zu einer Umgebung des Fahrzeugs 200 beinhalten. In einigen Ausführungsformen können eine oder mehrere der Bildaufnahmevorrichtungen 122, 124 und 126 dazu konfiguriert sein, Bilddaten aus einer Umgebung vor dem Fahrzeug 200, hinter dem Fahrzeug 200, neben dem Fahrzeug 200 oder Kombinationen davon zu erfassen.
  • Ferner kann die mit jeder Bildaufnahmevorrichtung 122, 124 und/oder 126 assoziierte Brennweite auswählbar sein (z. B. durch Einbeziehung geeigneter Linsen usw.), so dass jede Vorrichtung Bilder von Objekten in einem gewünschten Distanzbereich relativ zum Fahrzeug 200 erfasst. Zum Beispiel können in einigen Ausführungsformen die Bildaufnahmevorrichtungen 122, 124 und 126 Bilder von Nahaufnahmeobjekten innerhalb weniger Meter vom Fahrzeug erfassen. Die Bildaufnahmevorrichtungen 122, 124 und 126 können auch dazu konfiguriert sein, Bilder von Objekten in Entfernungen zu erfassen, die weiter vom Fahrzeug entfernt sind (z. B. 25 m, 50 m, 100 m, 150 m oder mehr). Ferner können die Brennweiten der Bildaufnahmevorrichtungen 122, 124 und 126 ausgewählt werden, so dass eine Bildaufnahmevorrichtung (z. B. die Bildaufnahmevorrichtung 122) Bilder von Objekten relativ nahe am Fahrzeug erfassen kann (z. B. innerhalb von 10 m oder innerhalb von 20 m), während die anderen Bildaufnahmevorrichtungen (z. B. die Bildaufnahmevorrichtungen 124 und 126) Bilder von weiter vom 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 weiten Winkel aufweisen. Zum Beispiel kann es vorteilhaft sein, ein FOV von 140 Grad aufzuweisen, insbesondere für die Bildaufnahmevorrichtungen 122, 124 und 126, die verwendet werden können, um Bilder des Gebiets in der Nähe des Fahrzeugs 200 aufzunehmen. Zum Beispiel kann die Bildaufnahmevorrichtung 122 verwendet werden, um Bilder des Gebiets rechts oder links vom Fahrzeug 200 aufzunehmen, und in solchen Ausführungsformen kann es wünschenswert sein, dass die Bildaufnahmevorrichtung 122 ein breites FOV (z. B. mindestens 140 Grad) aufweist.
  • Das Sichtfeld, das mit jeder der Bildaufnahmevorrichtungen 122, 124 und 126 assoziiert ist, kann von den jeweiligen Brennweiten abhängen. Zum Beispiel nimmt mit zunehmender Brennweite das entsprechende Sichtfeld ab.
  • Die Bildaufnahmevorrichtungen 122, 124 und 126 können so konfiguriert sein, dass sie beliebige geeignete 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 anderen 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 ein Verhältnis des FOV der Bildaufnahmevorrichtung 122 zu den FOVs der Bildaufnahmevorrichtung 124 und/oder der Bildaufnahmevorrichtung 126 von 1,5 bis 2,0 variieren. In anderen Ausführungsformen kann dieses Verhältnis zwischen 1,25 und 2,25 variieren.
  • Das System 100 kann so konfiguriert sein, dass sich ein Sichtfeld der Bildaufnahmevorrichtung 122 zumindest teilweise oder vollständig mit einem Sichtfeld der Bildaufnahmevorrichtung 124 und/oder der Bildaufnahmevorrichtung 126 überlappt. In einigen Ausführungsformen kann das System 100 so konfiguriert sein, dass die Sichtfelder der Bildaufnahmevorrichtungen 124 und 126 zum Beispiel in das Sichtfeld der Bildaufnahmevorrichtung 122 fallen (z. B. enger als dieses sind) und eine gemeinsame Mitte mit diesem haben. In anderen Ausführungsformen können die Bildaufnahmevorrichtungen 122, 124 und 126 benachbarte FOVs aufnehmen oder können teilweise Überlappungen in ihren FOVs aufweisen. In einigen Ausführungsformen können die Sichtfelder der Bildaufnahmevorrichtungen 122, 124 und 126 so ausgerichtet sein, dass sich eine Mitte der Bildaufnahmevorrichtungen 124 und/oder 126 mit engerem FOV in einer unteren Hälfte des Sichtfelds der Vorrichtung 122 mit breiterem FOV befinden kann.
  • 2F ist eine schematische Darstellung beispielhafter Fahrzeugsteuersysteme, konsistent mit den offenbarten Ausführungsformen. Wie in 2F angegeben wird, kann das Fahrzeug 200 das Drosselsystem 220, das Bremssystem 230 und das Lenksystem 240 beinhalten. Das System 100 kann Eingaben (z. B. Steuersignale) für das Drosselsystem 220 und/oder das Bremssystem 230 und/oder das Lenksystem 240 über einen oder mehrere Datenlinks (z. B. einen beliebigen drahtgebundenen und/oder drahtlosen Link oder Links zum Übertragen von Daten) bereitstellen. Zum Beispiel kann das System 100 basierend auf der Analyse von Bildern, die von den Bildaufnahmevorrichtungen 122, 124 und/oder 126 erfasst wurden, Steuersignale für das Drosselsystem 220 und/oder das Bremssystem 230 und/oder das Lenksystem 240 bereitstellen, um das Fahrzeug 200 zu navigieren (indem es z. B. eine Beschleunigung, ein Abbiegen, einen Fahrspurwechsel usw. veranlasst). Ferner kann das System 100 Eingaben aus dem Drosselsystem 220 und/oder dem Bremssystem 230 und/oder dem Lenksystem 24 empfangen, die Betriebsbedingungen des Fahrzeugs 200 angeben (z. B. die Geschwindigkeit, ob das Fahrzeug 200 bremst und/oder abbiegt usw.). Weitere Details werden in Verbindung mit den nachstehenden 4 - 7 bereitgestellt.
  • Wie in 3A gezeigt wird, kann das Fahrzeug 200 auch eine Benutzerschnittstelle 170 zum Interagieren mit einem Fahrer oder einem Fahrgast des Fahrzeugs 200 beinhalten. Zum Beispiel kann die Benutzerschnittstelle 170 in einer Fahrzeuganwendung einen Touchscreen 320, Knöpfe 330, Tasten 340 und ein Mikrofon 350 beinhalten. Ein Fahrer oder Fahrgast des Fahrzeugs 200 kann auch Griffe (die sich z. B. an oder nahe der Lenksäule des Fahrzeugs 200 befinden, einschließlich zum Beispiel Blinkergriffe), 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 benachbart zu einem Rückspiegel 310 positioniert sein. Gleichermaßen kann sich die Bildaufnahmevorrichtung 122 in einigen Ausführungsformen in der Nähe des Rückspiegels 310 befinden. In einigen Ausführungsformen kann die Benutzerschnittstelle 170 auch einen oder mehrere Lautsprecher 360 (z. B. Lautsprecher eines Fahrzeugaudiosystems) beinhalten. Zum Beispiel kann das System 100 verschiedene Benachrichtigungen (z. B. Alarmmeldungen) über die Lautsprecher 360 bereitstellen.
  • 3B - 3D sind Veranschaulichungen einer beispielhaften Kamerahalterung 370, die dazu konfiguriert ist, hinter einem Rückspiegel (z. B. dem Rückspiegel 310) und gegen eine Fahrzeugwindschutzscheibe positioniert zu werden, konsistent mit offenbarten Ausführungsformen. Wie in 3B gezeigt wird, kann die Kamerahalterung 370 die Bildaufnahmevorrichtungen 122, 124 und 126 beinhalten. Die Bildaufnahmevorrichtungen 124 und 126 können hinter einem Blendschutz 380 positioniert sein, der bündig an der Fahrzeugwindschutzscheibe anliegen kann und eine Zusammensetzung aus Folien- und/oder Antireflexionsmaterialien beinhalten kann. Zum Beispiel kann der Blendschutz 380 so positioniert sein, dass der Schutz gegen eine Fahrzeugwindschutzscheibe mit einer passenden Neigung ausgerichtet ist. In einigen Ausführungsformen kann jede der Bildaufnahmevorrichtungen 122, 124 und 126 hinter dem Blendschutz 380 positioniert sein, wie zum Beispiel in 3D dargestellt wird. Die offenbarten Ausführungsformen sind nicht auf eine beliebige spezielle Konfiguration der Bildaufnahmevorrichtungen 122, 124 und 126, der Kamerahalterung 370 und des Blendschutzes 380 beschränkt. 3C ist eine Veranschaulichung der in 3B gezeigten Kamerahalterung 370 aus einer frontal Perspektive.
  • Für einen Fachmann, der den Vorteil dieser Offenbarung hat, versteht es sich, dass zahlreiche Variationen und/oder Modifikationen an den vorstehenden offenbarten Ausführungsformen vorgenommen werden können. Zum Beispiel sind nicht alle Komponenten für den Betrieb des Systems 100 wesentlich. Ferner kann sich eine beliebige Komponente in einem beliebigen geeigneten Teil des Systems 100 befinden, und die Komponenten können in einer Vielzahl von Konfigurationen neu angeordnet werden, wenn sie die Funktionalität der offenbarten Ausführungsformen bereitstellen. Daher sind die vorstehenden Konfigurationen Beispiele, und unabhängig von den vorstehend erörterten Konfigurationen kann das System 100 einen breiten Funktionsumfang bereitstellen, um die Umgebung des Fahrzeugs 200 zu analysieren und das Fahrzeug 200 als Reaktion auf die Analyse zu navigieren.
  • Wie nachstehend ausführlicher und konsistent mit verschiedenen offenbarten Ausführungsformen erörtert wird, kann das System 100 eine Vielzahl von Merkmalen bereitstellen, die zum autonomen Fahren und/oder einer Fahrerassistenztechnologie in Beziehung stehen. Zum Beispiel kann das System 100 Bilddaten, Positionsdaten (z. B. GPS-Positionsinformationen), Kartendaten, Geschwindigkeitsdaten und/oder Daten von im Fahrzeug 200 beinhalteten Sensoren analysieren. Das System 100 kann die Daten zur Analyse zum Beispiel aus der Bilderfassungseinheit 120, dem Positionssensor 130 und anderen Sensoren erheben. Ferner kann das System 100 die erhobenen Daten analysieren, um zu bestimmen, ob das Fahrzeug 200 eine bestimmte Aktion ausführen sollte oder nicht, und dann die bestimmte Aktion ohne menschliches Eingreifen automatisch ausführen. Wenn das Fahrzeug 200 zum Beispiel ohne menschliches Eingreifen navigiert, kann das System 100 das Bremsen, die Beschleunigung und/oder das Lenken des Fahrzeugs 200 automatisch steuern (z. B. durch Senden von Steuersignalen zum Drosselsystem 220 und/oder zum Bremssystem 230 und/oder zum Lenksystem 240). Ferner kann das System 100 die erhobenen Daten analysieren und Warnungen und/oder Alarmmeldungen an Fahrzeuginsassen basierend auf der Analyse der erhobenen Daten ausgeben. Zusätzliche Details in Bezug auf die verschiedenen Ausführungsformen, die vom System 100 bereitgestellt werden, werden nachstehend bereitgestellt.
  • Nach vom gerichtetes Multi-Bildgebungssystem
  • Wie vorstehend erörtert worden ist, kann das System 100 eine Fahrtunterstützungsfunktionalität bereitstellen, die ein Multi-Kamera-System verwendet. Das Multi-Kamera-System kann eine oder mehrere Kameras verwenden, die in die Vorwärtsrichtung eines Fahrzeugs gerichtet sind. In anderen Ausführungsformen kann das Multi-Kamera-System eine oder mehrere Kameras beinhalten, die zur Seite eines Fahrzeugs oder zum Heck des Fahrzeugs gerichtet sind. In einer Ausführungsform kann das System 100 zum Beispiel ein Zwei-Kamera-Bildgebungssystem verwenden, wobei eine erste Kamera und eine zweite Kamera (z. B. die Bildaufnahmevorrichtungen 122 und 124) an der Vorderseite und/oder den Seiten eines Fahrzeugs (z. B. des Fahrzeugs 200) positioniert sein können. Die erste Kamera kann ein Sichtfeld aufweisen, das größer als, kleiner als oder teilweise überlappend mit dem Sichtfeld der zweiten Kamera ist. Zusätzlich kann die erste Kamera mit einem ersten Bildprozessor verbunden sein, um eine monokulare Bildanalyse von Bildern durchzuführen, die von der ersten Kamera bereitgestellt werden, und die zweite Kamera kann mit einem zweiten Bildprozessor verbunden sein, um eine monokulare Bildanalyse von Bildern durchzuführen, die von der zweiten Kamera bereitgestellt werden. Die Ausgaben (z. B. verarbeitete Informationen) des ersten und zweiten Bildprozessors können kombiniert werden. In einigen Ausführungsformen kann der zweite Bildprozessor Bilder sowohl aus der ersten Kamera als auch aus der zweiten Kamera empfangen, um Stereoanalyse durchzuführen. In einer anderen Ausführungsform kann das System 100 ein Drei-Kamera-Bildgebungssystem verwenden, wobei jede der Kameras ein anderes Sichtfeld aufweist. Ein solches System kann daher Entscheidungen basierend auf Informationen treffen, die anhand von Objekten abgeleitet werden, die sich in variierenden Distanzen sowohl vor als auch neben dem Fahrzeug befinden. Verweise auf eine monokulare Bildanalyse können sich auf Fälle beziehen, in denen Bildanalyse basierend auf Bildern durchgeführt wird, die aus einem einzelnen Blickpunkt (z. B. aus einer einzelnen Kamera) aufgenommen werden. Eine Stereobildanalyse kann sich auf Fälle beziehen, in denen eine Bildanalyse basierend auf zwei oder mehr Bildern durchgeführt wird, die mit einer oder mehreren Variationen eines Bildaufnahmeparameters aufgenommen werden. Zum Beispiel können aufgenommene Bilder, die zum Durchführen von Stereobildanalyse geeignet sind, Bilder beinhalten, die aufgenommen werden: aus zwei oder mehr unterschiedlichen Positionen, aus unterschiedlichen Sichtfeldern, unter Verwendung unterschiedlicher Brennweiten, zusammen mit Parallaxeninformationen usw.
  • Zum Beispiel kann das System 100 in einer Ausführungsform 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 ausgewählt sind, usw.), die Bildaufnahmevorrichtung 124 kann ein breites 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 fungieren. Die Bildaufnahmevorrichtungen 122, 124 und 126 können hinter dem Rückspiegel 310 positioniert sein und im Wesentlichen nebeneinander positioniert sein (z. B. 6 cm voneinander entfernt). Ferner können in einigen Ausführungsformen, wie vorstehend erörtert, eine oder mehrere der Bildaufnahmevorrichtungen 122, 124 und 126 hinter dem Blendschutz 380 montiert sein, der bündig an der Windschutzscheibe des Fahrzeugs 200 anliegt. Eine solche Abschirmung kann dazu fungieren, den Einfluss beliebiger Reflexionen aus dem Inneren des Fahrzeugs auf die Bildaufnahmevorrichtungen 122, 124 und 126 zu minimieren.
  • Wie vorstehend in Verbindung mit 3B und 3C erörtert worden ist, kann in einer anderen Ausführungsform die Kamera mit breitem Sichtfeld (z. B. die Bildaufnahmevorrichtung 124 im vorstehenden Beispiel) niedriger als die Kameras mit engem und Hauptsichtfeld (z. B. die Bildaufnahmevorrichtungen 122 und 126 im vorstehenden Beispiel) montiert sein. Diese Konfiguration kann eine freie Sichtlinie aus der Kamera mit breitem Sichtfeld bereitstellen. Um Reflexionen zu reduzieren, können die Kameras nahe der Windschutzscheibe des Fahrzeugs 200 montiert sein und können Polarisatoren an den Kameras beinhalten, um reflektiertes Licht zu dämpfen.
  • Ein Drei-Kamera-System kann bestimmte Leistungsmerkmale bereitstellen. Zum Beispiel können einige Ausführungsformen eine Fähigkeit beinhalten, die Detektion von Objekten durch eine Kamera basierend auf Detektionsergebnissen aus einer anderen Kamera zu validieren. In der vorstehend erörterten Drei-Kamera-Konfiguration kann die Verarbeitungseinheit 110 zum Beispiel drei Verarbeitungsvorrichtungen (z. B. drei EyeQ-Serien von Prozessorchips, wie vorstehend erörtert) beinhalten, wobei jede Verarbeitungsvorrichtung für die Verarbeitung von Bildern dediziert ist, die von einer oder mehreren der Bildaufnahmevorrichtungen 122, 124 und 126 aufgenommen wurden.
  • Bei einem Drei-Kamera-System kann eine erste Verarbeitungsvorrichtung Bilder sowohl aus der Hauptkamera als auch aus der Kamera mit engem Sichtfeld empfangen und Bildverarbeitung der Kamera mit engem FOV durchführen, um zum Beispiel 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 aus der Hauptkamera und der engen Kamera berechnen und eine 3D-Rekonstruktion der Umgebung des Fahrzeugs 200 erstellen. Die erste Verarbeitungsvorrichtung kann dann die 3D-Rekonstruktion mit 3D-Kartendaten oder mit 3D-Informationen kombinieren, die basierend auf Informationen aus einer anderen Kamera berechnet wurden.
  • Die zweite Verarbeitungsvorrichtung kann Bilder aus der Hauptkamera empfangen und eine Bildverarbeitung durchfü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. Struktur aus Bewegung) erstellen. Die zweite Verarbeitungsvorrichtung kann die 3D-Struktur-aus-Bewegung-Rekonstruktion zur ersten Verarbeitungsvorrichtung senden, damit sie mit den 3D-Stereobildern kombiniert wird.
  • Die dritte Verarbeitungsvorrichtung kann Bilder aus der Kamera mit breitem 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 zu identifizieren, die sich im Bild bewegen, wie etwa Fahrzeuge, die die Fahrspur wechseln, Fußgänger usw.
  • In einigen Ausführungsformen kann das Vorliegen von Strömen von bildbasierten Informationen, die unabhängig aufgenommen und verarbeitet worden sind, eine Gelegenheit zum Bereitstellen von Redundanz im System bereitstellen. Eine solche Redundanz kann zum Beispiel beinhalten, eine erste Bildaufnahmevorrichtung und die Bilder, die von dieser Vorrichtung verarbeitet werden, zu verwenden, um Informationen zu validieren und/oder zu ergänzen, die durch Aufnehmen und Verarbeiten von Bildinformationen aus mindestens einer zweiten Bildaufnahmevorrichtung erhalten werden.
  • In einigen Ausführungsformen kann das System 100 zwei Bildaufnahmevorrichtungen (z. B. die Bildaufnahmevorrichtungen 122 und 124) verwenden, um Navigationsunterstützung für das Fahrzeug 200 bereitzustellen, und eine dritte Bildaufnahmevorrichtung (z. B. die Bildaufnahmevorrichtung 126) verwenden, um Redundanz bereitzustellen und die Analyse von Daten zu validieren, die aus den anderen beiden Bildaufnahmevorrichtungen empfangen werden. Zum Beispiel können in einer solchen Konfiguration die Bildaufnahmevorrichtungen 122 und 124 Bilder für Stereoanalyse durch das System 100 zum Navigieren des Fahrzeugs 200 bereitstellen, während die Bildaufnahmevorrichtung 126 Bilder für monokulare Analyse durch das System 100 bereitstellen kann, um Redundanz und Validierung von Informationen bereitzustellen, die basierend auf Bildern erhalten werden, die von der Bildaufnahmevorrichtung 122 und/oder der Bildaufnahmevorrichtung 124 aufgenommen wurden. Das heißt, die Bildaufnahmevorrichtung 126 (und eine entsprechende Verarbeitungsvorrichtung) kann als ein redundantes Subsystem zum Bereitstellen einer Überprüfung der Analyse betrachtet werden, die von den Bildaufnahmevorrichtungen 122 und 124 abgeleitet wurde (z. B., um ein automatisches Notbremssystem (AEB-System) bereitzustellen). Des Weiteren können in einigen Ausführungsformen Redundanz und Validierung von empfangenen Daten basierend auf Informationen ergänzt werden, die aus einem oder mehreren Sensoren empfangen werden (z. B. Radar, Lidar, akustische Sensoren, Informationen, die aus einem oder mehreren Sendeempfängern außerhalb eines Fahrzeugs empfangen werden usw.).
  • Ein Fachmann wird erkennen, dass die vorstehenden Kamerakonfigurationen, Kameraplatzierungen, Anzahl von Kameras, Kameraorte usw. nur Beispiele sind. Diese Komponenten und andere, die in Bezug auf das Gesamtsystem beschrieben werden, können in einer Vielzahl von unterschiedlichen Konfigurationen zusammengefügt und verwendet werden, ohne vom Schutzbereich der offenbarten Ausführungsformen abzuweichen. Weitere Details in Bezug auf die Verwendung eines Multi-Kamera-Systems, um eine Fahrerassistenzfunktionalität und/oder autonome Fahrzeugfunktionalität bereitzustellen, folgen nachstehend.
  • 4 ist ein beispielhaftes Funktionsblockdiagramm des Speichers 140 und/oder 150, der mit Anweisungen zum Durchführen einer oder mehrerer Operationen gespeichert/programmiert werden kann, die mit den offenbarten Ausführungsformen konsistent sind. Obwohl sich das Folgende auf den Speicher 140 bezieht, wird ein Fachmann erkennen, dass Anweisungen im Speicher 140 und/oder 150 gespeichert werden können.
  • Wie in 4 gezeigt wird, kann der Speicher 140 ein monokulares Bildanalysemodul 402, ein Stereobildanalysemodul 404, ein Geschwindigkeits- und Beschleunigungsmodul 406 und ein Navigationsreaktionsmodul 408 speichern. Die offenbarten Ausführungsformen sind nicht auf eine beliebige spezielle Konfiguration des Speichers 140 beschränkt. Ferner können der Anwendungsprozessor 180 und/oder der Bildprozessor 190 die Anweisungen ausführen, die in einem beliebigen der Module 402, 404, 406 und 408 gespeichert sind, die im Speicher 140 beinhaltet sind. Ein Fachmann wird verstehen, dass sich in den folgenden Erörterungen Verweise auf die Verarbeitungseinheit 110 auf den Anwendungsprozessor 180 und den Bildprozessor 190 einzeln oder gemeinsam beziehen können. Dementsprechend können Schritte eines beliebigen der folgenden Prozesse von einer oder mehreren Verarbeitungsvorrichtungen durchgeführt werden.
  • In einer Ausführungsform kann das monokulare Bildanalysemodul 402 Anweisungen (wie etwa Computer Vision Software) speichern, die bei Ausführung durch die Verarbeitungseinheit 110 monokulare Bildanalyse eines Satzes von Bildern durchführen, der von einer der Bildaufnahmevorrichtungen 122, 124 und 126 erfasst wurde. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 Informationen aus einem Satz von Bildern mit zusätzlichen sensorischen Informationen (z. B. Informationen aus Radar, Lidar usw.) kombinieren, um die monokulare Bildanalyse durchzuführen. Wie in Verbindung mit den nachstehenden 5A - 5D beschrieben wird, kann das monokulare Bildanalysemodul 402 Anweisungen zum Detektieren eines Satzes von Merkmalen innerhalb des Satzes von Bildern beinhalten, wie etwa Fahrspurmarkierungen, Fahrzeuge, Fußgänger, Verkehrszeichen, Autobahnausfahrten, Ampeln, gefährliche Objekte und ein beliebiges anderes Merkmal, das mit einer Umgebung eines Fahrzeugs assoziiert ist. Basierend auf der Analyse kann das System 100 (z. B. über die Verarbeitungseinheit 110) eine oder mehrere Navigationsreaktionen im Fahrzeug 200 veranlassen, wie etwa ein Abbiegen, einen Fahrspurwechsel, eine Änderung der Beschleunigung und dergleichen, wie nachstehend in Verbindung mit dem Navigationsreaktionsmodul 408 erörtert wird.
  • In einer Ausführungsform kann das Stereobildanalysemodul 404 Anweisungen (wie etwa Computer Vision Software) speichern, die bei Ausführung durch die Verarbeitungseinheit 110 Stereobildanalyse des ersten und zweiten Satzes von Bildern durchführen, die von einer Kombination von Bildaufnahmevorrichtungen erfasst werden, die aus einer beliebigen der Bildaufnahmevorrichtungen 122, 124 und 126 ausgewählt worden sind. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 Informationen aus dem ersten und zweiten Satz von Bildern mit zusätzlichen sensorischen Informationen (z. B. Informationen aus Radar) kombinieren, um die Stereobildanalyse durchzuführen. Zum Beispiel kann das Stereobildanalysemodul 404 Anweisungen zum Durchführen von Stereobildanalyse basierend auf einem ersten Satz von Bildern, die von der Bildaufnahmevorrichtung 124 erfasst werden, und einem zweiten Satz von Bildern, die von der Bildaufnahmevorrichtung 126 erfasst werden, beinhalten. Wie in Verbindung mit der nachstehenden 6 beschrieben wird, kann das Stereobildanalysemodul 404 Anweisungen zum Detektieren eines Satzes von Merkmalen innerhalb des ersten und zweiten Satzes von Bildern beinhalten, wie etwa Fahrspurmarkierungen, Fahrzeuge, Fußgänger, Verkehrszeichen, Autobahnausfahrten, Ampeln, gefährliche Objekte und dergleichen. Basierend auf der Analyse kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen im Fahrzeug 200 veranlassen, wie etwa ein Abbiegen, einen Fahrspurwechsel, eine Änderung der Beschleunigung und dergleichen, wie nachstehend in Verbindung mit dem Navigationsreaktionsmodul 408 erörtert wird. Des Weiteren kann das Stereobildanalysemodul 404 in einigen Ausführungsformen Techniken implementieren, die mit einem trainierten System (wie etwa einem neuronalen Netzwerk oder einem tiefen neuronalen Netzwerk) oder einem untrainierten System assoziiert sind, wie etwa einem System, das dazu konfiguriert sein kann, Computer Vision-Algorithmen zu verwenden, um Objekte in einer Umgebung zu detektieren und/oder zu kennzeichnen, aus der sensorische Informationen aufgenommen und verarbeitet wurden. In einer Ausführungsform können das Stereobildanalysemodul 404 und/oder andere Bildverarbeitungsmodule dazu konfiguriert sein, eine Kombination eines trainierten und eines untrainierten Systems zu verwenden.
  • In einer Ausführungsform kann das Geschwindigkeits- und Beschleunigungsmodul 406 Software speichern, die dazu konfiguriert ist, Daten zu analysieren, die aus einer oder mehreren Rechen- und elektromechanischen Vorrichtungen im Fahrzeug 200 empfangen werden, die dazu konfiguriert sind, eine Änderung der Geschwindigkeit und/oder Beschleunigung des Fahrzeugs 200 zu veranlassen. Zum Beispiel kann die Verarbeitungseinheit 110 Anweisungen ausführen, die mit dem Geschwindigkeits- und Beschleunigungsmodul 406 assoziiert sind, um eine Zielgeschwindigkeit für das Fahrzeug 200 basierend auf Daten zu berechnen, die aus der Ausführung des monokularen Bildanalysemoduls 402 und/oder des Stereobildanalysemoduls 404 abgeleitet werden. Solche Daten können zum Beispiel eine Zielposition, -geschwindigkeit und/oder -beschleunigung, die Position und/oder Geschwindigkeit des Fahrzeugs 200 relativ zu einem Fahrzeug, Fußgänger oder Straßenobjekt in der Nähe, Positionsinformationen für das Fahrzeug 200 relativ zu Fahrspurmarkierungen der Straße und dergleichen beinhalten. Zusätzlich kann die Verarbeitungseinheit 110 eine Zielgeschwindigkeit für das Fahrzeug 200 basierend auf sensorischen Eingaben (z. B. Informationen aus Radar) und Eingaben aus anderen Systemen des Fahrzeugs 200, wie etwa 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 zum Drosselsystem 220, Bremssystem 230 und/oder Lenksystem 240 des Fahrzeugs 200 übertragen, um eine Änderung der Geschwindigkeit und/oder Beschleunigung auszulösen, indem sie zum Beispiel die Bremse physisch niederdrückt oder das Gaspedal des Fahrzeugs 200 freigibt.
  • In einer Ausführungsform kann das Navigationsreaktionsmodul 408 Software speichern, die durch die Verarbeitungseinheit 110 ausführbar ist, um eine gewünschte Navigationsreaktion basierend auf Daten zu bestimmen, die aus der Ausführung des monokularen Bildanalysemoduls 402 und/oder des Stereobildanalysemoduls 404 abgeleitet werden. Solche Daten können Positions- und Geschwindigkeitsinformationen beinhalten, die mit Fahrzeugen, Fußgängern und Straßenobjekten in der Nähe, Zielpositionsinformationen für das Fahrzeug 200 und dergleichen assoziiert sind. 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 basieren, die durch die Ausführung des monokularen Bildanalysemoduls 402 und/oder des Stereobildanalysemoduls 404 detektiert werden. Das Navigationsreaktionsmodul 408 kann auch eine gewünschte Navigationsreaktion basierend auf sensorischen Eingaben (z. B. Informationen aus Radar) und Eingaben aus anderen Systemen des Fahrzeugs 200, wie etwa 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 zum Drosselsystem 220, Bremssystem 230 und Lenksystem 240 des Fahrzeugs 200 übertragen, um eine gewünschte Navigationsreaktion auszulösen, indem sie zum Beispiel das Lenkrad des Fahrzeugs 200 dreht, um eine Drehung um einen vorbestimmten Winkel zu erreichen. 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 Geschwindigkeitsänderung des Fahrzeugs 200 zu berechnen.
  • Des Weiteren können beliebige der hierin offenbarten Module (z. B. die Module 402, 404 und 406) Techniken implementieren, die mit einem trainierten System (wie etwa einem neuronalen Netzwerk oder einem tiefen neuronalen Netzwerk) oder einem untrainierten System assoziiert sind.
  • 5A ist ein Flussdiagramm, das einen beispielhaften Prozess 500A zum Veranlassen einer oder mehrerer Navigationsreaktionen basierend auf monokularer Bildanalyse zeigt, konsistent mit den offenbarten Ausführungsformen. Im Schritt 510 kann die Verarbeitungseinheit 110 eine Vielzahl von Bildern über die Datenschnittstelle 128 zwischen der Verarbeitungseinheit 110 und der Bilderfassungseinheit 120 empfangen. So kann beispielsweise eine Kamera, die in der Bilderfassungseinheit 120 beinhaltet ist (wie etwa die Bildaufnahmevorrichtung 122 mit dem Sichtfeld 202), eine Vielzahl von Bildern eines Gebiets vor dem Fahrzeug 200 (oder zum Beispiel neben oder hinter einem Fahrzeug) aufnehmen und sie über eine Datenverbindung (z. B. digital, drahtgebunden, USB, drahtlos, Bluetooth usw.) zur Verarbeitungseinheit 110 übertragen. Die Verarbeitungseinheit 110 kann das monokulare Bildanalysemodul 402 ausführen, um die Vielzahl von Bildern im Schritt 520 zu analysieren, wie in Verbindung mit den nachstehenden 5B - 5D ausführlicher beschrieben wird. Durch Durchführen der Analyse kann die Verarbeitungseinheit 110 einen Satz von Merkmalen innerhalb des Satzes von Bildern detektieren, wie etwa Fahrspurmarkierungen, Fahrzeuge, Fußgänger, Verkehrszeichen, Autobahnausfahrten, Ampeln und dergleichen.
  • Die Verarbeitungseinheit 110 kann auch das monokulare Bildanalysemodul 402 ausführen, um verschiedene Straßengefahren im Schritt 520 zu detektieren, wie etwa zum Beispiel Teile eines Lkw-Reifens, umgefallene Verkehrszeichen, verlorene Ladung, kleine Tiere und dergleichen. Straßengefahren können in Struktur, Form, Größe und Farbe variieren, was die Detektion solcher Gefahren schwieriger machen kann. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 das monokulare Bildanalysemodul 402 ausführen, um eine Multi-Einzelbild-Analyse an der Vielzahl von Bildern durchzuführen, um Straßengefahren zu detektieren. Zum Beispiel kann die Verarbeitungseinheit 110 die Kamerabewegung zwischen aufeinanderfolgenden Einzelbildern schätzen und die Disparitäten in Pixeln zwischen den Einzelbildern berechnen, um eine 3D-Karte der Straße zu erstellen. Die Verarbeitungseinheit 110 kann dann die 3D-Karte verwenden, um die Straßenoberfläche sowie Gefahren zu detektieren, die über der Straßenoberfläche vorhanden sind.
  • Im Schritt 530 kann die Verarbeitungseinheit 110 das Navigationsreaktionsmodul 408 ausführen, um eine oder mehrere Navigationsreaktionen im Fahrzeug 200 basierend auf der Analyse, die im Schritt 520 durchgeführt wurde, und den Techniken, wie sie vorstehend in Verbindung mit 4 beschrieben wurden, zu veranlassen. Navigationsreaktionen können zum Beispiel ein Abbiegen, einen Fahrspurwechsel, eine Änderung der Beschleunigung und dergleichen beinhalten. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 Daten verwenden, die aus der Ausführung des Geschwindigkeits- und Beschleunigungsmoduls 406 abgeleitet werden, um die eine oder die mehreren Navigationsreaktionen zu veranlassen. Zusätzlich können mehrere Navigationsreaktionen gleichzeitig, nacheinander oder in einer beliebigen Kombination davon stattfinden. Beispielsweise kann die Verarbeitungseinheit 110 das Fahrzeug 200 veranlassen, eine Fahrspur zu wechseln und dann zu beschleunigen, indem sie zum Beispiel Steuersignale sequenziell zum Lenksystem 240 und Drosselsystem 220 des Fahrzeugs 200 überträgt. Alternativ kann die Verarbeitungseinheit 110 das Fahrzeug 200 veranlassen, zu bremsen, während es gleichzeitig die Fahrspur wechselt, indem sie zum Beispiel Steuersignale gleichzeitig zum Bremssystem 230 und Lenksystem 240 des Fahrzeugs 200 überträgt.
  • 5B ist ein Flussdiagramm, das einen beispielhaften Prozess 500B zum Detektieren eines oder mehrerer Fahrzeuge und/oder Fußgänger in einem Satz von Bildern zeigt, konsistent mit offenbarten Ausführungsformen. Die Verarbeitungseinheit 110 kann das monokulare Bildanalysemodul 402 ausführen, um den Prozess 500B zu implementieren. Im Schritt 540 kann die Verarbeitungseinheit 110 einen Satz von Kandidatenobjekten bestimmen, die mögliche Fahrzeuge und/oder Fußgänger repräsentieren. Zum Beispiel kann die Verarbeitungseinheit 110 ein oder mehrere Bilder scannen, die Bilder mit einem oder mehreren vorbestimmten Mustern vergleichen und innerhalb jedes Bilds mögliche Orte identifizieren, die interessierende Objekte enthalten können (z. B. Fahrzeuge, Fußgänger oder Abschnitte davon). Die vorbestimmten Muster können so ausgestaltet sein, dass eine hohe Rate von „falschen Treffern“ („false hits“) und eine niedrige Rate von „Aussetzern“ („misses“) erreicht wird. Zum Beispiel kann die Verarbeitungseinheit 110 einen niedrigen Schwellenwert der Ähnlichkeit mit vorbestimmten Mustern verwenden, um Kandidatenobjekte als mögliche Fahrzeuge oder Fußgänger zu identifizieren. Dies kann es der Verarbeitungseinheit 110 gestatten, die Wahrscheinlichkeit des Verfehlens (z. B. Nicht-Identifizierens) eines Kandidatenobjekts, das ein Fahrzeug oder einen Fußgänger repräsentiert, zu reduzieren.
  • Im Schritt 542 kann die Verarbeitungseinheit 110 den Satz von Kandidatenobjekten filtern, um bestimmte Kandidaten (z. B. irrelevante oder weniger relevante Objekte) basierend auf Klassifizierungskriterien auszuschließen. Solche Kriterien können aus verschiedenen Eigenschaften abgeleitet werden, die mit Objekttypen assoziiert sind, die in einer Datenbank (z. B. einer im Speicher 140 gespeicherten Datenbank) gespeichert sind. Eigenschaften können Objektform, Abmessungen, Textur, Position (z. B. relativ zum Fahrzeug 200) und dergleichen beinhalten. Somit kann die Verarbeitungseinheit 110 einen oder mehrere Sätze von Kriterien verwenden, um falsche Kandidaten aus dem Satz von Kandidatenobjekten zu verwerfen.
  • Im Schritt 544 kann die Verarbeitungseinheit 110 mehrere Einzelbilder analysieren, um zu bestimmen, ob Objekte in dem Satz von Kandidatenobjekten Fahrzeuge und/oder Fußgänger repräsentieren. Zum Beispiel kann die Verarbeitungseinheit 110 ein detektiertes Kandidatenobjekt über aufeinanderfolgende Einzelbilder verfolgen und Einzelbild-für-Einzelbild-Daten akkumulieren, die mit dem detektierten Objekt assoziiert sind (z. B. Größe, Position relativ zum Fahrzeug 200 usw.). Zusätzlich kann die Verarbeitungseinheit 110 Parameter für das detektierte Objekt schätzen und die Einzelbild-für-Einzelbild-Positionsdaten des Objekts mit einer vorhergesagten Position vergleichen.
  • Im Schritt 546 kann die Verarbeitungseinheit 110 einen Satz von Messwerten für die detektierten Objekte erstellen. Solche Messwerte können zum Beispiel Positions-, Geschwindigkeits- und Beschleunigungswerte (relativ zum Fahrzeug 200) beinhalten, die mit den detektierten Objekten assoziiert sind. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 die Messwerte basierend auf Schätztechniken unter Verwendung einer Serie von zeitbasierten Beobachtungen, wie etwa Kalman-Filter oder lineare quadratische Schätzung (LQE, Linear Quadratic Estimation), und/oder basierend auf verfügbaren Modellierungsdaten für unterschiedliche Objekttypen (z. B. Autos, Lastwagen, Fußgänger, Fahrräder, Straßenzeichen usw.) erstellen. Die Kalman-Filter können auf einem Messwert eines Maßstabs eines Objekts basieren, wobei der Maßstabsmesswert proportional zu einer Zeit bis zur Kollision ist (z. B. dem Zeitraum, den das Fahrzeug 200 benötigt, um das Objekt zu erreichen). Somit kann die Verarbeitungseinheit 110 durch Durchführen der Schritte 540 - 546 Fahrzeuge und Fußgänger identifizieren, die innerhalb des Satzes von aufgenommenen Bildern vorkommen, und Informationen (z. B. Position, Geschwindigkeit, Größe) ableiten, die mit den Fahrzeugen und Fußgängern assoziiert sind. Basierend auf der Identifizierung und den abgeleiteten Informationen kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen im Fahrzeug 200 veranlassen, wie vorstehend in Verbindung mit 5A beschrieben wird.
  • Im Schritt 548 kann die Verarbeitungseinheit 110 eine optische Flussanalyse von einem oder mehreren Bildern durchführen, um die Wahrscheinlichkeiten des Detektierens eines „falschen Treffers“ („false hit“) und des Verfehlens eines Kandidatenobjekts, das ein Fahrzeug oder einen Fußgänger repräsentiert, zu reduzieren. Die optische Flussanalyse kann sich zum Beispiel auf das Analysieren von Bewegungsmustern relativ zum Fahrzeug 200 in einem oder mehreren Bildern beziehen, die mit anderen Fahrzeugen und Fußgängern assoziiert sind und die sich von der Straßenoberflächenbewegung unterscheiden. Die Verarbeitungseinheit 110 kann die Bewegung von Kandidatenobjekten berechnen, indem sie die unterschiedlichen Positionen der Objekte über mehrere Einzelbilder beobachtet, die zu unterschiedlichen Zeiten aufgenommen werden. Die Verarbeitungseinheit 110 kann die Positions- und Zeitwerte als Eingaben in mathematische Modelle zum Berechnen der Bewegung der Kandidatenobjekte verwenden. Somit kann die optische Flussanalyse ein anderes Verfahren zum Detektieren von Fahrzeugen und Fußgängern bereitstellen, die sich in der Nähe des Fahrzeugs 200 befinden. Die Verarbeitungseinheit 110 kann optische Flussanalyse in Kombination mit den Schritten 540 - 546 durchführen, um Redundanz zum Detektieren von Fahrzeugen und Fußgängern bereitzustellen und die Zuverlässigkeit des Systems 100 zu erhöhen.
  • 5C ist ein Flussdiagramm, das einen beispielhaften Prozess 500C zum Detektieren von Straßenmarkierungen und/oder Fahrspurgeometrieinformationen in einem Satz von Bildern zeigt, konsistent mit offenbarten Ausführungsformen. Die Verarbeitungseinheit 110 kann das monokulare Bildanalysemodul 402 ausführen, um den Prozess 500C zu implementieren. Im Schritt 550 kann die Verarbeitungseinheit 110 einen Satz von Objekten durch Scannen eines oder mehrerer Bilder detektieren. Um Segmente von Fahrspurmarkierungen, Fahrspurgeometrieinformationen und andere relevante Straßenmarkierungen zu detektieren, kann die Verarbeitungseinheit 110 den Satz von Objekten filtern, um diejenigen auszuschließen, die als irrelevant bestimmt wurden (z. B. kleinere Schlaglöcher, kleine Steine usw.). Im Schritt 552 kann die Verarbeitungseinheit 110 die im Schritt 550 detektierten Segmente gruppieren, die zu derselben Straßenmarkierung oder Fahrspurmarkierung gehören. Basierend auf der Gruppierung kann die Verarbeitungseinheit 110 ein Modell zum Repräsentieren der detektierten Segmente entwickeln, wie etwa ein mathematisches Modell.
  • Im Schritt 554 kann die Verarbeitungseinheit 110 einen Satz von Messwerten erstellen, die mit den detektierten Segmenten assoziiert sind. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Projektion der detektierten Segmente von der Bildebene auf die reale Ebene erstellen. Die Projektion kann unter Verwendung eines Polynoms 3. Grad charakterisiert werden, das Koeffizienten aufweist, die physischen Eigenschaften entsprechen, wie etwa die Position, Neigung, Krümmung und Krümmungsableitung der detektierten Straße. Beim Generieren der Projektion kann die Verarbeitungseinheit 110 Änderungen der Straßenoberfläche sowie Neigungs- und Rollraten, die mit dem Fahrzeug 200 assoziiert sind, berücksichtigen. Zusätzlich kann die Verarbeitungseinheit 110 die Straßenhöhe durch Analysieren von Positions- und Bewegungshinweisen, die auf der Straßenoberfläche vorhanden sind, modellieren. Ferner kann die Verarbeitungseinheit 110 die Neigungs- und Rollraten schätzen, die mit dem Fahrzeug 200 assoziiert sind, indem sie einen Satz von Merkmalspunkten in dem einen oder den mehreren Bildern verfolgt.
  • Im Schritt 556 kann die Verarbeitungseinheit 110 eine Multi-Einzelbild-Analyse durchführen, indem sie zum Beispiel die detektierten Segmente über aufeinanderfolgende Einzelbilder verfolgt und Einzelbild-für-Einzelbild-Daten akkumuliert, die mit detektierten Segmenten assoziiert sind. Wenn die Verarbeitungseinheit 110 Multi-Einzelbild-Analyse durchführt, kann der Satz von Messwerten, der im Schritt 554 erstellt wurde, zuverlässiger werden und mit einem zunehmend höheren Vertrauensniveau assoziiert werden. Somit kann die Verarbeitungseinheit 110 durch Durchführen der Schritte 550, 552, 554 und 556 Straßenmarkierungen identifizieren, die innerhalb des Satzes von aufgenommenen Bildern vorkommen, und Fahrspurgeometrieinformationen ableiten. Basierend auf der Identifizierung und den abgeleiteten Informationen kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen im Fahrzeug 200 veranlassen, wie vorstehend in Verbindung mit 5A beschrieben wird.
  • Im Schritt 558 kann die Verarbeitungseinheit 110 zusätzliche Informationsquellen berücksichtigen, um ein Sicherheitsmodell für das Fahrzeug 200 im Kontext seiner Umgebung weiterzuentwickeln. Die Verarbeitungseinheit 110 kann das Sicherheitsmodell verwenden, um einen Kontext zu definieren, in dem das System 100 das autonome Steuern des Fahrzeugs 200 auf sichere Weise ausführen kann. 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 Leitplanken und/oder allgemeine Straßenformbeschreibungen, die aus Kartendaten (wie etwa Daten aus der Kartendatenbank 160) extrahiert wurden, berücksichtigen. Durch Berücksichtigen zusätzlicher Informationsquellen kann die Verarbeitungseinheit 110 Redundanz zum Detektieren von Straßenmarkierungen und Fahrspurgeometrie bereitstellen und die Zuverlässigkeit des Systems 100 erhöhen.
  • 5D ist ein Flussdiagramm, das einen beispielhaften Prozess 500D zum Detektieren von Ampeln in einem Satz von Bildern zeigt, konsistent mit offenbarten Ausführungsformen. Die Verarbeitungseinheit 110 kann das monokulare Bildanalysemodul 402 ausführen, um den Prozess 500D zu implementieren. Im Schritt 560 kann die Verarbeitungseinheit 110 den Satz von Bildern scannen und Objekte identifizieren, die an Orten in den Bildern vorkommen, die wahrscheinlich Ampeln enthalten. Zum Beispiel kann die Verarbeitungseinheit 110 die identifizierten Objekte filtern, um einen Satz von Kandidatenobjekten zu erstellen, wobei jene Objekte ausgeschlossen werden, die wahrscheinlich nicht Ampeln entsprechen. Das Filtern kann basierend auf verschiedenen Eigenschaften erfolgen, die mit Ampeln assoziiert sind, wie etwa Form, Abmessungen, Textur, Position (z. B. relativ zum Fahrzeug 200) und dergleichen. Solche Eigenschaften können auf mehreren Beispielen von Ampeln und Verkehrssteuersignalen basieren und in einer Datenbank gespeichert sein. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Multi-Einzelbild-Analyse an dem Satz von Kandidatenobjekten durchführen, die mögliche Ampeln wiedergeben. Zum Beispiel kann die Verarbeitungseinheit 110 die Kandidatenobjekte über aufeinanderfolgende Einzelbilder verfolgen, die reale Position der Kandidatenobjekte schätzen und jene Objekte herausfiltern, die sich bewegen (die wahrscheinlich keine Ampeln sind). In einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Farbanalyse an den Kandidatenobjekten durchführen und die relative Position der detektierten Farben identifizieren, die innerhalb möglicher Ampeln vorkommen.
  • Im Schritt 562 kann die Verarbeitungseinheit 110 die Geometrie einer Kreuzung analysieren. Die Analyse kann auf einer beliebigen Kombination von Folgenden basieren: (i) der Anzahl von Fahrspuren, die auf beiden Seiten des Fahrzeugs 200 detektiert werden, (ii) Markierungen (wie etwa Pfeilmarkierungen), die auf der Straße detektiert werden, und (iii) Beschreibungen der Kreuzung, die aus Kartendaten (wie etwa Daten aus der Kartendatenbank 160) extrahiert werden. Die Verarbeitungseinheit 110 kann die Analyse unter Verwendung von Informationen durchführen, die aus der Ausführung des monokularen Analysemoduls 402 abgeleitet werden. Zusätzlich kann die Verarbeitungseinheit 110 eine Entsprechung zwischen den Ampeln bestimmen, die im Schritt 560 detektiert werden, und den Fahrspuren, die in der Nähe des Fahrzeugs 200 vorkommen.
  • Wenn sich das Fahrzeug 200 der Kreuzung nähert, kann die Verarbeitungseinheit 110 im Schritt 564 das Vertrauensniveau aktualisieren, das mit der analysierten Kreuzungsgeometrie und den detektierten Ampeln assoziiert ist. Beispielsweise kann die Anzahl von Ampeln, deren Vorkommen an der Kreuzung geschätzt wird, im Vergleich zu der Anzahl, die tatsächlich an der Kreuzung vorkommt, das Vertrauensniveau beeinflussen. Somit kann die Verarbeitungseinheit 110 basierend auf dem Vertrauensniveau das Steuern an den Fahrer des Fahrzeugs 200 delegieren, um die Sicherheitsbedingungen zu verbessern. Durch Durchführen der Schritte 560, 562 und 564 kann die Verarbeitungseinheit 110 Ampeln identifizieren, die innerhalb des Satzes von aufgenommenen Bildern vorkommen, und Kreuzungsgeometrieinformationen analysieren. Basierend auf der Identifizierung und der Analyse kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen im Fahrzeug 200 veranlassen, wie vorstehend in Verbindung mit 5A beschrieben wird.
  • 5E ist ein Flussdiagramm, das einen beispielhaften Prozess 500E zum Veranlassen einer oder mehrerer Navigationsreaktionen im Fahrzeug 200 basierend auf einem Fahrzeugweg zeigt, konsistent mit den offenbarten Ausführungsformen. Im Schritt 570 kann die Verarbeitungseinheit 110 einen Anfangsfahrzeugweg erstellen, der mit dem Fahrzeug 200 assoziiert ist. Der Fahrzeugweg kann unter Verwendung eines Satzes von Punkten repräsentiert werden, die in Koordinaten (x, z) ausgedrückt sind, und die Distanz di zwischen zwei Punkten in dem Satz von Punkten kann in den Bereich von 1 bis 5 Metern fallen. In einer Ausführungsform kann die Verarbeitungseinheit 110 den Anfangsfahrzeugweg unter Verwendung von zwei Polynomen erstellen, wie etwa linken und rechten Straßenpolynomen. Die Verarbeitungseinheit 110 kann den geometrischen Mittelpunkt zwischen den zwei Polynomen berechnen und jeden Punkt, der im resultierenden Fahrzeugweg beinhaltet ist, um einen vorbestimmten Versatz (z. B. einen intelligenten Fahrspurversatz) versetzen, falls vorhanden (ein Versatz von null kann dem Fahren in der Mitte einer Fahrspur entsprechen). Der Versatz kann in einer Richtung senkrecht zu einem Segment zwischen zwei beliebigen Punkten im Fahrzeugweg sein. In einer anderen 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 einen vorbestimmten Versatz (z. B. einen intelligenten Fahrspurversatz) zu versetzen.
  • Im Schritt 572 kann die Verarbeitungseinheit 110 den Fahrzeugweg aktualisieren, der im Schritt 570 erstellt wurde. Die Verarbeitungseinheit 110 kann den Fahrzeugweg, der im Schritt 570 erstellt wurde, unter Verwendung einer höheren Auflösung neu erstellen, so dass die Distanz dk zwischen zwei Punkten im Satz von Punkten, die den Fahrzeugweg repräsentieren, kleiner als die vorstehend beschriebene Distanz di ist. Zum Beispiel kann die Distanz dk im Bereich von 0,1 bis 0,3 Metern liegen. Die Verarbeitungseinheit 110 kann den Fahrzeugweg unter Verwendung eines parabolischen Spline-Algorithmus neu erstellen, der einen kumulativen Distanzvektor S ergeben kann, der der Gesamtlänge des Fahrzeugwegs entspricht (d. h. basierend auf dem Satz von Punkten, die den Fahrzeugweg repräsentieren).
  • Im Schritt 574 kann die Verarbeitungseinheit 110 einen Vorausschaupunkt (ausgedrückt in Koordinaten als (xl, zl)) basierend auf dem aktualisierten Fahrzeugweg bestimmen, der im Schritt 572 erstellt wurde. Die Verarbeitungseinheit 110 kann den Vorausschaupunkt aus dem kumulativen Distanzvektor S extrahieren, und der Vorausschaupunkt kann mit einer Vorausschaudistanz und einer Vorausschauzeit assoziiert sein. Die Vorausschaudistanz, die eine untere Grenze im Bereich von 10 bis 20 Metern aufweisen kann, kann als das Produkt der Geschwindigkeit des Fahrzeugs 200 und der Vorausschauzeit berechnet werden. Wenn zum Beispiel die Geschwindigkeit des Fahrzeugs 200 abnimmt, kann die Vorausschaudistanz ebenfalls abnehmen (z. B., bis sie die untere Grenze erreicht). Die Vorausschauzeit, die im Bereich von 0,5 bis 1,5 Sekunden liegen kann, kann umgekehrt proportional zur Verstärkung eines oder mehrerer Regelkreise sein, die mit dem Veranlassen einer Navigationsreaktion im Fahrzeug 200 assoziiert sind, wie etwa der Kursfehlerverfolgungs-Regelkreis. So kann zum Beispiel die Verstärkung des Kursfehlerverfolgungs-Regelkreises von der Bandbreite eines Gierratenregelkreises, eines Lenkaktuatorregelkreises, einer Fahrzeugseitendynamik und dergleichen abhängen. Je größer also die Verstärkung des Kursfehlerverfolgungs-Regelkreises ist, desto geringer ist die Vorausschauzeit.
  • Im Schritt 576 kann die Verarbeitungseinheit 110 einen Kursfehler und einen Gierratenbefehl basierend auf dem im Schritt 574 bestimmten Vorausschaupunkt bestimmen. Die Verarbeitungseinheit 110 kann den Kursfehler durch Berechnen des Arkustangens des Vorausschaupunkts bestimmen, z. B. arctan (xl/zl). Die Verarbeitungseinheit 110 kann den Gierratenbefehl als das Produkt des Kursfehlers und einer übergeordneten Regelungsverstärkung bestimmen. Die übergeordnete Regelungsverstärkung kann gleich sein: (2 / Vorausschauzeit), wenn die Vorausschaudistanz nicht an der unteren Grenze liegt. Andernfalls kann die übergeordnete Regelungsverstärkung gleich sein: (2 * Geschwindigkeit des Fahrzeugs 200 / Vorausschaudistanz).
  • 5F ist ein Flussdiagramm, das einen beispielhaften Prozess 500F zum Bestimmen zeigt, ob ein vorausfahrendes Fahrzeug die Fahrspur wechselt, konsistent mit den offenbarten Ausführungsformen. Im Schritt 580 kann die Verarbeitungseinheit 110 Navigationsinformationen bestimmen, die mit einem vorausfahrenden Fahrzeug (z. B. einem Fahrzeug, das vor dem Fahrzeug 200 fährt) assoziiert sind. Zum Beispiel kann die Verarbeitungseinheit 110 die Position, Geschwindigkeit (z. B. Richtung und Geschwindigkeit) und/oder die Beschleunigung des vorausfahrenden Fahrzeugs unter Verwendung der vorstehend in Verbindung mit 5A und 5B beschriebenen Techniken bestimmen. Die Verarbeitungseinheit 110 kann auch ein oder mehrere Straßenpolynome, einen Vorausschaupunkt (mit dem Fahrzeug 200 assoziiert) und/oder eine Schneckenspur (z. B. einen Satz von Punkten, die einen Weg beschreiben, den das vorausfahrende Fahrzeug nimmt) unter Verwendung der vorstehend in Verbindung mit 5E beschriebenen Techniken bestimmen.
  • Im Schritt 582 kann die Verarbeitungseinheit 110 die Navigationsinformationen analysieren, die im Schritt 580 bestimmt wurden. In einer Ausführungsform kann die Verarbeitungseinheit 110 die Distanz zwischen einer Schneckenspur und einem Straßenpolynom (z. B. entlang der Spur) berechnen. Wenn die Varianz dieser Distanz entlang der Spur einen vorbestimmten Schwellenwert überschreitet (zum Beispiel 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 Fahrspur wechselt. Im Fall, dass mehrere Fahrzeuge als vor dem Fahrzeug 200 fahrend detektiert werden, kann die Verarbeitungseinheit 110 die Schneckenspuren vergleichen, die mit jedem Fahrzeug assoziiert sind. Basierend auf dem Vergleich kann die Verarbeitungseinheit 110 bestimmen, dass ein Fahrzeug, dessen Schneckenspur nicht mit den Schneckenspuren der anderen Fahrzeuge übereinstimmt, wahrscheinlich die Fahrspur wechselt. Die Verarbeitungseinheit 110 kann zusätzlich die Krümmung der Schneckenspur (die mit dem vorausfahrenden Fahrzeug assoziiert ist) mit der erwarteten Krümmung des Straßensegments vergleichen, auf dem das vorausfahrende Fahrzeug fährt. Die erwartete Krümmung kann aus Kartendaten (z. B. Daten aus der Kartendatenbank 160), aus Straßenpolynomen, aus Schneckenspuren anderer Fahrzeuge, aus Vorwissen über die Straße und dergleichen extrahiert werden. Wenn die Differenz zwischen der Krümmung der Schneckenspur und der erwarteten Krümmung des Straßensegments einen vorbestimmten Schwellenwert überschreitet, kann die Verarbeitungseinheit 110 bestimmen, dass das vorausfahrende Fahrzeug wahrscheinlich die Fahrspur wechselt.
  • In einer anderen Ausführungsform kann die Verarbeitungseinheit 110 die momentane Position des vorausfahrenden Fahrzeugs mit dem Vorausschaupunkt (der mit dem Fahrzeug 200 assoziiert ist) über einen spezifischen Zeitraum (z. B. 0,5 bis 1,5 Sekunden) vergleichen. Wenn die Distanz zwischen der momentanen Position des vorausfahrenden Fahrzeugs und dem Vorausschaupunkt während des spezifischen Zeitraums variiert und die kumulative Summe der Variation einen vorbestimmten Schwellenwert überschreitet (zum 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 Fahrspur wechselt. In einer anderen Ausführungsform kann die Verarbeitungseinheit 110 die Geometrie der Schneckenspur analysieren, indem sie die seitliche Distanz, die entlang der Spur gefahren wurde, mit der erwarteten Krümmung der Schneckenspur vergleicht. Der erwartete Krümmungsradius kann gemäß der Berechnung bestimmt werden: (δZ 2 + δX 2) / 2 / (δX), wobei δX die gefahrene seitliche Distanz repräsentiert und δZ die zurückgelegte Längsdistanz repräsentiert. Wenn die Differenz zwischen der zurückgelegten seitlichen Distanz und der erwarteten Krümmung einen vorbestimmten Schwellenwert überschreitet (z. B. 500 bis 700 Meter), kann die Verarbeitungseinheit 110 bestimmen, dass das vorausfahrende Fahrzeug wahrscheinlich die Fahrspur wechselt. In einer anderen Ausführungsform kann die Verarbeitungseinheit 110 die Position des vorausfahrenden Fahrzeugs analysieren. Wenn die Position des vorausfahrenden Fahrzeugs ein Straßenpolynom verdeckt (z. B. das vorausfahrende Fahrzeug auf dem Straßenpolynom überlagert ist), kann die Verarbeitungseinheit 110 bestimmen, dass das vorausfahrende Fahrzeug wahrscheinlich die Fahrspur wechselt. Falls die Position des vorausfahrenden Fahrzeugs eine solche ist, dass ein anderes Fahrzeug vor dem vorausfahrenden Fahrzeug detektiert wird und die Schneckenspuren der zwei Fahrzeuge nicht parallel sind, kann die Verarbeitungseinheit 110 bestimmen, dass das (nähere) vorausfahrende Fahrzeug wahrscheinlich die Fahrspur wechselt.
  • Im Schritt 584 kann die Verarbeitungseinheit 110 basierend auf der im Schritt 582 durchgeführten Analyse bestimmen, ob das vorausfahrende Fahrzeug 200 die Fahrspur wechselt oder nicht. Zum Beispiel kann die Verarbeitungseinheit 110 die Bestimmung basierend auf einem gewichteten Mittel der einzelnen Analysen, die im Schritt 582 durchgeführt werden, vornehmen. Unter solch einem Schema kann zum Beispiel einer Entscheidung durch die Verarbeitungseinheit 110, dass das vorausfahrende Fahrzeug wahrscheinlich die Fahrspur wechselt, basierend auf einem speziellen Typ von Analyse ein Wert von „1“ (und „0“, um eine Bestimmung darzustellen, dass das vorausfahrende Fahrzeug wahrscheinlich die Fahrspur nicht wechselt) zugewiesen werden. Unterschiedlichen Analysen, die im Schritt 582 durchgeführt werden, können unterschiedliche Gewichtungen zugewiesen werden, und die offenbarten Ausführungsformen sind nicht auf eine beliebige spezielle Kombination von Analysen und Gewichtungen beschränkt.
  • 6 ist ein Flussdiagramm, das einen beispielhaften Prozess 600 zum Veranlassen einer oder mehrerer Navigationsreaktionen basierend auf Stereobildanalyse zeigt, konsistent mit offenbarten Ausführungsformen. Im Schritt 610 kann die Verarbeitungseinheit 110 eine erste und eine zweite Vielzahl von Bildern über die Datenschnittstelle 128 empfangen. Zum Beispiel können Kameras, die in der Bilderfassungseinheit 120 beinhaltet sind (wie etwa die Bildaufnahmevorrichtungen 122 und 124 mit den Sichtfeldern 202 und 204), eine erste und eine zweite Vielzahl von Bildern eines Gebiets vor dem Fahrzeug 200 aufnehmen und sie über eine digitale Verbindung (z. B. USB, drahtlos, Bluetooth usw.) zur Verarbeitungseinheit 110 übertragen. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 die erste und zweite Vielzahl von Bildern über zwei oder mehr Datenschnittstellen empfangen. Die offenbarten Ausführungsformen sind nicht auf beliebige spezielle Datenschnittstellenkonfigurationen oder -protokolle beschränkt.
  • Im Schritt 620 kann die Verarbeitungseinheit 110 das Stereobildanalysemodul 404 ausführen, um Stereobildanalyse der ersten und zweiten Vielzahl von Bildern durchzuführen, um eine 3D-Karte der Straße vor dem Fahrzeug zu erstellen und Merkmale innerhalb der Bilder zu detektieren, wie etwa Fahrspurmarkierungen, Fahrzeuge, Fußgänger, Verkehrszeichen, Autobahnausfahrten, Ampeln, Straßengefahren und dergleichen. Die Stereobildanalyse kann auf eine Weise durchgeführt werden, die den Schritten ähnlich ist, die vorstehend in Verbindung mit 5A - 5D beschrieben wird. Zum Beispiel kann die Verarbeitungseinheit 110 das Stereobildanalysemodul 404 ausführen, um Kandidatenobjekte (z. B. Fahrzeuge, Fußgänger, Straßenmarkierungen, Ampeln, Straßengefahren usw.) innerhalb der ersten und zweiten Vielzahl von Bildern zu detektieren, eine Teilmenge der Kandidatenobjekte basierend auf verschiedenen Kriterien herauszufiltern und eine Multi-Einzelbild-Analyse durchzuführen, Messwerte zu erstellen und ein Vertrauensniveau für die übrigen Kandidatenobjekte zu bestimmen. Beim Durchführen der vorstehenden Schritte kann die Verarbeitungseinheit 110 Informationen sowohl aus der ersten als auch aus der zweiten Vielzahl von Bildern berücksichtigen, und nicht nur Informationen aus einem Satz von Bildern allein. Zum Beispiel kann die Verarbeitungseinheit 110 die Differenzen in den Daten auf Pixelebene (oder anderen Datenteilmengen aus den beiden Strömen von aufgenommenen Bildern) für ein Kandidatenobjekt analysieren, das sowohl in der ersten als auch in der zweiten Vielzahl von Bildern vorkommt. Als ein anderes Beispiel kann die Verarbeitungseinheit 110 eine Position und/oder Geschwindigkeit eines Kandidatenobjekts (z. B. relativ zum Fahrzeug 200) schätzen, indem sie beobachtet, dass das Objekt in einer der Vielzahl von Bildern vorkommt, aber nicht in der anderen, oder relativ zu anderen Differenzen, die relativ zu Objekten vorhanden sein können, die in beiden Bildströmen vorkommen. Zum Beispiel können Position, Geschwindigkeit und/oder Beschleunigung relativ zum Fahrzeug 200 basierend auf Trajektorien, Positionen, Bewegungscharakteristiken usw. von Merkmalen bestimmt werden, die mit einem Objekt assoziiert sind, das in einem oder beiden der Bildströme vorkommt.
  • Im Schritt 630 kann die Verarbeitungseinheit 110 das Navigationsreaktionsmodul 408 ausführen, um eine oder mehrere Navigationsreaktionen im Fahrzeug 200 basierend auf der Analyse, die im Schritt 620 durchgeführt wurde, und den Techniken, wie sie vorstehend in Verbindung mit 4 beschrieben wurden, zu veranlassen. Navigationsreaktionen können zum Beispiel ein Abbiegen, einen Fahrspurwechsel, eine Änderung der Beschleunigung, eine Änderung der Geschwindigkeit, Bremsen und dergleichen beinhalten. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 Daten verwenden, die aus der Ausführung des Geschwindigkeits- und Beschleunigungsmoduls 406 abgeleitet werden, um die eine oder die mehreren Navigationsreaktionen zu veranlassen. Zusätzlich können mehrere Navigationsreaktionen gleichzeitig, nacheinander oder in einer beliebigen Kombination davon stattfinden.
  • 7 ist ein Flussdiagramm, das einen beispielhaften Prozess 700 zum Veranlassen einer oder mehrerer Navigationsreaktionen basierend auf einer Analyse von drei Sätzen von Bildern zeigt, konsistent mit offenbarten Ausführungsformen. Im Schritt 710 kann die Verarbeitungseinheit 110 eine erste, zweite und dritte Vielzahl von Bildern über die Datenschnittstelle 128 empfangen. Beispielsweise können Kameras, die in der Bilderfassungseinheit 120 beinhaltet sind (wie etwa die Bildaufnahmevorrichtungen 122, 124 und 126 mit den Sichtfeldern 202, 204 und 206), eine erste, zweite und dritte Vielzahl von Bildern eines Gebiets vor und/oder neben dem Fahrzeug 200 aufnehmen und sie über eine digitale Verbindung (z. B. USB, drahtlos, Bluetooth usw.) zur Verarbeitungseinheit 110 übertragen. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 die erste, zweite und dritte Vielzahl von Bildern über drei oder mehr Datenschnittstellen empfangen. Zum Beispiel kann jede der Bildaufnahmevorrichtungen 122, 124, 126 eine assoziierte Datenschnittstelle zum Kommunizieren von Daten zur Verarbeitungseinheit 110 aufweisen. Die offenbarten Ausführungsformen sind nicht auf beliebige spezielle Datenschnittstellenkonfigurationen oder -protokolle beschränkt.
  • Im Schritt 720 kann die Verarbeitungseinheit 110 die erste, zweite und dritte Vielzahl von Bildern analysieren, um Merkmale innerhalb der Bilder zu erfassen, wie etwa Fahrspurmarkierungen, Fahrzeuge, Fußgänger, Verkehrszeichen, Autobahnausfahrten, Ampeln, Straßengefahren und dergleichen. Die Analyse kann auf eine Weise durchgeführt werden, die den Schritten ähnlich ist, die vorstehend in Verbindung mit 5A - 5D und 6 beschrieben wird. Beispielsweise kann die Verarbeitungseinheit 110 eine monokulare Bildanalyse (z. B. über die Ausführung des monokularen Bildanalysemoduls 402 und basierend auf den in Verbindung mit 5A - 5D vorstehend beschriebenen Schritten) an jeder der ersten, zweiten und dritten Vielzahl von Bildern durchführen. Alternativ kann die Verarbeitungseinheit 110 Stereobildanalyse (z. B. über die Ausführung des Stereobildanalysemoduls 404 und basierend auf den in Verbindung mit 6 vorstehend beschriebenen Schritten) an der ersten und zweiten Vielzahl von Bildern, der zweiten und dritten Vielzahl von Bildern und/oder der ersten und dritten Vielzahl von Bildern durchführen. Die verarbeiteten Informationen, die der Analyse der ersten, zweiten und/oder dritten Vielzahl von Bildern entsprechen, können kombiniert werden. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 eine Kombination von monokularen und Stereobildanalysen durchführen. Zum Beispiel kann die Verarbeitungseinheit 110 monokulare Bildanalyse (z. B. über die Ausführung des monokularen Bildanalysemoduls 402) an der ersten Vielzahl von Bildern und Stereobildanalyse (z. B. über die Ausführung des Stereobildanalysemoduls 404) an der zweiten und dritten Vielzahl von Bildern durchfü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 an der ersten, zweiten und dritten Vielzahl von Bildern durchgeführt werden. Die offenbarten Ausführungsformen sind nicht auf eine spezielle Konfiguration der Bildaufnahmevorrichtungen 122, 124 und 126 oder die Typen von Analysen beschränkt, die an der ersten, zweiten und dritten Vielzahl von Bildern durchgeführt werden.
  • In einigen Ausführungsformen kann die Verarbeitungseinheit 110 ein Testen am System 100 basierend auf den Bildern durchführen, die in den Schritten 710 und 720 erfasst und analysiert wurden. Ein solches Testen kann eine Angabe für die Gesamtleistung des Systems 100 für bestimmte Konfigurationen der Bildaufnahmevorrichtungen 122, 124 und 126 bereitstellen. Zum Beispiel kann die Verarbeitungseinheit 110 den Anteil von „falschen Treffern“ (z. B. Fälle, in denen das System 100 das Vorhandensein eines Fahrzeugs oder Fußgängers falsch bestimmt hat) und „Aussetzer“ bestimmen.
  • Im Schritt 730 kann die Verarbeitungseinheit 110 eine oder mehrere Navigationsreaktionen im Fahrzeug 200 basierend auf Informationen veranlassen, die aus zwei der ersten, zweiten und dritten Vielzahl von Bildern abgeleitet wurden. Die Auswahl von zwei der ersten, zweiten und dritten Vielzahl von Bildern kann von verschiedenen Faktoren abhängen, wie etwa der Anzahl, den Typen und den Größen von Objekten, die in jeder der Vielzahl von Bildern detektiert werden. Die Verarbeitungseinheit 110 kann auch die Auswahl basierend auf Bildqualität und -auflösung, dem effektiven Sichtfeld, das in den Bildern wiedergegeben wird, der Anzahl aufgenommener Einzelbilder, dem Ausmaß, in dem ein oder mehrere interessierende Objekte tatsächlich in den Einzelbildern vorkommen (z. B. der Prozentsatz von Einzelbildern, in denen ein Objekt vorkommt, der Anteil des Objekts, das in jedem solchen Einzelbild vorkommt, usw.) und dergleichen treffen.
  • In einigen Ausführungsformen kann die Verarbeitungseinheit 110 Informationen auswählen, die aus zwei der ersten, zweiten und dritten Vielzahl von Bildern abgeleitet werden, indem sie bestimmt, inwieweit Informationen, die aus einer Bildquelle abgeleitet werden, mit Informationen konsistent sind, die aus anderen Bildquellen abgeleitet werden. Zum Beispiel kann die Verarbeitungseinheit 110 die verarbeiteten Informationen, die aus jeder der Bildaufnahmevorrichtungen 122, 124 und 126 abgeleitet werden (ob durch monokulare Analyse, Stereoanalyse oder eine beliebige Kombination der beiden), kombinieren und visuelle Angaben (z. B. Fahrspurmarkierungen, ein detektiertes Fahrzeug und seinen Ort und/oder Weg, eine detektierte Ampel usw.) bestimmen, die über die Bilder konsistent sind, die aus jeder der Bildaufnahmevorrichtungen 122, 124 und 126 aufgenommen wurden. 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 am Fahrzeug 200 befindet, usw.). Somit kann die Verarbeitungseinheit 110 Informationen auswählen, die aus zwei der ersten, zweiten und dritten Vielzahl von Bildern abgeleitet werden, basierend auf den Bestimmungen konsistenter und inkonsistenter Informationen.
  • Navigationsreaktionen können zum Beispiel ein Abbiegen, einen Fahrspurwechsel, eine Änderung der Beschleunigung und dergleichen beinhalten. Die Verarbeitungseinheit 110 kann die eine oder die mehreren Navigationsreaktionen basierend auf der Analyse, die im Schritt 720 durchgeführt wurde, und den Techniken, wie vorstehend in Verbindung mit 4 beschrieben, veranlassen. Die Verarbeitungseinheit 110 kann auch Daten verwenden, die aus der Ausführung des Geschwindigkeits- und Beschleunigungsmoduls 406 abgeleitet werden, um die eine oder die mehreren Navigationsreaktionen zu veranlassen. In einigen Ausführungsformen kann die Verarbeitungseinheit 110 die eine oder die mehreren Navigationsreaktionen basierend auf einer relativen Position, relativen Geschwindigkeit und/oder relativen Beschleunigung zwischen dem Fahrzeug 200 und einem Objekt, das innerhalb einer beliebigen der ersten, zweiten und dritten Vielzahl von Bildern detektiert wird, veranlassen. Mehrere Navigationsreaktionen können gleichzeitig, nacheinander oder in einer beliebigen Kombination davon vorkommen.
  • Dünnbesetztes Straßenmodell für autonome Fahrzeugnavigation
  • In einigen Ausführungsformen können die offenbarten Systeme und Verfahren eine dünnbesetzte Karte für autonome Fahrzeugnavigation verwenden. Insbesondere kann die dünnbesetzte Karte für eine autonome Fahrzeugnavigation entlang eines Straßensegments dienen. Zum Beispiel kann die dünnbesetzte Karte ausreichend Informationen zum Navigieren eines autonomen Fahrzeugs bereitstellen, ohne dass eine große Datenmenge gespeichert und/oder aktualisiert wird. Wie nachstehend ausführlicher erörtert wird, kann ein autonomes Fahrzeug die dünnbesetzte Karte verwenden, um auf einer oder mehreren Straßen basierend auf einer oder mehreren gespeicherten Trajektorien zu navigieren.
  • Dünnbesetzte Karte für autonome Fahrzeugnavigation
  • In einigen Ausführungsformen können die offenbarten Systeme und Verfahren eine dünnbesetzte Karte für eine autonome Fahrzeugnavigation generieren. Zum Beispiel kann die dünnbesetzte Karte ausreichend Informationen für die Navigation bereitstellen, ohne dass übermäßige Datenspeicherung oder Datenübertragungsraten erforderlich sind. Wie nachstehend ausführlicher erörtert wird, kann ein Fahrzeug (das ein autonomes Fahrzeug sein kann) die dünnbesetzte Karte verwenden, um auf einer oder mehreren Straßen zu navigieren. Zum Beispiel kann die dünnbesetzte Karte in einigen Ausführungsformen Daten beinhalten, die in Bezug zu einer Straße und potenziell zu Orientierungspunkten entlang der Straße stehen, die für die Fahrzeugnavigation ausreichend sein können, aber auch kleine Daten-Footprints aufweisen. Zum Beispiel können die dünnbesetzten Datenkarten, die nachstehend ausführlich beschrieben werden, im Vergleich zu digitalen Karten, die detaillierte Karteninformationen beinhalten, wie etwa entlang einer Straße erhobene Bilddaten, erheblich weniger Speicherplatz und eine erheblich geringere Datenübertragungsbandbreite erfordern.
  • Statt zum Beispiel detaillierte Repräsentationen eines Straßensegments zu speichern, kann die dünnbesetzte Datenkarte dreidimensionale Polynomrepräsentationen von bevorzugten Fahrzeugwegen entlang einer Straße speichern. Diese Wege erfordern möglicherweise sehr wenig Datenspeicherplatz. Ferner können in den beschriebenen dünnbesetzten Datenkarten Orientierungspunkte identifiziert und in das Straßenmodell der dünnbesetzten Karte einbezogen werden, um bei der Navigation zu helfen. Diese Orientierungspunkte können sich in einem beliebigen Abstand befinden, der geeignet ist, die Fahrzeugnavigation zu ermöglichen, aber in einigen Fällen müssen solche Orientierungspunkte nicht identifiziert und in das Modell in hohen Dichten und kurzen Abständen einbezogen werden. Vielmehr kann in einigen Fällen die Navigation basierend auf Orientierungspunkten möglich sein, die um mindestens 50 Meter, mindestens 100 Meter, mindestens 500 Meter, mindestens 1 Kilometer oder mindestens 2 Kilometer voneinander beabstandet sind. Wie in anderen Abschnitten ausführlicher erörtert wird, kann die dünnbesetzte Karte basierend auf Daten generiert werden, die von Fahrzeugen erhoben oder gemessen werden, die mit verschiedenen Sensoren und Vorrichtungen ausgestattet sind, wie etwa Bildaufnahmevorrichtungen, Sensoren eines globalen Positionsbestimmungssystems, Bewegungssensoren usw., während die Fahrzeuge Fahrbahnen entlangfahren. In einigen Fällen kann die dünnbesetzte Karte basierend auf Daten generiert werden, die während mehrerer Fahrten eines oder mehrerer Fahrzeuge entlang einer speziellen Fahrbahn erhoben wurden. Das Generieren einer dünnbesetzten Karte unter Verwendung mehrerer Fahrten eines oder mehrerer Fahrzeuge kann als „Crowdsourcing“ einer dünnbesetzten Karte bezeichnet werden.
  • Konsistent mit offenbarten Ausführungsformen kann ein autonomes Fahrzeugsystem eine dünnbesetzte Karte zur Navigation verwenden. Zum Beispiel können die offenbarten Systeme und Verfahren eine dünnbesetzte Karte zum Generieren eines Straßennavigationsmodells für ein autonomes Fahrzeug verteilen und können ein autonomes Fahrzeug entlang eines Straßensegments unter Verwendung einer dünnbesetzten Karte und/oder eines generierten Straßennavigationsmodells navigieren. Dünnbesetzte Karten, die konsistent mit der vorliegenden Offenbarung sind, können eine oder mehrere dreidimensionale Konturen beinhalten, die vorbestimmte Trajektorien repräsentieren können, die autonome Fahrzeuge befahren können, wenn sie sich assoziierte Straßensegmente entlangbewegen.
  • Dünnbesetzte Karten, die konsistent mit der vorliegenden Offenbarung sind, können auch Daten beinhalten, die ein oder mehrere Straßenmerkmale repräsentieren. Solche Straßenmerkmale können erkannte Orientierungspunkte, Straßensignaturprofile und beliebige andere straßenbezogene Merkmale beinhalten, die beim Navigieren eines Fahrzeugs nützlich sind. Dünnbesetzte Karten, die konsistent mit der vorliegenden Offenbarung sind, können die autonome Navigation eines Fahrzeugs basierend auf relativ kleinen Datenmengen ermöglichen, die in der dünnbesetzten Karte beinhaltet sind. Statt dass sie detaillierte Repräsentationen einer Straße, wie etwa Straßenränder, Straßenkrümmung, mit Straßensegmenten assoziierte Bilder oder Daten, die andere physische Merkmale, die mit einem Straßensegment assoziiert sind, beinhalten, können die offenbarten Ausführungsformen der dünnbesetzten Karte zum Beispiel relativ wenig Speicherplatz (und eine relativ geringe Bandbreite, wenn Abschnitte der dünnbesetzten Karte zu einem Fahrzeug übertragen werden) erfordern, aber dennoch eine autonome Fahrzeugnavigation angemessen bereitstellen. Der kleine Daten-Footprint der offenbarten dünnbesetzten Karten, der nachstehend ausführlicher erörtert wird, kann in einigen Ausführungsformen durch Speichern von Repräsentationen straßenbezogener Elemente erreicht werden, die kleine Datenmengen erfordern, aber dennoch autonome Navigation ermöglichen.
  • Statt detaillierte Repräsentationen von verschiedenen Aspekten einer Straße zu speichern, können die offenbarten dünnbesetzten Karten zum Beispiel Polynomrepräsentationen einer oder mehrerer Trajektorien speichern, denen ein Fahrzeug entlang der Straße folgen kann. Statt Details in Bezug auf die physische Beschaffenheit der Straße zu speichern (oder übertragen zu müssen), um die Navigation entlang der Straße zu ermöglichen, kann somit ein Fahrzeug unter Verwendung der offenbarten dünnbesetzten Karten entlang eines speziellen Straßensegments navigiert werden, ohne in einigen Fällen physische Aspekte der Straße interpretieren zu müssen, sondern vielmehr durch Ausrichten seines Fahrwegs mit einer Trajektorie (z. B. einem Polynom-Spline) entlang des speziellen Straßensegments. Auf diese Weise kann das Fahrzeug hauptsächlich basierend auf der gespeicherten Trajektorie (z. B. einem Polynom-Spline) navigiert werden, die möglicherweise viel weniger Speicherplatz erfordert als ein Ansatz, der die Speicherung von Fahrbahnbildern, Straßenparametern, Straßenlayout usw. beinhaltet.
  • Zusätzlich zu den gespeicherten Polynomrepräsentationen von Trajektorien entlang eines Straßensegments können die offenbarten dünnbesetzten Karten auch kleine Datenobjekte beinhalten, die ein Straßenmerkmal repräsentieren können. In einigen Ausführungsformen können die kleinen Datenobjekte digitale Signaturen beinhalten, die aus einem digitalen Bild (oder einem digitalen Signal) abgeleitet werden, das von einem Sensor (z. B. einer Kamera oder einem anderen Sensor, wie etwa einem Aufhängungssensor) an Bord eines Fahrzeugs, das das Straßensegment entlangfährt, erhalten wurde. Die digitale Signatur kann eine reduzierte Größe relativ zu dem Signal aufweisen, das von dem Sensor erfasst wurde. In einigen Ausführungsformen kann die digitale Signatur so erstellt werden, dass sie mit einer Klassifiziererfunktion kompatibel ist, die dazu konfiguriert ist, das Straßenmerkmal anhand des Signals zu detektieren und zu identifizieren, das von dem Sensor erfasst wird, zum Beispiel während einer nachfolgenden Fahrt. In einigen Ausführungsformen kann eine digitale Signatur so erstellt werden, dass die digitale Signatur einen Footprint aufweist, der so klein wie möglich ist, während die Fähigkeit beibehalten wird, das Straßenmerkmal mit der gespeicherten Signatur basierend auf einem Bild (oder einem digitalen Signal, das von einem Sensor generiert wird, falls die gespeicherte Signatur nicht auf einem Bild basiert und/oder andere Daten beinhaltet) des Straßenmerkmals, das von einer Kamera an Bord eines Fahrzeugs, das zu einem nachfolgenden Zeitpunkt dasselbe Straßensegment entlangfährt, aufgenommen wird, zu korrelieren oder mit diesem abzugleichen.
  • In einigen Ausführungsformen kann eine Größe der Datenobjekte ferner mit einer Eindeutigkeit des Straßenmerkmals assoziiert sein. Für ein Straßenmerkmal, das von einer Kamera an Bord eines Fahrzeugs detektierbar ist, 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 mit einem speziellen Typ von Straßenmerkmal, zum Beispiel einem Straßenzeichen, assoziiert zu unterscheiden, und wenn ein solches Straßenzeichen in diesem Gebiet lokal eindeutig ist (z. B. gibt es kein identisches Straßenzeichen oder Straßenzeichen des gleichen Typs in der Nähe), kann es zum Beispiel ausreichend sein, Daten zu speichern, die die Art des Straßenmerkmals und seinen Ort angeben.
  • Wie nachstehend ausführlicher erörtert wird, können Straßenmerkmale (z. B. Orientierungspunkte entlang eines Straßensegments) als kleine Datenobjekte gespeichert werden, 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 für die Navigation bereitstellen. In einem Beispiel kann ein Verkehrszeichen als ein erkannter Orientierungspunkt identifiziert werden, auf dem die Navigation eines Fahrzeugs basieren kann. Eine Repräsentation des Straßenzeichens kann in der dünnbesetzte Karte gespeichert werden, um z. B. einige Bytes Daten, die einen Typ des Orientierungspunkts (z. B. ein Stoppzeichen) angeben, und einige Bytes Daten, die einen Ort des Orientierungspunkts (z. B. Koordinaten) angeben, zu beinhalten. Das Navigieren basierend auf solchen Leicht-Daten-Repräsentationen der Orientierungspunkte (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 bereitstellen, die mit dünnbesetzten Karten assoziiert ist, ohne den Datenoverhead, der mit den dünnbesetzten Karten assoziiert ist, wesentlich zu erhöhen. Diese schlanke Repräsentation von Orientierungspunkten (und anderen Straßenmerkmalen) kann die Sensoren und Prozessoren nutzen, die an Bord solcher Fahrzeuge beinhaltet sind, die dazu konfiguriert sind, bestimmte Straßenmerkmale zu detektieren, zu identifizieren und/oder zu klassifizieren.
  • Wenn zum Beispiel ein Zeichen oder sogar ein spezieller Typ eines Zeichens in einem gegebenen Gebiet lokal eindeutig ist (wenn es z. B. kein anderes Zeichen oder kein anderes Zeichen des gleichen Typs gibt), kann die dünnbesetzte Karte Daten verwenden, die einen Typ eines Orientierungspunkts (ein Zeichen oder eine spezifische Art von Zeichen) angeben, und während der Navigation (z. B. der autonomen Navigation), wenn eine Kamera an Bord eines autonomen Fahrzeugs ein Bild des Gebiets aufnimmt, der ein Zeichen (oder einen spezifischen Typ von Zeichen) beinhaltet, kann der Prozessor das Bild verarbeiten, das Zeichen detektieren (wenn es tatsächlich im Bild vorhanden ist), das Bild als ein Zeichen (oder als einen spezifischen Typ von Zeichen) klassifizieren und den Ort des Bilds mit dem Ort des Zeichens korrelieren, wie er in der dünnbesetzten Karte gespeichert ist.
  • Die dünnbesetzte Karte kann eine beliebige geeignete Repräsentation von Objekten beinhalten, die entlang eines Straßensegments identifiziert wurden. In einigen Fällen können die Objekte als semantische Objekte oder nicht-semantische Objekte bezeichnet werden. Semantische Objekte können zum Beispiel Objekte beinhalten, die mit einer vorbestimmten Typklassifizierung assoziiert sind. Diese Typklassifizierung kann nützlich sein, um die Datenmenge zu verringern, die erforderlich ist, um das in einer Umgebung erkannte semantische Objekt zu beschreiben, was sowohl in der Sammelphase von Vorteil sein kann (z. B., um Kosten zu reduzieren, die mit einer Bandbreitennutzung zum Übertragen von Fahrtinformationen aus einer Vielzahl von Sammelfahrzeugen zu einem Server assoziiert sind) als auch während der Navigationsphase (z. B. kann die Reduzierung von Kartendaten die Übertragung von Kartenkacheln von einem Server zu einem navigierenden Fahrzeug beschleunigen und kann auch die Kosten, die mit einer Bandbreitennutzung für solche Übertragungen assoziiert sind, reduzieren). Semantische Objektklassifizierungstypen können jedem Typ von Objekten oder Merkmalen zugewiesen werden, von denen erwartet wird, dass sie entlang einer Fahrbahn angetroffen werden.
  • Semantische Objekte können ferner in zwei oder mehr logische Gruppen unterteilt werden. In einigen Fällen kann zum Beispiel eine Gruppe von semantischen Objekttypen mit vorbestimmten Abmessungen assoziiert werden. Solche semantischen Objekte können bestimmte Geschwindigkeitsbegrenzungszeichen, Vorfahrtzeichen, Einmündungszeichen, Stoppzeichen, Ampeln, Richtungspfeile auf einer Fahrbahn, Kanaldeckel oder einen beliebigen anderen Objekttyp beinhalten, der mit einer standardisierten Größe assoziiert sein kann. Ein Vorteil, den solche semantischen Objekte bieten, besteht darin, dass möglicherweise sehr wenig Daten benötigt werden, um die Objekte zu repräsentieren/vollständig zu definieren. Falls zum Beispiel eine standardisierte Größe eines Geschwindigkeitsbegrenzungszeichens bekannt ist, dann muss ein Sammelfahrzeug möglicherweise nur (durch Analyse eines aufgenommenen Bildes) das Vorhandensein eines Geschwindigkeitsbegrenzungszeichens (ein erkannter Typ) zusammen mit einer Positionsangabe des detektierten Geschwindigkeitsbegrenzungszeichens (z. B. eine 2D-Position im aufgenommenen Bild (oder alternativ eine 3D-Position in realen Koordinaten) einer Mitte des Zeichens oder einer bestimmten Ecke des Zeichens) identifizieren, um ausreichende Informationen für die Kartengenerierung auf der Serverseite bereitzustellen. Wenn 2D-Bildpositionen zu dem Server übertragen werden, kann auch eine mit dem erfassten Bild assoziierte Position, an der das Zeichen detektiert wurde, übertragen werden, damit der Server eine reale Position des Zeichens bestimmen kann (z. B. durch Struktur-in-Bewegung (Structure in Motion)-Techniken, die mehrere von einem oder mehreren Sammelfahrzeugen aufgenommene Bilder verwenden). Selbst mit diesen begrenzten Informationen (die nur wenige Bytes erfordern, um jedes detektierte Objekt zu definieren) kann der Server die Karte erstellen, die ein vollständig repräsentiertes Geschwindigkeitsbegrenzungszeichen beinhaltet, das auf der Typklassifizierung (repräsentativ für ein Geschwindigkeitsbegrenzungszeichen), die von einem oder mehreren Sammelfahrzeugen empfangen wurde, zusammen mit den Positionsinformationen für das detektierte Zeichen basiert.
  • Semantische Objekte können auch andere erkannte Objekt- oder Merkmalstypen beinhalten, die nicht mit bestimmten standardisierten Charakteristiken assoziiert sind. Solche Objekte oder Merkmale können Schlaglöcher, Teerfugen, Lichtmasten, nicht standardisierte Zeichen, Bordsteine, Bäume, Äste oder jeden anderen Typ von erkanntem Objekttyp mit einer oder mehreren variablen Charakteristiken (z. B. variablen Abmessungen) beinhalten. In solchen Fällen kann ein Sammelfahrzeug auch eine Angabe einer Größe des Objekts oder Merkmals übertragen, zusätzlich zum Übertragen einer Angabe des detektierten Objekt- oder Merkmalstyps (z. B. Schlagloch, Pfahl usw.) und Positionsinformationen für das detektierte Objekt oder Merkmal zum Server. Die Größe kann in 2D-Bildabmessungen (z. B. mit einem Begrenzungsrahmen oder einem oder mehreren Abmessungswerten) oder in realen Abmessungen ausgedrückt werden (bestimmt durch Struktur-in-Bewegung-Berechnungen basierend auf LIDAR- oder RADAR-Systemausgaben, basierend auf Ausgaben trainierter neuronaler Netzwerke usw.).
  • Nicht-semantische Objekte oder Merkmale können beliebige detektierbare Objekte oder Merkmale beinhalten, die außerhalb einer erkannten Kategorie oder eines erkannten Typs liegen, aber dennoch wertvolle Informationen bei der Kartengenerierung bereitstellen können. In einigen Fällen können solche nicht-semantischen Merkmale eine detektierte Ecke eines Gebäudes oder eine Ecke eines detektierten Fensters eines Gebäudes, einen eindeutigen Stein oder ein Objekt in der Nähe einer Fahrbahn, einen Betonspritzer an einem Fahrbahnrand oder ein beliebiges anderes detektierbares Objekt oder Merkmal beinhalten. Beim Detektieren eines solchen Objekts oder Merkmals können ein oder mehrere Sammelfahrzeuge einen Ort eines oder mehrerer Punkte (2D-Bildpunkte oder reale 3D-Punkte), die mit dem detektierten Objekt/Merkmal assoziiert sind, zu einem Kartengenerierungsserver übertragen. Zusätzlich kann ein komprimiertes oder vereinfachtes Bildsegment (z. B. ein Bild-Hash) für eine Region des aufgenommenen Bildes, die das detektierte Objekts oder Merkmal beinhaltet, generiert 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 relativ zu einer dünnbesetzten Karte, die das nicht-semantische Merkmal oder Objekt beinhaltet, nützlich sein, weil ein Fahrzeug, das die Fahrbahn befährt, einen Algorithmus ähnlich dem Algorithmus anwenden kann, der zum Generieren des Bild-Hash verwendet wird, um das Vorhandensein des kartierten nicht-semantischen Merkmals oder Objekts in einem aufgenommenen Bild zu bestätigen/verifizieren. Unter Verwendung dieser Technik können nicht-semantische Merkmale zur Reichhaltigkeit der dünnbesetzten Karten beitragen (z. B., um ihre Nützlichkeit bei der Navigation zu verbessern), ohne einen signifikanten Datenoverhead hinzuzufügen.
  • Wie bereits erwähnt, können Zieltrajektorien in der dünnbesetzten Karte gespeichert werden. Diese Zieltrajektorien (z. B. 3D-Splines) können die bevorzugten oder empfohlenen Wege für jede verfügbare Fahrspur einer Fahrbahn, jeden gültigen Weg über eine Kreuzung, für Einmündungen und Ausfahrten usw. repräsentieren. Zusätzlich zu Zieltrajektorien können auch andere Straßenmerkmale detektiert, gesammelt und in Form von repräsentativen Splines in die dünnbesetzten Karten einbezogen werden. Solche Merkmale können zum Beispiel Straßenränder, Fahrspurmarkierungen, Bordsteine, Leitplanken oder beliebige andere Objekte oder Merkmale beinhalten, die entlang einer Fahrbahn oder eines Straßensegments verlaufen.
  • Generieren einer dünnbesetzten Karte
  • In einigen Ausführungsformen kann eine dünnbesetzte Karte mindestens eine Linienrepräsentation eines Straßenoberflächenmerkmals, das entlang eines Straßensegments verläuft, und eine Vielzahl von Orientierungspunkten, die mit dem Straßensegment assoziiert sind, beinhalten. In bestimmten Aspekten kann die dünnbesetzte Karte über „Crowdsourcing“ generiert werden, zum Beispiel durch Bildanalyse einer Vielzahl von Bildern, die erfasst werden, wenn eines oder mehrere Fahrzeuge das Straßensegment befahren.
  • 8 zeigt eine dünnbesetzte Karte 800, auf die ein oder mehrere Fahrzeuge, z. B. das Fahrzeug 200 (das ein autonomes Fahrzeug sein kann), zugreifen können, um eine autonome Fahrzeugnavigation bereitzustellen. Die dünnbesetzte Karte 800 kann in einem Speicher, wie etwa dem Speicher 140 oder 150, gespeichert sein. Solche Speichervorrichtungen können beliebige Typen von nichtflüchtigen Speichervorrichtungen oder computerlesbaren Medien beinhalten. Zum Beispiel kann der Speicher 140 oder 150 in einigen Ausführungsformen Festplatten, Compact Discs, Flash-Speicher, magnetbasierte Speichervorrichtungen, optisch basierte Speichervorrichtungen usw. beinhalten. In einigen Ausführungsformen kann die dünnbesetzte Karte 800 in einer Datenbank (z. B. der Kartendatenbank 160) gespeichert sein, die im Speicher 140 oder 150 oder anderen Typen von Speichervorrichtungen gespeichert sein kann.
  • In einigen Ausführungsformen kann die dünnbesetzte Karte 800 in einer Speichervorrichtung oder einem nichtflüchtigen computerlesbaren Medium gespeichert sein, das an Bord des Fahrzeugs 200 bereitgestellt wird (z. B. einer Speichervorrichtung, die in einem Navigationssystem an Bord des Fahrzeugs 200 beinhaltet ist). Ein Prozessor (z. B. die Verarbeitungseinheit 110), der im Fahrzeug 200 bereitgestellt ist, kann auf die dünnbesetzte Karte 800 zugreifen, die in der Speichervorrichtung oder dem computerlesbaren Medium gespeichert ist, das an Bord des Fahrzeugs 200 bereitgestellt ist, um Navigationsanweisungen zum Führen des autonomen Fahrzeugs 200 zu generieren, wenn das Fahrzeug ein Straßensegment befährt.
  • Die dünnbesetzte Karte 800 muss jedoch nicht lokal in Bezug auf ein Fahrzeug gespeichert sein. In einigen Ausführungsformen kann die dünnbesetzte Karte 800 in einer Speichervorrichtung oder einem computerlesbaren Medium gespeichert sein, das auf einem entfernten Server bereitgestellt ist, der mit dem Fahrzeug 200 oder einer Vorrichtung kommuniziert, die mit dem Fahrzeug 200 assoziiert ist. Ein Prozessor (z. B. die Verarbeitungseinheit 110), der im Fahrzeug 200 bereitgestellt ist, kann Daten, die in der dünnbesetzten Karte 800 beinhaltet sind, aus dem entfernten Server empfangen und kann die Daten zum Führen der autonomen Fahrt des Fahrzeugs 200 ausführen. In solchen Ausführungsformen kann der entfernte Server die gesamte dünnbesetzte Karte 800 oder nur einen Abschnitt davon speichern. Dementsprechend kann die Speichervorrichtung oder das computerlesbare Medium, das an Bord des Fahrzeugs 200 und/oder an Bord eines oder mehrerer zusätzlicher Fahrzeuge bereitgestellt ist, den übrigen Abschnitt oder die übrigen Abschnitte der dünnbesetzten Karte 800 speichern.
  • Des Weiteren kann in solchen Ausführungsformen die dünnbesetzte Karte 800 für eine Vielzahl von Fahrzeugen zugänglich gemacht werden, die verschiedene Straßensegmente (z. B. Dutzende, Hunderte, Tausende oder Millionen von Fahrzeugen usw.) befahren. Es sei auch angemerkt, dass die dünnbesetzte Karte 800 mehrere Unterkarten beinhalten kann. Zum Beispiel kann die dünnbesetzte Karte 800 in einigen Ausführungsformen Hunderte, Tausende, Millionen oder mehr Unterkarten (z. B. Kartenkacheln) beinhalten, die beim Navigieren eines Fahrzeugs verwendet werden können. Solche Unterkarten können als lokale Karten oder Kartenkacheln bezeichnet werden, und ein Fahrzeug, das eine Fahrbahn entlangfährt, kann auf eine beliebige Anzahl von lokalen Karten zugreifen, die für einen Ort relevant sind, an dem das Fahrzeug fährt. Die lokalen Kartenabschnitte der dünnbesetzten Karte 800 können mit einem Schlüssel des globalen Navigationssatellitensystems (GNSS, Global Navigation Satellite System) als Index in der Datenbank der dünnbesetzten Karte 800 gespeichert werden. Obwohl die Berechnung von Lenkwinkeln zum Navigieren eines Host-Fahrzeugs im vorliegenden System ohne Abhängigkeit von einer GNSS-Position des Host-Fahrzeugs, von Straßenmerkmalen oder Orientierungspunkten durchgeführt werden kann, können somit solche GNSS-Informationen zum Abrufen relevanter lokaler Karten verwendet werden.
  • Im Allgemeinen kann die dünnbesetzte Karte 800 basierend auf Daten (z. B. Fahrtinformationen) generiert werden, die von einem oder mehreren Fahrzeugen erhoben werden, wenn sie Fahrbahnen entlangfahren. Zum Beispiel können unter Verwendung von Sensoren an Bord des einen oder der mehreren Fahrzeuge (z. B. Kameras, Geschwindigkeitsmesser, GPS, Beschleunigungsmesser usw.) die Trajektorien, die das eine oder die mehreren Fahrzeuge eine Fahrbahn entlangfahren, aufgezeichnet werden, und die Polynomrepräsentationen einer bevorzugten Trajektorie für Fahrzeuge, die nachfolgende Fahrten entlang der Fahrbahn machen, können basierend auf den erhobenen Trajektorien bestimmt werden, die von dem einen oder den mehreren Fahrzeugen gefahren wurden. Gleichermaßen können Daten, die von dem einen oder den mehreren Fahrzeuge erhoben wurden, dabei helfen, potenzielle Orientierungspunkte entlang einer speziellen Fahrbahn zu identifizieren. Daten, die von durchfahrenden Fahrzeugen erhoben werden, können auch verwendet werden, um Straßenprofilinformationen zu identifizieren, wie etwa Straßenbreitenprofile, Straßenunebenheitsprofile, Verkehrslinienabstandsprofile, Straßenbedingungen usw. Unter Verwendung der erhobenen Informationen kann die dünnbesetzte Karte 800 zur Verwendung beim Navigieren eines oder mehrerer autonomer Fahrzeuge generiert und verteilt werden (z. B. zur lokalen Speicherung oder über eine Datenübertragung im laufenden Betrieb). In einigen Ausführungsformen endet die Kartengenerierung jedoch möglicherweise nicht bei der anfänglichen Generierung der Karte. Wie nachstehend ausführlicher erörtert wird, kann die dünnbesetzte Karte 800 kontinuierlich oder periodisch basierend auf Daten aktualisiert werden, die von Fahrzeugen erhoben werden, während diese Fahrzeuge weiter Fahrbahnen befahren, die in der dünnbesetzten Karte 800 beinhaltet sind.
  • Daten, die in der dünnbesetzten Karte 800 aufgezeichnet werden, können Positionsinformationen basierend auf Daten eines globalen Positionsbestimmungssystems (GPS, Global Positioning System) beinhalten. Zum Beispiel können Ortsinformationen in der dünnbesetzten Karte 800 für verschiedene Kartenelemente beinhaltet sein, einschließlich zum Beispiel Orte von Orientierungspunkten, Orte von Straßenprofilen usw. Orte für Kartenelemente, die in der dünnbesetzten Karte 800 beinhaltet sind, können unter Verwendung von GPS-Daten erhalten werden, die von Fahrzeugen erhoben werden, die eine Fahrbahn befahren. Zum Beispiel kann ein Fahrzeug, das einen identifizierten Orientierungspunkt passiert, einen Ort des identifizierten Orientierungspunkts unter Verwendung von GPS-Positionsinformationen, die mit dem Fahrzeug assoziiert sind, und eine Bestimmung eines Orts des identifizierten Orientierungspunkts relativ zum Fahrzeug bestimmen (z. B. basierend auf einer Bildanalyse von Daten, die von einer oder mehreren Kameras an Bord des Fahrzeugs erhoben werden). Solche Ortsbestimmungen eines identifizierten Orientierungspunkts (oder eines beliebigen anderen Merkmals, das in der dünnbesetzten Karte 800 beinhaltet ist) können wiederholt werden, wenn zusätzliche Fahrzeuge den Ort des identifizierten Orientierungspunkts passieren. Einige oder alle der zusätzlichen Ortsbestimmungen können verwendet werden, um die Ortsinformationen, die in der dünnbesetzten Karte 800 gespeichert sind, relativ zum identifizierten Orientierungspunkt zu verfeinern. Zum Beispiel können in einigen Ausführungsformen mehrere Positionsmesswerte relativ zu einem speziellen Merkmal, das in der dünnbesetzten Karte 800 gespeichert ist, zusammen gemittelt werden. Beliebige andere mathematische Operationen können jedoch auch verwendet werden, um einen gespeicherten Ort eines Kartenelements basierend auf einer Vielzahl von bestimmten Orten für das Kartenelement zu verfeinern.
  • In einem speziellen Beispiel können Sammelfahrzeuge ein spezielles Straßensegment befahren. Jedes Sammelfahrzeug nimmt Bilder seiner jeweiligen Umgebungen auf. Die Bilder können mit einer beliebigen geeigneten Einzelbild-Aufnahmerate (z. B. 9 Hz usw.) erhoben werden. Ein oder mehrere Bildanalyseprozessoren an Bord jedes Sammelfahrzeugs analysieren die aufgenommenen Bilder, um das Vorhandensein semantischer und/oder nicht-semantischer Merkmale/Objekte zu detektieren. Auf einer hohen Ebene übertragen die Sammelfahrzeuge Angaben von Detektionen der semantischen und/oder nicht-semantischen Objekte/Merkmale zusammen mit Positionen, die mit diesen Objekten/Merkmalen assoziiert sind, zu einem Kartierungsserver. Genauer gesagt, können Typangaben, Abmessungsangaben usw. zusammen mit den Positionsinformationen übertragen werden. Die Positionsinformationen können beliebige geeignete Informationen beinhalten, um dem Kartierungsserver zu ermöglichen, die detektierten Objekte/Merkmale zu einer dünnbesetzten Karte, die für die Navigation nützlich ist, zu aggregieren. In einigen Fällen können die Positionsinformationen eine oder mehrere 2D-Bildpositionen (z. B. X-Y-Pixelorte) in einem aufgenommenen Bild beinhalten, in dem die semantischen oder nicht-semantischen Merkmale/Objekte detektiert wurden. Solche Bildpositionen können einer Mitte des Merkmals/Objekts, einer Ecke, usw. entsprechen. In diesem Szenario kann jedes Sammelfahrzeug dem Server auch einen Ort (z. B. einen GPS-Ort), an dem jedes Bild aufgenommen wurde, bereitstellen, um dem Kartierungsserver bei der Rekonstruktion der Fahrtinformationen und dem Abgleich der Fahrtinformationen aus mehreren Sammelfahrzeugen zu helfen.
  • In anderen Fällen kann das Sammelfahrzeug dem Server einen oder mehrere reale 3D-Punkte bereitstellen, die mit den detektierten Objekten/Merkmalen assoziiert sind. Solche 3D-Punkte können relativ zu einem vorbestimmten Ursprung (wie etwa einem Ursprung eines Fahrtsegments) sein und können durch eine beliebige geeignete Technik bestimmt werden. In einigen Fällen kann eine Struktur-in-Bewegung-Technik verwendet werden, um die reale 3D-Position eines detektierten Objekts/Merkmals zu bestimmen. Zum Beispiel kann ein bestimmtes Objekt, wie etwa ein spezielles Geschwindigkeitsbegrenzungszeichen, in zwei oder mehr aufgenommenen Bildern detektiert werden. Unter Verwendung von Informationen, wie etwa der bekannten Eigenbewegung (Geschwindigkeit, Trajektorie, GPS-Position usw.) des Sammelfahrzeugs zwischen den aufgenommenen Bildern, zusammen mit beobachteten Änderungen des Geschwindigkeitsbegrenzungszeichens in den aufgenommenen Bildern (Änderung der X-Y-Pixelposition, Änderung der Größe usw.), kann die reale Position eines oder mehrerer Punkte, die mit dem Geschwindigkeitsbegrenzungszeichen assoziiert sind, bestimmt werden und an den Kartierungsserver weitergegeben werden. Ein solcher Ansatz ist optional, weil er mehr Berechnung seitens der Sammelfahrzeugsysteme erfordert. Die dünnbesetzte Karte der offenbarten Ausführungsformen kann autonome Navigation eines Fahrzeugs unter Verwendung relativ kleiner Mengen gespeicherter Daten ermöglichen. In einigen Ausführungsformen kann die dünnbesetzte Karte 800 eine Datendichte (z. B. einschließlich Daten, die die Zieltrajektorien, Orientierungspunkte und beliebige andere gespeicherte Straßenmerkmale repräsentieren) von weniger als 2 MB pro Kilometer Straße, weniger als 1 MB pro Kilometer Straße, weniger als 500 kB pro Kilometer Straße oder weniger als 100 kB pro Kilometer Straße aufweisen. In einigen Ausführungsformen kann die Datendichte der dünnbesetzten Karte 800 weniger als 10 kB pro Kilometer Straße oder sogar weniger als 2 kB pro Kilometer Straße (z. B. 1,6 kB pro Kilometer) oder nicht mehr als 10 kB pro Kilometer Straße oder nicht mehr als 20 kB pro Kilometer Straße betragen. In einigen Ausführungsformen können die meisten, wenn nicht alle, der Fahrbahnen der Vereinigten Staaten autonom unter Verwendung einer dünnbesetzten Karte navigiert werden, die insgesamt 4 GB oder weniger Daten aufweist. Diese Datendichtewerte können einen Durchschnitt über eine gesamte dünnbesetzte Karte 800, über eine lokale Karte innerhalb der dünnbesetzten Karte 800 und/oder über ein spezielles Straßensegment innerhalb der dünnbesetzten Karte 800 darstellen.
  • Wie angemerkt, kann die dünnbesetzte Karte 800 Repräsentationen einer Vielzahl von Zieltrajektorien 810 zum Führen von autonomem Fahren oder Navigation entlang eines Straßensegments beinhalten. Solche Zieltrajektorien können als dreidimensionale Splines gespeichert werden. Die in der dünnbesetzten Karte 800 gespeicherten Zieltrajektorien können zum Beispiel basierend auf zwei oder mehr rekonstruierten Trajektorien von vorherigen Fahrten von Fahrzeugen entlang eines speziellen Straßensegments bestimmt werden. Ein Straßensegment kann mit einer einzelnen Zieltrajektorie oder mehreren Zieltrajektorien assoziiert werden. Zum Beispiel kann auf einer zweispurigen Straße eine erste Zieltrajektorie gespeichert werden, um einen beabsichtigten Fahrweg entlang der Straße in einer ersten Richtung zu repräsentieren, und eine zweite Zieltrajektorie kann gespeichert werden, um einen beabsichtigten Fahrweg entlang der Straße in einer anderen Richtung (z. B. entgegengesetzt zur ersten Richtung) zu repräsentieren. Zusätzliche Zieltrajektorien können in Bezug auf ein spezielles Straßensegment gespeichert werden. Zum Beispiel können auf einer mehrspurigen Straße eine oder mehrere Zieltrajektorien gespeichert werden, die beabsichtigte Fahrwege für Fahrzeuge auf einer oder mehreren Fahrspuren repräsentieren, die mit der mehrspurigen Straße assoziiert sind. In einigen Ausführungsformen kann jede Fahrspur einer mehrspurigen Straße mit ihrer eigenen Zieltrajektorie assoziiert sein. In anderen Ausführungsformen können weniger Zieltrajektorien gespeichert sein, als Fahrspuren auf einer mehrspurigen Straße vorhanden sind. In solchen Fällen kann ein Fahrzeug, das auf der mehrspurigen Straße navigiert, eine beliebige der gespeicherten Zieltrajektorien verwenden, um seine Navigation unter Berücksichtigung einer Größe des Fahrspurversatzes gegenüber einer Fahrspur, für die eine Zieltrajektorie gespeichert ist, zu führen (falls z. B. ein Fahrzeug auf der am weitesten links gelegenen Fahrspur einer dreispurigen Autobahn fährt und eine Zieltrajektorie nur für die mittlere Fahrspur der Autobahn gespeichert ist, kann das Fahrzeug unter Verwendung der Zieltrajektorie der mittleren Fahrspur navigieren, indem es die Größe des Fahrspurversatzes zwischen der mittleren Fahrspur und der am weitesten links gelegenen Fahrspur berücksichtigt, wenn es Navigationsanweisungen generiert).
  • In einigen Ausführungsformen kann die Zieltrajektorie einen idealen Weg repräsentieren, den ein Fahrzeug nehmen sollte, wenn das Fahrzeug fährt. Die Zieltrajektorie kann sich zum Beispiel in einer ungefähren Mitte einer Fahrspur befinden. In anderen Fällen kann sich die Zieltrajektorie an anderer Stelle relativ zu einem Straßensegment befinden. Zum Beispiel kann eine Zieltrajektorie ungefähr mit einer Mitte einer Straße, einem Rand einer Straße oder einem Rand einer Fahrspur usw. übereinstimmen. In solchen Fällen kann die Navigation basierend auf der Zieltrajektorie eine bestimmte Versatzgröße beinhalten, der relativ zum Ort der Zieltrajektorie aufrechtzuerhalten ist. Darüber hinaus kann sich in einigen Ausführungsformen der bestimmte Versatzbetrag, der relativ zum Ort der Zieltrajektorie aufrechtzuerhalten ist, basierend auf einem Fahrzeugtyp unterscheiden (z. B. kann ein Personenkraftwagen, der zwei Achsen beinhaltet, einen anderen Versatz als ein Lastwagen aufweisen, der mehr als zwei Achsen entlang mindestens eines Abschnitts der Zieltrajektorie beinhaltet).
  • Die dünnbesetzte Karte 800 kann auch Daten beinhalten, die sich auf eine Vielzahl von vorbestimmten Orientierungspunkten 820 beziehen, die mit speziellen Straßensegmenten, lokalen Karten usw. assoziiert sind. Wie nachstehend ausführlicher erörtert wird, können diese Orientierungspunkte bei der Navigation des autonomen Fahrzeugs verwendet werden. Zum Beispiel können in einigen Ausführungsformen die Orientierungspunkte verwendet werden, um eine aktuelle Position des Fahrzeugs relativ zu einer gespeicherten Zieltrajektorie zu bestimmen. Mit diesen Positionsinformationen kann das autonome Fahrzeug in der Lage sein, eine Kursrichtung abzugleichen, so dass sie mit einer Richtung der Zieltrajektorie an dem bestimmten Ort übereinstimmt.
  • Die Vielzahl von Orientierungspunkten 820 kann in der dünnbesetzten Karte 800 in einem beliebigen geeigneten Abstand identifiziert und gespeichert werden. In einigen Ausführungsformen können Orientierungspunkte in relativ hohen Dichten (z. B. alle paar Meter oder mehr) gespeichert werden. In einigen Ausführungsformen können jedoch wesentlich größere Orientierungspunktabstandswerte eingesetzt werden. Zum Beispiel können in der dünnbesetzten Karte 800 identifizierte (oder erkannte) Orientierungspunkte um 10 Meter, 20 Meter, 50 Meter, 100 Meter, 1 Kilometer oder 2 Kilometer zueinander beabstandet sein. In einigen Fällen können sich die identifizierten Orientierungspunkte sogar in Distanzen von mehr als 2 Kilometern auseinander befinden.
  • Zwischen Orientierungspunkten und daher zwischen Bestimmungen der Fahrzeugposition relativ zu einer Zieltrajektorie kann das Fahrzeug basierend auf Koppelnavigation navigieren, bei der das Fahrzeug Sensoren verwendet, um seine Eigenbewegung zu bestimmen und seine Position relativ zur Zieltrajektorie zu schätzen. Da sich Fehler während der Navigation durch Koppelnavigation akkumulieren können, können die Positionsbestimmungen relativ zur Zieltrajektorie im Laufe der Zeit zunehmend weniger genau werden. Das Fahrzeug kann Orientierungspunkte verwenden, die in der dünnbesetzten Karte 800 (und ihren bekannten Orten) vorkommen, um die durch Koppelnavigation induzierten Fehler bei der Positionsbestimmung zu beseitigen. Auf diese Weise können die identifizierten Orientierungspunkte, die in der dünnbesetzten Karte 800 beinhaltet sind, als Navigationsanker dienen, anhand derer eine genaue Position des Fahrzeugs relativ zu einer Zieltrajektorie bestimmt werden kann. Weil eine bestimmte Fehlergröße bei der Positionierung des Ortes akzeptabel sein kann, muss für ein autonomes Fahrzeug nicht immer ein identifizierter Orientierungspunkt verfügbar sein. Vielmehr kann eine geeignete Navigation sogar basierend auf Orientierungspunktabständen von 10 Metern, 20 Metern, 50 Metern, 100 Metern, 500 Metern, 1 Kilometer, 2 Kilometern oder mehr möglich sein, wie vorstehend erwähnt. In einigen Ausführungsformen kann eine Dichte von 1 identifizierten Orientierungspunkt alle 1 km Straße ausreichend sein, um eine Genauigkeit der Bestimmung der Längsposition innerhalb von 1 m aufrechtzuerhalten. Somit muss nicht jeder potenzielle Orientierungspunkt, der entlang eines Straßensegments vorkommt, in der dünnbesetzten Karte 800 gespeichert werden.
  • Darüber hinaus können in einigen Ausführungsformen Fahrspurmarkierungen zur Lokalisierung des Fahrzeugs während Orientierungspunktabständen verwendet werden. Durch Verwenden von Fahrspurmarkierungen während Orientierungspunktabständen kann die Akkumulation von Fehlern während der Navigation durch Koppelnavigation minimiert werden.
  • Zusätzlich zu Zieltrajektorien und identifizierten Orientierungspunkten kann die dünnbesetzte Karte 800 Informationen beinhalten, die sich auf verschiedene andere Straßenmerkmale beziehen. Zum Beispiel veranschaulicht 9A eine Repräsentation von Kurven entlang eines speziellen Straßensegments, die in der dünnbesetzten Karte 800 gespeichert werden können. In einigen Ausführungsformen kann eine einzelne Fahrspur einer Straße durch eine dreidimensionale Polynombeschreibung der linken und rechten Seite der Straße modelliert werden. Solche Polynome, die die linke und rechte Seite einer einzelnen Fahrspur repräsentieren, werden in 9A gezeigt. Unabhängig davon, wie viele Fahrspuren eine Straße aufweisen kann, kann die Straße unter Verwendung von Polynomen auf eine Weise repräsentiert werden, die der in 9A veranschaulichten ähnlich ist. Zum Beispiel können die linke und rechte Seite einer mehrspurigen Straße durch Polynome repräsentiert werden, die den in 9A gezeigten ähnlich sind, und mittlere Fahrspurmarkierungen, die auf einer mehrspurigen Straße beinhaltet sind (z. B. gestrichelte Markierungen, die Fahrspurbegrenzungen darstellen, durchgehende gelbe Linien, die Begrenzungen zwischen Fahrspuren darstellen, die in unterschiedliche Richtungen laufen usw.) können ebenfalls unter Verwendung von Polynomen repräsentiert werden, wie etwa den in 9A gezeigten.
  • Wie in 9A gezeigt wird, kann eine Fahrspur 900 unter Verwendung von Polynomen (z. B. Polynome erster Ordnung, zweiter Ordnung, dritter Ordnung oder einer beliebigen geeigneten Ordnung) repräsentiert werden. Zur Veranschaulichung wird die Fahrspur 900 als eine zweidimensionale Fahrspur gezeigt, und die Polynome werden als zweidimensionale Polynome gezeigt. Wie in 9A dargestellt wird, beinhaltet die Fahrspur 900 eine linke Seite 910 und eine rechte Seite 920. In einigen Ausführungsformen kann mehr als ein Polynom verwendet werden, um einen Ort jeder Seite der Straße oder der Fahrspurbegrenzung zu repräsentieren. Zum Beispiel kann sowohl die linke Seite 910 als auch die rechte Seite 920 durch eine Vielzahl von Polynomen einer beliebigen geeigneten Länge repräsentiert werden. 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 sich die Polynome miteinander überlappen, um beim Navigieren basierend auf nachfolgend angetroffenen Polynomen nahtlose Übergänge zu erleichtern, wenn ein Host-Fahrzeug eine Fahrbahn entlangfährt. Zum Beispiel kann sowohl die linke Seite 910 als auch die rechte Seite 920 durch eine Vielzahl von Polynomen dritter Ordnung repräsentiert werden, die in Segmente von etwa 100 Metern Länge (ein Beispiel des ersten vorbestimmten Bereichs) unterteilt sind und sich miteinander 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. Zum Beispiel können in einigen Ausführungsformen 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 wird die linke Seite 910 der Fahrspur 900 durch zwei Gruppen von Polynomen dritter Ordnung repräsentiert. Die erste Gruppe beinhaltet die Polynomsegmente 911, 912 und 913. Die zweite Gruppe beinhaltet die Polynomsegmente 914, 915 und 916. Die zwei Gruppen folgen, während sie im Wesentlichen parallel zueinander sind, den Orten ihrer jeweiligen Seiten der Straße. Die Polynomsegmente 911, 912, 913, 914, 915 und 916 weisen eine Länge von etwa 100 Metern auf und überlappen benachbarte Segmente in der Serie um etwa 50 Meter. Wie bereits erwähnt, können jedoch auch Polynome unterschiedlicher Längen und unterschiedlicher Überlappungsgrößen verwendet werden. Zum Beispiel können die Polynome Längen von 500 m, 1 km oder mehr aufweisen, und die Überlappungsgröße kann von 0 bis 50 m, 50 m bis 100 m oder größer als 100 m variieren. Obwohl 9A als Polynome repräsentierend gezeigt wird, die sich im 2D-Raum erstrecken (z. B. auf der Oberfläche des Papiers), versteht es sich außerdem, dass diese Polynome Kurven repräsentieren können, die sich in drei Dimensionen erstrecken (z. B. eine Höhenkomponente beinhalten), um Höhenänderungen in einem Straßensegment zusätzlich zur X-Y-Krümmung zu repräsentieren. In dem in 9A gezeigten Beispiel wird die rechte Seite 920 der Fahrspur 900 ferner durch eine erste Gruppe mit den Polynomsegmenten 921, 922 und 923 und eine zweite Gruppe mit den Polynomsegmenten 924, 925 und 926 repräsentiert.
  • Unter erneuter Bezugnahme auf die Zieltrajektorien der dünnbesetzten Karte 800 zeigt 9B ein dreidimensionales Polynom, das eine Zieltrajektorie für ein Fahrzeug repräsentiert, das auf ein spezielles Straßensegment entlangfährt. Die Zieltrajektorie repräsentiert nicht nur den X-Y-Weg, den ein Host-Fahrzeug auf einem speziellen Straßensegments entlangfahren sollte, sondern auch die Höhenänderung, die das Host-Fahrzeug erfahren wird, wenn es das Straßensegment entlangfährt. Somit kann jede Zieltrajektorie in der dünnbesetzten Karte 800 durch ein oder mehrere dreidimensionale Polynome repräsentiert werden, wie das in 9B gezeigte dreidimensionale Polynom 950. Die dünnbesetzte Karte 800 kann eine Vielzahl von Trajektorien beinhalten (z. B. Millionen oder Milliarden oder mehr, um Trajektorien von Fahrzeugen entlang verschiedener Straßensegmente entlang von Fahrbahnen in der ganzen Welt zu repräsentieren). In einigen Ausführungsformen kann jede Zieltrajektorie einem Spline entsprechen, der dreidimensionale Polynomsegmente verbindet.
  • In Bezug auf den Daten-Footprint von Polynomkurven, die in der dünnbesetzten Karte 800 gespeichert sind, kann in einigen Ausführungsformen jedes Polynom dritten Grads durch vier Parameter repräsentiert werden, die jeweils vier Bytes Daten erfordern. Geeignete Repräsentationen können mit Polynomen dritten Grads erhalten werden, die etwa 192 Bytes Daten für alle 100 m erfordern. Dies kann in ungefähr 200 kB je Stunde in Datennutzungs-/-übertragungsanforderungen für ein Host-Fahrzeug, das ungefähr 100 km/h fährt, übersetzt werden.
  • Die dünnbesetzte Karte 800 kann das Fahrspurnetzwerk unter Verwendung einer Kombination von Geometriedeskriptoren und Metadaten beschreiben. Die Geometrie kann durch Polynome oder Splines beschrieben werden, wie vorstehend beschrieben wird. Die Metadaten können die Anzahl von Fahrspuren, spezielle Charakteristiken (wie etwa eine Fahrspur des Fahrzeugpools) und möglicherweise andere dünnbesetzte Bezeichnungen beschreiben. Der Gesamt-Footprint solcher Angaben kann vernachlässigbar sein.
  • Dementsprechend kann eine dünnbesetzte Karte gemäß Ausführungsformen der vorliegenden Offenbarung mindestens eine Linienrepräsentation eines Straßenoberflächenmerkmals beinhalten, das entlang des Straßensegments verläuft, wobei jede Linienrepräsentation einen Weg entlang des Straßensegments repräsentiert, der im Wesentlichen dem Straßenoberflächenmerkmal entspricht. In einigen Ausführungsformen kann, wie vorstehend erörtert, die mindestens eine Linienrepräsentation des Straßenoberflächenmerkmals einen Spline, eine Polynomrepräsentation oder eine Kurve beinhalten. Des Weiteren kann in einigen Ausführungsformen das Straßenoberflächenmerkmal mindestens einen Straßenrand und/oder eine Fahrspurmarkierung beinhalten. Darüber hinaus kann, wie nachstehend in Bezug auf „Crowdsourcing“ erörtert, das Straßenoberflächenmerkmal durch Bildanalyse einer Vielzahl von Bildern identifiziert werden, die erfasst werden, wenn ein oder mehrere Fahrzeuge das Straßensegment befahren.
  • Wie bereits erwähnt, kann die dünnbesetzte Karte 800 eine Vielzahl von vorbestimmten Orientierungspunkten beinhalten, die mit einem Straßensegment assoziiert sind. Statt tatsächliche Bilder der Orientierungspunkte zu speichern und zum Beispiel auf Bilderkennungsanalyse basierend auf aufgenommenen Bildern und gespeicherten Bildern zurückzugreifen, kann jeder Orientierungspunkt in der dünnbesetzten Karte 800 unter Verwendung von weniger Daten repräsentiert und erkannt werden, als ein gespeichertes, tatsächliches Bild erfordern würde. Daten, die Orientierungspunkte repräsentieren, können dennoch ausreichende Informationen zum Beschreiben oder Identifizieren der Orientierungspunkte entlang einer Straße beinhalten. Das Speichern von Daten, die Charakteristiken von Orientierungspunkten beschreiben, statt der tatsächlichen Bilder von Orientierungspunkten, kann die Größe der dünnbesetzten Karte 800 reduzieren.
  • 10 veranschaulicht Beispiele von Typen von Orientierungspunkten, die in der dünnbesetzten Karte 800 repräsentiert sein können. Die Orientierungspunkte können beliebige sichtbare und identifizierbare Objekte entlang eines Straßensegments beinhalten. Die Orientierungspunkte können so ausgewählt werden, dass sie festgelegt sind und sich in Bezug auf ihre Orte und/oder ihren Inhalt nicht häufig ändern. Die Orientierungspunkte, die in der dünnbesetzten Karte 800 enthalten sind, können beim Bestimmen eines Orts des Fahrzeugs 200 in Bezug auf eine Zieltrajektorie nützlich sein, wenn das Fahrzeug ein spezielles Straßensegment befährt. Beispiele für Orientierungspunkte können Verkehrszeichen, Richtungszeichen, allgemeine Zeichen (z. B. rechteckige Zeichen), Straßenrandbefestigungselemente (z. B. Laternenpfosten, Reflektoren usw.) und eine beliebige andere geeignete Kategorie beinhalten. In einigen Ausführungsformen können Fahrspurmarkierungen auf der Straße ebenfalls als Orientierungspunkte in der dünnbesetzten Karte 800 beinhaltet sein.
  • Beispiele für Orientierungspunkte, die in 10 gezeigt werden, beinhalten Verkehrszeichen, Richtungszeichen, Straßenrandbefestigungselemente und allgemeine Zeichen. Verkehrszeichen können zum Beispiel Geschwindigkeitsbegrenzungszeichen (z. B. das Geschwindigkeitsbegrenzungszeichen 1000), Vorfahrtzeichen (z. B. das Vorfahrtzeichen 1005), Routennummernzeichen (z. B. das Routennummernzeichen 1010), Ampelzeichen (z. B. das Ampelzeichen 1015), Stoppzeichen (z. B. das Stoppzeichen 1020) beinhalten. Richtungszeichen können ein Zeichen beinhalten, das einen oder mehrere Pfeile beinhaltet, die eine oder mehrere Richtungen zu unterschiedlichen Stellen angeben. Zum Beispiel können Richtungszeichen ein Autobahnzeichen 1025 mit Pfeilen zum Leiten von Fahrzeugen zu unterschiedlichen Straßen oder Stellen, ein Ausfahrtzeichen 1030 mit einem Pfeil, der Fahrzeuge von einer Straße herunterleitet, usw. beinhalten. Dementsprechend kann mindestens einer aus der Vielzahl von Orientierungspunkten ein Straßenzeichen beinhalten.
  • Allgemeine Zeichen stehen möglicherweise nicht in Beziehung zum Verkehr. Zum Beispiel können allgemeine Zeichen Werbetafeln beinhalten, die zur Werbung verwendet werden, oder eine Willkommenstafel, benachbart zu einer Grenze zwischen zwei Ländern, Staaten, Landkreisen, Städten oder Ortschaften. 10 zeigt ein allgemeines Zeichen 1040 („Joes Restaurant“). Obwohl das allgemeine Zeichen 1040 eine rechteckige Form aufweisen kann, wie in 10 gezeigt wird, kann das allgemeine Zeichen 1040 andere Formen aufweisen, wie etwa Quadrat, Kreis, Dreieck usw.
  • Orientierungspunkte können auch Straßenrandbefestigungselemente beinhalten. Straßenrandbefestigungselemente können Objekte sein, die keine Zeichen sind, und stehen möglicherweise nicht mit Verkehr oder Richtungen in Beziehung. Zum Beispiel können Straßenrandbefestigungselemente Laternenpfosten (z. B. den Laternenpfosten 1035), Stromleitungspfosten, Ampelpfosten usw. beinhalten.
  • Orientierungspunkte können auch Beacons beinhalten, die spezifisch für die Verwendung in einem autonomen Fahrzeugnavigationssystem ausgestaltet sein können. Zum Beispiel können solche Beacons eigenständige Strukturen beinhalten, die in vorbestimmten Intervallen platziert sind, um beim Navigieren eines Host-Fahrzeugs zu helfen. Solche Beacons können auch visuelle/grafische Informationen beinhalten, die zu vorhandenen Verkehrszeichen (z. B. Symbolen, Emblemen, Strichcodes usw.) hinzugefügt werden, die von einem Fahrzeug, das ein Straßensegment entlangfährt, identifiziert oder erkannt werden können. Solche Beacons können auch elektronische Komponenten beinhalten. In solchen Ausführungsformen können elektronische Beacons (z. B. RFID-Tags usw.) verwendet werden, um nicht visuelle Informationen zu einem Host-Fahrzeug zu übertragen. Solche Informationen können zum Beispiel Orientierungspunktidentifizierungs- und/oder Orientierungspunkt-Ortsinformationen beinhalten, die ein Host-Fahrzeug beim Bestimmen seiner Position entlang einer Zieltrajektorie verwenden kann.
  • In einigen Ausführungsformen können die Orientierungspunkte, die in der dünnbesetzten Karte 800 enthalten sind, durch ein Datenobjekt einer vorbestimmten Größe repräsentiert werden. Die Daten, die einen Orientierungspunkt repräsentieren, können beliebige geeignete Parameter zum Identifizieren eines speziellen Orientierungspunkts beinhalten. Zum Beispiel können in einigen Ausführungsformen Orientierungspunkte, die in der dünnbesetzten Karte 800 gespeichert sind, Parameter, wie etwa eine physische Größe des Orientierungspunkts (um z. B. die Schätzung der Distanz zum Orientierungspunkt basierend auf einer bekannten Größe/Maßstab zu unterstützen), eine Distanz zu einem vorherigen Orientierungspunkt, einen seitlichen Versatz, eine Höhe, einen Typcode (z. B. einen Orientierungspunkttyp - welcher Typ von Richtungszeichen, Verkehrszeichen usw.), eine GPS-Koordinate (um z. B. die globale Lokalisierung zu unterstützen), und beliebige andere geeignete Parameter beinhalten. Jeder Parameter kann mit einer Datengröße assoziiert sein. Zum Beispiel kann eine Orientierungspunktgröße unter Verwendung von 8 Bytes Daten gespeichert werden. Eine Distanz zu einem vorherigen Orientierungspunkt, ein seitlicher Versatz und eine Höhe können unter Verwendung von 12 Bytes Daten spezifiziert werden. Ein Typcode, der mit einem Orientierungspunkt, wie etwa einem Richtungszeichen oder einem Verkehrszeichen assoziiert ist, kann etwa 2 Bytes Daten erfordern. Für allgemeine Zeichen kann eine Bildsignatur, die die Identifizierung des allgemeinen Zeichens ermöglicht, unter Verwendung von 50 Bytes Datenspeicher gespeichert werden. Die GPS-Position des Orientierungspunkts kann mit 16 Bytes Datenspeicher assoziiert sein. Diese Datengrößen für jeden Parameter sind nur Beispiele, und andere Datengrößen können ebenfalls verwendet werden. Das Repräsentieren von Orientierungspunkten in der dünnbesetzten Karte 800 auf diese Weise kann eine schlanke Lösung zum effizienten Repräsentieren von Orientierungspunkten in der Datenbank bieten. In einigen Ausführungsformen können die Objekte als standardmäßige semantische Objekte oder als nicht-standardmäßige semantische Objekte bezeichnet werden. Ein standardmäßiges semantisches Objekt kann eine beliebige Klasse von Objekten beinhalten, für die es einen standardisierten Satz von Charakteristiken gibt (z. B. Geschwindigkeitsbegrenzungszeichen, Warnzeichen, Richtungszeichen, Ampeln usw. mit bekannten Abmessungen oder anderen Charakteristiken). Ein nicht-standardmäßiges semantisches Objekt kann ein beliebiges Objekt beinhalten, das nicht mit einem standardisierten Satz von Charakteristiken assoziiert ist (z. B. allgemeine Werbezeichen, Zeichen, die Unternehmen identifizieren, Schlaglöcher, Bäume usw., die variable Abmessungen aufweisen können). Jedes nicht-standardmäßige semantische Objekt kann mit 38 Bytes Daten repräsentiert werden (z. B. 8 Bytes für die Größe; 12 Bytes für die Distanz zu einem vorherigen Orientierungspunkt, seitlicher Versatz und Höhe; 2 Bytes für einen Typcode; und 16 Bytes für Positionskoordinaten). Standardmäßige semantische Objekte können unter Verwendung von noch weniger Daten repräsentiert werden, weil Größeninformationen von dem Kartierungsserver möglicherweise nicht benötigt werden, um das Objekt in der dünnbesetzten Karte vollständig darzustellen.
  • Die dünnbesetzte Karte 800 kann ein Tag-System verwenden, um Orientierungspunkttypen darzustellen. In einigen Fällen kann jedes Verkehrszeichen oder Richtungszeichen mit seinem eigenen Tag assoziiert werden, das als Teil der Orientierungspunktidentifikation in der Datenbank gespeichert werden kann. Zum Beispiel kann die Datenbank eine Größenordnung von 1000 unterschiedlichen Tags aufweisen, um verschiedene Verkehrszeichen darzustellen, und die Größenordnung von etwa 10000 unterschiedlichen Tags, um Richtungszeichen darzustellen. Natürlich kann eine beliebige geeignete Anzahl von Tags verwendet werden, und zusätzliche Tags können nach Bedarf erstellt werden. Allzweckzeichen können in einigen Ausführungsformen unter Verwendung von weniger als etwa 100 Bytes repräsentiert werden (z. B. etwa 86 Bytes, einschließlich 8 Bytes für die Größe; 12 Bytes für die Distanz zum vorherigen Orientierungspunkt, einen seitlichen Versatz und eine Höhe; 50 Bytes für eine Bildsignatur; und 16 Bytes für GPS-Koordinaten).
  • Somit kann für semantische Verkehrszeichen, die keine Bildsignatur erfordern, die Auswirkung der Datendichte auf die dünnbesetzte Karte 800 selbst bei relativ hohen Orientierungspunktedichten von etwa 1 pro 50 m in der Größenordnung von etwa 760 Bytes pro Kilometer liegen (z. B. 20 Orientierungspunkte pro km x 38 Bytes pro Orientierungspunkte = 760 Bytes). Selbst für Allzweckzeichen, die eine Bildsignaturkomponente beinhalten, beträgt die Auswirkung der Datendichte etwa 1,72 kB pro km (z. B. 20 Orientierungspunkte pro km x 86 Bytes pro Orientierungspunkt = 1.720 Bytes). Bei semantischen Verkehrszeichen entspricht dies etwa 76 kB pro Stunde Datennutzung für ein Fahrzeug, das mit 100 km/h fährt. Für Allzweckzeichen entspricht dies etwa 170 kB pro Stunde für ein Fahrzeug, das mit 100 km/h fährt. Es sei angemerkt, dass in einigen Umgebungen (z. B. städtischen Umgebungen) eine viel höhere Dichte von detektierten Objekten vorliegen kann, die zur Aufnahme in die dünnbesetzte Karte vorhanden sind (vielleicht mehr als eines pro Meter). In einigen Ausführungsformen kann ein im Allgemeinen rechteckiges Objekt, wie etwa ein rechteckiges Zeichen, in der dünnbesetzten Karte 800 durch nicht mehr als 100 Bytes Daten repräsentiert werden. Die Repräsentation des im Allgemeinen rechteckigen Objekts (z. B. das allgemeine Zeichen 1040) in der dünnbesetzten Karte 800 kann eine komprimierte Bildsignatur oder Bild-Hash (z. B. die komprimierte Bildsignatur 1045) beinhalten, die mit dem im Allgemeinen rechteckigen Objekt assoziiert ist. Diese komprimierte Bildsignatur/der Bild-Hash kann unter Verwendung eines beliebigen geeigneten Bild-Hash-Algorithmus bestimmt werden und kann zum Beispiel verwendet werden, bei der Identifizierung eines Allzweckzeichens, zum Beispiel eines erkannten Orientierungspunkts, zu helfen. Eine solche komprimierte Bildsignatur (z. B. Bildinformationen, die aus tatsächlichen Bilddaten abgeleitet werden, die ein Objekt repräsentieren) kann die Notwendigkeit der Speicherung eines tatsächlichen Bildes eines Objekts oder die Notwendigkeit einer vergleichenden Bildanalyse, die an tatsächlichen Bildern durchgeführt wird, unnötig machen, um Orientierungspunkte zu erkennen.
  • Bezugnehmend auf 10 kann die dünnbesetzte Karte 800 eine komprimierte Bildsignatur 1045, die mit einem allgemeinen Zeichen 1040 assoziiert ist, anstelle eines tatsächlichen Bildes des allgemeinen Zeichens 1040 beinhalten oder speichern. Zum Beispiel kann, nachdem eine Bildaufnahmevorrichtung (z. B. die Bildaufnahmevorrichtung 122, 124 oder 126) ein Bild des allgemeinen Zeichens 1040 aufgenommen hat, ein Prozessor (z. B. der Bildprozessor 190 oder ein beliebiger anderer Prozessor, der Bilder entweder an Bord oder an einem relativ zu einem Host-Fahrzeug entfernten Ort verarbeiten kann) eine Bildanalyse durchführen, um die komprimierte Bildsignatur 1045 zu extrahieren/erstellen, die eine eindeutige Signatur oder ein eindeutiges Muster beinhaltet, die mit dem allgemeinen Zeichen 1040 assoziiert sind. In einer Ausführungsform kann die komprimierte Bildsignatur 1045 eine Form, ein Farbmuster, ein Helligkeitsmuster oder ein beliebiges anderes Merkmal beinhalten, das aus dem Bild des allgemeinen Zeichens 1040 extrahiert werden kann, um das allgemeine Zeichens 1040 zu beschreiben.
  • Zum Beispiel können in 10 die Kreise, Dreiecke und Sterne, die in der komprimierten Bildsignatur 1045 gezeigt sind, Gebiete unterschiedlicher Farben repräsentieren. Das durch die Kreise, Dreiecke und Sterne repräsentierte Muster kann in der dünnbesetzten Karte 800 gespeichert werden, z. B. innerhalb der 50 Bytes, die dazu bestimmt sind, eine Bildsignatur zu beinhalten. Insbesondere sollen die Kreise, Dreiecke und Sterne nicht unbedingt angeben, dass solche Formen als Teil der Bildsignatur gespeichert werden. Vielmehr sollen diese Formen konzeptionell erkennbare Gebiete mit erkennbaren Farbdifferenzen, Texturgebieten, grafischen Formen oder anderen Variationen in Charakteristiken repräsentieren, die mit einem Allzweckzeichen assoziiert sein können. Solche komprimierten Bildsignaturen können verwendet werden, um einen Orientierungspunkt in der Form eines allgemeinen Zeichens zu identifizieren. Zum Beispiel kann die komprimierte Bildsignatur dazu verwendet werden, eine Gleich-Nicht-Gleich-Analyse basierend auf einem Vergleich einer gespeicherten komprimierten Bildsignatur mit Bilddaten durchzuführen, die zum Beispiel unter Verwendung einer Kamera an Bord eines autonomen Fahrzeugs aufgenommen wurden.
  • Dementsprechend kann die Vielzahl von Orientierungspunkten durch Bildanalyse der Vielzahl von Bildern identifiziert werden, die erfasst werden, wenn eines oder mehrere Fahrzeuge das Straßensegment befahren. Wie nachstehend mit Bezug auf „Crowdsourcing“ erklärt wird, kann die Bildanalyse zum Identifizieren der Vielzahl von Orientierungspunkten in einigen Ausführungsformen das Annehmen potenzieller Orientierungspunkte beinhalten, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt vorkommt, zu Bildern, in denen der Orientierungspunkt nicht vorkommt, einen Schwellenwert überschreitet. Des Weiteren kann in einigen Ausführungsformen die Bildanalyse zum Identifizieren der Vielzahl von Orientierungspunkten beinhalten, potenzielle Orientierungspunkte zu verwerfen, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt nicht vorkommt, zu Bildern, in denen der Orientierungspunkt vorkommt, einen Schwellenwert überschreitet.
  • Um auf die Zieltrajektorien zurückzukommen, die ein Host-Fahrzeug verwenden kann, um ein spezielles Straßensegment zu navigieren, zeigt 11A Polynomrepräsentationen von Trajektorien, die während eines Prozesses des Aufbaus oder Aufrechterhaltens einer dünnbesetzten Karte 800 aufgenommen werden. Eine Polynomrepräsentation einer Zieltrajektorie, die in der dünnbesetzten Karte 800 beinhaltet ist, kann basierend auf zwei oder mehr rekonstruierten Trajektorien früherer Fahrten von Fahrzeugen entlang desselben Straßensegments bestimmt werden. In einigen Ausführungsformen kann die Polynomrepräsentation der Zieltrajektorie, die in der dünnbesetzten Karte 800 beinhaltet ist, eine Aggregation von zwei oder mehr rekonstruierten Trajektorien früherer Fahrten von Fahrzeugen entlang desselben Straßensegments sein. In einigen Ausführungsformen kann die Polynomrepräsentation der Zieltrajektorie, die in der dünnbesetzten Karte 800 beinhaltet ist, ein Mittelwert der zwei oder mehr rekonstruierten Trajektorien früherer Fahrten von Fahrzeugen entlang desselben Straßensegments sein. Andere mathematische Operationen können ebenfalls verwendet werden, um eine Zieltrajektorie entlang eines Straßenwegs basierend auf rekonstruierten Trajektorien zu erstellen, die von Fahrzeugen erhoben wurden, die ein Straßensegment entlanggefahren sind.
  • Wie in 11A gezeigt wird, kann ein Straßensegment 1100 von einer Anzahl von Fahrzeugen 200 zu unterschiedlichen Zeiten befahren werden. Jedes Fahrzeug 200 kann Daten in Bezug auf einen Weg erheben, den das Fahrzeug entlang des Straßensegments genommen hat. Der von einem speziellen Fahrzeug gefahrene Weg kann basierend auf Kameradaten, Beschleunigungsmesserinformationen, Geschwindigkeitssensorinformationen und/oder GPS-Informationen, neben anderen potenziellen Quellen, bestimmt werden. Solche Daten können verwendet werden, um Trajektorien von Fahrzeugen zu rekonstruieren, die das Straßensegment entlangfahren, und basierend auf diesen rekonstruierten Trajektorien kann eine Zieltrajektorie (oder mehrere Zieltrajektorien) für das spezielle Straßensegment bestimmt werden. Solche Zieltrajektorien können einen bevorzugten Weg eines Host-Fahrzeugs (das z. B. von einem autonomen Navigationssystem geführt wird) darstellen, wenn das Fahrzeug das Straßensegment entlangfährt.
  • In dem in 11A gezeigten Beispiel kann eine erste rekonstruierte Trajektorie 1101 basierend auf Daten bestimmt werden, die aus einem ersten Fahrzeug, das das Straßensegment 1100 in einem ersten Zeitraum (z. B. Tag 1) befährt, empfangen werden, eine zweite rekonstruierte Trajektorie 1102 kann aus einem zweiten Fahrzeug, das das Straßensegment 1100 in einem zweiten Zeitraum (z. B. Tag 2) befährt, erhalten werden, und eine dritte rekonstruierte Trajektorie 1103 kann von einem dritten Fahrzeug, das das Straßensegment 1100 in einem dritten Zeitraum (z. B. Tag 3) befährt, erhalten werden. Jede Trajektorie 1101, 1102 und 1103 kann durch ein Polynom, wie etwa ein dreidimensionales Polynom, repräsentiert werden. Es sei angemerkt, dass in einigen Ausführungsformen eine beliebige der rekonstruierten Trajektorien an Bord der Fahrzeuge, die das Straßensegment 1100 befahren, zusammengefügt werden kann.
  • Zusätzlich oder alternativ können solche rekonstruierten Trajektorien auf Seite eines Servers basierend auf Informationen rekonstruiert werden, die aus Fahrzeugen empfangen werden, die das Straßensegment 1100 befahren. Zum Beispiel können die Fahrzeuge 200 in einigen Ausführungsformen Daten bezüglich ihrer Bewegung entlang des Straßensegments 1100 (z. B. unter anderem Lenkwinkel, Kurs, Zeit, Position, Geschwindigkeit, abgetastete Straßengeometrie und/oder abgetastete Orientierungspunkte) zu einem oder mehreren Servern senden. Der Server kann Trajektorien für Fahrzeuge 200 basierend auf den empfangenen Daten rekonstruieren. Der Server kann auch eine Zieltrajektorie zum Führen der Navigation des autonomen Fahrzeugs, das zu einem späteren Zeitpunkt dasselbe Straßensegments 1100 entlangfahren wird, basierend auf der ersten, zweiten und dritten Trajektorie 1101, 1102 und 1103 generieren. Obwohl eine Zieltrajektorie mit einem einzelnen vorherigen Befahren eines Straßensegments assoziiert sein kann, kann in einigen Ausführungsformen jede Zieltrajektorie, die in der dünnbesetzten Karte 800 beinhaltet ist, basierend auf zwei oder mehr rekonstruierten Trajektorien von Fahrzeugen, die dasselbe Straßensegment befahren, bestimmt werden. In 11A wird die Zieltrajektorie durch 1110 repräsentiert. In einigen Ausführungsformen kann die Zieltrajektorie 1110 basierend auf einem Mittelwert der ersten, zweiten und dritten Trajektorie 1101, 1102 und 1103 generiert werden. In einigen Ausführungsformen kann die Zieltrajektorie 1110, die in der dünnbesetzten Karte 800 beinhaltet ist, eine Aggregation (z. B. eine gewichtete Kombination) von zwei oder mehr rekonstruierten Trajektorien sein.
  • Am Kartierungsserver kann der Server tatsächliche Trajektorien für ein spezielles Straßensegment aus mehreren Sammelfahrzeugen empfangen, die das Straßensegment befahren. Um eine Zieltrajektorie für jeden gültigen Weg entlang des Straßensegments (z. B. jeder Fahrspur, jeder Fahrrichtung, jedem Weg über eine Kreuzung usw.) zu generieren, kann die empfangene tatsächliche Trajektorie ausgerichtet werden. Der Ausrichtungsprozess kann beinhalten, Objekte/Merkmale, die entlang des Straßensegments identifiziert wurden, zusammen mit den gesammelten Positionen dieser detektierten Objekte/Merkmale zu verwenden, um die tatsächlichen gesammelten Trajektorien miteinander zu korrelieren. Sobald sie ausgerichtet sind, kann ein Mittelwert oder eine „am besten passende“ Trajektorie für jede verfügbare Fahrspur usw. basierend auf den aggregierten, korrelierten/ausgerichteten tatsächlichen Trajektorien bestimmt werden.
  • Die 11B und 11C veranschaulichen ferner das Konzept von Zieltrajektorien, die mit Straßensegmenten assoziiert sind, die innerhalb einer geografischen Region 1111 vorhanden sind. Wie in 11B gezeigt wird, kann ein erstes Straßensegment 1120 innerhalb der geografischen Region 1111 eine mehrspurige Straße beinhalten, die zwei Fahrspuren 1122, die für die Fahrzeugfahrt in einer ersten Richtung bestimmt sind, und zwei zusätzliche Fahrspuren 1124, die für die Fahrzeugfahrt in einer zweiten Richtung, entgegengesetzt zur ersten Richtung, bestimmt sind, beinhaltet. Die Fahrspuren 1122 und die Fahrspuren 1124 können durch eine doppelte gelbe Linie 1123 getrennt sein. Der geografische Bereich 1111 kann auch ein abzweigendes Straßensegment 1130 beinhalten, das sich mit dem Straßensegment 1120 schneidet. Das Straßensegment 1130 kann eine zweispurige Straße beinhalten, wobei jede Fahrspur für eine andere Fahrtrichtung bestimmt ist. Die geografische Region 1111 kann auch andere Straßenmerkmale beinhalten, wie etwa eine Stopplinie 1132, ein Stoppzeichen 1134, ein Geschwindigkeitsbegrenzungszeichen 1136 und ein Gefahrenzeichen 1138.
  • Wie in 11C gezeigt wird, kann die dünnbesetzte Karte 800 eine lokale Karte 1140 beinhalten, die ein Straßenmodell zum Unterstützen der autonomen Navigation von Fahrzeugen innerhalb der geografischen Region 1111 beinhaltet. Zum Beispiel kann die lokale Karte 1140 Zieltrajektorien für eine oder mehrere Fahrspuren beinhalten, die mit den Straßensegmenten 1120 und/oder 1130 innerhalb der geografischen Region 1111 assoziiert sind. Zum Beispiel kann die lokale Karte 1140 die Zieltrajektorien 1141 und/oder 1142 beinhalten, auf die ein autonomes Fahrzeug zugreifen kann oder auf die es zurückgreifen kann, wenn es die Fahrspuren 1122 befährt. Gleichermaßen kann die lokale Karte 1140 die Zieltrajektorien 1143 und/oder 1144 beinhalten, auf die ein autonomes Fahrzeug zugreifen kann oder auf die es zurückgreifen kann, wenn es die Fahrspuren 1124 befährt. Ferner kann die lokale Karte 1140 die Zieltrajektorien 1145 und/oder 1146 beinhalten, auf die ein autonomes Fahrzeug zugreifen kann oder auf die es zurückgreifen kann, wenn es das Straßensegment 1130 befährt. Die Zieltrajektorie 1147 stellt einen bevorzugten Weg dar, dem ein autonomes Fahrzeug folgen sollte, wenn es von den Fahrspuren 1120 (und insbesondere relativ zu der Zieltrajektorie 1141, die mit einer äußersten rechten Fahrspur der Fahrspuren 1120 assoziiert ist) zu dem Straßensegment 1130 (und insbesondere relativ zu einer Zieltrajektorie 1145, die mit einer ersten Seite des Straßensegments 1130 assoziiert ist) übergeht. Gleichermaßen stellt die Zieltrajektorie 1148 einen bevorzugten Weg dar, dem ein autonomes Fahrzeug folgen sollte, wenn es von dem Straßensegment 1130 (und insbesondere relativ zu der Zieltrajektorie 1146) zu einem Abschnitt des Straßensegments 1124 (und insbesondere, wie gezeigt, relativ zu einer Zieltrajektorie 1143, die mit einer linken Fahrspur der Fahrspuren 1124 assoziiert ist) übergeht.
  • Die dünnbesetzte Karte 800 kann auch Repräsentationen von anderen straßenbezogenen Merkmalen beinhalten, die mit der geografischen Region 1111 assoziiert sind. Zum Beispiel kann die dünnbesetzte Karte 800 auch Repräsentationen eines oder mehrerer Orientierungspunkte beinhalten, die in der geografischen Region 1111 identifiziert wurden. Solche Orientierungspunkte können einen ersten Orientierungspunkt 1150, der mit der Stopplinie 1132 assoziiert ist, einen zweiten Orientierungspunkt 1152, der mit dem Stoppzeichen 1134 assoziiert ist, einen dritten Orientierungspunkt, der mit dem Geschwindigkeitsbegrenzungszeichen 1154 assoziiert ist, und einen vierten Orientierungspunkt 1156, der mit dem Gefahrenzeichen 1138 assoziiert ist, beinhalten. Solche Orientierungspunkte können zum Beispiel verwendet werden, um ein autonomes Fahrzeug beim Bestimmen seines aktuellen Orts relativ zu einer beliebigen der gezeigten Zieltrajektorien zu unterstützen, so dass das Fahrzeug seinen Kurs anpassen kann, um eine Richtung der Zieltrajektorie am bestimmten Ort abzugleichen.
  • In einigen Ausführungsformen kann die dünnbesetzte Karte 800 auch Straßensignaturprofile beinhalten. Solche Straßensignaturprofile können mit einer beliebigen erkennbaren/messbaren Variation in mindestens einem Parameter, der mit einer Straße assoziiert ist, assoziiert sein. Zum Beispiel können in einigen Fällen solche Profile mit Variationen der Straßenoberflächeninformationen assoziiert sein, wie etwa Variationen der Oberflächenunebenheit eines speziellen Straßensegments, Variationen der Straßenbreite über ein spezielles Straßensegment, Variationen der Distanzen zwischen gestrichelten Linien, die entlang eines speziellen Straßensegments gemalt sind, Variationen der Straßenkrümmung entlang eines speziellen Straßensegments usw. 11D zeigt ein Beispiel eines Straßensignaturprofils 1160. Obwohl das Profil 1160 einen beliebigen der vorstehend erwähnten Parameter oder andere repräsentieren kann, kann das Profil 1160 in einem Beispiel ein Maß der Straßenoberflächenunebenheit darstellen, wie es zum Beispiel durch Überwachen eines oder mehrerer Sensoren erhalten wurde, die Ausgaben bereitstellen, die eine Menge der Aufhängungsverschiebung angeben, wenn ein Fahrzeug ein spezielles Straßensegment befährt.
  • 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 wurden. Solche Profile können zum Beispiel beim Bestimmen eines speziellen Orts eines autonomen Fahrzeugs relativ zu einer speziellen Zieltrajektorie nützlich sein. Das heißt, wenn es ein Straßensegment befährt, kann ein autonomes Fahrzeug ein Profil messen, das mit einem oder mehreren Parametern assoziiert ist, die mit dem Straßensegment assoziiert sind. Wenn das gemessene Profil mit einem vorbestimmten Profil korreliert/abgeglichen werden kann, das die Parametervariation in Bezug auf die Position entlang des Straßensegments darstellt, können die gemessenen und vorbestimmten Profile verwendet werden (z. B. durch Überlagern entsprechender Abschnitte der gemessenen und vorbestimmten Profile), um eine aktuelle Position entlang des Straßensegments und somit eine aktuelle Position relativ zu einer Zieltrajektorie für das Straßensegment zu bestimmen.
  • In einigen Ausführungsformen kann die dünnbesetzte Karte 800 unterschiedliche Trajektorien basierend auf unterschiedlichen Charakteristiken beinhalten, die mit einem Benutzer von autonomen Fahrzeugen, Umgebungsbedingungen und/oder anderen Parametern in Bezug auf das Fahren assoziiert sind. Zum Beispiel können in einigen Ausführungsformen unterschiedliche Trajektorien basierend auf unterschiedlichen Benutzerpräferenzen und/oder -profilen generiert werden. Die dünnbesetzte Karte 800, die solche unterschiedlichen Trajektorien beinhaltet, kann an unterschiedliche autonome Fahrzeuge unterschiedlicher Benutzer bereitgestellt werden. Zum Beispiel können einige Benutzer es bevorzugen, mautpflichtige Straßen zu vermeiden, während andere es bevorzugen können, die kürzesten oder schnellsten Routen zu nehmen, unabhängig davon, ob es eine mautpflichtige Straße auf der Route gibt. Die offenbarten Systeme können unterschiedliche dünnbesetzte Karten mit unterschiedlichen Trajektorien basierend auf solchen unterschiedlichen Benutzerpräferenzen oder -profilen generieren. Als ein weiteres Beispiel können einige Benutzer es bevorzugen, auf einer Überholspur zu fahren, während andere es bevorzugen können, immer eine Position auf der zentralen Fahrspur aufrechtzuerhalten.
  • Unterschiedliche Trajektorien können basierend auf unterschiedlichen Umgebungsbedingungen, wie etwa Tag und Nacht, Schnee, Regen, Nebel usw., generiert werden und in der dünnbesetzten Karte 800 beinhaltet sein. Autonomen Fahrzeugen, die unter unterschiedlichen Umgebungsbedingungen fahren, kann die dünnbesetzte Karte 800 bereitgestellt werden, die basierend auf solchen unterschiedlichen Umgebungsbedingungen generiert wurde. In einigen Ausführungsformen können Kameras, die in autonomen Fahrzeugen bereitgestellt werden, die Umgebungsbedingungen detektieren und solche Informationen zurück an einen Server bereitstellen, der dünnbesetzte Karten generiert und bereitstellt. Zum Beispiel kann der Server eine bereits generierte dünnbesetzte Karte 800 generieren oder aktualisieren, damit sie Trajektorien beinhaltet, die für autonomes Fahren unter den detektierten Umgebungsbedingungen möglicherweise besser geeigneter oder sicherer sind. Das Aktualisieren der dünnbesetzten Karte 800 basierend auf Umgebungsbedingungen kann dynamisch durchgeführt werden, während die autonomen Fahrzeuge Straßen entlangfahren.
  • Andere unterschiedliche Parameter in Bezug auf das Fahren können ebenfalls als Basis für das Generieren und Bereitstellen unterschiedlicher dünnbesetzter Karten für unterschiedliche autonome Fahrzeuge verwendet werden. Wenn zum Beispiel ein autonomes Fahrzeug mit einer hohen Geschwindigkeit fährt, können Drehungen enger sein. Trajektorien, die mit spezifischen Fahrspuren assoziiert sind, können, statt Straßen, in der dünnbesetzten Karte 800 beinhaltet sein, so dass das autonome Fahrzeug innerhalb einer spezifischen Fahrspur bleiben kann, während das Fahrzeug einer spezifischen Trajektorie folgt. Wenn ein Bild, das von einer Kamera an Bord des autonomen Fahrzeugs aufgenommen wurde, angibt, dass das Fahrzeug aus der Fahrspur abgewichen ist (z. B. die Fahrspurmarkierung überquert hat), kann eine Aktion innerhalb des Fahrzeugs ausgelöst werden, um das Fahrzeug gemäß der spezifischen Trajektorie zurück auf die festgelegte Fahrspur zu bringen.
  • Crowdsourcing einer dünnbesetzten Karte
  • Die offenbarten dünnbesetzten Karten können durch Crowdsourcing effizient (und passiv) generiert werden. Zum Beispiel kann ein beliebiges Privat- oder Nutzfahrzeug, das mit einer Kamera (z. B. einer einfachen Kamera mit niedriger Auflösung, die normalerweise bei heutigen Fahrzeugen als OEM-Ausstattung beinhaltet ist) und einem geeigneten Bildanalyseprozessor ausgestattet ist, als ein Sammelfahrzeug dienen. Es ist keine Spezialausrüstung (z. B. hochauflösende Bildgebungs- und/oder Positionierungssysteme) erforderlich. Als Ergebnis der offenbarten Crowdsourcing-Technik können die generierten dünnbesetzten Karten äußerst genau sein und können extrem verfeinerte Positionsinformationen beinhalten (was Navigationsfehlergrenzen von 10 cm oder weniger ermöglicht), ohne dass eine spezialisierte Bildgebungs- oder Abtastausrüstung als Eingabe für den Kartengenerierungsprozess erforderlich ist. Crowdsourcing ermöglicht auch sehr viel schnellere (und kostengünstigere) Aktualisierungen der generierten Karten, weil dem Kartierungsserversystem kontinuierlich neue Fahrtinformationen von allen Straßen zur Verfügung stehen, die von Privat- oder Nutzfahrzeugen befahren werden, die minimal ausgerüstet sind, um auch als Sammelfahrzeuge zu dienen. Es sind keine dedizierten Fahrzeuge erforderlich, die mit hochauflösenden Bildgebungs- und Kartierungssensoren ausgestattet sind. Daher können die mit dem Bau solcher Spezialfahrzeuge verbundenen Ausgaben vermieden werden. Ferner können Aktualisierungen der vorliegend offenbarten dünnbesetzten Karten sehr viel schneller durchgeführt werden als bei Systemen, die auf dedizierte, spezialisierte Kartierungsfahrzeuge zurückgreifen (die aufgrund ihrer Kosten und Spezialausrüstung typischerweise auf eine Flotte von spezialisierten Fahrzeugen mit einer weit geringeren Anzahl begrenzt sind, als auf die Anzahl von Privat- oder Nutzfahrzeugen, die bereits zum Durchführen der offenbarten Sammeltechniken verfügbar sind).
  • Die durch Crowdsourcing generierten offenbarten dünnbesetzten Karten können äußerst genau sein, weil sie basierend auf vielen Eingaben von mehreren (mehrere Dutzende, Hunderte, Millionen usw.) von Sammelfahrzeugen generiert werden können, die Fahrtinformationen entlang eines speziellen Straßensegments erhoben haben. Zum Beispiel kann jedes Sammelfahrzeug, das ein spezielles Straßensegment entlangfährt, seine tatsächliche Trajektorie aufzeichnen und kann Positionsinformationen relativ zu detektierten Objekten/Merkmalen entlang des Straßensegments bestimmen. Diese Informationen werden aus mehreren Sammelfahrzeugen an einen Server weitergegeben. Die tatsächlichen Trajektorien werden aggregiert, um eine verfeinerte Zieltrajektorie für jeden gültigen Fahrweg entlang des Straßensegments zu generieren. Zusätzlich können die Positionsinformationen aggregiert werden, die von den mehreren Sammelfahrzeugen für jedes der detektierten Objekte/Merkmale entlang des Straßensegments (semantisch oder nicht semantisch) erhoben wurden. Als Ergebnis kann die kartierte Position jedes detektierten Objekts/Merkmals einen Mittelwert von Hunderten, Tausenden oder Millionen von einzeln bestimmten Positionen für jedes detektierte Objekt/Merkmal bilden. Eine solche Technik kann extrem genau kartierte Positionen für die detektierten Objekte/Merkmale ergeben.
  • In einigen Ausführungsformen können die offenbarten Systeme und Verfahren eine dünnbesetzte Karte für eine autonome Fahrzeugnavigation generieren. Zum Beispiel können offenbarte Systeme und Verfahren Crowdsourcing-Daten zur Generierung einer dünnbesetzten Karte verwenden, die ein oder mehrere autonome Fahrzeuge verwenden können, um entlang eines Systems von Straßen zu navigieren. Im hier verwendeten Sinne bedeutet „Crowdsourcing“, dass Daten aus verschiedenen Fahrzeugen (z. B. autonomen Fahrzeugen) empfangen werden, die zu unterschiedlichen Zeiten auf einem Straßensegment fahren, und dass solche Daten verwendet werden, um das Straßenmodell, einschließlich dünnbesetzter Kartenkacheln, zu generieren und/oder zu aktualisieren. Das Modell oder eine beliebige seiner dünnbesetzten Kartenkacheln kann wiederum zu den Fahrzeugen oder zu anderen Fahrzeugen, die später das Straßensegment entlangfahren, übertragen werden, um die autonome Fahrzeugnavigation zu unterstützen. Das Straßenmodell kann eine Vielzahl von Zieltrajektorien beinhalten, die bevorzugte Trajektorien repräsentieren, denen autonome Fahrzeuge folgen sollten, wenn sie ein Straßensegment befahren. Die Zieltrajektorien können dieselben sein wie eine rekonstruierte tatsächliche Trajektorie, die von einem Fahrzeug erhoben wird, das ein Straßensegment befährt, die vom Fahrzeug zu einem Server übertragen werden kann. In einigen Ausführungsformen können sich die Zieltrajektorien von tatsächlichen Trajektorien unterscheiden, die ein oder mehrere Fahrzeuge zuvor genommen haben, wenn sie ein Straßensegment befahren. Die Zieltrajektorien können basierend auf tatsächlichen Trajektorien generiert werden (z. B. durch Mitteln oder eine beliebige andere geeignete Operation).
  • Die Fahrzeugtrajektoriendaten, die ein Fahrzeug zu einem Server hochladen kann, können der tatsächlichen rekonstruierten Trajektorie für das Fahrzeug entsprechen oder können einer empfohlenen Trajektorie entsprechen, die auf der tatsächlichen rekonstruierten Trajektorie des Fahrzeugs basieren oder zu dieser in Bezug stehen kann, sich aber von der tatsächlichen rekonstruierten Trajektorie unterscheiden kann. Zum Beispiel können Fahrzeuge ihre tatsächlichen rekonstruierten Trajektorien modifizieren und die modifizierten tatsächlichen Trajektorien an den Server übermitteln (z. B. empfehlen). Das Straßenmodell kann die empfohlenen, modifizierten Trajektorien als Zieltrajektorien für die autonome Navigation anderer Fahrzeuge verwenden.
  • Zusätzlich zu den Trajektorieninformationen können andere Informationen zur potenziellen Verwendung beim Erstellen einer dünnbesetzten Datenkarte 800 Informationen beinhalten, die sich auf potenzielle Kandidaten-Orientierungspunkte beziehen. Zum Beispiel können die offenbarten Systeme und Verfahren durch Crowdsourcing von Informationen potenzielle Orientierungspunkte in einer Umgebung identifizieren und Orientierungspunktpositionen verfeinern. Die Orientierungspunkte können von einem Navigationssystem autonomer Fahrzeuge verwendet werden, um die Position des Fahrzeugs entlang der Zieltrajektorien zu bestimmen und/oder anzupassen.
  • Die rekonstruierten Trajektorien, die ein Fahrzeug generieren kann, wenn das Fahrzeug eine Straße entlangfährt, können durch ein beliebiges geeignetes Verfahren erhalten werden. In einigen Ausführungsformen können die rekonstruierten Trajektorien durch Zusammenfügen von Bewegungssegmenten für das Fahrzeug unter Verwendung z. B. einer Eigenbewegungsschätzung (z. B. dreidimensionaler Translation und dreidimensionaler Rotation der Kamera und somit der Karosserie des Fahrzeugs) entwickelt werden. Die Rotations- und Translationsschätzung kann basierend auf einer Analyse von Bildern, die von einer oder mehreren Bildaufnahmevorrichtungen aufgenommen werden, zusammen mit Informationen aus anderen Sensoren oder Vorrichtungen, wie etwa Trägheitssensoren und Geschwindigkeitssensoren, bestimmt werden. Zum Beispiel können die Trägheitssensoren einen Beschleunigungsmesser oder andere geeignete Sensoren beinhalten, die dazu konfiguriert sind, Änderungen der Translation und/oder Rotation der Fahrzeugkarosserie zu messen. Das Fahrzeug kann einen Geschwindigkeitssensor beinhalten, der eine Geschwindigkeit des Fahrzeugs misst.
  • Bei einigen Ausführungsformen kann die Eigenbewegung der Kamera (und somit der Fahrzeugkarosserie) basierend auf einer optischen Flussanalyse der aufgenommenen Bilder geschätzt werden. Eine optische Flussanalyse einer Sequenz von Bildern identifiziert eine Bewegung von Pixeln aus der Sequenz von Bildern und bestimmt basierend auf der identifizierten Bewegung Bewegungen des Fahrzeugs. Die Eigenbewegung kann über der Zeit und entlang des Straßensegments integriert werden, um eine Trajektorie zu rekonstruieren, die mit dem Straßensegment assoziiert ist, dem das Fahrzeug gefolgt ist.
  • Daten (z. B. rekonstruierte Trajektorien), die von mehreren Fahrzeugen in mehreren Fahrten entlang eines Straßensegments zu unterschiedlichen Zeiten erhoben wurden, können verwendet werden, um das Straßenmodell (z. B. einschließlich der Zieltrajektorien usw.) zu erstellen, das in der dünnbesetzten Datenkarte 800 beinhaltet ist. Daten, die von mehreren Fahrzeugen in mehreren Fahrten entlang eines Straßensegments zu unterschiedlichen Zeiten erhoben wurden, können auch gemittelt werden, um eine Genauigkeit des Modells zu erhöhen. In einigen Ausführungsformen können Daten in Bezug auf die Straßengeometrie und/oder Orientierungspunkte aus mehreren Fahrzeugen empfangen werden, die zu unterschiedlichen Zeiten über das gemeinsame Straßensegment fahren. Solche Daten, die aus unterschiedlichen Fahrzeugen empfangen wurden, können kombiniert werden, um das Straßenmodell zu generieren und/oder das Straßenmodell zu aktualisieren.
  • Die Geometrie einer rekonstruierten Trajektorie (und auch einer Zieltrajektorie) entlang eines Straßensegments kann durch eine Kurve im dreidimensionalen Raum repräsentiert werden, die ein Spline sein kann, der dreidimensionale Polynome verbindet. Die rekonstruierte Trajektorienkurve kann anhand der Analyse eines Videostroms oder einer Vielzahl von Bildern bestimmt werden, die von einer am Fahrzeug installierten Kamera aufgenommen wurden. In einigen Ausführungsformen wird ein Ort in jedem Einzelbild oder Bild identifiziert, der sich einige Meter vor der aktuellen Position des Fahrzeugs befindet. Dieser Ort ist der Ort, zu dem das Fahrzeug in einem vorbestimmten Zeitraum voraussichtlich fahren wird. Diese Operation kann Einzelbild für Einzelbild wiederholt werden, und gleichzeitig kann das Fahrzeug die Eigenbewegung (Rotation und Translation) der Kamera berechnen. Bei jedem Einzelbild oder Bild wird ein Nahbereichsmodell für den gewünschten Weg von dem Fahrzeug in einem Referenzrahmen generiert, der mit der Kamera verbunden ist. Die Nahbereichsmodelle können zusammengefügt werden, um ein dreidimensionales Modell der Straße in einem beliebigen Koordinatenrahmen zu erhalten, der ein beliebiger oder ein vorbestimmter Koordinatenrahmen sein kann. Das dreidimensionale Modell der Straße kann dann durch einen Spline angepasst werden, der ein oder mehrere Polynome geeigneter Ordnungen beinhalten oder verbinden kann.
  • Um das Nahbereichsstraßenmodell bei jedem Einzelbild abzuschließen, können ein oder mehrere Detektionsmodule verwendet werden. Zum Beispiel kann ein Bottom-up-Fahrspurdetektionsmodul verwendet werden. Das Bottom-up-Fahrspurdetektionsmodul kann nützlich sein, wenn Fahrspurmarkierungen auf der Straße gezogen sind. Dieses Modul kann nach Rändern im Bild suchen und fügt sie zusammen, um die Fahrspurmarkierungen zu bilden. Ein zweites Modul kann zusammen mit dem Bottom-up-Fahrspurdetektionsmodul verwendet werden. Das zweite Modul ist ein tiefes neuronales End-to-End-Netzwerk, das trainiert werden kann, um den korrekten Nahbereichsweg aus einem eingegebenen Bild vorherzusagen. In beiden Modulen kann das Straßenmodell im Bildkoordinatenrahmen detektiert und in einen dreidimensionalen Raum transformiert werden, der virtuell mit der Kamera verbunden sein kann.
  • Obwohl das Modellierungsverfahren für rekonstruierte Trajektorien eine Akkumulation von Fehlern aufgrund der Integration von Eigenbewegung über einen langen Zeitraum einbringen kann, was eine Rauschkomponente beinhalten kann, können solche Fehler unbedeutend sein, da das generierte Modell ausreichende Genauigkeit für die Navigation im lokalen Maßstab bereitstellen kann. Zusätzlich ist es möglich, den integrierten Fehler durch Verwenden externer Informationsquellen aufzuheben, wie etwa Satellitenbilder oder geodätische Messungen. Zum Beispiel können die offenbarten Systeme und Verfahren einen GNSS-Empfänger verwenden, um akkumulierte Fehler aufzuheben. Die GNSS-Positionierungssignale sind jedoch möglicherweise nicht immer verfügbar und genau. Die offenbarten Systeme und Verfahren können eine Lenkanwendung ermöglichen, die schwach von der Verfügbarkeit und Genauigkeit der GNSS-Positionierung abhängt. In solchen Systemen kann die Verwendung der GNSS-Signale beschränkt sein. Zum Beispiel verwenden die offenbarten Systeme in einigen Ausführungsformen die GNSS-Signale möglicherweise nur zu Datenbankindexierungszwecken.
  • In einigen Ausführungsformen kann der Bereichsmaßstab (z. B. der lokale Maßstab), der für eine autonome Fahrzeugnavigationslenkanwendung relevant sein kann, in der Größenordnung von 50 Metern, 100 Metern, 200 Metern, 300 Metern usw. liegen. Solche Distanzen können verwendet werden, weil das geometrische Straßenmodell hauptsächlich für zwei Zwecke verwendet wird: Planen der vorausliegenden Trajektorie und Lokalisieren des Fahrzeugs im Straßenmodell. In einigen Ausführungsformen kann die Planungsaufgabe das Modell über einen typischen Bereich von 40 Metern voraus (oder eine beliebige andere geeignete Distanz voraus, wie etwa 20 Meter, 30 Meter, 50 Meter) verwenden, wenn der Steueralgorithmus das Fahrzeug gemäß einem Zielpunkt lenkt, der sich 1,3 Sekunden voraus befindet (oder einer beliebigen anderen Zeit, wie etwa 1,5 Sekunden, 1,7 Sekunden, 2 Sekunden usw.). Die Lokalisierungsaufgabe verwendet das Straßenmodell über einen typischen Bereich von 60 Metern hinter dem Auto (oder beliebige andere geeignete Distanzen, wie etwa 50 Meter, 100 Meter, 150 Meter usw.) gemäß einem „Heckausrichtung“ genannten Verfahren, das in einem anderen Abschnitt ausführlicher beschrieben wird. Die offenbarten Systeme und Verfahren können ein geometrisches Modell generieren, das eine ausreichende Genauigkeit über einen speziellen Bereich, wie etwa 100 Meter, aufweist, so dass eine geplante Trajektorie nicht um mehr als zum Beispiel 30 cm von der Fahrspurmitte abweicht.
  • Wie vorstehend erörtert, kann ein dreidimensionales Straßenmodell aus dem Detektieren von Nahbereichsabschnitten und Zusammenfügen derselben erstellt werden. Das Zusammenfügen kann durch Berechnen eines Sechs-Grad-Eigenbewegungsmodells unter Verwendung der Videos und/oder Bilder, die von der Kamera aufgenommen werden, Daten aus den Trägheitssensoren, die die Bewegungen des Fahrzeugs widerspiegeln, und des Host-Fahrzeuggeschwindigkeitssignals ermöglicht werden. Der akkumulierte Fehler kann über einen gewissen lokalen Bereichsmaßstab klein genug sein, wie etwa in der Größenordnung von 100 Metern. All dies kann auf einer einzigen Fahrt über ein spezielles Straßensegment abgeschlossen werden.
  • In einigen Ausführungsformen können mehrere Fahrten verwendet werden, um das resultierende Modell zu mitteln und seine Genauigkeit weiter zu erhöhen. Das gleiche Auto kann die gleiche Strecke mehrmals fahren, oder mehrere Autos können ihre erhobenen Modelldaten zu einem zentralen Server senden. In jedem Fall kann eine Anpassungsprozedur durchgeführt werden, um überlappende Modelle zu identifizieren und eine Mittelwertbildung zum Generieren von Zieltrajektorien zu ermöglichen. Das erstellte Modell (z. B. einschließlich der Zieltrajektorien) kann zum Lenken verwendet werden, sobald ein Konvergenzkriterium erfüllt ist. Nachfolgende Fahrten können für weitere Modellverbesserungen und zur Anpassung an Infrastrukturänderungen verwendet werden.
  • Das gemeinsame Nutzen der Fahrerfahrung (wie etwa abgetastete Daten) zwischen mehreren Autos wird realisierbar, wenn sie mit einem zentralen Server verbunden sind. Jeder Fahrzeug-Client kann eine teilweise Kopie eines universellen Straßenmodells speichern, das für seine aktuelle Position relevant sein kann. Eine bidirektionale Aktualisierungsprozedur zwischen den Fahrzeugen und dem Server kann von den Fahrzeugen und dem Server durchgeführt werden. Das vorstehend erörterte Konzept mit kleinem Footprint ermöglicht es den offenbarten Systemen und Verfahren, die bidirektionalen Aktualisierungen unter Verwendung einer sehr geringen Bandbreite durchzuführen.
  • Informationen, die sich auf potenzielle Orientierungspunkte beziehen, können ebenfalls bestimmt und zu einem zentralen Server weitergeleitet werden. Zum Beispiel können die offenbarten Systeme und Verfahren eine oder mehrere physische Eigenschaften eines potenziellen Orientierungspunkts basierend auf einem oder mehreren Bildern bestimmen, die den Orientierungspunkt beinhalten. Die physischen Eigenschaften können eine physische Größe (z. B. Höhe, Breite) des Orientierungspunkts, eine Distanz von einem Fahrzeug zu einem Orientierungspunkt, eine Distanz 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 Orientierungspunkttyp, eine Identifizierung von Text auf dem Orientierungspunkt usw. beinhalten. Zum Beispiel kann ein Fahrzeug ein oder mehrere Bilder analysieren, die von einer Kamera aufgenommen wurden, um einen potenziellen Orientierungspunkt zu detektieren, wie etwa ein Geschwindigkeitsbegrenzungszeichen.
  • Das Fahrzeug kann eine Distanz vom Fahrzeug zum Orientierungspunkt oder einer mit dem Orientierungspunkt assoziierten Position (z. B. ein beliebiges semantisches oder nicht-semantisches Objekt oder Merkmal entlang eines Straßensegments) basierend auf der Analyse des einen oder der mehreren Bilder bestimmen. In einigen Ausführungsformen kann die Distanz basierend auf der Analyse von Bildern des Orientierungspunkts unter Verwendung eines geeigneten Bildanalyseverfahrens, wie etwa eines Skalierungsverfahrens und/oder eines optischen Flussverfahrens, bestimmt werden. Wie vorstehend angemerkt wird, 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 mit dem Objekt/Merkmal assoziiert sind, beinhalten oder kann eine reale 3D-Position eines oder mehrerer Punkte (die z. B. durch Structure in Motion-Techniken/optische Flusstechniken, LIDAR- oder RADAR-Informationen usw. bestimmt wurden) beinhalten. In einigen Ausführungsformen können die offenbarten Systeme und Verfahren dazu konfiguriert sein, einen Typ oder eine Klassifizierung eines potenziellen Orientierungspunkts zu bestimmen. Falls das Fahrzeug bestimmt, dass ein bestimmter potenzieller Orientierungspunkt einem vorbestimmten Typ oder einer vorbestimmten Klassifizierung entspricht, die in einer dünnbesetzten Karte gespeichert ist, kann es ausreichend sein, dass das Fahrzeug dem Server eine Angabe des Typs oder der Klassifizierung des Orientierungspunkts zusammen mit seinem Ort kommuniziert. Der Server kann solche Angaben speichern. Zu einem späteren Zeitpunkt, während der Navigation, kann ein navigierendes Fahrzeug ein Bild aufnehmen, das eine Repräsentation des Orientierungspunkts beinhaltet, das Bild verarbeiten (z. B. unter Verwendung eines Klassifizierers) und den Ergebnisorientierungspunkt vergleichen, um die Detektion des kartierten Orientierungspunkts zu bestätigen und den kartierten Orientierungspunkt beim Lokalisieren des navigierenden Fahrzeugs relativ zur dünnbesetzten Karte zu 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 generieren, die ihre Fahrt (z. B. durch Eigenbewegungsintegration) in einem beliebigen Koordinatenrahmen beschreibt. Die Fahrzeuge können Orientierungspunkte detektieren und sie in demselben Rahmen lokalisieren. Die Fahrzeuge können die Kurve und die Orientierungspunkte zum Server hochladen. Der Server kann Daten aus Fahrzeugen über mehrere Fahrten erheben und ein einheitliches Straßenmodell generieren. Zum Beispiel kann, wie nachstehend in Bezug auf 19 erörtert wird, der Server eine dünnbesetzte Karte mit dem einheitlichen Straßenmodell unter Verwendung der hochgeladenen Kurven und Orientierungspunkte generieren.
  • Der Server kann das Modell auch an Clients (z. B. Fahrzeuge) verteilen. Zum Beispiel kann der Server die dünnbesetzte Karte an ein oder mehrere Fahrzeuge verteilen. Der Server kann das Modell kontinuierlich oder periodisch aktualisieren, wenn er neue Daten aus den Fahrzeugen empfängt. Zum Beispiel kann der Server die neuen Daten verarbeiten, um zu evaluieren, ob die Daten Informationen beinhalten, die eine Aktualisierung oder die Erstellung neuer Daten auf dem Server auslösen sollten. Der Server kann das aktualisierte Modell oder die Aktualisierungen an die Fahrzeuge verteilen, um autonome Fahrzeugnavigation bereitzustellen.
  • Der Server kann ein oder mehrere Kriterien verwenden, um zu bestimmen, ob neue Daten, die aus den Fahrzeugen empfangen wurden, eine Aktualisierung des Modells oder die Erstellung neuer Daten auslösen sollten. Wenn zum Beispiel die neuen Daten angeben, dass ein zuvor erkannter Orientierungspunkt an einem bestimmten Ort nicht mehr vorhanden ist oder durch einen anderen Orientierungspunkt ersetzt worden ist, kann der Server bestimmen, dass die neuen Daten eine Aktualisierung des Modells auslösen sollten. Als ein anderes Beispiel kann der Server, wenn die neuen Daten angeben, dass ein Straßensegment geschlossen worden ist, und wenn dies durch Daten bestätigt worden ist, die von anderen Fahrzeugen empfangen wurden, 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 verteilen, die auf dem Straßensegment fahren, mit dem die Aktualisierungen des Modells assoziiert sind. Der Server kann das aktualisierte Modell auch an Fahrzeuge verteilen, die auf dem Straßensegment fahren werden, oder an Fahrzeuge, deren geplante Fahrt das Straßensegment beinhaltet, mit dem die Aktualisierungen des Modells assoziiert sind. Während zum Beispiel ein autonomes Fahrzeug ein anderes Straßensegment entlangfährt, bevor es das Straßensegment erreicht, mit dem eine Aktualisierung assoziiert ist, 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 Trajektorien und Orientierungspunkte von mehreren Clients (z. B. Fahrzeugen, die ein gemeinsames Straßensegment entlangfahren) erheben. Der Server kann Kurven unter Verwendung von Orientierungspunkten angleichen und ein gemitteltes Straßenmodell basierend auf den Trajektorien erstellen, die von den mehreren Fahrzeugen erhoben worden sind. Der Server kann auch einen Verlauf von Straßen und den wahrscheinlichsten Weg an jedem Knoten oder jeder Verbindung des Straßensegments berechnen. Zum Beispiel kann der entfernte Server die Trajektorien ausrichten, um eine durch Crowdsourcing ermittelte dünnbesetzte Karte aus den erhobenen Trajektorien zu generieren.
  • Der Server kann Orientierungspunkteigenschaften, die aus mehreren Fahrzeugen empfangen wurden, die das gemeinsame Straßensegment entlanggefahren sind, wie etwa die Distanzen zwischen einem Orientierungspunkt und einem anderen (z. B. einem vorherigen entlang des Straßensegments), wie sie von mehreren Fahrzeugen gemessen worden sind, mitteln, um einen Bogenlängenparameter zu bestimmen und die Lokalisierung entlang des Wegs und die Geschwindigkeitskalibrierung für jedes Client-Fahrzeug zu unterstützen. Der Server kann die physischen Abmessungen eines Orientierungspunkts, der von mehreren Fahrzeuge gemessen wurde, die das gemeinsame Straßensegment entlanggefahren sind und denselben Orientierungspunkt erkannt haben, mitteln. Die gemittelten physischen Abmessungen können verwendet werden, um die Distanzschätzung zu unterstützen, wie etwa die Distanz vom Fahrzeug zum Orientierungspunkt. Der Server kann seitliche Positionen eines Orientierungspunkts mitteln (z. B. die Position von der Fahrspur, auf der Fahrzeuge zum Orientierungspunkt fahren), die von mehreren Fahrzeugen gemessen wurden, die das gemeinsame Straßensegment entlanggefahren sind und denselben Orientierungspunkt erkannt haben. Die gemittelte seitliche Position kann verwendet werden, um die Fahrspurzuweisung zu unterstützen. Der Server kann die GPS-Koordinaten des Orientierungspunkts mitteln, die von mehreren Fahrzeugen gemessen wurden, die das gleiche Straßensegment entlanggefahren sind und denselben Orientierungspunkt erkannt haben. Die gemittelten GPS-Koordinaten des Orientierungspunkts können verwendet werden, um die globale Lokalisierung oder Positionierung des Orientierungspunkts im Straßenmodell zu unterstützen.
  • In einigen Ausführungsformen kann der Server Änderungen am Modell, wie etwa Baustellen, Umleitungen, neue Zeichen, Entfernung von Zeichen usw., basierend auf Daten identifizieren, die von den Fahrzeugen empfangen wurden. Der Server kann das Modell kontinuierlich oder periodisch oder sofort beim Empfang neuer Daten aus den Fahrzeugen aktualisieren. Der Server kann Aktualisierungen des Modells oder das aktualisierte Modell an Fahrzeuge verteilen, um autonome Navigation bereitzustellen. Zum Beispiel kann, wie nachstehend ausführlicher erörtert wird, der Server durch Crowdsourcing ermittelte Daten verwenden, um „Phantom“-Orientierungspunkte herauszufiltern, die von Fahrzeugen detektiert worden sind.
  • In einigen Ausführungsformen kann der Server Fahrereingriffe während des autonomen Fahrens analysieren. Der Server kann Daten analysieren, die vom Fahrzeug zu dem Zeitpunkt und an dem Ort empfangen wurden, an dem ein Eingriff erfolgt ist, und/oder Daten, die vor dem Zeitpunkt empfangen wurden, an dem der Eingriff erfolgt ist. Der Server kann bestimmte Abschnitte der Daten identifizieren, die den Eingriff verursacht haben oder in engem Zusammenhang damit stehen, zum Beispiel Daten, die eine vorübergehende Fahrspursperrung angeben, oder Daten, die einen Fußgänger auf der Straße angeben. Der Server kann das Modell basierend auf den identifizierten Daten aktualisieren. Zum Beispiel kann der Server eine oder mehrere im Modell gespeicherte Trajektorien modifizieren.
  • 12 ist eine schematische Veranschaulichung eines Systems, das Crowdsourcing verwendet, um eine dünnbesetzte Karte zu generieren (sowie unter Verwendung einer durch Crowdsourcing ermittelten dünnbesetzten Karte zu verteilen und zu navigieren). 12 zeigt ein Straßensegment 1200, das eine oder mehrere Fahrspuren beinhaltet. Eine Vielzahl von Fahrzeugen 1205, 1210, 1215, 1220 und 1225 kann zur gleichen Zeit oder zu unterschiedlichen Zeiten auf dem Straßensegment 1200 fahren (obwohl sie in 12 so gezeigt werden, dass sie zur gleichen Zeit auf dem Straßensegment 1200 vorkommen). Mindestens eines der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 kann ein autonomes Fahrzeug sein. Der Einfachheit des vorliegenden Beispiels halber werden alle Fahrzeuge 1205, 1210, 1215, 1220 und 1225 als autonome Fahrzeuge angenommen.
  • Jedes Fahrzeug kann Fahrzeugen ähnlich sein, die in anderen Ausführungsformen offenbart worden sind (z. B. Fahrzeug 200), und kann Komponenten oder Vorrichtungen beinhalten, die in Fahrzeugen beinhaltet sind oder mit diesen assoziiert sind, die in anderen Ausführungsformen offenbart worden sind. Jedes Fahrzeug kann mit einer Bildaufnahmevorrichtung oder Kamera (z. B. der Bildaufnahmevorrichtung 122 oder der Kamera 122) ausgestattet sein. Jedes Fahrzeug kann mit einem entfernten Server 1230 über ein oder mehrere Netzwerke (z. B. über ein Mobilfunknetz und/oder das Internet usw.) über drahtlose Kommunikationswege 1235 kommunizieren, wie durch die gestrichelten Linien angegeben wird. Jedes Fahrzeug kann Daten zum Server 1230 übertragen und Daten aus dem Server 1230 empfangen. Zum Beispiel kann der Server 1230 Daten aus mehreren Fahrzeugen erheben, die zu unterschiedlichen Zeiten auf dem Straßensegment 1200 fahren, und kann die erhobenen Daten verarbeiten, um ein Straßennavigationsmodell für autonome Fahrzeuge oder eine Aktualisierung des Modells zu generieren. Der Server 1230 kann das Straßennavigationsmodell für autonome Fahrzeuge oder die Aktualisierung des Modells zu den Fahrzeugen übertragen, die Daten zum Server 1230 übertragen haben. Der Server 1230 kann das Straßennavigationsmodell für autonome Fahrzeuge oder die Aktualisierung des Modells zu anderen Fahrzeugen übertragen, die zu späteren Zeiten auf dem Straßensegment 1200 fahren.
  • Wenn die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 auf dem Straßensegment 1200 fahren, können Navigationsinformationen, die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 erhoben werden (z. B. detektiert, abgetastet oder gemessen), zum Server 1230 übertragen werden. In einigen Ausführungsformen können die Navigationsinformationen mit dem gemeinsamen Straßensegment 1200 assoziiert werden. Die Navigationsinformationen können eine Trajektorie beinhalten, die mit jedem der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 assoziiert wird, wenn jedes Fahrzeug über das Straßensegment 1200 fährt. In einigen Ausführungsformen kann die Trajektorie basierend auf Daten rekonstruiert werden, die von verschiedenen Sensoren und Vorrichtungen abgetastet werden, die am Fahrzeug 1205 bereitgestellt sind. Zum Beispiel kann die Trajektorie basierend auf mindestens den Beschleunigungsmesserdaten und/oder Geschwindigkeitsdaten und/oder Orientierungspunktdaten und/oder Straßengeometrie- oder -profildaten und/oder Fahrzeugpositionsbestimmungsdaten und/oder Eigenbewegungsdaten rekonstruiert werden. In einigen Ausführungsformen kann die Trajektorie basierend auf Daten von Trägheitssensoren, wie etwa Beschleunigungsmesser, und der Geschwindigkeit des Fahrzeugs 1205, die von einem Geschwindigkeitssensor abgetastet wird, rekonstruiert werden. Zusätzlich kann die Trajektorie in einigen Ausführungsformen basierend auf einer abgetasteten Eigenbewegung der Kamera bestimmt werden (z. B. von einem Prozessor an Bord jedes der Fahrzeuge 1205, 1210, 1215, 1220 und 1225), was dreidimensionale Translation und/oder dreidimensionale Rotationen (oder Rotationsbewegungen) angeben kann. Die Eigenbewegung der Kamera (und somit der Fahrzeugkarosserie) kann anhand einer Analyse eines oder mehrerer Bildern bestimmt werden, die von der Kamera aufgenommen wurden.
  • In einigen Ausführungsformen kann die Trajektorie des Fahrzeugs 1205 von einem Prozessor bestimmt werden, der an Bord des Fahrzeugs 1205 bereitgestellt ist, und zum Server 1230 übertragen werden. In anderen Ausführungsformen kann der Server 1230 Daten empfangen, die von den verschiedenen Sensoren und Vorrichtungen abgetastet wurden, die im Fahrzeug 1205 bereitgestellt sind, und die Trajektorie basierend auf den Daten bestimmen, die aus dem Fahrzeug 1205 empfangen werden.
  • In einigen Ausführungsformen können die Navigationsinformationen, die aus den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 zum Server 1230 übertragen werden, Daten in Bezug auf die Straßenoberfläche, die Straßengeometrie oder das Straßenprofil beinhalten. Die Geometrie des Straßensegments 1200 kann die Fahrspurstruktur und/oder Orientierungspunkte beinhalten. Die Fahrspurstruktur kann die Gesamtanzahl der Fahrspuren des Straßensegments 1200, den Typ der Fahrspuren (z. B. einspurige Fahrspur, zweispurige Fahrspur, Fahrspur, Überholspur usw.), Markierungen auf Fahrspuren, Breite der Fahrspuren usw. beinhalten. In einigen Ausführungsformen können die Navigationsinformationen eine Fahrspurzuweisung beinhalten, z. B., welche Fahrspur einer Vielzahl von Fahrspuren ein Fahrzeug befährt. Zum Beispiel kann die Fahrspurzuweisung mit einem numerischen Wert „3“ assoziiert werden, der angibt, dass das Fahrzeug auf der dritten Fahrspur von links oder rechts fährt. Als ein weiteres Beispiel kann die Fahrspurzuweisung mit einem Textwert „mittlere Fahrspur“ assoziiert werden, der angibt, dass das Fahrzeug auf der mittleren Fahrspur fährt.
  • Der Server 1230 kann die Navigationsinformationen auf einem nichtflüchtigen computerlesbaren Medium speichern, wie etwa einer Festplatte, einer Compact Disc, einem Band, einem Speicher usw. Der Server 1230 kann (z. B. durch einen im Server 1230 beinhalteten Prozessor) mindestens einen Abschnitt eines Straßennavigationsmodells für autonome Fahrzeuge für das gemeinsame Straßensegment 1200 basierend auf den aus der Vielzahl von Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangenen Navigationsinformationen generieren und das Modell als einen Abschnitt einer dünnbesetzten Karte speichern. Der Server 1230 kann eine mit jeder Fahrspur assoziierte Trajektorie basierend auf durch Crowdsourcing ermittelten Daten bestimmen (z. B. Navigationsinformationen), die aus mehreren Fahrzeugen (z. B. 1205, 1210, 1215, 1220 und 1225) empfangen werden, die zu unterschiedlichen Zeiten auf einer Fahrspur des Straßensegments fahren. Der Server 1230 kann das Straßennavigationsmodell für autonome Fahrzeuge oder einen Abschnitt des Modells (z. B. einen aktualisierten Abschnitt) basierend auf einer Vielzahl von Trajektorien generieren, die basierend auf den durch Crowdsourcing ermittelten Navigationsdaten bestimmt wurden. Der Server 1230 kann das Modell oder den aktualisierten Abschnitt des Modells zu einem oder mehreren autonomen Fahrzeugen 1205, 1210, 1215, 1220 und 1225 übertragen, die auf dem Straßensegment 1200 fahren, oder zu beliebigen anderen autonomen Fahrzeuge, die zu einem späteren Zeitpunkt auf dem Straßensegment fahren, um ein vorhandenes Straßennavigationsmodell für autonome Fahrzeuge zu aktualisieren, das in einem Navigationssystem der Fahrzeuge bereitgestellt wird. Das Straßennavigationsmodell für autonome Fahrzeuge kann von den autonomen Fahrzeugen beim autonomen Navigieren entlang des gemeinsamen Straßensegments 1200 verwendet werden.
  • Wie vorstehend erörtert wird, kann das Straßennavigationsmodell für autonome Fahrzeuge in einer dünnbesetzten Karte (z. B. der in 8 dargestellten dünnbesetzten Karte 800) beinhaltet sein. Die dünnbesetzte Karte 800 kann eine dünnbesetzte Aufzeichnung von Daten beinhalten, die in Bezug zur Straßengeometrie und/oder Orientierungspunkten entlang einer Straße stehen, die ausreichend 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 separat von der dünnbesetzten Karte 800 gespeichert werden und Kartendaten aus der dünnbesetzten Karte 800 verwenden, wenn das Modell zur Navigation ausgeführt wird. In einigen Ausführungsformen kann das Straßennavigationsmodell für autonome Fahrzeuge Kartendaten verwenden, die in der dünnbesetzten Karte 800 beinhaltet sind, um Zieltrajektorien entlang des Straßensegments 1200 zu bestimmen, um die autonome Navigation der autonomen Fahrzeuge 1205, 1210, 1215, 1220 und 1225 oder anderer Fahrzeuge, die später das Straßensegment 1200 entlangfahren, zu führen. Wenn zum Beispiel das Straßennavigationsmodell für autonome Fahrzeuge von einem Prozessor ausgeführt wird, der in einem Navigationssystem des Fahrzeugs 1205 beinhaltet ist, kann das Modell den Prozessor veranlassen, die Trajektorien, die basierend auf den vom Fahrzeug 1205 empfangenen Navigationsinformationen bestimmt wurden, mit vorbestimmten Trajektorien zu vergleichen, die in der dünnbesetzten Karte 800 beinhaltet sind, um den aktuellen Fahrkurs des Fahrzeugs 1205 zu validieren und/oder zu korrigieren.
  • Im Straßennavigationsmodell für autonome Fahrzeuge kann die Geometrie eines Straßenmerkmals oder einer Zieltrajektorie durch eine Kurve in einem dreidimensionalen Raum codiert werden. In einer Ausführungsform kann die Kurve ein dreidimensionaler Spline sein, der ein oder mehrere verbindende dreidimensionale Polynome beinhaltet. Wie ein Fachmann verstehen würde, kann ein Spline eine numerische Funktion sein, die stückweise durch eine Serie von Polynomen zum Anpassen von Daten definiert ist. Ein Spline zum Anpassen der dreidimensionalen Geometriedaten der Straße kann einen linearen Spline (erste Ordnung), einen quadratischen Spline (zweite Ordnung), einen kubischen Spline (dritte Ordnung) oder beliebige andere Splines (andere Ordnungen) oder eine Kombination davon beinhalten. Der Spline kann ein oder mehrere dreidimensionale Polynome unterschiedlicher Ordnungen beinhalten, die Datenpunkte der dreidimensionalen Geometriedaten der Straße verbinden (z. B. anpassen). In einigen Ausführungsformen kann das Straßennavigationsmodell für autonome Fahrzeuge einen dreidimensionalen Spline beinhalten, der einer Zieltrajektorie entlang eines gemeinsamen Straßensegments (z. B. Straßensegment 1200) oder einer Fahrspur des Straßensegments 1200 entspricht.
  • Wie vorstehend erörtert wird, kann das Straßennavigationsmodell für autonome Fahrzeuge, das in der dünnbesetzten Karte beinhaltet ist, andere Informationen beinhalten, wie etwa die Identifizierung von mindestens einem Orientierungspunkt entlang des Straßensegments 1200. Der Orientierungspunkt kann innerhalb eines Sichtfelds einer Kamera (z. B. der Kamera 122) sichtbar sein, die an jedem der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 installiert ist. In einigen Ausführungsformen kann die Kamera 122 ein Bild eines Orientierungspunkts aufnehmen. Ein Prozessor (z. B. der Prozessor 180, 190 oder die Verarbeitungseinheit 110), der am Fahrzeug 1205 bereitgestellt ist, kann das Bild des Orientierungspunkts verarbeiten, um Identifizierungsinformationen für den Orientierungspunkt zu extrahieren. Die Orientierungspunkt-Identifizierungsinformationen können anstelle eines tatsächlichen Bilds des Orientierungspunkts in der dünnbesetzten Karte 800 gespeichert werden. Die Orientierungspunkt-Identifizierungsinformationen erfordern möglicherweise sehr viel weniger Speicherplatz als ein tatsächliches Bild. Andere Sensoren oder Systeme (z. B. ein GPS-System) können ebenfalls bestimmte Identifizierungsinformationen des Orientierungspunkts bereitstellen (z. B. Position des Orientierungspunkts). Der Orientierungspunkt kann mindestens ein Verkehrszeichen und/oder eine Pfeilmarkierung und/oder eine Fahrspurmarkierung und/oder eine gestrichelte Fahrspurmarkierung und/oder eine Ampel und/oder eine Stopplinie und/oder ein Richtungszeichen (z. B. ein Autobahnausfahrtzeichen mit einem Pfeil, der eine Richtung angibt, ein Autobahnzeichen mit Pfeilen, die in unterschiedliche Richtungen oder auf unterschiedliche Stellen zeigen) und/oder einen Orientierungspunkt-Beacon und/oder einen Laternenpfosten beinhalten. Ein Orientierungspunkt-Beacon bezieht sich auf eine Vorrichtung (z. B. eine RFID-Vorrichtung), die entlang eines Straßensegments installiert ist, die ein Signal zu einem an einem Fahrzeug installierten Empfänger überträgt oder reflektiert, so dass, wenn das Fahrzeug an der Vorrichtung vorbeifährt, der vom Fahrzeug empfangene Beacon und der Ort der Vorrichtung (z. B. bestimmt anhand des GPS-Orts der Vorrichtung) als Orientierungspunkt verwendet werden können, der in das Straßennavigationsmodell für autonome Fahrzeuge und/oder die dünnbesetzte Karte 800 einbezogen werden soll.
  • Die Identifizierung von mindestens einem Orientierungspunkt kann eine Position des mindestens einen Orientierungspunkts beinhalten. Die Position des Orientierungspunkts kann basierend auf Positionsmessungen bestimmt werden, die unter Verwendung von Sensorsystemen (z. B. globalen Positionsbestimmungssystemen, trägheitsbasierten Positionsbestimmungssystemen, Orientierungspunkt-Beacon usw.) durchgeführt werden, die mit der Vielzahl von Fahrzeugen 1205, 1210, 1215, 1220 und 1225 assoziiert sind. In einigen Ausführungsformen kann die Position des Orientierungspunkts durch Mitteln der Positionsmesswerte bestimmt werden, die von Sensorsystemen in unterschiedlichen Fahrzeugen 1205, 1210, 1215, 1220 und 1225 über mehrere Fahrten detektiert, erhoben oder empfangen werden. Zum Beispiel können die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 Positionsmessdaten zum Server 1230 übertragen, der die Positionsmesswerte mitteln und die gemittelten Positionsmesswerte als die Position des Orientierungspunkts verwenden kann. Die Position des Orientierungspunkts kann durch Messwerte, die von Fahrzeugen in nachfolgenden Fahrten empfangen werden, kontinuierlich verfeinert werden.
  • Die Identifizierung des Orientierungspunkts kann eine Größe des Orientierungspunkts beinhalten. Der Prozessor, der in einem Fahrzeug (z. B. 1205) bereitgestellt ist, kann die physische Größe des Orientierungspunkts basierend auf der Analyse der Bilder schätzen. Der Server 1230 kann mehrere Schätzwerte der physischen Größe desselben Orientierungspunkts aus unterschiedlichen Fahrzeugen über unterschiedliche Fahrten empfangen. Der Server 1230 kann die unterschiedlichen Schätzwerte mitteln, um zu einer physischen Größe für den Orientierungspunkt zu gelangen, und diese Orientierungspunktgröße im Straßenmodell speichern. Der Schätzwert der physischen Größe kann verwendet werden, um ferner eine Distanz vom Fahrzeug zum Orientierungspunkt zu bestimmen oder zu schätzen. Die Distanz zum Orientierungspunkt kann basierend auf der aktuellen Geschwindigkeit des Fahrzeugs und einem Maßstab der Ausdehnung, der auf der Position des Orientierungspunkts, der in den Bildern vorkommt, relativ zum Ausdehnungsfokus der Kamera basiert, geschätzt werden. Zum Beispiel kann die Distanz zum Orientierungspunkt durch Z = V*dt*R/D geschätzt werden, wobei V die Geschwindigkeit des Fahrzeugs ist, R die Distanz im Bild vom Orientierungspunkt zum Zeitpunkt t1 zum Ausdehnungsfokus ist und D die Änderung der Distanz für den Orientierungspunkt im Bild von t 1 zu t2 ist. dt stellt die (t2 - t1) dar. Zum Beispiel kann die Distanz zum Orientierungspunkt durch Z = V*dt*R/D geschätzt werden, wobei V die Geschwindigkeit des Fahrzeugs ist, R die Distanz im Bild zwischen dem Orientierungspunkt und dem Ausdehnungsfokus ist, dt ein Zeitintervall ist und D die Bildverschiebung des Orientierungspunkts entlang der Epipolarlinie ist. Andere Gleichungen, die der vorstehenden Gleichung entsprechen, wie etwa Z = V * ω/Δω, können zum Schätzen der Distanz zum 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 physische Größe des Orientierungspunkts bekannt ist, kann die Distanz zum Orientierungspunkt auch basierend auf der folgenden Gleichung bestimmt werden: Z = f*W/ω wobei f die Brennweite ist, W die Größe des Orientierungspunkts ist (z. B. Höhe oder Breite), ω die Anzahl der Pixel ist, wenn der Orientierungspunkt das Bild verlässt. Anhand der obigen Gleichung kann eine Änderung der Distanz Z wie folgt unter Verwendung von ΔZ = f * W * Δω / ω2 + f*ΔW/ω berechnet werden, wobei ΔW durch Mittelung auf Null fällt und wobei Δω die Anzahl der Pixel ist, die die Genauigkeit eines Begrenzungskastens im Bild repräsentieren. Ein Wert, der die physische Größe des Orientierungspunkts schätzt, kann berechnet werden, indem mehrere Beobachtungen auf der Serverseite gemittelt werden. Der resultierende Fehler bei der Distanzschätzung kann sehr klein sein. Es gibt zwei Fehlerquellen, die auftreten können, wenn die vorstehende Formel verwendet wird, nämlich ΔW und Δω. Ihr Beitrag zum Distanzfehler ist durch ΔZ = f * W * Δω / ω2 + f * ΔW/ω gegeben. ΔW fällt jedoch durch Mittelung auf null; somit wird ΔZ durch Δω bestimmt (z. B. die Ungenauigkeit des Begrenzungskastens im Bild).
  • Für Orientierungspunkte mit unbekannten Abmessungen kann die Distanz zum Orientierungspunkt geschätzt werden, indem Merkmalspunkte auf dem Orientierungspunkt zwischen aufeinanderfolgenden Einzelbildern verfolgt werden. Zum Beispiel können bestimmte Merkmale, die auf einem Geschwindigkeitsbegrenzungszeichen vorkommen, zwischen zwei oder mehr Einzelbildern verfolgt werden. Basierend auf diesen verfolgten Merkmalen kann eine Distanzverteilung pro Merkmalspunkt generiert werden. Der Distanzschätzwert kann aus der Distanzverteilung extrahiert werden. Zum Beispiel kann die häufigste Distanz, die in der Distanzverteilung vorkommt, als der Distanzschätzwert verwendet werden. Als ein anderes Beispiel kann der Mittelwert der Distanzverteilung als der Distanzschätzwert verwendet werden.
  • 13 veranschaulicht ein beispielhaftes Straßennavigationsmodell für autonome Fahrzeuge, das durch eine Vielzahl von dreidimensionalen Splines 1301, 1302 und 1303 repräsentiert wird. Die in 13 gezeigten Kurven 1301, 1302 und 1303 dienen nur der Veranschaulichung. Jeder Spline kann ein oder mehrere dreidimensionale Polynome beinhalten, die eine Vielzahl von Datenpunkten 1310 verbinden. Jedes Polynom kann ein Polynom erster Ordnung, ein Polynom zweiter Ordnung, ein Polynom dritter Ordnung oder eine Kombination von beliebigen geeigneten Polynomen mit unterschiedlichen Ordnungen sein. Jeder Datenpunkt 1310 kann mit den von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangenen Navigationsinformationen assoziiert werden. In einigen Ausführungsformen kann jeder Datenpunkt 1310 mit Daten assoziiert sein, die in Beziehung zu Orientierungspunkten (z. B. Größe, Ort und Identifizierungsinformationen von Orientierungspunkten) und/oder Straßensignaturprofilen (z. B. Straßengeometrie, Straßenunebenheitsprofil, Straßenkrümmungsprofil, Straßenbreitenprofil) stehen. In einigen Ausführungsformen können einige Datenpunkte 1310 mit Daten assoziiert werden, die zu Orientierungspunkten in Beziehung stehen, und andere können mit Daten assoziiert werden, die zu Straßensignaturprofilen in Beziehung stehen.
  • 14 veranschaulicht rohe Ortsdaten 1410 (z. B. GPS-Daten), die von fünf separaten Fahrten empfangen wurden. Eine Fahrt kann von einer anderen Fahrt getrennt sein, wenn sie gleichzeitig von separaten Fahrzeugen, zu separaten Zeiten von demselben Fahrzeug oder zu separaten Zeiten von separaten Fahrzeugen befahren wurde. Um Fehler in den Ortsdaten 1410 und für unterschiedliche Orte von Fahrzeugen innerhalb der gleichen Fahrspur 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 einer oder mehrerer statistischer Techniken generieren, um zu bestimmen, ob Variationen in den rohen Ortsdaten 1410 tatsächliche Abweichungen oder statistische Fehler repräsentieren. Jeder Weg innerhalb des Skeletts 1420 kann zu den Rohdaten 1410, die den Weg gebildet haben, zurückverbunden werden. Zum Beispiel ist der Weg zwischen A und B innerhalb des Skeletts 1420 mit den Rohdaten 1410 von den Fahrten 2, 3, 4 und 5, aber nicht von der Fahrt 1 verbunden. Das Skelett 1420 ist möglicherweise nicht detailliert genug, um verwendet zu werden, um ein Fahrzeug zu navigieren (weil es z. B. Fahrten von mehreren Fahrspuren auf der gleichen Straße kombiniert, anders als die vorstehend beschriebenen Splines), kann aber nützliche topologische Informationen bereitstellen und kann verwendet werden, um Kreuzungen zu definieren.
  • 15 veranschaulicht ein Beispiel, durch das zusätzliche Details für eine dünnbesetzte Karte innerhalb eines Segments eines Kartenskeletts generiert werden können (z. B. Segment A bis B innerhalb des Skeletts 1420). Wie in 15 dargestellt wird, können die Daten entlang der Fahrt (z. B. Eigenbewegungsdaten, Straßenmarkierungsdaten und dergleichen) als eine Funktion der Position S (oder S1 oder S2) gezeigt werden. Der Server 1230 kann Orientierungspunkte für die dünnbesetzte 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 Abgleichalgorithmus kann zur Identifizierung der Orientierungspunkte 1511, 1513 und 1515 führen. Ein Fachmann würde jedoch erkennen, dass andere Abgleichalgorithmen verwendet werden können. Zum Beispiel kann Wahrscheinlichkeitsoptimierung anstelle von oder in Kombination mit eindeutigem Abgleich verwendet werden. Der Server 1230 kann die Fahrten längs ausrichten, um die abgeglichenen Orientierungspunkte auszurichten. Zum Beispiel kann der Server 1230 eine Fahrt (z. B. die Fahrt 1520) als Referenzfahrt auswählen und dann die eine oder die mehreren anderen Fahrten (z. B. die Fahrt 1510) zur Ausrichtung verschieben und/oder elastisch strecken.
  • 16 zeigt ein Beispiel für ausgerichtete Orientierungspunktdaten zur Verwendung in einer dünnbesetzten Karte. Im Beispiel von 16 umfasst der Orientierungspunkt 1610 ein Verkehrszeichen. Das Beispiel von 16 stellt ferner Daten von einer Vielzahl von Fahrten 1601, 1603, 1605, 1607, 1609, 1611 und 1613 dar. Im Beispiel von 16 bestehen die Daten von der Fahrt 1613 aus einem „Phantom“-Orientierungspunkt, und der Server 1230 kann ihn als solchen identifizieren, weil keine der Fahrten 1601, 1603, 1605, 1607, 1609 und 1611 eine Identifizierung eines Orientierungspunkts in der Nähe des identifizierten Orientierungspunkts in der Fahrt 1613 beinhaltet. Dementsprechend kann der Server 1230 potenzielle Orientierungspunkte annehmen, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt vorkommt, zu Bildern, in denen der Orientierungspunkt nicht vorkommt, einen Schwellenwert überschreitet, und/oder kann potenzielle Orientierungspunkte verwerfen, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt nicht vorkommt, zu Bildern, in denen der Orientierungspunkt vorkommt, einen Schwellenwert überschreitet.
  • 17 stellt ein System 1700 zum Generieren von Fahrtdaten dar, das verwendet werden kann, um Crowdsourcing auf eine dünnbesetzte Karte anzuwenden. Wie in 17 dargestellt wird, kann das System 1700 eine Kamera 1701 und eine Lokalisierungsvorrichtung 1703 (z. B. einen GPS-Positionsgeber) beinhalten. Die Kamera 1701 und die Lokalisierungsvorrichtung 1703 können an einem Fahrzeug (z. B. einem der Fahrzeuge 1205, 1210, 1215, 1220 und 1225) montiert sein. Die Kamera 1701 kann eine Vielzahl von Daten mehrerer Typen erzeugen, z. B. Eigenbewegungsdaten, Verkehrszeichendaten, Straßendaten oder dergleichen. Die Kameradaten und die Ortsdaten können in Fahrtsegmente 1705 segmentiert werden. Zum Beispiel 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. Wenn zum Beispiel ein Orientierungspunkt in mehreren Bildern aus der Kamera 1701 vorkommt, kann das System 1700 die redundanten Daten so ausdünnen, dass die Fahrtsegmente 1705 nur eine Kopie des Orts und aller Metadaten in Bezug auf den Orientierungspunkt enthalten. Als weiteres Beispiel kann das System 1700, falls eine Fahrspurmarkierung in mehreren Bildern aus der Kamera 1701 vorkommt, die redundanten Daten so ausdünnen, dass die Fahrtsegmente 1705 nur eine Kopie des Orts und aller Metadaten in Bezug auf die Fahrspurmarkierung enthalten.
  • Das System 1700 beinhaltet auch einen Server (z. B. den Server 1230). Der Server 1230 kann Fahrtsegmente 1705 vom Fahrzeug empfangen und die Fahrtsegmente 1705 zu einer einzigen Fahrt 1707 rekombinieren. Eine solche Anordnung kann es ermöglichen, Bandbreitenanforderungen beim Übertragen von Daten zwischen dem Fahrzeug und dem Server zu reduzieren, während es dem Server auch ermöglicht wird, Daten in Bezug auf eine gesamte Fahrt zu speichern.
  • 18 stellt das System 1700 aus 17 dar, das ferner zum Crowdsourcing einer dünnbesetzten Karte konfiguriert ist. Wie in 17 beinhaltet das System 1700 das Fahrzeug 1810, das Fahrtdaten zum Beispiel unter Verwendung einer Kamera (die z. B. Eigenbewegungsdaten, Verkehrszeichendaten, Straßendaten oder dergleichen erzeugt) und einer Lokalisierungsvorrichtung (z. B. einem GPS-Positionsgeber) aufnimmt. Wie in 17 segmentiert das Fahrzeug 1810 die erhobenen Daten in Fahrtsegmente (dargestellt als „DS1 1“, „DS2 1“, „DSN 1“ in 18). Der Server 1230 empfängt dann die Fahrtsegmente und rekonstruiert eine Fahrt (dargestellt als „Fahrt 1“ in 18) anhand der empfangenen Segmente.
  • Wie ferner in 18 dargestellt wird, empfängt das System 1700 auch Daten aus zusätzlichen Fahrzeugen. Zum Beispiel nimmt das Fahrzeug 1820 auch Fahrtdaten zum Beispiel unter Verwendung einer Kamera (die z. B. Eigenbewegungsdaten, Verkehrszeichendaten, Straßendaten oder dergleichen erzeugt) und einer Lokalisierungsvorrichtung (z. B. einem GPS-Positionsgeber) auf. Ähnlich wie das Fahrzeug 1810 segmentiert das Fahrzeug 1820 die erhobenen Daten in Fahrtsegmente (dargestellt als „DS1 2“, „DS2 2“, „DSN 2“ in 18). Der Server 1230 empfängt dann die Fahrtsegmente und rekonstruiert eine Fahrt (dargestellt als „Fahrt 2“ in 18) anhand der empfangenen Segmente. Es kann eine beliebige Anzahl von zusätzlichen Fahrzeugen verwendet werden. Zum Beispiel beinhaltet 18 auch das „AUTO N“, das Fahrtdaten aufnimmt, sie in Fahrtsegmente segmentiert (dargestellt als „DS1 N“, „DS2 N“, „DSN N“ in 18) und sie zum Server 1230 zur Rekonstruktion zu einer Fahrt (dargestellt als „Fahrt N“ in 18) sendet.
  • Wie in 18 dargestellt wird, kann der Server 1230 eine dünnbesetzte Karte (dargestellt als „KARTE“) unter Verwendung der rekonstruierten Fahrten (z. B. „Fahrt 1“, „Fahrt 2“ und „Fahrt N“) erstellen, die aus einer Vielzahl von Fahrzeugen (z. B. „AUTO 1“ (auch als Fahrzeug 1810 bezeichnet), „AUTO 2“ (auch als Fahrzeug 1820 bezeichnet) und „AUTO N“) erhoben wurden.
  • 19 ist ein Flussdiagramm, das einen beispielhaften Prozess 1900 zum Generieren einer dünnbesetzten Karte für autonome Fahrzeugnavigation entlang eines Straßensegments zeigt. Der Prozess 1900 kann von einer oder mehreren im Server 1230 beinhalteten Verarbeitungsvorrichtungen durchgeführt werden.
  • Der Prozess 1900 kann das Empfangen einer Vielzahl von Bildern beinhalten, die erlangt werden, wenn ein oder mehrere Fahrzeuge das Straßensegment befahren (Schritt 1905). Der Server 1230 kann Bilder aus Kameras empfangen, die in einem oder mehreren der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 beinhaltet sind. Zum Beispiel kann die Kamera 122 ein oder mehrere Bilder der Umgebung aufnehmen, die das Fahrzeug 1205 umgibt, wenn das Fahrzeug 1205 das Straßensegment 1200 entlangfährt. In einigen Ausführungsformen kann der Server 1230 auch ausgedünnte Bilddaten empfangen, die Redundanzen aufgewiesen hatten, die von einem Prozessor im Fahrzeug 1205 entfernt wurden, wie vorstehend in Bezug auf 17 erörtert wird.
  • Der Prozess 1900 kann ferner das Identifizieren, basierend auf der Vielzahl von Bildern, mindestens einer Linienrepräsentation eines Straßenoberflächenmerkmals beinhalten, das entlang des Straßensegments verläuft (Schritt 1910). Jede Linienrepräsentation kann einen Weg entlang des Straßensegments repräsentieren, der im Wesentlichen dem Straßenoberflächenmerkmal entspricht. Zum Beispiel kann der Server 1230 die Umgebungsbilder analysieren, die aus der Kamera 122 empfangen werden, um einen Straßenrand oder eine Fahrspurmarkierung zu identifizieren und eine Fahrttrajektorie entlang des Straßensegments 1200 zu bestimmen, die mit dem Straßenrand oder der Fahrspurmarkierung assoziiert wird. In einigen Ausführungsformen kann die Trajektorie (oder Linienrepräsentation) einen Spline, eine Polynomrepräsentation oder eine Kurve beinhalten. Der Server 1230 kann die Fahrttrajektorie des Fahrzeugs 1205 basierend auf Kameraeigenbewegungen (z. B. dreidimensionale Translation und/oder dreidimensionale Rotationsbewegungen) bestimmen, die im Schritt 1905 empfangen wurden.
  • Der Prozess 1900 kann beinhalten, basierend auf der Vielzahl von Bildern eine Vielzahl von Orientierungspunkten zu identifizieren, die mit dem Straßensegment assoziiert sind (Schritt 1910). Zum Beispiel kann der Server 1230 die Umgebungsbilder analysieren, die aus der Kamera 122 empfangen werden, um einen oder mehrere Orientierungspunkte zu identifizieren, wie etwa ein Straßenzeichen entlang des Straßensegments 1200. Der Server 1230 kann die Orientierungspunkte unter Verwendung einer Analyse der Vielzahl von Bildern identifizieren, die erfasst werden, wenn ein oder mehrere Fahrzeuge das Straßensegment befahren. Um Crowdsourcing zu ermöglichen, kann die Analyse Regeln in Bezug auf das Annehmen und Verwerfen möglicher Orientierungspunkte beinhalten, die mit dem Straßensegment assoziiert sind. Zum Beispiel kann die Analyse beinhalten, potenzielle Orientierungspunkte anzunehmen, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt vorkommt, zu Bildern, in denen der Orientierungspunkt nicht vorkommt, einen Schwellenwert überschreitet, und/oder potenzielle Orientierungspunkte zu verwerfen, wenn ein Verhältnis von Bildern, in denen der Orientierungspunkt nicht vorkommt, zu Bildern, in denen der Orientierungspunkt vorkommt, einen Schwellenwert überschreitet.
  • Der Prozess 1900 kann andere Operationen oder Schritte beinhalten, die vom Server 1230 durchgeführt werden. Zum Beispiel können die Navigationsinformationen eine Zieltrajektorie für Fahrzeuge beinhalten, die ein Straßensegment entlangfahren, und der Prozess 1900 kann das Clustern von Fahrzeugtrajektorien durch den Server 1230 beinhalten, die zu mehreren Fahrzeugen in Beziehung stehen, die auf dem Straßensegment fahren, und das Bestimmen der Zieltrajektorie basierend auf den geclusterten Fahrzeugtrajektorien, wie nachstehend ausführlicher erörtert wird. Das Clustern von Fahrzeugtrajektorien kann das Clustern der mehreren Trajektorien, die zu den Fahrzeugen in Beziehung stehen, die auf dem Straßensegment fahren, durch den Server 1230 in eine Vielzahl von Clustern basierend auf mindestens dem absoluten Kurs der Fahrzeuge und/oder der Fahrspurzuweisung der Fahrzeuge beinhalten. Das Generieren der Zieltrajektorie kann das Mitteln der geclusterten Trajektorien durch den Server 1230 beinhalten. Als weiteres Beispiel kann der Prozess 1900 das Ausrichten von Daten beinhalten, die im Schritt 1905 empfangen wurden. Andere Prozesse oder Schritte, die vom Server 1230 durchgeführt werden, wie vorstehend beschrieben, können ebenfalls im Prozess 1900 beinhaltet sein.
  • Die offenbarten Systeme und Verfahren können andere Merkmale beinhalten. Zum Beispiel können die offenbarten Systeme lokale Koordinaten anstelle von globalen Koordinaten verwenden. Für autonomes Fahren können einige Systeme Daten in Weltkoordinaten darstellen. Zum Beispiel können Längen- und Breitenkoordinaten auf der Erdoberfläche verwendet werden. Um die Karte zum Lenken zu verwenden, kann das Host-Fahrzeug seine Position und Ausrichtung relativ zur Karte bestimmen. Es scheint natürlich, 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. Nord, Ost und Abwärts) zu finden. Sobald der Karosseriebezugsrahmen mit dem Kartenbezugsrahmen ausgerichtet ist, kann die gewünschte Route im Karosseriebezugsrahmen ausgedrückt werden, und die Lenkbefehle können berechnet oder generiert werden.
  • Die offenbarten Systeme und Verfahren können eine autonome Fahrzeugnavigation (z. B. Lenksteuerung) mit Modellen mit kleinem Footprint ermöglichen, die durch die autonomen Fahrzeuge selbst ohne die Hilfe teurer Vermessungsausrüstung erhoben werden können. Um die autonome Navigation (z. B. Lenkanwendungen) zu unterstützen, kann das Straßenmodell eine dünnbesetzte Karte beinhalten, die die Geometrie der Straße, ihre Fahrspurstruktur und Orientierungspunkte aufweist, die verwendet werden können, um den Ort oder die Position von Fahrzeugen entlang einer im Modell beinhalteten Trajektorie zu bestimmen. Wie vorstehend erörtert wird, kann die Generierung der dünnbesetzten Karte von einem entfernten Server durchgeführt werden, der mit Fahrzeugen kommuniziert, die auf der Straße fahren, und der Daten aus den Fahrzeugen empfängt. Die Daten können abgetastete Daten, Trajektorien, die basierend auf den abgetasteten Daten rekonstruiert werden, und/oder empfohlene Trajektorien, die modifizierte rekonstruierte Trajektorien repräsentieren können, beinhalten. Wie nachstehend erörtert wird, kann der Server das Modell zurück zu den Fahrzeugen oder zu anderen Fahrzeugen übertragen, die später auf der Straße fahren, um die autonome Navigation zu unterstützen.
  • 20 veranschaulicht ein Blockdiagramm des Servers 1230. Der Server 1230 kann eine Kommunikationseinheit 2005 beinhalten, die sowohl Hardwarekomponenten (z. B. Kommunikationssteuerschaltungen, Schalter und Antenne) als auch Softwarekomponenten (z. B. Kommunikationsprotokolle, Computercodes) beinhalten kann. Zum Beispiel kann die Kommunikationseinheit 2005 mindestens eine Netzwerkschnittstelle beinhalten. Der Server 1230 kann mit den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 über die Kommunikationseinheit 2005 kommunizieren. Zum Beispiel kann der Server 1230 über die Kommunikationseinheit 2005 Navigationsinformationen empfangen, die aus den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 übertragen wurden. 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 mindestens ein nichtflüchtiges Speichermedium 2010 beinhalten, wie etwa eine Festplatte, eine Compact Disc, ein Band usw. Die Speichervorrichtung 1410 kann dazu konfiguriert sein, Daten zu speichern, wie etwa Navigationsinformationen, die aus den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 und/oder dem Straßennavigationsmodell für autonome Fahrzeuge empfangen werden, das der Server 1230 basierend auf den Navigationsinformationen generiert. Die Speichervorrichtung 2010 kann dazu konfiguriert sein, beliebige andere Informationen zu speichern, wie etwa eine dünnbesetzte Karte (z. B. die dünnbesetzte Karte 800, die vorstehend in Bezug auf 8 erörtert wurde).
  • Zusätzlich zu oder anstelle der Speichervorrichtung 2010 kann der Server 1230 einen Speicher 2015 beinhalten. Der Speicher 2015 kann dem Speicher 140 oder 150 ähnlich oder davon verschieden sein. Der Speicher 2015 kann ein nichtflüchtiger Speicher sein, wie etwa ein Flash-Speicher, ein Direktzugriffsspeicher usw. Der Speicher 2015 kann dazu konfiguriert sein, Daten zu speichern, wie etwa Computercodes oder Anweisungen, die durch einen Prozessor (z. B. den Prozessor 2020) ausführbar sind, Kartendaten (z. B. Daten der dünnbesetzten Karte 800), das Straßennavigationsmodell für autonome Fahrzeuge und/oder Navigationsinformationen, die aus den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangen werden.
  • Der Server 1230 kann mindestens eine Verarbeitungsvorrichtung 2020 beinhalten, die dazu konfiguriert ist, Computercodes oder Anweisungen auszuführen, die im Speicher 2015 gespeichert sind, um verschiedene Funktionen durchzuführen. Zum Beispiel kann die Verarbeitungsvorrichtung 2020 die Navigationsinformationen analysieren, die aus den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangen werden, und das Straßennavigationsmodell für autonome Fahrzeuge basierend auf der Analyse generieren. Die Verarbeitungsvorrichtung 2020 kann die Kommunikationseinheit 1405 steuern, um 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 ein beliebiges 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 oder davon verschieden sein.
  • 21 veranschaulicht ein Blockdiagramm des Speichers 2015, der Computercode oder Anweisungen zum Durchführen einer oder mehrerer Operationen zum Generieren eines Straßennavigationsmodells zur Verwendung bei der autonomen Fahrzeugnavigation speichern kann. Wie in 21 gezeigt wird, kann der Speicher 2015 ein oder mehrere Module zum Durchführen der Operationen zum Verarbeiten von Fahrzeugnavigationsinformationen speichern. Zum Beispiel kann der Speicher 2015 ein Modellgenerierungsmodul 2105 und ein Modellverteilungsmodul 2110 beinhalten. Der Prozessor 2020 kann die Anweisungen ausführen, die in einem beliebigen der Module 2105 und 2110 gespeichert sind, die im Speicher 2015 beinhaltet sind.
  • Das Modellgenerierungsmodul 2105 kann Anweisungen speichern, die bei Ausführung durch den Prozessor 2020 mindestens einen Abschnitt eines Straßennavigationsmodells für autonome Fahrzeuge für ein gemeinsames Straßensegment (z. B. das Straßensegment 1200) basierend auf Navigationsinformationen generieren können, die aus den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangen werden. Zum Beispiel kann der Prozessor 2020 beim Generieren des Straßennavigationsmodells für autonome Fahrzeuge Fahrzeugtrajektorien entlang des gemeinsamen Straßensegments 1200 in unterschiedliche Cluster clustern. Der Prozessor 2020 kann eine Zieltrajektorie entlang des gemeinsamen Straßensegments 1200 basierend auf den geclusterten Fahrzeugtrajektorien für jedes der unterschiedlichen Cluster bestimmen. Solch eine Operation kann das Finden einer mittleren oder durchschnittlichen Trajektorie der geclusterten Fahrzeugtrajektorien in jedem Cluster beinhalten (z. B. durch Mitteln von Daten, die die geclusterten Fahrzeugtrajektorien repräsentieren). In einigen Ausführungsformen kann die Zieltrajektorie mit einer einzelnen Fahrspur des gemeinsamen Straßensegments 1200 assoziiert sein.
  • Das Straßenmodell und/oder die dünnbesetzte Karte können Trajektorien speichern, die mit einem Straßensegment assoziiert sind. Diese Trajektorien können als Zieltrajektorien bezeichnet werden, die autonomen Fahrzeugen für die autonome Navigation bereitgestellt werden. Die Zieltrajektorien können aus mehreren Fahrzeugen empfangen werden oder können basierend auf tatsächlichen Trajektorien oder empfohlenen Trajektorien (tatsächlichen Trajektorien mit einigen Modifikationen) generiert werden, die aus mehreren Fahrzeugen empfangen werden. Die Zieltrajektorien, die im Straßenmodell oder der dünnbesetzten Karte enthalten sind, können kontinuierlich aktualisiert (z. B. gemittelt) werden, wobei neue Trajektorien aus anderen Fahrzeugen empfangen werden.
  • Fahrzeuge, die auf einem Straßensegment fahren, können Daten durch verschiedene Sensoren erheben. Die Daten können Orientierungspunkte, das Straßensignaturprofil, die Fahrzeugbewegung (z. B. Beschleunigungsmesserdaten, Geschwindigkeitsdaten), die Fahrzeugposition (z. B. GPS-Daten) beinhalten und können entweder die tatsächlichen Trajektorien selbst rekonstruieren oder die Daten zu einem Server übertragen, der die tatsächlichen Trajektorien für die Fahrzeuge rekonstruiert. In einigen Ausführungsformen können die Fahrzeuge Daten in Bezug auf eine Trajektorie (z. B. eine Kurve in einem beliebigen Referenzrahmen), Orientierungspunktdaten und Fahrspurzuweisung entlang des Fahrwegs zum Server 1230 übertragen. Verschiedene Fahrzeuge, die das gleiche Straßensegment bei mehreren Fahrten entlangfahren, können unterschiedliche Trajektorien aufweisen. Der Server 1230 kann Routen oder Trajektorien, die mit jeder Fahrspur assoziiert sind, aus den Trajektorien identifizieren, die von Fahrzeugen durch einen Clusterprozess empfangen wurden.
  • 22 veranschaulicht einen Prozess zum Clustern von Fahrzeugtrajektorien, die mit den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 assoziiert sind, um eine Zieltrajektorie für das gemeinsame Straßensegment (z. B. das Straßensegment 1200) zu bestimmen. Die Zieltrajektorie oder eine Vielzahl von Zieltrajektorien, die anhand des Clusterprozesses bestimmt werden, können im Straßennavigationsmodell für autonome Fahrzeuge oder der dünnbesetzten Karte 800 beinhaltet sein. In einigen Ausführungsformen können die Fahrzeuge 1205, 1210, 1215, 1220 und 1225, die das Straßensegment 1200 entlangfahren, eine Vielzahl von Trajektorien 2200 zum Server 1230 übertragen. In einigen Ausführungsformen kann der Server 1230 Trajektorien basierend auf Orientierungspunkt-, Straßengeometrie- und Fahrzeugbewegungsinformationen generieren, die aus den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangen wurden. Um das Straßennavigationsmodell für autonome Fahrzeuge zu generieren, kann der Server 1230 Fahrzeugtrajektorien 1600 in eine Vielzahl von Clustern 2205, 2210, 2215, 2220, 2225 und 2230 clustern, wie in 22 gezeigt wird.
  • Das Clustern kann unter Verwendung verschiedener Kriterien durchgeführt werden. In einigen Ausführungsformen können alle Fahrten in einem Cluster in Bezug auf den absoluten Kurs entlang des Straßensegments 1200 ähnlich sein. Der absolute Kurs kann anhand von GPS-Signalen erhalten werden, die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 empfangen werden. In einigen Ausführungsformen kann der absolute Kurs unter Verwendung von Koppelnavigation erhalten werden. Koppelnavigation, wie ein Fachmann verstehen würde, kann verwendet werden, um die aktuelle Position und somit den Kurs der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 unter Verwendung der zuvor bestimmten Position, geschätzten Geschwindigkeit usw. zu bestimmen. Trajektorien, die durch den absoluten Kurs geclustert werden, können nützlich sein, um Routen entlang der Fahrbahnen zu identifizieren.
  • In einigen Ausführungsformen können alle Fahrten in einem Cluster in Bezug auf die Fahrspurzuweisung (z. B. in der gleichen Fahrspur vor und nach einer Kreuzung) entlang der Fahrt auf dem Straßensegment 1200 ähnlich sein. Trajektorien, die durch die Fahrspurzuweisung geclustert werden, können nützlich sein, um Fahrspuren entlang der Fahrbahnen zu identifizieren. In einigen Ausführungsformen können beide Kriterien (z. B. absoluter Kurs und Fahrspurzuweisung) zum Clustern verwendet werden.
  • In jedem Cluster 2205, 2210, 2215, 2220, 2225 und 2230 können Trajektorien gemittelt werden, um eine Zieltrajektorie zu erhalten, die mit dem spezifischen Cluster assoziiert ist. Zum Beispiel können die Trajektorien aus mehreren Fahrten, die mit dem gleichen Fahrspurcluster assoziiert sind, gemittelt werden. Die gemittelte Trajektorie kann eine Zieltrajektorie sein, die mit einer spezifischen Fahrspur assoziiert ist. Um ein Cluster von Trajektorien zu mitteln, kann der Server 1230 einen Referenzrahmen einer beliebigen Trajektorie C0 auswählen. Für alle anderen Trajektorien (C1, ..., Cn) kann der Server 1230 eine starre Transformation finden, die C 1 bis C0 abbildet, wobei i = 1, 2, ..., n, wobei n eine positive ganze Zahl ist, die der Gesamtzahl der Trajektorien entspricht, die im Cluster beinhaltet sind. Der Server 1230 kann eine mittlere Kurve oder Trajektorie im C0-Referenzrahmen berechnen.
  • In einigen Ausführungsformen können die Orientierungspunkte eine Bogenlängenanpassung zwischen verschiedenen Fahrten definieren, die zur Ausrichtung von Trajektorien mit Fahrspuren verwendet werden kann. In einigen Ausführungsformen können Fahrspurmarkierungen vor und nach einer Kreuzung zur Ausrichtung von Trajektorien mit Fahrspuren verwendet werden.
  • Um Fahrspuren aus den Trajektorien zusammenzufügen, kann der Server 1230 einen Referenzrahmen einer beliebigen Fahrspur auswählen. Der Server 1230 kann teilweise überlappende Fahrspuren auf den ausgewählten Referenzrahmen kartieren. Der Server 1230 kann die Kartierung fortsetzen, bis alle Fahrspuren im gleichen Referenzrahmen liegen. Fahrspuren, die nebeneinander liegen, können so ausgerichtet werden, als ob sie die gleiche Fahrspur wären, und später können sie seitlich verschoben werden.
  • Orientierungspunkte, die entlang des Straßensegments erkannt wurden, können auf den gemeinsamen Referenzrahmen abgebildet werden, zuerst auf der Fahrspurebene und dann auf der Kreuzungsebene. Zum Beispiel können dieselben Orientierungspunkte mehrmals von mehreren Fahrzeugen in mehreren Fahrten erkannt werden. Die Daten in Bezug auf die gleichen Orientierungspunkte, die in unterschiedlichen Fahrten empfangen werden, können etwas unterschiedlich sein. Solche Daten können gemittelt und auf den gleichen Referenzrahmen abgebildet werden, wie etwa den C0-Referenzrahmen. Zusätzlich oder alternativ kann die Varianz der Daten desselben Orientierungspunkts, die in mehreren Fahrten empfangen wurden, berechnet werden.
  • In einigen Ausführungsformen kann jede Fahrspur des Straßensegments 120 mit einer Zieltrajektorie und bestimmten Orientierungspunkten assoziiert werden. Die Zieltrajektorie oder eine Vielzahl solcher Zieltrajektorien kann im Straßennavigationsmodell für autonome Fahrzeuge beinhaltet sein, das später von anderen autonomen Fahrzeugen verwendet werden kann, die das gleiche Straßensegment 1200 entlangfahren. Orientierungspunkte, die von den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 identifiziert werden, während die Fahrzeuge das Straßensegment 1200 entlangfahren, können in Assoziation mit der Zieltrajektorie aufgezeichnet werden. Die Daten der Zieltrajektorien und Orientierungspunkte können kontinuierlich oder periodisch mit neuen Daten aktualisiert werden, die aus anderen Fahrzeugen in nachfolgenden Fahrten empfangen werden.
  • Zur Lokalisierung 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 Ausrichtungsdaten, Vorhersage des zukünftigen Orts vor dem aktuellen Ort des Fahrzeugs durch Integration der Eigenbewegung bestimmt werden. Die Lokalisierung des Fahrzeugs kann durch Bildbeobachtungen von Orientierungspunkten korrigiert oder angepasst werden. Wenn zum Beispiel das Fahrzeug einen Orientierungspunkt innerhalb eines Bilds detektiert, das von der Kamera aufgenommen wurde, kann der Orientierungspunkt mit einem bekannten Orientierungspunkt verglichen werden, der innerhalb des Straßenmodells oder der dünnbesetzten Karte 800 gespeichert ist. Der bekannte Orientierungspunkt kann einen bekannten Ort (z. B. GPS-Daten) entlang einer Zieltrajektorie aufweisen, die im Straßenmodell und/oder der dünnbesetzten Karte 800 gespeichert ist. Basierend auf der aktuellen Geschwindigkeit und den Bildern des Orientierungspunkts kann die Distanz vom Fahrzeug zum Orientierungspunkt geschätzt werden. Der Ort des Fahrzeugs entlang einer Zieltrajektorie kann basierend auf der Distanz zum Orientierungspunkt und dem bekannten Ort des Orientierungspunkts (der im Straßenmodell oder der dünnbesetzten Karte 800 gespeichert ist) angepasst werden. Die Positions-/Ortsdaten des Orientierungspunkts (z. B. Mittelwerte aus mehreren Fahrten), die im Straßenmodell und/oder der dünnbesetzten Karte 800 gespeichert sind, können als genau angenommen werden.
  • In einigen Ausführungsformen kann das offenbarte System ein geschlossenes Regelungssubsystem bilden, in dem der Schätzwert des Orts des Fahrzeugs mit sechs Freiheitsgraden (z. B. dreidimensionale Positionsdaten plus dreidimensionale Ausrichtungsdaten) verwendet werden kann, um das autonome Fahrzeug zu navigieren (z. B. sein Rad zu lenken), um einen gewünschten Punkt zu erreichen (z. B. 1,3 Sekunden voraus im Gespeicherten). Im Gegenzug können Daten, die von der Lenkung und der tatsächlichen Navigation gemessen werden, verwendet werden, um den Ort mit sechs Freiheitsgraden zu schätzen.
  • In einigen Ausführungsformen können Pfosten entlang einer Straße, wie etwa Laternenpfosten und Strom- oder Kabelleitungspfosten, als Orientierungspunkte zum Lokalisieren der Fahrzeuge verwendet werden. Andere Orientierungspunkte, wie etwa Verkehrszeichen, Ampeln, Pfeile auf der Straße, Stopplinien sowie statische Merkmale oder Signaturen eines Objekts entlang des Straßensegments können ebenfalls als Orientierungspunkte zum Lokalisieren des Fahrzeugs verwendet werden. Wenn Pfosten zur Lokalisierung verwendet werden, kann die x-Beobachtung der Pfosten (d. h. der Blickwinkel vom Fahrzeug) statt der y-Beobachtung (d. h. der Distanz zum Pfosten) verwendet werden, weil die Unterseiten der Pfosten verdeckt sein können und sich manchmal nicht auf der Straßenebene befinden.
  • 23 veranschaulicht ein Navigationssystem für ein Fahrzeug, das zur autonomen Navigation unter Verwendung einer durch Crowdsourcing ermittelten dünnbesetzten Karte verwendet werden kann. Zur Veranschaulichung wird das Fahrzeug als Fahrzeug 1205 bezeichnet. Das in 23 gezeigte Fahrzeug kann ein beliebiges anderes hierin offenbartes Fahrzeug sein, einschließlich zum Beispiel die Fahrzeuge 1210, 1215, 1220 und 1225 sowie das Fahrzeug 200, das in anderen Ausführungsformen gezeigt ist. Wie in 12 gezeigt wird, kann das Fahrzeug 1205 mit dem Server 1230 kommunizieren. Das Fahrzeug 1205 kann eine Bildaufnahmevorrichtung 122 (z. B. die Kamera 122) beinhalten. Das Fahrzeug 1205 kann ein Navigationssystem 2300 beinhalten, das dazu 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 beinhalten, wie etwa einen Geschwindigkeitssensor 2320 und einen Beschleunigungsmesser 2325. Der Geschwindigkeitssensor 2320 kann dazu konfiguriert sein, die Geschwindigkeit des Fahrzeugs 1205 zu detektieren. Der Beschleunigungsmesser 2325 kann dazu konfiguriert sein, eine Beschleunigung oder Verlangsamung des Fahrzeugs 1205 zu detektieren. Das in 23 gezeigte Fahrzeug 1205 kann ein autonomes Fahrzeug sein, und das Navigationssystem 2300 kann verwendet werden, um Navigationsführung für autonomes Fahren bereitzustellen. Alternativ kann das Fahrzeug 1205 auch ein nicht autonomes, vom Menschen gesteuertes Fahrzeug sein, und das Navigationssystem 2300 kann dennoch verwendet werden, um Navigationsführung bereitzustellen.
  • Das Navigationssystem 2300 kann eine Kommunikationseinheit 2305 beinhalten, die dazu konfiguriert ist, mit dem Server 1230 über den Kommunikationsweg 1235 zu kommunizieren. Das Navigationssystem 2300 kann auch eine GPS-Einheit 2310 beinhalten, die dazu konfiguriert ist, GPS-Signale zu empfangen und zu verarbeiten. Das Navigationssystem 2300 kann ferner mindestens einen Prozessor 2315 beinhalten, der dazu konfiguriert ist, Daten, wie etwa GPS-Signale, Kartendaten aus der dünnbesetzten Karte 800 (die auf einer Speichervorrichtung gespeichert sein können, die an Bord des Fahrzeugs 1205 bereitgestellt und/oder aus dem Server 1230 empfangen wird), Straßengeometrie, die von einem Straßenprofilsensor 2330 abgetastet wird, Bilder, die von der Kamera 122 aufgenommen werden, und/oder ein Straßennavigationsmodell für autonome Fahrzeuge, das aus dem Server 1230 empfangen wird, zu verarbeiten. Der Straßenprofilsensor 2330 kann unterschiedliche Typen von Vorrichtungen zum Messen unterschiedlicher Typen von Straßenprofilen beinhalten, wie etwa Straßenoberflächenunebenheit, Straßenbreite, Straßenhöhe, Straßenkrümmung usw. Zum Beispiel kann der Straßenprofilsensor 2330 eine Vorrichtung beinhalten, die die Bewegung einer Aufhängung des Fahrzeugs 2305 misst, um das Straßenunebenheitsprofil abzuleiten. In einigen Ausführungsformen kann der Straßenprofilsensor 2330 Radarsensoren zum Messen der Distanz vom Fahrzeug 1205 zu Straßenseiten (z. B. Barrieren an den Straßenseiten) beinhalten, wodurch die Breite der Straße gemessen wird. In einigen Ausführungsformen kann der Straßenprofilsensor 2330 eine Vorrichtung beinhalten, die zum Messen der Auf- und Abwärtshöhe der Straße konfiguriert ist. In einigen Ausführungsformen kann der Straßenprofilsensor 2330 eine Vorrichtung beinhalten, die dazu konfiguriert ist, die Straßenkrümmung zu messen. Zum Beispiel kann eine Kamera (z. B. die Kamera 122 oder eine andere Kamera) verwendet werden, um Bilder der Straße aufzunehmen, die Straßenkrümmungen zeigen. Das Fahrzeug 1205 kann solche Bilder verwenden, um Straßenkrümmungen zu detektieren.
  • Der mindestens eine Prozessor 2315 kann dazu programmiert sein, aus der Kamera 122 mindestens ein Umgebungsbild zu empfangen, das mit dem Fahrzeug 1205 assoziiert ist. Der mindestens eine Prozessor 2315 kann das mindestens eine Umgebungsbild analysieren, um Navigationsinformationen in Bezug auf das Fahrzeug 1205 zu bestimmen. Die Navigationsinformationen können eine Trajektorie beinhalten, die in Beziehung zur Fahrt des Fahrzeugs 1205 entlang des Straßensegments 1200 steht. Der mindestens eine Prozessor 2315 kann die Trajektorie basierend auf Bewegungen der Kamera 122 (und somit des Fahrzeugs) bestimmen, wie etwa dreidimensionale Translation und dreidimensionale Rotationsbewegungen. In einigen Ausführungsformen kann der mindestens eine Prozessor 2315 die Translation und Rotationsbewegungen der Kamera 122 basierend auf der Analyse einer Vielzahl von Bildern bestimmen, die von der Kamera 122 erfasst wurden. In einigen Ausführungsformen können die Navigationsinformationen Fahrspurzuweisungsinformationen beinhalten (z. B., auf welcher Fahrspur das Fahrzeug 1205 das Straßensegment 1200 entlangfährt). Die Navigationsinformationen, die vom Fahrzeug 1205 zum Server 1230 übertragen werden, können vom Server 1230 verwendet werden, um ein Straßennavigationsmodell für autonome Fahrzeuge zu generieren und/oder zu aktualisieren, das zurück vom Server 1230 zum Fahrzeug 1205 übertragen werden kann, um autonome Navigationsführung für das Fahrzeug 1205 bereitzustellen.
  • Der mindestens eine Prozessor 2315 kann auch dazu programmiert sein, die Navigationsinformationen aus dem Fahrzeug 1205 zum Server 1230 zu übertragen. In einigen Ausführungsformen können die Navigationsinformationen zusammen mit Straßeninformationen zum Server 1230 übertragen werden. Die Straßenortsinformationen können mindestens ein GPS-Signal, das von der GPS-Einheit 2310 empfangen wird, und/oder Orientierungspunktinformationen und/oder Straßengeometrie und/oder Fahrspurinformationen usw. beinhalten. Der mindestens eine Prozessor 2315 kann aus dem Server 1230 das Straßennavigationsmodell für autonome Fahrzeuge oder einen Abschnitt des Modells empfangen. Das Straßennavigationsmodell für autonome Fahrzeuge, das aus dem Server 1230 empfangen wird, kann mindestens eine Aktualisierung basierend auf den Navigationsinformationen beinhalten, die aus dem Fahrzeug 1205 zum Server 1230 übertragen wurden. Der Abschnitt des Modells, der aus dem Server 1230 zum Fahrzeug 1205 übertragen wird, kann einen aktualisierten Abschnitt des Modells beinhalten. Der mindestens eine Prozessor 2315 kann mindestens ein Navigationsmanöver (z. B. Lenken, wie etwa 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 mindestens eine Prozessor 2315 kann dazu konfiguriert sein, mit verschiedenen Sensoren und Komponenten zu kommunizieren, die im Fahrzeug 1205 beinhaltet sind, einschließlich der Kommunikationseinheit 1705, der GPS-Einheit 2315, der Kamera 122, des Geschwindigkeitssensors 2320, des Beschleunigungsmessers 2325 und des Straßenprofilsensors 2330. Der mindestens eine Prozessor 2315 kann Informationen oder Daten aus verschiedenen Sensoren und Komponenten erheben und die Informationen oder Daten über die Kommunikationseinheit 2305 zum Server 1230 übertragen. Alternativ oder zusätzlich können verschiedene Sensoren oder Komponenten des Fahrzeugs 1205 auch mit dem Server 1230 kommunizieren und Daten oder Informationen, die von den Sensoren oder Komponenten erhoben wurden, zum Server 1230 übertragen.
  • In einigen Ausführungsformen können die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 miteinander kommunizieren und können Navigationsinformationen gemeinsam nutzen, so dass mindestens eines der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 das Straßennavigationsmodell für autonome Fahrzeuge unter Verwendung von Crowdsourcing generieren kann, z. B. basierend auf Informationen, die von anderen Fahrzeugen gemeinsam genutzt werden. In einigen Ausführungsformen können die Fahrzeuge 1205, 1210, 1215, 1220 und 1225 Navigationsinformationen gemeinsam nutzen, und jedes Fahrzeug kann sein eigenes Straßennavigationsmodell für autonome Fahrzeuge aktualisieren, das im Fahrzeug bereitgestellt ist. In einigen Ausführungsformen kann mindestens eines der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 (z. B. das Fahrzeug 1205) als ein Hub-Fahrzeug fungieren. Der mindestens eine Prozessor 2315 des Hub-Fahrzeugs (z. B. des Fahrzeugs 1205) kann einige oder alle der Funktionen durchführen, die vom Server 1230 durchgeführt werden. Zum Beispiel kann der mindestens eine Prozessor 2315 des Hub-Fahrzeugs mit anderen Fahrzeugen kommunizieren und Navigationsinformationen aus anderen Fahrzeugen empfangen. Der mindestens eine Prozessor 2315 des Hub-Fahrzeugs kann das Straßennavigationsmodell für autonome Fahrzeuge oder eine Aktualisierung des Modells basierend auf den gemeinsam genutzten Informationen generieren, die aus anderen Fahrzeugen empfangen wurden. Der mindestens eine Prozessor 2315 des Hub-Fahrzeugs kann das Straßennavigationsmodell für autonome Fahrzeuge oder die Aktualisierung des Modells zu anderen Fahrzeugen übertragen, um autonome Navigationsführung bereitzustellen.
  • Navigation basierend auf dünnbesetzten Karten
  • Wie bereits erörtert, kann das Straßennavigationsmodell für autonome Fahrzeuge einschließlich der dünnbesetzten Karte 800 eine Vielzahl von kartierten Fahrspurmarkierungen und eine Vielzahl von kartierten Objekten/Merkmalen beinhalten, die mit einem Straßensegment assoziiert sind. Wie nachstehend ausführlicher erörtert wird, können diese kartierten Fahrspurmarkierungen, Objekte und Merkmale verwendet werden, wenn das autonome Fahrzeug navigiert. Zum Beispiel können in einigen Ausführungsformen die kartierten Objekte und Merkmale verwendet werden, um ein Host-Fahrzeug relativ zur Karte (z. B. relativ zu einer kartierten Zieltrajektorie) zu lokalisieren. Die kartierten Fahrspurmarkierungen können verwendet werden (z. B. als eine Prüfung), um eine seitliche Position und/oder Ausrichtung relativ zu einer geplanten oder Zieltrajektorie zu bestimmen. Mit diesen Positionsinformationen kann das autonome Fahrzeug in der Lage sein, eine Kursrichtung anzupassen, so dass sie mit einer Richtung einer Zieltrajektorie an der bestimmten Position übereinstimmt.
  • Das Fahrzeug 200 kann dazu konfiguriert sein, Fahrspurmarkierungen in einem gegebenen Straßensegment zu detektieren. Das Straßensegment kann beliebige Markierungen auf einer Straße zum Führen des Fahrzeugverkehrs auf einer Fahrbahn beinhalten. Zum Beispiel können die Fahrspurmarkierungen durchgehende oder gestrichelte Linien sein, die den Rand einer Fahrspur abgrenzen. Die Fahrspurmarkierungen können auch doppelte Linien beinhalten, wie etwa doppelte durchgehende Linien, doppelte gestrichelte Linien oder eine Kombination aus durchgehenden und gestrichelten Linien, die zum Beispiel angeben, ob das Überholen in einer benachbarten Fahrspur erlaubt ist. Die Fahrspurmarkierungen können auch Autobahnauffahrt- und -ausfahrtsmarkierungen beinhalten, die zum Beispiel eine Verlangsamungsspur für eine Ausfahrt oder gestrichelte Linien angeben, die angeben, dass eine Fahrspur nur zum Abbiegen dient oder dass die Fahrspur endet. Die Markierungen können ferner eine Baustellenzone, eine vorübergehende Fahrspurverschiebung, einen Fahrweg über eine Kreuzung, einen Mittelstreifen, eine Spezialfahrspur (z. B. eine Fahrradspur, eine HOV-Fahrspur usw.) oder andere sonstige Markierungen (z. B. einen Zebrastreifen, eine Bodenschwelle, einen Bahnübergang, eine Stopplinie usw.) angeben.
  • Das Fahrzeug 200 kann Kameras verwenden, wie etwa die Bildaufnahmevorrichtungen 122 und 124, die in der Bilderfassungseinheit 120 beinhaltet sind, um Bilder der umgebenden Fahrspurmarkierungen aufzunehmen. Das Fahrzeug 200 kann die Bilder analysieren, um Orte von Punkten, die mit den Fahrspurmarkierungen assoziiert sind, basierend auf Merkmalen zu detektieren, die innerhalb eines oder mehrerer der aufgenommenen Bilder identifiziert wurden. Diese Punktorte können auf einen Server hochgeladen werden, um die Fahrspurmarkierungen in der dünnbesetzten 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. Statt tatsächliche Bilder der Fahrspurmarkierungen hochzuladen, können die Markierungen in der dünnbesetzten Karte 800 als ein Spline oder eine Serie von Punkten gespeichert werden, wodurch die Größe der dünnbesetzten Karte 800 und/oder die Daten, die von dem Fahrzeug entfernt hochgeladen werden müssen, reduziert werden.
  • 24A - 24D veranschaulichen beispielhafte Punktorte, die von dem Fahrzeug 200 detektiert werden können, um spezielle Fahrspurmarkierungen zu repräsentieren. Ähnlich den vorstehend beschriebenen Orientierungspunkten kann das Fahrzeug 200 verschiedene Bilderkennungsalgorithmen oder -software verwenden, um Punktorte innerhalb eines aufgenommenen Bilds zu identifizieren. Zum Beispiel kann das Fahrzeug 200 eine Serie von Randpunkten, Eckpunkten oder verschiedenen anderen Punktorten erkennen, die mit einer speziellen Fahrspurmarkierung assoziiert sind. 24A zeigt eine durchgehende Fahrspurmarkierung 2410, die von dem Fahrzeug 200 detektiert werden kann. Die Fahrspurmarkierung 2410 kann den Außenrand einer Fahrbahn darstellen, der durch eine durchgehende weiße Linie dargestellt wird. Wie in 24A gezeigt wird, kann das Fahrzeug 200 dazu konfiguriert sein, eine Vielzahl von Rand-Ortspunkten 2411 entlang der Fahrspurmarkierung zu detektieren. Die Ortspunkte 2411 können erhoben werden, um die Fahrspurmarkierung in beliebigen Intervallen zu repräsentieren, die ausreichend sind, um eine kartierte Fahrspurmarkierung in der dünnbesetzten Karte zu erstellen. Zum Beispiel kann die Fahrspurmarkierung durch einen Punkt pro Meter des detektierten Rands, einen Punkt pro fünf Meter des detektierten Rands oder in anderen geeigneten Abständen repräsentiert werden. In einigen Ausführungsformen kann der Abstand statt in festgelegten Intervallen durch andere Faktoren bestimmt werden, wie etwa zum Beispiel basierend auf Punkten, an denen das Fahrzeug 200 eine höchste Vertrauenseinstufung des Orts der detektierten Punkte aufweist. Obwohl 24A Rand-Ortspunkte an einem Innenrand der Fahrspurmarkierung 2410 zeigt, können Punkte am Außenrand der Linie oder entlang beider Ränder erhoben werden. Obwohl in 24A eine einzige Linie gezeigt wird, können ferner ähnliche Randpunkte für eine doppelte durchgehende Linie detektiert werden. Zum Beispiel können die Punkte 2411 entlang eines Rands einer oder beider durchgehender Linien detektiert werden.
  • Das Fahrzeug 200 kann auch Fahrspurmarkierungen unterschiedlich repräsentieren, je nach Typ oder Form der Fahrspurmarkierung. 24B zeigt eine beispielhafte gestrichelte Fahrspurmarkierung 2420, die von dem Fahrzeug 200 detektiert werden kann. Statt Randpunkte zu identifizieren, wie in 24A, kann das Fahrzeug eine Serie von Eckpunkten 2421 detektieren, die Ecken der Fahrspurstriche repräsentieren, um die volle Begrenzung des Strichs zu definieren. Obwohl 24B zeigt, dass jede Ecke einer gegebenen Strichmarkierung lokalisiert wird, kann das Fahrzeug 200 eine Teilmenge der in der Figur gezeigten Punkte detektieren oder hochladen. Zum Beispiel kann das Fahrzeug 200 den vorderen Rand oder die vordere Ecke einer gegebenen Strichmarkierung detektieren oder kann die zwei Eckpunkte detektieren, die der Innenseite der Fahrspur am nächsten sind. Ferner wird möglicherweise nicht jede Strichmarkierung aufgenommen, zum Beispiel kann das Fahrzeug 200 Punkte aufnehmen und/oder aufzeichnen, die eine Auswahl der Strichmarkierungen (z. B. jede zweite, jede dritte, jede fünfte usw.) oder Strichmarkierungen in einem vordefinierten Abstand (z. B. jeden Meter, alle fünf Meter, alle 10 Meter usw.) repräsentieren. Eckpunkte können auch für ähnliche Fahrspurmarkierungen detektiert werden, wie etwa Markierungen, die zeigen, dass eine Fahrspur für eine Ausfahrt dient, 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 doppelten gestrichelten Linien oder aus einer Kombination von durchgehenden und gestrichelten Linien bestehen.
  • In einigen Ausführungsformen können die Punkte, die zum Server hochgeladen werden, um die kartierten Fahrspurmarkierungen zu generieren, andere Punkte außer den detektierten Randpunkten oder Eckpunkten repräsentieren. 24C veranschaulicht eine Serie von Punkten, die eine Mittellinie einer gegebenen Fahrspurmarkierung repräsentieren können. Zum Beispiel kann die durchgehende Fahrspur 2410 durch Mittellinienpunkte 2441 entlang einer Mittellinie 2440 der Fahrspurmarkierung repräsentiert werden. In einigen Ausführungsformen kann das Fahrzeug 200 dazu konfiguriert sein, diese Mittelpunkte unter Verwendung verschiedener Bilderkennungstechniken zu detektieren, wie etwa Merkmalen von Convolutional Neural Networks (CNN), Scale-Invariant Feature Transform (SIFT), Histogram of Oriented Gradients (HOG) oder anderen Techniken. Alternativ kann das Fahrzeug 200 andere Punkte detektieren, wie etwa die in 24A gezeigten Randpunkte 2411, und kann Mittellinienpunkte 2441 berechnen, zum Beispiel durch Detektieren von Punkten entlang jedes Rands und Bestimmen eines Mittelpunkts zwischen den Randpunkten. Gleichermaßen kann die gestrichelte Fahrspurmarkierung 2420 durch die Mittellinienpunkte 2451 entlang einer Mittellinie 2450 der Fahrspurmarkierung repräsentiert werden. Die Mittellinienpunkte können sich am Rand eines Strichs, wie in 24C gezeigt wird, oder an verschiedenen anderen Orten entlang der Mittellinie befinden. Zum Beispiel kann jeder Strich durch einen einzelnen Punkt in der geometrischen Mitte des Strichs repräsentiert werden. Die Punkte können auch in einem vorbestimmten Intervall entlang der Mittellinie (z. B. jeden Meter, alle 5 Meter, alle 10 Meter usw.) beabstandet sein. Die Mittellinienpunkte 2451 können direkt vom Fahrzeug 200 detektiert werden oder können basierend auf anderen detektierten Referenzpunkten, wie etwa den Eckpunkten 2421, wie in 24B gezeigt wird, berechnet werden. Eine Mittellinie kann ebenfalls verwendet werden, um andere Fahrspurmarkierungstypen, wie etwa eine doppelte Linie, unter Verwendung ähnlicher Techniken wie vorstehend zu repräsentieren.
  • In einigen Ausführungsformen kann das Fahrzeug 200 Punkte identifizieren, die andere Merkmale repräsentieren, wie etwa ein Vertex zwischen zwei sich schneidenden Fahrspurmarkierungen. 24D zeigt beispielhafte Punkte, die eine Kreuzung zwischen zwei Fahrspurmarkierungen 2460 und 2465 repräsentieren. Das Fahrzeug 200 kann einen Vertex-Punkt 2466 berechnen, der eine Kreuzung zwischen den zwei Fahrspurmarkierungen repräsentiert. Zum Beispiel kann eine der Fahrspurmarkierungen 2460 oder 2465 einen Bahnkreuzungsbereich oder einen anderen Kreuzungsbereich im Straßensegment repräsentieren. Obwohl die Fahrspurmarkierungen 2460 und 2465 als sich senkrecht kreuzend gezeigt werden, können verschiedene andere Konfigurationen detektiert werden. Zum Beispiel können die Fahrspurmarkierungen 2460 und 2465 sich in anderen Winkeln kreuzen, oder eine oder beide der Fahrspurmarkierungen können am Vertexpunkt 2466 enden. Ähnliche Techniken können auch für Kreuzungen zwischen gestrichelten oder anderen Fahrspurmarkierungstypen angewendet werden. Zusätzlich zum Vertexpunkt 2466 können auch verschiedene andere Punkte 2467 detektiert werden, die weitere Informationen über die Ausrichtung der Fahrspurmarkierungen 2460 und 2465 bereitstellen.
  • Das Fahrzeug 200 kann reale Koordinaten mit jedem detektierten Punkt der Fahrspurmarkierung assoziieren. Zum Beispiel können Ortskennungen, die Koordinaten für jeden Punkt beinhalten, zum Hochladen auf einen Server zum Kartieren der Fahrspurmarkierung generiert werden. Die Ortskennungen können ferner andere identifizierende Informationen über die Punkte beinhalten, einschließlich, ob der Punkt einen Eckpunkt, einen Randpunkt, einen Mittelpunkt usw. repräsentiert. Das Fahrzeug 200 kann daher dazu konfiguriert sein, eine reale Position jedes Punkts basierend auf der Analyse der Bilder zu bestimmen. Zum Beispiel kann das Fahrzeug 200 andere Merkmale im Bild detektieren, wie etwa die verschiedenen vorstehend beschriebenen Orientierungspunkte, um die reale Position der Fahrspurmarkierungen zu lokalisieren. Dies kann das Bestimmen des Orts der Fahrspurmarkierungen im Bild relativ zum detektierten Orientierungspunkt oder das Bestimmen der Position des Fahrzeugs basierend auf dem detektierten Orientierungspunkt und dann das Bestimmen einer Distanz vom Fahrzeug (oder der Zieltrajektorie des Fahrzeugs) zur Fahrspurmarkierung beinhalten. Wenn kein Orientierungspunkt verfügbar ist, kann der Ort der Fahrspurmarkierungspunkte relativ zu einer Position des Fahrzeugs bestimmt werden, die basierend auf Koppelnavigation bestimmt wird. Die realen Koordinaten, die in den Ortskennungen enthalten sind, können als absolute Koordinaten (z. B. Breiten-/Längenkoordinaten) repräsentiert werden oder können relativ zu anderen Merkmalen sein, wie etwa basierend auf einer Längsposition entlang einer Zieltrajektorie und einer seitlichen Distanz von der Zieltrajektorie. Die Ortskennungen können dann auf einen Server zum Generieren der kartierten Fahrspurmarkierungen im Navigationsmodell (wie etwa der dünnbesetzten Karte 800) hochgeladen werden. In einigen Ausführungsformen kann der Server einen Spline erstellen, der die Fahrspurmarkierungen eines Straßensegments repräsentiert. Alternativ kann das Fahrzeug 200 den Spline generieren und ihn auf den Server hochladen, damit er im Navigationsmodell aufgezeichnet wird.
  • 24E zeigt ein beispielhaftes Navigationsmodell oder eine dünnbesetzte Karte für ein entsprechendes Straßensegment, das kartierte Fahrspurmarkierungen beinhaltet. Die dünnbesetzte Karte kann eine Zieltrajektorie 2475 beinhalten, der ein Fahrzeug entlang eines Straßensegments folgen soll. Wie vorstehend beschrieben wird, kann die Zieltrajektorie 2475 einen idealen Weg repräsentieren, den ein Fahrzeug nehmen soll, wenn es das entsprechende Straßensegment befährt, oder kann sich an anderer Stelle auf der Straße befinden (z. B. eine Mittellinie der Straße usw.). Die Zieltrajektorie 2475 kann in den verschiedenen vorstehend beschriebenen Verfahren berechnet werden, zum Beispiel basierend auf einer Aggregation (z. B. einer gewichteten Kombination) von zwei oder mehr rekonstruierten Trajektorien von Fahrzeugen, die dasselbe Straßensegment befahren.
  • In einigen Ausführungsformen kann die Zieltrajektorie für alle Fahrzeugtypen und für alle Straßen-, Fahrzeug- und/oder Umgebungsbedingungen gleich generiert werden. In anderen Ausführungsformen können jedoch auch verschiedene andere Faktoren oder Variablen beim Generieren der Zieltrajektorie berücksichtigt werden. Eine andere Zieltrajektorie kann für unterschiedliche Typen von Fahrzeugen generiert werden (z. B. ein Privatauto, einen Kleinlaster und einen Anhänger). Zum Beispiel kann eine Zieltrajektorie für ein kleines Privatauto mit relativ engeren Wenderadien als für einen größeren Sattelschlepper generiert werden. In einigen Ausführungsformen können Straßen-, Fahrzeug- und Umgebungsbedingungen ebenfalls berücksichtigt werden. Zum Beispiel kann eine andere Zieltrajektorie für verschiedene Straßenbedingungen (z. B. nass, schneebedeckt, vereist, trocken usw.), Fahrzeugbedingungen (z. B. Reifenzustand oder geschätzter Reifenzustand, Bremsenzustand oder geschätzter Bremsenzustand, verbleibende Kraftstoffmenge usw.) oder Umgebungsfaktoren (z. B. Tageszeit, Sicht, Wetter usw.) generiert werden. Die Zieltrajektorie kann auch von einem oder mehreren Aspekten oder Merkmalen eines speziellen Straßensegments abhängen (z. B. Geschwindigkeitsbegrenzung, Häufigkeit und Größe von Kehren, Gefälle usw.). In einigen Ausführungsformen können verschiedene Benutzereinstellungen auch verwendet werden, um die Zieltrajektorie zu bestimmen, wie etwa einen eingestellten Fahrmodus (z. B. gewünschte Fahraggressivität, Sparmodus usw.).
  • Die dünnbesetzte Karte kann auch kartierte Fahrspurmarkierungen 2470 und 2480 beinhalten, die Fahrspurmarkierungen entlang des Straßensegments repräsentieren. Die kartierten Fahrspurmarkierungen können durch eine Vielzahl von Ortskennungen 2471 und 2481 repräsentiert werden. Wie vorstehend beschrieben, können die Ortskennungen Orte in realen Koordinaten von Punkten beinhalten, die mit einer detektierten Fahrspurmarkierung assoziiert sind. Ähnlich wie die Zieltrajektorie im Modell können die Fahrspurmarkierungen auch Höhendaten beinhalten und können als eine Kurve im dreidimensionalen Raum repräsentiert werden. Zum Beispiel kann die Kurve ein Spline sein, der dreidimensionale Polynome geeigneter Ordnung verbindet, wobei die Kurve basierend auf den Ortskennungen berechnet werden kann. Die kartierten Fahrspurmarkierungen können auch andere Informationen oder Metadaten über die Fahrspurmarkierung beinhalten, wie etwa eine Kennung des Typs der Fahrspurmarkierung (z. B. zwischen zwei Fahrspuren mit der gleichen Fahrtrichtung, zwischen zwei Fahrspuren mit entgegengesetzter Fahrtrichtung, der Rand einer Fahrbahn usw.) und/oder andere Charakteristiken der Fahrspurmarkierung (z. B. durchgehend, gestrichelt, einzelne Linie, doppelte Linie, gelb, weiß usw.). In einigen Ausführungsformen können die kartierten Fahrspurmarkierungen innerhalb des Modells kontinuierlich aktualisiert werden, zum Beispiel unter Verwendung von Crowdsourcing-Techniken. Dasselbe Fahrzeug kann Ortskennungen während mehrerer Gelegenheiten des Befahrens des gleichen Straßensegments hochladen, oder Daten können aus einer Vielzahl von Fahrzeugen (wie etwa 1205, 1210, 1215, 1220 und 1225) ausgewählt werden, die das Straßensegment zu unterschiedlichen Zeiten befahren. Die dünnbesetzte Karte 800 kann dann basierend auf nachfolgenden Ortskennungen, die von den Fahrzeugen empfangen und im System gespeichert werden, aktualisiert oder verfeinert werden. Wenn die kartierten Fahrspurmarkierungen aktualisiert und verfeinert sind, können das aktualisierte Straßennavigationsmodell und/oder die dünnbesetzte Karte an eine Vielzahl von autonomen Fahrzeugen verteilt werden.
  • Das Generieren der kartierten Fahrspurmarkierungen in der dünnbesetzten Karte kann auch das Detektieren und/oder Abschwächen von Fehlern basierend auf Anomalien in den Bildern oder in den tatsächlichen Fahrspurmarkierungen selbst beinhalten. 24F zeigt eine beispielhafte Anomalie 2495, die mit dem Detektieren einer Fahrspurmarkierung 2490 assoziiert ist. Die Anomalie 2495 kann in dem Bild vorkommen, das vom Fahrzeug 200 aufgenommen wird, zum Beispiel von einem Objekt, das die Sicht der Kamera auf die Fahrspurmarkierung behindert, Ablagerungen auf der Linse 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, zum Beispiel durch Schmutz, Ablagerungen, Wasser, Schnee oder andere Materialien auf der Straße. Die Anomalie 2495 kann dazu führen, dass ein fehlerhafter Punkt 2491 vom Fahrzeug 200 detektiert wird. Die dünnbesetzte Karte 800 kann die kartierte Fahrspurmarkierung korrekt bereitstellen und den Fehler ausschließen. In einigen Ausführungsformen kann das Fahrzeug 200 den fehlerhaften Punkt 2491 detektieren, zum Beispiel durch Detektieren der Anomalie 2495 im Bild oder durch Identifizieren des Fehlers basierend auf detektierten Fahrspurmarkierungspunkten vor und nach der Anomalie. Basierend auf dem Detektieren der Anomalie kann das Fahrzeug den Punkt 2491 auslassen oder kann ihn anpassen, so dass er mit anderen detektierten Punkten in Übereinstimmung ist. In anderen Ausführungsformen kann der Fehler korrigiert werden, nachdem der Punkt hochgeladen wurde, zum Beispiel durch Bestimmen, dass sich der Punkt außerhalb eines erwarteten Schwellenwerts befindet, basierend auf anderen Punkten, die während derselben Fahrt hochgeladen wurden, oder basierend auf einer Aggregation von Daten aus vorherigen Fahrten entlang desselben Straßensegments.
  • Die kartierten Fahrspurmarkierungen im Navigationsmodell und/oder der dünnbesetzten Karte können auch zur Navigation durch ein autonomes Fahrzeug verwendet werden, das die entsprechende Fahrbahn befährt. Zum Beispiel kann ein Fahrzeug, das entlang einer Zieltrajektorie navigiert, periodisch die kartierten Fahrspurmarkierungen in der dünnbesetzten Karte verwenden, um sich selbst mit der Zieltrajektorie auszurichten. Wie vorstehend erwähnt, kann das Fahrzeug zwischen Orientierungspunkten basierend auf Koppelnavigation navigieren, bei der das Fahrzeug Sensoren verwendet, um seine Eigenbewegung zu bestimmen und seine Position relativ zur Zieltrajektorie zu schätzen. Fehler können sich im Laufe der Zeit akkumulieren, und die Positionsbestimmungen des Fahrzeugs relativ zur Zieltrajektorie können zunehmend weniger genau werden. Dementsprechend kann das Fahrzeug Fahrspurmarkierungen verwenden, die in der dünnbesetzten Karte 800 (und ihren bekannten Orten) auftreten, um die durch Koppelnavigation induzierten Fehler bei der Positionsbestimmung zu reduzieren. Auf diese Weise können die identifizierten Fahrspurmarkierungen, die in der dünnbesetzten Karte 800 beinhaltet sind, als Navigationsanker dienen, aus denen eine genaue Position des Fahrzeugs relativ zu einer Zieltrajektorie 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 zum Beispiel vom Fahrzeug 200 über die Bildaufuahmevorrichtungen 122 und 124 aufgenommen werden, die in der Bilderfassungseinheit 120 beinhaltet sind. Das Bild 2500 kann ein Bild von mindestens einer Fahrspurmarkierung 2510 beinhalten, wie in 25A gezeigt wird. Das Bild 2500 kann auch einen oder mehrere Orientierungspunkte 2521 beinhalten, wie etwa ein Verkehrszeichen, die zur Navigation verwendet werden, wie vorstehend beschrieben wird. Einige Elemente, die in 25A gezeigt werden, wie etwa die Elemente 2511, 2530 und 2520, die nicht im aufgenommenen Bild 2500 vorkommen, aber vom Fahrzeug 200 detektiert und/oder bestimmt werden, werden ebenfalls als Referenz gezeigt.
  • Unter Verwendung der verschiedenen, vorstehend in Bezug auf die 24A - D und 24F beschriebenen Techniken kann ein Fahrzeug das Bild 2500 analysieren, um die Fahrspurmarkierung 2510 zu identifizieren. Verschiedene Punkte 2511 können entsprechend Merkmalen der Fahrspurmarkierung im Bild detektiert werden. Die Punkte 2511 können zum Beispiel einem Rand der Fahrspurmarkierung, einer Ecke der Fahrspurmarkierung, einem Mittelpunkt der Fahrspurmarkierung, einem Vertex zwischen zwei sich schneidenden Fahrspurmarkierungen oder verschiedenen anderen Merkmalen oder Orten entsprechen. Die Punkte 2511 können detektiert werden, so dass sie einem Ort von Punkten entsprechen, die in einem Navigationsmodell gespeichert werden, das aus einem Server empfangen wird. Wenn zum Beispiel eine dünnbesetzte 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 wird und sich entlang einer Zieltrajektorie befindet. Die Längsposition 2520 kann anhand des Bilds 2500 bestimmt werden, zum Beispiel durch Detektieren des Orientierungspunkts 2521 innerhalb des Bilds 2500 und Vergleichen eines gemessenen Orts mit einem bekannten Orientierungspunktort, der im Straßenmodell oder der dünnbesetzten Karte 800 gespeichert ist. Der Ort des Fahrzeugs entlang einer Zieltrajektorie kann dann basierend auf der Distanz zum Orientierungspunkt und dem bekannten Ort des Orientierungspunkts bestimmt werden. Die Längsposition 2520 kann auch anhand anderer Bilder als denen bestimmt werden, die verwendet werden, um die Position einer Fahrspurmarkierung zu bestimmen. Zum Beispiel kann die Längsposition 2520 durch Detektieren von Orientierungspunkten in Bildern aus anderen Kameras in der Bilderfassungseinheit 120 bestimmt werden, die gleichzeitig oder fast gleichzeitig mit dem Bild 2500 aufgenommen werden. In einigen Fällen befindet sich das Fahrzeug möglicherweise nicht in der Nähe von Orientierungspunkten oder anderen Bezugspunkten zum Bestimmen der Längsposition 2520. 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 zur Zieltrajektorie zu schätzen. Das Fahrzeug kann auch eine Distanz 2530 bestimmen, die die tatsächliche Distanz zwischen dem Fahrzeug und der Fahrspurmarkierung 2510 darstellt, die in dem bzw. den aufgenommenen Bildern beobachtet wird. Der Kamerawinkel, die Geschwindigkeit des Fahrzeugs, die Breite des Fahrzeugs oder verschiedene andere Faktoren können beim Bestimmen der Distanz 2530 berücksichtigt werden.
  • 25B veranschaulicht eine Korrektur der seitlichen Lokalisierung des Fahrzeugs basierend auf den kartierten Fahrspurmarkierungen in einem Straßennavigationsmodell. Wie vorstehend beschrieben, kann das Fahrzeug 200 eine Distanz 2530 zwischen dem Fahrzeug 200 und einer Fahrspurmarkierung 2510 unter Verwendung eines oder mehrerer Bilder bestimmen, die vom Fahrzeug 200 aufgenommen wurden. Das Fahrzeug 200 kann auch Zugriff auf ein Straßennavigationsmodell haben, wie etwa die dünnbesetzte Karte 800, die eine kartierte Fahrspurmarkierung 2550 und eine Zieltrajektorie 2555 beinhalten kann. Die kartierte Fahrspurmarkierung 2550 kann unter Verwendung der vorstehend beschriebenen Techniken modelliert werden, zum Beispiel unter Verwendung von durch Crowdsourcing ermittelten Ortskennungen, die von einer Vielzahl von Fahrzeugen aufgenommen wurden. Die Zieltrajektorie 2555 kann auch unter Verwendung der verschiedenen vorstehend beschriebenen Techniken generiert werden. Das Fahrzeug 200 kann auch eine Längsposition 2520 entlang der Zieltrajektorie 2555 bestimmen oder schätzen, wie vorstehend in Bezug auf 25A beschrieben wird. Das Fahrzeug 200 kann dann eine erwartete Distanz 2540 basierend auf einer seitlichen Distanz zwischen der Zieltrajektorie 2555 und der kartierten Fahrspurmarkierung 2550 bestimmen, die der Längsposition 2520 entspricht. Die seitliche Lokalisierung des Fahrzeugs 200 kann durch Vergleichen der tatsächlichen Distanz 2530, die unter Verwendung des aufgenommenen Bilds oder der aufgenommenen erfassten Bilder gemessen wurde, mit der erwarteten Distanz 2540 aus dem Modell korrigiert oder angepasst werden.
  • 25C und 25D stellen Veranschaulichungen bereit, die mit einem anderen Beispiel zur Lokalisierung eines Host-Fahrzeugs während der Navigation basierend auf kartierten Orientierungspunkten/Objekten/Merkmalen in einer dünnbesetzten Karte assoziiert sind. 25C stellt konzeptionell eine Serie von Bildern dar, die von einem Fahrzeug aufgenommen wurden, das entlang eines Straßensegments 2560 navigiert. In diesem Beispiel weist das Straßensegment 2560 einen geraden Abschnitt einer zweispurigen geteilten Autobahn auf, die durch die Straßenränder 2561 und 2562 und die mittlere Fahrspurmarkierung 2563 abgegrenzt wird. Wie gezeigt wird, navigiert das Host-Fahrzeug entlang einer Fahrspur 2564, die mit einer kartierten Zieltrajektorie 2565 assoziiert ist. Somit sollte das Host-Fahrzeug in einer idealen Situation (und ohne Einflussfaktoren, wie etwa dem Vorhandensein von Zielfahrzeugen oder Objekten auf der Fahrbahn usw.) die kartierte Zieltrajektorie 2565 genau verfolgen, während es entlang der Fahrspur 2564 des Straßensegments 2560 navigiert. In der Realität kann das Host-Fahrzeug einen Drift erfahren, wenn es entlang der kartierten Zieltrajektorie 2565 navigiert. Für eine effektive und sichere Navigation sollte dieser Drift innerhalb akzeptabler Grenzen gehalten werden (z. B. +/- 10 cm seitliche Verschiebung von der Zieltrajektorie 2565 oder ein beliebiger anderer geeigneter Schwellenwert). Um einen Drift periodisch zu berücksichtigen und alle erforderlichen Kurskorrekturen vorzunehmen, um sicherzustellen, dass das Host-Fahrzeug der Zieltrajektorie 2565 folgt, können die offenbarten Navigationssysteme in der Lage sein, das Host-Fahrzeug entlang der Zieltrajektorie 2565 unter Verwendung eines oder mehrerer kartierter Merkmale/Objekte, die in der dünnbesetzten Karte beinhaltet sind, zu lokalisieren (z. B. eine Seiten- und Längsposition des Host-Fahrzeugs relativ zur Zieltrajektorie 2565 bestimmen).
  • Als ein einfaches Beispiel zeigt 25C ein Geschwindigkeitsbegrenzungszeichen 2566, wie es in fünf unterschiedlichen, nacheinander aufgenommenen Bildern vorkommen kann, wenn das Host-Fahrzeug entlang des Straßensegments 2560 navigiert. Zum Beispiel kann das Zeichen 2566 zu einem ersten Zeitpunkt to in einem aufgenommenen Bild in der Nähe des Horizonts vorkommen. Wenn sich das Host-Fahrzeug dem Zeichen 2566 nähert, wird das Zeichen 2566 in nachfolgend aufgenommenen Bildern zu den Zeitpunkten t1, t2, t3 und t4 an unterschiedlichen 2D-X-Y-Pixelpositionen der aufgenommenen Bilder vorkommen. Zum Beispiel wird sich das Zeichen 2566 in dem aufgenommenen Bildraum entlang der Kurve 2567 (z. B. einer Kurve, die durch die Mitte des Zeichens in jedem der fünf aufgenommenen Einzelbilder verläuft) nach unten und nach rechts bewegen. Das Zeichen 2566 wird auch an Größe zuzunehmen scheinen, wenn sich das Host-Fahrzeug ihm nähert (d. h. es wird in nachfolgend aufgenommenen Bildern eine große Anzahl von Pixeln belegen).
  • Diese Änderungen in den Bildraumrepräsentationen eines Objekts, wie etwa des Zeichens 2566, können ausgenutzt werden, um eine lokalisierte Position des Host-Fahrzeugs entlang einer Zieltrajektorie zu bestimmen. Zum Beispiel kann, wie in der vorliegenden Offenbarung beschrieben wird, jedes detektierbare Objekt oder Merkmal, wie etwa ein semantisches Merkmal wie das Zeichen 2566 oder ein detektierbares nicht-semantisches Merkmal, von einem oder mehreren Sammelfahrzeugen identifiziert werden, die zuvor ein Straßensegment (z. B. das Straßensegment 2560) befahren haben. Ein Kartierungsserver kann die gesammelten Fahrtinformationen aus einer Vielzahl von Fahrzeugen erheben, diese Informationen aggregieren und korrelieren und eine dünnbesetzte Karte generieren, die zum Beispiel eine Zieltrajektorie 2565 für die Fahrspur 2564 des Straßensegments 2560 beinhaltet. Die dünnbesetzte Karte kann auch einen Ort des Zeichens 2566 (zusammen mit Typinformationen usw.) speichern. Während der Navigation (z. B. vor dem Einfahren in das Straßensegment 2560) kann ein Host-Fahrzeug mit einer Kartenkachel versorgt werden, die eine dünnbesetzte Karte für das Straßensegment 2560 beinhaltet. Um auf der Fahrspur 2564 des Straßensegments 2560 zu navigieren, kann das Host-Fahrzeug der kartierten Zieltrajektorie 2565 folgen.
  • Die kartierte Repräsentation des Zeichens 2566 kann von dem Host-Fahrzeug verwendet werden, um sich selbst relativ zur Zieltrajektorie zu lokalisieren. Zum Beispiel wird eine Kamera des Host-Fahrzeugs ein Bild 2570 der Umgebung des Host-Fahrzeugs aufnehmen, und dieses aufgenommene Bild 2570 kann eine Bildrepräsentation des Zeichens 2566 mit einer bestimmten Größe und einem bestimmten X-Y-Bildort beinhalten, wie in 25D gezeigt wird. Diese Größe und der X-Y-Bildort können verwendet werden, um die Position des Host-Fahrzeugs relativ zur Zieltrajektorie 2565 zu bestimmen. Zum Beispiel kann ein Navigationsprozessor des Host-Fahrzeugs basierend auf der dünnbesetzten Karte, die eine Repräsentation des Zeichens 2566 beinhaltet, bestimmen, dass als Reaktion darauf, dass das Host-Fahrzeug die Zieltrajektorie 2565 entlangfährt, eine Repräsentation des Zeichens 2566 so in aufgenommenen Bildern vorkommen sollte, dass eine Mitte des Zeichens 2566 sich (im Bildraum) entlang der Linie 2567 bewegen wird. Falls ein aufgenommenes Bild, wie etwa das Bild 2570, die Mitte (oder einen anderen Referenzpunkt) zur Linie 2567 (z. B. der erwarteten Bildraumtrajektorie) verschoben zeigt, dann kann das Navigationssystem des Host-Fahrzeugs bestimmen, dass es sich zum Zeitpunkt des aufgenommenen Bilds nicht auf der Zieltrajektorie 2565 befunden hat. Anhand des Bilds kann der Navigationsprozessor jedoch eine geeignete Navigationskorrektur bestimmen, um das Host-Fahrzeug auf die Zieltrajektorie 2565 zurückzuführen. Falls die Analyse zum Beispiel einen Bildort des Zeichens 2566 zeigt, der im Bild um eine Distanz 2572 nach links von dem erwarteten Bildraumort auf der Linie 2567 verschoben ist, dann kann der Navigationsprozessor eine Kursänderung durch das Host-Fahrzeug veranlassen (z. B. den Lenkwinkel der Räder ändern), um das Host-Fahrzeug um eine Distanz 2573 nach links zu bewegen. Auf diese Weise kann jedes aufgenommene Bild als Teil eines Feedback-Schleifenprozesses verwendet werden, so dass eine Differenz zwischen einer beobachteten Bildposition des Zeichens 2566 und der erwarteten Bildtrajektorie 2567 minimiert werden kann, um sicherzustellen, dass das Host-Fahrzeug mit wenig oder keiner Abweichung weiter die Trajektorie 2565 entlangfährt. Je mehr kartierte Objekte verfügbar sind, desto häufiger kann natürlich die beschriebene Lokalisierungstechnik eingesetzt werden, was driftinduzierte Abweichungen von der Zieltrajektorie 2565 reduzieren oder beseitigen kann.
  • Der vorstehend beschriebene Prozess kann nützlich sein, um eine seitliche Ausrichtung oder Verschiebung des Host-Fahrzeugs relativ zu einer Zieltrajektorie zu detektieren. Die Lokalisierung des Host-Fahrzeugs relativ zur Zieltrajektorie 2565 kann auch eine Bestimmung eines Längsorts des Zielfahrzeugs entlang der Zieltrajektorie beinhalten. Zum Beispiel beinhaltet das aufgenommene Bild 2570 eine Repräsentation des Zeichens 2566 mit einer bestimmten Bildgröße (z. B. ein 2D-X-Y-Pixelgebiet). Diese Größe kann mit einer erwarteten Bildgröße des kartierten Zeichens 2566 verglichen werden, wenn es durch den Bildraum die Linie 2567 entlangfährt (wenn z. B. die Größe des Zeichens fortschreitend zunimmt, wie in 25C gezeigt wird). Basierend auf der Bildgröße des Zeichens 2566 im Bild 2570 und basierend auf der erwarteten Größenzunahme im Bildraum relativ zur kartierten Zieltrajektorie 2565 kann das Host-Fahrzeug seine Längsposition (zu dem Zeitpunkt, zu dem Bild 2570 aufgenommen wurde) relativ zur Zieltrajektorie 2565 bestimmen. Diese Längsposition, gekoppelt mit einer beliebigen seitlichen Verschiebung relativ zur Zieltrajektorie 2565, wie vorstehend beschrieben wird, ermöglicht eine vollständige Lokalisierung des Host-Fahrzeugs relativ zur Zieltrajektorie 2565, wenn das Host-Fahrzeug entlang der Straße 2560 navigiert.
  • 25C und 25D stellen nur ein Beispiel der offenbarten Lokalisierungstechnik bereit, die ein einziges kartiertes Objekt und eine einzige Zieltrajektorie verwendet. In anderen Beispielen kann es viel mehr Zieltrajektorien geben (z. B. eine Zieltrajektorie für jede umsetzbare Fahrspur einer mehrspurigen Autobahn, Stadtstraße, komplexen Kreuzung usw.), und es können viel mehr für die Lokalisierung verfügbare Karten vorhanden sein. Zum Beispiel kann eine dünnbesetzte Karte, die eine städtische Umgebung repräsentiert, viele Objekte pro Meter aufweisen, die für die Lokalisierung verfügbar sind.
  • 26A ist ein Flussdiagramm, das einen beispielhaften Prozess 2600A zum Kartieren einer Fahrspurmarkierung zur Verwendung in der autonomen Fahrzeugnavigation zeigt, konsistent mit offenbarten Ausführungsformen. Im Schritt 2610 kann der Prozess 2600A beinhalten, zwei oder mehr Ortskennungen zu empfangen, die mit einer detektierten Fahrspurmarkierung assoziiert sind. Zum Beispiel kann der Schritt 2610 vom Server 1230 oder einem oder mehreren Prozessoren durchgeführt werden, die mit dem Server assoziiert sind. Die Ortskennungen können Orte in realen Koordinaten von Punkten beinhalten, die mit der detektierten Fahrspurmarkierung assoziiert sind, wie vorstehend in Bezug auf 24E beschrieben wird. In einigen Ausführungsformen können die Ortskennungen auch andere Daten enthalten, wie etwa zusätzliche Informationen über das Straßensegment oder die Fahrspurmarkierung. Zusätzliche Daten können auch während des Schritts 2610 empfangen werden, wie etwa Beschleunigungsmesserdaten, Geschwindigkeitsdaten, Orientierungspunktdaten, Straßengeometrie- oder -profildaten, Fahrzeugpositionsbestimmungsdaten, Eigenbewegungsdaten oder verschiedene andere Formen von Daten, die vorstehend beschrieben werden. Die Ortskennungen können von einem Fahrzeug, wie etwa den Fahrzeugen 1205, 1210, 1215, 1220 und 1225, basierend auf Bildern generiert werden, die vom Fahrzeug aufgenommen wurden. Zum Beispiel können die Kennungen basierend auf der Erfassung mindestens eines Bilds, das eine Umgebung des Host-Fahrzeugs repräsentiert, aus einer Kamera, die mit einem Host-Fahrzeug assoziiert ist, der Analyse des mindestens einen Bilds, um die Fahrspurmarkierung in der Umgebung des Host-Fahrzeugs zu detektieren, und der Analyse des mindestens einen Bilds bestimmt werden, um eine Position der detektierten Fahrspurmarkierung relativ zu einem Ort zu bestimmen, der mit dem Host-Fahrzeug assoziiert ist. Wie vorstehend beschrieben, kann die Fahrspurmarkierung eine Vielzahl von unterschiedlichen Markierungstypen beinhalten, und die Ortskennungen können einer Vielzahl von Punkten relativ zur Fahrspurmarkierung entsprechen. Wenn zum Beispiel die detektierte Fahrspurmarkierung Teil einer gestrichelten Linie ist, die eine Fahrspurbegrenzung markiert, können die Punkte detektierten Ecken der Fahrspurmarkierung entsprechen. Wenn die detektierte Fahrspurmarkierung Teil einer durchgehenden Linie ist, die eine Fahrspurbegrenzung markiert, können die Punkte einem detektierten Rand der Fahrspurmarkierung mit verschiedenen Abständen entsprechen, wie vorstehend beschrieben wird. In einigen Ausführungsformen können die Punkte der Mittellinie der detektierten Fahrspurmarkierung entsprechen, wie in 24C gezeigt wird, oder können einem Vertex zwischen zwei sich schneidenden Fahrspurmarkierungen und mindestens zwei anderen Punkten entsprechen, die mit den sich schneidenden Fahrspurmarkierungen assoziiert sind, wie in 24D gezeigt wird.
  • Im Schritt 2612 kann der Prozess 2600A das Assoziieren der detektierten Fahrspurmarkierung mit einem entsprechenden Straßensegment beinhalten. Zum Beispiel kann der Server 1230 die realen Koordinaten oder andere Informationen analysieren, die während des Schritts 2610 empfangen wurden, und die Koordinaten oder die anderen Informationen mit Ortsinformationen vergleichen, die in einem Straßennavigationsmodell für autonome Fahrzeuge gespeichert sind. Der Server 1230 kann ein Straßensegment in dem Modell bestimmen, das dem realen Straßensegment entspricht, in dem die Fahrspurmarkierung detektiert wurde.
  • Im Schritt 2614 kann der Prozess 2600A beinhalten, ein Straßennavigationsmodells für autonome Fahrzeuge relativ zum entsprechenden Straßensegment basierend auf den zwei oder mehr Ortskennungen zu aktualisieren, die mit der detektierten Fahrspurmarkierung assoziiert sind. Zum Beispiel kann das autonome Straßennavigationsmodell die dünnbesetzte Karte 800 sein, und der Server 1230 kann die dünnbesetzte Karte aktualisieren, so dass eine kartierte Fahrspurmarkierung im Modell beinhaltet ist oder angepasst wird. Der Server 1230 kann das Modell basierend auf den verschiedenen Verfahren oder Prozessen aktualisieren, die vorstehend in Bezug auf 24E beschrieben werden. In einigen Ausführungsformen kann das Aktualisieren des Straßennavigationsmodells für autonome Fahrzeuge das Speichern einer oder mehrerer Positionsangaben der detektierten Fahrspurmarkierung in realen Koordinaten beinhalten. Das Straßennavigationsmodell für autonome Fahrzeuge kann auch eine mindestens eine Zieltrajektorie beinhalten, der ein Fahrzeug entlang des entsprechenden Straßensegments folgen soll, wie in 24E gezeigt wird.
  • Im Schritt 2616 kann der Prozess 2600A beinhalten, das aktualisierte Straßennavigationsmodell für autonome Fahrzeuge an eine Vielzahl von autonomen Fahrzeugen zu verteilen. Zum Beispiel 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 Netzwerke (z. B. über ein Mobilfunknetz und/oder das Internet usw.) über drahtlose Kommunikationswege 1235 verteilt werden, wie in 12 gezeigt wird.
  • In einigen Ausführungsformen können die Fahrspurmarkierungen unter Verwendung von Daten kartiert werden, die aus einer Vielzahl von Fahrzeugen empfangen werden, wie etwa durch eine Crowdsourcing-Technik, wie vorstehend in Bezug auf 24E beschrieben wird. Zum Beispiel kann der Prozess 2600A beinhalten, eine erste Kommunikation aus einem ersten Host-Fahrzeug zu empfangen, die Ortskennungen beinhaltet, die mit einer detektierten Fahrspurmarkierung assoziiert sind, und eine zweite Kommunikation aus einem zweiten Host-Fahrzeug zu empfangen, die zusätzliche Ortskennungen beinhaltet, die mit der detektierten Fahrspurmarkierung assoziiert sind. Zum Beispiel kann die zweite Kommunikation aus einem nachfolgenden Fahrzeug, das auf demselben Straßensegment fährt, oder aus dem gleichen Fahrzeug auf einer nachfolgenden Fahrt entlang desselben Straßensegments empfangen werden. Der Prozess 2600A kann ferner beinhalten, eine Bestimmung von mindestens einer Position, die mit der detektierten Fahrspurmarkierung assoziiert ist, basierend auf den Ortskennungen, die in der ersten Kommunikation empfangen wurden, und basierend auf den zusätzlichen Ortskennungen, die in der zweiten Kommunikation empfangen wurden, zu verfeinern. Dies kann beinhalten, einen Mittelwert der mehreren Ortskennungen zu verwenden und/oder „Phantom“-Kennungen herauszufiltern, die möglicherweise nicht die reale Position der Fahrspurmarkierung widerspiegeln.
  • 26B ist ein Flussdiagramm, das einen beispielhaften Prozess 2600B zum autonomen Navigieren eines Host-Fahrzeugs entlang eines Straßensegments unter Verwendung von kartierten Fahrspurmarkierungen zeigt. Der Prozess 2600B kann zum Beispiel von der Verarbeitungseinheit 110 des autonomen Fahrzeugs 200 durchgeführt werden. Im Schritt 2620 kann der Prozess 2600B beinhalten, ein Straßennavigationsmodell für autonome Fahrzeuge aus einem serverbasierten System zu empfangen. In einigen Ausführungsformen kann das Straßennavigationsmodell für autonome Fahrzeuge eine Zieltrajektorie für das Host-Fahrzeug entlang des Straßensegments und Ortskennungen beinhalten, die mit einer oder mehreren Fahrspurmarkierungen assoziiert sind, die mit dem Straßensegment assoziiert sind. Zum Beispiel kann das Fahrzeug 200 die dünnbesetzte Karte 800 oder ein anderes Straßennavigationsmodell empfangen, das unter Verwendung des Prozesses 2600A entwickelt wurde. In einigen Ausführungsformen kann die Zieltrajektorie als ein dreidimensionaler Spline repräsentiert werden, wie zum Beispiel in 9B gezeigt wird. Wie vorstehend in Bezug auf 24A - F beschrieben wird, können die Ortskennungen Orte in realen Koordinaten von Punkten beinhalten, die mit der Fahrspurmarkierung assoziiert sind (z. B. Eckpunkte einer gestrichelten Fahrspurmarkierung, Randpunkte einer durchgehenden Fahrspurmarkierung, ein Vertex zwischen zwei sich schneidenden Fahrspurmarkierungen und andere Punkte, die mit den sich schneidenden Fahrspurmarkierungen assoziiert sind, eine Mittellinie, die mit der Fahrspurmarkierung assoziiert ist, usw.).
  • Im Schritt 2621 kann der Prozess 2600B beinhalten, mindestens ein Bild zu empfangen, das eine Umgebung des Fahrzeugs repräsentiert. Das Bild kann aus einer Bildaufnahmevorrichtung des Fahrzeugs empfangen werden, wie etwa über die Bildaufnahmevorrichtungen 122 und 124, die in der Bilderfassungseinheit 120 beinhaltet sind. Das Bild kann ein Bild einer oder mehrerer Fahrspurmarkierungen beinhalten, ähnlich dem vorstehend beschriebenen Bild 2500.
  • Im Schritt 2622 kann der Prozess 2600B beinhalten, eine Längsposition des Host-Fahrzeugs entlang der Zieltrajektorie zu bestimmen. Wie vorstehend in Bezug auf 25A beschrieben wird, kann dies auf anderen Informationen im aufgenommenen Bild (z. B. Orientierungspunkte usw.) oder durch Koppelnavigation des Fahrzeugs zwischen detektierten Orientierungspunkten basieren.
  • Im Schritt 2623 kann der Prozess 2600B beinhalten, eine erwartete seitliche Distanz zur Fahrspurmarkierung basierend auf der bestimmten Längsposition des Host-Fahrzeugs entlang der Zieltrajektorie und basierend auf den zwei oder mehr Ortskennungen, die mit der mindestens einen Fahrspurmarkierung assoziiert sind, zu bestimmen. Zum Beispiel kann das Fahrzeug 200 die dünnbesetzte Karte 800 verwenden, um einen erwarteten seitlichen Abstand zur Fahrspurmarkierung zu bestimmen. Wie in 25B gezeigt wird, kann die Längsposition 2520 entlang einer Zieltrajektorie 2555 im Schritt 2622 bestimmt werden. Unter Verwendung der dünnbesetzten Karte 800 kann das Fahrzeug 200 eine erwartete Distanz 2540 zur kartierten Fahrspurmarkierung 2550 bestimmen, die der Längsposition 2520 entspricht.
  • Im Schritt 2624 kann der Prozess 2600B beinhalten, das mindestens eine Bild zu analysieren, um die mindestens eine Fahrspurmarkierung zu identifizieren. Das Fahrzeug 200 kann zum Beispiel verschiedene Bilderkennungstechniken oder -algorithmen verwenden, um die Fahrspurmarkierung innerhalb des Bilds zu identifizieren, wie vorstehend beschrieben wird. Zum Beispiel kann die Fahrspurmarkierung 2510 durch Bildanalyse des Bilds 2500 detektiert werden, wie in 25A gezeigt wird.
  • Im Schritt 2625 kann der Prozess 2600B beinhalten, eine tatsächliche seitliche Distanz zu der mindestens einen Fahrspurmarkierung basierend auf der Analyse des mindestens einen Bilds zu bestimmen. Zum Beispiel kann das Fahrzeug eine Distanz 2530 bestimmen, wie in 25A gezeigt wird, die die tatsächliche Distanz zwischen dem Fahrzeug und der Fahrspurmarkierung 2510 repräsentiert. Der Kamerawinkel, die Geschwindigkeit des Fahrzeugs, die Breite des Fahrzeugs, die Position der Kamera relativ zum Fahrzeug oder verschiedene andere Faktoren können beim Bestimmen der Distanz 2530 berücksichtigt werden.
  • Im Schritt 2626 kann der Prozess 2600B beinhalten, eine autonome Lenkaktion für das Host-Fahrzeug basierend auf einer Differenz zwischen der erwarteten seitlichen Distanz zu der mindestens einen Fahrspurmarkierung und der bestimmten tatsächlichen seitlichen Distanz zu der mindestens einen Fahrspurmarkierung zu bestimmen. Wie vorstehend in Bezug auf 25B beschrieben wird, kann das Fahrzeug 200 zum Beispiel die tatsächliche Distanz 2530 mit einer erwarteten Distanz 2540 vergleichen. Die Differenz zwischen der tatsächlichen und der erwarteten Distanz kann einen Fehler (und dessen Größe) zwischen der tatsächlichen Position des Fahrzeugs und der Zieltrajektorie, der das Fahrzeug folgen soll, angeben. Dementsprechend kann das Fahrzeug eine autonome Lenkaktion oder eine andere autonome Aktion basierend auf der Differenz bestimmen. Wenn zum Beispiel die tatsächliche Distanz 2530 kleiner als die erwartete Distanz 2540 ist, wie in 25B gezeigt wird, kann das Fahrzeug eine autonome Lenkaktion bestimmen, um das Fahrzeug nach links, von der Fahrspurmarkierung 2510 weg, zu lenken. Somit kann die Position des Fahrzeugs relativ zur Zieltrajektorie korrigiert werden. Der Prozess 2600B kann zum Beispiel verwendet werden, um die Navigation des Fahrzeugs zwischen Orientierungspunkten zu verbessern.
  • Die Prozesse 2600A und 2600B stellen Beispiele nur für Techniken bereit, die zum Navigieren eines Host-Fahrzeugs unter Verwendung der offenbarten dünnbesetzten Karte verwendet werden können. In anderen Beispielen können auch Prozesse eingesetzt werden, die mit den in Bezug auf 25C und 25D beschriebenen konsistent sind.
  • Regelkreisdesign
  • Das Steuern eines Fahrzeugs entlang einer geplanten Trajektorie ist beim Navigieren in einem autonomen Modus wichtig. Um entlang eines Straßensegments zu navigieren, kann ein Fahrzeug eine Trajektorie empfangen, die mit einem Straßensegment assoziiert ist, und Befehle für die geplante Trajektorie generieren, um der Zieltrajektorie von dem Richtlinienniveau zu folgen (bei einer Steuerung auf hoher Ebene). Verschiedene Bedingungen (z. B. nasse Straße, Wind usw.) können die Ausführung einiger geplanter Trajektorienbefehle beeinflussen. Zum Beispiel kann das Fahrzeug einen Lenkbefehl für das Drehen des Fahrzeugs in die Linksrichtung durch einen Lenkwinkel von 0,1 Grad generieren. Obwohl der Lenkbefehl implementiert wird, kann das Lenksystem des Fahrzeugs tatsächlich, wegen des rutschigen Zustands der Straße, das Fahrzeug mit einem Lenkwinkel von 0,2 Grad in die Linksrichtung drehen, was zu einer Kollision des Fahrzeugs mit einem anderen Fahrzeug führen kann. Es kann wünschenswert sein, eine genaue Ausführung der Trajektorienbefehle unter unterschiedlichen Bedingungen zu implementieren.
  • Diese Offenbarung stellt Systeme und Verfahren zum Navigieren eines Fahrzeugs unter Verwendung einer oder mehrerer Regelkreise bereit. Zum Beispiel kann eine Zieltrajektorie des Fahrzeugs erreicht werden, indem zwei getrennte Regelkreise implementiert werden: ein Längsregelkreis und ein Seitenregelkreis. Der Längsregelkreis kann dazu konfiguriert sein, das Fahrzeug zur Bewegung entlang der Längsrichtung zu steuern (d. h. in der Vorwärts-Rückwärts-Richtung relativ zu Front/Heck des Fahrzeugs). Der Längsregelkreis kann für die genaue Ausführung von Fahrzeuggeschwindigkeit und -beschleunigung zuständig sein. In einigen Ausführungsformen kann ein mit dem Längsregelkreis assoziierter Befehl eine gewünschte Geschwindigkeit und Beschleunigung beinhalten, der in ein Drosselsystem und/oder ein Bremssystem eingegeben werden kann. Das Drosselsystem und/oder das Bremssystem können bewirken, dass das Fahrzeug mit einer gewünschten Geschwindigkeit und Beschleunigung gemäß dem Befehl fährt. Der Seitenregelkreis kann dazu konfiguriert sein, die seitliche Bewegung des Fahrzeugs zu steuern (d. h. die Links-Rechts-Richtung relativ zur linken/rechten Seite des Fahrzeugs). Der Seitenregelkreis kann für die genaue Ausführung des Lenkens des Fahrzeugs entlang einer Zieltrajektorie zuständig sein. In einigen Ausführungsformen kann ein mit dem Seitenregelkreis assoziierter Befehl eine Wegkrümmung beinhalten, die das Fahrzeug entlangfahren kann. Der Befehl kann in ein Lenksystem eingegeben werden, das einen oder mehrere Aktuatoren veranlassen kann, die lenkbaren Räder basierend auf dem Befehl zu lenken.
  • Wie in 27 veranschaulicht wird, kann ein Fahrzeug 2701 das Straßensegment 2711 entlangfahren und sich in Richtung des Straßensegments 2712 bewegen. Das Fahrzeug 2701 kann gemäß den basierend auf den in einem hier beschriebenen Längsregelkreis und/oder Seitenregelkreis generierten Befehlen sicher eine Zieltrajektorie 2721 entlangfahren. Zum Beispiel stellen die offenbarten Systeme und Verfahren in einigen Ausführungsformen einen Seitenregelkreis, der auf einer Befehlsberechnung für direktes Lenken basiert, und einen geschlossenen Gierratenregelkreis zum Kompensieren von Ungenauigkeiten der Befehlsberechnung für direktes Lenken bereit. Der Zweck der Befehlsberechnung für direktes Lenken kann sein, einen Lenkwinkel für das Fahren in einem gegebenen Bogen mit dem Radius R zu schätzen. Die Befehlsberechnung für direktes Lenken kann auf Feedforward-Berechnungen gemäß einer oder mehrerer kinematischer Gleichungen, die die Bewegung des Fahrzeugs repräsentieren, und einem Fahrzeuglenkmodell basieren, das an die Informationen zum Fahrzeugverhalten unter ähnlichen Bedingungen angepasst wird, die anhand vorherigen Fahrtsegmenten erhoben worden sind. Einer der Vorteile der offenbarten Systeme und Verfahren kann schnelle Berechnungen (z. B. aufgrund des Vorteils der Feedforward-Berechnungen) und Robustheit gegenüber Störungen und Stabilität beinhalten.
  • Als Beispiel veranschaulicht 28 einen beispielhaften Prozess zum Generieren eines Lenkbefehls, konsistent mit einigen Ausführungsformen der vorliegenden Offenbarung. Wie in 28 veranschaulicht wird, kann das Fahrzeug einen Krümmungsbefehl (z. B. einen Gierratenbefehl) und einen Geschwindigkeitsbefehl basierend auf einer Zieltrajektorie generieren. Der Krümmungsbefehl und der Geschwindigkeitsbefehl können in ein Modell (z. B. ein softwarebasiertes System) für Feedforward-Berechnungen eingegeben werden, das einen ersten Lenkwinkel zum Drehen eines oder mehrerer lenkbarer Räder ausgeben kann. Der Krümmungsbefehl und der Geschwindigkeitsbefehl können auch in einen Gierratenregelkreis eingegeben werden, der dazu konfiguriert sein kann, einen Ziellenkwinkel mit dem tatsächlichen Lenkwinkel zu vergleichen, um einen zweiten Lenkwinkel zu bestimmen. Das Fahrzeug kann ferner dazu konfiguriert sein, einen Gesamtlenkbefehl basierend auf dem ersten Lenkwinkel, der basierend auf den Feedforward-Berechnungen generiert wurde, und dem zweiten Lenkwinkel, der basierend auf dem Gierratenregelkreis generiert wurde, zu bestimmen. Das Fahrzeug kann auch dazu konfiguriert sein, den Gesamtlenkbefehl zu implementieren, um einen oder mehrere Aktuatoren zu veranlassen, das lenkbare Rad oder die lenkbaren Räder um einen Ziellenkwinkel zu drehen.
  • In einigen Ausführungsformen kann die Berechnung für direktes Lenken in zwei Stufen durchgeführt werden. In der ersten Stufe kann eine kinematische Basisberechnung unter Verwendung eines Ackermann-Modells durchgeführt werden. Als Beispiel veranschaulicht 29 ein Lenkmodell nach Ackermann. Wie in 29 veranschaulicht wird, kann das Fahrzeug zwei lenkbare Räder beinhalten, das linke Vorderrad und das rechte Vorderrad. Es kann angenommen werden, dass sich die Vorderräder auf einem vollen Kreis mit einer gemeinsam genutzten Mitte (der schwarze Punkt), jedoch unterschiedlichen Radien drehen. Der Mittelpunkt zwischen den beiden Hinterrädern kann sich auch auf einem Kreis mit derselben Mitte, jedoch einem anderen Radius (R) drehen. Der Kurs des Fahrzeugs kann eine Tangente am Kreis sein. Die Distanz zwischen den beiden Hinterrädern wird mit w bezeichnet, und die Distanz zwischen den Vorder- und Hinterrädern ist der Radabstand und wird mit L bezeichnet. Das linke Vorderrad kann in einem Kreis mit dem Radius r1 gedreht werden, und der Winkel dieses Rads relativ zum Kurs des Fahrzeugs ist θ. Gleichermaßen kann das rechte Vorderrad in einem Kreis mit dem Radius r2 gedreht werden, und sein Winkel relativ zum Kurs des Fahrzeugs ist ϕ. Die Winkel der Vorderräder können die folgenden Gleichungen erfüllen: tan ( θ ) = L / ( R w / 2 ) ,
    Figure DE112021002014T5_0001
    tan ( ϕ ) = L / ( R w / 2 ) ,
    Figure DE112021002014T5_0002
  • In einigen Ausführungsformen kann die Eingabe des Lenksystems den Lenkwinkel beinhalten, und der Befehl (δ) kann der Mittelwert von θ und ϕ sein, was wie folgt dargestellt werden kann: δ = ( θ + ϕ ) / 2,
    Figure DE112021002014T5_0003
  • Ackermanns Modell kann unter Verwendung des Fahrradmodells für R >> w vereinfacht werden. Dementsprechend kann der Winkel des Lenkrads wie folgt dargestellt werden: tan ( δ ) = L / R ,
    Figure DE112021002014T5_0004
  • In der zweiten Stufe der Berechnung für direktes Lenken kann die vorstehend erlangte kinematische Basisberechnung angepasst werden, damit sie zum nichtlinearen Verhalten des Fahrzeugs passt (z. B. bei einer hohen Geschwindigkeit, einem großen Lenkwinkel und/oder einer hohen seitlichen Beschleunigung usw.). In einigen Ausführungsformen kann das Lenksystem des Fahrzeugs aus einigen Teilen zusammengestellt sein, die berücksichtigt werden können, wenn der Lenkbefehl berechnet wird. Zum Beispiel können das Verhalten eines Lenkungsaktuators und/oder die Nichtlinearität des Lenkens die Berechnung des Lenkbefehls beeinflussen. Als Beispiel könnte die Nichtlinearität des Lenkens bei unterschiedlichen Geschwindigkeiten anhand einer linearen Regression auf den Daten aus einigen Fahrtstunden beobachtet werden. Das Modell für lineare Regression kann wie folgt dargestellt werden: Effektiver Lenkradwinkel = Gemessener Lenkwinkel/Bassisverhältnis × ( a0 + a1 × Geschwindigkeit + a 2 × Geschwindigkeit 2 ) ;
    Figure DE112021002014T5_0005
    Effektiver Radlenwinkel = arctan  ( L × Tatsächliche Krümmung ) ;
    Figure DE112021002014T5_0006
    Tatsächliche Krümmung = Gierrate / Geschwindigkeit;
    Figure DE112021002014T5_0007
  • Die lineare Regression ergibt R = 0,999311;
    Koeffizienten: a0 = 1,02661693, a1= -1,64328701e-02, a2 = 6.29332598e-06, Basisverhältnis = 14,8.
  • Die Lenkbefehlsberechnung in diesem Beispiel kann wie folgt bestimmt werden: Koeffizienten: a0 = 1,02661693,  a 1 = 1,64328701 e 02,  a 2 = 6.29332598 e 06, Bassisverhältnis = 14,8.
    Figure DE112021002014T5_0008
  • In einigen Ausführungsformen kann der geschlossene Gierratenregelkreis verwendet werden, um Ungenauigkeiten des Feedforward-Modells zu kompensieren, die durch Unterschiede der Fahrzeugbedingungen, Unterschiede des Straßenzustands, nicht modellierte Lenkeffekte oder eine Kombination davon bewirkt werden. Der Gierratenbefehl kann wie folgt berechnet werden: Lenkbefehl = arctan ( L × Krümmungsbefehl ) × Basisverhältnis/ ( a 0 × Basisverhältnis + a 1 × Geschwindigkeit + a 2 × Geschwindigkeit 2 ) .
    Figure DE112021002014T5_0009
  • Die gemessene Variable kann die „Kreiselgierrate“ nach dem Filtern mit einem Notch-Filter bei der Frequenz (2,5 Hz) der Dämpfer sein, und der Gierratenregler kann einen normale Proportional-Integral-Regler mit Gain Scheduling zum Vervielfältigen eines Eingabelenkwinkels entsprechend der Fahrzeuggeschwindigkeit beinhalten.
  • 30 ist eines Blockdiagramm eines beispielhaften Fahrzeug 2701, konsistent mit den offenbarten Ausführungsformen. Wie in 30 veranschaulicht wird, kann das Fahrzeug 2701 mindestens einen Prozessor (z. B. den Prozessor 3010), ein Steuersystem 3020, einen Speicher 3030, mindestens eine Speichervorrichtung (z. B. die Speichervorrichtung 3040), einen Kommunikationsport 3050, einen oder mehrere Sensoren 3060, ein LIDAR-System 3070 und ein Navigationssystem 3080 beinhalten.
  • Der Prozessor 3010 kann dazu konfiguriert sein, eine oder mehrere Funktionen des Fahrzeugs 2701, die in dieser Offenbarung beschrieben werden, durchzuführen. Der Prozessor 3010 kann einen Mikroprozessor, Präprozessoren (wie etwa einen Bildpräprozessor), eine Grafikverarbeitungseinheit (GPU), eine zentrale Verarbeitungseinheit (CPU), Unterstützungsschaltungen, digitale Signalprozessoren, integrierte Schaltungen, Speicher oder beliebige andere Typen von Vorrichtungen beinhalten, die zum Ausführen von Anwendungen oder zum Durchführen einer Rechenaufgabe geeignet sind. In einigen Ausführungsformen kann der Prozessor 3010 einen beliebigen Typ von Einzel- oder Mehrkernprozessor, Mikrocontroller für mobile Vorrichtungen, zentrale Verarbeitungseinheit usw. beinhalten. Verschiedene Verarbeitungsvorrichtungen können verwendet werden, einschließlich zum Beispiel Prozessoren, die von Herstellern wie etwa Intel®, AMD® usw. erhältlich sind, oder GPUs, die von Herstellern wie etwa NVIDIA®, ATI® usw. erhältlich sind, und können verschiedene Architekturen (z. B. x86-Prozessor, ARM® usw.) beinhalten. Jede der hierin offenbarten Verarbeitungsvorrichtungen kann dazu konfiguriert sein, bestimmte Funktionen durchzuführen. Das Konfigurieren einer Verarbeitungsvorrichtung, wie etwa eines beliebigen der beschriebenen Prozessoren oder einer anderen Steuerung oder eines Mikroprozessors, zum Durchführen bestimmter 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 beinhalten. In einigen Ausführungsformen kann das Konfigurieren einer Verarbeitungsvorrichtung das Programmieren der Verarbeitungsvorrichtung direkt mit Architekturanweisungen beinhalten. Zum Beispiel können Verarbeitungsvorrichtungen, wie etwa Field Programmable Gate Arrays (FPGAs), anwendungsspezifische integrierte Schaltungen (ASICs) und dergleichen, zum Beispiel unter Verwendung einer oder mehrerer Hardwarebeschreibungssprachen (HDLs), konfiguriert werden.
  • In einigen Ausführungsformen kann der Prozessor 3010 die Schaltungsanordnung 3011 und den Speicher 3012 beinhalten. Der Speicher 3012 kann Anweisungen speichern, die bei Ausführung durch die Schaltungsanordnung 3011 den Prozessor 3010 veranlassen können, die hier beschriebenen Funktionen des Prozessors 3010 durchzuführen. Die Schaltungsanordnung 3011 kann ein beliebiges oder mehrere der hier beschriebenen Beispiele beinhalten.
  • Der Prozessor 3010 kann das Steuersystem 3020 verwenden, um einen oder mehrere Parameter zum Navigieren des Fahrzeugs 2701 zu bestimmen. Zum Beispiel kann der Prozessor 3010 das Steuersystem 3020 verwenden, um einen Lenkwinkel zum Steuern eines Lenkaktuators zu bestimmen (z. B. über das Lenksystem 240, das in 2F veranschaulicht ist und vorstehend beschrieben wird). Ein Lenkwinkel kann sich auf einen Winkel eines oder mehrerer lenkbarer Räder des Fahrzeugs 2701 beziehen. In einigen Ausführungsformen kann das Steuersystem 3020 ein erstes Steuersubsystem 3021 und ein zweites Steuersubsystem 3022 beinhalten. In einigen Ausführungsformen kann sich das zweite Steuersubsystem 3022 von dem ersten Steuersubsystem 3021 unterscheiden. Zum Beispiel kann ein erstes Steuersubsystem 3021 ein Modell zum Bestimmen eines Lenkwinkels basierend auf einer oder mehrerer Feedforward-Berechnungen, die für die Bewegung des Fahrzeugs 2701 repräsentativ sind, beinhalten, und ein zweites Steuersubsystem 3022 kann ein Modell zum Bestimmen eines Lenkwinkels basierend auf einer Feedback-Schleife beinhalten, die einen oder mehrere Werte, die mit einem Fahrzeuggierratenbefehl assoziiert sind, mit einem oder mehreren Werten vergleicht, die mit einer gemessenen Fahrzeuggierrate assoziiert sind. Der Prozessor 3010 kann dazu programmiert sein, dass das erste Steuersubsystem 3021 einen ersten Lenkwinkel bestimmt, und kann das zweite Steuersubsystem 3022 verwenden, um einen zweiten Lenkwinkel zu bestimmen. Der Prozessor 3010 kann auch dazu programmiert sein, einen Gesamtlenkwinkel basierend auf dem ersten und zweiten Lenkwinkel zu bestimmen.
  • Das Fahrzeug 2701 kann einen Speicher 3030 beinhalten, der Anweisungen für verschiedene Komponenten des Fahrzeugs 2701 speichern kann. Zum Beispiel kann der Speicher 3030 Anweisungen speichern, die bei Ausführung durch den Prozessor 3010 dazu konfiguriert sein können, den Prozessor 3010 zu veranlassen, eine oder mehrere hier beschriebene Funktionen durchzuführen. Der Speicher 3030 kann eine beliebige Anzahl von Direktzugriffsspeichern, Festwertspeichern, Flash-Speichern, Plattenlaufwerken, optischem Speicher, Bandspeicher, austauschbarem Speicher und anderen Typen von Speichern beinhalten. In einem Fall kann der Speicher 3030 vom Prozessor 3010 getrennt sein. In einem anderen Fall kann der Speicher 3030 in den Prozessor 3010 integriert sein. In einigen Ausführungsformen kann der Speicher 3030 Software zum Durchführen einer oder mehrerer Rechenaufgaben sowie ein trainiertes System, wie etwa ein neuronales Netzwerk oder ein tiefes neuronales Netzwerk beinhalten. In einigen Ausführungsformen kann der Speicher 3030 das erste Steuersubsystem 3021 und das zweite Steuersubsystem 3022 speichern, die bei Bedarf vom Prozessor 3010 geladen werden können.
  • Die Speichervorrichtung 3040 kann dazu konfiguriert sein, verschiedene Daten und Informationen für eine oder mehrere Komponenten des Fahrzeugs 2701 zu speichern. Die Speichervorrichtung 3040 kann eine oder mehrere Festplatten, Bänder, ein oder mehrere Festkörperlaufwerke, eine beliebige Vorrichtung, die zum Schreiben und Lesen von Daten oder dergleichen geeignet ist, oder eine Kombination davon beinhalten. Die Speichervorrichtung 3040 kann Kartendaten speichern, einschließlich zum Beispiel Daten eines oder mehrerer Kartensegmente, auf die durch den Prozessor 3010 zugegriffen werden kann. In einigen Ausführungsformen kann die Speichervorrichtung 3040 eine Kartendatenbank speichern. Der Prozessor 3010 kann Daten eines oder mehrerer Kartensegmente aus der Kartendatenbank abrufen. Zum Beispiel kann der Prozessor 3010 eine oder mehrere, mit einem Kartensegment assoziierte Zieltrajektorien abrufen. In einigen Ausführungsformen kann der Speichervorrichtung 3040 das erste Steuersubsystem 3021 und das zweite Steuersubsystem 3022 speichern, die bei Bedarf vom Prozessor 3010 geladen werden können.
  • Der Kommunikationsport 3050 kann dazu konfiguriert sein, Datenkommunikationen zwischen dem Fahrzeug 2701 und einer oder mehrerer Komponenten der offenbarten, hier beschriebenen Systeme über ein Netzwerk zu ermöglichen. Zum Beispiel kann der Kommunikationsport 3050 dazu konfiguriert sein, Daten aus einem Server über ein oder mehrere öffentliche oder private Netzwerke, einschließlich des Internets, eines Intranets, eines WAN (Wide Area Network), eines MAN (Metropolitan Area Network), eines drahtlosen Netzwerks, das mit den Standards IEEE 802.11a/b/g/n konform ist, einer angemieteten Leitung oder dergleichen, zu empfangen und Daten zu diesem zu übertragen.
  • Der Sensor 3060 kann dazu konfiguriert sein, Informationen in Bezug auf das Fahrzeug 2701 und/oder die Umgebung des Fahrzeugs 2701 zu erheben. Der Sensor 3060 kann einen oder mehrere Bildsensoren (z. B. eine Kamera), eine Radarvorrichtung, eine Lidarvorrichtung, einen Geschwindigkeitssensor, einen Beschleunigungssensor, einen Bremssensor, einen Aufhängungssensor, eine Positionierungsvorrichtung (z. B. eine globale Positionsbestimmungssystem (GPS)-Vorrichtung), einen Beschleunigungsmesser, einen Gyrosensor, einen Geschwindigkeitsmesser oder dergleichen oder eine Kombination davon beinhalten. Zum Beispiel kann das Fahrzeug 2701 einen Bildsensor (z. B. eine Kamera) beinhalten, der dazu konfiguriert ist, eines oder mehrere Bilder seiner Umgebung aufzunehmen, was eine Repräsentation eines Objekts (oder mindestens eines Abschnitts davon) beinhalten kann. In einigen Ausführungsformen kann das Fahrzeug 2701 einen oder mehrere Bildsensoren ähnlich der Bildaufnahmevorrichtung 122, der Bildaufnahmevorrichtung 124 und/oder der Bildaufnahmevorrichtung 126 beinhalten, die an anderer Stelle in dieser Offenbarung beschrieben werden. Als ein anderes Beispiel kann das Fahrzeug 2701 eine GPS-Vorrichtung beinhalten, die dazu konfiguriert ist, Positionierungsdaten, die mit Positionen des Fahrzeugs 2701 assoziiert sind, über einen Zeitraum zu erheben.
  • Das LIDAR-System 3070 kann eine oder mehrere LIDAR-Einheiten beinhalten. In einigen Ausführungsformen können die eine oder die mehreren LIDAR-Einheiten auf einem Dach des Fahrzeugs 2701 positioniert sein. Eine solche Einheit kann eine rotierende Einheit beinhalten, die dazu konfiguriert ist, LIDAR-Reflektionsinformationen innerhalb eines 360-Grad-Sichtfelds um das Fahrzeug 2701 oder aus einem beliebigen Untersegment des 360-Grad-Sichtfelds (z. B. eines oder mehrerer FOVs, die jeweils weniger als 360 Grad repräsentieren) zusammenzutragen. In einigen Ausführungsformen kann eine LIDAR-Einheit an einem vorderen Ort am Fahrzeug 2701 positioniert sein (z. B. in der Nähe der Scheinwerfer, im Kühlergrill, in der Nähe der Nebelscheinwerfer, in einem Frontstoßfänger oder an einem beliebigen anderen geeigneten Ort). In einigen Fällen können eine oder mehrere LIDAR-Einheiten, die an einem vorderen Abschnitt des Fahrzeugs 2701 installiert sind, Reflektionsinformationen aus einem Sichtfeld in einer Umgebung vor dem Fahrzeug 2701 erheben. Die vom LIDAR-System 3070 erhobenen Daten können dem Prozessor 3010 bereitgestellt werden. Alternativ oder zusätzlich können die Daten zu einem Server und/oder einer Datenbank über ein Netzwerk übertragen werden, wie an anderer Stelle in dieser Offenbarung beschrieben wird.
  • Ein beliebiger geeigneter Typ von LIDAR-Einheit kann am Fahrzeug 2701 beinhaltet sein. In einigen Fällen kann das LIDAR-System 3070 eine oder mehrere Flash-LIDAR-Einheiten (z. B. 3D-Flash-LIDAR), bei denen ein gesamtes LIDAR-Sichtfeld (FOV) mit einem einzelnen Laserimpuls beleuchtet wird, und einen Sensor, der Zeilen und Spalten von Pixeln beinhaltet, zum Aufzeichnen der zurückgeworfenen Lichtintensität und Laufzeit-/Tiefeninformationen beinhalten. Solche Flash-Systeme können eine Szene beleuchten und LIDAR-„Bilder“ mehrere Male pro Sekunde erheben. LIDAR-Scan-Einheiten können ebenfalls eingesetzt werden. Solche LIDAR-Scan-Einheiten können auf einer oder mehreren Techniken zum Streuen eines Laserstrahls über ein spezielles FOV zurückgreifen. In einigen Fällen kann die LIDAR-Scan-Einheit einen Scan-Spiegel beinhalten, der einen Laserstrahl reflektiert und in Richtung eines Objekts innerhalb des FOV lenkt. Scan-Spiegel können über volle 360 Grad rotieren oder können entlang einer einzelnen Achse oder mehrerer Achsen über weniger als 360 Grad rotieren, um den Laser in Richtung eines vorbestimmten FOV zu lenken. In einigen Fällen können die LIDAR-Einheiten eine horizontale Linie scannen. In anderen Fällen kann eine LIDAR-Einheit mehrere horizontale Linien innerhalb eines FOV scannen, wobei sie ein spezielles FOV mehrere Male pro Sekunde rastern.
  • Die LIDAR-Einheiten im LIDAR-System 3070 können eine beliebige geeignete Laserquelle beinhalten. In einigen Ausführungsformen können die LIDAR-Einheiten einen kontinuierlichen Laser einsetzen. In anderen Fällen können die LIDAR-Einheiten auf gepulste Laseremissionen zurückgreifen. Zusätzlich kann eine beliebige geeignete Laserwellenlänge eingesetzt werden. In einigen Fällen kann eine Wellenlänge zwischen etwa 600 nm bis etwa 1000 nm verwendet werden.
  • Die eine oder die mehreren LIDAR-Einheiten im LIDAR-System 3070 können auch einen beliebigen geeigneten Typ Sensor beinhalten und eine beliebige geeignete Art von Ausgabe bereitstellen. In einigen Fällen können die Sensoren der LIDAR-Einheiten Festkörperfotodetektoren beinhalten, wie etwa eine oder mehrere Fotodioden oder Fotovervielfacher. Die Sensoren können auch eine oder mehrere CMOS- oder CCD-Vorrichtungen beinhalten, die eine beliebige Anzahl von Pixeln beinhalten. Diese Sensoren können für Laserlicht empfindlich sein, das von einer Szene innerhalb des LIDAR-FOV reflektiert wird. Die Sensoren können verschiedene Typen von Ausgabe aus einer LIDAR-Einheit ermöglichen. In einigen Fällen kann eine LIDAR-Einheit Rohlichtintensitätswerte und Laufzeitinformationen ausgeben, die repräsentativ für das reflektierte Laserlicht sind, das an jedem Sensor oder an jedem Pixel oder jeder Subkomponente eines speziellen Sensors gesammelt wird. Zusätzlich oder alternativ kann eine LIDAR-Einheit eine Punktwolke (z. B. eine 3D-Punktwolke) ausgeben, die Lichtintensitäts- und Tiefen-/Distanzinformationen relativ zu jedem erhobenen Punkt beinhalten kann. LIDAR-Einheiten können auch verschiedene Typen von Tiefenkarten ausgeben, die für die Lichtreflektionsamplitude und Distanz zu Punkten innerhalb eines Sichtfelds repräsentativ sind. LIDAR-Einheiten können Tiefen- oder Distanzinformationen relativ zu speziellen Punkten innerhalb eines FOV bereitstellen, indem sie einen Zeitpunkt, zu dem zu Anfang Licht aus der Lichtquelle des LIDAR in Richtung des FOV projiziert worden ist, notieren und einen Zeitpunkt aufzeichnen, zu dem das einfallende Laserlicht von einem Sensor in der LIDAR-Einheit empfangen wird. Die Zeitdifferenz kann eine Laufzeit repräsentieren, die direkt zur Umlaufdistanz in Beziehung stehen kann, die das einfallende Laserlicht von der Laserquelle zu einem reflektierenden Objekt und zurück zur LIDAR-Einheit gelaufen ist. Das Überwachen der Laufzeitinformationen, die mit einzelnen Laserpunkten oder kleinen Segmenten eines LIDAR-FOV assoziiert sind, kann genaue Distanzinformationen für mehrere Punkte innerhalb des FOV bereitstellen (z. B. Kartierung sogar für sehr kleine Merkmale von Objekten innerhalb des FOV). In einigen Fällen können LIDAR-Einheiten komplexere Informationen ausgeben, wie etwa Klassifizierungsinformationen, die eine oder mehrere Laserreflektionen mit einem Typ des Objekts korrelieren, von dem die Laserreflektion empfangen wurde.
  • Das Navigationssystem 3080 kann dazu konfiguriert sein, einen Fahrer des Fahrzeugs 2701 beim Betrieb des Fahrzeugs 2701 zu unterstützen. Alternativ oder zusätzlich kann das Navigationssystem 3080 ein Navigationssystem für autonome Fahrzeuge beinhalten, das dazu konfiguriert ist, die Bewegung des Fahrzeugs 2701 zu steuern, wie an anderer Stelle in dieser Offenbarung beschrieben wird. Zum Beispiel kann das Navigationssystem 3080 dazu konfiguriert sein, das Fahrzeug 2701 basierend auf Anweisungen zu steuern, die aus dem Prozessor 3010 empfangen werden. Als Beispiel kann der Prozessor 3010 das Navigationssystem 3080 veranlassen, das Fahrzeug 2701 zu steuern, um basierend auf einem Lenkwinkel, der unter Verwendung des Steuersystems 3020 bestimmt wurde, entlang mindestens einer Zieltrajektorie zu navigieren. In einigen Ausführungsformen kann das Navigationssystem 3080 ein Advanced Driver Assistance System (ADAS) beinhalten.
  • 31 ist ein Flussdiagramm, das einen beispielhaften Prozess 3100 zum Navigieren eines Fahrzeugs zeigt, konsistent mit den offenbarten Ausführungsformen. Ein oder mehrere Schritte des Prozesses 3100 können von einem Fahrzeug (z. B. dem Fahrzeug 2701), einer mit dem Host-Fahrzeug assoziierten Vorrichtung und/oder einem Server durchgeführt werden. Obwohl die nachstehend bereitgestellten Beschreibungen des Prozesses 3100 das Fahrzeug 2701 als ein Beispiel verwenden, würde ein Fachmann verstehen, dass einer oder mehrere Schritte des Prozesses 3100 von einem Server und/oder einer Fahrzeugvorrichtung durchgeführt werden können. Zum Beispiel beinhaltet ein System zum Navigieren eines Fahrzeugs in einer Ausführungsform mindestens einen Prozessor, der Schaltungsanordnungen und einen Speicher umfasst. Der Speicher beinhaltet Anweisungen, die bei Ausführung durch die Schaltungsanordnung den mindestens einen Prozessor veranlassen, eine oder mehrere Operationen durchzuführen, wie etwa beliebige der hier und/oder in Verbindung mit 31 erörterten Operationen. Als ein anderes Beispiel enthält ein nichtflüchtiges computerlesbares Medium in einer anderen Ausführungsform Anweisungen, die bei Ausführung durch den mindestens einen Prozessor den mindestens einen Prozessor veranlassen können, eine oder mehrere Operationen durchzuführen, wie etwa beliebige der hier und/oder in Verbindung mit 31 erörterten Operationen.
  • Im Schritt 3101 empfängt der mindestens eine Prozessor (z. B. der Prozessor 3010) eine Ausgabe, die von mindestens einem Fahrzeugsensor bereitgestellt wird. Zum Beispiel kann der mindestens eine Prozessor dazu programmiert sein, Ausgaben zu empfangen, die von einem oder mehreren Sensoren 3060 bereitgestellt werden (z. B. mindestens eine Kamera und/oder eine Radarvorrichtung und/oder eine Lidarvorrichtung und/oder ein Geschwindigkeitssensor und/oder ein Beschleunigungssensor und/oder ein Bremssensor und/oder ein Aufhängungssensor). Als Beispiel können eine oder mehrere Kameras an Bord des Fahrzeugs (die der vorstehend beschriebenen Bildaufnahmevorrichtung 122, 124 und 126 ähnlich sein können) dazu konfiguriert sein, eines oder mehrere Bilder aus der Umgebung des Fahrzeugs aufzunehmen. Der mindestens eine Prozessor kann dazu programmiert sein, das eine oder die mehreren Bilder aus der einen oder den mehreren Kameras zu empfangen.
  • Im Schritt 3102 bestimmt der mindestens eine Prozessor (z. B. der Prozessor 3010) mindestens ein Navigationsmanöver für das Fahrzeug entlang eines Straßensegments basierend auf den Ausgaben, die von dem mindestens einen Fahrzeugsensor bereitgestellt werden. Als Beispiel, wie in 27 veranschaulicht wird, fährt ein Fahrzeug 2701 das Straßensegment 2711 entlang und ist gerade dabei, in das Straßensegment 2712 einzufahren. Der mindestens eine Prozessor kann eines oder mehrere Bilder von einer Kamera an Bord aus der Umgebung des Fahrzeugs 2701 empfangen. Der mindestens eine Prozessor kann auch die Position des Fahrzeugs 2701 relativ zum Straßensegment 2712 bestimmen.
  • Im Schritt 3103 bestimmt der mindestens eine Prozessor (z. B. der Prozessor 3010) einen Fahrzeuggierratenbefehl und einen Fahrzeuggeschwindigkeitsbefehl zum Implementieren des Navigationsmanövers. Ein Fahrzeuggierratenbefehl kann einer seitlichen Richtungsänderung und einer Rate entsprechen, um die sich der Fahrzeugkurs ändern muss, um entlang einer Krümmung in einer geplanten Trajektorie zu navigieren. Ein Geschwindigkeitsbefehl kann einer Längsrichtungsänderung und einer Rate entsprechen, um die sich der Fahrzeugkurs ändern muss, um entlang der geplanten Trajektorie zu navigieren. Ein Geschwindigkeitsbefehl kann Komponenten sowohl der Geschwindigkeit als auch der Beschleunigung beinhalten. Zum Beispiel kann der mindestens eine Prozessor dazu programmiert sein, einen Fahrzeuggierratenbefehl zum Steuern eines Lenksystems (z. B. des Lenksystems 240) und einen Fahrzeuggeschwindigkeitsbefehl zum Steuern eines Drosselsystems (z. B. des Drosselsystems 220) und/oder eines Bremssystems (z. B. des Bremssystems 230) basierend auf den von einem oder mehreren Sensoren an Bord zu bestimmen.
  • In einigen Ausführungsformen kann der mindestens eine Prozessor dazu programmiert sein, den Fahrzeuggierratenbefehl und/oder den Fahrzeuggeschwindigkeitsbefehl basierend auf der Analyse vorbestimmter Karteninformationen zu bestimmen. Als Beispiel, wie in 27 veranschaulicht wird, fährt ein Fahrzeug 2701 das Straßensegment 2711 entlang und ist gerade dabei, in das Straßensegment 2712 einzufahren. Der mindestens eine Prozessor kann dazu programmiert sein, auf vorbestimmte Karteninformationen, die mit dem Straßensegment 2711 und/oder dem Straßensegment 2712 assoziiert sind, zuzugreifen, die in der Speichervorrichtung 3040 gespeichert sein können. Die vorbestimmten Karteninformationen können die Zieltrajektorie 2721 entlang des Straßensegments 2711 (und/oder des Straßensegments 2712) beinhalten. Der mindestens eine Prozessor kann auch dazu programmiert sein, einen Fahrzeuggierratenbefehl und/oder einen Fahrzeuggeschwindigkeitsbefehl basierend auf der Analyse von vorbestimmten Karteninformationen (z. B. der Zieltrajektorie 2721) zu bestimmen, so dass das Fahrzeug 2701 der Zieltrajektorie 2721 folgen kann, während es das Straßensegment 2711 (und/oder das Straßensegment 2712) entlangfährt.
  • In einigen Ausführungsformen kann der mindestens eine Prozessor dazu programmiert sein, den Fahrzeuggierratenbefehl und/oder den Fahrzeuggeschwindigkeitsbefehl basierend auf der Analyse vorbestimmter Karteninformationen und den Ausgaben aus einem oder mehreren Sensoren zu bestimmen. Zum Beispiel kann, wie an anderer Stelle in dieser Offenbarung beschrieben wird, der mindestens eine Prozessor dazu programmiert sein, seine Position relativ zu einer Zieltrajektorie basierend auf Ausgaben zu bestimmen, die von einem oder mehreren Sensoren 3060 bereitgestellt werden (z. B. von einer Kamera aufgenommene Bilder). Der mindestens eine Prozessor kann dazu programmiert sein, einen Fahrzeuggierratenbefehl und/oder einen Fahrzeuggeschwindigkeitsbefehl basierend auf der Position des Fahrzeugs relativ zur Zieltrajektorie zu bestimmen, so dass das Fahrzeug entlang der Zieltrajektorie navigieren kann, indem es den Fahrzeuggierratenbefehl und/oder einen Fahrzeuggeschwindigkeitsbefehl (oder modifizierte Versionen davon) ausführt.
  • Im Schritt 3104 bestimmt der mindestens eine Prozessor (z. B. der Prozessor 3010) mindestens einen ersten Fahrzeuglenkwinkel basierend auf dem Fahrzeuggierratenbefehl und dem Fahrzeuggeschwindigkeitsbefehl unter Verwendung eines ersten Steuersubsystems (z. B. des ersten Steuersubsystems 3021), das durch den mindestens einen Prozessor implementiert ist. Ein Lenkwinkel kann sich auf einen Winkel der lenkbarer Räder (z. B. der Vorderräder) beziehen. Zum Beispiel kann das erste Steuersubsystem 3021 ein Modell zum Bestimmen eines Lenkwinkels basierend auf einer oder mehreren Feedforward-Berechnungen beinhalten. Als Beispiel können eine oder mehrere Feedforward-Berechnungen auf mindestens einer kinematischen Gleichung basieren, die die Bewegung des Fahrzeugs repräsentiert, wie an anderer Stelle in dieser Offenbarung beschrieben wird (z. B. in 29 und ihrer relevanten Beschreibung). Alternativ oder zusätzlich können eine oder mehrere Feedforward-Berechnungen auf mindestens einer vorbestimmten, mit dem Fahrzeug assoziierten Lenkverhaltenscharakteristik basieren. Zum Beispiel kann die mindestens eine vorbestimmte Lenkverhaltenscharakteristik die Lenkaktuatorsteuereingabe (z. B. einen Lenkbefehl, der in das Lenksystem 240 eingegeben wird) mit dem tatsächlichen Fahrzeuglenkwinkel (z. B. dem tatsächlichen Fahrzeuglenkwinkel, der vom Lenksystem 240 als Reaktion auf die Lenkbefehlseingabe ausgegeben wird) in Beziehung setzen. Alternativ oder zusätzlich kann die mindestens eine vorbestimmte Lenkverhaltenscharakteristik die Lenkaktuatorsteuereingabe mit einem tatsächlichen Fahrzeuglenkwinkel in Beziehung setzen. Als Beispiel kann die mindestens eine vorbestimmte Lenkverhaltenscharakteristik einen Versatzwert zwischen einem Lenkwinkel, der in der Lenkbefehlseingabe spezifiziert wird, und einem tatsächlichen Lenkwinkel, der vom Lenksystem 240 unter bestimmten Bedingungen (z. B., wenn die Geschwindigkeit des Fahrzeugs über einer vorbestimmten Geschwindigkeit liegt, wenn die Straße aufgrund des Wetters nass ist usw.) ausgegeben wird, beinhalten. Alternativ oder zusätzlich kann die mindestens eine vorbestimmte Lenkverhaltenscharakteristik Lenknichtlinearitäten mit der Fahrzeuggeschwindigkeit in Beziehung setzen. Zum Beispiel kann die mindestens eine vorbestimmte Lenkverhaltenscharakteristik eine Lenklinearität mit einer Fahrzeuggeschwindigkeit, die unter einem Geschwindigkeitsschwellenwert liegt, und eine hohe Lenk-Nichtlinearität (z. B., dass das Lenken empfindlicher gegenüber einem eingegebenen Lenkwinkel ist) mit einer Fahrzeuggeschwindigkeit über dem Schwellenwert in Beziehung setzen. Alternativ oder zusätzlich kann die mindestens eine vorbestimmte Lenkverhaltenscharakteristik Lenknichtlinearitäten mit der seitlichen Fahrzeugbeschleunigung in Beziehung setzen. Alternativ oder zusätzlich kann die mindestens eine vorbestimmte Lenkverhaltenscharakteristik Lenknichtlinearitäten mit dem Fahrzeuglenkwinkel in Beziehung setzen. In einigen Ausführungsformen kann die mindestens eine Lenkverhaltenscharakteristik basierend auf Fahrtinformationen bestimmt werden, die während eines oder mehrerer vorheriger Fahrtsegmente erhoben wurden (die z. B. von dem Fahrzeug und/oder eines oder mehrere andere Fahrzeuge erhoben wurden). Zum Beispiel kann das Lenksystem 240 einen Lenkwinkelsensor beinhalten, der dazu konfiguriert ist, den tatsächlichen Lenkwinkel, der vom Lenksystem 240 ausgegeben wird, als Reaktion auf einen Ziellenkwinkel, der in dem eingegebenen Lenkbefehl spezifiziert ist, zu messen. Der mindestens eine Prozessor kann dazu programmiert sein, den Versatzwert zwischen dem Ziellenkwinkel und dem tatsächlichen Lenkwinkel zu bestimmen und den bestimmten Versatz als die mindestens eine vorbestimmte Lenkverhaltenscharakteristik (oder einen Teil der darin beinhalteten Informationen) zu speichern. Alternativ oder zusätzlich kann das erste Steuersubsystem 3021 ein trainiertes System beinhalten. Zum Beispiel kann das erste Steuersubsystem 3021 ein trainiertes neuronales Netzwerk beinhalten. In einigen Ausführungsformen kann das trainierte neuronale Netzwerk dazu trainiert werden, den ersten Fahrzeuglenkwinkel basierend auf einer oder mehreren Eingaben auszugeben, die repräsentativ für einen kinematischen Zustand des Fahrzeugs sind. Zum Beispiel kann ein neuronales Netzwerk unter Verwendung von Trainingsabtastwerten trainiert werden, die eine oder mehrere Eingaben, die für einen kinematischen Zustand eines Fahrzeugs (z. B. des Fahrzeugs 2701 und/oder anderer Fahrzeuge) repräsentativ sind, und eine Lenkwinkelausgabe, die während eines oder mehrere vorheriger Fahrtsegmente erhoben wurde, aufweisen. Der mindestens eine Prozessor kann eine oder mehrere Eingaben, die für einen kinematischen Zustand des Fahrzeugs 2701 repräsentativ sind, in das trainierte neuronale Netzwerk eingeben, das einen Lenkwinkel als Reaktion auf die Eingabe oder die Eingaben ausgeben kann.
  • Im Schritt 3105 bestimmt der mindestens eine Prozessor (z. B. der Prozessor 3010) mindestens einen zweiten Fahrzeuglenkwinkel basierend auf dem Fahrzeuggierratenbefehl und dem Fahrzeuggeschwindigkeitsbefehl unter Verwendung eines zweiten Steuersubsystems (z. B. des zweiten Steuersubsystems 3022), das durch den mindestens einen Prozessor implementiert ist. Zum Beispiel kann das zweite Steuersubsystem 3022 dazu konfiguriert sein, einen zweiten Fahrzeuglenkwinkel basierend auf einer Feedback-Schleife zu bestimmen, die einen oder mehrere Werte, die mit dem Fahrzeuggierratenbefehl assoziiert sind, mit einem oder mehreren Werten vergleichen kann, die mit einer beobachteten oder gemessenen Fahrzeuggierrate assoziiert sind. Als Beispiel kann das zweite Steuersubsystem einen Proportional-Integral-Differential (PID)-Regler beinhalten, der dazu konfiguriert ist, einen Fehlerwert als die Differenz zwischen einem oder mehreren Werten, die mit dem Fahrzeuggierratenbefehl (oder einer Zielgierrate) assoziiert sind, und einer gemessenen Fahrzeuggierrate zu berechnen. Der PID-Regler kann auch dazu konfiguriert sein, eine Korrektur basierend auf proportionalen, integralen und differentiellen Ausdrücken anzuwenden.
  • Im Schritt 3106 bestimmt der mindestens eine Prozessor (z. B. der Prozessor 3010) einen Gesamtlenkbefehl für das Fahrzeug basierend auf einer Kombination des ersten Fahrzeuglenkwinkels und des zweiten Fahrzeuglenkwinkels. In einigen Ausführungsformen beinhaltet der Gesamtlenkbefehl, das Fahrzeug zu drehen. Zum Beispiel kann der mindestens eine Prozessor dazu programmiert sein, einen Gesamtlenkbefehl für das Drehen des Fahrzeugs mit einem Lenkwinkel basierend auf dem ersten Fahrzeuglenkwinkel und dem zweiten Fahrzeuglenkwinkel zu bestimmen. Alternativ oder zusätzlich kann der Gesamtlenkbefehl beinhalten, das Fahrzeug in einer vorbestimmten Distanz vor einem aktuellen Ort des Fahrzeugs zu drehen.
  • In einigen Ausführungsformen kann der Gesamtlenkbefehl für das Fahrzeug auf einer Summe des ersten Fahrzeuglenkwinkels, der vom ersten Steuersubsystem bestimmt wurde, und des zweiten Fahrzeuglenkwinkels, der vom zweiten Steuersubsystem bestimmt wurde, basieren. Zum Beispiel kann der mindestens eine Prozessor dazu programmiert sein, einen ersten Lenkwinkel von 1 Grad und einen zweiten Lenkwinkel von 0,5 Grad zu bestimmen. Der mindestens eine Prozessor kann auch dazu programmiert sein, einen Gesamtlenkbefehl für das Drehen der Fahrzeugs um 1,5 Grad zu bestimmen (d. h. um die Summe des ersten Lenkwinkels und des zweiten Lenkwinkels). In einigen Ausführungsformen kann das Bestimmen des Gesamtlenkbefehls für das Fahrzeug ferner auf dem Multiplizieren der Summe des ersten Fahrzeuglenkwinkels und des zweiten Fahrzeuglenkwinkels mit einer Verstärkung basieren. Die Verstärkung kann in einem Bereich von 0,1 bis 5 Mal liegen. Zum Beispiel kann die Verstärkung zwischen 0,6 und 0,8 liegen. In einigen Ausführungsformen kann das Bestimmen des Gesamtlenkbefehls für das Fahrzeug auf einer Differenz oder einer Beziehung zwischen dem ersten Fahrzeuglenkwinkel und dem zweiten Fahrzeuglenkwinkel basieren. Zum Beispiel kann der mindestens eine Prozessor dazu programmiert sein, einen ersten Lenkwinkel von 1 Grad und einen zweiten Lenkwinkel von 0,5 Grad zu bestimmen. Der mindestens eine Prozessor kann auch dazu programmiert sein, einen Gesamtlenkbefehl für das Drehen der Fahrzeugs um 0,5 Grad zu bestimmen (d. h. um die Differenz des ersten Lenkwinkels und des zweiten Lenkwinkels). Als ein anderes Beispiel kann der erste Lenkwinkel ein Ziellenkwinkel zum Drehen des lenkbaren Rads oder der lenkbaren Räder sein, und der zweite Fahrzeuglenkwinkel kann ein Versatzwert zum Kompensieren oder Korrigieren eines vom Lenksystem 240 ausgegebenen Lenkwinkels als Reaktion darauf sein, dass der eingegebene Lenkwinkel gleich dem Ziellenkwinkel unter ähnlichen Bedingungen ist (z. B., dass die aktuelle Geschwindigkeit des Fahrzeugs in einem vorbestimmten Geschwindigkeitsbereich liegt, dass der Straßenzustand nass oder rutschig ist usw.). Der mindestens eine Prozessor kann dazu programmiert sein, den Gesamtlenkbefehl für das Fahrzeug basierend auf der Beziehung zwischen dem ersten Fahrzeuglenkwinkel und dem zweiten Fahrzeuglenkwinkel zu bestimmen (z. B. Addieren des zweiten Fahrzeuglenkwinkels zum ersten Fahrzeuglenkwinkel oder Subtrahieren des zweiten Fahrzeuglenkwinkels vom ersten Fahrzeuglenkwinkel).
  • In einigen Ausführungsformen kann der mindestens eine Prozessor einen Gesamtlenkbefehl für das Fahrzeug basierend auf einer Analyse des ersten Fahrzeuglenkwinkels und des zweiten Fahrzeuglenkwinkels durch ein trainiertes System bestimmen. Zum Beispiel kann ein Maschinenlernmodell dazu trainiert werden, einen Gesamtlenkbefehl basierend auf einer ersten Lenkwinkeleingabe und einer zweiten Lenkwinkeleingabe auszugeben. Zum Beispiel kann ein trainiertes System ein trainiertes neuronales Netzwerk beinhalten, das unter Verwendung von Trainingsabtastwerten trainiert wurde, wobei ein Paar von dem ersten Lenkwinkel und dem zweiten Lenkwinkel eingegeben und ein Gesamtlenkbefehl ausgegeben wurde, der während vorheriger Fahrtsegmente erhoben worden ist (z. B. von dem Fahrzeug 2701 und/oder anderen Fahrzeugen). Der mindestens eine Prozessor kann den ersten Lenkwinkel und den zweiten Lenkwinkel, die in den Schritten 3104 und 3105 bestimmt worden sind, als Eingabe in das trainierte neuronale Netzwerk eingeben, das einen Gesamtlenkbefehl ausgeben kann.
  • Im Schritt 3107 veranlasst der mindestens eine Prozessor (z. B. der Prozessor 3010) den mindestens einen Aktuator, der mit dem Fahrzeug assoziiert ist, den Gesamtlenkbefehl zu implementieren. Zum Beispiel kann das Lenksystem 240 einen Vorderradaktuator beinhalten, der dazu konfiguriert ist, gleichzeitig beide Lenkwinkel des linken Vorderrads und des rechten Vorderrads zu steuern. Zum Beispiel kann der mindestens eine Prozessor einen Gesamtlenkbefehl zum Drehen des Fahrzeugs nach rechts um einen Lenkwinkel (z. B. 0,5 Grad, 0,6 Grad, 0,8 Grad, 1 Grad, 1,5 Grad, 2 Grad usw.) innerhalb eines Zeitraums bestimmen. Zusätzlich kann der mindestens eine Prozessor dazu programmiert sein, den Gesamtlenkbefehl zum Lenksystem 240 zu übertragen, was den Vorderradaktuator veranlassen kann, das linke und rechte Vorderrad nach rechts um den Lenkwinkel (z. B. 0,5 Grad, 0,6 Grad, 0,8 Grad, 1 Grad, 1,5 Grad, 2 Grad usw.) innerhalb des Zeitraums zu drehen.
  • Die vorstehende Beschreibung wurde zur Veranschaulichung vorgelegt. Sie ist nicht erschöpfend und nicht auf die genauen Formen oder Ausführungsformen beschränkt, die offenbart werden. Modifikationen und Anpassungen werden für Fachleute aus der Betrachtungen der Spezifikation und dem Umsetzen der offenbarten Ausführungsformen ersichtlich werden. Obwohl die Aspekte der offenbarten Ausführungsformen so beschrieben werden, dass sie im Speicher gespeichert werden, wird ein Fachmann zusätzlich verstehen, dass diese Aspekte auch auf anderen Typen von computerlesbaren Medien gespeichert werden können, wie etwa sekundären Speichervorrichtungen, zum Beispiel Festplatten oder CD-ROM, oder anderen Formen von RAM oder ROM, USB-Medien, DVD, Blu-ray, 4K Ultra-HD Blu-ray oder anderen optischen Laufwerken.
  • Computerprogramme, die auf der schriftlichen Beschreibung und den offenbarten Verfahren basieren, liegen innerhalb des Kompetenzbereich eines erfahrenen Entwicklers. Die verschiedenen Programme oder Programmmodule können unter Verwendung einer beliebigen der Techniken erstellt werden, die einem Fachmann bekannt sind, oder können in Verbindung mit vorhandener Software entworfen werden. Zum Beispiel können Programmabschnitte oder Programmmodule in oder mittels .Net Framework, .Net Compact Framework (und verwandten Sprachen, wie etwa Visual Basic, C usw.), Java, C++, Objective-C, HTML, HTML/AJAX-Kombinationen, XML oder HTML mit eingeschlossenen Java-Applets entworfen werden.
  • Obwohl hier veranschaulichende Ausführungsformen beschrieben wurden, versteht es sich darüber hinaus, dass der Schutzbereich von beliebigen und allen Ausführungsformen äquivalente Elemente, Modifikationen, Auslassungen, Kombinationen (z. B. von Aspekten über verschiedene Ausführungsformen hinweg), Anpassungen und/oder Änderungen aufweist, wie für einen Fachmann basierend auf der vorliegenden Offenbarung ersichtlich ist. Die Einschränkungen in den Ansprüchen sind breit, basierend auf der in den Ansprüchen verwendeten Sprache und nicht beschränkt auf in der vorliegenden Spezifikation oder während des Erteilungsverfahrens der Anmeldung beschriebene Beispiele zu interpretieren. Die Beispiele sind als nicht ausschließlich auszulegen. Des Weiteren können die Schritte der offenbarten Verfahren auf beliebige Weise modifiziert werden, einschließlich durch Neuordnen von Schritten und/oder Einfügen oder Löschen von Schritten. Es ist daher beabsichtigt, dass die Spezifikation und die Beispiele nur als veranschaulichend betrachtet werden, wobei ein wahrer Schutzbereich und Geist durch die folgenden Ansprüche und deren vollständigen Schutzbereich von Äquivalenten angegeben wird.
  • 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
    • US 63/003487 [0001]
  • Zitierte Nicht-Patentliteratur
    • Konfiguration der Bildaufnahmevorrichtungen 122, 124 und 126 - [0111]
    • Jede Trajektorie 1101, 1102 und 1103 [0167]
    • von einer Vielzahl von Fahrten 1601, 1603, 1605, 1607, 1609, 1611 und 1613 [0219]
    • die aus den Fahrzeugen 1205, 1210, 1215, 1220 und 1225 [0235]
    • Kurs der Fahrzeuge 1205, 1210, 1215, 1220 und 1225 [0242]
    • mittels .Net Framework, .Net Compact Framework (und verwandten Sprachen, wie etwa Visual Basic, C usw.), Java, C++, Objective-C, HTML, HTML/AJAX-Kombinationen, XML oder HTML [0332]

Claims (52)

  1. System zum Navigieren eines Fahrzeugs, wobei das System Folgendes umfasst: mindestens einen Prozessor, der Schaltungsanordnungen und einen Speicher umfasst, wobei der Speicher Anweisungen beinhaltet, die bei Ausführung durch die Schaltungsanordnungen den mindestens einen Prozessor zu Folgendem veranlassen: eine Ausgabe zu empfangen, die von mindestens einem Fahrzeugsensor bereitgestellt wird; basierend auf der Ausgabe, die von dem mindestens einen Fahrzeugsensor bereitgestellt wird, mindestens ein Navigationsmanöver für das Fahrzeug entlang eines Straßensegments zu bestimmen; einen Fahrzeuggierratenbefehl und einen Fahrzeuggeschwindigkeitsbefehl zum Implementieren des Navigationsmanövers zu bestimmen; unter Verwendung eines ersten Steuersubsystems, das durch den mindestens einen Prozessor implementiert ist, mindestens einen ersten Fahrzeuglenkwinkel basierend auf dem Fahrzeuggierratenbefehl und dem Fahrzeuggeschwindigkeitsbefehl zu bestimmen; unter Verwendung eines zweiten Steuersubsystems, das durch den mindestens einen Prozessor implementiert ist, mindestens einen zweiten Fahrzeuglenkwinkel basierend auf dem Fahrzeuggierratenbefehl und dem Fahrzeuggeschwindigkeitsbefehl zu bestimmen; einen Gesamtlenkbefehl für das Fahrzeug basierend auf einer Kombination des ersten Fahrzeuglenkwinkels und des zweiten Fahrzeuglenkwinkels zu bestimmen; und mindestens einen mit dem Fahrzeug assoziierten Aktuator zu veranlassen, den Gesamtlenkbefehl zu implementieren.
  2. System nach Anspruch 1, wobei das erste Steuersubsystem dazu konfiguriert ist, den ersten Fahrzeuglenkwinkel basierend auf einer oder mehreren Feedforward-Berechnungen zu bestimmen.
  3. System nach Anspruch 2, wobei die eine oder die mehreren Feedforward-Berechnungen auf mindestens einer kinematischen Gleichung basieren, die repräsentativ für die Bewegung des Fahrzeugs ist.
  4. System nach Anspruch 2, wobei die eine oder die mehreren Feedforward-Berechnungen auf mindestens einer vorbestimmten Lenkverhaltenscharakteristik basieren, die mit dem Fahrzeug assoziiert ist.
  5. System nach Anspruch 4, wobei die mindestens eine vorbestimmte Lenkverhaltenscharakteristik die Lenkaktuatorsteuereingabe mit dem tatsächlichen Fahrzeuglenkwinkel in Beziehung setzt.
  6. System nach Anspruch 4, wobei die mindestens eine vorbestimmte Lenkverhaltenscharakteristik Lenknichtlinearitäten mit der Fahrzeuggeschwindigkeit in Beziehung setzt.
  7. System nach Anspruch 4, wobei die mindestens eine vorbestimmte Lenkverhaltenscharakteristik Lenknichtlinearitäten mit der Fahrzeugseitenbeschleunigung in Beziehung setzt.
  8. System nach Anspruch 4, wobei die mindestens eine vorbestimmte Lenkverhaltenscharakteristik Lenknichtlinearitäten mit dem Fahrzeuglenkwinkel in Beziehung setzt.
  9. System nach Anspruch 4, wobei die mindestens eine vorbestimmte Lenkverhaltenscharakteristik basierend auf Fahrtinformationen bestimmt wird, die während eines oder mehrerer vorhergehender Fahrtsegmente erhoben wurden.
  10. System nach Anspruch 1, wobei das zweite Steuersubsystem dazu konfiguriert ist, den zweiten Fahrzeuglenkwinkel basierend auf einer Feedback-Schleife zu bestimmen, die einen oder mehrere Werte, die mit dem Fahrzeuggierratenbefehl assoziiert sind, mit einem oder mehreren Werten vergleicht, die mit einer gemessenen Fahrzeuggierrate assoziiert sind.
  11. System nach Anspruch 1, wobei das erste Steuersubsystem ein trainiertes System beinhaltet.
  12. System nach Anspruch 11, wobei das trainierte System ein neuronales Netzwerk beinhaltet.
  13. System nach Anspruch 12, wobei das trainierte neuronale Netzwerk dazu trainiert ist, den ersten Fahrzeuglenkwinkel basierend auf einer oder mehreren Eingaben auszugeben, die repräsentativ für einen kinematischen Zustand des Fahrzeugs sind.
  14. System nach Anspruch 1, wobei der mindestens eine Fahrzeugsensor mindestens eine Kamera und/oder eine Radarvorrichtung und/oder eine Lidarvorrichtung und/oder einen Geschwindigkeitssensor und/oder einen Beschleunigungssensor und/oder einen Bremssensor und/oder einen Aufhängungssensor beinhaltet.
  15. System nach Anspruch 1, wobei die von dem mindestens einen Fahrzeugsensor bereitgestellte Ausgabe ein oder mehrere Bilder beinhaltet, die von einer oder mehreren Kameras an Bord des Fahrzeugs aufgenommen wurden.
  16. System nach Anspruch 1, wobei der Gesamtlenkbefehl das Drehen des Fahrzeugs beinhaltet.
  17. System nach Anspruch 1, wobei der Gesamtlenkbefehl beinhaltet, das Fahrzeug in einer vorbestimmten Distanz vor einem aktuellen Ort des Fahrzeugs zu drehen.
  18. System nach Anspruch 1, wobei das Bestimmen des Fahrzeuggierratenbefehls und/oder des Fahrzeuggeschwindigkeitsbefehls auf der Analyse vorbestimmter Karteninformationen basiert.
  19. System nach Anspruch 18, wobei die vorbestimmten Karteninformationen eine Zieltrajektorie für das Fahrzeug entlang des Straßensegments beinhalten.
  20. System nach Anspruch 1, wobei das zweite Steuersubsystem einen Proportional-Integral-Differential-Regler beinhaltet.
  21. System nach Anspruch 1, wobei das Bestimmen des Gesamtlenkbefehls für das Fahrzeug auf einer Summe des ersten Fahrzeuglenkwinkels, der vom ersten Steuersubsystem bestimmt wurde, und des zweiten Fahrzeuglenkwinkels, der vom zweiten Steuersubsystem bestimmt wurde, basiert.
  22. System nach Anspruch 21, wobei das Bestimmen des Gesamtlenkbefehls für das Fahrzeug ferner auf dem Multiplizieren der Summe des ersten Fahrzeuglenkwinkels und des zweiten Fahrzeuglenkwinkels mit einer Verstärkung basiert.
  23. System nach Anspruch 22, wobei die Verstärkung zwischen 0,6 und 0,8 liegt.
  24. System nach Anspruch 1, wobei das Bestimmen des Gesamtlenkbefehls für das Fahrzeug auf einer Differenz oder einer Beziehung zwischen dem ersten Fahrzeuglenkwinkel und dem zweiten Fahrzeuglenkwinkel basiert.
  25. System nach Anspruch 1, wobei das Bestimmen des Gesamtlenkbefehls für das Fahrzeug auf einer Analyse des ersten Fahrzeuglenkwinkels und des zweiten Fahrzeuglenkwinkels durch ein trainiertes System basiert.
  26. System nach Anspruch 25, wobei das trainierte System ein neuronales Netzwerk beinhaltet.
  27. Nichtflüchtiges computerlesbares Medium, das Anweisungen enthält, die bei Ausführung durch mindestens einen Prozessor den mindestens einen Prozessor dazu veranlassen, Operationen durchzuführen, die Folgendes umfassen: eine Ausgabe zu empfangen, die von mindestens einem Fahrzeugsensor bereitgestellt wird; basierend auf der Ausgabe, die von dem mindestens einen Fahrzeugsensor bereitgestellt wird, mindestens ein Navigationsmanöver für das Fahrzeug entlang eines Straßensegments zu bestimmen; einen Fahrzeuggierratenbefehl und einen Fahrzeuggeschwindigkeitsbefehl zum Implementieren des Navigationsmanövers zu bestimmen; unter Verwendung eines ersten Steuersubsystems mindestens einen ersten Fahrzeuglenkwinkel basierend auf dem Fahrzeuggierratenbefehl und dem Fahrzeuggeschwindigkeitsbefehl zu bestimmen; unter Verwendung eines zweiten Steuersubsystems mindestens einen zweiten Fahrzeuglenkwinkel basierend auf dem Fahrzeuggierratenbefehl und dem Fahrzeuggeschwindigkeitsbefehl zu bestimmen; einen Gesamtlenkbefehl für das Fahrzeug basierend auf einer Kombination des ersten Fahrzeuglenkwinkels und des zweiten Fahrzeuglenkwinkels zu bestimmen; und mindestens einen mit dem Fahrzeug assoziierten Aktuator zu veranlassen, den Gesamtlenkbefehl zu implementieren.
  28. Computerlesbares Medium nach Anspruch 27, wobei das erste Steuersubsystem dazu konfiguriert ist, den ersten Fahrzeuglenkwinkel basierend auf einer oder mehreren Feedforward-Berechnungen zu bestimmen.
  29. Computerlesbares Medium nach Anspruch 28, wobei die eine oder die mehreren Feedforward-Berechnungen auf mindestens einer kinematischen Gleichung basieren, die repräsentativ für die Bewegung des Fahrzeugs ist.
  30. Computerlesbares Medium nach Anspruch 28, wobei die eine oder die mehreren Feedforward-Berechnungen auf mindestens einer vorbestimmten Lenkverhaltenscharakteristik basieren, die mit dem Fahrzeug assoziiert ist.
  31. Computerlesbares Medium nach Anspruch 30, wobei die mindestens eine vorbestimmte Lenkverhaltenscharakteristik die Lenkaktuatorsteuereingabe mit dem tatsächlichen Fahrzeuglenkwinkel in Beziehung setzt.
  32. Computerlesbares Medium nach Anspruch 30, wobei die mindestens eine vorbestimmte Lenkverhaltenscharakteristik Lenknichtlinearitäten mit der Fahrzeuggeschwindigkeit in Beziehung setzt.
  33. Computerlesbares Medium nach Anspruch 30, wobei die mindestens eine vorbestimmte Lenkverhaltenscharakteristik Lenknichtlinearitäten mit der Fahrzeugseitenbeschleunigung in Beziehung setzt.
  34. Computerlesbares Medium nach Anspruch 30, wobei die mindestens eine vorbestimmte Lenkverhaltenscharakteristik Lenknichtlinearitäten mit dem Fahrzeuglenkwinkel in Beziehung setzt.
  35. Computerlesbares Medium nach Anspruch 30, wobei die mindestens eine vorbestimmte Lenkverhaltenscharakteristik basierend auf Fahrtinformationen bestimmt wird, die während eines oder mehrerer vorhergehender Fahrtsegmente erhoben wurden.
  36. Computerlesbares Medium nach Anspruch 27, wobei das zweite Steuersubsystem dazu konfiguriert ist, den zweiten Fahrzeuglenkwinkel basierend auf einer Feedback-Schleife zu bestimmen, die einen oder mehrere Werte, die mit dem Fahrzeuggierratenbefehl assoziiert sind, mit einem oder mehreren Werten vergleicht, die mit einer gemessenen Fahrzeuggierrate assoziiert sind.
  37. Computerlesbares Medium nach Anspruch 27, wobei das erste Steuersubsystem ein trainiertes System beinhaltet.
  38. Computerlesbares Medium nach Anspruch 37, wobei das trainierte System ein neuronales Netzwerk beinhaltet.
  39. Computerlesbares Medium nach Anspruch 38, wobei das trainierte neuronale Netzwerk dazu trainiert ist, den ersten Fahrzeuglenkwinkel basierend auf einer oder mehreren Eingaben auszugeben, die repräsentativ für einen kinematischen Zustand des Fahrzeugs sind.
  40. Computerlesbares Medium nach Anspruch 27, wobei der mindestens eine Fahrzeugsensor mindestens eine Kamera und/oder eine Radarvorrichtung und/oder eine Lidarvorrichtung und/oder einen Geschwindigkeitssensor und/oder einen Beschleunigungssensor und/oder einen Bremssensor und/oder einen Aufhängungssensor beinhaltet.
  41. Computerlesbares Medium nach Anspruch 27, wobei die von dem mindestens einen Fahrzeugsensor bereitgestellte Ausgabe ein oder mehrere Bilder beinhaltet, die von einer oder mehreren Kameras an Bord des Fahrzeugs aufgenommen wurden.
  42. Computerlesbares Medium nach Anspruch 27, wobei der Gesamtlenkbefehl das Drehen des Fahrzeugs beinhaltet.
  43. Computerlesbares Medium nach Anspruch 27, wobei der Gesamtlenkbefehl beinhaltet, das Fahrzeug in einer vorbestimmten Distanz vor einem aktuellen Ort des Fahrzeugs zu drehen.
  44. Computerlesbares Medium nach Anspruch 27, wobei das Bestimmen des Fahrzeuggierratenbefehls und/oder des Fahrzeuggeschwindigkeitsbefehls auf der Analyse vorbestimmter Karteninformationen basiert.
  45. Computerlesbares Medium nach Anspruch 44, wobei die vorbestimmten Karteninformationen eine Zieltrajektorie für das Fahrzeug entlang des Straßensegments beinhalten.
  46. Computerlesbares Medium nach Anspruch 27, wobei das zweite Steuersubsystem einen Proportional-Integral-Differential-Regler beinhaltet.
  47. Computerlesbares Medium nach Anspruch 27, wobei das Bestimmen des Gesamtlenkbefehls für das Fahrzeug auf einer Summe des ersten Fahrzeuglenkwinkels, der vom ersten Steuersubsystem bestimmt wurde, und des zweiten Fahrzeuglenkwinkels, der vom zweiten Steuersubsystem bestimmt wurde, basiert.
  48. Computerlesbares Medium nach Anspruch 47, wobei das Bestimmen des Gesamtlenkbefehls für das Fahrzeug ferner auf dem Multiplizieren der Summe des ersten Fahrzeuglenkwinkels und des zweiten Fahrzeuglenkwinkels mit einer Verstärkung basiert.
  49. Computerlesbares Medium nach Anspruch 48, wobei die Verstärkung zwischen 0,6 und 0,8 liegt.
  50. Computerlesbares Medium nach Anspruch 27, wobei das Bestimmen des Gesamtlenkbefehls für das Fahrzeug auf einer Differenz oder einer Beziehung zwischen dem ersten Fahrzeuglenkwinkel und dem zweiten Fahrzeuglenkwinkel basiert.
  51. Computerlesbares Medium nach Anspruch 27, wobei das Bestimmen des Gesamtlenkbefehls für das Fahrzeug auf einer Analyse des ersten Fahrzeuglenkwinkels und des zweiten Fahrzeuglenkwinkels durch ein trainiertes System basiert.
  52. Computerlesbares Medium nach Anspruch 51, wobei das trainierte System ein neuronales Netzwerk beinhaltet.
DE112021002014.5T 2020-04-01 2021-04-01 Regelkreis zum navigieren eines fahrzeugs Pending DE112021002014T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063003487P 2020-04-01 2020-04-01
US63/003,487 2020-04-01
PCT/IB2021/000201 WO2021198775A1 (en) 2020-04-01 2021-04-01 Control loop for navigating a vehicle

Publications (1)

Publication Number Publication Date
DE112021002014T5 true DE112021002014T5 (de) 2023-07-20

Family

ID=75850403

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021002014.5T Pending DE112021002014T5 (de) 2020-04-01 2021-04-01 Regelkreis zum navigieren eines fahrzeugs

Country Status (6)

Country Link
US (1) US20230127230A1 (de)
EP (1) EP4127852A1 (de)
JP (1) JP2023519940A (de)
CN (1) CN115735168A (de)
DE (1) DE112021002014T5 (de)
WO (1) WO2021198775A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220026656A (ko) * 2020-08-25 2022-03-07 현대모비스 주식회사 차량의 주행 제어 시스템 및 방법
WO2022208765A1 (ja) * 2021-03-31 2022-10-06 株式会社Subaru ナビゲーションシステム、サーバ装置、ナビゲーション装置および車両

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
die aus den Fahrzeugen 1205, 1210, 1215, 1220 und 1225
Jede Trajektorie 1101, 1102 und 1103
Konfiguration der Bildaufnahmevorrichtungen 122, 124 und 126 -
Kurs der Fahrzeuge 1205, 1210, 1215, 1220 und 1225
mittels .Net Framework, .Net Compact Framework (und verwandten Sprachen, wie etwa Visual Basic, C usw.), Java, C++, Objective-C, HTML, HTML/AJAX-Kombinationen, XML oder HTML
von einer Vielzahl von Fahrten 1601, 1603, 1605, 1607, 1609, 1611 und 1613

Also Published As

Publication number Publication date
EP4127852A1 (de) 2023-02-08
JP2023519940A (ja) 2023-05-15
CN115735168A (zh) 2023-03-03
WO2021198775A1 (en) 2021-10-07
US20230127230A1 (en) 2023-04-27

Similar Documents

Publication Publication Date Title
DE112020002175T5 (de) Systeme und verfahren zur fahrzeugnavigation
DE112020006426T5 (de) Systeme und verfahren zur fahrzeugnavigation
US11940290B2 (en) Virtual stop line mapping and navigation
DE112020002604T5 (de) Systeme und verfahren für die fahrzeugnavigation
DE112020003897T5 (de) Systeme und verfahren zur überwachung von fahrspurüberlastung
DE112018002143T5 (de) Systeme und verfahren zur kompression von fahrspurdaten
DE112020004931T5 (de) Systeme und verfahren zur bestimmung der verkehrssicherheit
DE112020004133T5 (de) Systeme und verfahren zur identifizierung möglicher kommunikationshindernisse
DE112020002764T5 (de) Systeme und verfahren zur fahrzeugnavigation
DE112021000094T5 (de) Systeme und verfahren zur fahrzeugnavigation, die ampeln und verkehrszeichen einbezieht
JP2022553491A (ja) 車両ナビゲーション用のシステムおよび方法
DE112020002869T5 (de) Navigationssysteme und verfahren zum bestimmen von objektabmessungen
DE112020002592T5 (de) Systeme und verfahren zur fahrzeugnavigation basierend auf bildanalyse
DE112021002001T5 (de) Navigieren eines fahrzeugs unter verwendung eines elektronischen horizonts
DE112020000925T5 (de) Systeme und verfahren zur fahrzeugnavigation
DE112021002680T5 (de) Systeme und verfahren zum erkennen einer offenen tür
DE112020001106T5 (de) Ausrichten von Straßeninformationen zur Navigation
DE112021004128T5 (de) Systeme und verfahren für kartenbasierte modellierung der realen welt
DE112021003811T5 (de) Systeme und verfahren zur dynamischen strassengeometriemodellierung und navigation
DE112020006427T5 (de) Systeme und verfahren zum detektieren von ampeln
DE112022000380T5 (de) Systeme und verfahren zur einheitlichen geschwindigkeitskartierung und navigation
DE112020005275T5 (de) Systeme und verfahren zur selektiven verzögerung eines fahrzeugs
DE112021002014T5 (de) Regelkreis zum navigieren eines fahrzeugs
DE102022128968A1 (de) Systeme und verfahren zum sammeln von bildern zur fahrzeugnavigation

Legal Events

Date Code Title Description
R012 Request for examination validly filed