-
QUERVERWEIS ZU VERWANDTEN ANMELDUNGEN
-
Diese Anmeldung beansprucht den Vorteil der
US Patentanmeldung mit der Nr. 14/970,251 , welche am 15. Dezember 2015 eingereicht wurde, wobei deren Offenbarung in ihrer Gesamtheit durch Referenz hierin eingeschlossen ist.
-
HINTERGRUND
-
Fahrzeugnavigationssysteme verwenden üblicherweise ein satellitenbasiertes Ortungssystem, um den Ort des Fahrzeugs zu bestimmen. Derartige Systeme sind bekannt, Nachteile in Bezug auf Orte zu haben, in denen Satellitensignale nicht verfügbar oder schwach sind.
-
Eine bildbasierte Ortung wurde als ein anderes Verfahren einer Bestimmung eines Orts eines Fahrzeugs vorgeschlagen. Bisherige bildbasierte Ortungstechniken für Fahrzeuge haben eine Inverse-Perspektive-Mapping (IPM) verwendet, um ein Kamerabild von einer fahrzeugmontierten Kamera in ein Aufsichtsbild oder ein Bild aus einer Vogelperspektive zu transformieren. Das Aufsichtsbild kann dann mit bekannten Spurmarkierungen verglichen werden, um den Ort des Fahrzeugs zu bestimmen.
-
IPM basierte Ortungstechniken können Nachteile aufweisen, da sich das IPM auf bekannte oder angenommene Charakteristiken verlässt. Zum Beispiel nehmen IPM-Techniken an, dass die Straße flach ist und dass die Kameraneigung und -Gierung bekannt sind. Diese Annahmen können in Echtwelt-Fahrbedingungen nicht korrekt sein. Ferner kann das IPM-Bild nur mit ebenen Merkmalen (zum Beispiel Spurmerkmalen) verglichen werden, welche nicht immer verfügbar oder ausreichend sein können.
-
ZUSAMMENFASSUNG
-
Gemäß einem Aspekt stellt die Offenbarung ein Verfahren zum Bestimmen eines Fahrzeugorts und einer Fahrzeugstellung bereit. Das Verfahren kann ein Bestimmen einer Orts- und Stellungsschätzung für das Fahrzeug umfassen. Das Verfahren kann ferner ein Empfangen von dreidimensionalen Kartendaten auf Grundlage der Orts- und Stellungsschätzung umfassen. Das Verfahren kann auch ein Erhalten eines Kamerabilds von einer fahrzeugmontierten Kamera umfassen. Das Verfahren kann zusätzlich ein Projizieren der dreidimensionalen Kartendaten auf das Kamerabild auf Grundlage der Orts- und Stellungsschätzung umfassen. Das Verfahren kann ferner ein Vergleichen der projizierten dreidimensionalen Kartendaten mit dem Kamerabild umfassen. Das Verfahren kann auch ein Bestimmen des Fahrzeugorts und der Fahrzeugstellung auf Grundlage des Vergleichens umfassen.
-
In einem anderen Aspekt stellt die Offenbarung ein System zum Bestimmen eines Orts und einer Stellung eines Fahrzeugs bereit. Das System kann eine Empfangseinheit eines globalen Positionierungssystems umfassen, welche dazu eingerichtet ist, eine Orts- und Stellungsschätzung für das Fahrzeug zu bestimmen. Das System kann auch eine Kartendatenbank umfassen, welche dazu eingerichtet ist, dreidimensionale Kartendaten auf Grundlage der Orts- und Stellungsschätzung bereitzustellen. Das System kann ferner eine fahrzeugmontierte Kamera umfassen, welche dazu eingerichtet ist, ein Kamerabild zu erhalten. Das System kann zusätzlich einen Prozessor umfassen, welcher mit einem Speicher kommunikativ gekoppelt ist der Prozessor kann dazu eingerichtet sein, die dreidimensionalen Kartendaten auf das Kamerabild auf Grundlage der Orts- und Stellungsschätzung zu projizieren. Der Prozessor kann ferner dazu eingerichtet sein, die projizierten dreidimensionalen Kartendaten mit dem Kamerabild zu vergleichen. Der Prozessor kann auch dazu eingerichtet sein, den Fahrzeugort und die Fahrzeugstellung auf Grundlage des Vergleichens zu bestimmen.
-
In noch einem anderen Aspekt stellt die Offenbarung ein nicht-flüchtiges computerlesbares Medium bereit, welches computerausführbaren Code zum Bestimmen eines Fahrzeugorts und einer Fahrzeugstellung speichert. Das computerlesbare Medium kann Code zum Bestimmen einer Orts- und Stellungsschätzung; ein Empfangen von dreidimensionalen Kartendaten auf Grundlage der Orts- und Stellungsschätzung; ein Erhalten eines Kamerabilds von einer fahrzeugmontierten Kamera; ein Projizieren der dreidimensionalen Kartendaten auf das Kamerabild auf Grundlage der Orts- und Stellungsschätzung; ein Vergleichen der projizierten dreidimensionalen Kartendaten mit dem Kamerabild; und ein Bestimmen des Fahrzeugorts und der Fahrzeugstellung auf Grundlage des Vergleichens umfassen.
-
Figurenliste
-
Die neuen Merkmale, welche erachtet werden, charakteristisch für die Offenbarung zu sein, sind in den angefügten Ansprüchen festgelegt. In der Beschreibung, welche nachfolgt, werden ähnliche Teile durch die Beschreibung und Zeichnungen hindurch jeweils mit den gleichen Bezugszeichen bezeichnet. Die Zeichnungsfiguren sind nicht notwendigerweise maßstabsgetreu gezeichnet und bestimmte Figuren können in einer übertriebenen oder verallgemeinernden Form im Interesse der Klarheit und Verständlichkeit gezeigt sein. Die Offenbarung selbst jedoch als auch eine bevorzugte Verwendung, weitere Aufgaben und Vorteile davon werden durch Referenz zu der nachfolgenden detaillierten Beschreibung von darstellenden Aspekten der Offenbarung am besten verstanden werden, wenn sie zusammen mit den begleitenden Zeichnungen gelesen werden, wobei:
- 1 eine schematische Ansicht einer beispielhaften Betriebsumgebung eines Ortungssystems darstellt;
- 2 ein Flussdiagramm darstellt, welches ein beispielhaftes Verfahren zeigt, welches durch eine beispielhafte Ausführungsform des Ortungssystems verwendet werden kann;
- 3 ein Flussdiagramm darstellt, welches ein beispielhaftes Verfahren zum Projizieren von dreidimensionalen Kartendaten auf ein Kamerabild zeigt;
- 4 ein Flussdiagramm darstellt, welches ein beispielhaftes Verfahren zum Vergleichen der projizierten dreidimensionalen Kartendaten mit einem Kamerabild zeigt;
- 5 ein Beispiel von dreidimensionalen Kartendaten in einem Karten-Koordinatensystem darstellt;
- 6 ein Beispiel von dreidimensionalen Kartendaten in einem Fahrzeug-Koordinatensystem darstellt;
- 7 ein Beispiel von dreidimensionalen Kartendaten in einem Kamera-Koordinatensystem darstellt;
- 8 ein Beispiel eines Kamerabilds entsprechend den Kartendaten aus 5 bis 7 darstellt;
- 9 ein Beispiel einer Projektion der Kartendaten auf ein Kamerabild darstellt;
- 10 ein Beispiel eines maskierten Kamerabilds und erweiterter Kartendaten darstellt;
- 11 ein anderes Beispiel einer unterschiedlichen Projektion von Kartendaten auf ein Kamerabild darstellt;
- 12 Beispiele von passenden Rändern auf Grundlage einer Orientierung darstellt.
- 13 ein beispielhaftes Systemdiagramm von unterschiedlichen Hardwarekomponenten und anderen Merkmalen für eine Verwendung im Einklang mit Aspekten der vorliegenden Offenbarung präsentiert; und
- 14 ein Blockdiagramm von verschiedenen beispielhaften Systemkomponenten im Einklang mit Aspekten der vorliegenden Offenbarung ist.
-
DETAILLIERTE BESCHREIBUNG
-
Das Nachfolgende umfasst Definitionen von hierin eingesetzten ausgewählten Ausdrücken. Die Definitionen umfassen verschiedene Beispiele und/oder Formen von Komponenten, welche in den Umfang eines Ausdrucks fallen, und welche für eine Implementierung verwendet werden können. Die Beispiele sind nicht dazu bestimmt, limitierend zu sein.
-
Der Ausdruck „Ort“, wie hierin verwendet, kann sich auf eine Position eines Objekts im Raum beziehen. Ein Ort kann unter Verwendung eines Koordinatensystems angezeigt werden. Zum Beispiel kann ein Ort als eine Länge und eine Breite dargestellt sein. In einem anderen Aspekt kann ein Ort eine Höhe umfassen.
-
Der Ausdruck „Stellung“, wie hierin verwendet, kann sich auf eine Orientierung eines Objekts im Raum beziehen. Zum Beispiel kann eine Stellung eine Neigung, eine Gierung und eine Drehung des Objekts beinhalten.
-
Der Ausdruck „Ortung“ kann sich auf eine Bestimmung eines Orts und/oder einer Stellung eines Objekts beziehen.
-
Ein „Prozessor“, wie hierin verwendet, verarbeitet Signale und führt generelle verarbeitende und arithmetische Funktionen durch. Durch den Prozessor verarbeitete Signale können digitale Signale, Datensignale, Computeranweisungen, Prozessoranweisungen, Nachrichten, ein Bit, einen Bitstrom oder andere Verarbeitungen umfassen, welche empfangen, übertragen und/oder erfasst werden können.
-
Ein „Bus“, wie hierin verwendet, bezieht sich auf eine verbundene Architektur, welche betriebsmäßig verbunden ist, um Daten zwischen Computerkomponenten innerhalb eines einzelnen oder mehrerer Systeme zu transferieren. Der Bus kann unter anderem ein Speicher-Bus, eine Speicher-Regel-/Steuereinheit, ein peripherer Bus, ein externer Bus, eine Crossbar-Einheit und/oder ein lokaler Bus sein. Der Bus kann auch ein Fahrzeug-Bus sein, welcher Komponenten in einem Fahrzeug unter Verwendung von Protokollen verbindet, wie beispielsweise unter anderem einem Controller Area Network (CAN), Local Interconnect Network (LIN).
-
Ein „Speicher“, wie hierin verwendet, kann einen flüchtigen Speicher und/oder einen nicht-flüchtigen Speicher umfassen. Ein nicht-flüchtiger Speicher kann zum Beispiel einen ROM (read only memory), einen PROM (programmable read only memory), einen EPROM (erasable PROM) und einen EEPROM (electrically erasable PROM) umfassen. Ein flüchtiger Speicher kann zum Beispiel einen RAM (random access memory), einen synchronen RAM (SRAM), einen dynamischen RAM (DRAM), einen synchronen DRAM (SDRAM), einen doppelten Datenraten SDRAM (DDR SDRAM) und einen direkten RAM-Bus-RAM (DRRAM) umfassen.
-
Eine „betriebsmäßige Verbindung“, wie hierin verwendet, kann eine Verbindung umfassen, durch welche Einheiten „betriebsmäßig verbunden“ sind, und welche eine ist, in welcher Signale, physische Kommunikationen und/oder logische Kommunikationen gesendet und/oder empfangen werden können. Eine betriebsmäßige Verbindung kann eine physische Schnittstelle (interface), eine Datenschnittstelle und/oder eine elektrische Schnittstelle umfassen.
-
Ein „Fahrzeug“, wie hierin verwendet, bezieht sich auf ein beliebiges bewegliches Fahrzeug, welches in der Lage ist, einen oder mehrere menschliche Insassen zu tragen, und welches durch eine beliebige Energieform angetrieben ist. Der Ausdruck „Fahrzeug“ umfasst, aber ist nicht begrenzt auf: Automobile, Lastkraftwägen, Lieferwägen, Kleinbusse, SUVs, Motorräder, Roller, Schiffe, Boote und Flugzeuge. In manchen Fällen umfasst ein Motorfahrzeug einen oder mehrere Motoren.
-
Mit Bezug nun auf die Zeichnungen, das, was darin gezeigt ist, ist zum Zwecke einer Darstellung von einem oder mehreren beispielhaften Aspekten der Offenbarung und nicht zum Zwecke einer Limitierung derselben.
-
1 zeigt eine schematische Ansicht einer beispielhaften Betriebsumgebung 100 eines Ortungssystems 110 und beispielhafte Verfahren gemäß einem Aspekt der Offenbarung. Zum Beispiel kann das Ortungssystem 110 innerhalb eines Fahrzeugs 102 sitzen. Die Komponenten des Ortungssystems 110 sowie die Komponenten von anderen Systemen, Hardwarearchitekturen und Softwarearchitekturen, welche hierin beschrieben werden, können kombiniert, weggelassen oder in verschiedene Architekturen für verschiedene Implementierungen organisiert werden. Jedoch fokussieren sich die beispielhaften Aspekte der hierin beschriebenen Offenbarung auf die Umgebung 100, wie in 1 dargestellt, mit entsprechenden Systemkomponenten und diesbezüglichen Verfahren.
-
Wie gezeigt in 1, umfasst das Fahrzeug 102 allgemein eine elektronische Regel-/Steuereinheit (ECU) 112, welche eine Mehrzahl von Fahrzeugsystemen betriebsmäßig regelt/steuert. Die Fahrzeugsysteme können unter anderem das Ortungssystem 110 umfassen, sind darauf aber nicht begrenzt, umfassend Fahrzeug-HVAC-Systeme, Fahrzeug-Audiosysteme, Fahrzeug-Videosysteme, Fahrzeug-Infotainmentsysteme, Fahrzeug-Telefonsysteme und dergleichen. Das Fahrzeug-Ortungssystem 110 kann eine Fahrzeug-GPS-Empfangseinheit 114 umfassen, welche auch mit der ECU 112 verbunden sein kann, um eine Orts- und Stellungsschätzung des Fahrzeugs 102, wie nachfolgend in größerem Detail beschrieben, bereitzustellen. In einem alternativen Aspekt umfasst das Ortungssystem 110 seinen eigenen Prozessor 122 und Speicher 124, welche mit der GPS-Empfangseinheit 114, Wegmesssensoren 116, einer Kamera 118 und einer Kartendatenbank 120 kommunizieren, um das Fahrzeug 102 zu lokalisieren (zum Beispiel einen Ort und eine Stellung des Fahrzeugs 102 zu bestimmen).
-
Die ECU 112 kann einen internen Verarbeitungsspeicher, eine Schnittstellenschaltung und Bus-Linien zum Transferieren von Daten, Senden von Befehlen und Kommunizieren mit den Fahrzeugsystemen umfassen. Allgemein umfasst die ECU 112 einen Prozessor und einen Speicher (nicht gezeigt). Das Fahrzeug 102 kann auch einen Bus zum Senden von Daten intern zwischen den verschiedenen Komponenten des Ortungssystems 110 umfassen. Das Fahrzeug 102 kann ferner eine Kommunikationsvorrichtung 126 (zum Beispiel ein drahtloses Modem) zum Bereitstellen von drahtgebundenen oder drahtlosen Computerkommunikationen unter Verwendung verschiedener Protokolle umfassen, um elektronische Signale intern an Merkmale und Systeme innerhalb des Fahrzeugs 102 und zu externen Vorrichtungen zu senden/empfangen. Allgemein umfassen diese Protokolle ein drahtloses System (zum Beispiel IEEE 802.11, IEEE 802.15.1 (Bluetooth.RTM.)), ein Nahfeld-Kommunikationssystem (NFC) (zum Beispiel ISO 13157), ein Nahbereichs-Netzwerk (LAN) und/oder ein Punkt-zu-Punkt-System. Zusätzlich ist die Kommunikationsvorrichtung des Fahrzeugs 102 für eine interne Computerkommunikation über einen Bus (zum Beispiel einen Controller Area Network (CAN) Protokoll-Bus oder einen Local Interconnect Network (LIN) Protokoll-Bus) betriebsmäßig verbunden, um eine Dateneingabe und Datenausgabe zwischen der elektronischen Regel-/Steuereinheit 104 und Fahrzeugmerkmalen und Fahrzeugsystemen zu ermöglichen.
-
Das Fahrzeug 102 umfasst auch Wegmesssensoren 116, welche Daten bezüglich einer Bewegung des Fahrzeugs regeln/steuern und bereitstellen können. Zum Beispiel können die Wegmesssensoren eine Motor-Regel-/Steuereinheit (nicht gezeigt) umfassen, welche eine Fahrzeuggeschwindigkeit, eine Leerlaufgeschwindigkeit und Motor-Drosselpositionen bereitstellt. In einem Aspekt der Offenbarung können die Wegmesssensoren 116 ferner eine Übertragungs-Regel-/Steuereinheit (nicht gezeigt) umfassen, um Daten bezüglich des Fahrzeugübertragungssystems (das heißt eines Antriebssystems) bereitzustellen. Zum Beispiel kann die Motor-Regel-/Steuereinheit und/oder die Übertragungs-Regel-/Steuereinheit Daten an die elektronische Regel-/Steuereinheit 112 und/oder Fahrzeugsysteme (zum Beispiel das Ortungssystem 110) bereitstellen, dass das Fahrzeug 102 in einem Zustand einer Bewegung ist oder nicht ist.
-
Die Wegmesssensoren 116 können auch einen Fahrzeuggeschwindigkeitssensor (zum Beispiel Radgeschwindigkeitssensoren) und einen Bremssignalsensor umfassen, sind darauf aber nicht limitiert. Der Fahrzeuggeschwindigkeitssensor stellt Geschwindigkeitsdaten bezüglich des Fahrzeugs 102, wenn es im Betrieb ist, bereit. In anderen Worten stellt der Fahrzeuggeschwindigkeitssensor Daten an die elektronische Regel-/Steuereinheit 112 und/oder das Ortungssystem 110 bereit, dass das Fahrzeug 102 in einem Zustand einer Bewegung ist oder nicht ist. Der Bremssignalsensor kann Signale abtasten, welche von dem Fahrzeugbremssystem und/oder einen Bremslichtschalter gesendet werden, um zu bestimmen, wann die Fahrzeugbremsen durch den Fahrer betätigt werden oder gelöst werden. Der Bremssignalsensor kann auch Bremsklotzsensoren umfassen, welche Betätigungsdaten bereitstellen, jedes Mal wenn die Bremsklötze des Fahrzeugs 102 verwendet werden, um ein Fahrzeugbremsen bereitzustellen. Der Bremssignalsensor kann auch Informationen dazu bereitstellen, wann das Fahrzeug 102 in einem Zustand einer Bewegung ist oder nicht ist.
-
Das Fahrzeug 102 umfasst auch eine Kamera 118 zum Erhalten eines Kamerabilds einer Umgebung um das Fahrzeug 102. In einem Aspekt ist die Kamera 118 in einer nach vorne weisenden Orientierung angebracht, um ein Bild von einer Perspektive zu erhalten, welche zu der Perspektive des Fahrers ähnlich ist. Zum Beispiel kann die Kamera 118 nahe der Oberseite einer Windschutzscheibe des Fahrzeugs 102 angebracht sein. Die Kamera 118 kann eine digitale Kamera sein, welche in der Lage ist, digitale Bilder oder Videos mit hoher Qualität zu erhalten. In einem Aspekt kann die Kamera 118 in Bezug auf das Fahrzeug 102 kalibriert sein. Zum Beispiel kann die Kamera 118 durch Erhalten von Bildern eines Musters (zum Beispiel eines Schachbrettmusters) mit bekannten Abmessungen unter Verwendung der Kamera 118 kalibriert werden. Ein Kalibrieren der Kamera 118 kann Informationen bezüglich der Beziehung zwischen der Stellung der Kamera 118 und der Stellung des Fahrzeugs 102 bereitstellen.
-
Das Fahrzeug 102 kann eine Kartendatenbank 120 umfassen. In einem Aspekt der Offenbarung kann die Kartendatenbank 120 ein computerlesbares Speichermedium sein, welches dreidimensionale Kartendaten speichert. Die dreidimensionalen Kartendaten können über eine Kommunikationsvorrichtung 126 heruntergeladen oder aktualisiert werden. Zum Beispiel kann das Ortungssystem 110 mit einem Kartenserver (nicht gezeigt) kommunizieren, um dreidimensionale Kartendaten zu erhalten, um diese in der Kartendatenbank 120 zu speichern. In einem anderen Aspekt können die dreidimensionalen Kartendaten Datenpunkte entsprechend verschiedenen Merkmalen umfassen. Die Merkmale können sowohl ebene (zum Beispiel flache) Merkmale als auch Merkmale mit einer vertikalen Komponente umfassen. Zum Beispiel können die dreidimensionalen Kartendaten Merkmale umfassen, wie beispielsweise durchgängige und gestrichelte Spurmarkierungen, Spurbegrenzungen, Übergänge, Straßenmarkierungen und Verkehrsschilder, sind darauf aber nicht limitiert. Die Datenpunkte können einem Echtwelt-Merkmal an einem spezifischen Ort entsprechen, welcher durch dreidimensionale Koordinaten definiert ist. Die dreidimensionalen Kartendaten können ferner Bemerkungen umfassen, welche die Merkmale identifizieren und/oder Gruppen von Datenpunkten bereitstellen.
-
Mit Bezug nun auf 2 ist ein beispielhaftes Verfahren dargestellt, welches durch einen beispielhaften Aspekt des Ortungssystems 110 verwendet werden kann.
-
In Block 210 kann das Verfahren 200 ein Bestimmen einer Orts- und Stellungsschätzung für das Fahrzeug 102 umfassen. In einem anderen Aspekt kann die Orts- und Stellungsschätzung auf Daten basiert sein, welche von der GPS-Empfangseinheit 114 empfangen werden. Zum Beispiel kann die Orts- und Stellungsschätzung die GPS-Koordinaten sein, welche durch die GPS-Empfangseinheit 114 bestimmt werden. In einem anderen Aspekt kann eine Orts- und Stellungsschätzung nicht einen Faktor für jeden möglichen Freiheitsgrad eines Orts und einer Stellung aufweisen. Zum Beispiel kann die Orts- und Stellungsschätzung nicht einen Neigungs- oder Rollwert aufweisen oder kann einen Standardwert annehmen. In einem anderen Aspekt kann die Orts- und Stellungsschätzung auf einem zuvor bestimmten Ort und einer zuvor bestimmten Stellung basiert sein. Die Schätzung kann durch Anwenden von Informationen bezüglich einer Fahrzeugbewegung bestimmt werden, welche von den Wegmesssensoren 116 erhalten werden.
-
In Block 220 kann das Verfahren 200 ein Empfangen von dreidimensionalen Kartendaten auf Grundlage der Orts- und Stellungsschätzung umfassen. In einem Aspekt können die dreidimensionalen Kartendaten zum Beispiel von der Kartendatenbank 120 auf Grundlage der Orts- und Stellungsschätzung empfangen werden. Zum Beispiel kann die Kartendatenbank 120 alle Datenpunkte mit Orten innerhalb einer Grenzwertdistanz der Ortsschätzung bereitstellen. In einem anderen Aspekt können die Datenpunkte auch auf Grundlage der Stellungsschätzung ausgewählt werden. Zum Beispiel können nur Datenpunkte für Orte vor dem Fahrzeug auf Grundlage eines Gierungswertes empfangen werden.
-
In Block 230 kann das Verfahren 200 ein Empfangen eines Kamerabilds von einer fahrzeugmontierten Kamera umfassen. In einem Aspekt kann die Kamera 118 zum Beispiel das Kamerabild erhalten. Das Kamerabild kann ein momentanes Bild sein, welches durch die Kamera 118 zum Beispiel zu der Zeit erzeugt wird, zu welcher die Orts- und Stellungsschätzung erzeugt wird.
-
In Block 240 kann das Verfahren 200 optional ein Erzeugen von mehreren Partikeln für die Orts- und Stellungsschätzung des Fahrzeugs umfassen. In einem Aspekt kann zum Beispiel jeder Partikel durch eine Hypothese eines möglichen Orts und einer möglichen Stellung des Fahrzeugs 102 oder der Kamera 118 repräsentiert sein. Das heißt, jeder Partikel kann als Nord-, Ost-, Abwärts-, Gierungs-, Neigungs- und Rollkoordinaten für eine valide Position der Kamera repräsentiert sein. Jedem Partikel kann eine Wahrscheinlichkeit zugeordnet werden. Die Partikel können auf Grundlage der Orts- und Stellungsschätzung, Fahrzeug-Wegmessinformationen, einem Rauschen und einer Variation der Orts- und Stellungsschätzung und/oder zufälligen oder pseudozufälligen Faktoren erzeugt werden. Zum Beispiel kann der Prozessor 122 eine geschätzte Änderung in der Orts- und Stellungsschätzung von einem vorangehenden Ort und einer vorangehenden Stellung und den Fahrzeug-Wegmessinformationen bestimmen. Der Prozessor 122 kann dann zufällige oder pseudozufällige Skalierungsfaktoren auf die geschätzte Änderung anwenden, um eine Mehrzahl von plausiblen Hypothesen für einen neuen Ort und eine neue Stellung des Fahrzeugs zu erzeugen.
-
In Block
250 kann das Verfahren
200 ein Projizieren der dreidimensionalen Kartendaten auf das Kamerabild auf Grundlage der Orts- und Stellungsschätzung umfassen. In einem Aspekt kann der Prozessor
122 zum Beispiel die dreidimensionalen Kartendaten auf das Kamerabild auf Grundlage der Orts- und Stellungsschätzung projizieren. Im Allgemeinen kann ein Projizieren der dreidimensionalen Kartendaten auf das Kamerabild ein Bestimmen eines Pixels des Kamerabilds umfassen, wo ein Merkmal entsprechend einem dreidimensionalen Kartendatenpunkt erwartet werden würde, in dem Bild auf Grundlage der Orts- und Stellungsschätzung aufzutreten. Wie in größerem Detail nachfolgend mit Bezug auf
3 beschrieben werden wird, kann ein Projizieren der dreidimensionalen Kartendaten ein Konvertieren der Datenpunkte von einem Kartenraum oder Karten-Koordinatensystem in einen Kameraraum oder ein Kamera-Koordinatensystem beinhalten. Die Projektion kann intrinsische Kameraparameter verwenden, welche während einer Kalibrierung bestimmt worden sind. Zum Beispiel kann die Projektion eines Punktes P mit Koordinaten XXc = [Xc; Yc; Zc] in dem Kamera-Referenzrahmen auf einen Punkt P (x
p, y
p) durch die folgende Formel projiziert werden:
-
Der Ausdruck „fc“ kann ein 2×1 Vektor sein, welcher einen Brennweitenparameter anzeigt. Der Ausdruck „alpha_c“ kann ein Versatz-Koeffizient sein. Der Ausdruck „cc“ kann ein Hauptpunkt sein. Der Ausdruck „x
d“ kann eine normierte Bildprojektion nach einer Verzerrung wie durch die folgende Formel bereitgestellt sein:
-
Der Ausdruck „r“ kann durch r
2 = x
2 + y
2 definiert werden. Der Ausdruck „x(n)“ kann eine normierte Bildprojektion sein. Der Ausdruck dx kann ein tangentialer Verzerrungsvektor sein, welcher durch die folgende Formel angegeben wird:
-
Der Ausdruck „xn“ kann die normierte Bildprojektion sein, welche durch die folgende Formel angegeben wird:
-
In Block 260 kann das Verfahren 200 ein Vergleichen der projizierten dreidimensionalen Kartendaten mit dem Kamerabild umfassen. In einem Aspekt kann der Prozessor 122 zum Beispiel die projizierten dreidimensionalen Kartendaten mit dem Kamerabild vergleichen. In einem Aspekt kann das Vergleichen Fasen-Einpass-Techniken verwenden, um Ränder der dreidimensionalen Kartendaten mit Rändern des Kamerabilds zu vergleichen. Das Vergleichen kann auch ein Bestimmen einer Einpassmetrik umfassen, welche anzeigt, wie eng die projizierten dreidimensionalen Kartendaten zu dem Kamerabild passen oder mit diesen korrelieren.
-
In Block 270 kann das Verfahren 200 ein Bestimmen des Fahrzeugorts und der Fahrzeugstellung auf Grundlage des Vergleichens umfassen. In einem Aspekt kann der Prozessor 122 zum Beispiel den Fahrzeugort und die Fahrzeugstellung bestimmen. In einem Aspekt der Offenbarung kann ein Bestimmen des Fahrzeugorts und der Fahrzeugstellung ein Auswählen eines Partikels mit der besten Einpassmetrik umfassen. In einem alternativen Aspekt kann ein Bestimmen des Fahrzeugorts und der Fahrzeugstellung ein Bestimmen einer Korrektur an der Orts- und Stellungsschätzung auf Grundlage des Vergleichens umfassen.
-
Mit Bezug nun auf 3 ist ein beispielhaftes Verfahren 300 dargestellt, welches durch eine beispielhafte Variation des Ortungssystems 110 zum Projizieren von dreidimensionalen Kartendaten auf ein Kamerabild verwendet werden kann. In einem Aspekt kann das Verfahren 300 dem Block 250 des Verfahrens 200 entsprechen.
-
In Block 310 kann das Verfahren 300 ein Transformieren der dreidimensionalen Kartendaten aus einem Karten-Koordinatensystem in ein Fahrzeug-Koordinatensystem umfassen. In einem Aspekt der Offenbarung können die dreidimensionalen Kartendaten gemäß einem globalen Koordinatensystem gespeichert werden. Zum Beispiel kann jeder Datenpunkt der dreidimensionalen Kartendaten Nord-, Ost- und Abwärts-Koordinaten (NED-Koordinaten) umfassen. Die NED-Koordinaten können auf einem festen globalen Ursprung basieren. Das Fahrzeug-Navigationssystem kann ein anderes Koordinatensystem verwenden. Zum Beispiel kann das Fahrzeug-Navigationssystem einen Ursprung an einem Startort des Fahrzeugs 102 oder an einem momentanen Ort des Fahrzeugs 102 aufweisen. Der Prozessor 122 kann die empfangenen dreidimensionalen Kartendaten in das Fahrzeug-Koordinatensystem durch Anwenden einer Translation auf Grundlage der verschiedenen Ursprünge transformieren.
-
In Block 320 kann das Verfahren 300 ein Transformieren der Kartendaten aus dem Fahrzeug-Koordinatensystem in ein Kamera-Koordinatensystem umfassen. In einem Aspekt der Offenbarung kann das Kamera-Koordinatensystem in Bezug auf das Fahrzeug-Koordinatensystem rotiert sein. Zum Beispiel kann das Fahrzeug-Koordinatensystem im Wesentlichen eine Aufsicht oder eine Vogelperspektive sein, wohingegen das Kamera-Koordinatensystem im Wesentlichen eine nach vorne blickende Perspektive sein kann. Demgemäß kann eine Höhe in dem Fahrzeug-Koordinatensystem einer vertikalen Koordinate in einem Kamera-Koordinatensystem entsprechen und kann von einer Neigung der Kamera 118 in Bezug auf das Fahrzeug 102 abhängen. In ähnlicher Weise können die Nord- und Ost-Koordinaten von einer Stellung der Kamera 118 in Bezug auf das Fahrzeug 102 abhängen. Die Beziehung zwischen dem Fahrzeug-Koordinatensystem und dem Kamera-Koordinatensystem kann durch eine Kalibration der Kamera 118 unter Verwendung von Bildern von bekannten Mustern in bekannten Positionen hergestellt werden. Der Prozessor 122 kann dann die Kartendaten in dem Fahrzeug-Koordinatensystem in das Kamera-Koordinatensystem transformieren.
-
In Block 330 kann das Verfahren 300 ein Projizieren der dreidimensionalen Kartendaten aus dem Kamera-Koordinatensystem auf das Kamerabild umfassen. Ein Projizieren der dreidimensionalen Kartendaten kann die dreidimensionalen Kartendaten in zweidimensionale Punkte (zum Beispiel Pixel) konvertieren. Das Projizieren ist auf der Orts- und Stellungsschätzung für die Kamera basiert. In einem Aspekt der Offenbarung kann jeder Partikel eine Hypothese für den Ort und die Stellung darstellen und das Projizieren kann für jeden Partikel durchgeführt werden. In einem anderen Aspekt der Offenbarung kann eine einzelne Hypothesenschätzeinheit, wie beispielsweise ein Kalman-Filter, verwendet werden. Es sei erwähnt, dass zwei oder mehr der Transformationen, welche in Blöcken 310, 320 und 330 beschrieben worden sind, mathematisch kombiniert werden können, um eine einzelne Transformation zu erzeugen.
-
In Block 340 kann das Verfahren 300 optional ein Erweitern von projizierten Linien in den dreidimensionalen Kartendaten auf Grundlage eines Gradienten umfassen. In einem Aspekt der Offenbarung können die dreidimensionalen Kartendaten eine Linie als eine Reihe von Datenpunkten darstellen. Wenn die Datenpunkte in das Kamerabild projiziert werden, können die Datenpunkte nicht verbunden sein. Der Prozessor 122 kann einen Gradienten auf Grundlage von zwei oder mehr projizierten Datenpunkten (zum Beispiel Pixeln) bestimmen. Der Prozessor 122 kann dann die Linie durch Bestimmen von zusätzlichen Pixeln auf Grundlage des Gradienten erweitern. In einem Aspekt kann eine Linie zu einer Grenze des Kamerabilds auf Grundlage des Gradienten erweitert werden.
-
Mit Bezug nun auf 4 ist ein beispielhaftes Verfahren 400 dargestellt, welches durch eine beispielhafte Implementierung des Ortungssystems 110 für ein Vergleichen von projizierten dreidimensionalen Kartendaten mit dem Kamerabild verwendet werden kann. In einem Aspekt kann das Verfahren 400 dem Block 260 des Verfahrens 200 entsprechen.
-
In Block 410 kann das Verfahren 400 ein Durchführen einer Randerfassung an dem Kamerabild umfassen. Verschiedene Verfahren und Algorithmen zur Randerfassung sind in dem Gebiet von Bildverarbeitung bekannt und können durch den Prozessor 122 verwendet werden, um Ränder in dem Kamerabild zu erfassen. Allgemein können Randerfassungsalgorithmen Änderungen in Eigenschaften zwischen benachbarten Pixeln bestimmen, um Ränder zu identifizieren. In einem Aspekt erzeugt ein Durchführen einer Randerfassung einen Satz von Rändern und zugeordneten Orientierungen. In einem Aspekt der Offenbarung kann eine generische Randerfassungseinheit, wie beispielsweise die Canny-Randerfassungseinheit, verwendet werden. In einem anderen Aspekt kann die Randerfassungseinheit dazu eingerichtet sein, Ränder entlang von Straßenmarkierungen oder Straßenbegrenzungen unter Verwendung von zum Beispiel einem lenkbaren Filter zu erfassen. In einem anderen Aspekt kann eine Randerfassung auch ein Anwenden einer Nicht-Maxima-Unterdrückung umfassen, um Ausreißer zu entfernen. Es kann auch ein Hysterese-Grenzwert (Hysteresis thresholding) angewandt werden, um verbundene Ränder auszuwählen.
-
In Block 420 kann das Verfahren 400 optional ein Anwenden einer Maske auf eines oder beides aus den dreidimensionalen Kartendaten und dem Kamerabild umfassen. Die Maske kann eine Anzahl von Rändern für ein Vergleichen reduzieren. Zum Beispiel kann die Maske Ränder entfernen, welche durch lokale Minima hervorgerufen werden. Als ein anderes Beispiel, kann ein Anwenden einer Maske ein Identifizieren von verdeckenden Objekten und ein Anwenden der Maske auf die verdeckenden Objekte umfassen. Zum Beispiel, falls ein anderes Fahrzeug in dem Bild erfasst wird, kann eine Maske auf den Abschnitt des Bilds angewandt werden, welches durch das andere Fahrzeug blockiert wird, so dass Ränder des anderen Fahrzeugs nicht mit den projizierten dreidimensionalen Kartendaten verglichen werden.
-
In Block 430 kann das Verfahren 400 ein Bestimmen einer kürzesten Distanz zwischen Rändern des Kamerabilds und Rändern der projizierten Kartendaten umfassen. Die kürzeste Distanz kann als eine Fasen-Distanz bezeichnet werden. In einem Aspekt kann der Prozessor 122 die Pixelkoordinaten eines Rands des Kamerabilds mit Pixelkoordinaten des nächsten projizierten Kartendatenpunkts vergleichen. In einem Aspekt können die Ränder auf Grundlage einer Orientierung eingepasst werden. Zum Beispiel kann ein Rand nur mit einem Rand mit einer gleichen Orientierung eingepasst werden (zum Beispiel kann die Orientierung der angepassten Ränder innerhalb eines Grenzwinkels liegen). In einem Aspekt kann die Fasen-Distanz zwischen Rändern als eine Manhattan-Distanz gemessen werden (das heißt einer Summe einer horizontalen Distanz und einer vertikalen Distanz).
-
In Block 440 kann das Verfahren 400 ein Bestimmen einer Einpassmetrik für die projizierten Kartendaten umfassen. Die Einpassmetrik kann eine beliebige Metrik sein, welche ein Ausmaß einer Gleichheit zwischen den Rändern des Kamerabilds und den Rändern der projizierten Kartendaten anzeigt. In einem Aspekt kann die Einpassmetrik eine Summe der Fasen-Distanzen zwischen passenden Rändern sein. In einem Aspekt kann die Einpassmetrik auf einem Abschnitt der Ränder (zum Beispiel den nächsten 90%) basieren, um Ausreißer auszuschließen. Ferner können die maskierten Abschnitte des Kamerabilds und/oder die projizierten Kartendaten ausgeschlossen werden, wenn die Einpassmetrik bestimmt wird. Wie oben beschrieben, kann die Einpassmetrik in Block 270 des Verfahrens 200 verwendet werden, um einen besten Partikel als den momentanen Ort und die momentane Stellung des Fahrzeugs 102 oder der Kamera 118 auszuwählen.
-
Mit Bezug nun auf 5 bis 7, wird ein Beispiel eines Transformierens des Koordinatensystems der dreidimensionalen Kartendaten beschrieben werden. 5 stellt ein Beispiel von dreidimensionalen Kartendaten dar, wie sie gemäß einem Aspekt in einer Kartendatenbank gespeichert sind. Die dreidimensionalen Kartendaten umfassen eine Kreuzung oder zwei mehrspurige Straßen. Die Straßenbegrenzungen, Spurmarkierungen und Übergänge sind als Datenpunkte in den dreidimensionalen Kartendaten umfasst. Wie dargestellt, kann eine Nord-Koordinate der X-Achse zugeordnet werden, eine Ost-Koordinate der Y-Achse zugeordnet werden und eine Abwärts-Koordinate kann der Z-Achse zugeordnet werden. In dem dargestellten Beispiel können die Straßen nicht direkt nach Norden oder nach Osten verlaufen.
-
6 stellt ein Beispiel der dreidimensionalen Kartendaten in einem Fahrzeug-Koordinatensystem dar. Wie dargestellt in 6, kann das Fahrzeug 102 an dem Ursprung des Koordinatensystems angeordnet sein. Darüber hinaus kann die Achse des Koordinatensystems mit der Achse des Fahrzeugs 102 ausgerichtet sein. Demgemäß, wie dargestellt, können die Straßen mit den Achsen des Koordinatensystems ausgerichtet sein (unter der Annahme, dass das Fahrzeug entlang der Straße fährt). Zum Beispiel kann die X-Achse eine Distanz vor dem Fahrzeug 102 anzeigen, die Y-Achse eine Distanz zu der Seite des Fahrzeugs 102 anzeigen, und das Fahrzeug 102, und die Z-Achse kann eine Distanz über oder unter dem Fahrzeug 102 anzeigen. 7 stellt die dreidimensionalen Kartendaten in einem Kamera-Koordinatensystem dar. In diesem Fall kann die Kameraposition (welche dieselbe wie die Fahrzeugposition sein kann) an dem Ursprung des Koordinatensystems angeordnet sein. Das Kamera-Koordinatensystem kann eher aus einer nach vorne blickenden Perspektive sein als aus einer Vogelperspektive. Zum Beispiel, wie dargestellt, kann die X-Achse einer Distanz zu der Seite der Kamera entsprechen, die Y-Achse kann einer Distanz über oder unter der Kamera entsprechen und die Z-Achse kann einer Distanz vor der Kamera entsprechen. Die Transformationen zwischen den Koordinatensystemen können durch den Prozessor 122 unter Verwendung von linearen Transformationen auf Grundlage der verwendeten spezifischen Koordinatensysteme bestimmt werden.
-
Mit Bezug nun auf 8 bis 10, wird ein Beispiel einer Randeinpassung beschrieben werden. 8 stellt ein Beispiel eines Kamerabilds 800 dar. Das Kamerabild 800 kann von der Kamera 118 erhalten werden und kann aus einer Perspektive ähnlich der Perspektive eines Fahrers des Fahrzeugs 102 sein. In einem Aspekt kann das Kamerabild in 8 ein Bild von der gleichen Kreuzung sein, wie in den dreidimensionalen Kartendaten, welche in 5 bis 7 dargestellt sind. 9 stellt die dreidimensionalen Kartendaten auf das Kamerabild 800 gemäß einem ersten Partikel oder einer ersten Orts- und Stellungsschätzung projiziert dar. Wie dargestellt, können die projizierten Datenpunkte 900 der dreidimensional Kartendaten als individuelle Pixel in dem Kamerabild projiziert werden.
-
10 stellt ein Beispiel des Kamerabilds 800 und von projizierten Datenpunkten 900 nach einem Maskieren und Erweitern von Linien dar. Zum Beispiel kann die Maske 1010 lokale Minima in dem Kamerabild 800 entfernen, welche durch Risse in der Straße hervorgerufen werden. Als ein anderes Beispiel kann die Maske 1020 ein anderes Fahrzeug auf der Straße entfernen (welches nicht in den Kartendaten wäre). Ferner können individuelle Punkte der projizierten Datenpunkte 900 durch Erweitern der Linien verbunden werden. Wie dargestellt in 10, können die projizierten Datenpunkte 900 im Allgemeinen mit den Straßenmarkierungen und Straßenbegrenzungen in dem Kamerabild 800 ausgerichtet werden. Im Gegenteil dazu, stellt 11 einen anderen Satz von projizierten Datenpunkten 1100 auf Grundlage eines unterschiedlichen Partikels oder einer unterschiedlichen Orts- und Stellungsschätzung dar. Wie in 11 dargestellt, können die projizierten Datenpunkte 1100 im Wesentlichen nach vorne und nach links von den Landmarken und Fahrbahnbegrenzungen des Kamerabilds 800 verlagert sein. Demgemäß kann der Prozessor 122 auf Grundlage einer Einpassmetrik bestimmen, dass der Partikel, welcher den projizierten Datenpunkten 900 entspricht, ein besserer Partikel ist als der Partikel, welcher den projizierten Datenpunkten 1100 entspricht. Daher kann der Prozessor 122 bestimmen, dass der Ort und die Stellung des Partikels, welcher den projizierten Datenpunkten 900 entspricht, der momentane Ort und die momentane Stellung des Fahrzeugs 102 oder der Kamera 118 ist.
-
12 stellt Beispiele von passenden Rändern auf Grundlage einer Orientierung der Ränder dar. In dem Beispiel auf der linken Seite, können die Ränder ohne Betrachtung einer Orientierung eingepasst werden. Demgemäß kann der Schablonen (template) - Randpunkt mit einem entsprechenden Bildrandpunkt auf Grundlage der kürzesten Distanz eingepasst werden. Ein Einpassen ohne Betrachten einer Orientierung kann zu mehreren Schablonenpunkten, welche mit den gleichen Bildrandpunkten eingepasst sind, und einer generellen Unterschätzung einer Einpassmetrik führen. In dem Beispiel auf der rechten Seite, können die Ränder unter Betrachtung einer Orientierung eingepasst werden. Demgemäß kann jeder Schablonenrandpunkt mit einem entsprechenden Bildrandpunkt mit einer ähnlichen Orientierung eingepasst werden. Zum Beispiel kann die Orientierung der Ränder innerhalb eines Grenzwinkels voneinander liegen. Wie in dem Beispiel auf der rechten Seite dargestellt, kann der entsprechende Bildrandpunkt mit einer ähnlichen Orientierung weiter weg sein als der nächste Randpunkt. Jedoch kann die Distanz, welche in dem Beispiel auf der rechten Seite dargestellt ist, eine genauere Metrik für ein Bestimmen der Korrelation des Schablonenrands und des Bildrands sein.
-
Aspekte der vorliegenden Offenbarung können unter Verwendung von Hardware, Software oder einer Kombination davon implementiert werden und können in einem oder mehreren Computersystemen oder anderen Verarbeitungssystemen implementiert werden. In einem Aspekt ist die Offenbarung auf ein oder mehrere Computersysteme gerichtet, welche in der Lage sind, die hierin beschriebene Funktionalität auszuführen. Ein Beispiel eines solchen Computersystems 1300 ist in 13 gezeigt.
-
13 präsentiert ein beispielhaftes Systemdiagramm von verschiedenen Hardwarekomponenten und anderen Merkmalen zur Verwendung im Einklang mit einem Aspekt der vorliegenden Offenbarung. Aspekte der vorliegenden Offenbarung können unter Verwendung von Hardware, Software oder einer Kombination davon implementiert werden und können in einem oder mehreren Computersystemen oder anderen Verarbeitungssystemen implementiert werden. In einer beispielhaften Variation sind Aspekte der Offenbarung auf ein oder mehrere Computersysteme gerichtet, welche in der Lage sind, die hierin beschriebene Funktionalität auszuführen. Ein Beispiel eines solchen Computersystems 1300 ist in 13 gezeigt.
-
Ein Computersystem 1300 umfasst einen oder mehrere Prozessoren, wie beispielsweise einen Prozessor 1304. Der Prozessor 1304 ist mit einer Kommunikationsinfrastruktur 1306 verbunden (zum Beispiel einem Kommunikations-Bus, einer Crossover-Schiene oder einem Netzwerk).
-
Verschiedene Softwareaspekte werden hierin im Zuge dieses beispielhaften Computersystems beschrieben. Nach dem Lesen dieser Beschreibung wird es einem Fachmann auf dem relevanten Gebiet bzw. auf den relevanten Gebieten klar werden, wie Aspekte der Offenbarung unter Verwendung anderer Computersysteme und/oder Architekturen zu implementieren sind.
-
Ein Computersystem 1300 kann eine Anzeigeschnittstelle 1302 umfassen, welche Grafiken, Text und andere Daten von der Kommunikationsinfrastruktur 1306 (oder von einem nicht gezeigten Rahmenpuffer) zur Anzeige an einer Anzeigeeinheit 1330 weiterleitet. Ein Computersystem 1300 umfasst auch einen Hauptspeicher 1308, vorzugsweise einen Random Access Memory (RAM) und kann auch einen Zweitspeicher 1310 umfassen. Der Zweitspeicher 1310 kann zum Beispiel eine Festplatte 1312 und/oder ein entfernbares Speicherlaufwerk 1314 umfassen, welches durch eine Diskette, ein magnetisches Bandlaufwerk, ein optisches Laufwerk etc. dargestellt ist. Das entfernbare Speicherlaufwerk 1314 liest von und/oder schreibt auf eine entfernbare Speichereinheit 1318 in einer allgemein bekannten Weise. Eine entfernbare Speichereinheit 1318, repräsentiert eine Diskette, ein magnetisches Band, eine optische Diskette etc., welche durch das entfernbare Speicherlaufwerk 1314 gelesen und beschrieben wird. Es ist offensichtlich, dass die entfernbare Speichereinheit 1318 ein durch einen Computer verwendbares Speichermedium mit darin gespeicherter Computersoftware und/oder Daten umfasst.
-
In alternativen Aspekten kann der Zweitspeicher 1310 andere ähnliche Vorrichtungen umfassen, um Computerprogrammen oder anderen Anweisungen zu erlauben, in das Computersystem 1300 geladen zu werden. Derartige Vorrichtungen können zum Beispiel eine entfernbare Speichereinheit 1322 und eine Schnittstelle 1320 umfassen. Beispiele davon können einen Programmeinsatz und eine Einsatzschnittstelle (wie beispielsweise diejenige, welche in Videospielevorrichtungen gefunden wird), einen entfernbaren Speicherchip (wie beispielsweise einen erasable programmable read only memory (EPROM) oder einen programmable read only memory (PROM)) und einen zugehörigen Sockel und andere entfernbare Speichereinheiten 1322 und Schnittstellen 1320 umfassen, welche einer Software und Daten erlauben, von der entfernbaren Speichereinheit 1322 auf ein Computersystem 1300 transferiert zu werden.
-
Ein Computersystem 1300 kann auch eine Kommunikationsschnittstelle 1324 umfassen. Eine Kommunikationsschnittstelle 1324 erlaubt einer Software und Daten, zwischen einem Computersystem 1300 und externen Vorrichtungen transferiert zu werden. Beispiele einer Kommunikationsschnittstelle 1324 können ein Modem, eine Netzwerkschnittstelle (wie beispielsweise eine Ethernet-Karte), einen Kommunikationsanschluss, einen Slot und eine Karte einer Personal Computer Memory Card International Association (PCMCIA) etc. umfassen. Eine Software und Daten, welche über eine Kommunikationsschnittstelle 1324 transferiert werden, liegen in der Form von Signalen 1328 vor, welche elektronische, elektromagnetische, optische oder andere Signale sein können, welche in der Lage sind, durch eine Kommunikationsschnittstelle 1324 empfangen zu werden. Diese Signale 1328 werden an eine Kommunikationsschnittstelle 1324 über einen Kommunikationspfad (zum Beispiel einen Kanal) 1326 bereitgestellt. Dieser Pfad 1326 trägt Signale 1328 und kann unter Verwendung eines Drahts oder Kabels, optischen Fasern, einer Telefonleitung, einer Mobilfunkverbindung, einer Radiofrequenz (RF) - Verbindung und/oder anderen Kommunikationskanälen implementiert werden. In diesem Dokument werden die Ausdrücke „Computerprogramm-Medium“ und „computerverwendbares Medium“ verwendet, um sich allgemein auf Medien zu beziehen, wie beispielsweise ein entfernbares Speicherlaufwerk 1380, eine Festplatte, welche in einem Festplattenlaufwerk 1370 installiert ist, und Signale 1328. Diese Computerprogrammprodukte stellen eine Software an das Computersystem 1300 bereit. Aspekte der Offenbarung sind auf solche Computerprogrammprodukte gerichtet.
-
Computerprogramme (auch bezeichnet als eine Computer-Regel/SteuerLogik) sind in einem Hauptspeicher 1308 und/oder einem Zweitspeicher 1310 gespeichert. Computerprogramme können auch über eine Kommunikationsschnittstelle 1324 empfangen werden. Derartige Computerprogramme ermöglichen dem Computersystem 1300, wenn sie ausgeführt werden, verschiedene Merkmale im Einklang mit Aspekten der vorliegenden Offenbarung, wie hierin beschrieben, durchzuführen. Insbesondere ermöglichen die Computerprogramme, wenn sie ausgeführt werden, dem Prozessor 1310, derartige Merkmale auszuführen. Demgemäß stellen derartige Computerprogramme Regel-/Steuereinheiten des Computersystems 1300 dar.
-
In Variationen, in welchen Aspekte der Offenbarung unter Verwendung von Software implementiert sind, kann die Software in einem Computerprogramm Produkt gespeichert werden und in ein Computersystem 1300 unter Verwendung eines entfernbaren Speicherlaufwerks 1314, einer Festplatte 1312 oder einer Kommunikationsschnittstelle 1320 geladen werden. Die Regel-/Steuerlogik (Software) veranlasst den Prozessor 1304, wenn sie durch den Prozessor 1304 ausgeführt wird, die Funktionen im Einklang mit Aspekten der Offenbarung, wie hierin beschrieben, durchzuführen. In einer anderen Variation werden Aspekte vorrangig in Hardware unter Verwendung von zum Beispiel Hardwarekomponenten implementiert, wie beispielsweise Application Specific Integrated Circuits (ASICs). Eine Implementierung der Hardware-Zustandsmaschine („hardware state machine“), um die hierin beschriebenen Funktionen durchzuführen, wird einem Fachmann auf dem Gebiet bzw. auf den Gebieten klar werden.
-
In noch einer anderen beispielhaften Variation werden Aspekte der Offenbarung unter Verwendung einer Kombination von sowohl Hardware als auch Software implementiert.
-
14 ist ein Blockdiagramm von verschiedenen beispielhaften Systemkomponenten im Einklang mit einem Aspekt der vorliegenden Offenbarung. 14 zeigt ein Kommunikationssystem 1400, welches im Einklang mit der vorliegenden Offenbarung verwendbar ist. Das Kommunikationssystem 1400 umfasst einen oder mehrere Zugriffsberechtigte 1460, 1462 (in einer austauschbaren Weise hierin auch als ein oder mehrere „Benutzer“ bezeichnet) und ein oder mehrere Endgeräte („Terminal“) 1442, 1466. In einem Aspekt sind Daten zur Verwendung im Einklang mit Aspekten der vorliegenden Offenbarung zum Beispiel eine Eingabe und/oder ein Zugriff durch Zugriffsberechtigte 1460, 1462 über Endgeräte 1442, 1466, wie beispielsweise Personal Computer (PCs), Minicomputer, Mainframe-Computer, Mikrocomputer, telefonische Vorrichtungen oder drahtlose Vorrichtungen, wie beispielsweise personelle digitale Assistenten („PDAs“) oder handgehaltene drahtlose Vorrichtungen, welche mit einem Server 1443 gekoppelt sind, wie beispielsweise einem PC, einem Minicomputer, einem Mainframe-Computer, eine Mikrocomputer oder einer anderen Vorrichtung mit einem Prozessor und einem Speicher für Daten und/oder eine Verbindung mit einem Speicher für Daten über zum Beispiel ein Netzwerk 1444, wie beispielsweise dem Internet oder einem Intranet, und Kopplungen 1445, 1446, 1464. Die Kopplungen 1445, 1446, 1464 umfassen zum Beispiel kabelgebundene, kabellose oder faseroptische Verbindungen. In einer anderen beispielhaften Variation arbeitet das Verfahren und das System im Einklang mit Aspekten der vorliegenden Offenbarung in einer Stand-Alone-Umgebung, wie beispielsweise an einem einzelnen Endgerät.
-
Die Aspekte der Offenbarung, welche hierin beschrieben wird, können auch in dem Kontext eines computerlesbaren Speichermediums, welches computerausführbare Anweisungen speichert, beschrieben und implementiert werden. Computerlesbare Speichermedien umfassen Computer-Speichermedien und Kommunikationsmedien. Zum Beispiel Flash-Speicherlaufwerke, Digital Versatile Disks (DVDs), Compact Disks (CDs), Disketten, und Bandkassetten. Computerlesbare Speichermedien können flüchtige und nicht-flüchtige, entfernbare und nicht-entfernbare Medien umfassen, welche in einem beliebigen Verfahren oder einer beliebigen Technologie zum Speichern von Informationen implementiert werden, wie beispielsweise computerlesbare Anweisungen, Datenstrukturen, Module oder andere Daten.
-
Es ist offensichtlich, dass verschiedene Implementierungen des oben offenbarten und andere Merkmale und Funktionen oder Alternativen oder Variierungen davon nach Wunsch in vielen anderen unterschiedlichen Systemen oder Anwendungen kombiniert werden können. Auch, dass verschiedene derzeit unvorhersehbare oder nicht angenommene Alternativen, Modifikationen, Variationen oder Verbesserungen hierin nachfolgend durch einen Fachmann gemacht werden können, welche auch bestimmt sind, durch die folgenden Ansprüche umfasst zu sein.
-
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
-