-
GEGENSTAND DER ERFINDUNG
-
Diese Beschreibung betrifft allgemein den Betrieb von Fahrzeugen und speziell die Objektverfolgung.
-
STAND DER TECHNIK
-
Erweiterte Objektverfolgung (EOT) bezieht sich auf das Verfolgen von Objekten aus der realen Welt, wenn mehr als ein Rückkehrpunkt pro Objekt vorhanden ist. Mit dem Aufkommen und der Verwendung von hochauflösenden Sensoren in Automobilanwendungen zur Erkennung von Objekten sind mehrere Rückkehrpunkte pro Objekt geläufig. Mehrere Rückkehrpunkte pro Objekt ermöglichen Rückschlüsse auf die Form und Größe des Objekts und seinen Bewegungszustand (z. B. Position, Geschwindigkeit und Bewegungsrichtung). EOT gruppiert mehrere Rückkehrpunkte zusammen, indem es einen Begrenzungsrahmen um die gruppierten Rückkehrpunkte zeichnet und die Rückkehrpunkte oder eine Masse von Rückkehrpunkten über die Zeit verfolgt. Einige Herausforderungen der bestehenden EOT-Lösungen enthalten, sind aber nicht beschränkt auf: 1) Gruppieren von Rückkehrpunkten desselben Objekts und nicht Gruppieren von Rückkehrpunkten, die zu verschiedenen Objekten gehören; 2) Verknüpfen neuer Rückkehrpunkte mit vorhandenen Spuren; 3) Aktualisieren vorhandener Spuren basierend auf einer neuen Menge von Rückkehrpunkten; und 4) Erkennen und Zurückweisen von Rückkehrpunkten, die Rauschen sind.
-
KURZDARSTELLUNG
-
Es werden Techniken zur erweiterten Objektverfolgung unter ausschließlicher Verwendung von RADAR-Rückkehrpunkten bereitgestellt. Diese Techniken beinhalten:
- Empfangen von Rückkehrpunkten aus mindestens einem RADAR-Sensor eines Fahrzeugs unter Verwendung eines oder mehrerer Prozessoren des Fahrzeugs; Erzeugen eines oder mehrerer Cluster der Rückkehrpunkte unter Verwendung des einen oder der mehreren Prozessoren;
- Berechnen einer geschätzten Position und Geschwindigkeit jedes des einen oder der mehreren Cluster unter Verwendung des einen oder der mehreren Prozessoren; Bestimmen, ob der eine oder die mehreren Cluster mit einer vorhandenen Objektspur verknüpft sind, unter Verwendung des einen oder der mehreren Prozessoren; und gemäß des einen oder der mehreren Cluster, die mit einer vorhandenen Objektspur verknüpft sind, Aktualisieren der vorhandenen Objektspur unter Verwendung mindestens der jeweiligen Positionen des einen oder der mehreren Cluster, die mit der vorhandenen Objektspur verknüpft sind.
-
In einer Ausführungsform werden die Rückkehrpunkte herausgefiltert, die mehr als eine Schwellenentfernung von einem früheren Kartenmerkmal, wie z. B. einer Straßengrenze, entfernt sind.
-
In einer Ausführungsform werden die Rückkehrpunkte herausgefiltert, die egobewegungskompensierte Distanzänderungen kleiner als eine Schwellendistanzänderung aufweisen.
-
In einer Ausführungsform werden vor dem Erzeugen des einen oder der mehreren Cluster Rückkehrpunkte für mehrere RADAR-Zeitschritte oder -rahmen akkumuliert, um die Punktdichte der RADAR-Punktwolke zu erhöhen.
-
In einer Ausführungsform umfasst das Erzeugen des einen oder der mehreren Cluster der Rückkehrpunkte das Clustern der Rückkehrpunkte unter Verwendung von dichtebasiertem, räumlichem Clustern, wie z. B. DBSCAN.
-
In einer Ausführungsform verwendet das dichtebasierte, räumliche Clustern eine elliptische Region um die Rückkehrpunkte herum, um den einen oder die mehreren Cluster zu erweitern, und der elliptische Bereich weist eine Hauptachse auf, die parallel zum Verkehrsfluss verläuft.
-
In einer Ausführungsform wird nach dem Erzeugen des einen oder der mehreren Cluster eine Länge, Breite und ein Mittelpunkt jedes Clusters berechnet, wobei der Mittelpunkt eine repräsentative Position des Clusters ist und alle zum Cluster gehörenden Rückkehrpunkte als im Mittelpunkt konzentriert angenommen werden.
-
In einer Ausführungsform wird der Mittelpunkt mittels eines Begrenzungsrahmens bestimmt, der unter Verwendung der Extrempunkte des Clusters um den Cluster herum angepasst wird.
-
In einer Ausführungsform wird eine Bewegungsrichtung für jeden des einen oder der mehreren Cluster unter Verwendung der jeweiligen Geschwindigkeiten des einen oder der mehreren Cluster berechnet.
-
In einer Ausführungsform wird die Länge als eine maximale Entfernung zwischen den Rückkehrpunkten in einer Richtung der Bewegungsrichtung definiert.
-
In einer Ausführungsform wird die Breite als eine maximale Entfernung zwischen den Rückkehrpunkten definiert, die rechtwinklig zur Bewegungsrichtung liegen.
-
In einer Ausführungsform werden die Rückkehrpunkte vor der Berechnung der Länge, Breite und des Mittelpunkts an einer Achse eines globalen Bezugsframes ausgerichtet.
-
In einer Ausführungsform Bestimmen, ob jeder des einen oder der mehreren Cluster mit einer bestehenden Objektspur verknüpft ist, durch Berechnen von Differenzen zwischen den jeweiligen geschätzten Positionen und Geschwindigkeiten des einen oder der mehreren Cluster und einer vorhergesagten Position und Geschwindigkeit der vorhandenen Objektspur, und Bestimmen, ob die Differenzen unter den jeweiligen Schwellenwerten für die Position und Geschwindigkeit liegen.
-
In einer Ausführungsform umfasst das Berechnen der geschätzten Geschwindigkeit jedes des einen oder der mehreren Cluster ferner das Schätzen der Geschwindigkeit des Clusters unter Verwendung eines oder mehrerer Filter rekursiver kleinster Quadrate (RLS).
-
In einer Ausführungsform Vergleichen der aktualisierten geschätzten Geschwindigkeit jedes des einen oder der mehreren Cluster mit einer Schwellengeschwindigkeit, und wenn die aktualisierte geschätzte Geschwindigkeit die Schwellengeschwindigkeit überschreitet, Filtern des Rückkehrpunkts, der dazu geführt hat, dass die aktualisierte geschätzte Geschwindigkeit die Schwellengeschwindigkeit überschreitet.
-
In einer Ausführungsform wird eine Gruppe von RLS-Filtern zum Schätzen von Clustergeschwindigkeiten verwendet, wobei die Geschwindigkeit jedes RLS-Filters unter Verwendung der aus einer Clusterakkumulationshistorie berechneten Geschwindigkeit initialisiert wird, die durch Schätzen, wie viel sich die Rückkehrpunkte bewegt haben, dividiert durch den Zeitunterschied zwischen den Zeitschritten oder Frames, erhalten wird. Außerdem werden die Rückkehrpunkte in den Clustern so gemischt, dass sie in unterschiedlichen zufälligen Reihenfolgen vorliegen, um die Gruppe der RLS-Filter zu aktualisieren.
-
Wenn in einer Ausführungsform zwei oder mehr Cluster mit der vorhandenen Objektspur verknüpft sind, werden die Rückkehrpunkte der zwei oder mehr Cluster zu einem einzelnen, größeren Cluster zusammengefasst und die geschätzte Position und Geschwindigkeit des einzelnen, größeren Clusters berechnet.
-
Wenn in einer Ausführungsform der eine oder die mehreren Cluster nicht mit einer vorhandenen Objektspur verknüpft sind, wird eine neue Objektspur mit der Position und Geschwindigkeit des Clusters initialisiert, und der Länge und Breite der Spur werden vordefinierte Werte zugewiesen.
-
In einer Ausführungsform wird der Zustand der vorhandenen Objektspur unter Verwendung eines Kalman-Filters aufrechterhalten und aktualisiert, und der Zustand enthält die geschätzte Position, Geschwindigkeit, Länge und Breite des verfolgten Objekts.
-
In einer Ausführungsform ist das Kalman-Filter ein lineares Kalman-Filter, das ein Bewegungsmodell mit konstanter Geschwindigkeit zur Modellvorhersage verwendet.
-
In einer Ausführungsform wird die geschätzte Geschwindigkeit des Clusters dazu verwendet, den Geschwindigkeitszustand des Kalman-Filters zu aktualisieren.
-
Wenn in einer Ausführungsform die vorhandene Objektspur nicht mit einem Cluster für N Iterationen verknüpft ist, wird die vorhandene Objektspur abgebrochen (z. B. aus dem Speicher gelöscht).
-
Eine oder mehrere der offenbarten Ausführungsformen bieten einen oder mehrere der folgenden Vorteile. Die EOT-Ausführungsformen: 1) bieten eine genaue Berechnung der Ausmaße (Länge und Breite) der Objekte zusätzlich zu ihrer Position und Geschwindigkeit; 2) erzielen eine bessere Verfolgung von langen Objekten wie Lastwagen und Bussen, die mit mehreren Clustern verknüpft sein können; 3) erzielen eine bessere Verfolgung von Objekten, die die Fahrtrichtung ändern; 4) weisen eine geringere Abhängigkeit von der Genauigkeit des Clusteralgorithmus auf; und 5) liefern genaue momentane Geschwindigkeitsschätzungen, die die Berechnung für die Verfolgungsverwaltung reduzieren, da eine LKF anstelle ihres nichtlinearen Gegenstücks verwendet wird.
-
Diese und andere Aspekte, Merkmale und Implementierungen können als Verfahren, Vorrichtungen, Systeme, Komponenten, Programmprodukte, Einrichtungen oder Schritte zum Ausführen einer Funktion und auf andere Weise ausgedrückt werden.
-
Diese und andere Aspekte, Merkmale und Implementierungen werden aus den folgenden Beschreibungen einschließlich der Ansprüche ersichtlich.
-
Figurenliste
-
- 1 zeigt ein Beispiel für ein autonomes Fahrzeug (AF) mit autonomer Fähigkeit gemäß einer oder mehreren Ausführungsformen.
- 2 veranschaulicht ein Beispiel für eine „Cloud“-Computing-Umgebung gemäß einer oder mehreren Ausführungsformen.
- 3 veranschaulicht ein Computersystem gemäß einer oder mehreren Ausführungsformen.
- 4 zeigt ein Beispiel für die Architektur eines AF gemäß einer oder mehreren Ausführungsformen.
- 5 zeigt ein Beispiel für Eingaben und Ausgaben, die durch ein Wahrnehmungsmodul gemäß einer oder mehreren Ausführungsformen verwendet werden können.
- 6 zeigt ein Beispiel für ein LiDAR-System gemäß einer oder mehreren Ausführungsformen.
- 7 zeigt das LiDAR-System im Betrieb gemäß einer oder mehreren Ausführungsformen.
- 8 zeigt die Funktionsweise des LiDAR-Systems in zusätzlicher Detaillierung gemäß einer oder mehreren Ausführungsformen.
- 9 zeigt ein Blockdiagramm der Zusammenhänge zwischen Eingaben und Ausgaben eines Planungsmoduls gemäß einer oder mehreren Ausführungsformen.
- 10 zeigt einen gerichteten Graphen, der bei der Bahnplanung gemäß einer oder mehreren Ausführungsformen verwendet wird.
- 11 zeigt ein Blockdiagramm der Ein- und Ausgaben eines Steuermoduls gemäß einer oder mehreren Ausführungsformen.
- 12 zeigt ein Blockdiagramm der Eingaben, Ausgaben und Komponenten einer Steuervorrichtung gemäß einer oder mehreren Ausführungsformen.
- 13A ist ein Flussdiagramm eines Vorgangs zur erweiterten Objektverfolgung unter Verwendung von RADAR gemäß einer oder mehreren Ausführungsformen.
- 13B veranschaulicht die Schritte zum Schätzen des Mittelpunkts eines Clusters gemäß einer Ausführungsform.
- 14 veranschaulicht, wie die Geschwindigkeit und Bewegungsrichtung eines Rückkehrpunktes in einem globalen Koordinatensystem gemäß einer oder mehreren Ausführungsformen definiert ist.
- 15 ist ein Blockdiagramm, das die Schätzung der Clustergeschwindigkeit unter Verwendung einer Gruppe von Filtern rekursiver kleinster Quadrate (RLS) gemäß einer oder mehreren Ausführungsformen veranschaulicht.
- 16A-16C veranschaulichen Begrenzungsrahmen, die unter Verwendung der erweiterten Objektverfolgung unter Verwendung von RADAR gemäß einer oder mehreren Ausführungsformen erstellt wurden.
- 17 ist ein Flussdiagramm eines Vorgangs zur erweiterten Objektverfolgung unter ausschließlicher Verwendung von RADAR-Rückkehrpunkten gemäß einer oder mehreren Ausführungsformen.
- 18 ist ein Flussdiagramm eines Vorgangs zum Berechnen der momentanen Geschwindigkeit eines Clusters gemäß einer oder mehreren Ausführungsformen.
-
DETAILLIERTE BESCHREIBUNG
-
In der folgenden Beschreibung werden zum Zweck der Erklärung zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung zu ermöglichen. Es wird jedoch offensichtlich, dass die vorliegende Erfindung ohne diese spezifischen Details umgesetzt werden kann. In anderen Fällen werden bekannte Strukturen und Vorrichtungen in Blockdiagrammform dargestellt, um eine unnötige Verschleierung der vorliegenden Erfindung zu vermeiden.
-
Zur leichteren Beschreibung sind in den Zeichnungen spezifische Anordnungen oder Reihenfolgen von schematischen Elementen abgebildet, wie z. B. solche, die Vorrichtungen, Module, Anweisungsblöcke und Datenelemente darstellen. Der Fachmann sollte jedoch verstehen, dass die spezifische Reihenfolge oder Anordnung der schematischen Elemente in den Zeichnungen nicht bedeuten soll, dass eine bestimmte Reihenfolge oder Sequenz der Bearbeitung oder eine Trennung der Prozesse erforderlich ist. Ferner soll die Aufnahme eines schematischen Elements in eine Zeichnung nicht bedeuten, dass dieses Element in allen Ausführungsformen erforderlich ist oder dass die durch dieses Element dargestellten Merkmale in einigen Ausführungsformen nicht in andere Elemente aufgenommen oder mit anderen Elementen kombiniert werden dürfen.
-
Ferner ist in den Zeichnungen, in denen Verbindungselemente, wie beispielsweise durchgezogene oder gestrichelte Linien oder Pfeile verwendet werden, um eine Verbindung, Beziehung oder Verknüpfung zwischen oder unter zwei oder mehreren anderen schematischen Elementen darzustellen, das Fehlen solcher Verbindungselemente nicht so zu verstehen, dass keine Verbindung, Beziehung oder Verknüpfung bestehen kann. Mit anderen Worten werden einige Verbindungen, Beziehungen oder Verknüpfungen zwischen Elementen in den Zeichnungen nicht dargestellt, um die Offenbarung nicht zu verschleiern. Zur leichteren Veranschaulichung wird außerdem ein einzelnes Verbindungselement verwendet, um mehrere Verbindungen, Beziehungen oder Verknüpfungen zwischen Elementen darzustellen. Wenn zum Beispiel ein Verbindungselement eine Kommunikation von Signalen, Daten oder Anweisungen darstellt, sollte der Fachmann verstehen, dass ein solches Element einen oder mehrere Signalpfade (z. B. einen Bus) darstellt, je nachdem, was erforderlich ist, um die Kommunikation zu bewirken.
-
Im Folgenden wird im Detail Bezug auf Ausführungsformen genommen, deren Beispiele in den begleitenden Zeichnungen veranschaulicht sind. In der folgenden detaillierten Beschreibung werden zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis der verschiedenen beschriebenen Ausführungsformen zu ermöglichen. Jedoch wird für einen durchschnittlichen Fachmann deutlich sein, dass die verschiedenen beschriebenen Ausführungsformen auch ohne diese spezifischen Details umgesetzt werden können. In anderen Fällen sind allgemein bekannte Verfahren, Vorgehensweisen, Komponenten, Schaltungen und Netzwerke nicht ausführlich beschrieben, um eine unnötige Verschleierung der Aspekte der Ausführungsformen zu vermeiden.
-
Im Folgenden werden mehrere Merkmale beschrieben, die jeweils unabhängig voneinander oder in einer beliebigen Kombination anderer Merkmale verwendet werden können. Allerdings kann es sein, dass ein einzelnes Merkmal keines der oben erörterten Probleme oder nur eines der oben erörterten Probleme anspricht. Einige der oben erörterten Probleme werden möglicherweise durch keines der hier beschriebenen Merkmale vollständig angesprochen. Auch wenn Überschriften angegeben sind, können Informationen, die sich auf eine bestimmte Überschrift beziehen, aber nicht in dem Abschnitt mit dieser Überschrift zu finden sind, auch an anderer Stelle in dieser Beschreibung gefunden werden. Ausführungsformen werden hier gemäß der folgenden Übersicht beschrieben:
- 1. Allgemeiner Überblick
- 2. Systemübersicht
- 3. Architektur autonomer Fahrzeuge
- 4. Eingaben autonomer Fahrzeuge
- 5. Planung autonomer Fahrzeuge
- 6. Steuerung autonomer Fahrzeuge
- 7. Erweiterte Objektverfolgung nur mittels RADAR
-
Allgemeiner Überblick
-
Ein autonomes Fahrzeug (AF) verwendet RADAR-Sensoren nur zum Erkennen und Verfolgen von Objekten und der Entfernungen zu den Objekten in seiner Betriebsumgebung, um Kollisionen mit den Objekten zu vermeiden. Die hier offenbarte Technologie zur erweiterten Objektverfolgung (EOT) schätzt die Länge und Breite von Objekten zusätzlich zur Position und Geschwindigkeit der Objekte. Die EOT wird mithilfe einer Verarbeitungskette implementiert, die grob in vier Teile gegliedert ist: 1) Vorverarbeitung, 2) Clustern, 3) Schätzung der Clustergeschwindigkeit und 4) Cluster-Spur-Verknüpfung und Spurverwaltung.
-
Der Vorverarbeitungsteil enthält zwei Teilbereiche: Entfernung statischer Punkte und Akkumulation von Punktwolken. In der erstgenannten Phase werden nur bewegliche RADAR-Rückkehrpunkte (im Folgenden auch einfach „Punkte“ genannt) beibehalten und die restlichen Punkte verworfen. Dies geschieht, um Rauschpunkte und andere nicht wahrnehmbare Punkte aus der RADAR-Punktwolke herauszufiltern. Diese Filterung entfernt jedoch auch Nicht-Rauschpunkte mit einer kompensierten Distanzänderung, die geringer als der vordefinierte Schwellenwert für die Distanzänderung ist. Diese Auslassung von Nicht-Punkten beeinträchtigt jedoch nicht die Leistung der Verfolgungseinrichtung. Da die RADAR-Punktwolke zudem extrem dünn besetzt ist, ist die Erkennung und Verfolgung von Objekten aus einem Zeitschritt oder RADAR-Frame eine Herausforderung. Um spärliche Erkennungen zu vermeiden, wird die Dichte der RADAR-Punktwolke durch Akkumulieren von Punkten über mehrere Zeitschritte/Frames (z. B. 3 Zeitschritte/Frames) erhöht. Das Akkumulieren von Punkten über mehrere Zeitschritte/Frames erleichtert das Erkennen und Verfolgen von Objekten und bietet eine gute Vorlaufzeit für das Schätzen der momentanen Geschwindigkeit der Objekte. Da die Aktualisierungsrate eines typischen RADAR-Sensors über 12 Hz liegt, führt die Ansammlung von Punkten bei typischen Stadtgeschwindigkeiten nicht zu einer großen Verzerrung der Objekte.
-
Im zweiten Teil der Kette werden die Punkte aus der akkumulierten RADAR-Punktwolke mittels eines Clusteralgorithmus geclustert. In einer Ausführungsform ist der Clusteralgorithmus ein dichtebasierter Clusteralgorithmus, der nahe beieinander liegende Punkte basierend auf einer Entfernungsmetrik (z. B. der euklidischen Entfernungsmetrik) gruppiert und die in Regionen geringer Dichte liegenden Punkte als Ausreißer markiert. Ein Beispiel für einen dichtebasierten Clusteralgorithmus ist der DBSCAN-Clusteralgorithmus, der sich an unterschiedliche Clusterformen anpasst und Ausreißer und andere Rauschpunkte effizient behandelt. In einer Ausführungsform wird DBSCAN so geändert, dass Punkte, die innerhalb einer elliptischen Region liegen, deren Hauptachse mit dem Verkehrsfluss ausgerichtet ist, gruppiert werden. Der Verkehrsfluss kann aus einer beschrifteten Vorläuferkarte entnommen werden. Wenn der Verkehrsfluss unklar ist (z. B. in Kreuzungen), werden kreisförmige Regionen zum Gruppieren von Punkten verwendet.
-
In einem dritten Teil der Kette werden der Mittelpunkt und die Geschwindigkeit jedes Clusters bestimmt. Der Mittelpunkt des Clusters wird als geometrischer Mittelpunkt aller Punkte im Cluster angenommen. Der geometrische Mittelpunkt wird durch Berechnen des Mittelpunkts des engstmöglichen rechteckigen Begrenzungsrahmens um alle Punkte im Cluster erhalten. Die Positionsneuerung ist dann die quadrierte Entfernung zwischen der vorhergesagten Position der Spur und der berechneten Position des Clusters.
-
Im Gegensatz zur Position, die direkt aus dem RADAR-Sensor erhalten wird, wird die Geschwindigkeit des Clusters explizit unter Verwendung anderer Ausgaben des Sensors berechnet. Beispielsweise liefert ein typischer RADAR-Sensor zusätzlich zu seiner Position eine Distanzänderung und einen Kurs des Punktes in Bezug auf den Sensor. Die Distanzänderung definiert die Geschwindigkeit, mit der sich ein Punkt auf den Sensor zubewegt oder von ihm wegbewegt, während sich der Kurs auf den Winkel zwischen dem vom Sensor rechtwinklig nach außen gerichteten Strahl und einer direkt auf das Ziel gerichteten Linie bezieht. Unter der Annahme, dass alle Punkte auf dem Objekt identische Geschwindigkeitsvektoren aufweisen, d. h. dass alle Objekte in der Welt starr sind, kann die Geschwindigkeit des Clusters durch Lösen eines linearen Gleichungssystems berechnet werden. Eine Lösung des linearen Gleichungssystems wird erhalten, wenn mehr als zwei verschiedene Punkte im Cluster vorhanden sind.
-
In einer Ausführungsform wird ein Filter rekursiver kleinster Quadrate (RLS) zum Schätzen der Geschwindigkeit des Clusters verwendet. Das RLS-Filter ist ein adaptiver Filteralgorithmus, der die Parameter rekursiv aktualisiert, um eine gewichtete Aufwandsfunktion der kleinsten Quadrate zu minimieren. Der RLS-Algorithmus beginnt durch Initialisieren der geschätzten Clustergeschwindigkeit unter Verwendung der Clusterakkumulationshistorie. Der Algorithmus weist eine sehr schnelle Konvergenz auf und ist rechnerisch sehr schnell, da er die Parameter nur unter Verwendung des Zustandsvektors und des neuen Datenpunktes aktualisiert. In einer Ausführungsform wird der anfängliche Geschwindigkeitsschätzwert aus der Clusterakkumulationshistorie berechnet. Da die Positionsschätzwerte aus den RADAR-Sensoren genau sind, kann die Anfangsgeschwindigkeit durch Berechnen der Positionsänderung und Dividieren durch die Zeit zwischen den beiden Frames geschätzt werden.
-
Der Aktualisierungsschritt des RLS-Algorithmus dient zum Bestimmen, ob ein Punkt ein Ausreißer ist und ob seine Filteraktualisierung verwendet werden soll. Ein Punkt gilt als Ausreißer, wenn seine Aktualisierung zu einer Änderung der Geschwindigkeit führt, die größer als ein vordefinierter Schwellenwert ist. Um einige Ungenauigkeiten bei der Initialisierung zu berücksichtigen, wird diese Prüfung nach mehreren Aktualisierungen des Filters durchgeführt. Um den Fall zu berücksichtigen, dass Ausreißer die mehrfachen Aktualisierungen vornehmen, was dazu führt, dass alle korrekten Messungen als Ausreißer eingestuft werden, wird eine Gruppe von RLS-Filtern (z. B. 10 RLS-Filter) initialisiert, wobei jedem Filter eine randomisierte Reihenfolge von Punkten als Eingabe vorgegeben wird. Das Filter, dessen Wert der Geschwindigkeitskomponente den kleinsten neu prognostizierten Distanzänderungsfehler ergibt, „gewinnt“ und dessen Geschwindigkeit wird als Geschwindigkeit des Clusters betrachtet.
-
Sobald der Mittelpunkt und die Geschwindigkeit der Cluster berechnet sind, stellt der vierte Teil der Verarbeitungskette fest, ob irgendwelche der neu berechneten Cluster Rückkehrpunkte von Objekten sind, die bereits durch die Objektverfolgungseinrichtung verfolgt werden. Dieser vierte Teil ist nicht trivial, weil nicht bekannt ist, welche Rückkehrpunkte von welchem/n Objekt/en kommen und umgekehrt. In einer Ausführungsform werden zwei Parameter (z. B. Position und Geschwindigkeit) verwendet, um die Verknüpfung zwischen den Clustern und den Spuren zu berechnen. In einer Ausführungsform wird ein Cluster mit einer Spur verknüpft, wenn die Neuerung zwischen den vorhergesagten Parametern der Spur und der geschätzten Position (Mittelpunkt) und Geschwindigkeit des Clusters kleiner als ein vordefinierter Schwellenwert ist und die Summe der Neuerungen zwischen den beiden Parametern von allen potentiellen Spuren die geringste ist.
-
In einer Ausführungsform wird ein Spurzustand unter Verwendung eines 6-dimensionalen Zustandsvektors verwendet, der mindestens, aber nicht begrenzt auf, Position, Geschwindigkeit und Ausmaße verfolgt. Beispielsweise wird die Spur unter Verwendung eines linearen Kalman-Filters (LKF) oder eines Unscented-Kalman-Filters (UKF) aufrechterhalten, wobei der Vorhersageschritt ein beliebiges Sollbewegungsmodell verwendet, wie z. B. ein Bewegungsmodell mit konstanter Geschwindigkeit oder ein Modell mit konstanter Drehrate und Geschwindigkeit (CTRV), das Bewegungsrichtung, Geschwindigkeit und Peilwinkel enthält. Ein LKF wird bevorzugt, da alle Zustandsparameter linear direkt aus den rohen oder abgeleiteten RADAR-Messungen aktualisiert werden können. In einigen Ausführungsformen werden zusätzliche Zustände wie Sensorverzerrung oder Drift geschätzt.
-
Wenn ein Cluster mit keiner Spur verknüpft ist, wird eine neue Spur erstellt, wobei die Zustandsparameter unter Verwendung der entsprechenden Werte des Clusters initialisiert werden. Da die Mehrheit der sich bewegenden Objekte auf Straßen Fahrzeuge sind, werden die Zustandsparameter mit vorbestimmten Daten initialisiert. Um zu verhindern, dass Rauschen und andere zufällige Reflexionen die Spurliste stören, wird die neue Spur anfangs auf den Zustand UNGÜLTIG initialisiert, der erst dann gültig wird, wenn die Spur für mindestens N Iterationen (z. B. 3 Iterationen) mit einem Cluster verknüpft ist.
-
Ein Cluster wird mit einer Spur verknüpft, wenn die Neuerung sowohl der Position als auch der Geschwindigkeit unter einen vordefinierten Schwellenwert fällt und die Summe der Innovationen für diese Spur am geringsten ist. Da zwei oder mehr Cluster mit derselben Spur verknüpft werden können, besteht der erste Schritt darin, alle Punkte, die zu einer Spur gehören, in einem einzigen Cluster zu vereinen und alle Parameter des größeren, einzelnen Clusters neu zu berechnen. Der Schritt der Zustandsaktualisierung wird anschließend unter Verwendung der Parameter dieses aktualisierten, größeren Clusters durchgeführt.
-
Wenn eine vorhandene Spur mit keinem Cluster verknüpft ist, wird die Spur unter Verwendung des Bewegungsmodells propagiert und markiert, um anzuzeigen, dass die Spur keine Verknüpfungen aufweist. Wenn die Spur für mehrere Zeitschritte/Frames (z. B. 6 Zeitschritte/Frames) aufeinanderfolgend markiert ist, wird die Spur als veraltet angenommen und abgebrochen (z. B. aus dem Speicher gelöscht).
-
Systemübersicht
-
1 zeigt ein Beispiel für ein autonomes Fahrzeug 100, das über autonome Fähigkeit verfügt.
-
Wie hier verwendet, bezieht sich der Begriff „autonome Fähigkeit“ auf eine Funktion, ein Merkmal oder eine Einrichtung, die es ermöglicht, ein Fahrzeug teilweise oder vollständig ohne menschliches Eingreifen in Echtzeit zu betreiben, einschließlich, aber nicht beschränkt auf vollständig autonome Fahrzeuge, hochgradig autonome Fahrzeuge und bedingt autonome Fahrzeuge.
-
Wie hier verwendet, ist ein autonomes Fahrzeug (AF) ein Fahrzeug, das über autonome Fähigkeiten verfügt.
-
Wie hier verwendet, umfasst „Fahrzeug“ Transportmittel für den Transport von Gütern oder Personen. Zum Beispiel Autos, Busse, Züge, Flugzeuge, Drohnen, Lastwagen, Boote, Schiffe, Tauchboote, Lenkflugkörper usw. Ein fahrerloses Kraftfahrzeug ist ein Beispiel für ein Fahrzeug.
-
Wie hier verwendet, bezieht sich „Bewegungsbahn“ auf einen Weg oder eine Strecke zum Betreiben eines AF von einem ersten räumlich-zeitlichen Ort zu einem zweiten räumlich-zeitlichen Ort. In einer Ausführungsform wird der erste räumlich-zeitliche Ort als Anfangs- oder Startort und der zweite räumlich-zeitliche Ort als Bestimmungsort, Endort, Ziel, Zielposition oder Zielort bezeichnet. In einigen Beispielen besteht eine Bewegungsbahn aus einem oder mehreren Segmenten (z. B. Straßenabschnitten), und jedes Segment besteht aus einem oder mehreren Blöcken (z. B. Abschnitten eines Fahrstreifens oder einer Einmündung). In einer Ausführungsform entsprechen die räumlich-zeitlichen Orte den Orten der realen Welt. Die räumlich-zeitlichen Orte sind zum Beispiel Abhol- oder Absetzorte zum Abholen oder Absetzen von Personen oder Gütern.
-
Wie hier verwendet, umfasst „Sensor(en)“ eine oder mehrere Hardwarekomponenten, die Informationen über die Umgebung rund um den Sensor erfassen. Einige der Hardwarekomponenten können sensorische Komponenten (z. B. Bildsensoren, biometrische Sensoren), Sende- und/oder Empfangskomponenten (z. B. Laser- oder Hochfrequenzwellensender und -empfänger), elektronische Komponenten wie Analog-Digital-Wandler, eine Datenspeichervorrichtung (z. B. ein RAM und/oder ein nichtflüchtiger Speicher), Software- oder Firmwarekomponenten und Datenverarbeitungskomponenten wie eine ASIC (anwendungsspezifische integrierte Schaltung), einen Mikroprozessor und/oder einen Mikrocontroller umfassen.
-
Wie hier verwendet, ist eine „Szenenbeschreibung“ eine Datenstruktur (z. B. Liste) oder ein Datenstrom, der ein oder mehrere klassifizierte oder gekennzeichnete Objekte enthält, die durch einen oder mehrere Sensoren auf dem AF-Fahrzeug erfasst oder durch eine AF-externe Quelle bereitgestellt werden.
-
Wie hier verwendet, ist eine „Straße“ ein physischer Bereich, der durch ein Fahrzeug befahren werden kann und einem benannten Verkehrsweg (z. B. Stadtstraße, Autobahn usw.) oder einem unbenannten Verkehrsweg (z. B. eine Einfahrt an einem Haus oder Bürogebäude, ein Abschnitt eines Parkplatzes, ein Abschnitt eines leeren Grundstücks, ein Feldweg in einem ländlichen Gebiet usw.) entsprechen kann. Da einige Fahrzeuge (z. B. Allradlastwagen, Geländewagen, usw.) in der Lage sind, eine Vielzahl physischer Bereiche zu befahren, die nicht speziell für den Fahrzeugverkehr ausgelegt sind, kann eine „Straße“ ein physischer Bereich sein, der nicht formell durch eine Gemeinde oder andere Regierungs- oder Verwaltungsbehörde als Verkehrsweg definiert ist.
-
Wie hier verwendet, ist ein „Fahrstreifen“ ein Abschnitt einer Straße, der durch ein Fahrzeug befahren werden kann und dem größten Teil oder der Gesamtheit des Zwischenraums zwischen den Fahrstreifenmarkierungen oder nur einem Teil (z. B. weniger als 50 %) des Zwischenraums zwischen den Fahrstreifenmarkierungen entsprechen kann. Zum Beispiel könnte eine Straße mit weit auseinanderliegenden Fahrstreifenmarkierungen zwei oder mehr Fahrzeuge zwischen den Markierungen aufnehmen, sodass ein Fahrzeug das andere überholen kann, ohne die Fahrstreifenmarkierungen zu überqueren, und könnte daher so interpretiert werden, dass ein Fahrstreifen schmaler als der Zwischenraum zwischen den Fahrstreifenmarkierungen ist oder dass zwei Fahrstreifen zwischen den Fahrstreifenmarkierungen liegen. Ein Fahrstreifen könnte auch bei Fehlen von Fahrstreifenmarkierungen interpretiert werden. Beispielsweise kann ein Fahrstreifen basierend auf physischen Merkmalen einer Umgebung, z. B. Felsen und Bäume entlang einem Verkehrsweg in einem ländlichen Gebiet, definiert werden.
-
„Eine oder mehrere‟ umfasst eine Funktion, die durch ein Element ausgeführt wird, eine Funktion, die durch mehr als ein Element ausgeführt wird, z. B. auf verteilte Weise, wobei mehrere Funktionen durch ein Element ausgeführt werden, mehrere Funktionen durch mehrere Elemente ausgeführt werden, oder eine beliebige Kombination des oben Genannten.
-
Es versteht sich auch, dass die Begriffe „erste“, „zweite“ usw. hier zwar in einigen Fällen zur Beschreibung verschiedener Elemente verwendet werden, diese Elemente jedoch nicht durch diese Begriffe eingeschränkt werden sollten. Diese Begriffe werden nur verwendet, um ein Element von einem anderen zu unterscheiden. Beispielsweise könnte ein erster Kontakt als ein zweiter Kontakt bezeichnet sein, und in ähnlicher Weise könnte ein zweiter Kontakt als ein dritter Kontakt bezeichnet sein, ohne vom Geltungsbereich der verschiedenen beschriebenen Ausführungsformen abzuweichen. Der erste Kontakt und der zweite Kontakt sind beide Kontakte, aber sie sind nicht derselbe Kontakt.
-
Die Terminologie, die bei der Beschreibung der verschiedenen hier beschriebenen Ausführungsformen verwendet wird, dient nur der Beschreibung bestimmter Ausführungsformen und ist nicht als einschränkend zu verstehen. Bei der Beschreibung der verschiedenen beschriebenen Ausführungsformen und der beigefügten Ansprüche sollen die Singularformen „ein“, „eine“ sowie „der“, „die“, „das“ auch die Pluralformen einschließen, sofern der Zusammenhang nicht eindeutig etwas anderes vorgibt. Es versteht sich auch, dass der Begriff „und/oder“ wie hier verwendet sich auf alle möglichen Kombinationen eines oder mehrerer der zugehörigen aufgelisteten Punkte bezieht und diese umfasst. Es versteht sich ferner, dass die Begriffe „enthalten“, „einschließlich“, „umfassen“ und/oder „umfassend“, wenn in dieser Beschreibung verwendet, das Vorhandensein angegebener Merkmale, Ganzzahlen, Schritte, Vorgänge, Elemente und/oder Komponenten davon angibt, aber nicht das Vorhandensein oder die Hinzufügung eines/einer oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Vorgänge, Elemente, Komponenten und/oder Gruppen davon ausschließt.
-
Wie hier verwendet, ist der Begriff „falls“ gegebenenfalls so auszulegen, dass er je nach Zusammenhang „wenn“ oder „bei“ oder „als Reaktion auf das Bestimmen“ oder „als Reaktion auf das Erkennen“ bedeutet. In ähnlicher Weise ist die Formulierung „falls bestimmt wird“ oder „falls [ein angegebener Zustand oder ein Ereignis] erkannt wird“ je nach Zusammenhang gegebenenfalls so auszulegen, dass sie „beim Bestimmen“ oder „als Reaktion auf das Bestimmen“ oder „bei Erkennen [des angegebenen Zustands oder Ereignisses]“ oder „als Reaktion auf das Erkennen [des angegebenen Zustands oder Ereignisses]“ bedeutet.
-
Wie hier verwendet, bezieht sich ein AF-System auf das AF zusammen mit der Anordnung von Hardware, Software, gespeicherten Daten und in Echtzeit erzeugten Daten, die den Betrieb des AF unterstützen. In einer Ausführungsform ist das AF-System in das AF integriert. In einer Ausführungsform ist das AF-System über mehrere Orte verteilt. Zum Beispiel ist ein Teil der Software des AF-Systems auf einer Cloud-Rechenumgebung implementiert, ähnlich der Cloud-Rechenumgebung 300, die im Folgenden mit Bezug auf 3 beschrieben wird.
-
Allgemein beschreibt dieses Dokument Technologien, die auf alle Fahrzeuge anwendbar sind, die über eine oder mehrere autonome Fähigkeiten verfügen, einschließlich vollständig autonomer Fahrzeuge, hochgradig autonomer Fahrzeuge und bedingt autonomer Fahrzeuge, wie z. B. sogenannte Stufe-5-, Stufe-4- und Stufe-3-Fahrzeuge (siehe SAE International Standard J3016: Taxonomy and Definitions for Terms Related to On-Road Motor Vehicle Automated Driving Systems (Taxonomie und Definitionen für Begriffe im Zusammenhang mit automatischen Straßen-Kraftfahrzeug-Fahrsystemen), die durch Verweis in ihrer Gesamtheit übernommen wurde, für weitere Einzelheiten über die Klassifizierung von Autonomiegraden in Fahrzeugen). Die in diesem Dokument beschriebenen Technologien sind auch auf teilautonome Fahrzeuge und fahrerunterstützte Fahrzeuge anwendbar, wie z. B. sogenannte Stufe-2- und Stufe-1-Fahrzeuge (siehe SAE International's Standard J3016: Taxonomy and Definitions for Terms Related to On-Road Motor Vehicle Automated Driving Systems (Taxonomie und Definitionen für Begriffe im Zusammenhang mit automatisierten Straßen-Kraftfahrzeug-Fahrsystemen)). In einer Ausführungsform können eines oder mehrere der Fahrzeugsysteme der Stufen 1, 2, 3, 4 und 5 unter bestimmten Betriebsbedingungen basierend auf dem Verarbeiten von Sensoreingaben bestimmte Fahrzeugfunktionen (z B. Lenken, Bremsen und Verwenden von Karten) automatisieren. Die in diesem Dokument beschriebenen Technologien können Fahrzeugen auf allen Stufen zugute kommen, von vollständig autonomen Fahrzeugen bis hin zu durch Menschen betriebenen Fahrzeugen.
-
Mit Bezug auf 1 betreibt ein AF-System 120 das AF-System 100 entlang einer Bewegungsbahn 198 durch eine Umgebung 190 bis zu einem Zielort 199 (gelegentlich auch als Endort bezeichnet), wobei Objekte (z. B. natürliche Hindernisse 191, Fahrzeuge 193, Fußgänger 192, Radfahrer und andere Hindernisse) vermieden und Straßenregeln (z. B. Betriebsregeln oder Fahrpräferenzen) befolgt werden.
-
In einer Ausführungsform beinhaltet das AF-System 120 Vorrichtungen 101, die dazu eingerichtet sind, Betriebsbefehle aus den Computerprozessoren 146 zu empfangen und darauf zu reagieren. In einer Ausführungsform ähneln die Computerprozessoren 146 dem nachfolgend mit Bezug auf 3 beschriebenen Prozessor 304. Beispiele für Vorrichtungen 101 beinhalten eine Lenksteuerung 102, Bremsen 103, Gangschaltung, Gaspedal oder andere Beschleunigungssteuerungsmechanismen, Scheibenwischer, Seitentürschlösser, Fenstersteuervorrichtungen und Blinker.
-
In einer Ausführungsform umfasst das AF-System 120 Sensoren 121 zur Messung oder Ableitung von Zuständen oder Bedingungen des AF 100, wie z. B. die Position des AF, die Lineargeschwindigkeit und -beschleunigung, die Winkelgeschwindigkeit und -beschleunigung und die Fahrtrichtung (z. B. eine Ausrichtung des vorderen Endes des AF 100). Beispiele für Sensoren 121 sind GNSS, Trägheitsmesseinheiten (IMU), die sowohl lineare Fahrzeugbeschleunigungen als auch Winkelbeschleunigungen messen, Raddrehzahlsensoren zum Messen oder Schätzen von Radschlupfverhältnissen, Radbremsdruck- oder Bremsmomentsensoren, Motordrehmoment- oder Raddrehmomentsensoren sowie Lenkwinkel- und Winkelgeschwindigkeitssensoren.
-
In einer Ausführungsform umfassen die Sensoren 121 auch Sensoren zum Erfassen oder Messen von Eigenschaften der Umgebung des AF. Zum Beispiel Monokular- oder Stereo-Videokameras 122 im sichtbaren Licht-, Infrarot- oder Wärmespektrum (oder beiden Spektren), LiDAR 123, RADAR, Ultraschallsensoren, Time-of-Flight(TOF)-Tiefensensoren, Geschwindigkeitssensoren, Temperatursensoren, Feuchtigkeitssensoren und Niederschlagssensoren.
-
In einer Ausführungsform umfasst das AF-System 120 eine Datenspeichereinheit 142 und einen Speicher 144 zum Speichern von Maschinenanweisungen im Zusammenhang mit Computerprozessoren 146 oder durch Sensoren 121 gesammelten Daten. In einer Ausführungsform ähnelt die Datenspeichereinheit 142 dem ROM 308 oder der Speichervorrichtung 310, die nachfolgend mit Bezug auf 3 beschrieben werden. In einer Ausführungsform ähnelt der Speicher 144 dem nachfolgend beschriebenen Hauptspeicher 306. In einer Ausführungsform speichern die Datenspeichereinheit 142 und der Speicher 144 historische, Echtzeit- und/oder vorausschauende Informationen über die Umgebung 190. In einer Ausführungsform umfassen die gespeicherten Informationen Karten, Fahrleistungen, Aktualisierungen zu Verkehrsstaus oder Wetterbedingungen. In einer Ausführungsform werden Daten, die sich auf die Umgebung 190 beziehen, über einen Kommunikationskanal aus einer entfernt gelegenen Datenbank 134 an das AF 100 übertragen.
-
In einer Ausführungsform umfasst das AF-System 120 Kommunikationsvorrichtungen 140 zum Übermitteln gemessener oder abgeleiteter Eigenschaften von Zuständen und Bedingungen anderer Fahrzeuge, wie z. B. Positionen, Linear- und Winkelgeschwindigkeiten, Linear- und Winkelbeschleunigungen sowie Linear- und Winkelfahrtrichtungen an das AF-System 100. Diese Vorrichtungen umfassen Fahrzeug-zu-Fahrzeug(V2V)- und Fahrzeug-zu-Infrastruktur(V2I)-Kommunikationsvorrichtungen und Vorrichtungen für drahtlose Kommunikation über Punkt-zu-Punkt- oder Ad-hoc-Netzwerke oder beides. In einer Ausführungsform kommunizieren die Kommunikationsvorrichtungen 140 über das elektromagnetische Spektrum (einschließlich Funk- und optische Kommunikation) oder andere Medien (z. B. Luft- und akustische Medien). Eine Kombination von Fahrzeug-zu-Fahrzeug(V2V)-Kommunikation, Fahrzeug-zu-Infrastruktur(V2I)-Kommunikation (und in einigen Ausführungsformen eine oder mehrere andere Kommunikationsarten) wird mitunter als Fahrzeugzu-alles (V2X)-Kommunikation bezeichnet. Die V2X-Kommunikation entspricht in der Regel einem oder mehreren Kommunikationsstandards für die Kommunikation mit, zwischen und unter autonomen Fahrzeugen.
-
In einer Ausführungsform umfassen die Kommunikationsvorrichtungen 140 Kommunikationsschnittstellen. Zum Beispiel drahtgebundene, drahtlose, WiMAX-, Wi-Fi-, Bluetooth-, Satelliten-, Zellular-, optische, Nahfeld-, Infrarot- oder Funkschnittstellen. Die Kommunikationsschnittstellen übertragen Daten aus einer entfernt gelegenen Datenbank 134 an das AF-System 120. In einer Ausführungsform ist die entfernt gelegene Datenbank 134 wie in 2 beschrieben in eine Cloud-Rechenumgebung 200 eingebettet. Die Kommunikationsschnittstellen 140 übertragen die aus den Sensoren 121 gesammelten Daten oder andere Daten, die sich auf den Betrieb des AF 100 beziehen, an die entfernt gelegene Datenbank 134. In einer Ausführungsform übertragen die Kommunikationsschnittstellen 140 Informationen, die sich auf Teleoperationen beziehen, an das AF 100. In einigen Ausführungsformen kommuniziert das AF 100 mit anderen entfernten (z. B. „Cloud“-) Servern 136.
-
In einer Ausführungsform speichert und überträgt die entfernte Datenbank 134 auch digitale Daten (z. B. Speichern von Daten wie Straßen- und Wegestandorte). Diese Daten werden im Speicher 144 des AF 100 gespeichert oder über einen Kommunikationskanal aus der entfernten Datenbank 134 an das AF 100 übertragen.
-
In einer Ausführungsform speichert und überträgt die entfernte Datenbank 134 historische Informationen über Fahreigenschaften (z. B. Geschwindigkeits- und Beschleunigungsprofile) von Fahrzeugen, die zuvor zu ähnlichen Tageszeiten entlang der Bewegungsbahn 198 gefahren sind. In einer Ausführungsform können diese Daten im Speicher 144 des AF 100 gespeichert oder über einen Kommunikationskanal aus der entfernten Datenbank 134 an das AF 100 übertragen werden.
-
Die im AF 100 befindlichen Rechenvorrichtungen 146 erzeugen auf algorithmische Weise Steueraktionen, die sowohl auf Echtzeit-Sensordaten als auch auf vorherigen Informationen basieren, sodass das AF-System 120 seine autonomen Fahrfähigkeiten ausführen kann.
-
In einer Ausführungsform umfasst das AF-System 120 Computerperipherievorrichtungen 132, die mit Rechenvorrichtungen 146 gekoppelt sind, um Informationen und Warnungen an einen Benutzer (z. B. einen Insassen oder einen entfernten Benutzer) des AF 100 zu liefern und Eingaben von diesem zu empfangen. In einer Ausführungsform ähneln die Peripherievorrichtungen 132 der Anzeige 312, der Eingabevorrichtung 314 und der Cursorsteuervorrichtung 316, die nachfolgend mit Bezug auf 3 behandelt werden. Die Kopplung erfolgt drahtlos oder drahtgebunden. Zwei oder mehrere der Schnittstellenvorrichtungen können zu einer einzelnen Vorrichtung integriert sein.
-
Beispiel für eine Cloud-Computing-Umgebung
-
2 veranschaulicht ein Beispiel für eine „Cloud“-Computing-Umgebung. Cloud Computing ist ein Modell zum Bereitstellen von Diensten, das einen komfortablen, bedarfsgerechten Netzwerkzugang zu einem gemeinsam genutzten Bestand konfigurierbarer Rechenressourcen (z. B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicher, Anwendungen, virtuelle Maschinen und Dienste) ermöglicht. In typischen Cloud-Rechensystemen sind in einem oder mehreren großen Cloud-Rechenzentren die Rechner untergebracht, die zum Erbringen der durch die Cloud bereitgestellten Dienste verwendet werden. Mit Bezug auf 2 umfasst die Cloud-Computing-Umgebung 200 Cloud-Rechenzentren 204a, 204b und 204c, die über die Cloud 202 miteinander verbunden sind. Die Rechenzentren 204a, 204b und 204c bieten Cloud-Rechendienste für die mit der Cloud 202 verbundenen Computersysteme 206a, 206b, 206c, 206d, 206e und 206f.
-
Die Cloud-Computing-Umgebung 200 umfasst ein oder mehrere Cloud-Rechenzentren. Allgemein bezieht sich ein Cloud-Rechenzentrum, z. B. das in 2 dargestellte Cloud-Rechenzentrum 204a, auf die physische Anordnung von Servern, die eine Cloud, z. B. die in 2 dargestellte Cloud 202, oder einen bestimmten Abschnitt einer Cloud bilden. Beispielsweise sind die Server physisch im Cloud-Rechenzentrum in Räumen, Gruppen, Reihen und Racks angeordnet. Ein Cloud-Rechenzentrum hat eine oder mehrere Zonen, die einen oder mehrere Räume mit Servern umfassen. Jeder Raum hat eine oder mehrere Reihen von Servern, und jede Reihe umfasst ein oder mehrere Racks. Jedes Rack umfasst einen oder mehrere einzelne Serverknoten. In einigen Ausführungen sind Server in Zonen, Räumen, Racks und/oder Reihen basierend auf den physischen Infrastrukturanforderungen der Rechenzentrumseinrichtung, die Strom, Energie, Heizung, Wärme und/oder andere Anforderungen umfassen, in Gruppen angeordnet. In einer Ausführungsform ähneln die Serverknoten dem in 3 beschriebenen Computersystem. Das Rechenzentrum 204a weist viele Rechensysteme auf, die über viele Racks verteilt sind.
-
Die Cloud 202 umfasst die Cloud-Rechenzentren 204a, 204b und 204c sowie die Netzwerk- und Netzwerkressourcen (z. B. Netzwerkgeräte, Knoten, Router, Switches und Netzwerkkabel), die die Cloud-Rechenzentren 204a, 204b und 204c miteinander verbinden und dazu beitragen, den Zugang der Computersysteme 206a-f zu den Cloud-Rechendiensten zu ermöglichen. In einer Ausführungsform stellt das Netzwerk eine Kombination aus einem oder mehreren lokalen Netzwerken, Weitverkehrsnetzwerken oder Internetnetzwerken dar, die über drahtgebundene oder drahtlose Verbindungen mittels terrestrischer oder satellitengestützter Verbindungstechnik gekoppelt sind. Daten, die über das Netzwerk ausgetauscht werden, werden unter Verwendung einer Anzahl von Netzwerkschichtprotokollen übertragen, wie z. B. Internet Protocol (IP), Multiprotocol Label Switching (MPLS), Asynchronous Transfer Mode (ATM), Frame Relay, usw. Fernerhin werden in Ausführungsformen, in denen das Netzwerk eine Kombination aus mehreren Teilnetzwerken darstellt, in jedem der zugrunde liegenden Teilnetzwerke unterschiedliche Netzwerkschichtprotokolle verwendet. In einigen Ausführungsformen stellt das Netzwerk ein oder mehrere miteinander verbundene Internetnetzwerke dar, wie z. B. das öffentliche Internet.
-
Die Verbraucher der Rechensysteme 206a-f oder Cloud-Rechendienste sind über Netzwerkverbindungen und Netzwerkadapter mit der Cloud 202 verbunden. In einer Ausführungsform sind die Computersysteme 206a-f als verschiedene Rechenvorrichtungen, z. B. Server, Desktops, Laptops, Tablets, Smartphones, Geräte für das Internet der Dinge (IoT), autonome Fahrzeuge (darunter Autos, Drohnen, Pendelfahrzeuge, Züge, Busse usw.) und Verbraucherelektronik, implementiert. In einer Ausführungsform sind die Rechensysteme 206a-f in oder als Bestandteil von anderen Systemen implementiert.
-
Computersystem
-
3 veranschaulicht ein Computersystem 300. In einer Ausführung ist das Computersystem 300 eine Spezialrechenvorrichtung. Die Spezialcomputervorrichtung ist fest verdrahtet, um die Techniken auszuführen, oder umfasst digitale elektronische Vorrichtungen wie eine oder mehrere anwendungsspezifische integrierte Schaltungen (ASICs) oder feldprogrammierbare Gate-Arrays (FPGAs), die dauerhaft programmiert sind, um die Techniken auszuführen, oder kann einen oder mehrere Universal-Hardware-Prozessoren umfassen, die dazu programmiert sind, die Techniken gemäß Programmanweisungen in Firmware, Arbeitsspeicher, anderen Speichern oder einer Kombination davon auszuführen. Derartige Spezialcomputervorrichtungen können auch kundenspezifische fest verdrahtete Logik, ASICs oder FPGAs mit kundenspezifischer Programmierung kombinieren, um die Techniken zu erzielen. In verschiedenen Ausführungsformen sind die Spezialrechenvorrichtungen Desktop-Computersysteme, tragbare Computersysteme, Handgeräte, Netzwerkgeräte oder sonstige Vorrichtungen, die zur Implementierung der Techniken festverdrahtete und/oder programmgesteuerte Logik enthalten.
-
In einer Ausführungsform umfasst das Computersystem 300 einen Bus 302 oder einen anderen Kommunikationsmechanismus zum Übermitteln von Informationen und einen mit einem Bus 302 gekoppelten Hardwareprozessor 304 zum Verarbeiten von Informationen. Der Hardwareprozessor 304 ist zum Beispiel ein Allzweck-Mikroprozessor. Das Computersystem 300 umfasst auch einen Hauptspeicher 306, wie beispielsweise einen Direktzugriffsspeicher (RAM) oder eine andere dynamische Speichervorrichtung, die mit dem Bus 302 zum Speichern von Informationen und Anweisungen gekoppelt ist, die durch den Prozessor 304 ausgeführt werden sollen. In einer Ausführungsform wird der Hauptspeicher 306 zum Speichern von temporären Variablen oder anderen Zwischeninformationen während der Ausführung von Anweisungen durch den Prozessor 304 verwendet. Derartige in nichtflüchtigen, für den Prozessor 304 zugänglichen Speichermedien gespeicherte Anweisungen machen aus dem Computersystem 300 eine Spezialmaschine, die auf das Ausführen der in den Anweisungen angegebenen Funktionen zugeschnitten ist.
-
In einer Ausführungsform umfasst das Computersystem 300 ferner einen Nur-LeseSpeicher (ROM) 308 oder eine andere statische Speichervorrichtung, die mit dem Bus 302 verbunden ist, um statische Informationen und Anweisungen für den Prozessor 304 zu speichern. Eine Speichervorrichtung 310, wie beispielsweise eine Magnetplatte, eine optische Platte, ein Solid-State-Laufwerk oder ein dreidimensionaler Kreuzpunktspeicher, ist vorhanden und mit dem Bus 302 zum Speichern von Informationen und Anweisungen gekoppelt.
-
In einer Ausführungsform ist das Computersystem 300 über den Bus 302 an ein Display 312, wie z. B. eine Kathodenstrahlröhre (CRT), ein Flüssigkristalldisplay (LCD), ein Plasmadisplay, ein Leuchtdioden(LED)-Display oder ein organisches Leuchtdioden(OLED)-Display, zum Anzeigen von Informationen für einen Computerbenutzer gekoppelt. Eine Eingabevorrichtung 314 mit alphanumerischen und anderen Tasten ist mit dem Bus 302 zum Übermitteln von Informationen und Befehlsauswahlen an den Prozessor 304 gekoppelt. Eine andere Art von Benutzereingabevorrichtung ist eine Cursorsteuervorrichtung 316, z. B. eine Maus, ein Trackball, ein berührungsempfindliches Display oder Cursorrichtungstasten zum Übermitteln von Richtungsinformationen und Befehlsauswahlen an den Prozessor 304 und zum Steuern der Cursorbewegung auf dem Display 312. Diese Eingabevorrichtung verfügt in der Regel über zwei Freiheitsgrade in zwei Achsen, eine erste Achse (z. B. x-Achse) und eine zweite Achse (z. B. y-Achse), mit denen die Vorrichtung Positionen in einer Ebene angeben kann.
-
Gemäß einer Ausführungsform werden die hier beschriebenen Techniken durch das Computersystem 300 als Reaktion darauf ausgeführt, dass der Prozessor 304 eine oder mehrere Sequenzen von einer oder mehreren Anweisungen ausführt, die im Hauptspeicher 306 enthalten sind. Derartige Anweisungen werden aus einem anderen Speichermedium, z. B. der Speichervorrichtung 310, in den Hauptspeicher 306 eingelesen. Die Ausführung der im Hauptspeicher 306 enthaltenen Anweisungssequenzen veranlasst den Prozessor 304, die hier beschriebenen Prozessschritte durchzuführen. In alternativen Ausführungsformen wird eine fest verdrahtete Schaltungsanordnung anstelle von oder in Kombination mit Softwareanweisungen verwendet.
-
Der Begriff „Speichermedium“, wie hier verwendet, betrifft alle nichtflüchtigen Medien, die Daten und/oder Anweisungen speichern, die eine Maschine veranlassen, auf eine bestimmte Art und Weise zu arbeiten. Derartige Speichermedien umfassen nichtflüchtige Medien und/oder flüchtige Medien. Nichtflüchtige Medien umfassen z. B. optische Platten, Magnetplatten, Solid-State-Laufwerke oder dreidimensionale Kreuzpunktspeicher, wie z. B. die Speichervorrichtung 310. Flüchtige Medien umfassen dynamische Speicher, wie beispielsweise den Hauptspeicher 306. Übliche Formen von Speichermedien umfassen zum Beispiel eine Floppy-Disk, eine Diskette, eine Festplatte, ein Solid-State-Laufwerk, ein Magnetband oder jedes andere magnetische Datenspeichermedium, einen CD-ROM, ein beliebiges anderes optisches Datenspeichermedium, ein beliebiges physisches Medium mit Lochmustern, einen RAM, einen PROM und EPROM, einen FLASH-EPROM, NV-RAM, oder einen beliebigen anderen Speicherchip oder eine Speicherkassette.
-
Speichermedien unterscheiden sich von Übertragungsmedien, können aber zusammen mit diesen verwendet werden. Übertragungsmedien sind am Übertragen von Informationen zwischen Speichermedien beteiligt. Zum Beispiel umfassen Übertragungsmedien Koaxialkabel, Kupferdraht und Lichtwellenleiter, einschließlich der Leitungen, die den Bus 302 umfassen. Übertragungsmedien können auch die Form von akustischen Wellen oder Lichtwellen annehmen, wie etwa jene, die bei Funkwellen- und Infrarotdatenkommunikation erzeugt werden.
-
In einer Ausführungsform sind verschiedene Formen von Medien am Transportieren von einer oder mehreren Sequenzen von einer oder mehreren Anweisungen an den Prozessor 304 zur Ausführung beteiligt. Zum Beispiel werden die Anweisungen zuerst auf einer Magnetplatte oder einem Solid-State-Laufwerk eines entfernten Computers getragen. Der entfernte Computer lädt die Anweisungen in seinen dynamischen Speicher und sendet die Anweisungen unter Verwendung eines Modems über eine Telefonleitung. Ein am Computersystem 300 lokal vorhandenes Modem empfängt die Daten über die Telefonleitung und verwendet einen Infrarotsender, um die Daten in ein Infrarotsignal umzuwandeln. Ein Infrarotdetektor empfängt die in dem Infrarotsignal transportierten Daten, und eine entsprechende Schaltungsanordnung stellt die Daten auf den Bus 302. Der Bus 302 transportiert die Daten an den Hauptspeicher 306, aus dem der Prozessor 304 die Anweisungen abruft und ausführt. Die durch den Hauptspeicher 306 empfangenen Anweisungen können gegebenenfalls entweder vor oder nach dem Ausführen durch den Prozessor 304 auf der Speichervorrichtung 310 gespeichert werden.
-
Das Computersystem 300 umfasst auch eine Kommunikationsschnittstelle 318, die mit dem Bus 302 gekoppelt ist. Die Kommunikationsschnittstelle 318 stellt eine bidirektionale Datenkommunikationskopplung mit einer Netzwerkverbindung 320 bereit, die mit einem lokalen Netzwerk 322 verbunden ist. Die Kommunikationsschnittstelle 318 ist zum Beispiel eine Integrated Services Digital Network(ISDN)-Karte, ein Kabelmodem, Satellitenmoden oder ein Modem zum Bereitstellen einer Datenkommunikationsverbindung mit einem entsprechenden Typ einer Telefonleitung. Als weiteres Beispiel ist die Kommunikationsschnittstelle 318 eine Karte eines lokalen Netzwerks (LAN), um eine Datenkommunikationsverbindung zu einem kompatiblen LAN bereitzustellen. In einigen Implementierungen sind auch drahtlose Verbindungen implementiert. Bei jeder derartigen Implementierung sendet und empfängt die Kommunikationsschnittstelle 318 elektrische, elektromagnetische oder optische Signale, die digitale Datenströme transportieren, die verschiedene Arten von Informationen darstellen.
-
Die Netzwerkverbindung 320 stellt typischerweise eine Datenkommunikation über ein oder mehrere Netzwerke zu anderen Datenvorrichtungen bereit. Zum Beispiel stellt die Netzwerkverbindung 320 eine Verbindung durch das lokale Netzwerk 322 zu einem Host-Computer 324 oder zu einem Cloud-Rechenzentrum oder Geräten bereit, die durch einen Internetdienstanbieter (ISP) 326 betrieben werden. Der ISP 326 stellt wiederum Datenkommunikationsdienste über das weltweite paketorientierte Datenkommunikationsnetzwerk bereit, das jetzt allgemein als das „Internet“ 328 bezeichnet wird. Sowohl das lokale Netzwerk 322 als auch das Internet 328 verwenden elektrische, elektromagnetische oder optische Signale, die digitale Datenströme transportieren. Die Signale über die verschiedenen Netzwerke und die Signale auf der Netzwerkverbindung 320 und über die Kommunikationsschnittstelle 318, die die digitalen Daten an das und aus dem Computersystem 300 transportieren, sind Beispielformen von Übertragungsmedien. In einer Ausführungsform enthält das Netzwerk 320 die Cloud 202 oder einen Teil der oben beschriebenen Cloud 202.
-
Das Computersystem 300 sendet Nachrichten und empfängt Daten einschließlich Programmcode über das/die Netzwerk(e), die Netzwerkverbindung 320 und die Kommunikationsschnittstelle 318. In einer Ausführungsform empfängt das Computersystem 300 einen Code zum Verarbeiten. Der empfangene Code wird sofort beim Empfang durch den Prozessor 304 ausgeführt und/oder auf der Speichervorrichtung 310 oder einem anderen nichtflüchtigen Speicher zum späteren Ausführen gespeichert.
-
Architektur autonomer Fahrzeuge
-
4 zeigt eine Beispielarchitektur 400 für ein autonomes Fahrzeug (z. B. das in 1 gezeigte AF 100). Die Architektur 400 umfasst ein Wahrnehmungsmodul 402 (mitunter als Wahrnehmungsschaltung bezeichnet), ein Planungsmodul 404 (mitunter als Planungsschaltung bezeichnet), ein Steuermodul 406 (mitunter als Steuerschaltung bezeichnet), ein Lokalisierungsmodul 408 (mitunter als Lokalisierungsschaltung bezeichnet) und ein Datenbankmodul 410 (mitunter als Datenbankschaltung bezeichnet). Jedes Modul spielt eine Rolle beim Betrieb des AF 100. Die Module 402, 404, 406, 408 und 410 können zusammen Bestandteil des in 1 gezeigten AF-Systems 120 sein. In einigen Ausführungsformen sind die Module 402, 404, 406, 408 und 410 eine Kombination aus Computersoftware (z. B. ausführbarem Code, der auf einem computerlesbaren Medium gespeichert ist) und Computerhardware (z. B. ein oder mehrere Mikroprozessoren, Mikrocontroller, anwendungsspezifische integrierte Schaltungen [ASICs], Hardware-Speichervorrichtungen, andere Arten von integrierten Schaltungen, andere Arten von Computerhardware oder eine Kombination von einem oder allen dieser Dinge).
-
Beim Betrieb empfängt das Planungsmodul 404 Daten, die einen Zielort 412 darstellen, und ermittelt Daten, die eine Bewegungsbahn 414 (mitunter auch als Route bezeichnet) darstellen, die durch das AF 100 gefahren werden kann, um den Zielort 412 zu erreichen (z. B. am Zielort anzukommen). Damit das Planungsmodul 404 die die Bewegungsbahn 414 darstellenden Daten bestimmen kann, empfängt das Planungsmodul 404 Daten aus dem Wahrnehmungsmodul 402, dem Lokalisierungsmodul 408 und dem Datenbankmodul 410.
-
Das Wahrnehmungsmodul 402 identifiziert nahegelegene physische Objekte mittels eines oder mehrerer Sensoren 121, z. B. wie ebenfalls in 1 dargestellt. Die Objekte werden klassifiziert (z. B. gruppiert in Arten wie Fußgänger, Fahrrad, Kraftfahrzeug, Verkehrszeichen usw.), und eine Szeneriebeschreibung einschließlich der klassifizierten Objekte 416 wird dem Planungsmodul 404 zur Verfügung gestellt.
-
Das Planungsmodul 404 empfängt auch Daten, die die AF-Position 418 darstellen, aus dem Lokalisierungsmodul 408. Das Lokalisierungsmodul 408 bestimmt die AF-Position unter Verwendung von Daten aus den Sensoren 121 und Daten aus dem Datenbankmodul 410 (z. B. geografische Daten), um eine Position zu berechnen. Zum Beispiel verwendet das Lokalisierungsmodul 408 Daten aus einem GNSS(Globales Navigationssatellitensystem)-Sensor und geografische Daten, um einen Längen- und Breitengrad des AF zu berechnen. In einer Ausführungsform umfassen die durch das Lokalisierungsmodul 408 verwendeten Daten hochpräzise Karten der geometrischen Eigenschaften der Fahrwege, Karten, die die Verbindungseigenschaften des Straßennetzes beschreiben, Karten, die die physischen Eigenschaften der Straßen beschreiben (wie z. B. die Verkehrsgeschwindigkeit, das Verkehrsaufkommen, die Anzahl der Fahrstreifen für den Auto- und Fahrradverkehr, die Fahrstreifenbreite, die Fahrstreifenrichtungen oder die Arten und Orte von Fahrstreifenmarkierungen oder Kombinationen davon), und Karten, die die räumliche Lage von Straßenmerkmalen wie Fußgängerüberwegen, Verkehrsschildern oder anderen Verkehrssignalen verschiedener Arten beschreiben.
-
Das Steuermodul 406 empfängt die Daten der Bewegungsbahn 414 und die Daten der AF-Position 418 und führt die Steuerfunktionen 420a-c (z. B. Lenken, Drosselklappenbetätigung, Bremsen, Zündung) des AF so aus, dass das AF 100 auf der Bewegungsbahn 414 bis zum Zielort 412 fährt. Falls z. B. die Bewegungsbahn 414 eine Linkskurve enthält, führt das Steuermodul 406 die Steuerfunktionen 420a-c so aus, dass der Lenkwinkel der Lenkfunktion das AF 100 zum Linksabbiegen veranlasst und das Betätigen der Drosselklappe und Bremsen das AF 100 zum Anhalten und Warten auf passierende Fußgänger oder entgegenkommende Fahrzeuge veranlasst, bevor das Abbiegen durchgeführt wird.
-
Eingaben autonomer Fahrzeuge
-
5 zeigt ein Beispiel für die Eingaben 502a-d (z. B. Sensoren 121 in 1) und Ausgaben 504a-d (z. B. Sensordaten), die durch das Wahrnehmungsmodul 402 (4) verwendet werden. Eine Eingabe 502a ist ein LiDAR(„Light Detection and Ranging“)-System (z. B. LiDAR 123 wie in 1 gezeigt). LiDAR ist eine Technologie, die Licht (z. B. Lichtblitze wie Infrarotlicht) verwendet, um Daten über physische Objekte in Sichtlinie zu erhalten. Ein LiDAR-System erzeugt LiDAR-Daten als Ausgabe 504a. LiDAR-Daten sind beispielsweise Sammlungen von 3D- oder 2D-Punkten (auch als Punktwolken bekannt), die zur Konstruktion einer Darstellung der Umgebung 190 verwendet werden.
-
Eine weitere Eingabe 502b ist ein RADAR-System. RADAR ist eine Technologie, die Funkwellen verwendet, um Daten über nahe gelegene physische Objekte zu erhalten. RADAR-Systeme können Daten über Objekte erhalten, die sich nicht in Sichtlinie eines LiDAR-Systems befinden. Ein RADAR-System 502b erzeugt RADAR-Daten als Ausgabe 504b. Zum Beispiel sind RADAR-Daten ein oder mehrere elektromagnetische Hochfrequenzsignale, die zur Konstruktion einer Darstellung der Umgebung 190 verwendet werden.
-
Eine weitere Eingabe 502c ist ein Kamerasystem. Ein Kamerasystem verwendet eine oder mehrere Kameras (z. B. Digitalkameras, die einen Lichtsensor wie ein ladungsgekoppeltes Bauelement [CCD] verwenden), um Informationen über nahe gelegene physische Objekte zu erhalten. Ein Kamerasystem erzeugt Kameradaten als Ausgabe 504c. Kameradaten liegen häufig in Form von Bilddaten vor (z. B. Daten in einem Bilddatenformat wie RAW, JPEG, PNG usw.). In einigen Beispielen verfügt das Kamerasystem über mehrere unabhängige Kameras, z. B. zwecks Stereopsis (Stereosehen), wodurch das Kamerasystem in der Lage ist, die Tiefe wahrzunehmen. Obwohl die durch das Kamerasystem wahrgenommenen Objekte hier als „nahe“ beschrieben werden, gilt dies relativ zum AF. Im Betrieb kann das Kamerasystem dazu ausgelegt sein, weit entfernte Objekte zu „sehen“, z. B. bis zu einem Kilometer oder mehr vor dem AF. Dementsprechend kann das Kamerasystem über Merkmale wie Sensoren und Objektive verfügen, die für die Wahrnehmung weit entfernter Objekte optimiert sind.
-
Eine weitere Eingabe 502d ist ein Ampelerkennungs(AE)-System. Ein AE-System verwendet eine oder mehrere Kameras, um Informationen über Ampeln, Straßenschilder und andere physische Objekte zu erhalten, die visuelle Betriebsinformationen liefern. Ein AE-System erzeugt AE-Daten als Ausgabe 504d. AE-Daten liegen häufig in Form von Bilddaten vor (z. B. Daten in einem Bilddatenformat wie RAW, JPEG, PNG usw.). Ein AE-System unterscheidet sich von einem System mit einer Kamera dadurch, dass bei einem AE-System eine Kamera mit weitem Sichtfeld (z. B. mit einem Weitwinkelobjektiv oder einem Fischaugenobjektiv) verwendet wird, um Informationen über möglichst viele physische Objekte zu liefern, die visuelle Betriebsinformationen bereitstellen, sodass das AF 100 Zugriff auf alle relevanten Betriebsinformationen hat, die durch diese Objekte bereitgestellt werden. Beispielsweise kann der Sichtwinkel des AE-Systems ca. 120 Grad oder mehr betragen.
-
In einigen Ausführungsformen werden die Ausgänge 504a-d mittels einer Sensorfusionstechnik kombiniert. So werden entweder die einzelnen Ausgaben 504a-d anderen Systemen des AF 100 (z. B. einem Planungsmodul 404 wie in 4 dargestellt) zur Verfügung gestellt, oder die kombinierte Ausgabe kann den anderen Systemen entweder in Form einer einzelnen kombinierten Ausgabe oder mehrerer kombinierter Ausgaben derselben Art (z. B. unter Verwendung derselben Kombinationstechnik oder Kombination derselben Ausgaben oder beides) oder unterschiedlicher Arten (z. B. unter Verwendung jeweils unterschiedlicher Kombinationstechniken oder Kombination jeweils unterschiedlicher Ausgaben oder beides) zur Verfügung gestellt werden. In einigen Ausführungsformen wird eine frühzeitige Fusionstechnik verwendet. Eine frühzeitige Fusionstechnik zeichnet sich dadurch aus, dass die Ausgaben kombiniert werden, bevor ein oder mehrere Datenverarbeitungsschritte auf die kombinierte Ausgabe angewendet werden. In einigen Ausführungsformen wird eine späte Fusionstechnik verwendet. Eine späte Fusionstechnik zeichnet sich dadurch aus, dass die Ausgaben kombiniert werden, nachdem ein oder mehrere Datenverarbeitungsschritte auf die einzelnen Ausgaben angewendet wurden.
-
6 zeigt ein Beispiel für ein LiDAR-System 602 (z. B. die in 5 gezeigte Eingabe 502a). Das LiDAR-System 602 emittiert Licht 604a-c aus einem Lichtsender 606 (z. B. einem Lasersender). Das durch ein LiDAR-System emittierte Licht liegt in der Regel nicht im sichtbaren Spektrum; beispielsweise wird häufig Infrarotlicht verwendet. Ein Teil des emittierten Lichts 604b trifft auf ein physisches Objekt 608 (z. B. ein Fahrzeug) und wird zurück zum LiDAR-System 602 reflektiert. (Das durch ein LiDAR-System emittierte Licht durchdringt normalerweise keine physischen Objekte, z. B. physische Objekte in fester Form.) Das LiDAR-System 602 verfügt auch über einen oder mehrere Lichtdetektoren 610, die das reflektierte Licht detektieren. In einer Ausführungsform erzeugen ein oder mehrere mit dem LiDAR-System verknüpfte Datenverarbeitungssysteme ein Bild 612, das das Sichtfeld 614 des LiDAR-Systems darstellt. Das Bild 612 enthält Informationen, die die Begrenzungen 616 eines physischen Objekts 608 darstellen. Auf diese Weise wird das Bild 612 verwendet, um die Begrenzungen 616 eines oder mehrerer physischer Objekte in der Nähe eines AF zu bestimmen.
-
7 zeigt das LiDAR-System 602 im Betrieb. In dem in dieser Figur dargestellten Szenario empfängt das AF 100 sowohl die Kamerasystemausgabe 504c in Form eines Bildes 702 als auch die LiDAR-Systemausgabe 504a in Form von LiDAR-Datenpunkten 704. Beim Betrieb vergleicht das Datenverarbeitungssystem des AF 100 das Bild 702 mit den Datenpunkten 704. Insbesondere wird ein im Bild 702 identifiziertes physisches Objekt 706 ebenfalls unter den Datenpunkten 704 identifiziert. Auf diese Weise nimmt das AF 100 die Begrenzungen des physischen Objekts anhand der Kontur und Dichte der Datenpunkte 704 wahr.
-
8 zeigt die Funktionsweise des LiDAR-Systems 602 mit zusätzlichen Details. Wie oben beschrieben, erkennt das AF 100 die Begrenzung eines physischen Objekts anhand der Eigenschaften der durch das LiDAR-System 602 erfassten Datenpunkte. Wie in 8 gezeigt, reflektiert ein ebenes Objekt, wie z. B. der Boden 802, das durch ein LiDAR-System 602 emittierte Licht 804a-d auf konsistente Weise. Anders ausgedrückt, da das LiDAR-System 602 Licht in gleichmäßigen Abständen emittiert, reflektiert der Boden 802 das Licht mit dem gleichen konsistenten Abstand zum LiDAR-System 602 zurück. Während sich das AF 100 über den Boden 802 bewegt, erkennt das LiDAR-System 602 weiterhin das durch den nächsten gültigen Bodenpunkt 806 reflektierte Licht, falls nichts die Straße versperrt. Falls jedoch ein Objekt 808 die Straße versperrt, wird das durch das LiDAR-System 602 emittierte Licht 804e-f von den Punkten 810a-b in einer Weise reflektiert, die nicht mit der erwarteten Gleichmäßigkeit übereinstimmt. Aus diesen Informationen kann das AF 100 bestimmen, dass das Objekt 808 vorhanden ist.
-
Wegplanung
-
9 zeigt in einem Blockdiagramm 900 die Zusammenhänge zwischen Ein- und Ausgaben eines Planungsmoduls 404 (z. B. wie in 4 gezeigt). Allgemein ist die Ausgabe eines Planungsmoduls 404 eine Route 902 aus einem Startpunkt 904 (z. B. Quellort oder Anfangsort) und einem Endpunkt 906 (z. B. Ziel- oder Endort). Die Route 902 ist in der Regel durch ein oder mehrere Segmente definiert. Ein Segment ist zum Beispiel eine Entfernung, die mindestens über einen Abschnitt einer Straße, einer Landstraße, einer Autobahn, einer Einfahrt oder eines anderen für den Autoverkehr geeigneten physischen Bereichs zurückzulegen ist. In einigen Beispielen, z.B. falls das AF 100 ein geländegängiges Fahrzeug wie z.B. ein vierradgetriebener (4WD) oder allradgetriebener (AWD) PKW, SUV, Lieferwagen o. ä. ist, umfasst die Route 902 „geländegängige“ Segmente wie unbefestigte Wege oder offene Felder.
-
Zusätzlich zur Route 902 gibt ein Planungsmodul auch Daten zur Routenplanung auf Fahrstreifenebene 908 aus. Die Routenplanungsdaten auf Fahrstreifenebene 908 werden verwendet, um Segmente der Route 902 basierend auf den Bedingungen des Segments zu einem bestimmten Zeitpunkt zu durchfahren. Falls die Route 902 beispielsweise eine Autobahn mit mehreren Fahrstreifen umfasst, enthalten die Routenplanungsdaten auf Fahrstreifenebene 908 die Bewegungsbahnplanungsdaten 910, die das AF 100 verwenden kann, um einen Fahrstreifen unter den mehreren Fahrstreifen auszuwählen, z. B. in Abhängigkeit davon, ob sich eine Ausfahrt nähert, ob eine oder mehrere der Fahrstreifen andere Fahrzeuge aufweisen oder aufgrund anderer Faktoren, die im Laufe weniger Minuten oder weniger variieren. In ähnlicher Weise enthalten in einigen Implementierungen die Routenplanungsdaten auf Fahrstreifenebene 908 auch Geschwindigkeitsbeschränkungen 912, die spezifisch für ein Segment der Route 902 gelten. Falls das Segment zum Beispiel Fußgänger oder unerwarteten Verkehr enthält, können die Geschwindigkeitsbeschränkungen 912 das AF 100 auf eine Fahrgeschwindigkeit beschränken, die langsamer als eine erwartete Geschwindigkeit ist, z. B. eine Geschwindigkeit, die auf den Geschwindigkeitsbegrenzungsdaten für das Segment basiert.
-
In einer Ausführungsform umfassen die Eingaben an das Planungsmodul 404 auch die Datenbankdaten 914 (z. B. aus dem in 4 dargestellten Datenbankmodul 410), die aktuellen Standortdaten 916 (z. B. die in 4 dargestellte AF-Position 418), die Zielortdaten 918 (z. B. für den in 4 dargestellten Zielort 412) und die Objektdaten 920 (z. B. die klassifizierten Objekte 416, die durch das Wahrnehmungsmodul 402 wahrgenommen werden, wie in 4 gezeigt). In einigen Ausführungsformen enthalten die Daten der Datenbank 914 Regeln, die bei der Planung verwendet werden. Regeln werden durch eine formale Sprache spezifiziert, z. B. durch boolesche Logik. In jeder Situation, in der sich das AF 100 befindet, sind mindestens einige der Regeln auf die Situation anwendbar. Eine Regel gilt für eine gegebene Situation, falls die Regel Bedingungen enthält, die basierend auf den dem AF 100 zur Verfügung stehenden Informationen, z. B. Informationen über die Umgebung, erfüllt sind. Regeln können eine Priorität aufweisen. Beispielsweise kann eine Regel, die besagt: „Falls die Straße eine Autobahn ist, auf den äußerst linken Fahrstreifen wechseln“, eine niedrigere Priorität als „Falls die Ausfahrt sich innerhalb von 2 Kilometern nähert, auf den äußerst rechten Fahrstreifen wechseln“ haben.
-
10 zeigt einen gerichteten Graphen 1000, der bei der Bahnplanung z. B. durch das Planungsmodul 404 verwendet wird (4). Allgemein wird ein gerichteter Graph 1000 wie der in 10 gezeigte verwendet, um einen Weg zwischen einem beliebigen Startpunkt 1002 und Endpunkt 1004 zu bestimmen. In der Praxis kann die Entfernung zwischen dem Startpunkt 1002 und dem Endpunkt 1004 relativ groß (z. B. in zwei verschiedenen Ballungsgebieten) oder relativ klein (z. B. zwei Einmündungen, die an einen Stadtblock angrenzen oder zwei Fahrstreifen einer Straße mit mehreren Fahrstreifen) sein.
-
In einer Ausführungsform hat der gerichtete Graph 1000 Knoten 1006a-d, die verschiedene Orte zwischen dem Startpunkt 1002 und dem Endpunkt 1004 darstellen, die durch ein AF 100 belegt werden könnten. In einigen Beispielen, z. B. wenn der Startpunkt 1002 und der Endpunkt 1004 verschiedene Ballungsräume darstellen, stellen die Knoten 1006a-d Straßensegmente dar. In einigen Beispielen, z. B. wenn der Startpunkt 1002 und der Endpunkt 1004 verschiedene Orte auf derselben Straße darstellen, stellen die Knoten 1006a-d verschiedene Positionen auf dieser Straße dar. Auf diese Weise enthält der gerichtete Graph 1000 Informationen in unterschiedlicher Granularität. In einer Ausführungsform ist ein gerichteter Graph mit hoher Granularität auch ein Teilgraph eines anderen gerichteten Graphen mit einem größeren Maßstab. Zum Beispiel hat ein gerichteter Graph, bei dem der Startpunkt 1002 und der Endpunkt 1004 weit entfernt sind (z. B. viele Kilometer auseinander liegend), die meisten seiner Informationen in einer niedrigen Granularität und basiert auf gespeicherten Daten, enthält aber auch einige Informationen mit hoher Granularität für den Abschnitt des Graphen, der physische Orte im Sichtfeld des AF 100 darstellt.
-
Die Knoten 1006a-d unterscheiden sich von den Objekten 1008a-b, die sich nicht mit einem Knoten überlappen können. In einer Ausführungsform, wenn die Granularität gering ist, stellen die Objekte 1008a-b Regionen dar, die nicht mit dem Auto befahren werden können, z. B. Gebiete, die keine Straßen oder Wege aufweisen. Bei hoher Granularität stellen die Objekte 1008ab physische Objekte im Sichtfeld des AF 100 dar, z. B. andere Kraftfahrzeuge, Fußgänger oder andere Objekte, mit denen das AF 100 den physischen Raum nicht teilen kann. In einer Ausführungsform sind einige oder alle der Objekte 1008a-b statische Objekte (z. B. ein Objekt, das seine Position nicht ändert, wie eine Straßenlampe oder ein Strommast) oder dynamische Objekte (z. B. ein Objekt, das seine Position ändern kann, wie ein Fußgänger oder ein anderes Kraftfahrzeug).
-
Die Knoten 1006a-d sind durch die Kanten 1010a-c verbunden. Falls zwei Knoten 1006a-b durch eine Kante 1010a verbunden sind, ist es möglich, dass ein AF 100 zwischen dem einen Knoten 1006a und dem anderen Knoten 1006b fahren kann, z. B. ohne zu einem Zwischenknoten fahren zu müssen, bevor es am anderen Knoten 1006b ankommt. (Wenn wir von einem zwischen Knoten fahrenden AF 100 sprechen, meinen wir, dass sich das AF 100 zwischen den beiden physischen Positionen bewegt, die durch die jeweiligen Knoten dargestellt werden.) Die Kanten 1010a-c sind oft bidirektional, in dem Sinne, dass ein AF 100 von einem ersten Knoten zu einem zweiten Knoten oder vom zweiten Knoten zum ersten Knoten fährt. In einer Ausführungsform sind die Kanten 1010a-c unidirektional, in dem Sinne, dass ein AF 100 von einem ersten Knoten zu einem zweiten Knoten fahren kann, das AF 100 jedoch nicht vom zweiten Knoten zum ersten Knoten fahren kann. Die Kanten 1010a-c sind unidirektional, wenn sie z. B. Einbahnstraßen, einzelne Fahrstreifen einer Straße, eines Weges oder einer Landstraße oder andere Merkmale darstellen, die aufgrund rechtlicher oder physischer Beschränkungen nur in einer Richtung befahren werden können.
-
In einer Ausführungsform verwendet das Planungsmodul 404 den gerichteten Graphen 1000 zum Identifizieren eines Weges 1012, der aus Knoten und Kanten zwischen dem Startpunkt 1002 und dem Endpunkt 1004 besteht.
-
Eine Kante 1010a-c ist mit einem Aufwand 1014a-b verknüpft. Der Aufwand 1014a-b ist ein Wert, der die Ressourcen darstellt, die aufgewendet werden, falls das AF 100 diese Kante auswählt. Eine typische Ressource ist die Zeit. Falls zum Beispiel eine Kante 1010a eine physische Entfernung darstellt, die doppelt so groß wie die einer anderen Kante 1010b ist, kann der zugehörige Aufwand 1014a der ersten Kante 1010a doppelt so groß wie der zugehörige Aufwand 1014b der zweiten Kante 1010b sein. Andere Faktoren, die sich auf die Zeit auswirken, sind der erwartete Verkehr, die Anzahl der Einmündungen, Geschwindigkeitsbegrenzungen usw. Eine weitere typische Ressource ist der Kraftstoffverbrauch. Zwei Kanten 1010a-b können die gleiche physische Entfernung darstellen, aber eine Kante 1010a kann mehr Kraftstoff erfordern als eine andere Kante 1010b, z. B. aufgrund von Straßenbedingungen, voraussichtlichem Wetter usw.
-
Wenn das Planungsmodul 404 einen Weg 1012 zwischen dem Startpunkt 1002 und dem Endpunkt 1004 identifiziert, wählt das Planungsmodul 404 in der Regel einen aufwandsoptimierten Weg, z. B. den Weg mit dem geringsten Gesamtaufwand, wenn die einzelnen Aufwände der Kanten addiert werden.
-
Steuerung autonomer Fahrzeuge
-
11 zeigt in einem Blockdiagramm 1100 die Ein- und Ausgaben eines Steuermoduls 406 (z. B. wie in 4 gezeigt). Ein Steuermodul arbeitet gemäß einer Steuervorrichtung 1102, die z. B. einen oder mehrere Prozessoren (z.B. einen oder mehrere Computerprozessoren wie Mikroprozessoren oder Mikrocontroller oder beides) ähnlich dem Prozessor 304, einen Kurzzeit- und/oder Langzeitdatenspeicher (z. B. Direktzugriffsspeicher oder Flash-Speicher oder beides) ähnlich dem Hauptspeicher 306, ROM 1308 und Speichervorrichtung 210 und im Speicher gespeicherte Anweisungen enthält, die Operationen der Steuervorrichtung 1102 durchführen, wenn die Anweisungen ausgeführt werden (z. B. durch den einen oder die mehreren Prozessoren).
-
In einer Ausführungsform empfängt die Steuervorrichtung 1102 Daten, die eine gewünschte Ausgabe 1104 darstellen. Die gewünschte Ausgabe 1104 umfasst in der Regel eine Geschwindigkeit und eine Fahrtrichtung. Die gewünschte Ausgabe 1104 kann z.B. auf Daten basieren, die aus einem Planungsmodul 404 empfangen wurden (z. B. wie in 4 gezeigt). Die Steuervorrichtung 1102 erzeugt gemäß der gewünschten Ausgabe 1104 Daten, die als Drosselklappeneingabe 1106 und als Lenkungseingabe 1108 verwendet werden können. Die Drosselklappeneingabe 1106 stellt die Größe dar, in der die Drosselklappe (z.B. Beschleunigungssteuerung) eines AF 100 zu betätigen ist, z. B. durch Betätigen des Lenkpedals oder durch Betätigen einer anderen Drosselklappensteuerung, um die gewünschte Ausgabe 1104 zu erreichen. In einigen Beispielen umfasst die Drosselklappeneingabe 1106 auch Daten, die zum Betätigen der Bremse (z. B. Verlangsamungssteuerung) des AF 100 verwendet werden können. Die Lenkungseingabe 1108 stellt einen Lenkwinkel dar, z. B. den Winkel, in dem die Lenksteuerung (z. B. Lenkrad, Lenkwinkelsteller oder eine andere Funktion zur Steuerung des Lenkwinkels) des AF positioniert werden sollte, um die gewünschte Ausgabe 1104 zu erreichen.
-
In einer Ausführungsform empfängt die Steuervorrichtung 1102 eine Rückmeldung, die bei der Anpassung der für die Drosselklappe und Lenkung bereitgestellten Eingaben verwendet wird. Falls beispielsweise das AF 100 auf ein Hindernis 1110 wie z. B. einen Hügel trifft, wird die gemessene Geschwindigkeit 1112 des AF 100 unter die gewünschte Ausgabegeschwindigkeit abgesenkt. In einer Ausführungsform wird der Steuervorrichtung 1102 eine Messwertausgabe 1114 zur Verfügung gestellt, sodass die nötigen Anpassungen, z. B. basierend auf der Differenz 1113 zwischen der gemessenen Geschwindigkeit und der gewünschten Ausgabe, durchgeführt werden. Die gemessene Ausgabe 1114 umfasst die gemessene Position 1116, die gemessene Geschwindigkeit 1118 (einschließlich Drehzahl und Fahrtrichtung), die gemessene Beschleunigung 1120 und andere durch Sensoren des AF 100 messbare Ausgaben.
-
In einer Ausführungsform werden Informationen über die Störung 1110 im Voraus erkannt, z. B. durch einen Sensor wie eine Kamera oder einen LiDAR-Sensor, und einem vorausschauenden Rückmeldemodul 1122 zur Verfügung gestellt. Das vorausschauende Rückmeldemodul 1122 liefert dann Informationen an die Steuervorrichtung 1102, die die Steuervorrichtung 1102 zur entsprechenden Anpassung verwenden kann. Falls zum Beispiel die Sensoren des AF 100 einen Hügel erkennen („sehen“), können diese Informationen durch die Steuervorrichtung 1102 genutzt werden, um sich darauf vorzubereiten, die Drosselklappe zum geeigneten Zeitpunkt zu betätigen, um eine wesentliche Verlangsamung zu vermeiden.
-
12 zeigt ein Blockdiagramm 1200 der Eingaben, Ausgaben und Komponenten der Steuervorrichtung 1102. Die Steuervorrichtung 1102 weist einen Geschwindigkeitsprofilersteller 1202 auf, der den Betrieb einer Drosselklappen-/Bremssteuervorrichtung 1204 beeinflusst. Beispielsweise weist der Geschwindigkeitsprofilersteller 1202 die Drosselklappen-/Bremssteuervorrichtung 1204 an, eine Beschleunigung oder Verlangsamung unter Verwendung der Drosselklappe/Bremse 1206 einzuleiten, abhängig z. B. von der Rückmeldung, die durch die Steuervorrichtung 1102 empfangen und durch den Geschwindigkeitsprofilersteller 1202 verarbeitet wird.
-
Die Steuervorrichtung 1102 weist auch eine Seitenführungssteuervorrichtung 1208 auf, die den Betrieb einer Lenksteuervorrichtung 1210 beeinflusst. Zum Beispiel weist die Seitenführungssteuervorrichtung 1208 die Lenksteuervorrichtung 1204 an, die Position des Lenkwinkelstellers 1212 abhängig von z. B. der Rückmeldung anzupassen, die durch die Steuervorrichtung 1102 empfangen und durch die Seitenführungssteuervorrichtung 1208 verarbeitet wird.
-
Die Steuervorrichtung 1102 empfängt mehrere Eingaben, mit denen bestimmt wird, wie die Drosselklappe/Bremse 1206 und der Lenkwinkelsteller 1212 gesteuert werden sollen. Ein Planungsmodul 404 liefert Informationen, die durch die Steuervorrichtung 1102 verwendet werden, um z. B. eine Bewegungsrichtung zu wählen, wenn das AF 100 den Betrieb aufnimmt, und um zu bestimmen, welches Straßensegment befahren werden soll, wenn das AF 100 eine Einmündung erreicht. Ein Lokalisierungsmodul 408 liefert der Steuervorrichtung 1102 Informationen, die zum Beispiel den aktuellen Standort des AF 100 beschreiben, sodass die Steuervorrichtung 1102 bestimmen kann, ob sich das AF 100 an einem Ort befindet, der basierend auf der Art und Weise, in der die Drosselklappe/Bremse 1206 und der Lenkwinkelsteller 1212 gesteuert werden, erwartet wird. In einer Ausführungsform empfängt die Steuervorrichtung 1102 Informationen aus anderen Eingaben 1214, z.B. Informationen, die aus Datenbanken, Computernetzwerken usw. empfangen werden.
-
Erweiterte Objektverfolgung mittels RADAR
-
Vorverarbeitung
-
13A ist ein Flussdiagramm eines Vorgangs 1300 zur erweiterten Objektverfolgung unter Verwendung von RADAR gemäß einer oder mehreren Ausführungsformen. Der Vorgang beginnt durch Vorverarbeiten der rohen RADAR-Rückkehrpunkte (im Folgenden auch einfach als „Punkte“ bezeichnet) (1301). In diesem Schritt werden alle Punkte in der eingegebenen RADAR-Rohdatenpunktwolke, die weiter als eine Schwellenentfernung von einem früheren Kartenmerkmal (z. B. einer Straßengrenze) entfernt sind, und diejenigen Punkte mit einer kompensierten Distanzänderung von weniger als Y Metern/Sekunde (z. B. 1 m/s) herausgefiltert und von der Verwendung in der Nachverfolgung ausgeschlossen.
-
Der Vorgang 1300 setzt sich durch Akkumulieren von Punkten über mehrere Zeitschritte oder Frames fort (1302). Zum Beispiel werden in einer Ausführungsform die gefilterten Punkte für N RADAR-Zeitschritte/Frames unter Verwendung eines rollenden Puffers oder einer anderen geeigneten Datenstruktur akkumuliert, wobei N eine positive ganze Zahl größer als eins ist. Dieser Schritt impliziert, dass immer dann, wenn der RADAR-Sensor Punkte aus einem neuen Zeitschritt/Frame liefert, die Menge der Punkte aus dem ältesten Zeitschritt/Frame durch die neue Menge der Punkte für den aktuellen oder neuesten Zeitschritt/Frame ersetzt wird. Das Akkumulieren von Punkten für N Zeitschritte/Frames erhöht die Dichte der RADAR-Punktwolke um den Faktor N und erleichtert den Schritt zum Schätzen der Clustergeschwindigkeit, wie weiter unten im Detail beschrieben. Die gefilterten und akkumulierten Punkte werden dann zur weiteren Verarbeitung an einen Nachverfolgungsalgorithmus gesendet.
-
Clustern
-
Der Vorgang 1300 wird durch den Nachverfolgungsalgorithmus fortgesetzt, der die Punkte unter Verwendung eines dichtebasierten Clusteralgorithmus zu Objekten gruppiert (1303). In einer Ausführungsform werden die vorverarbeiteten Vorgänge unter Verwendung des bekannten DBSCAN(dichtebasierte räumliche Clusterung von Anwendungen mit Rauschen)-Algorithmus geclustert, der Punkte basierend auf der euklidischen Entfernung zwischen ihnen gruppiert. Der DBSCAN-Algorithmus beginnt mit einzelnen Punktclustem, die an Größe zunehmen, wenn sich Punkte in ihrer Nähe befinden. DBSCAN wurde verwendet, weil weder die Anzahl der Objekte (Cluster-Mittelpunkte) noch die Anzahl der Punkte pro Cluster im Voraus bekannt ist. Sowohl das Anwachsen von Clustern als auch die Einstufung von Punkten als verrauscht werden durch zwei Parameter bestimmt, nämlich durch eps und min_elts. Ein neuer Punkt wird Teil eines vorhandenen Clusters, wenn er sich innerhalb der Entfernung eps von einem beliebigen Punkt des Clusters befindet, und ein Cluster wird als Ausreißer eingestuft, wenn er weniger als min_elts Punkte in ihm aufweist.
-
DBSCAN erweitert einen Cluster, wenn der neue Punkt innerhalb eines Kreises mit Radius eps (verwendet kreisförmige Regionen um Punkten herum zum Vergrößern von Clustern) liegt. Da die meisten AFs auf der Straße in Richtung des Verkehrsflusses fahren und lang, aber nicht breit sind, wird in einer Ausführungsform der Kreis durch eine Ellipse ersetzt, deren Hauptachse parallel zur Richtung des Verkehrsflusses liegt. Durch Verwendung einer Ellipse lassen sich zum AF gehörende Punkte gruppieren, und es wird verhindert, dass aneinander angrenzende AFs gruppiert werden.
-
Nachdem alle Punkte geclustert wurden, werden für jeden der Cluster Metriken auf Clusterebene berechnet, einschließlich der Berechnung der Geschwindigkeit und der Bewegungsrichtung des Clusters (1304) und der Berechnung des Mittelpunkts und der Ausmaße (z.B. Länge, Breite) des Clusters (1307). Der Mittelpunkt des Clusters ist die repräsentative Position des Clusters, und es wird angenommen, dass alle zum Cluster gehörenden Punkte im Mittelpunkt konzentriert sind.
-
In einer Ausführungsform wird die Bewegungsrichtung θ des Clusters unter Verwendung seines Geschwindigkeitsschätzwertes gemäß Gleichung [1] berechnet:
-
Da die Geschwindigkeitskomponenten vx und vy in einem globalen Bezugskoordinatenrahmen berechnet werden, kann der Winkel, den ein Cluster mit der X-Achse des globalen Rahmens bildet (d. h. die Bewegungsrichtung des Clusters) mittels der Gleichung [1] geschätzt werden. Da die Berechnung der Länge und Breite einfacher ist, wenn die Punkte achsparallel ausgerichtet sind, werden alle Punkte im Cluster auf eine bestimmte Achse (z. B. die X-Achse) ausgerichtet, z. B durch Drehen jedes Punktes um -θ. Anschließend werden die Punkte, die den größten und kleinsten Wert entlang der X- und Y-Achse aufweisen, und die Länge und Breite des Clusters berechnet. Die Länge ist definiert als die maximale Entfernung zwischen den Punkten in Bewegungsrichtung (d. h. entlang der X-Achse), und die Breite ist die maximale Entfernung zwischen den Punkten rechtwinklig zur Bewegungsrichtung.
-
Unter Bezugnahme auf
13B werden die Extrempunkte
1308a...
1308d aus dem rohen Punktecluster
1317 bestimmt, und ein rechteckiger Begrenzungsrahmen
1309 wird durch die Extrempunkte
1308a...
1308d gezogen. Der Mittelpunkt des Clusters ist der geometrische Mittelpunkt des rechteckigen Begrenzungsrahmens
1319. In einer Ausführungsform werden die Koordinaten der Mittelpunkte gemäß den Gleichungen [2] und [3] berechnet:
wobei c
x und c
y die Koordinaten des Mittelpunkts des gedrehten Clusters sind. Anschließend wird der Mittelpunkt des Clusters um einen Winkel θ gedreht, und diese neuen gedrehten Koordinaten geben den Mittelpunkt des Clusters an.
-
Der Vorgang
1300 setzt sich fort, indem vorhandene Objektspuren unter Verwendung eines Bewegungsmodells mit konstanter Geschwindigkeit (
1302) propagiert und die Cluster mit den vorhandenen Objektspuren verknüpft werden (1306). Das Verknüpfen neuer Cluster mit vorhandenen Objektspuren ist nicht trivial, weil nicht bekannt ist, welcher Punkt zu welchem Objekt gehört und umgekehrt. Im Falle von RADAR werden Position und Geschwindigkeit zum Verknüpfen der in einer aktuellen Iteration berechneten Cluster mit den vorhandenen Objektspuren verwendet. Ein Cluster wird mit einer Spur verknüpft, wenn die Neuerung zwischen der vorhergesagten geschätzten Spur und dem Cluster am geringsten ist und die Neuerung jedes der Parameter unter halb eines vordefinierten Schwellenwerts liegt. Bei der Berechnung der Neuerung für die Positionsschätzungen I
pos wird die quadrierte Entfernung zwischen dem Mittelpunkt des Clusters und der Position der Spur berechnet, wie in den Gleichungen [4] dargestellt:
wobei x
track und y
track die geschätzte Position des Mittelpunkts der Spur darstellen und x
cluster und y
cluster die Koordinaten des Mittelpunkts des Clusters darstellen.
-
Bei der Berechnung der Neuerung für die Geschwindigkeitsschätzungen I
vel, wird die quadrierte Entfernung zwischen der Clustergeschwindigkeit und der Geschwindigkeit der Spur berechnet, wie in Gleichung [5] gezeigt:
wobei
bzw.
die achsparallel ausgerichtete Geschwindigkeit der Spur und des Clusters darstellen.
-
Schätzung der Clustergeschwindigkeit
-
Der RADAR-Sensor liefert die Position, die Radialgeschwindigkeit (Distanzänderung) und die Peilrichtung des Punktes in Bezug auf den RADAR-Sensor. Unter der Annahme, dass sich alle Punkte, die von einem Objekt reflektiert werden, mit der gleichen Geschwindigkeit bewegen (d. h. alle Objekte in der Welt sind starr), wird die Geschwindigkeit des Clusters durch Lösen eines linearen Gleichungssystems [6] berechnet:
-
In den Gleichungen [6] bezieht sich v
rn auf die kompensierte Distanzänderung des n-ten Punktes im Cluster, entsprechen v
x, v
y den Geschwindigkeitskomponenten entlang der X- und Y-Achse des Clusters im globalen Bezugsframe und bezieht sich ϕ
n auf die Peilrichtung des n-ten Punktes im Cluster im globalen Bezugsframe, wie in
14 dargestellt. Die Peilwerte werden durch den RADAR-Sensor geliefert und befinden sich im lokalen Bezugsframe des RADAR-Sensors. Sie können in den globalen Bezugsframe umgewandelt werden, indem die Lage des Sensors im globalen Bezugsframe abgefragt wird und die Rotation zwischen dem RADAR-Sensor und dem globalen Bezugsframe um die vertikale Achse zum Peilwert addiert wird. Mathematisch ist die Beziehung in Gleichung [7] dargestellt:
wobei ϕ
about_z der Winkel zwischen dem Sensor und dem globalen Bezugsframe um die vertikale (Z-)Achse ist.
-
In einer Ausführungsform wird die zum Schätzen der Clustergeschwindigkeit benötigte kompensierte Distanzänderung berechnet, indem zuerst die durch den RADAR-Sensor ermittelte Distanzänderung des Egofahrzeugs berechnet und dann die gemessene Distanzänderung wie in Gleichung [10] gezeigt addiert wird. Die Distanzänderung des Egofahrzeugs wiederum wird geschätzt, indem zunächst die Bewegung am RADAR-Sensor unter Verwendung der bekannten Geschwindigkeit des Egofahrzeugs berechnet und anschließend die bekannte Geschwindigkeit auf eine Linie projiziert wird, die den RADAR-Sensor und den Reflexionspunkt verbindet, wie in den Gleichungen [8] und [9] beschrieben:
-
Hier stellen
und ω
s die berechnete Bewegung dar, wie sie durch den RADAR-Sensor wahrgenommen wird, x
S, y
S und x
E, y
E bezeichnen jeweils die Position des Egofahrzeugs, und
und ω
E stellen die bekannte Bewegung des Egofahrzeugs dar, ṙ
E, ṙ
meas und ṙ
comp bezeichnen jeweils die gemessene und kompensierte Distanzänderung des Egofahrzeugs, und ϕ und α
s stellen jeweils die Peilung des Rückkehrpunktes in Bezug auf den RADAR-Sensor und den Winkel des RADAR-Sensors in Bezug auf das Fahrzeug dar.
-
Das lineare Gleichungssystem [6] kann gelöst werden, wenn mehr als zwei verschiedene Punkte in dem Cluster vorhanden sind. Die Herausforderung ergibt sich jedoch aus der Tatsache, dass die Radarmessungen sehr verrauscht sind und die Verwendung der Gleichungen [6] und [7] zu falschen Geschwindigkeitsschätzungen führen würde. In einer Ausführungsform wird die Geschwindigkeit des Clusters mittels eines Ansatzes der kleinsten Quadrate berechnet. Dieser Ansatz minimiert den quadrierten Fehler, um die optimalste Lösung zu berechnen. Dieser Ansatz ist jedoch empfindlich gegenüber Ausreißern und Rauschen in der Punktwolke und kann selbst bei Vorhandensein eines einzigen Ausreißers zu falschen Ergebnissen führen. Da die Eingabedaten sehr verrauscht sind und viele Reflexionen aufweisen (z. B. die Radkästen und andere zufällige Stellen des AF), kann dieser Ansatz ungenaue Schätzungen der Clustergeschwindigkeit liefern. Auf der positiven Seite ist jedoch der Ansatz der kleinsten Quadrate schnell, erfasst alle Punkte auf einmal und garantiert jedes Mal die gleiche Ausgabe, wenn die gleiche Menge an Punkten als Eingabe bereitgestellt wurde.
-
Um die Ausreißerpunkte aus dem Cluster zu entfernen, kann in einer Ausführungsform ein RANSAC-basierter Ansatz verwendet werden. Der RANSAC-Algorithmus arbeitet durch zufälliges Auswählen zweier Punkte aus dem Cluster und Lösen des linearen Gleichungssystems [4] unter Verwendung der beiden Punkte. Der projizierte Fehler wird dann für alle Punkte im Cluster berechnet, und die Punkte werden als Einlieger oder Ausreißer eingestuft. Der projizierte Fehler wird bestimmt, indem die geschätzte Distanzänderung des gegebenen Punktes v
x und v
y bestimmt und anschließend die Differenz zwischen der geschätzten und der tatsächlichen Distanzänderung berechnet wird, was mathematisch durch die Gleichungen [11] und [12] dargestellt wird.
wobei v̂
r die geschätzte Distanzänderung ist, v̂
x und v̂
y die geschätzten Geschwindigkeitskomponenten des Clusters sind, ϕ die Peilung des Punktes im globalen Bezugsframe gemessen durch den RADAR-Sensor und v
r die Distanzänderung des Punktes gemessen durch den RADAR-Sensor ist. Ein Punkt gilt als Einlieger, wenn sein Fehler kleiner als ein vordefinierter Schwellenwert ist. Dieser gesamte Vorgang wird mehrfach wiederholt, und die Iteration, die die größte Anzahl von Einliegern aufweist, wird zum Berechnen der endgültigen geschätzten Geschwindigkeit verwendet. Die endgültige geschätzte Geschwindigkeit wird dann durch Anwendung des Ansatzes der kleinsten Quadrate auf die Menge der Einlieger berechnet.
-
Der RANSAC-Algorithmus wird nur zur Unterscheidung der Ausreißer von der Menge der Einlieger verwendet, worauf anschließend der Algorithmus der kleinsten Quadrate folgt, um die tatsächliche Geschwindigkeit des Clusters zu berechnen. RANSAC funktioniert normalerweise gut, wenn viele Punkte vorhanden sind, von denen die meisten Einlieger sind, aber in unserem Fall ist die Anzahl der Punkte pro Cluster sehr gering, und es kommt häufig vor, dass die Anzahl der Ausreißer mit der Anzahl der Einlieger vergleichbar ist. Ferner ist die Durchführung des RANSAC-Algorithmus rechenintensiv, da der Algorithmus der kleinsten Quadrate mehrmals (einmal pro Iteration) ausgeführt wird.
-
In einer Ausführungsform wird ein RLS-Filter zum Schätzen der Clustergeschwindigkeit verwendet. Das RLS-Filter ist ein adaptives Filter, das die Parameter rekursiv aktualisiert, um die gewichtete Aufwandsfunktion der kleinsten Quadrate im Vergleich zu den gewöhnlichen kleinsten Quadraten (OLS), die die mittlere Lösung der kleinsten Quadrate findet, zu minimieren. Der RLS-Algorithmus beginnt mit anfänglichen Schätzwerten der Geschwindigkeiten und der damit verknüpften Kovarianz, die dann jedes Mal aktualisiert werden, wenn ein neuer Punkt aus dem Cluster in das Filter eintritt. Das RLS-Filter konvergiert rasch und ist schnell, da es rekursiv ist und nicht bei jeder Iteration die Geschwindigkeit unter Verwendung aller Punkte im Cluster neu berechnen muss (der Zustandsvektor erfasst Informationen von allen bis dahin betrachteten Punkten). Die RLS-Aktualisierungsgleichungen [13] und [14] sind gegeben durch:
-
In den Gleichungen [13] und [14] ist
ein Vektor, der die geschätzten Geschwindigkeiten des Clusters v
x und v
y enthält, n der Index des Punktes im Clusters im Bereich 1...N, P eine positiv definite Matrix, die als Skalierfaktor für die Parameteraktualisierung angesehen werden kann, ϕ(n) ein Vektor, der die cos(ϕ)- und sin(ϕ)-Werte für den n-ten Punkt im Cluster enthält, und y(n) der gemessene Wert der Distanzänderung für den n-ten Punkt im Cluster. Das RLS-Filter wird mit einem von drei Verfahren initialisiert: Nullinitialisierung, Initialisierung aus zwei zufälligen Punkten im Cluster und Initialisierung aus der Clusterakkumulationshistorie.
-
Nullinitialisierung
-
In einer Ausführungsform werden
auf 0 und P
0 auf eine mit einem Skalierfaktor multiplizierte Identitätsmatrix initialisiert. Diese Initialisierung funktioniert gut, wenn die Anzahl der Datenpunkte groß ist (normalerweise ein zeitbasierter Datenstrom) und genügend Iterationen für das RLS-Filter zur Verfügung stehen, um gegen den tatsächlichen Wert zu konvergieren. Es wurde jedoch beobachtet, dass das RLS-Filter in den Fällen gegen den tatsächlichen Wert konvergieren, in denen die Anzahl der Punkte zu klein ist, eine Geschwindigkeitskomponente die andere Geschwindigkeitskomponente dominiert und große Ausreißer in den Daten das Filter vom tatsächlichen Wert wegziehen.
-
Eine weitere große Fehlerquelle, die nicht spezifisch für die Nullinitialisierung ist, sind die großen Ausreißer im Cluster. Ausreißer sind Punkte, die von Reifen, Radkästen und anderen Teilen des Fahrzeugs reflektiert werden, die sich im Vergleich zum Fahrzeug selbst wesentlich langsamer/schneller bewegen. Wenn diese Punkte nicht berücksichtigt werden, können sie dazu führen, dass das Filter zu falschen Werten konvergiert. Da nicht direkt bestimmt werden kann, welcher Punkt eine Ausreißermessung ist und welcher nicht, wird in einer Ausführungsform der Aktualisierungsschritt des RLS-Filters verwendet, um die Punkte zu einzustufen und die eingestuften Ausreißer von der weiteren Verarbeitung auszuschließen.
-
Ändert ein Aktualisierungsschritt nach den ersten N (z. B. 3) Schritten (empirisch beobachtet als die Anzahl der Punkte, die das Filter benötigt, um gegen einen ausreichend stabilen Schätzwert zu konvergieren) die Geschwindigkeitskomponenten vx oder vy, um einen Betrag, der größer als ein vordefinierter Schwellenwert ist, so wird der Punkt, der die Aktualisierung durchgeführt hat, als Ausreißer eingestuft und von der weiteren Verarbeitung ausgeschlossen. Um den Fall zu behandeln, dass die Ausreißer die ersten drei Aktualisierungen vornehmen, was dazu führt, dass alle anderen korrekten Messungen als Ausreißer eingestuft werden, wird eine Gruppe von RLS-Filtern (z. B. 10 RLS-Filter) initialisiert, wobei jedes Filter eine randomisierte Folge von Datenpunkten empfängt, wie ausführlicher mit Bezug auf 15 beschrieben wird. Durch Randomisieren der Eingabereihenfolge wird sichergestellt, dass nicht alle Filter gegen den falschen Wert konvergieren. Das Filter, dessen vx- und vy -Schätzwerte den kleinsten Reprojektionsfehler ergeben, wird gewählt, und sein Geschwindigkeitsschätzwert wird als Geschwindigkeit des Clusters betrachtet.
-
Initialisierung aus zwei zufälligen Punkten
-
Um die Probleme mit der Nullinitialisierung zu lösen, wird das RLS-Filter nicht mit 0 initialisiert und auf seinen tatsächlichen Wert iteriert, sondern nahe an seinem Endwert initialisiert, sodass es den Endwert auf den tatsächlichen Schätzwert verfeinern kann. Ein Ansatz zum Initialisieren des Geschwindigkeitsschätzwertes nahe am Endwert besteht darin, zwei Punkte aus dem Cluster zufällig auszuwählen und das lineare Gleichungssystem unter Verwendung der beiden Punkte zu lösen. Es kann manchmal vorkommen, dass ein Ausreißer ausgewählt wird und der anfängliche Geschwindigkeitsschätzwert weit vom tatsächlichen Wert entfernt ist, aber dies wird weitgehend abgeschwächt, indem entweder die N RLS-Filter unter Verwendung verschiedener Datenpunktpaare initialisiert werden oder indem ein Anfangswert nur dann akzeptiert wird, wenn die Norm des anfänglichen Geschwindigkeitsschätzwerts innerhalb einer vordefinierten Schwelle liegt (Ausreißer führen normalerweise zu sehr großen Geschwindigkeitsschätzwertnormen).
-
Ein solcher Ansatz verbessert die Leistung des Geschwindigkeitsschätzwerts, jedoch leidet der Ansatz darunter, dass er Informationen aus dem Cluster wiederverwendet und keine neuen Informationen im Vorgang erlernt werden (die Initialisierung und das Filter verwenden die gleiche Menge von Punkten). Ferner, wenn die Anzahl der Punkte im Cluster gering ist, weist das Filter nicht genügend Punkte von sich selbst auf und kann am Ende beim Anfangswert stagnieren.
-
Initialisierung aus der Clusterakkumulationshistorie
-
In einer Ausführungsform werden Informationen aus der Clusterhistorie zum Initialisieren des RLS-Filters verwendet. Wie bereits erwähnt, werden Punkte aus mehreren Zeitschritten/Frames akkumuliert, um die Dichte der RADAR-Punktwolke zu erhöhen. Diese Punktwolkenakkumulation kann ausgenutzt werden, und die Initialisierungsgeschwindigkeit für das Filter kann durch Berechnen der Änderung der Position des Clustermittelpunkts zwischen dem frühesten und dem spätesten Zeitschritt/Frame geschätzt werden, wobei Punkte innerhalb der Akkumulation durch die zwischen den Zeitschritten/Frames verstrichene Zeit dividiert werden. Als Clustermittelpunkt in einem bestimmten Zeitschritt/Frame wird der Mittelwert aller in diesem Cluster in diesem Zeitschritt/Frame vorhandenen Punkte angenommen.
-
Ein wesentlicher Vorteil dieses Ansatzes besteht darin, dass er nicht die fehleranfälligen Messungen der Distanzänderung der Punkte, sondern nur die zuverlässigeren Positionsschätzungen des RADAR-Sensors verwendet. Dies mindert die meisten durch Ausreißer verursachten Probleme, die überwiegend nur bei den Messungen der Distanzänderung des RADAR-Sensors auftreten. Es können jedoch immer noch Probleme mit der Initialisierung bestehen, da nicht in allen Zeitschritten/Frames Rückkehrer vom gleichen Ort auf dem Objekt erzielt werden, wodurch der anfängliche Geschwindigkeitsschätzwert über- oder unterschätzt werden könnte. Wenn beispielsweise der erste Zeitschritt/Frame nur einen Rückkehrer, der zufällig von vorne links des Objekts kommt, und der letzte Zeitschritt/Frame nur einen Rückkehrer von vorne rechts des Objekts aufweist, weist der anfängliche Geschwindigkeitsschätzwert eine Komponente in der Richtung rechtwinklig zur tatsächlichen Bewegungsrichtung des Objekts auf, weil der durch die Verwendung unterschiedlicher Punkte am Objekt eingeleitete Fehler auftritt. Es wurde jedoch festgestellt, dass dieser Fehler bei der anfänglichen Messung keinen Einfluss auf den endgültigen Geschwindigkeitsschätzwert hatte und die meisten Filter gegen den tatsächlichen Geschwindigkeitsschätzwert konvergierten.
-
Sobald die Geschwindigkeit des Clusters geschätzt wurde, wird die Neuerung zwischen der Geschwindigkeit des Clusters und der vorhergesagten Geschwindigkeit der Spur berechnet. Diese Neuerung in Verbindung mit der Neuerung zwischen dem Positionsschätzwert und der vorhergesagten Position der Spur wird zum Bestimmen verwendet, ob ein Cluster zu einer Spur gehört oder nicht.
-
Cluster-Spur-Verknüpfung und Spurverwaltung
-
Sobald die Cluster-Spur-Verknüpfung abgeschlossen ist, werden die Spuren und Cluster auf drei verschiedene Arten behandelt, je nachdem, ob ein Cluster mit einer Spur verknüpft ist, nicht mit einer Spur verknüpft ist oder eine Spur nicht mit einem Cluster verknüpft ist.
-
Cluster mit einer Spur verknüpft und Spur aktualisiert
-
Wenn die Neuerungen sowohl der Position als auch der Geschwindigkeit des Clusters einen vordefinierten Schwellenwert unterschreiten, wird der Cluster mit einer Spur mit der kleinsten Neuerungssumme verknüpft. Zwei oder mehr Cluster können mit der gleichen Spur verknüpft werden, sodass der erste Schritt darin besteht, Punkte aus allen Clustern, die mit der gleichen Spur verknüpft sind, zusammenzufassen (1308). Das Zusammenfassen von Punkten beinhaltet das Zusammengruppieren aller Punkte und das Neuberechnen der Parameter wie Position, Geschwindigkeit und Ausmaße des größeren Clusters.
-
In einer Ausführungsform wird der Zustand der Spur durch einen 6-D-Vektor beibehalten, der ihre Position, Geschwindigkeit und Abmessungen festhält. Mathematisch kann der Zustand als [x, y, vx, vy, l, w] dargestellt werden, wobei x und y die Position in der X-Y-Ebene darstellen, vx und vy die Geschwindigkeitskomponenten bezeichnen und l und w die Länge und Breite der Spur darstellen. Die Spur wird mit einem Kalman-Filter behandelt. In einer Ausführungsform wird ein lineares Kalman-Filter (LKF) verwendet. In anderen Ausführungsformen, in denen kein Bewegungsmodell mit konstanter Geschwindigkeit verwendet wird, wird ein Unscented-Kalman-Filter (UKF) oder ein Erweitertes Kalman-Filter (EKF) zur Behandlung der Nichtlinearität im System verwendet. In einer bevorzugten Ausführungsform verwendet das LKF ein Bewegungsmodell mit konstanter Geschwindigkeit zur VorhersageDurch Verwendung eines LKF, da keine Nichtlinearität im System vorhanden ist. Die Geschwindigkeitsschätzungen sind genau genug, um den Zustand direkt zu aktualisieren, ohne eine Nichtlinearität in das System einführen zu müssen. Wenn neue Messungen mit einer Spur verknüpft werden, wird der Zustand der Spur unter Verwendung des LKF-Aktualisierungsschritts (1311) aktualisiert. Die Aktualisierungsgleichungen des LKF sind bekannt und brauchen hier nicht beschrieben zu werden. Wird eine Spur mehrfach mit einem Cluster verknüpft (1314), so wird der Status der Spur auf AKTUALISIERT gesetzt. Andernfalls erfolgt keine Änderung des Spurstatus (1313).
-
In einer Ausführungsform kann der Zustandsvektor des LFK zusätzliche zu schätzende Zustandsparameter aufweisen, einschließlich, aber nicht beschränkt auf, Sensorverzerrung und Driftfehler.
-
Cluster ohne Verknüpfung mit einer Spur
-
Wenn ein Cluster mit keiner Spur verknüpft ist, wird eine neue Spur erstellt, wobei die Zustandsparameter unter Verwendung der entsprechenden Parameter des Clusters (1309) initialisiert werden. Da die meisten der beobachteten Objekte AFs sind, werden die Länge und Breite der Spur auf 4 Meter bzw. 2 Meter instanziiert. Diese neue Spur wird mit einem auf NEU (1312) gesetzten Spurstatus initialisiert und bleibt ungültig, bis die Spur mit mehreren Iterationen (z. B. 3 Iterationen) in einem Cluster verknüpft ist. Dadurch soll verhindert werden, dass Rauschen und andere zufällige Reflexionen Spuren erzeugen, die die Endausgabe der RADAR-Verfolgungseinrichtung beeinflussen können.
-
Spur ohne Verknüpfung mit einem Cluster
-
Wenn eine vorhandene Spur nicht mit einem Cluster verknüpft ist, wird der Spurstatus von entweder NEU oder AKTUALISIERT in LEERLAUF (1310) geändert. Die Spur wurde bereits vor der Cluster-Spur-Verknüpfungsphase propagiert, sodass keine zusätzlichen Berechnungen durchgeführt werden müssen. Wenn dieselbe Spur über mehrere aufeinanderfolgende Iterationen (z. B. 6 Iterationen) hinweg mit keinem Cluster verknüpft ist, gilt die Spur als veraltet; ihr Status wird in UNGÜLTIG geändert, und die Spur wird abgebrochen (z. B. aus dem Speicher gelöscht).
-
15 ist ein Flussdiagramm eines Vorgangs zur Schätzung der Clustergeschwindigkeit 1500 gemäß einer oder mehreren Ausführungsformen. Wie bereits erwähnt, wird zur Bearbeitung des Falls, dass Ausreißer die ersten drei Aktualisierungen vornehmen, die dazu führen, dass alle anderen korrekten Messungen als Ausreißer eingestuft werden, eine Gruppe von RLS-Filtern verwendet. 1...N (z. B. 10 RLS-Filter).
-
Der Vorgang
1500 beginnt durch Initialisieren von Parametern (z. B.
) einer Gruppe von RLS-Filtern 1...N 1501. In einer Ausführungsform wird die Geschwindigkeit jedes RLS-Filters unter Verwendung der aus der Clusterakkumulationshistorie berechneten Geschwindigkeit initialisiert, die durch Schätzung, wie viel sich die Rückkehrpunkte bewegt haben, dividiert durch die Zeitdifferenz zwischen den Zeitschritten oder Frames, dargestellt wird. Außerdem werden die Rückkehrpunkte in den Clustern so gemischt, dass sie in unterschiedlichen zufälligen Reihenfolgen vorliegen, um die Gruppe der RLS-Filter zu aktualisieren.
-
Für jedes RLS-Filter wird die Reihenfolge der Punkte gemischt (1502-1, 1502-2...1502-N), die Parameterwerte für jeden Punkt werden aktualisiert (1503-1, 1503-2...1503-N), die Aktualisierung für jeden Punkt wird abgelehnt, wenn die Änderung der Parameter nach der Aktualisierung zu groß ist (1504-1, 1504-2 ... 1504-N). Das Filter, dessen vx- und vy-Schätzwerte den kleinsten Reprojektionsfehler ergeben, wird gewählt, und seine Geschwindigkeitsschätzung wird als Geschwindigkeit des Clusters (1505) betrachtet.
-
16A-16C veranschaulichen Begrenzungsrahmen, die unter Verwendung der erweiterten Objektverfolgung unter Verwendung von RADAR gemäß einer oder mehreren Ausführungsformen erstellt wurden. Bezugnehmend auf 16A und 16B, verfolgt der EOT-Begrenzungsrahmen 1601 die Punkte 1602 eines die Fahrtrichtung ändernden Objekts (z. B. eines Fahrzeugs, das den Fahrstreifen wechselt) korrekt, wohingegen der Nicht-EOT-Begrenzungsrahmen 1602 das Objekt fälschlicherweise als geradeaus fahrend verfolgt. Man beachte auch, dass der EOT-Begrenzungsrahmen 1601 die Länge und Breite des Objekts genauer als der Nicht-EOT-Begrenzungskasten 1602 misst. Bezugnehmend auf 16C, verfolgt der EOT Begrenzungsrahmen 1601 ein einzelnes ausgedehntes Objekt (z. B. einen langen LKW oder Bus) korrekt durch die Kombination von zwei Clustern, im Gegensatz zu den Nicht-EOT-Begrenzungsrahmen 1602a, 1602b, die fälschlicherweise die gleichen zwei Cluster als unterschiedliche Objekte verfolgen.
-
Wie in 16A-16C gezeigt, liefern die offenbarten EOT-Ausführungsformen eine genaue Berechnung der Ausmaße (Länge und Breite) der Objekte zusätzlich zu ihrer Position und Geschwindigkeit, erzielen eine bessere Verfolgung von langen Objekten wie Lastwagen und Bussen, die mit mehreren Clustern verknüpft sein können, und erreichen eine bessere Verfolgung von Objekten, die die Fahrtrichtung ändern, und weisen eine geringere Abhängigkeit von der Genauigkeit des Clusteralgorithmus auf.
-
17 ist ein Flussdiagramm eines Vorgangs 1700 zur erweiterten Objektverfolgung unter ausschließlicher Verwendung von RADAR-Rückkehrpunkten gemäß einer oder mehreren Ausführungsformen.
-
Der Vorgang 1700 beginnt mit dem Empfangen von Rückkehrpunkten von RADAR-Sendungen aus mindestens einem RADAR-Sensor des Fahrzeugs (1701) unter Verwendung eines oder mehrerer Computerprozessoren eines Fahrzeugs und dem Erzeugen eines oder mehrerer Cluster der Rückkehrpunkte (1702), unter Verwendung des einen oder der mehreren Computerprozessoren. Cluster können zum Beispiel mit einem dichtebasierten Clusteralgorithmus wie z. B. DBSCAN erzeugt werden, der so geändert wird, dass zum Vergrößern von Clustern elliptische Regionen eine Hauptachse in Richtung des Verkehrsflusses verwenden.
-
Der Vorgang 1700 wird durch Berechnen einer geschätzten Position und Geschwindigkeit jedes des einen oder der mehreren Cluster (1703) unter Verwendung des einen oder der mehreren Computerprozessoren fortgesetzt. Zum Beispiel kann eine Gruppe von RLS-Filtern zum Schätzen der Clustergeschwindigkeit verwendet werden, wie mit Bezug auf 15 und 18 ausführlich beschrieben. Die Filter können wie mit Bezug auf 15 und 18 beschrieben initialisiert werden.
-
Der Vorgang 1700 wird fortgesetzt, indem unter Verwendung des einen oder der mehreren Prozessoren bestimmt wird, ob ein oder mehrere Cluster mit einer vorhandenen Objektspur (1704) verknüpft sind. Zum Beispiel können die Cluster mit vorhandenen Objektspuren unter Verwendung von Änderungen der Position und Geschwindigkeit verknüpft werden, wie mit Bezug auf 13A beschrieben.
-
Der Vorgang 1700 wird durch Aktualisieren der bestehenden Objektspur unter Verwendung der jeweiligen Positionen und geschätzten Geschwindigkeiten des einen oder der mehreren mit der vorhandenen Objektspur verknüpften Cluster fortgesetzt, wenn das eine oder die mehreren Cluster mit einer vorhandenen Objektspur verknüpft sind. Zum Beispiel wird ein LKF verwendet, um vorhandene Objektspuren unter Verwendung der Clusterposition und der geschätzten Clustergeschwindigkeit zu halten und zu aktualisieren.
-
18 ist ein Flussdiagramm eines Vorgangs 1800 zum Berechnen der momentanen Geschwindigkeit eines Clusters gemäß einer oder mehreren Ausführungsformen. Der Vorgang 1800 beinhaltet drei Stufen: Initialisierung 1801, Parameteraktualisierung 1802 und Filterauswahl 1803. In der Initialisierungsphase 1801 werden die Parameter des RLS-Filters unter Verwendung der Spurhistorie (1804) initialisiert.
-
In der Parameteraktualisierungsstufe 1802 wird die Punktreihenfolge gemischt (1804) und werden potentielle Aktualisierungsparameter berechnet (1806). Falls ein Punktindex größer als N (z. B. 3) ist (1807) und die Parameteränderung größer als ein vordefinierter Schwellenwert ist (1808), wird der Rückkehrpunkt als Ausreißer betrachtet und von der weiteren Bearbeitung ausgeschlossen (1810). Falls der Punktindex kleiner oder gleich N (1807) ist, werden die Filterparameter aktualisiert (1809).
-
In der Filterauswahlstufe 1803 wird für jedes Filter der reprojizierte Fehler berechnet (1811) und das Filter mit dem kleinsten Reprojektionsfehler bestimmt (1812). Die geschätzte Geschwindigkeit des Filters mit dem kleinsten Reprojektionsfehler wird bei der folgenden Bearbeitung als geschätzte Geschwindigkeit für den Cluster verwendet.
-
In der vorgenannten Beschreibung wurden Ausführungsformen der Erfindung unter Bezugnahme auf zahlreiche spezifische Details beschrieben, die von Umsetzung zu Umsetzung verschieden sein können. Die Beschreibung und die Zeichnungen sind dementsprechend in einem veranschaulichenden statt einem einschränkenden Sinn zu sehen. Der einzige und ausschließliche Indikator für den Umfang der Erfindung und das, was durch die Anmelder als Umfang der Ausführungsformen beabsichtigt ist, ist der wörtliche und äquivalente Umfang der Menge der Ansprüche, die aus dieser Anmeldung in der spezifischen Form hervorgehen, in der diese Ansprüche ausgestellt sind, einschließlich etwaiger späterer Korrekturen. Alle hier ausdrücklich dargelegten Definitionen für Begriffe, die in diesen Ansprüchen enthalten sind, regeln die Bedeutung der in den Ansprüchen verwendeten Begriffe. Darüber hinaus kann bei Verwendung des Begriffs „ferner umfassend“ in der vorstehenden Beschreibung oder in den folgenden Ansprüchen das auf diese Formulierung Folgende ein zusätzlicher Schritt oder eine zusätzliche Einrichtung oder ein Unterschritt bzw. eine Untereinrichtung eines bereits erwähnten Schritts oder einer bereits erwähnten Einrichtung sein.