-
Technisches Gebiet
-
Der hierin beschriebene Gegenstand betrifft im Allgemeinen ein System und ein Verfahren zum Kalibrieren eines Fahrzeuglenkrads, und insbesondere die wirksame Nutzung von Daten, die von Front- und Hecksensoren gesammelt werden, um eine Bestimmung einer Lenkradkalibrierungsanpassung zu unterstützen.
-
Hintergrund
-
Autonome Fahrzeuge und Fahrerassistenzsysteme in Fahrzeugen umfassen Lenksysteme, die einen oder mehrere Lenkradpositions- bzw. Lenkradstellungssensoren und eine elektronische Steuerungseinheit (ECU), die einen Lenkradwinkel auf der Grundlage von Daten von dem Lenkradpositionssensor ausgibt, umfassen können. Die Lenksystem-ECU kann den Lenkwinkel relativ zu einer Neutralposition bzw. -stellung des Lenkrads definieren.
-
Im Allgemeinen sollte die Neutralstellung (das heißt, ein Lenkwinkel von null Grad) der Stellung des Lenkrads (und der zugehörigen Komponenten) entsprechen, bei welcher das Fahrzeug voraussichtlich entlang eines geraden Fahrwegs fährt. Verschiedene Systeme im Fahrzeug können sich auf die Neutralstellung beziehen, beispielsweise um einen geraden Fahrweg für das Fahrzeug zu prognostizieren, um das Fahrzeug entlang eines geraden Fahrwegs zu steuern, oder um verschiedene Arten einer Unterstützung des Nutzers, wie beispielsweise eine Parkunterstützung, eine Servolenk- oder Stabilitätsunterstützung, bereitzustellen. Im Laufe der Zeit kann es jedoch vorkommen, dass die Neutralstellung nicht vollständig mit der Geradeausfahrt des Fahrzeugs übereinstimmt, beispielsweise aufgrund einer normalen Abnutzung von Zahnrädern oder anderer zufälliger Faktoren, wie beispielsweise eines Unfalls, einer Einfügung neuer Teile (beispielsweise neuer Reifen) oder neuer Konfigurationen (beispielsweise Drehung der Reifen).
-
Kurzfassung
-
Die offenbarten Systeme und Verfahren betreffen eine Verbesserung der Kalibrierung und Bestimmung einer Neutralstellung eines Fahrzeuglenksystems.
-
In einer Ausführungsform umfasst ein Kalibrierungssystem eines Fahrzeugs einen oder mehrere Frontsensoren, welche derart konfiguriert sind, dass diese Informationen über eine Umgebung zumindest vor dem Fahrzeug erlangen, einen oder mehrere Hecksensoren, welche derart konfiguriert sind, dass diese Informationen über eine Umgebung zumindest auf einer Rückseite des Fahrzeugs erlangen, einen Lenkradsensor, welcher Ausgangsdaten erzeugt, die eine Winkelposition eines Lenkrads des Fahrzeugs anzeigen, einen oder mehrere Prozessoren und einen Speicher, welcher kommunikativ mit dem einen oder den mehreren Prozessoren gekoppelt ist und speichert: ein Erfassungsmodul, welches Anweisungen umfasst, die, wenn diese von dem einen oder den mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, ein Objekt auf der Grundlage zumindest erster Daten zu erfassen, die von dem einen oder den mehreren Frontsensoren erzeugt werden, und eine Mehrzahl von Datenpunkten aus zumindest den ersten Daten zu bestimmen, wobei jeder Datenpunkt zumindest eine Position einer Instanz bzw. eines Zustands des Objekts relativ zu dem Fahrzeug und eine Aufnahmezeit anzeigt, und ein Kalibrierungsmodul, welches Anweisungen umfasst, die, wenn diese von dem einen oder den mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, eine Trajektorie des Objekts zumindest teilweise auf der Grundlage der Mehrzahl von Datenpunkten zu bestimmen, eine prognostizierte Position des Objekts auf der Grundlage der Trajektorie zu bestimmen, eine tatsächliche Position des Objekts auf der Grundlage von zweiten Daten zu bestimmen, die von dem einen oder den mehreren Hecksensoren erzeugt werden, eine Differenz zwischen der prognostizierten Position und der tatsächlichen Position zu bestimmen und einen Korrektur-Offset, der auf die Ausgangsdaten von dem Lenkradsensor anzuwenden ist, auf der Grundlage der Differenz zu bestimmen.
-
In einer weiteren Ausführungsform umfasst ein Verfahren zum Kalibrieren eines Lenksystems eines Fahrzeugs, wobei das Lenksystem einen Lenkradsensor umfasst, welcher Daten ausgibt, die eine Position eines Lenkrads des Fahrzeugs anzeigen, ein Erfassen eines Objekts vor dem Fahrzeug auf der Grundlage von ersten Daten, die von einem oder mehreren Frontsensoren des Fahrzeugs erzeugt werden, ein Erfassen des Objekts hinter dem Fahrzeug auf der Grundlage von zweiten Daten, die von einem oder mehreren Hecksensoren des Fahrzeugs erzeugt werden, ein Bestimmen einer Trajektorie des Objekts auf der Grundlage der ersten Daten und der Ausgangsdaten von einem Lenkradsensor, ein Bestimmen einer Schätzposition des Objekts auf der Grundlage der Trajektorie, ein Bestimmen, dass die zweiten Daten anzeigen, dass eine Differenz zwischen der Schätzposition des Objekts und einer tatsächlichen Position des Objekts besteht, und ein Bestimmen einer Korrektur-Offset-Anpassung zur Anwendung auf die Ausgangsdaten von dem Lenkradsensor auf der Grundlage der Differenz.
-
In einer noch weiteren Ausführungsform umfasst ein nicht-flüchtiges, computerlesbares Medium zum Kalibrieren eines Lenksystems eines Fahrzeugs, wobei das Lenksystem einen Lenkradsensor umfasst, welcher Daten ausgibt, die eine Position eines Lenkrads des Fahrzeugs anzeigen, Anweisungen, die, wenn diese von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren dazu veranlassen: ein Objekt vor dem Fahrzeug auf der Grundlage von ersten Daten, die von einem oder mehreren Frontsensoren des Fahrzeugs erzeugt werden, zu erfassen, das Objekt hinter dem Fahrzeug auf der Grundlage von zweiten Daten, die von einem oder mehreren Hecksensoren des Fahrzeugs erzeugt werden, zu erfassen, eine Trajektorie des Objekts auf der Grundlage der ersten Daten und der Ausgangsdaten von einem Lenkradsensor zu bestimmen, eine Schätzposition des Objekts auf der Grundlage der Trajektorie zu bestimmen, zu bestimmen, dass die zweiten Daten anzeigen, dass eine Differenz zwischen der Schätzposition des Objekts und einer tatsächlichen Position des Objekts besteht, und eine Korrektur-Offset-Anpassung, die auf die Ausgangsdaten des Lenkradsensors anzuwenden ist, auf der Grundlage der Differenz zu bestimmen.
-
Figurenliste
-
Die beigefügten Abbildungen, die in der Spezifikation enthalten sind und einen Teil davon bilden, veranschaulichen verschiedene Systeme, Verfahren und weitere Ausführungsformen der Offenbarung. Es wird erachtet, dass die abgebildeten Elementgrenzen (beispielsweise Kästchen, Kästchengruppen oder andere Formen) in den Abbildungen eine Ausführungsform der Grenzen darstellen. In einigen Ausführungsformen kann ein Element als mehrere Elemente gestaltet sein, oder mehrere Elemente können als ein Element gestaltet sein. In einigen Ausführungsformen kann ein Element, das als eine interne Komponente eines anderen Elements dargestellt ist, als eine externe Komponente implementiert sein, und umgekehrt. Darüber hinaus können Elemente nicht maßstabsgetreu gezeichnet sein.
- 1 veranschaulicht eine Ausführungsform eines Fahrzeugs, in dem die hierin offenbarten Systeme und Verfahren implementiert sein können.
- 2 veranschaulicht eine Ausführungsform eines Kalibrierungssystems gemäß den offenbarten Ausführungsformen.
- 3 veranschaulicht ein Beispielszenario, in dem ein Kalibrierungszyklus gemäß den offenbarten Ausführungsformen ausgeführt werden kann.
- 4 veranschaulicht ein Beispiel-Lenkrad und Aspekte mit Bezug auf eine Beispiel-Neutralstellung.
- 5 veranschaulicht ein Flussdiagramm eines Kalibrierungszyklus gemäß den offenbarten Ausführungsformen.
-
Detaillierte Beschreibung
-
Systeme, Verfahren und weitere Ausführungsformen in Zusammenhang mit einer Kalibrierung eines Lenkradsystems für ein Fahrzeug werden offenbart. Wie zuvor erwähnt, sollte ein Fahrzeuglenkrad, das sich in einer Neutralstellung befindet, bewirken, dass das Fahrzeug im Wesentlichen geradlinig fährt. Die wahre Richtung des Fahrzeugs mit dem Lenkrad in der Neutralstellung kann jedoch durch verschiedene Faktoren im Laufe der Zeit, wie beispielsweise gewöhnliche Abnutzung, starke Einwirkungen bzw. Stöße usw., ungenau sein.
-
Daher werden ein Kalibrierungssystem und zugehörige Verfahren offenbart, welches eine verbesserte Technologie zur Bewertung der Genauigkeit einer aktuellen Neutralstellung und, falls erforderlich, zur Bestimmung oder Anpassung eines Offset-Wertes für die Neutralstellung bereitstellt. Der offenbarte Ansatz kann verschiedene Funktionen mit Bezug auf den autonomen Betrieb des Ego-Fahrzeugs verbessern, indem ein hochgenaues Lenkmodell, welches Verschiebungen in der Neutralstellung berücksichtigt, konsistent bestimmt und aufrechterhalten wird.
-
In einem Ansatz umfasst das offenbarte Kalibrierungssystem einen oder mehrere in einem vorderen Bereich des Fahrzeugs angeordnete vordere Sensoren bzw. Frontsensoren, welche Informationen über eine Umgebung zumindest vor dem Fahrzeug erhalten, und einen oder mehrere in einem hinteren Bereich des Fahrzeugs angeordnete hintere Sensoren bzw. Hecksensoren, welche Informationen über eine Umgebung zumindest hinter dem Fahrzeug erhalten. Die Front- und Hecksensoren können beispielsweise als Kameras, Radar, Lidar oder andere Arten von Sensoren implementiert sein, welche Informationen aufnehmen können, die für eine Objekterfassung geeignet sind.
-
In einer oder mehreren Ausführungsformen arbeitet das offenbarte Kalibrierungssystem, während sich das Fahrzeug in Bewegung befindet. Im Allgemeinen kann das Kalibrierungssystem Daten von dem einen oder den mehreren Frontsensoren analysieren, um ein Zielobjekt vor dem Fahrzeug zu identifizieren und zu erfassen. Das Zielobjekt kann ein beliebiges stationäres Objekt sein, wie beispielsweise eine Fahrbahnmarkierung, ein Reflektor, ein Schild usw. Das Kalibrierungssystem kann die Position des Zielobjekts verfolgen, indem beispielsweise mehrere Zustände des Objekts in fortschreitenden Positionen erfasst werden, während sich das Fahrzeug dem Zielobjekt nähert und dieses passiert. Das Kalibrierungssystem kann die verfolgten Positionen in einer Koordinatenform oder einer anderen Positionsform als „Datenpunkte“ aufzeichnen.
-
Ein „Datenpunkt“, wie hierin verwendet, kann als Daten definiert sein, die zumindest eine Position eines Zielobjekts angeben. Ein Datenpunkt kann Informationen umfassen, welche die Position auf verschiedene Weise angeben, wie beispielsweise Informationen, die eine direkte Entfernung zwischen dem Zielobjekt und dem Fahrzeug angeben, eine Koordinate des Zielobjekts relativ zum Fahrzeug (beispielsweise in einem relativen Koordinatensystem mit einer Mitte des Fahrzeugs 100 als Punkt (0,0)), eine Geokoordinate des Zielobjekts, wie beispielsweise eine GPS (Global-Position-System)-Koordinate, oder andere Arten von Positionsinformationen. Ein Datenpunkt kann auch zusätzliche Informationen umfassen, wie beispielsweise einen entsprechenden Lenkradwinkel, einen Zeitstempel oder andere Kontextinformationen.
-
Das offenbarte Kalibrierungssystem kann die Daten von dem einen oder den mehreren Hecksensoren analysieren, um das Zielobjekt zu identifizieren, nachdem das Fahrzeug das Zielobjekt passiert hat. Das Kalibrierungssystem kann erneut die Position des Zielobjekts verfolgen, beispielsweise indem mehrere Zustände des Objekts in sich entfernenden Positionen aufgenommen werden, wenn sich das Fahrzeug von dem Zielobjekt wegbewegt. Das Kalibrierungssystem kann die sich entfernenden Positionen als zusätzliche Datenpunkte aufzeichnen.
-
Nachdem eine Schwellenanzahl von Datenpunkten aufgezeichnet wurde, kann das Kalibrierungssystem eine Trajektorienfunktion bestimmen, die eine Trajektorie des Zielobjekts modelliert. Die Trajektorienfunktion kann Eingaben, wie die Datenpunkte, den Fahrzeuglenkradwinkel und die Fahrzeuggeschwindigkeit, aufnehmen. Auf der Grundlage der Trajektorienfunktion kann das Kalibrierungssystem eine prognostizierte Position des Zielobjekts in einem Abstand zum Heck des Fahrzeugs bestimmen und bestimmen, ob die durch die Heckdaten angezeigte tatsächliche Position mit der prognostizierten Position übereinstimmt. Falls die tatsächliche Position und die prognostizierte Position nicht übereinstimmen, kann das Kalibrierungssystem bestimmen, dass die Lenkradneutralstellung fehlerhaft ist, und einen Korrekturvektor (beispielsweise einen Betrag und eine Richtung) für einen Offset-Wert der Lenkradneutralstellung bestimmen. Durch Sammeln und Analysieren von Daten von der Vorder- und Rückseite des Fahrzeugs kann das offenbarte Kalibrierungssystem somit die Erfassung einer Lenkradfehlausrichtung verbessern und einen Korrektur-Offset für eine Lenkradneutralstellung kontinuierlich verbessern.
-
Unter Bezugnahme auf 1 ist ein Beispiel eines Fahrzeugs 100 dargestellt. Wie hierin verwendet, entspricht ein „Fahrzeug“ irgendeiner Form eines angetriebenen Transports. In einer oder mehreren Implementierungen entspricht das Fahrzeug 100 einem Automobil. Während hierin Anordnungen mit Bezug auf Automobile beschrieben sind, wird ersichtlich, dass Ausführungsformen des offenbarten Gegenstands nicht auf Automobile beschränkt sind. In einigen Implementierungen kann das Fahrzeug 100 einer robotischen Vorrichtung oder einem angetriebenen Transportmittel entsprechen, welche/welches beispielsweise für eine Kommunikation mit Fahrzeugen oder anderen Vorrichtungen ausgerüstet ist und Sensoren zur Wahrnehmung von Aspekten der Umgebung umfasst und somit von der hierin erörterten Funktionalität profitiert, um beispielsweise die Genauigkeit des Lenksystems und Korrektur-Offsets zu bestimmen.
-
Wie in 1 gezeigt ist, umfasst das Fahrzeug 100 mehrere Elemente. Es ist ersichtlich, dass es in verschiedenen Ausführungsformen möglicherweise nicht notwendig ist, dass das Fahrzeug 100 alle der in 1 gezeigten Elemente besitzt. Das Fahrzeug 100 kann eine beliebige Kombination der verschiedenen in 1 gezeigten Elemente besitzen. Ferner kann das Fahrzeug 100 zusätzliche Elemente zu den in 1 gezeigten besitzen. Bei einigen Anordnungen kann das Fahrzeug 100 ohne eines oder mehrere der in 1 gezeigten Elemente implementiert sein. Während die verschiedenen Elemente in 1 als innerhalb des Fahrzeuges 100 angeordnet gezeigt sind, ist ersichtlich, dass eines oder mehrere dieser Elemente außerhalb des Fahrzeuges 100 angeordnet sein können. Außerdem können die gezeigten Elemente physisch durch große Abstände voneinander getrennt sein.
-
Einige der möglichen Elemente des Fahrzeugs 100 sind in 1 gezeigt und werden zusammen mit nachfolgenden Abbildungen beschrieben. Eine detailliertere Beschreibung vieler der Elemente in 1 wird der Kürze in dieser Beschreibung halber jedoch nach der Erörterung der 1-5 bereitgestellt. Es wird erkannt, dass der Einfachheit und Klarheit der Darstellung halber, wo es angebracht ist, Bezugszeichen zwischen den verschiedenen Abbildungen wiederholt wurden, um auf entsprechende oder analoge Elemente hinzuweisen. Während in der Erörterung zahlreiche spezifische Details umrissen werden, um ein gründliches Verständnis der hierin beschriebenen Ausführungsformen zu ermöglichen, werden Fachleute verstehen, dass die hierin beschriebenen Ausführungsformen unter Verwendung verschiedener Kombinationen dieser Elemente angewendet werden können.
-
In jedem Fall umfasst das Fahrzeug 100 ein Sensorsystem 120, ein Lenksystem 143, welches eine Lenkfunktion des Fahrzeugs steuert, und ein Kalibrierungssystem 170, welches zur Durchführung der hierin offenbarten Verfahren und anderer Funktionen mit Bezug auf das Erfassen und Korrigieren von Ausrichtungsfehlern im Lenksystem 143 implementiert ist. Die genannten Funktionen und Verfahren werden in der folgenden Erörterung der Abbildungen ersichtlicher.
-
Unter Bezugnahme auf 2 wird eine Ausführungsform des Kalibrierungssystems 170 von 1 dargestellt. Das Kalibrierungssystem 170 ist so gezeigt, dass dieses einen Prozessor 110 und eine Datenbasis bzw. Datenbank 119 aus dem Fahrzeug 100 von 1 sowie einen Speicher 210 umfasst.
-
In einer oder mehreren Ausführungsformen kann der Prozessor 110 ein Teil des Kalibrierungssystems 170 sein, das Kalibrierungssystem 170 kann einen vom Prozessor 110 des Fahrzeugs 100 getrennten Prozessor umfassen, oder das Kalibrierungssystem 170 kann über einen Datenbus oder einen anderen Kommunikationspfad auf den Prozessor 110 zugreifen.
-
Die Datenbank 119 kann neben anderen Informationen Sensordaten 240, Datenpunkte 250 und einen Korrektur-Offset 260 speichern, die wiederum weiter unten beschrieben werden. Die Datenbank 119 entspricht in einer oder mehreren Ausführungsformen einer elektronischen Datenstruktur, die im Speicher 210 oder einem anderen Datenspeicher, wie beispielsweise dem Datenspeicher 115 des Fahrzeugs 100, einem Cloudbasierten Speicher, einer austauschbaren Speichervorrichtung oder einem anderen geeigneten Ort, der für die im Speicher 210 gespeicherten Module 220 und 230 zugänglich ist, gespeichert werden kann. Die Datenbank 119 ist mit Routinen konfiguriert, welche von dem Prozessor 110 ausgeführt werden können, um gespeicherte Daten zu analysieren, gespeicherte Daten bereitzustellen, gespeicherte Daten zu organisieren usw. Daher speichert die Datenbank 119 in einer Ausführungsform Daten, wie vorstehend beschrieben, die von Modulen 220 und 230 bei der Ausführung verschiedener Funktionen verwendet werden, sowie andere Arten von Daten.
-
Der Speicher 210 kann unter anderem ein Erfassungsmodul 220 und ein Kalibrierungsmodul 230 speichern. Der Speicher 210 kann als ein Direktzugriffsspeicher (RAM), ein Nurlesespeicher (ROM), ein Festplattenlaufwerk, ein Flash-Speicher oder ein anderer geeigneter Speicher zur Speicherung der Module 220 und 230 implementiert sein. Die Module 220 und 230 können beispielsweise als computerlesbare Anweisungen aufgebaut sein, welche, wenn diese von dem Prozessor 110 ausgeführt werden, den Prozessor 110 veranlassen, die verschiedenen hierin offenbarten Funktionen durchzuführen.
-
Das Erfassungsmodul 220 ist im Allgemeinen so aufgebaut, dass dieses Anweisungen umfasst, die dazu dienen, den Prozessor 110 so zu steuern, dass dieser ein Zielobjekt vor dem Fahrzeug 100 auf der Grundlage einer Analyse von ersten Daten, die von einem oder mehreren „Frontsensoren“ des Sensorsystems 120 (beispielsweise Sensoren, die so angeordnet sind, dass diese Informationen über einen Bereich oder eine Umgebung vor dem Fahrzeug 100 erfassen) erzeugt werden, erfasst, und anschließend das Zielobjekt hinter dem Fahrzeug 100 auf der Grundlage einer Analyse von zweiten Daten, die von einem oder mehreren „Hecksensoren“ des Sensorsystems 120 (beispielsweise Sensoren, die so angeordnet sind, dass diese Informationen über einen Bereich oder eine Umgebung hinter dem Fahrzeug 100 erfassen) erzeugt werden, erfasst. Das Erfassungsmodul 220 kann verschiedene Ansätze auf der Basis von Maschinenlernen oder Deep-Learning verwenden, wie beispielsweise Support-Vector-Machines (SVM) oder Convolution-Neural-Networks (CNN), um eine Objekterfassung auszuführen.
-
In einer oder mehreren Ausführungsformen können die ersten Daten und die zweiten Daten mehrere Bildaufnahmen von Zuständen des Objekts umfassen, beispielsweise wie von den Front- und Hecksensoren des Sensorsystems 120 aufgenommen, während sich das Fahrzeug 100 dem Zielobjekt annähert und anschließend daran vorbeifährt. Das Erfassungsmodul 220 kann die aufgenommenen Bilder analysieren, um eine Objekterfassung auszuführen, das Zielobjekt zu lokalisieren und eine Mehrzahl von Datenpunkten 215 zu extrahieren, die vorübergehend in der Datenbank 119 gespeichert werden können. Wie vorstehend angegeben ist, kann jeder Datenpunkt 250 zumindest eine Position (beispielsweise relative Koordinaten) eines Zustands des Zielobjekts angeben.
-
Das Kalibrierungsmodul 230 umfasst im Allgemeinen Anweisungen, die zur Steuerung des Prozessors 110 dienen, um eine Trajektorie des Zielobjekts zumindest teilweise auf der Grundlage von Datenpunkten 250 zu bestimmen, die aus den von den Frontsensoren des Sensorsystems 120 erhaltenen ersten Daten extrahiert werden, und um eine prognostizierte Position des Objekts auf der Grundlage der Trajektorie zu bestimmen. Nach der Bestimmung der prognostizierten Position kann das Kalibrierungsmodul 230 eine tatsächliche Position des Objekts hinter dem Fahrzeug 100 auf der Grundlage einer Analyse der zweiten Daten, die von den Hecksensoren des Sensorsystems 120 erhalten werden, bestimmen. Wenn eine Differenz zwischen der prognostizierten Position und der tatsächlichen Position besteht, kann das Kalibrierungsmodul 230 auf der Grundlage der Differenz einen Neutralstellungs-Korrektur-Offset bestimmen oder anpassen.
-
Wie weiter unten näher erläutert wird, kann das Kalibrierungsmodul 230 in einer oder mehreren Ausführungsformen die Trajektorienfunktion zumindest teilweise auf der Grundlage einer oder mehrerer Größen aus einer Position eines Lenkrads des Fahrzeugs 100 basierend auf einem Lenkradsensor, einer Mehrzahl von Datenpunkten und einer Geschwindigkeit des Fahrzeugs 100 bestimmen.
-
Wie in 2 gezeigt ist, kann das Kalibrierungssystem 170 das Lenksystem 143, welches einen Lenkradsensor umfassen kann, und das Sensorsystem 120, welches den einen oder die mehreren Frontsensoren und den einen oder die mehreren Hecksensoren umfassen kann, enthalten oder mit diesen funktionsfähig verbunden sein. In einer oder mehreren Ausführungsformen können die Front- und Hecksensoren so implementiert sein, dass diese beispielsweise ein oder mehrere Elemente aus einer Kamera, einem Radarsensor, einem Sonarsensor, einem Lidarsensor oder einer anderen Sensorart, die in der Lage ist, einen Bildtyp aufzunehmen, der für die Ausführung einer Objekterfassung geeignet ist, umfassen.
-
Das Sensorsystem 120 kann daher Sensordaten 240 erzeugen, die zur Speicherung an die Datenbank 119 übertragen werden. Wie hierin verwendet, können „Sensordaten“ aufgenommene Rohdaten umfassen, die auf Objekte in der Nähe des Fahrzeugs 100 hinweisen, wie beispielsweise andere Fahrzeuge, Fahrspuren einer Straße, Fußgänger, Schilder usw., sowie Umgebungsdaten, wie Wetter, Temperatur usw. Die Sensordaten 240 können auch andere Informationen umfassen, wie beispielsweise Zeitstempelinformationen, Metadaten, die zusätzliche Informationen, wie beispielsweise die Quelle der Daten, angeben, usw. Daher können die Sensordaten 240, wie vorstehend beschrieben, Informationen bereitstellen, welche Komponenten des Kalibrierungssystems 170 zur Verfolgung eines Zielobjekts und zur Erhaltung relativer Messungen zwischen dem Fahrzeug 100 und dem Zielobjekt verwenden können.
-
Das Erfassungsmodul 220 und das Kalibrierungsmodul 230 können in einem Zyklus kooperativ arbeiten, um Sensordaten 240 zu analysieren, Datenpunkte 250 zu erzeugen und eine Neutralstellungs-Offset-Anpassung für das Lenksystem 143 zu bestimmen. 3 veranschaulicht eine vereinfachte Beispielszene, in der ein Lenksystem-Kalibrierungszyklus entsprechend dem offenbarten Gegenstand stattfindet. Das Fahrzeug 100 fährt entlang eines im Wesentlichen geraden Abschnitt einer Straße 310. Während das offenbarte Kalibrierungssystem 170 einen Kalibrierungszyklus auf einer gekrümmten Straße ausführen kann, kann eine geradlinige Fahrt eine verbesserte Genauigkeit zur Kalibrierung einer Neutralstellung (d.h. gerade) des Lenksystems 143 bieten. Entsprechend kann das Erfassungsmodul 220 in einer oder mehreren Ausführungsformen auf Kartendaten 116 (1) oder andere verfügbare Kartendaten, beispielsweise von einem Cloud-Server, zugreifen, um eine vorausliegende geradlinige Fahrt zu identifizieren, in der ein oder mehrere Kalibrierungszyklen einzuleiten sind.
-
Zu Beginn des Kalibrierungszyklus nehmen die Frontsensoren des Sensorsystems 120 ein Initialbild auf. Das Erfassungsmodul 220 kann das Bild analysieren, ein Zielobjekt identifizieren und einen Datenpunkt 315 bestimmen, der eine Position des Zielobjekts angibt.
-
Im Allgemeinen entspricht das Zielobjekt einem stationären Objekt, von dem das Erfassungsmodul 220 bestimmen kann, dass es sich zumindest um einen Schwellenabstand T vor dem Fahrzeug befindet, wobei T ein Wert ist, der ausreicht, um dem Kalibrierungssystem 170 genügend Zeit zu geben, um bei der aktuellen Geschwindigkeit, mit der das Fahrzeug 100 fährt, eine Schwellenanzahl von Datenpunkten 250 zu erhalten. In einer oder mehreren Ausführungsformen kann das Zielobjekt ein vorbestimmtes Objekt sein, beispielsweise eine Fahrbahnmarkierung, welches das Erfassungsmodul 220 beispielsweise durch Training mit mehreren Mustern zu identifizieren gelernt hat. Alternativ kann das Sensorsystem 120 in einer oder mehreren Ausführungsformen eine Mehrzahl von Bildern aufnehmen, die das Erfassungsmodul 220 analysieren kann, um ein geeignetes Zielobjekt zu identifizieren und auszuwählen. Beispielsweise kann das Erfassungsmodul 220 bewerten, wie sicher dieses ein Objekt identifizieren kann, wobei ein bestimmtes Objekt, welches oberhalb eines Schwellenkonfidenzniveaus erkennbar ist, als das Zielobjekt ausgewählt wird.
-
In jedem Fall identifiziert das Erfassungsmodul 220 das Zielobjekt in einem aufgenommenen Bild, das anzeigt, dass sich das Zielobjekt jenseits des Schwellenabstands T vor dem Fahrzeug befindet, und bestimmt dann einen Datenpunkt 315 für das Zielobjekt. Wenn sich das Fahrzeug 100 dem Zielobjekt nähert und es passiert, nehmen die Sensoren des Sensorsystems 120 eine Mehrzahl von Bildern auf, die das Zielobjekt umfassen. In einer oder mehreren Ausführungsformen können beispielsweise die Frontsensoren des Sensorsystems 120 Bilder mit hoher Frequenz, beispielsweise 60 Bilder pro Sekunde, aufnehmen, um einen ausreichend großen Satz von Datenpunkten zu erhalten. Das Erfassungsmodul 220 analysiert die Mehrzahl von Bildern, um die zusätzlichen Datenpunkte 320 für das Zielobjekt zu bestimmen.
-
Nachdem eine Schwellenanzahl von Datenpunkten 320 bestimmt worden ist, bestimmt das Kalibrierungsmodul 230 eine Trajektorienfunktion zumindest teilweise basierend auf einer Mehrzahl der Datenpunkte 320. Beispielsweise kann das Kalibrierungsmodul 230 in einer oder mehreren Ausführungsformen eine Trajektorienfunktion bestimmen, nachdem 120 Datenpunkte durch das Erfassungsmodul 220 erzeugt wurden.
-
Es gibt mehrere Möglichkeiten, wie das Kalibrierungsmodul 230 die Trajektorienfunktion bestimmen oder erzeugen kann. In einer oder mehreren Ausführungsformen kann das Kalibrierungsmodul 230 die Trajektorienfunktion basierend auf den Datenpunkten 320 und einem oder mehreren zusätzlichen Eingabefaktoren, wie beispielsweise der Fahrzeuggeschwindigkeit, dem Lenkradsensorausgang, der Zeit der Daten usw., bestimmen. In einer oder mehreren Ausführungsformen kann das Kalibrierungsmodul 230 die Trajektorienfunktion unter Verwendung einer Interpolationstechnik, wie beispielsweise einer linearen Interpolation oder einer Polynominterpolation, bestimmen, um eine Funktion basierend auf einer Linie oder Kurve der Datenpunkte 320, die entsprechend dem Grad des Lenkradwinkels verschoben ist (d.h., wie durch die Ausgabe eines Lenkradsensors des Lenksystems 143 angezeigt), zu erzeugen.
-
Unter Bezugnahme auf 3 kann der Lenkradsensor des Lenksystems 143 beispielsweise Daten ausgeben, die anzeigen, dass das Lenkrad derzeit um 3,2 Grad gedreht ist. Basierend auf den Datenpunkten 320, den Lenkradsensor-Ausgangsdaten und der Geschwindigkeit des Fahrzeugs 100 kann das Kalibrierungsmodul 230 eine Trajektorienkurve 330 bestimmen, die eine geschätzte Position 340 angibt, an der das Zielobjekt in einem Abstand von R zum Heck des Fahrzeugs angeordnet sein sollte. Das Kalibrierungsmodul 230 kann Daten von den Hecksensoren analysieren, um eine tatsächliche Position 350 des Zielobjekts zu bestimmen.
-
Eine Differenz 360 zwischen der tatsächlichen Position 350 und der geschätzten Position 340 zeigt an, dass der vom Lenkradsensor ermittelte Lenkwinkel fehlerhaft ist. Das heißt, während beispielsweise der Lenkradsensor anzeigt, dass der aktuelle Winkel des Lenkrads 3,2 Grad beträgt, weist das Lenksystem 143 tatsächlich einen niedrigeren effektiven Winkel auf, wie beispielsweise 1,1 Grad. Wenn das Kalibrierungsmodul 230 bestimmt, dass die tatsächliche Position 350 von der geschätzten Position 340 über einen Schwellenbetrag hinaus abweicht, kann das Kalibrierungsmodul 230 daher einen Korrektur-Offset 260 (2) für die Lenkrad-Neutralstellung bestimmen.
-
4 zeigt ein Beispiel für ein Lenkrad 400 eines Lenksystems 143 im Fahrzeug 100. Bei der tatsächlichen Neutralstellung 410, d.h. null Grad, sollte sich das Fahrzeug 100 in einer geraden Richtung S fortbewegen. Aufgrund von Verschleiß, eines Unfalls, Neuteilen oder dergleichen kann die Neutralstellung 410 jedoch tatsächlich dazu führen, dass das Fahrzeug 100 leicht nach rechts oder links fährt, beispielsweise in einer abgewinkelten Richtung A, als ob das Lenkrad in einem Winkel ungleich null Grad, d.h. in der effektiven Neutralstellung 420, positioniert wäre. Es besteht daher eine Graddifferenz ΔD zwischen der tatsächlichen Neutralstellung 410 und der effektiven Neutralstellung 420. Es ist diese Differenz ΔD, welche die Fehlausrichtung zwischen der geschätzten Position 340 und der tatsächlichen Position 350 des Zielobjekts in 3 verursacht.
-
Bei relativ kleinen Gradverschiebungen kann ein menschlicher Fahrer auf der Grundlage des „Gefühls“ automatisch kompensieren, ohne wahrzunehmen, dass die tatsächliche Neutralstellung leicht abweicht. Beispielsweise kann ein menschlicher Fahrer bei ΔD, die nur zwei oder drei Grad beträgt, einfach das Lenkrad in einem Winkel halten, um ΔD zu kompensieren, wenn der Fahrer geradeaus fahren möchte. Jedes System des Fahrzeugs, das sich auf die Neutralstellung als eine Position verlässt, die bewirkt, dass das Fahrzeug 100 geradeaus fährt, läuft jedoch Gefahr, fehlerhafte Ergebnisse zu produzieren, die in einigen Fällen zu einem Unfall führen können.
-
Daher gibt der Korrektur-Offset 260 einen Grad der Korrektur an, der auf den Lenkwinkel angewendet werden sollte, um ΔD zu korrigieren. Wenn unter Rückbezug auf 3 eine Differenz 360 zwischen der geschätzten Position 340 und der tatsächlichen Position 350 des Zielobjekts besteht, erstellt das Kalibrierungsmodul 230 entweder einen Korrektur-Offset 260, der in der Datenbank 119 gespeichert wird, oder, falls bereits ein solcher erstellt wurde, passt den Korrektur-Offset 260 an. In einer oder mehreren Ausführungsformen bestimmt das Kalibrierungsmodul 230 einen Korrektur-Offset 260, der ΔD vollständig korrigieren wird. In einer oder mehreren Ausführungsformen bestimmt das Kalibrierungsmodul 230 einen inkrementellen Wert für den Korrektur-Offset 260, der ΔD inkrementell korrigiert, beispielsweise um zu vermeiden, dass eine relativ große Änderung auf einmal vorgenommen wird.
-
Nachdem der Korrektur-Offset 260 gespeichert oder angepasst wurde, wird das Kalibrierungssystem 170 mit einem Kalibrierungszyklus beendet und kann anschließend einen weiteren beginnen, um zu bestimmen, ob eine weitere Anpassung bei dem Korrektur-Offset 260 erforderlich ist. Auf diese Art und Weise kann das Kalibrierungssystem 170 kontinuierlich einen genauen Korrektur-Offset 260 im Ansprechen auf die aktuelle Lage des Fahrzeugs 100 beibehalten.
-
5 veranschaulicht ein Flussdiagramm eines Verfahrens 500 zum Ausführen eines Kalibrierungszyklus gemäß den offenbarten Ausführungsformen. Das Verfahren 500 wird aus der Perspektive des Kalibrierungssystems 170 der 1 und 2 erörtert. Während das Verfahren 500 in Kombination mit dem Kalibrierungssystem 170 erörtert wird, ist erkennbar, dass das Verfahren 500 nicht auf die Implementierung innerhalb des Kalibrierungssystems 170 beschränkt ist, das nur ein Beispiel für ein System ist, welches das Verfahren 500 implementieren kann.
-
Bei Vorgang 510 kann das Erfassungsmodul 220 optional Kartendaten 116 erhalten, um eine Gerade zu identifizieren, entlang derer ein Zielobjekt zu erfassen ist. Das Kalibrierungssystem 170 kann einen Kalibrierungszyklus auf einem gekrümmten Fahrweg ausführen, jedoch können auf einem geraden Fahrweg bessere Ergebnisse erzielt werden. Das Erfassungsmodul 220 kann mit dem Navigationssystem 147 kommunizieren, um eine Position des Fahrzeugs 100 zu bestimmen, und die Kartendaten 116 analysieren, um einen aktuellen oder bevorstehenden geraden Fahrweg zu bestimmen, der beispielsweise eine Schwellenlänge besitzt, auf welcher der Kalibrierungszyklus fortzusetzen ist.
-
Bei Vorgang 520 fährt das Erfassungsmodul 220 damit fort, ein Zielobjekt zu erfassen. Zu beachten ist, dass, während die Ausführungsformen so beschrieben wurden, dass das Zielobjekt vor dem Fahrzeug erfasst wird, das offenbarte Kalibrierungssystem 170 in Betrieb sein kann, während sich das Fahrzeug rückwärts bewegt, wobei in diesem Fall das Zielobjekt hinter dem Fahrzeug erfasst würde. Der Einfachheit der Erläuterung halber wird der Kalibrierungszyklus jedoch weiterhin auf der Grundlage einer Implementierung erörtert, bei welcher das Fahrzeug 100 vorwärts fährt.
-
Um das Zielobjekt zu erfassen, identifiziert das Erfassungsmodul 220 zunächst ein geeignetes Zielobjekt in einem oder mehreren Bildern, die von dem Sensorsystem 120 aufgenommen werden. In einer oder mehreren Ausführungsformen kann das Zielobjekt irgendein Objekt sein, welches das Erfassungsmodul 220 oberhalb eines Schwellenkonfidenzniveaus erfassen und als ein stationäres Objekt bestimmen kann, welches um einen Schwellenabstand vor dem Fahrzeug 100 liegt. Das Zielobjekt kann beispielsweise ein Schild, eine Fahrbahnmarkierung, ein Gebäude usw. sein.
-
Bei Vorgang 530 bestimmt das Erfassungsmodul 220 eine Mehrzahl von Datenpunkten, wobei jeder Datenpunkt zumindest eine Position des Zielobjekts relativ zum Fahrzeug 100 anzeigt, wenn sich das Fahrzeug 100 dem Zielobjekt nähert. Die Datenpunkte können ferner zusätzliche Daten umfassen, wie beispielsweise den Winkel des Lenkrads, wie von dem Lenkradsensor angegeben, die Geschwindigkeit des Fahrzeugs 100, einen Zeitstempel oder andere Kontextinformationen.
-
Bei Vorgang 540 bestimmt das Kalibrierungsmodul 230 eine Trajektorie des Zielobjekts. Das Kalibrierungsmodul 230 kann die Trajektorie bestimmen, indem eine Trajektorienfunktion bestimmt wird, die zumindest auf einer Mehrzahl der Datenpunkte und dem vom Lenkradsensor angegebenen Lenkradwinkel basiert. Falls ein Korrektur-Offset 260 vorhanden ist, wendet das Kalibrierungsmodul 230 bei der Bestimmung der Trajektorienfunktion den Korrektur-Offset 260 auf den Lenkradwinkel an. Die Trajektorienfunktion kann gemäß einem gewünschten Genauigkeitsgrad oder gemäß der verfügbaren Rechenleistung in der Komplexität variieren. Beispielsweise kann das Kalibrierungsmodul 230 in einer oder mehreren Ausführungsformen relativ einfache Interpolationstechniken verwenden, um eine Funktion basierend auf den Eingaben der Datenpunkte und den entsprechenden Lenkradwinkelpositionen herzuleiten. In einer oder mehreren Ausführungsformen können komplexere Techniken verwendet werden, um eine Funktion basierend auf den Datenpunkten, dem Lenkradwinkel, der Fahrzeuggeschwindigkeit, den Zeitstempeln usw. herzuleiten.
-
Bei Vorgang 550 bestimmt das Kalibrierungsmodul 230 eine Schätzposition für das Zielobjekt auf der Grundlage der durch die Trajektorienfunktion definierten Trajektorie. Die Schätzposition kann in einem Schwellenabstand zum Heck des Fahrzeugs 100 angeordnet sein.
-
Bei Vorgang 560 analysiert das Kalibrierungsmodul 230 die Daten von dem Sensorsystem 120, um eine tatsächliche Position, an welcher das Zielobjekt erfasst wurde, im gleichen Abstand vom Fahrzeug 100 wie die Schätzposition zu bestimmen.
-
Bei Vorgang 570 bestimmt das Kalibrierungsmodul 230, ob es irgendeine Differenz zwischen der Schätzposition und der tatsächlichen Position gibt. Falls es keine Differenz gibt (d.h. die Schätzposition und die tatsächliche Position ausgerichtet sind) oder falls die Differenz unter eine Mindestschwelle fällt, dann ist der Kalibrierungszyklus abgeschlossen und endet bei Vorgang 590.
-
Falls zwischen der Schätzposition und der tatsächlichen Position eine Differenz über der Mindestschwelle existiert, erzeugt das Kalibrierungsmodul 230 bei Vorgang 580 einen Korrektur-Offset 260, der auf den Lenkradsensorausgang anzuwenden ist. Die Differenz gibt an, dass die aktuelle Neutralstellung des Lenkrads nicht mit der Steuerung des Fahrzeugs 100 zur Geradeausfahrt zusammenfällt. Das Kalibrierungsmodul 230 kann eine Korrekturrichtung und einen Betrag auf der Grundlage der lateralen Richtung und eines Betrags der Differenz bestimmen. In einer oder mehreren Ausführungsformen kann das Kalibrierungsmodul 230 einen vollständigen Korrektur-Offset 260 bestimmen, beispielsweise wenn die Differenz unter einem Schwellenbetrag liegt. In einer oder mehreren Ausführungsformen kann das Kalibrierungsmodul 230 einen inkrementellen Korrektur-Offset 260 bestimmen, beispielsweise 0,25 Grad, wenn die Differenz über einem Schwellenbetrag liegt, um einen Effekt einer signifikanten, plötzlichen Änderung auf Betriebsergebnisse von Systemen zu reduzieren, die den Korrektur-Offset 260 auf die Neutralstellung anwenden werden.
-
Nachdem der Prozess bei Vorgang 590 endet, kann das Kalibrierungssystem 170 anschließend einen weiteren Kalibrierungszyklus beginnen. Das heißt, das Kalibrierungssystem 170 kann beispielsweise periodisch mit Kalibrierungszyklen beginnen, während das Fahrzeug 100 in Betrieb ist, um den Korrektur-Offset 260 kontinuierlich zu prüfen und einzustellen.
-
Entsprechend hält das offenbarte Kalibrierungssystem 170 den Korrektur-Offset 260 in einem Zustand eines Bewegens hin zu einer erhöhten Genauigkeit oder eines Aufrechterhaltens eines ausreichend genauen Zustands. Andere Systeme des Fahrzeugs 100 wenden den Korrektur-Offset 260 auf die Neutralstellung an, um ein genaueres Referenzmodell des Lenksystems 143 zu erhalten. Das Fahrzeug 100 kann beispielsweise ein Automatik-Parksystem umfassen, welches sich auf den Lenkradsensorausgang und die Neutralstellung stützt, um das Fahrzeug so zu steuern, dass sich dieses während des Parkens geradeaus bewegt. Durch Anwendung des Korrektur-Offsets 260 wird das Automatik-Parksystem in der Lage sein, das Fahrzeug 100 bei einem Parkmanöver genauer zu steuern. In einem weiteren Beispiel kann das Fahrzeug 100 ein Rückfahrparkassistenzsystem umfassen, welches Richtlinien anzeigt, die einen Fahrweg des Fahrzeugs vorhersagen, wenn ein Benutzer rückwärts fährt. Das Rückfahrparkassistenzsystem kann den Korrektur-Offset 260 anwenden, um genauere Richtlinien zu erhalten, die eine tatsächliche Richtung vorhersagen, in die das Fahrzeug 100 fahren wird. Daher kann das offenbarte Kalibrierungssystem 170 mehrere Vorgänge des Fahrzeugs 100 verbessern.
-
1 wird nun ausführlich als eine Beispielumgebung erörtert, in der das System und die Verfahren, wie hierin offenbart, in Betrieb sein können. In einigen Fällen ist das Fahrzeug 100 derart konfiguriert, dass dieses selektiv zwischen einem autonomen Modus, einem oder mehreren halbautonomen Betriebsmodi und/oder einem manuellen Modus umschaltet bzw. wechselt. Ein solches Umschalten kann in einer geeigneten, heute bekannten oder später entwickelten Weise implementiert sein. „Manueller Modus“ bedeutet, dass die gesamte oder ein Großteil der Navigation und/oder des Manövrierens des Fahrzeugs entsprechend Eingaben, die von einem Nutzer (beispielsweise einem menschlichen Fahrer) empfangen werden, durchgeführt wird. In einer oder mehreren Anordnungen kann das Fahrzeug 100 ein herkömmliches Fahrzeug sein, welches derart konfiguriert ist, dass dieses nur in einem manuellen Modus arbeitet.
-
In einer oder mehreren Ausführungsformen entspricht das Fahrzeug 100 einem autonomen Fahrzeug. Wie hierin verwendet, bezieht sich „autonomes Fahrzeug“ auf ein Fahrzeug, welches in einem autonomen Modus arbeitet. „Autonomer Modus“ bezieht sich auf das Navigieren und/oder Manövrieren des Fahrzeugs 100 entlang einer Fahrtroute unter Verwendung eines oder mehrerer Computersysteme zur Steuerung des Fahrzeugs 100 mit minimaler oder keiner Eingabe von einem menschlichen Fahrer. In einer oder mehreren Ausführungsformen ist das Fahrzeug 100 hochautomatisiert oder vollständig automatisiert. In einer Ausführungsform ist das Fahrzeug 100 mit einem oder mehreren halbautonomen Betriebsmodi konfiguriert, die den Korrektur-Offset 260 anwenden können und in denen ein oder mehrere Berechnungssysteme einen Teil der Navigation und/oder des Manövrierens des Fahrzeugs entlang einer Fahrtroute durchführen, und ein Nutzer des Fahrzeugs (d.h. der Fahrer) Eingaben bei dem Fahrzeug bereitstellt, um einen Teil der Navigation und/oder des Manövrierens des Fahrzeugs 100 entlang einer Fahrtroute durchzuführen.
-
Wie bereits erwähnt, kann das Fahrzeug 100 einen oder mehrere Prozessoren 110 umfassen. In einer oder mehreren Anordnungen kann/können der/die Prozessor(en) 110 einem Hauptprozessor des Fahrzeugs 100 entsprechen. Der/die Prozessor(en) 110 kann/können zum Beispiel einer elektronischen Steuerungseinheit (ECU) entsprechen. Das Fahrzeug 100 kann einen oder mehrere Datenspeicher 115 zur Speicherung einer oder mehrerer Arten von Daten umfassen. Der Datenspeicher 115 kann einen flüchtigen und/oder nicht-flüchtigen Speicher umfassen. Beispiele für geeignete Datenspeicher 115 umfassen einen RAM (Direktzugriffsspeicher), einen Flash-Speicher, einen ROM (Nurlesespeicher), einen PROM (programmierbarer Nurlesespeicher), einen EPROM (löschbarer, programmierbarer Nurlesespeicher), einen EEPROM (elektrisch löschbarer, programmierbarer Nurlesespeicher), Register, Magnetplatten, optische Platten, Festplatten oder irgendein anderes geeignetes Speichermedium oder irgendeine Kombination davon. Der Datenspeicher 115 kann einer Komponente des/der Prozessors(en) 110 entsprechen, oder der Datenspeicher 115 kann operativ mit dem/den Prozessor(en) 110 zur Verwendung dadurch verbunden sein. Der Begriff „operativ verbunden“, wie in dieser Beschreibung durchgängig verwendet, kann direkte oder indirekte Verbindungen umfassen, einschließlich Verbindungen ohne direkten physischen Kontakt.
-
In einer oder mehreren Anordnungen können der eine oder die mehreren Datenspeicher 115 die Datenbank 119 (2) implementieren und können ferner die Kartendaten 116 umfassen, die für das Erfassungsmodul 220 zugänglich sind. Die Kartendaten 116 können Karten von einem oder mehreren geographischen Gebieten umfassen. In einigen Fällen können die Kartendaten 116 Informationen oder Daten über Straßen, Verkehrssteuervorrichtungen, Straßenmarkierungen, Strukturen, Merkmale und/oder Landmarken in dem einen oder den mehreren geographischen Gebieten umfassen. Die Kartendaten 116 können in irgendeiner geeigneten Form vorliegen. In einigen Fällen können die Kartendaten 116 Luftbilder eines Gebiets umfassen. In einigen Fällen können die Kartendaten 116 Bodenansichten eines Gebiets umfassen, einschließlich 360-Grad-Bodenansichten. Die Kartendaten 116 können Messungen, Dimensionen, Entfernungen und/oder Informationen für ein oder mehrere in den Kartendaten 116 enthaltene Elemente und/oder in Bezug auf andere in den Kartendaten 116 enthaltene Elemente umfassen. Die Kartendaten 116 können eine digitale Karte mit Informationen über die Straßengeometrie umfassen. Die Kartendaten 116 können von hoher Qualität und/oder sehr detailliert sein.
-
In einer oder mehreren Anordnungen können die Kartendaten 116 eine oder mehrere Geländekarten 117 umfassen. Die Geländekarte(n) 117 kann/können Informationen über den Boden, das Gelände, Straßen, Oberflächen und/oder andere Merkmale eines oder mehrerer geographischer Gebiete umfassen. Die Geländekarte(n) 117 kann/können Höhendaten in dem einen oder den mehreren geographischen Gebieten umfassen. Die Kartendaten 116 können von hoher Qualität und/oder sehr detailliert sein. Die Geländekarte(n) 117 kann/können eine oder mehrere Bodenoberflächen definieren, die befestigte Straßen, unbefestigte Straßen, Land und andere Dinge umfassen können, die eine Bodenoberfläche definieren.
-
In einer oder mehreren Anordnungen können die Kartendaten 116 eine oder mehrere Karte(n) 118 für statische Hindernisse umfassen. Die Karte(n) 118 für statische Hindernisse kann/können Informationen über ein oder mehrere statische Hindernisse umfassen, die sich in einem oder mehreren geografischen Gebieten befinden. In einer oder mehreren Ausführungsformen kann das Erfassungsmodul 220 ein statisches Hindernis als ein Zielobjekt auswählen. Ein „statisches Hindernis“ entspricht einem physischen Objekt, dessen Position sich über einen Zeitraum nicht oder nur unwesentlich ändert und/oder dessen Größe sich über einen Zeitraum nicht oder nur unwesentlich ändert. Beispiele für statische Hindernisse umfassen Bäume, Gebäude, Bordsteine, Zäune, Geländer, Mittelstreifen, Leitungsmasten, Statuen, Denkmäler, Schilder, Bänke, Möbel, Briefkästen, große Felsen, Hügel. Bei den statischen Hindernissen kann es sich um Objekte handeln, die sich über die Geländeoberfläche erstrecken. Das eine oder die mehreren statischen Hindernisse, das/die in der/den Karte(n) 118 für statische Hindernisse umfassen sind, können Standortdaten, Größendaten, Dimensionsdaten, Materialdaten und/oder andere damit verbundene Daten aufweisen. Die Karte(n) 118 für statische Hindernisse kann/können Messungen, Dimensionen, Entfernungen und/oder Informationen für ein oder mehrere statische Hindernisse umfassen. Die Karte(n) 118 für statische Hindernisse kann/können von hoher Qualität und/oder sehr detailliert sein. Die Karte(n) 118 für statische Hindernisse kann/können aktualisiert werden, um Änderungen innerhalb eines kartografierten Bereichs widerzuspiegeln.
-
Wie vorstehend erwähnt, kann das Fahrzeug 100 das Sensorsystem 120 umfassen. Das Sensorsystem 120 kann einen oder mehrere Sensoren umfassen. „Sensor“ steht für irgendeine Vorrichtung, Komponente und/oder irgendein System, welche/welches etwas erkennen und/oder erfassen kann. Der eine oder die mehreren Sensoren können derart konfiguriert sein, dass diese(r) etwas in Echtzeit erkennen und/oder erfassen. Wie hierin verwendet, steht der Begriff „Echtzeit“ für ein Niveau eines Verarbeitungsansprechverhaltens, das ein Nutzer oder System als ausreichend unmittelbar empfindet, damit ein bestimmter Prozess oder eine bestimmte Bestimmung vorgenommen werden kann, oder das es dem Prozessor ermöglicht, mit einem bestimmten externen Prozess Schritt zu halten.
-
In Anordnungen, in denen das Sensorsystem 120 eine Mehrzahl von Sensoren umfasst, können die Sensoren unabhängig voneinander arbeiten. Alternativ können zwei oder mehr der Sensoren in Kombination miteinander arbeiten. In einem solchen Fall können die zwei oder mehr Sensoren ein Sensornetzwerk bilden. Das Sensorsystem 120 und/oder der eine oder die mehreren Sensoren kann/können operativ bzw. betriebsfähig mit dem/den Prozessor(en) 110, dem/den Datenspeicher(n) 115 und/oder einem anderen Element des Fahrzeugs 100 (einschließlich irgendeines der in 1 gezeigten Elemente) verbunden sein. Das Sensorsystem 120 kann Daten von zumindest einem Teil der äußeren Umgebung des Fahrzeugs 100 (beispielsweise nahegelegene Fahrzeuge) erlangen.
-
Das Sensorsystem 120 kann irgendeinen geeigneten Sensortyp umfassen. Verschiedene Beispiele für unterschiedliche Sensortypen werden hierin beschrieben. Es wird jedoch verständlich, dass die Ausführungsformen nicht auf die einzelnen beschriebenen Sensoren beschränkt sind. Das Sensorsystem 120 kann einen oder mehrere Fahrzeugsensoren 121 umfassen. Der/die Fahrzeugsensor(en) 121 kann/können Informationen über das Fahrzeug 100 selbst erkennen, bestimmen und/oder erfassen. Bei einer oder mehreren Anordnungen kann/können der/die Fahrzeugsensor(en) 121 derart konfiguriert sein, dass dieser/diese Positions- und Orientierungsänderungen des Fahrzeugs 100, wie beispielsweise auf der Grundlage einer Inertialbeschleunigung, erkennen und/oder erfassen kann/können. Bei einer oder mehreren Anordnungen kann/können der/die Fahrzeugsensor(en) 121 einen oder mehrere Beschleunigungsmesser, ein oder mehrere Gyroskope, eine Inertialmesseinheit (IMU), ein Koppelnavigationssystem, ein globales Navigationssatellitensystem (GNSS), ein globales Positionierungssystem (GPS), ein Navigationssystem 147 und/oder andere geeignete Sensoren umfassen. Der/die Fahrzeugsensor(en) 121 kann/können derart konfiguriert sein, dass dieser/diese eine oder mehrere Charakteristika des Fahrzeugs 100 erkennt/erkennen und/oder erfasst/erfassen. Bei einer oder mehreren Anordnungen kann/können der/die Fahrzeugsensor(en) 121 einen Geschwindigkeitsmesser umfassen, um eine aktuelle Geschwindigkeit des Fahrzeugs 100 zu bestimmen.
-
Alternativ oder zusätzlich kann das Sensorsystem 120 einen oder mehrere Umgebungssensoren 122 umfassen, welche derart konfiguriert sind, dass diese Fahrumgebungsdaten erlangen und/oder erfassen. „Fahrumgebungsdaten“ umfassen Daten oder Informationen über die äußere Umgebung, in der sich ein autonomes Fahrzeug befindet, oder ein oder mehrere Teile davon. Beispielsweise kann/können der eine oder die mehreren Umgebungssensoren 122 derart konfiguriert sein, dass diese Hindernisse in zumindest einem Teil der äußeren Umgebung des Fahrzeugs 100 und/oder Informationen/Daten über solche Hindernisse erkennen, quantifizieren und/oder erfassen. Solche Hindernisse können stationäre Objekte und/oder dynamische Objekte sein. Der eine oder die mehreren Umgebungssensoren 122 können derart konfiguriert sein, dass diese andere Dinge in der äußeren Umgebung des Fahrzeuges 100, wie beispielsweise Fahrspurmarkierungen, Schilder, Ampeln, Verkehrszeichen, Fahrspurlinien, Zebrastreifen, Bordsteine in der Nähe des Fahrzeuges 100, Objekte außerhalb der Straße usw. erkennen, messen, quantifizieren und/oder erfassen.
-
Verschiedene Beispiele von Sensoren des Sensorsystems 120 werden hierin beschrieben. Die beispielhaften Sensoren können Teil des einen oder der mehreren Umgebungssensoren 122 und/oder des einen oder der mehrerer Fahrzeugsensoren 121 sein. Es wird jedoch erkennbar, dass die Ausführungsformen nicht auf die bestimmten beschriebenen Sensoren beschränkt sind.
-
Als ein Beispiel kann das Sensorsystem 120 bei einer oder mehreren Anordnungen einen oder mehrere Radarsensoren 123, einen oder mehrere LIDAR-Sensoren 124, einen oder mehrere Sonarsensoren 125 und/oder eine oder mehrere Kameras 126 umfassen. Bei einer oder mehreren Anordnungen können die eine oder mehreren Kameras 126 High-Dynamic-Range (HDR) -Kameras oder Infrarotkameras (IR) sein. Wie vorstehend beschrieben ist, können in dem Sensorsystem 120 Sensoren so angeordnet sein, dass diese sowohl nach vorne als auch nach hinten gerichtete Sensoren umfassen.
-
Das Fahrzeug 100 kann ein Eingabesystem 130 umfassen. Ein „Eingabesystem“ umfasst irgendein(e) Vorrichtung, Komponente, System, Element oder Anordnung oder Gruppen davon, welche(s) die Eingabe von Informationen/Daten in eine Maschine ermöglicht/ermöglichen. Das Eingabesystem 130 kann eine Eingabe von einem Fahrzeuginsassen (beispielsweise einem Fahrer oder einem Beifahrer) empfangen. Das Fahrzeug 100 kann ein Ausgabesystem 135 umfassen. Ein „Ausgabesystem“ umfasst irgendeine Vorrichtung, Komponente oder Anordnung oder Gruppen davon, welche die Darstellung von Informationen/Daten für einen Fahrzeuginsassen (beispielsweise eine Person, einen Fahrzeuginsassen usw.) ermöglicht/ermöglichen.
-
Das Fahrzeug 100 kann ein oder mehrere Fahrzeugsysteme 140 umfassen. Verschiedene Beispiele für das eine oder die mehreren Fahrzeugsysteme 140 sind in 1 gezeigt. Das Fahrzeug 100 kann jedoch mehr, weniger oder andere Fahrzeugsysteme umfassen. Es sollte erkannt werden, dass, obwohl bestimmte Fahrzeugsysteme getrennt definiert sind, jedes oder irgendeines der Systeme oder Abschnitte davon anderweitig über Hardware und/oder Software innerhalb des Fahrzeugs 100 kombiniert oder separiert werden können. Das Fahrzeug 100 kann ein Antriebssystem 141, ein Bremssystem 142, ein Lenksystem 143, ein Drosselsystem 144, ein Übertragungssystem 145, ein Signalsystem 146 und/oder ein Navigationssystem 147 umfassen. Jedes dieser Systeme kann eine oder mehrere heute bekannte oder später entwickelte Vorrichtungen, Komponenten und/oder Kombinationen davon umfassen.
-
Das Navigationssystem 147 kann eine oder mehrere heute bekannte oder später entwickelte Vorrichtungen, Anwendungen und/oder Kombinationen davon umfassen, welche derart konfiguriert sind, dass diese die geografische Position des Fahrzeugs 100 bestimmen und/oder eine Fahrtroute für das Fahrzeug 100 bestimmen. Das Navigationssystem 147 kann eine oder mehrere Kartenanwendungen umfassen, um eine Fahrtroute für das Fahrzeug 100 zu bestimmen. Das Navigationssystem 147 kann ein globales Positionierungssystem, ein lokales Positionierungssystem oder ein Geolokalisierungssystem umfassen.
-
Der/die Prozessor(en) 110, das Kalibrierungssystem 170 und/oder das/die Autonom-Fahrmodul(e) 160 können operativ verbunden sein, um mit den verschiedenen Fahrzeugsystemen 140 und/oder individuellen Komponenten davon zu kommunizieren. Beispielsweise können unter Rückbezug auf 1 der/die Prozessor(en) 110 und/oder das/die Autonom-Fahrmodul(e) 160 in Kommunikation stehen, um Informationen von den verschiedenen Fahrzeugsystemen 140 zu senden und/oder zu empfangen, um die Bewegung, die Geschwindigkeit, das Manövrieren, den Kurs, die Richtung usw. des Fahrzeugs 100 zu steuern. Der/die Prozessor(en) 110 und/oder das/die Autonom-Fahrmodul(e) 160 können einige oder alle dieser Fahrzeugsysteme 140 steuern und können somit teilweise oder vollständig autonom sein.
-
Der/die Prozessor(en) 110 und/oder das/die Autonom-Fahrmodul(e) 160 können so betriebsfähig sein, dass diese den Korrektur-Offset 260 anwenden und die Navigation und/oder das Manövrieren des Fahrzeugs 100 durch Steuern eines oder mehrerer der Fahrzeugsysteme 140 und/oder Komponenten davon steuern. Wenn beispielsweise in einem autonomen Modus gearbeitet wird, können der/die Prozessor(en) 110 und/oder das/die Autonom-Fahrmodul(e) 160 die Richtung und/oder Geschwindigkeit des Fahrzeugs 100 steuern. Der/die Prozessor(en) 110 und/oder das/die Autonom-Fahrmodul(e) 160 können veranlassen, dass das Fahrzeug 100 beschleunigt (beispielsweise durch Erhöhen der Kraftstoffzufuhr zu der Maschine), verzögert (beispielsweise durch Verringern der Kraftstoffzufuhr zu der Maschine und/oder durch Betätigen der Bremsen) und/oder die Richtung ändert (beispielsweise durch Drehen der vorderen beiden Räder). Wie hierin verwendet, steht „veranlasst“ oder „veranlassen“ dafür, ein Ereignis oder eine Aktion entweder direkt oder indirekt herbeizuführen, zu forcieren, zu erzwingen, zu lenken, zu befehlen, anzuweisen und/oder zu ermöglichen, oder dass zumindest ein Zustand vorliegt, in dem ein solches Ereignis oder eine solche Aktion auftreten kann.
-
Das Fahrzeug 100 kann ein oder mehrere Stellglieder 150 umfassen. Bei den Stellgliedern 150 kann es sich um irgendein Element oder irgendeine Kombination von Elementen handeln, die betriebsfähig sind, um im Ansprechen auf den Empfang von Signalen oder anderen Eingaben von dem/den Prozessor(en) 110 und/oder dem/den Autonom-Fahrmodul(en) 160 eines oder mehrere der Fahrzeugsysteme 140 oder Komponenten davon zu modifizieren, anzupassen und/oder zu verändern. Jedes geeignete Stellglied kann verwendet werden. Das eine oder die mehreren Stellglieder 150 können beispielsweise Motoren, pneumatische Stellglieder, Hydraulikkolben, Relais, Magnetventile und/oder piezoelektrische Stellglieder umfassen, um nur einige Möglichkeiten zu nennen.
-
Das Fahrzeug 100 kann ein oder mehrere Module umfassen, von denen zumindest einige hierin beschrieben sind. Die Module können als computerlesbarer Programmcode aufgebaut sein, der, wenn dieser von einem Prozessor 110 ausgeführt wird, einen oder mehrere der verschiedenen hierin beschriebenen Prozesse implementiert. Eines oder mehrere der Module kann/können einer Komponente des Prozessors bzw. der Prozessoren 110 entsprechen, oder eines oder mehrere der Module kann/können auf anderen Verarbeitungssystemen, mit denen der/die Prozessor(en) 110 operativ verbunden ist/sind, ausgeführt werden und/oder auf diese verteilt sein. Die Module können Anweisungen (beispielsweise eine Programmlogik) umfassen, die von einem oder mehreren Prozessor(en) 110 ausgeführt werden können. Alternativ oder zusätzlich kann/können ein oder mehrere Datenspeicher 115 solche Anweisungen enthalten.
-
In einer oder mehreren Anordnungen kann/können eines oder mehrere der hierin beschriebenen Module Elemente künstlicher oder rechnergestützter Intelligenz umfassen, beispielsweise neuronale Netze, Fuzzy-Logik oder andere Algorithmen für maschinelles Lernen. Ferner kann/können in einer oder mehreren Anordnungen eines oder mehrere der Module auf eine Mehrzahl der hierin beschriebenen Module verteilt sein. In einer oder mehreren Anordnungen können zwei oder mehr der hierin beschriebenen Module zu einem einzelnen Modul kombiniert sein.
-
Das Fahrzeug 100 kann ein oder mehrere Autonom-Fahrmodule 160 umfassen. Das/die Autonom-Fahrmodul(e) 160 kann/können derart konfiguriert sein, dass diese(s) Daten vom Sensorsystem 120 und/oder irgendeinem anderen Systemtyp empfängt/empfangen, der Informationen mit Bezug auf das Fahrzeug 100 und/oder die äußere Umgebung des Fahrzeugs 100 erfassen kann. In einer oder mehreren Anordnungen kann/können das/die Autonom-Fahrmodul(e) 160 solche Daten verwenden, um ein oder mehrere Fahrszenenmodelle zu erzeugen. Das/die Autonom-Fahrmodul(e) 160 kann/können eine Position und Geschwindigkeit des Fahrzeugs 100 bestimmen. Das/die Autonom-Fahrmodul(e) 160 kann/können die Position von Hindernissen, Hindernisse oder andere Umgebungsmerkmale einschließlich Verkehrsschildern, Bäumen, Sträuchern, benachbarten Fahrzeugen, Fußgängern usw. bestimmen.
-
Das/die Autonom-Fahrmodul(e) 160 kann/können derart konfiguriert sein, dass diese(s) Standortinformationen für Hindernisse innerhalb der äußeren Umgebung des Fahrzeugs 100 zur Verwendung durch den/die Prozessor(en) 110 und/oder eines oder mehrere der hierin beschriebenen Module empfängt/empfangen und/oder bestimmt/bestimmen, um die Position und Orientierung bzw. Ausrichtung des Fahrzeugs 100, die Fahrzeugposition in globalen Koordinaten auf der Grundlage von Signalen von mehreren Satelliten oder irgendwelche andere Daten und/oder Signale, die zur Bestimmung des aktuellen Zustands des Fahrzeugs 100 oder zur Bestimmung der Position des Fahrzeugs 100 mit Bezug auf seine Umgebung verwendet werden könnten, zur Verwendung entweder bei der Erstellung einer Karte oder bei der Bestimmung der Position des Fahrzeugs 100 mit Bezug auf Kartendaten abzuschätzen. Das/die Autonom-Fahrmodul(e) 160 kann/können ferner derart konfiguriert sein, dass dieses/diese Spurwechsel-Erfassungsbenachrichtigungen und/oder Fahrwegschätzungen empfängt/empfangen, wie vorstehend beschrieben.
-
Das/die Autonom-Fahrmodul(e) 160 kann/können derart konfiguriert sein, dass diese(s) einen Fahrweg(e) bestimmt/bestimmen und den Korrektur-Offset 260 anwenden, beim Bestimmen aktueller autonomer Fahrmanöver für das Fahrzeug 100, zukünftiger autonomer Fahrmanöver und/oder Modifikationen an aktuellen autonomen Fahrmanövern auf der Grundlage von durch das Sensorsystem 120 erlangten Daten, Fahrszenenmodellen und/oder Daten von irgendeiner anderen geeigneten Quelle, wie Bestimmungen von den Sensordaten 240. „Fahrmanöver“ steht für eine oder mehrere Aktionen, welche die Bewegung eines Fahrzeugs beeinflussen. Beispiele für Fahrmanöver umfassen: Beschleunigen, Verzögern, Bremsen, Abbiegen, Bewegen in seitlicher Richtung des Fahrzeugs 100, Wechseln von Fahrspuren, Einfädeln in eine Fahrspur und/oder Rückwärtsfahren, um nur einige Möglichkeiten zu nennen. Das/die Autonom-Fahrmodul(e) 160 kann/können derart konfiguriert sein, dass diese(s) bestimmte Fahrmanöver implementiert/implementieren. Das/die Autonom-Fahrmodul(e) 160 kann/können direkt oder indirekt die Implementierung solcher autonomen Fahrmanöver veranlassen. Wie hierin verwendet, steht „veranlasst“ oder „veranlassen“ dafür, ein Ereignis oder eine Aktion entweder direkt oder indirekt herbeizuführen, zu befehlen, anzuweisen und/oder zu ermöglichen, oder dass zumindest ein Zustand vorliegt, in dem ein solches Ereignis oder eine solche Aktion auftreten kann. Das/die Autonom-Fahrmodul(e) 160 kann/können derart konfiguriert sein, dass diese(s) verschiedene Fahrzeugfunktionen ausführt/ausführen und/oder dem Fahrzeug 100 oder einem oder mehreren Systemen davon (beispielsweise ein oder mehrere der Fahrzeugsysteme 140) Daten übermittelt/übermitteln, von diesem/diesen Daten empfängt/empfangen, mit diesem/diesen interagiert/interagieren und/oder dieses/diese steuert/steuern.
-
Hier werden detaillierte Ausführungsformen offenbart. Es ist jedoch verständlich, dass die offenbarten Ausführungsformen nur als Beispiele gedacht sind. Daher sind spezifische strukturelle und funktionelle Details, die hierin offenbart sind, nicht als beschränkend zu interpretieren, sondern lediglich als eine Grundlage für die Ansprüche und als eine repräsentative Grundlage für die Unterweisung eines Fachmanns, die Aspekte hierin in praktisch jeder geeignet detaillierten Struktur unterschiedlich einzusetzen. Ferner sind die hierin verwendeten Begriffe und Formulierungen nicht beschränkend gedacht, sondem diese sollen vielmehr eine verständliche Beschreibung möglicher Implementierungen liefern. In den 1-5 sind verschiedene Ausführungsformen gezeigt, die Ausführungsformen sind jedoch nicht auf die dargestellte Struktur oder Anwendung beschränkt.
-
Die Flussdiagramme und Blockdiagramme in den Abbildungen stellen die Architektur, Funktionalität und Funktionsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Aspekten dar. In dieser Hinsicht kann jeder Block in den Flussdiagrammen oder Blockdiagrammen ein Modul, ein Segment oder einen Codeabschnitt darstellen, der eine oder mehrere ausführbare Anweisungen zur Implementierung der spezifizierten logischen Funktion(en) aufweist. Es ist auch zu beachten, dass bei einigen alternativen Implementierungen die im Block angegebenen Funktionen außerhalb der in den Abbildungen angegebenen Reihenfolge auftreten können. So können beispielsweise zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, je nach der betreffenden Funktionalität.
-
Die vorstehend beschriebenen Systeme, Komponenten und/oder Prozesse können in Hardware oder einer Kombination aus Hardware und Software realisiert werden und können in einer zentralisierten Art in einem Verarbeitungssystem oder in einer verteilten Art, bei welcher verschiedene Elemente auf mehrere miteinander verbundene Verarbeitungssysteme verteilt sind, realisiert werden. Jede Art von Verarbeitungssystem oder eine andere Vorrichtung, welche für die Ausführung der hierin beschriebenen Verfahren angepasst ist, ist geeignet. Eine typische Kombination aus Hardware und Software kann einem Verarbeitungssystem mit einem computerverwendbaren Programmcode entsprechen, der beim Laden und Ausführen das Verarbeitungssystem so steuert, dass dieses die hier beschriebenen Verfahren ausführt. Die Systeme, Komponenten und/oder Prozesse können auch in einem computerlesbaren Speicher eingebettet sein, wie beispielsweise einem Computerprogrammprodukt oder einer anderen Datenprogrammspeichervorrichtung, die von einer Maschine gelesen werden kann, welcher ein Programm von Anweisungen greifbar darstellt, die von der Maschine ausgeführt werden können, um die hierin beschriebenen Verfahren und Prozesse durchzuführen. Diese Elemente können auch in einem Anwendungsprodukt eingebettet sein, das alle Merkmale aufweist, welche die Implementierung der hierin beschriebenen Verfahren ermöglichen, und welches, wenn dieses in ein Verarbeitungssystem geladen wird, in der Lage ist, diese Verfahren auszuführen.
-
Darüber hinaus können die hierin beschriebenen Anordnungen die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit einem darauf verkörperten, beispielsweise gespeicherten, computerlesbaren Programmcode verkörpert ist. Jede Kombination aus einem oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Der Ausdruck „computerlesbares Speichermedium“ steht für ein nicht-flüchtiges Speichermedium. Ein computerlesbares Speichermedium kann beispielsweise ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleiter-System, Einrichtung oder Vorrichtung oder irgendeine geeignete Kombination aus dem Vorstehenden sein, ist jedoch nicht darauf beschränkt. Spezifischere Beispiele (eine nicht erschöpfende Liste) für das computerlesbare Speichermedium würden Folgendes umfassen: eine tragbare Computerdiskette, ein Festplattenlaufwerk (HDD), ein Festkörperlaufwerk (SSD), ein Nurlesespeicher (ROM), ein löschbarer programmierbarer Nurlesespeicher (EPROM oder Flash-Speicher), ein tragbarer Compact-Disc-Nurlesespeicher (CD-ROM), eine digitale vielseitige Platte (DVD), eine optische Speichervorrichtung, eine magnetische Speichervorrichtung oder irgendeine geeignete Kombination des Vorstehenden. In Zusammenhang mit diesem Dokument kann ein computerlesbares Speichermedium jedes greifbare Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem Anweisungsausführungssystem, einer Einrichtung oder einer Vorrichtung enthalten oder speichern kann.
-
Im Allgemeinen umfassen Module, wie hierin verwendet, Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw., die bestimmte Aufgaben durchführen oder bestimmte Datentypen implementieren. In weiteren Aspekten speichert ein Speicher im Allgemeinen die genannten Module. Bei dem einem Modul zugeordneten Speicher kann es sich um einen Puffer- oder Cache handeln, der in einen Prozessor, einen RAM, einen ROM, einen Flash-Speicher oder ein anderes geeignetes elektronisches Speichermedium eingebettet ist. In noch weiteren Aspekten ist ein Modul im Sinne der vorliegenden Offenbarung als eine anwendungsspezifische integrierte Schaltung (ASIC), eine Hardware-Komponente eines Systems auf einem Chip (SoC), als eine programmierbare logische Anordnung (PLA) oder als eine andere geeignete Hardware-Komponente, die mit einem definierten Konfigurationssatz (beispielsweise Anweisungen) zur Durchführung der offenbarten Funktionen eingebettet ist, implementiert.
-
Programmcode, der auf einem computerlesbaren Medium verkörpert ist, kann unter Verwendung irgendeines geeigneten Mediums übertragen werden, einschließlich drahtlos, drahtgebunden, einer optischen Faser, eines Kabels, RF usw. oder irgendeine geeignete Kombination des Vorstehenden, ist jedoch nicht darauf beschränkt. Ein Computerprogrammcode zur Ausführung von Operationen für Aspekte der vorliegenden Anordnungen kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, einschließlich einer objektorientierten Programmiersprache, wie Java™, Smalltalk, C++ oder dergleichen, und herkömmlichen prozeduralen Programmiersprachen, wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Nutzers, teilweise auf dem Computer des Nutzers, als ein eigenständiges Softwarepaket, teilweise auf dem Computer des Nutzers und teilweise auf einem Remotecomputer oder vollständig auf dem Remotecomputer oder Server ausgeführt werden. Im letzteren Szenario kann der Remotecomputer mit dem Computer des Nutzers über jede Art von Netzwerk verbunden sein, einschließlich eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzwerks (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (beispielsweise über das Internet unter Verwendung eines Internet-Service-Providers).
-
Die Begriffe „ein/eine/eines, wie hierin verwendet, sind als eines oder mehr als eines definiert. Der Begriff „Mehrzahl“, wie hierin verwendet, ist als zwei oder mehr als zwei definiert. Der Begriff „weitere/weiteres“, wie hierin verwendet, ist definiert als zumindest ein/eine zweiter/zweites/zweite oder mehr. Die Begriffe „umfassen“ und/oder „besitzen“, wie hierin verwendet, sind definiert als aufweisen (d.h. offene Sprache). Der Ausdruck „zumindest eines aus ... und ....“, wie hierin verwendet, bezieht sich auf alle möglichen Kombinationen von einem oder mehreren der damit verbundenen aufgelisteten Elemente und schließt diese ein. Beispielsweise umfasst der Ausdruck „zumindest eines aus A, B und C“ nur A, nur B, nur C oder eine beliebige Kombination davon (beispielsweise AB, AC, BC oder ABC).
-
Aspekte hierin können in anderen Formen verkörpert sein, ohne von dem Grundgedanken oder wesentlichen Eigenschaften davon abzuweichen. Entsprechend sollte beim Angeben des Schutzumfangs davon eher auf die folgenden Ansprüche als auf die vorstehende Spezifikation Bezug genommen werden.