-
Die vorliegende Offenbarung beansprucht die Priorität der vorläufigen US-Patentanmeldung mit der Serien-Nr.
62/950,076 mit dem
Titel „CAMERA-TO-LIDAR CALIBRATION AND VALIDATION", eingereicht am 18. Dezember 2019, deren gesamter Inhalt hiermit durch Bezugnahme aufgenommen werden.
-
TECHNISCHES GEBIET
-
Diese Beschreibung betrifft allgemein den Betrieb von Fahrzeugen und insbesondere Kamera-zu-LiDAR-Konfiguration und -Validierung.
-
HINTERGRUND
-
Viele robotischen Aufgaben sind auf Sensorfusion angewiesen, um die Defizite jedes einzelnen Sensors zu überwinden. Autonome Fahrzeuge funktionieren beispielsweise, indem komplementäre Sensorinformationen, die von den fahrzeuginternen Sensoren erhalten werden, fusioniert werden. Die durch die Kameras des Fahrzeugs wahrgenommenen dichten zweidimensionalen Farb-, Erscheinungsbild- und Texturinformationen werden mit den spärlichen dreidimensionalen Tiefen- und Strukturinformationen assoziiert, die durch die LiDAR-Systeme (LiDAR: Lichtdetektion und -entfernungsmessung) in der Wahrnehmungspipeline bereitgestellt werden. Dies ermöglicht autonomen Fahrzeugen, ein tieferes Verständnis der umliegenden Umgebung zu erzeugen.
-
Die Fusion multimodaler Sensordaten erfordert, dass alle Sensorinformationen mit Bezug auf ein gemeinsames Koordinatensystem ausgedrückt werden. Daher muss die exakte Stellung (Orientierung und Translation) jedes an einer robotischen Plattform montierten Sensors berechnet werden. Varianzen bei der Herstellung von Sensorhalterungen bedeuten typischerweise, dass eine exakte Sensorstellung nicht aus schematischen Plänen gefolgert werden kann. Zusätzlich muss eine Sensorsuite möglicherweise erneut kalibriert werden, da die extrinsischen Kalibrationswerte aufgrund durch Ruckbewegungen verursachter Verschiebungen der Stellungen der Sensoren mit der Zeit driften können.
-
Die Forschung in diesem Gebiet hat zahlreiche Lösungen hervorgebracht, die die extrinsischen Parameter präzise schätzen. Viele der vorgeschlagenen Lösungen erfordern jedoch weiterhin einen manuellen Eingriff, sind überwacht und skalieren daher nicht gut auf eine kommerzielle Plattform. Zusätzlich scheitern die vorgeschlagenen Lösungen daran, die Herausforderung des Evaluierens der Genauigkeit der geschätzten Starrkörpertransformation anzusprechen. Damit Sensorfusion effektiv ist, muss die extrinsische Kalibration äußerst genau sein. Kleine Abweichungen in den extrinsischen Parametern können nachteilige Auswirkungen auf die Fusion haben. Demzufolge müssen Grenzen für die Genauigkeit für sicherheitskritische Aufgaben, wie etwa autonomes Fahren, garantiert und beibehalten werden.
-
KURZFASSUNG
-
Es sind Techniken zur automatischen und unüberwachten Kalibration und Validierung extrinsischer Parameter einer Kamera-zu-LiDAR-Transformation unter Verwendung eines einzelnen Kamerabildes und LiDAR-Scans (nachfolgend auch als „Einzelschuss“ bezeichnet) bereitgestellt. In einer Ausführungsform schätzt und evaluiert eine automatische Kalibrations- und Validierungspipeline die Genauigkeit der Rotations- und Translationselemente („extrinsische Parameter“). Die Kalibrationsprozedur kombiniert dreidimensionale (3D) Ebenen-, Vektor- und Punktkorrespondenzen, um die extrinsischen Parameter einer Kamera-zu-LiDAR-Koordinatentransformation zu schätzen.
-
Es sind auch Techniken zum Validieren der Kalibration unter Verwendung einfacher Validierungsziele, deren Form Ähnlichkeiten zu einem Bilderrahmen aufweisen, bereitgestellt. Die Genauigkeit einer Kalibration wird qualitativ durch Projizieren der LiDAR-Punkte auf das Kamerabild und Beobachten gegenseitiger Merkmale von durch beide Sensoren aufgenommenen Validierungszielen im gesamten Sichtfeld der Kamera evaluiert. Eine Kalibration wird als akzeptabel klassifiziert, falls die einem spezifischen gemeinsamen Validierungsziel entsprechenden LiDAR-Punkte auf dem Validierungsziel im Kamerabild aufliegen.
-
In einer Ausführungsform umfasst ein Verfahren: Empfangen, von einem LiDAR(Lichtdetektion und -entfernungsmessung)-Sensor eines Fahrzeugs, einer ersten Punktwolke, die einen ersten Satz von LiDAR-Punkten beinhaltet, die von einem oder mehreren Kalibrationszielen zurückgesendet werden; Empfangen, von einem Kamerasensor des Fahrzeugs, eines ersten Kamerabildes, das das eine oder die mehreren Kalibrationsziele beinhaltet; Extrahieren, unter Verwendung eines oder mehrerer Prozessoren des Fahrzeugs, von Merkmalen des einen oder der mehreren Kalibrationsziele aus dem ersten Satz von LiDAR-Punkten und dem ersten Kamerabild; Assoziieren, unter Verwendung des einen oder der mehreren Prozessoren, der extrahierten Merkmale aus dem ersten Satz von LiDAR-Punkten und dem ersten Kamerabild, um übereinstimmende Merkmale zu bestimmen; Schätzen, unter Verwendung des einen oder der mehreren Prozessoren, extrinsischer Parameter einer Koordinatentransformation von LiDAR-Koordinaten zu Kamerakoordinaten oder von Kamerakoordinaten zu LiDAR-Koordinaten, zumindest teilweise basierend auf den übereinstimmenden Merkmalen; Empfangen, vom LiDAR-Sensor, einer zweiten Punktwolke, die einen zweiten Satz von LiDAR-Punkten beinhaltet, die von einem oder mehreren Validierungszielen zurückgesendet werden; Empfangen, vom Kamerasensor, eines zweiten Kamerabildes, das das eine oder die mehreren Validierungsziele beinhaltet; Verwenden der Koordinatentransformation, um den zweiten Satz von LiDAR-Punkten auf das eine oder die mehreren Validierungsziele im zweiten Kamerabild zu projizieren; Schätzen, unter Verwendung des einen oder der mehreren Prozessoren, einer oder mehrerer Obergrenzen für die Genauigkeit der geschätzten extrinsischen Parameter; Bestimmen, unter Verwendung des einen oder der mehreren Prozessoren, ob eine spezifizierte Anzahl oder ein spezifizierter Anteil von LiDAR-Punkten in dem zweiten Satz von LiDAR-Punkten auf oder innerhalb des einen oder der mehreren Validierungsziele liegt, die in dem zweiten Kamerabild enthalten sind, gemäß der einen oder den mehreren berechneten Obergrenzen für die Genauigkeit; und gemäß der Bestimmung, dass die spezifizierte Anzahl oder der spezifizierte Anteil von LiDAR-Punkten aus dem zweiten Satz von LiDAR-Punkten auf oder innerhalb des einen oder der mehreren Validierungsziele in dem zweiten Kamerabild innerhalb der Obergrenze für die Genauigkeit liegen, Erachten der geschätzten extrinsischen Parameter der Koordinatentransformation als zulässig.
-
In einer Ausführungsform beinhalten die extrahierten Merkmale Vektorgrößen, die eine Ebene des einen oder der mehreren Kalibrationsziele definieren, und die extrinsischen Parameter werden durch Abgleichen der Vektorgrößen in LiDAR-Koordinaten mit ihren entsprechenden Vektorgrößen in Kamerakoordinaten geschätzt, und wobei die Vektorgrößen übereinstimmen, wenn die Vektorgrößen in definierten Beschränkungen für die Rotation und Translation der Vektorgrößen korrespondieren.
-
In einer Ausführungsform berücksichtigt das Schätzen einer oder mehrerer Obergrenzen für die Genauigkeit die mit manuell gemessenen Translationsparametern assoziierte Unsicherheit und die Abmessungen und Orte des einen oder der mehreren Validierungsziele.
-
In einer Ausführungsform werden zwei Validierungsziele verwendet, und ein erstes Validierungsziel befindet sich bei einer ersten Entfernung von der Kamera und ein zweites Validierungsziel befindet sich bei einer zweiten Entfernung von der Kamera, die weiter entfernt ist als die erste Entfernung, und das erste Validierungsziel wird zum Schätzen einer ersten Obergrenze für die Genauigkeit für geschätzte Translationsparameter, die in den geschätzten extrinsischen Parametern enthalten sind, verwendet und das zweite Validierungsziel wird zum Schätzen einer zweiten Obergrenze für die geschätzten Rotationsparameter, die in den geschätzten extrinsischen Parametern enthalten sind, verwendet.
-
In einer Ausführungsform wird eine Obergrenze für einen geschätzten Rollwinkel der geschätzten extrinsischen Parameter aus einer Länge und Dicke eines größeren der beiden Validierungsziele abgeleitet.
-
In einer Ausführungsform umfasst das Extrahieren, unter Verwendung eines oder mehrerer Prozessoren des Fahrzeugs, von Merkmalen des einen oder der mehreren Kalibrationsziele aus dem ersten Satz von LiDAR-Punkten ferner: Clustern des ersten Satzes von LiDAR-Punkten in räumliche Cluster von LiDAR-Punkten; für jedes Cluster: Filtern der LiDAR-Punkte in dem Cluster, um Ausreißer-LiDAR-Punkte zu detektieren; Verfeinern des Clusters durch Entfernen jeglicher detektierter Ausreißer-LiDAR-Punkte aus dem Cluster; Filtern des Clusters mittels seiner konvexen Hülle, wobei die konvexe Hülle ein Rechteck mit bekannten Abmessungen bildet; Detektieren von Randpunkten im Cluster; Projizieren der Randpunkte auf eine Ebene des Clusters; Anpassen eines zweidimensionalen (2D) Rechtecks an die Randpunkte; Bestimmen, ob das angepasste 2D-Rechteck ein Kalibrationsziel definiert, durch Formulieren und Lösen eines Beschränkungsoptimierungsproblems, das A-Priori-Verteilungen an der geometrischen Form und den Abmessungen des 2D-Rechtecks einbezieht; und gemäß dem angepassten 2D-Rechteck, das ein Kalibrationsziel definiert, Ableiten eines Ebenenvektors, von Begrenzungsvektoren und eines Zentroids des 2D-Rechtecks als die Merkmale des Kalibrationsziels.
-
In einer Ausführungsform beinhaltet das Detektieren von Randpunkten im Cluster Filtern der Punktwolke auf Punkte, die eine Tiefenkontinuität größer als ein Schwellenwert aufweisen, Identifizieren gefilterter Punkte auf einem Strahl, die Tiefenwerte aufweisen, die niedriger sind als mindestens einer von zwei nächsten Nachbar-LiDAR-Punkten auf demselben Strahl, Berechnen einer Überschneidung zwischen den detektierten Randpunkten und Verknüpfen jedes Randpunkts mit dem den Randpunkt enthaltenden Cluster.
-
In einer Ausführungsform umfasst das Extrahieren, unter Verwendung eines oder mehrerer Prozessoren des Fahrzeugs, von Merkmalen des einen oder der mehreren Kalibrationsziele aus dem ersten Bild ferner: Detektieren, unter Verwendung eines Computervisionsprozesses, des einen oder der mehreren Kalibrationsziele in dem ersten Bild; Extrahieren von drei Kalibrationszielvektoren aus den detektierten Kalibrationszielen durch Lösen eines Perspective-n-Point(PnP)-Problems für jedes Kalibrationsziel, wobei die Lösung des PnP-Problems zwischen globalen Koordinaten und Pixelkoordinaten jeder Ecke jedes Kalibrationsziels eine Transformation von Kamerakoordinaten zu Kalibrationszielkoordinaten ist, die die Ecke vom Kalibrationszielkoordinatensystem zu dem Koordinatensystem der Kamera transformiert, und wobei die Spaltenvektoren der Transformation den drei Kalibrationszielvektoren bezüglich des Kamerakoordinatensystems entsprechen, wobei jedes Zentroid eines Kalibrationsziels abgeleitet wird, indem alle Eckpunkte jedes Kalibrationsziels bezüglich des Kamerakoordinatensystems ausgedrückt werden, und wobei das Zentroid einer Durchschnittsstellung aller Ecken im Kamerakoordinatensystem entspricht.
-
In einer Ausführungsform wird die Punktwolke auf Punkte gefiltert, die eine Tiefenkontinuität größer als ein Schwellenwert aufweisen.
-
In einer Ausführungsform sind das eine oder die mehreren Kalibrationsziele planare Schachbretter.
-
In einer Ausführungsform umfasst ein System oder eine Einrichtung: einen oder mehrere Prozessoren, und Speicher, der Anweisungen speichert, die bei Ausführung durch den einen oder die mehreren Prozessoren bewirken, dass der eine oder die mehreren Prozessoren ein beliebiges der oben beschriebenen Verfahren durchführen.
-
In einer Ausführungsform speichert ein nichtflüchtiges computerlesbares Medium Anweisungen, die bei Ausführung durch den einen oder die mehreren Prozessoren bewirken, dass der eine oder die mehreren Prozessoren ein beliebiges der oben beschriebenen Verfahren durchführen.
-
Eine oder mehrere der offenbarten Ausführungsformen liefern einen oder mehrere der folgenden Vorteile. Ein Einzelschuss wird verwendet, um die Genauigkeit einer Kamera-zu-LiDAR-Koordinatentransformation innerhalb einer Obergrenze für die Genauigkeit unter Berücksichtigung eines Translations- und Rotationsfehlers zu kalibrieren und zu validieren. Zusätzlich dazu, dass nur ein Einzelschuss benötigt wird, ist die gesamte Prozedur alleinig auf ein oder mehrere planare Kalibrationsziele (z. B. Schachbretter) und ein oder mehrere einfache geometrische Validierungsziele (z. B. rechteckige Zielrahmen) angewiesen. Die offenbarten Ausführungsformen sind auf kommerzielle Anwendungen wie etwa autonome Fahrzeuge skalierbar, bei denen hohe Kalibrationsstandards gewährleistet und aufrechterhalten werden müssen.
-
Diese und andere Aspekte, Merkmale und Implementierungen können als Verfahren, Einrichtungen, Systeme, Komponenten, Programmprodukte, Mittel oder Schritte zum Durchführen einer Funktion, oder auf andere Weisen ausgedrückt werden.
-
Diese und andere Aspekte, Merkmale und Implementierungen werden aus den folgenden Beschreibungen, einschließlich den Ansprüchen, ersichtlich werden.
-
Figurenliste
-
- 1 zeigt ein Beispiel eines autonomen Fahrzeugs (AV) mit autonomer Fähigkeit gemäß einer oder mehreren Ausführungsformen.
- 2 veranschaulicht eine beispielhafte „Cloud“-Rechenumgebung gemäß einer oder mehreren Ausführungsformen.
- 3 veranschaulicht ein Computersystem gemäß einer oder mehreren Ausführungsformen.
- 4 zeigt eine beispielhafte Architektur für ein AV gemäß einer oder mehreren Ausführungsformen.
- 5 zeigt ein Beispiel für Eingaben und Ausgaben, die durch ein Wahrnehmungsmodul verwendet werden können, gemäß einer oder mehreren Ausführungsformen.
- 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 den Betrieb des LiDAR-Systems mit zusätzlichen Einzelheiten gemäß einer oder mehreren Ausführungsformen.
- 9 zeigt ein Blockdiagramm der Beziehungen zwischen Eingaben und Ausgaben eines Planungsmoduls gemäß einer oder mehreren Ausführungsformen.
- 10 zeigt einen bei der Pfadplanung verwendeten gerichteten Graphen, gemäß einer oder mehreren Ausführungsformen.
- 11 zeigt ein Blockdiagramm der Eingaben und Ausgaben eines Steuermoduls gemäß einer oder mehreren Ausführungsformen.
- 12 zeigt ein Blockdiagramm der Eingaben, Ausgaben und Komponenten einer Steuerung gemäß einer oder mehreren Ausführungsformen.
- 13A und 13B veranschaulichen ein Offline-Sensorkalibrationssystem gemäß einer oder mehreren Ausführungsformen.
- 14 veranschaulicht die Verwendung eines Schachbrettziels, um eine LiDAR-zu-Kamera-Transformation abzuleiten, gemäß einer oder mehreren Ausführungsformen.
- 15 ist ein Blockdiagramm eines extrinsischen Kalibrations- und Validierungssystems gemäß einer oder mehreren Ausführungsformen.
- 16 veranschaulicht, wie Informationen aus der i-ten Schachbrettstellung in einer LiDAR-Punktwolke und einem Kamerabild extrahiert werden, um den i-ten Einheitsnormalenvektor des Schachbretts, den i-ten Einheitsbegrenzungsvektor und das i-te Zentroid zu liefern, gemäß einer oder mehreren Ausführungsformen.
- 17 veranschaulicht eine LiDAR-Merkmalsextraktion, bei der Randpunkte eines Clusters auf die Ebene des Clusters projiziert und auf ein zweidimensionales (2D) Rechteck angepasst werden, gemäß einer oder mehreren Ausführungsformen.
- 18A veranschaulicht identifizierte Cluster, die aus einer LiDAR-Merkmalssegmentierung/-extraktion resultieren, gemäß einer oder mehreren Ausführungsformen.
- 18B veranschaulicht gefilterte Cluster, die aus einer LiDAR-Merkmalssegmentierung/-extraktion resultieren, gemäß einer oder mehreren Ausführungsformen.
- 18C veranschaulicht detektierte Randpunkte, die aus einer LiDAR-Merkmalssegmentierung/-extraktion resultieren, gemäß einer oder mehreren Ausführungsformen.
- 18D veranschaulicht extrahierte Schachbrettmerkmale, die aus einer LiDAR-Merkmalssegmentierung/-extraktion resultieren, gemäß einer oder mehreren Ausführungsformen.
- 19A veranschaulicht bei einer Validierungsprozedur verwendete Rahmenabmessungen, gemäß einer oder mehreren Ausführungsformen.
- 19B veranschaulicht eine bei einer Validierungsprozedur verwendete Rahmenplatzierung, gemäß einer oder mehreren Ausführungsformen.
- 20A veranschaulicht LiDAR-Punkte, die dem Rahmen von 19 entsprechen, gemäß einer oder mehreren Ausführungsformen.
- 20B veranschaulicht das wie durch die Kamera beobachtete Bild des Rahmens, gemäß einer oder mehreren Ausführungsformen.
- 20C veranschaulicht eine Projektion der LiDAR-Punkte auf das Kamerabild mit akzeptablen extrinsischen Kalibrationsparametern, gemäß einer oder mehreren Ausführungsformen.
- 21A und 21B veranschaulichen eine durch den Rahmen gegebene anfängliche Fehlergrenze, erhöht um die Gierung, die erforderlich ist, um alle der LiDAR-Rahmenpunkte auf den Rahmen selbst zu verschieben, gemäß einer oder mehreren Ausführungsformen.
- 22A und 22B sind ein Flussdiagramm eines Prozesses zum Kalibrieren und Validieren extrinsischer Parameter, die bei einer Koordinatentransformation von Kamera zu LiDAR verwendet werden, gemäß einer oder mehreren Ausführungsformen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden Beschreibung sind für Erläuterungszwecke zahlreiche spezifische Einzelheiten dargelegt, um ein vollständiges Verständnis der vorliegenden Erfindung bereitzustellen. Es wird jedoch ersichtlich werden, dass die vorliegende Erfindung ohne diese spezifischen Einzelheiten umgesetzt werden kann. In anderen Fällen sind wohlbekannte Strukturen und Vorrichtungen in Blockdiagrammform gezeigt, um eine unnötige Verundeutlichung der vorliegenden Erfindung zu vermeiden.
-
In den Zeichnungen sind zur Vereinfachung der Beschreibung spezifische Anordnungen oder Reihenfolgen schematischer Elemente, wie etwa jener, die Vorrichtungen, Module, Anweisungsblöcke und Datenelemente repräsentieren, gezeigt. Fachleute sollten jedoch verstehen, dass die spezifische Reihenfolge oder Anordnung der schematischen Elemente in den Zeichnungen nicht andeuten soll, dass eine spezielle Verarbeitungsreihenfolge oder -sequenz oder eine Trennung von Prozessen notwendig ist. Ferner soll der Einschluss eines schematischen Elements in einer Zeichnung nicht andeuten, dass ein solches Element in allen Ausführungsformen notwendig ist oder die durch ein solches Element repräsentierten Merkmale in manchen Ausführungsformen möglicherweise nicht in anderen Elementen enthalten sind oder möglicherweise nicht mit diesen kombiniert werden.
-
In den Zeichnungen, in denen verbindende Elemente, wie etwa durchgezogene oder gestrichelte Linien oder Pfeile, zum Veranschaulichen einer Verbindung, einer Beziehung oder einer Assoziation zwischen oder unter zwei oder mehr anderen schematischen Elementen verwendet werden, soll das Nichtvorhandensein irgendwelcher solcher verbindender Elemente ferner nicht andeuten, dass keine Verbindung, Beziehung oder Assoziation vorhanden sein kann. Mit anderen Worten sind manche Verbindungen, Beziehungen oder Assoziationen zwischen Elementen nicht in den Zeichnungen gezeigt, sodass die Offenbarung nicht verundeutlicht wird. Zusätzlich wird zur Vereinfachung der Veranschaulichung ein einzelnes verbindendes Element verwendet, um mehrere Verbindungen, Beziehungen oder Assoziationen zwischen Elementen zu repräsentieren. Wenn ein verbindendes Element beispielsweise eine Kommunikation von Signalen, Daten oder Anweisungen repräsentiert, sollten Fachleute verstehen, dass ein solches Element einen oder mehrere Signalpfade (z. B. einen Bus), wie möglicherweise benötigt, repräsentiert, um die Kommunikation zu bewirken.
-
Nun wird ein ausführlicher Bezug auf Ausführungsformen genommen, deren Beispiele in den begleitenden Zeichnungen veranschaulicht sind. In der folgenden ausführlichen Beschreibung sind zahlreiche spezifische Einzelheiten dargelegt, um ein vollständiges Verständnis der verschiedenen beschriebenen Ausführungsformen bereitzustellen. Einem Durchschnittsfachmann wird jedoch ersichtlich werden, dass die verschiedenen beschriebenen Ausführungsformen ohne diese spezifischen Einzelheiten umgesetzt werden können. In anderen Fällen wurden wohlbekannte Verfahren, Prozeduren, Komponenten, Schaltungen und Netzwerke nicht ausführlich beschrieben, sodass Aspekte der Ausführungsformen nicht unnötig verundeutlicht werden.
-
Nachfolgend sind mehrere Merkmale beschrieben, die jeweils unabhängig voneinander oder mit einer beliebigen Kombination anderer Merkmale verwendet werden können. Ein beliebiges individuelles Merkmal spricht jedoch möglicherweise keines der oben besprochenen Probleme an oder könnte nur eines der oben besprochenen Probleme ansprechen. Manche der oben besprochenen Probleme könnten möglicherweise nicht vollständig durch irgendwelche der hierin beschriebenen Merkmale angesprochen werden. Obwohl Überschriften bereitgestellt sind, können Informationen bezüglich einer speziellen Überschrift, die aber nicht in dem Abschnitt mit dieser Überschrift aufgefunden werden, auch andernorts in dieser Beschreibung aufgefunden werden. Ausführungsformen sind hierin gemäß der folgenden Gliederung beschrieben:
- 1. Allgemeiner Überblick
- 2. Systemüberblick
- 3. Architektur eines autonomen Fahrzeugs
- 4. Eingaben in das autonome Fahrzeug
- 5. Planung des autonomen Fahrzeugs
- 6. Steuerung des autonomen Fahrzeugs
- 7. Offline Kamera-zu-Lidar-Kalibration
- 8. Offline Kamera-zu-Lidar-Validierung
-
Allgemeiner Überblick
-
Die offenbarten Ausführungsformen für eine Kamera-zu-LiDAR-Kalibration sind auf mindestens ein Kalibrationsziel (z. B. ein Schachbrett) angewiesen, das sowohl für die Kamera als auch das LiDAR sichtbar ist. Die Eingaben für die Kalibrationsprozedur beinhalten einen Einzelschuss des Kalibrationsziels (der Kalibrationsziele) von der Kamera und dem LiDAR, die intrinsischen Parameter der Kamera, die Kameramatrix und Verzerrungskoeffizienten, die Anzahl sichtbarer Kalibrationsziele, die Abmessungen der Kalibrationsziele und den Abstand zwischen den Ecken der Kalibrationsziele. Die offenbarten Ausführungsformen detektieren automatisch die durch jedes Kalibrationsziel aufgespannte Ebene, die Richtung der Begrenzungsvektoren des Kalibrationsziels und das Zentroid des Kalibrationsziels in sowohl dem Kamerabild als auch der LiDAR-Punktwolke. Die erforderlichen Informationen für die Kalibration werden für jedes Kalibrationsziel im Kamerabild durch Lösen eines Perspective-n-Point(PnP)-Problems erhalten. In der LiDAR-Punktwolke wird ein Rechteck an jedes detektierte Kalibrationszielcluster angepasst, und die extrinsischen Parameter der Kamera-zu-LiDAR-Transformation werden durch Abgleichen identifizierter Merkmale geschätzt.
-
Die offenbarten Ausführungsformen zum Validieren der Kalibration verwenden ein einfaches Validierungsziel, dessen Form Ähnlichkeiten zu einem Bilderrahmen aufweist. Die Genauigkeit einer Kalibration wird qualitativ durch Projizieren der das Validierungsziel enthaltenden LiDAR-Punkte auf das Kamerabild unter Verwendung der Kamera-zu-LiDAR-Koordinatentransformation und Beobachten gegenseitiger Merkmale der durch beide Sensoren aufgenommenen Validierungsziele im gesamten Sichtfeld der Kamera evaluiert. Eine Kalibration wird als akzeptabel klassifiziert, falls die einem spezifischen gemeinsamen Validierungsziel entsprechenden LiDAR-Punkte auf demselben Validierungsziel im Kamerabild aufliegen.
-
Systemüberblick
-
1 zeigt ein Beispiel für ein autonomes Fahrzeug 100 mit autonomer Fähigkeit.
-
Wie hierin verwendet, bezieht sich der Begriff „autonome Fähigkeit“ auf eine Funktion, ein Merkmal oder eine Einrichtung, die/das ermöglicht, dass ein Fahrzeug teilweise oder vollständig ohne einen menschlichen Eingriff in Echtzeit betrieben wird, einschließlich unter anderem vollautonome Fahrzeuge, hochautonome Fahrzeuge und bedingt autonome Fahrzeuge.
-
Wie hierin verwendet, ist ein autonomes Fahrzeug (AV) ein Fahrzeug, das autonome Fähigkeit besitzt.
-
Wie hierin verwendet, beinhaltet „Fahrzeug“ Mittel für den Transport von Gütern oder Menschen. Beispielsweise Autos, Busse, Züge, Flugzeuge, Drohnen, Lastkraftwagen, Boote, Schiffe, Unterwasserfahrzeuge, Luftfahrzeuge usw. Ein fahrerloses Auto ist ein Beispiel eines Fahrzeugs.
-
Wie hierin verwendet, bezieht sich „Trajektorie“ auf einen Pfad oder eine Route zum Betreiben eines AV von einem ersten raumzeitlichen Ort zu einem zweiten raumzeitlichen Ort. In einer Ausführungsform wird der erste raumzeitliche Ort als Anfangs- oder Startort bezeichnet und wird der zweite raumzeitliche Ort als Bestimmungsort, endgültiger Ort, Ziel, Zielposition oder Zielort bezeichnet. In manchen Beispielen besteht die Trajektorie aus einem oder mehreren Segmenten (z. B. Straßenabschnitten), und jedes Segment besteht aus einem oder mehreren Blöcken (z. B. Teilen einer Fahrbahn oder Kreuzung). In einer Ausführungsform entsprechen die raumzeitlichen Orte Orten der realen Welt. Beispielsweise sind die raumzeitlichen Orte Abhol- oder Abladeorte zum Abholen oder Abladen von Personen oder Gütern.
-
Wie hierin verwendet, beinhaltet „Sensor(en)“ eine oder mehrere Hardwarekomponenten, die Informationen über die Umgebung im Umfeld des Sensors detektieren. Manche der Hardwarekomponenten können Erfassungskomponenten (z. B. Bildsensoren, biometrische Sensoren), Übertragungs- und/oder Empfangskomponenten (z. B. Laser- oder Hochfrequenzwellen-Sender und -Empfänger), elektronische Komponenten wie etwa Analog-Digital-Wandler, eine Datenspeicherungsvorrichtung (wie etwa einen RAM und/oder eine nichtflüchtige Speicherung), Software- oder Firmwarekomponenten und Datenverarbeitungskomponenten wie etwa eine ASIC (anwendungsspezifische integrierte Schaltung), einen Mikroprozessor und/oder einen Mikrocontroller beinhalten.
-
Wie hierin verwendet, ist eine „Szenenbeschreibung“ eine Datenstruktur (z. B. Liste) oder ein Datenstrom, die/der ein oder mehrere klassifizierte oder gelabelte Objekte beinhaltet, die durch einen oder mehrere Sensoren am AV-Fahrzeug detektiert oder durch eine Quelle extern zu dem AV bereitgestellt werden.
-
Wie hierin verwendet, ist eine „Straße“ ein physischer Bereich, der von einem Fahrzeug durchfahren werden kann, und kann einer benannten Verkehrsstraße entsprechen (z. B. Stadtstraße, Autobahn usw.) oder kann einer unbenannten Verkehrsstraße entsprechen (z. B. einer Einfahrt in einem Haus oder Bürogebäude, einem Abschnitt eines Parkplatzes, einem Abschnitt eines leeren Grundstücks, einem Feldweg in einem ländlichen Gebiet usw.). Da manche Fahrzeuge (z. B. Allrad-Pickup-Trucks, Geländewagen usw.) in der Lage sind, eine Vielfalt physischer Bereiche zu durchfahren, die nicht spezifisch für den Fahrzeugverkehr konzipiert sind, kann eine „Straße“ ein physischer Bereich sein, der nicht formell durch irgendeine Gemeinde oder andere Regierungsstelle oder Behörde als eine Verkehrsstraße definiert ist.
-
Wie hierin verwendet, ist eine „Fahrbahn“ ein Teil einer Straße, auf der ein Fahrzeug fahren kann, und kann dem Großteil oder der Gesamtheit des Raums zwischen Fahrbahnmarkierungen entsprechen, oder kann nur einem Teil (z. B. weniger als 50 %) des Raums zwischen Fahrbahnmarkierungen entsprechen. Beispielsweise könnte eine Straße mit Fahrbahnmarkierungen zwei oder mehr Fahrzeuge zwischen den Markierungen unterbringen, sodass ein Fahrzeug an dem anderen vorbeifahren kann, ohne die Fahrbahnmarkierungen zu überfahren, und könnte somit als eine Fahrbahn aufweisend, die schmaler als der Raum zwischen den Fahrbahnmarkierungen ist, oder als zwei Fahrbahnen zwischen den Fahrbahnmarkierungen aufweisend interpretiert werden. Eine Fahrbahn könnte auch bei Nichtvorhandensein von Fahrbahnmarkierungen interpretiert werden. Beispielsweise kann eine Fahrbahn basierend auf physischen Merkmalen einer Umgebung definiert werden, z. B. Gestein und Bäume entlang einer Verkehrsstraße in einem ländlichen Gebiet.
-
„Ein oder mehrere“ beinhaltet eine Funktion, die durch ein Element durchgeführt wird, eine Funktion, die durch mehr als ein Element durchgeführt wird, z. B. in verteilter Weise, mehrere Funktionen, die durch ein Element durchgeführt werden, mehrere Funktionen, die durch mehrere Elemente durchgeführt werden, oder eine beliebige Kombination des Obigen.
-
Es versteht sich außerdem, dass obwohl hierin in manchen Fällen die Begriffe erster, zweiter usw. zum Beschreiben verschiedener Elemente verwendet werden, diese Elemente 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 werden, und gleichermaßen könnte ein zweiter Kontakt als ein erster Kontakt bezeichnet werden, ohne vom Schutzumfang der verschiedenen beschriebenen Ausführungsformen abzuweichen. Der erste Kontakt und der zweite Kontakt sind beide Kontakte, aber sie sind nicht derselbe Kontakt.
-
Die in der Beschreibung der verschiedenen hierin beschriebenen Ausführungsformen verwendete Terminologie soll nur spezielle Ausführungsformen beschreiben und nicht beschränkend sein. Wie in der Beschreibung der verschiedenen beschriebenen Ausführungsformen und in den angehängten Ansprüchen verwendet, sollen die Singularformen „ein“, „eine“ und „der/die/das“ auch die Pluralformen einschließen, insofern der Zusammenhang deutlich nicht etwas anderes angibt. Es versteht sich auch, dass sich der Begriff „und/oder“, wie hierin verwendet, auf beliebige und alle möglichen Kombinationen eines oder mehrerer der assoziierten aufgelisteten Elemente bezieht und diese einschließt. Es versteht sich ferner, dass die Begriffe „beinhaltet“, „einschließlich“, „beinhaltet“ und/oder „einschließlich“, wenn in dieser Beschreibung verwendet, das Vorhandensein genannter Merkmale, ganzer Zahlen, Schritte, Operationen, Elemente und/oder Komponenten spezifizieren, aber nicht das Vorhandensein oder den Zusatz einer/eines oder mehrerer anderer Elemente, ganzer Zahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon ausschließen.
-
Wie hierin verwendet, soll der Begriff „falls“ optional so ausgelegt werden, dass er in Abhängigkeit vom Zusammenhang „wenn“ oder „bei“ oder „als Reaktion auf das Bestimmen“ oder „als Reaktion auf das Detektieren“ bedeutet. Gleichermaßen soll der Ausdruck „falls bestimmt wird“ oder „falls [eine genannte Bedingung oder ein genanntes Ereignis] detektiert wird“ optional so ausgelegt werden, dass er in Abhängigkeit vom Zusammenhang „bei der Bestimmung“ oder „als Reaktion auf das Bestimmen“ oder „bei der Detektion [der genannten Bedingung oder des genannten Ereignisses]“ oder „als Reaktion auf das Detektieren [der genannten Bedingung oder des genannten Ereignisses]“ bedeutet.
-
Wie hierin verwendet, bezieht sich ein AV-System auf das AV zusammen mit dem Array von Hardware, Software, gespeicherten Daten und in Echtzeit erzeugten Daten, die den Betrieb des AV unterstützen. In einer Ausführungsform ist das AV-System in dem AV integriert. In einer Ausführungsform ist das AV-System über mehrere Orte verteilt. Beispielsweise ist ein Teil der Software des AV-Systems in einer Cloud-Rechenumgebung implementiert, ähnlich der unten mit Bezug auf 3 beschriebenen Cloud-Rechenumgebung 300.
-
Im Allgemeinen beschreibt dieses Dokument Technologien, die bei beliebigen Fahrzeugen anwendbar sind, die eine oder mehrere autonome Fähigkeiten aufweisen, einschließlich vollautonomen Fahrzeugen, hochautonomen Fahrzeugen und bedingt autonomen Fahrzeugen, wie etwa sogenannten Stufe-5-, Stufe-4- bzw. Stufe-3-Fahrzeugen (siehe Standard von SAE International J3016: Taxonomy and Definitions for Terms Related to On-Road Motor Vehicle Automated Driving Systems, der durch Bezugnahme in seiner Gesamtheit aufgenommen wird, für weitere Einzelheiten über die Klassifikation von Autonomiestufen in Fahrzeugen). Die in diesem Dokument beschriebenen Technologien sind auch bei teilautonomen Fahrzeugen und fahrergestützten Fahrzeugen anwendbar, wie etwa sogenannten Stufe-2- und Stufe-1-Fahrzeugen (siehe Standard von SAE International J3016: Taxonomy and Definitions for Terms Related to On-Road Motor Vehicle Automated Driving Systems). In einer Ausführungsform können ein oder mehrere der Fahrzeugsysteme der Stufe 1, 2, 3, 4 und 5 gewisse Fahrzeugoperationen (z.B. Lenkung, Bremsung und Kartenverwendung) unter gewissen Betriebsbedingungen basierend auf der Verarbeitung von Sensoreingaben automatisieren. Die in diesem Dokument beschriebenen Technologien können für Fahrzeuge in beliebigen Stufen vorteilhaft sein, angefangen von vollautonomen Fahrzeug bis zu menschlich betriebenen Fahrzeugen.
-
Mit Bezug auf 1 betreibt ein AV-System 120 das AV 100 entlang einer Trajektorie 198 durch eine Umgebung 190 zu einem Bestimmungsort 199 (manchmal als ein endgültiger Ort bezeichnet), während Objekte (z. B. natürliche Behinderungen 191, Fahrzeuge 193, Fußgänger 192, Fahrräder und andere Hindernisse) vermieden und Straßenregeln (z. B. Betriebsregeln oder Fahrpräferenzen) eingehalten werden.
-
In einer Ausführungsform beinhaltet das AV-System 120 Vorrichtungen 101, die so instrumentiert sind, dass sie Betriebsbefehle von den Computerprozessoren 146 empfangen und auf diese reagieren. In einer Ausführungsform ähneln die Rechenprozessoren 146 dem unten mit Bezug auf 3 beschriebenen Prozessor 304. Beispiele für die Vorrichtungen 101 beinhalten eine Lenkungssteuerung 102, Bremsen 103, Gänge, Gaspedal oder andere Beschleunigungssteuermechanismen, Scheibenwischer, Seitentürverriegelungen, Fenstersteuerungen und Blinker.
-
In einer Ausführungsform beinhaltet das AV-System 120 Sensoren 121 zum Messen oder Inferieren von Eigenschaften des Status oder Zustands des AV 100, wie etwa die Position des AV, Lineargeschwindigkeit und -beschleunigung, Winkelgeschwindigkeit und -beschleunigung und Kurs (z. B. eine Orientierung des führenden Endes des AV 100). Beispiele für die Sensoren 121 sind GNSS, inertiale Messeinheiten (IMU), die sowohl Fahrzeuglinearbeschleunigungen als auch Winkelraten messen, Radgeschwindigkeitssensoren zum Messen oder Schätzen von Radschlupfverhältnissen, Radbremsdruck- oder Bremsmomentsensoren, Motordrehmoment- oder Raddrehmomentsensoren und Lenkwinkel- und Winkelratensensoren.
-
In einer Ausführungsform beinhalten die Sensoren 121 auch Sensoren zum Erfassen oder Messen von Eigenschaften der Umgebung des AV. Beispielsweise Monokular- oder Stereo-Videokameras 122 im sichtbaren Licht, Infrarotspektrum oder thermischen Spektrum (oder beiden), LiDAR 123, RADAR, Ultraschallsensoren, Laufzeit(ToF)-Tiefensensoren, Geschwindigkeitssensoren, Temperatursensoren, Luftfeuchtigkeitssensoren und Niederschlagssensoren.
-
In einer Ausführungsform beinhaltet das AV-System 120 eine Datenspeicherungseinheit 142 und einen Speicher 144 zum Speichern von Maschinenanweisungen, die mit den Computerprozessoren 146 assoziiert sind, oder von Daten, die durch die Sensoren 121 gesammelt werden. In einer Ausführungsform ähnelt die Datenspeicherungseinheit 142 dem ROM 308 oder der Speicherungsvorrichtung 310, die nachstehend in Bezug auf 3 beschrieben sind. Bei einer Ausführungsform ähnelt der Speicher 144 dem unten beschriebenen Hauptspeicher 306. In einer Ausführungsform speichern die Datenspeicherungseinheit 142 und der Speicher 144 historische, Echtzeit- und/oder prädiktive Informationen über die Umgebung 190. In einer Ausführungsform beinhalten die gespeicherten Informationen Karten, Fahrleistung, Verkehrsüberlastungsaktualisierungen oder Wetterbedingungen. In einer Ausführungsform werden Daten bezüglich der Umgebung 190 von einer entfernten Datenbank 134 über einen Kommunikationskanal zu dem AV 100 übertragen.
-
In einer Ausführungsform beinhaltet das AV-System 120 Kommunikationsvorrichtungen 140 zum Kommunizieren von gemessenen oder inferierten Eigenschaften der Status oder Zustände anderer Fahrzeuge, wie etwa Positionen, Linear- und Winkelgeschwindigkeiten, Linear- und Winkelbeschleunigungen und Linear- und Winkelkurse, zu dem AV 100. Diese Vorrichtungen beinhalten Fahrzeug-zu-Fahrzeug- (V2V) und Fahrzeug-zu-Infrastruktur(V2I)-Kommunikationsvorrichtungen und Vorrichtungen für Drahtloskommunikationen über Punkt-zu-Punkt oder Ad-Hoc-Netzwerke oder beide. In einer Ausführungsform kommunizieren die Kommunikationsvorrichtungen 140 über das elektromagnetische Spektrum (einschließlich Funkkommunikationen und optischer Kommunikationen) oder andere Medien (z. B. Luft und akustische Medien). Eine Kombination von Fahrzeug-zu-Fahrzeug- (V2V) und Fahrzeug-zu-Infrastruktur(V2I)-Kommunikation (und in manchen Ausführungsformen einer oder mehrerer anderer Kommunikationsarten) wird manchmal als eine Fahrzeug-zu-Allem(V2X)-Kommunikation bezeichnet. Eine V2X-Kommunikation entspricht typischerweise einem oder mehreren Kommunikationsstandards zur Kommunikation mit, zwischen und unter autonomen Fahrzeugen.
-
In einer Ausführungsform beinhalten die Kommunikationsvorrichtungen 140 Kommunikationsschnittstellen. Beispielsweise drahtgebundene, drahtlose, WiMAX-, WiFi-, Bluetooth-, Satelliten-, zellulare, optische, Nahfeld-, Infrarot- oder Funk-Schnittstellen. Die Kommunikationsschnittstellen übertragen Daten von einer entfernten Datenbank 134 zu dem AV-System 120. In einer Ausführungsform ist die entfernte Datenbank 134 in einer Cloud-Rechenumgebung 200 eingebettet, wie in 2 beschrieben. Die Kommunikationsschnittstellen 140 übertragen von den Sensoren 121 gesammelte Daten oder andere Daten bezüglich des Betriebs des AV 100 zu der entfernten Datenbank 134. In einer Ausführungsform übertragen die Kommunikationsschnittstellen 140 Informationen, die sich auf Teleoperationen beziehen, zu dem AV 100. In manchen Ausführungsformen kommuniziert das AV 100 mit anderen Fern(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 etwa Landstraßen- und Stadtstraßenorten). Solche Daten werden auf dem Speicher 144 im AV 100 gespeichert oder von der entfernten Datenbank 134 über einen Kommunikationskanal zu dem AV 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 Trajektorie 198 führen. In einer Implementierung können solche Daten auf dem Speicher 144 im AV 100 gespeichert oder von der entfernten Datenbank 134 über einen Kommunikationskanal zu dem AV 100 übertragen werden.
-
Die sich am AV 100 befindlichen Rechenvorrichtungen 146 erzeugen algorithmisch Steuerhandlungen basierend auf sowohl Echtzeit-Sensordaten als auch vorherigen Informationen, was dem AV-System 120 ermöglicht, seine autonomen Fahrfähigkeiten auszuführen.
-
In einer Ausführungsform beinhaltet das AV-System 120 mit den Rechenvorrichtungen 146 gekoppelte Computerperipheriegeräte 132 zum Bereitstellen von Informationen und Warnungen an einen Benutzer (z. B. einen Insassen oder einen Fernbenutzer) des AV 100 und Empfangen einer Eingabe von diesem. In einer Ausführungsform ähneln die Peripheriegeräte 132 der Anzeige 312, der Eingabevorrichtung 314 und der Cursor-Steuerung 316, die unten mit Bezug auf 3 besprochen sind. Die Kopplung ist drahtlos oder drahtgebunden. Zwei oder mehr beliebige der Schnittstellenvorrichtungen können in eine einzelne Vorrichtung integriert sein.
-
Beispielhafte Cloud-Rechenumgebung
-
2 veranschaulicht eine beispielhafte „Cloud“-Rechenumgebung. Cloud-Computing ist ein Dienstlieferungsmodell zum Ermöglichen eines zweckmäßigen On-Demand-Netzwerkzugangs für einen gemeinsam genutzten Pool konfigurierbarer Rechenressourcen (z. B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicher, Speicherung, Anwendungen, virtuelle Maschinen und Dienste). In typischen Cloud-Rechensystemen sind die zum Liefern der durch die Cloud bereitgestellten Dienste verwendeten Maschinen in einem oder mehreren großen Cloud-Datenzentren untergebracht. Jetzt mit Bezug auf 2 beinhaltet die Cloud-Rechenumgebung 200 Cloud-Datenzentren 204a, 204b und 204c, die über die Cloud 202 miteinander verbunden sind. Die Datenzentren 204a ,204b und 204c stellen Computersystemen 206a, 206b, 206c, 206d, 206e und 206f, die mit der Cloud 202 verbunden sind, Cloud-Rechendienste bereit.
-
Die Cloud-Rechenumgebung 200 beinhaltet ein oder mehrere Cloud-Datenzentren. Im Allgemeinen bezieht sich ein Cloud-Datenzentrum, zum Beispiel das in 2 gezeigte Cloud-Datenzentrum 204a, auf die physische Anordnung von Servern, die eine Cloud bilden, zum Beispiel die in 2 gezeigte Cloud 202, oder einen speziellen Teil einer Cloud. Beispielsweise sind Server in dem Cloud-Datenzentrum physisch in Räume, Gruppen, Reihen und Racks angeordnet. Ein Cloud-Datenzentrum weist eine oder mehrere Zonen auf, die einen oder mehrere Serverräume beinhalten. Jeder Raum weist eine oder mehrere Serverreihen auf, und jede Reihe beinhaltet ein oder mehrere Racks. Jedes Rack beinhaltet einen oder mehrere individuelle Serverknoten. In manchen Implementierungen sind Server in Zonen, Räume, Racks und/oder Reihen basierend auf physischen Infrastrukturanforderungen der Datenzentrumeinrichtung, einschließlich Leistungs-, Energie-, thermalen, Wärme- und/oder anderer Anforderungen, in Gruppen angeordnet. In einer Ausführungsform ähneln die Serverknoten dem in 3 beschriebenen Computersystem. Das Datenzentrum 204a weist viele Rechensysteme auf, die über viele Racks verteilt sind.
-
Die Cloud 202 beinhaltet Cloud-Datenzentren 204a, 204b und 204c zusammen mit dem Netzwerk und Networking-Ressourcen (zum Beispiel Networking-Geräten, Knoten, Routern, Switches und Vernetzungskabeln), die die Cloud-Datenzentren 204a, 204b und 204c miteinander verbinden und dabei helfen, den Zugang der Rechensysteme 206a-f auf Cloud-Rechensysteme zu ermöglichen. In einer Ausführungsform repräsentiert das Netzwerk eine beliebige Kombination eines oder mehrerer Lokalnetzwerke, großflächiger Netzwerke oder Inter-Netzwerke, die unter Verwendung drahtgebundener oder drahtloser Links gekoppelt sind, die unter Verwendung terrestrischer Verbindungen oder Satellitenverbindungen eingesetzt werden. Über das Netzwerk ausgetauschte Daten werden unter Verwendung einer beliebigen Anzahl von Netzwerkschichtprotokollen transferiert, wie etwa Internetprotokoll (IP), Multiprotocol Label Switching (MPLS), Asynchronous Transfer Mode (ATM), Frame Relay usw. Ferner werden in Ausführungsformen, in denen das Netzwerk eine Kombination mehrerer Teilnetzwerke repräsentiert, unterschiedliche Netzwerkschichtprotokolle an jedem der zugrundeliegenden Teilnetzwerke verwendet. In manchen Ausführungsformen repräsentiert das Netzwerk ein oder mehrerer miteinander verbundene Inter-Netzwerke, wie etwa das öffentliche Internet.
-
Die Rechensysteme 206a-f oder Verbraucher der Cloud-Rechensysteme sind über Netzwerklinks und Netzwerkadapter mit der Cloud 202 verbunden. In einer Ausführungsform werden die Rechensysteme 206a-f als verschiedene Rechenvorrichtungen implementiert, zum Beispiel Server, Desktops, Laptops, Tablets, Smartphones, Internet-der-Dinge(IdD)-Vorrichtungen, autonome Fahrzeuge (einschließlich Autos, Drohnen, Shuttles, Zügen, Bussen usw.) und Verbraucherelektronik. In einer Ausführungsform werden die Rechensysteme 206a-f in anderen Systemen oder als ein Teil von diesen implementiert.
-
Computersystem
-
3 veranschaulicht ein Computersystem 300. In einer Implementierung ist das Computersystem 300 eine Spezialzweck-Rechenvorrichtung. Die Spezialzweck-Rechenvorrichtung ist festverdrahtet, um die Techniken durchzuführen, oder beinhaltet digitale elektronische Vorrichtungen wie etwa eine oder mehrere anwendungsspezifische integrierte Schaltungen (ASICs) oder feldprogrammierbare Gate-Arrays (FPGAs), die persistent programmiert sind, um die Techniken durchzuführen, oder können einen oder mehrere Allgemeinzweck-Hardwareprozessoren beinhalten, die programmiert sind, die Techniken gemäß Programmanweisungen in Firmware, Speicher, anderer Speicherung oder einer Kombination durchzuführen. Solche Spezialzweck-Rechenvorrichtungen können auch benutzerdefinierte festverdrahtete Logik, ASICs oder FPGAs mit benutzerdefinierter Programmierung kombinieren, um die Techniken zu verwirklichen. In verschiedenen Ausführungsformen sind die Spezialzweck-Rechenvorrichtungen Desktop-Computersysteme, tragbare Computersysteme, Handheld-Vorrichtungen, Netzwerkvorrichtungen oder eine beliebige andere Vorrichtung, die festverdrahtete Logik und/oder Programmlogik einbezieht, um die Techniken zu implementieren.
-
In einer Ausführungsform beinhaltet das Computersystem 300 einen Bus 302 oder einen anderen Kommunikationsmechanismus zum Kommunizieren von Informationen und einen mit dem Bus 302 gekoppelten Hardwareprozessor 304 zum Verarbeiten von Informationen. Der Hardwareprozessor 304 ist beispielsweise ein Allgemeinzweck-Mikroprozessor. Das Computersystem 300 beinhaltet außerdem einen Hauptspeicher 306, wie etwa einen Direktzugriffsspeicher (RAM) oder eine andere dynamische Speicherungsvorrichtung, der/die mit dem Bus 302 gekoppelt ist, zum Speichern von Informationen und Anweisungen, die durch den Prozessor 304 auszuführen sind. In einer Implementierung wird der Hauptspeicher 306 zum Speichern temporärer Variablen oder anderen Zwischeninformationen während der Ausführung von durch den Prozessor 304 auszuführenden Anweisungen verwendet. Derartige Anweisungen, wenn sie in für den Prozessor 304 zugreifbaren, nichtflüchtigen Speicherungsmedien gespeichert sind, bilden das Computersystem 300 in eine Spezialzweck-Maschine aus, die zum Durchführen der in den Anweisungen spezifizierten Operationen angepasst ist.
-
In einer Ausführungsform beinhaltet das Computersystem 300 ferner einen Nur-LeseSpeicher (ROM) 308 oder eine andere statische Speicherungsvorrichtung, die mit dem Bus 302 gekoppelt ist, zum Speichern statischer Informationen und Anweisungen für den Prozessor 304. Eine Speicherungsvorrichtung 310, wie etwa eine magnetische Platte, eine optische Platte, ein Solid-State-Laufwerk oder ein dreidimensionaler Cross-Point-Speicher, ist bereitgestellt und mit dem Bus 302 gekoppelt, um Informationen und Anweisungen zu speichern.
-
In einer Ausführungsform ist das Computersystem 300 über den Bus 302 mit einer Anzeige 312 gekoppelt, wie etwa einer Kathodenstrahlröhre (CRT)-, einer Flüssigkristallanzeige (LCD), einer Plasmaanzeige, einer Leuchtdioden(LED)-Anzeige oder einer Organisch-Leuchtdioden(OLED)-Anzeige, um Informationen für einen Computerbenutzer anzuzeigen. Eine Eingabevorrichtung 314, die alphanumerische und andere Tasten beinhaltet, ist mit dem Bus 302 zum Kommunizieren von Informationen und Befehlsauswahlen zu dem Prozessor 304 gekoppelt. Eine andere Art von Benutzereingabevorrichtung ist eine Cursor-Steuerung 316, wie etwa eine Maus, ein Trackball, eine berührungsgestützte Anzeige oder Cursorrichtungstasten zum Kommunizieren von Richtungsinformationen und Befehlsauswahlen zu dem Prozessor 304 und zum Steuern der Cursorbewegung auf der Anzeige 312. Diese Eingabevorrichtung weist typischerweise zwei Freiheitsgrade in zwei Achsen auf, einer ersten Achse (z. B. x-Achse) und einer zweiten Achse (z. B. y-Achse), was der Vorrichtung ermöglicht, Positionen in einer Ebene zu spezifizieren.
-
Gemäß einer Ausführungsform werden die Techniken hierin durch das Computersystem 300 als Reaktion darauf durchgeführt, dass der Prozessor 304 eine oder mehrere Sequenzen einer oder mehrerer im Hauptspeicher 306 enthaltener Anweisungen ausführt. Solche Anweisungen werden von einem anderen Speicherungsmedium, wie etwa der Speicherungsvorrichtung 310, in den Hauptspeicher 306 gelesen. Die Ausführung der im Hauptspeicher 306 enthaltenen Anweisungssequenzen veranlasst, dass der Prozessor 304 die hierin beschriebenen Prozessschritte durchführt. In alternativen Ausführungsformen wird eine festverdrahtete Schaltungsanordnung anstelle von oder in Kombination mit Softwareanweisungen verwendet.
-
Der Begriff „Speicherungsmedien“, wie hierin verwendet, bezieht sich auf beliebige nicht transitorische Medien, die Daten und/oder Anweisungen speichern, die veranlassen, dass eine Maschine auf eine spezifische Weise arbeitet. Solche Speicherungsmedien beinhalten nichtflüchtige Medien und/oder flüchtige Medien. Nichtflüchtige Medien beinhalten beispielsweise optische Platten, Magnetplatten, Solid-State-Laufwerke oder dreidimensionalen Cross-Point-Speicher, wie etwa die Speicherungsvorrichtung 310. Flüchtige Medien beinhalten dynamischen Speicher, wie etwa den Hauptspeicher 306. Übliche Formen von Speicherungsmedien beinhalten beispielsweise eine Diskette, eine flexible Platte, eine Festplatte, ein Solid-State-Laufwerk, Magnetband oder ein beliebiges anderes magnetisches Datenspeicherungsmedium, eine CD-ROM, ein beliebiges anderes optisches Datenspeicherungsmedium, ein beliebiges physisches Medium mit Lochmustern, einen RAM, einen PROM und EPROM, einen FLASH-EPROM, NV-RAM oder einen beliebigen anderen Speicherchip oder eine beliebige andere Speicherkassette.
-
Speicherungsmedien unterscheiden sich von Übertragungsmedien, können jedoch in Verbindung mit diesen verwendet werden. Übertragungsmedien nehmen bei dem Transfer von Informationen zwischen Speicherungsmedien teil. Beispielsweise beinhalten Übertragungsmedien Koaxialkabel, Kupferdraht und Faseroptik, einschließlich der Drähte, die den Bus 302 beinhalten. Übertragungsmedien können auch die Form akustischer Wellen oder Lichtwellen annehmen, wie etwa jene, die während Funkwellen- oder Infrarot-Datenkommunikationen erzeugt werden.
-
In einer Ausführungsform sind verschiedene Formen von Medien beim Führen einer oder mehrerer Sequenzen einer oder mehrerer Anweisungen zu dem Prozessor 304 zur Ausführung beteiligt. Beispielsweise werden die Anweisungen anfänglich auf einer magnetischen Platte oder einem Solid-State-Laufwerk eines Ferncomputers geführt. Der Ferncomputer lädt die Anweisungen in seinen dynamischen Speicher und sendet die Anweisungen über eine Telefonleitung unter Verwendung eines Modems. Ein Modem lokal zu dem Computersystem 300 empfängt die Daten auf der Telefonleitung und verwendet einen Infrarotsender, um die Daten in ein Infrarotsignal umzuwandeln. Ein Infrarotdetektor empfängt die in dem Infrarotsignal geführten Daten und eine geeignete Schaltungsanordnung platziert die Daten auf den Bus 302. Der Bus 302 führt die Daten zum Hauptspeicher 306, aus dem der Prozessor 304 die Anweisungen abruft und ausführt. Die durch den Hauptspeicher 306 empfangenen Anweisungen können optional in der Speicherungsvorrichtung 310 entweder vor oder nach der Ausführung durch den Prozessor 304 gespeichert werden.
-
Das Computersystem 300 beinhaltet auch eine Kommunikationsschnittstelle 318, die mit dem Bus 302 gekoppelt ist. Die Kommunikationsschnittstelle 318 stellt eine Zweiwege-Datenkommunikationskopplung mit einem Netzwerklink 320 bereit, der mit einem Lokalnetzwerk 322 verbunden ist. Beispielsweise ist die Kommunikationsschnittstelle 318 eine ISDN(Integrated Service Digital Network)-Karte, ein Kabelmodem, ein Satellitenmodem oder ein Modem zum Bereitstellen einer Datenkommunikationsverbindung mit einer entsprechenden Art von Telefonleitung. Als ein anderes Beispiel ist die Kommunikationsschnittstelle 318 eine Lokalnetzwerk(LAN)-Karte zum Bereitstellen einer Datenkommunikationsverbindung mit einem kompatiblen LAN. In manchen Implementierungen werden auch Drahtlos-Links implementiert. In einer beliebigen derartigen Implementierung sendet und empfängt die Kommunikationsschnittstelle 318 elektrische, elektromagnetische oder optische Signale, die digitale Datenströme führen, die verschiedene Informationsarten repräsentieren.
-
Der Netzwerklink 320 stellt typischerweise eine Datenkommunikation über ein oder mehrere Netzwerke zu anderen Datenvorrichtungen bereit. Beispielsweise stellt der Netzwerklink 320 eine Verbindung über das Lokalnetzwerk 322 zu einem Host-Computer 324 oder zu einem Cloud-Datenzentrum oder -Gerät bereit, der/das durch einen Internetdienstanbieter (ISP) 326 betrieben wird. Der ISP 326 stellt im Gegenzug Datenkommunikationsdienste über das weltweite Paketdatenkommunikationsnetzwerk bereit, heutzutage gewöhnlich bezeichnet als das „Internet“ 328. Sowohl das Lokalnetzwerk 322 als auch das Internet 328 verwenden elektrische, elektromagnetische oder optische Signale, die digitale Datenströme führen. Die Signale über die verschiedenen Netzwerke und die Signale auf dem Netzwerklink 320 und über die Kommunikationsschnittstelle 318, die die digitalen Daten zu und von dem Computersystem 300 führen, sind beispielhafte Formen 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), den Netzwerklink 320 und die Kommunikationsschnittstelle 318. In einer Ausführungsform empfängt das Computersystem 300 Code zur Verarbeitung. Der empfangene Code wird durch den Prozessor 304 wie empfangen ausgeführt und/oder in der Speicherungsvorrichtung 310 oder einer anderen nichtflüchtigen Speicherung zur späteren Ausführung gespeichert.
-
Architektur eines autonomen Fahrzeugs
-
4 zeigt eine beispielhafte Architektur 400 für ein autonomes Fahrzeug (z. B. das in 1 gezeigte AV 100). Die Architektur 400 beinhaltet ein Wahrnehmungsmodul 402 (manchmal als eine Wahrnehmungsschaltung bezeichnet), ein Planungsmodul 404 (manchmal als eine Planungsschaltung bezeichnet), ein Steuermodul 406 (manchmal als eine Steuerschaltung bezeichnet), ein Lokalisierungsmodul 408 (manchmal als eine Lokalisierungsschaltung bezeichnet) und ein Datenbankmodul 410 (manchmal als eine Datenbankschaltung bezeichnet). Jedes Modul spielt beim Betrieb des AV 100 eine Rolle. Zusammen können die Module 402, 404, 406, 408 und 410 Teil des in 1 gezeigten AV-Systems 120 sein. In manchen Ausführungsformen sind beliebige der Module 402, 404, 406, 408 und 410 eine Kombination von Computersoftware (z. B. ausführbarer Code, der auf einem computerlesbaren Medium gespeichert ist) und Computerhardware (z. B. ein/e oder mehrere Mikroprozessoren, Mikrocontroller, anwendungsspezifische integrierte Schaltungen [ASICs], Hardwarespeichervorrichtungen, andere Arten von integrierten Schaltungen, andere Arten von Computerhardware oder eine Kombination beliebiger oder aller dieser Dinge).
-
Im Gebrauch empfängt das Planungsmodul 404 Daten, die einen Bestimmungsort 412 repräsentieren, und bestimmt Daten, die eine Trajektorie 414 (manchmal als eine Route bezeichnet) repräsentieren, auf der das AV 100 fahren kann, um den Bestimmungsort 412 zu erreichen (z. B. dort anzukommen). Damit das Planungsmodul 404 die die Trajektorie 414 repräsentierenden Daten bestimmt, empfängt das Planungsmodul 404 Daten vom Wahrnehmungsmodul 402, vom Lokalisierungsmodul 408 und vom Datenbankmodul 410.
-
Das Wahrnehmungsmodul 402 identifiziert nahegelegene physische Objekte unter Verwendung eines oder mehrerer Sensoren 121, z. B. wie auch in 1 gezeigt. Die Objekte werden klassifiziert (z. B. in Typen wie etwa Fußgänger, Fahrrad, Kraftfahrzeug, Verkehrsschild usw. gruppiert) und dem Planungsmodul 404 wird eine Szenenbeschreibung einschließlich der klassifizierten Objekte 416 bereitgestellt.
-
Das Planungsmodul 404 empfängt auch Daten, die die AV-Position 418 repräsentieren, vom Lokalisierungsmodul 408. Das Lokalisierungsmodul 408 bestimmt die AV-Position unter Verwendung von Daten von den Sensoren 121 und Daten vom Datenbankmodul 410 (z. B. geografische Daten), um eine Position zu berechnen. Beispielsweise verwendet das Lokalisierungsmodul 408 Daten von einem GNSS(globales Satellitensystem)-Sensor und geografische Daten, um einen Längengrad und Breitengrad des AV zu berechnen. In einer Ausführungsform beinhalten die durch das Lokalisierungsmodul 408 verwendeten Daten hochpräzise Karten der geometrischen Eigenschaften der Verkehrsstraße, Karten, die Straßennetzkonnektivitätseigenschaften beschreiben, Karten, die physische Eigenschaften der Verkehrsstraße beschreiben (wie etwa Verkehrsgeschwindigkeit, Verkehrsvolumen, die Anzahl von Fahrzeug- und Fahrrad-Verkehrsfahrbahnen, Fahrbahnbreite, Fahrbahnverkehrsrichtung oder Fahrbahnmarkierungsarten und -orte oder Kombinationen davon), und Karten, die die räumlichen Orte von Straßenmerkmalen beschreiben, wie etwa Fußgängerüberwege, Verkehrsschilder oder andere Verkehrssignale verschiedener Arten.
-
Das Steuermodul 406 empfängt die die Trajektorie 414 repräsentierenden Daten und die die AV-Position 418 repräsentierenden Daten und betreibt die Steuerfunktionen 420a-c (z. B. Lenkung, Gasgeben, Bremsen, Zündung) des AV auf eine Weise, die bewirken wird, dass das AV 100 entlang der Trajektorie 414 zu dem Bestimmungsort 412 fährt. Falls beispielsweise die Trajektorie 414 eine Linksabbiegung beinhaltet, wird das Steuermodul 406 die Steuerfunktionen 420a-c auf eine Weise betreiben, dass der Lenkwinkel der Lenkfunktion bewirken wird, dass das AV 100 nach links abbiegt, und das Gasgeben und Bremsen bewirken werden, dass das AV 100 anhält und darauf wartet, dass Fußgänger und Fahrzeuge passieren, bevor das Abbiegen vorgenommen wird.
-
Eingaben in das autonome Fahrzeug
-
5 zeigt ein Beispiel für Eingaben 502a-d (z. B. die in 1 gezeigten Sensoren 121) und Ausgaben 504a-d (z. B. Sensordaten), die durch das Wahrnehmungsmodul 402 (4) verwendet werden. Eine Eingabe 502a ist ein LiDAR(Lichtdetektion und -entfernungsmessung)-System (z. B. das in 1 gezeigte LiDAR 123). LiDAR ist eine Technologie, die Licht (z. B. Impulse von Licht wie etwa Infrarotlicht) verwendet, um Daten über physische Objekte in ihrer Sichtlinie zu erhalten. Ein LiDAR-System erzeugt LiDAR-Daten als die Ausgabe 504a. Beispielsweise sind LiDAR-Daten Sammlungen von 3D- oder 2D-Punkten (auch als Punktwolken bekannt), die zum Erstellen einer Repräsentation der Umgebung 190 verwendet werden.
-
Eine andere Eingabe 502b ist ein RADAR-System. RADAR ist eine Technologie, die Funkwellen verwendet, um Daten über nahegelegene physische Objekte zu erhalten. RADARs können Daten über Objekte erhalten, die sich nicht innerhalb der Sichtlinie eines LiDAR-Systems befinden. Ein RADAR-System 502b erzeugt RADAR-Daten als die Ausgabe 504b. Beispielsweise sind RADAR-Daten ein oder mehrere elektromagnetische Hochfrequenz-Signale, die zum Erstellen einer Repräsentation der Umgebung 190 verwendet werden.
-
Eine andere Eingabe 502c ist ein Kamerasystem. Ein Kamerasystem verwendet eine oder mehrere Kameras (z. B. Digitalkameras, die einen Lichtsensor wie etwa eine CCD [Charge-Coupled Device] verwenden), um Informationen über nahegelegene physische Objekte zu erhalten. Ein Kamerasystem erzeugt Kameradaten als die Ausgabe 504c. Kameradaten nehmen häufig die Form von Bilddaten an (z. B. Daten in einem Bilddatenformat wie etwa RAW, JPEG, PNG usw.). In manchen Beispielen weist das Kamerasystem mehrere unabhängige Kameras auf, z. B. für Stereopsis (Stereovision), was dem Kamerasystem ermöglicht, Tiefe wahrzunehmen. Obwohl die durch das Kamerasystem wahrgenommenen Objekte hier als „nahegelegen“ beschrieben sind, ist dies relativ zu dem AV. Im Gebrauch kann das Kamerasystem dazu ausgelegt sein, Objekte zu „sehen“, die sich entfernt, z. B. bis zu einem Kilometer oder mehr, vor dem AV befinden. Dementsprechend kann das Kamerasystem Merkmale wie etwa Sensoren und Objekte aufweisen, die zum Wahrnehmen von weit entfernten Objekten optimiert sind.
-
Eine andere Eingabe 502d ist ein Ampeldetektionssystem (TLD-System; TLD: Traffic Light Detection). Ein TLD-System verwendet eine oder mehrere Kameras, um Informationen über Ampeln, Verkehrsschilder und andere physische Objekte zu erhalten, die visuelle Betriebsinformationen bereitstellen. Ein TLD-System erzeugt TLD-Daten als die Ausgabe 504d. TLD-Daten nehmen häufig die Form von Bilddaten an (z. B. Daten in einem Bilddatenformat wie etwa RAW, JPEG, PNG usw.). Ein TLD-System unterscheidet sich von einem eine Kamera einbeziehenden System darin, dass ein TLD-System eine Kamera mit einem weiten Sichtfeld verwendet (z. B. unter Verwendung eines Weitwinkelobjektivs oder eines Fischaugenobjekivs), um Informationen über so viele physische Objekte, die visuelle Betriebsinformationen bereitstellen, wie möglich zu erhalten, sodass das AV 100 einen Zugang zu allen relevanten Betriebsinformationen aufweist, die durch diese Objekte bereitgestellt werden. Beispielsweise kann der Sichtwinkel des TLD-Systems etwa 120 Grad oder mehr betragen.
-
In manchen Ausführungsformen werden die Ausgaben 504a-d unter Verwendung einer Sensorfusionstechnik kombiniert. Somit werden entweder die individuellen Ausgaben 504a-d anderen Systemen des AV 100 bereitgestellt (z. B. einem Planungsmodul 404 bereitgestellt, wie in 4 gezeigt), oder die kombinierte Ausgabe kann den anderen Systemen bereitgestellt werden, entweder in der Form einer einzelnen kombinierten Ausgabe oder mehrerer kombinierter Ausgaben des gleichen Typs (z. B. unter Verwendung der gleichen Kombinationstechnik oder Kombinieren der gleichen Ausgaben oder beides) oder unterschiedlicher Typen (z. B. unter Verwendung verschiedener jeweiliger Kombinationstechniken oder Kombinieren verschiedener jeweiliger Ausgaben oder beides). In manchen Ausführungsformen wird eine Frühfusionstechnik verwendet. Eine Frühfusionstechnik ist gekennzeichnet durch das Kombinieren von Ausgaben, bevor ein oder mehrere Datenverarbeitungsschritte an der kombinierten Ausgabe angewendet werden. In manchen Ausführungsformen wird eine Spätfusionstechnik verwendet. Eine Spätfusionstechnik ist gekennzeichnet durch das Kombinieren von Ausgaben, nachdem ein oder mehrere Datenverarbeitungsschritte an den individuellen Ausgaben angewendet werden.
-
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 von einem Lichtemitter 606 (z. B. einem Laser-Sender). Durch ein LiDAR-System emittiertes Licht liegt typischerweise 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 zu dem LiDAR-System 602 reflektiert. (Von einem LiDAR-System emittiertes Licht dringt typischerweise nicht in physische Objekte, z. B. physische Objekte in fester Form, ein.) Das LiDAR-System 602 weist auch einen oder mehrere Lichtdetektoren 610 auf, die das reflektierte Licht detektieren. In einer Ausführungsform erzeugen ein oder mehrere mit dem LiDAR-System assoziierte Datenverarbeitungssysteme ein Bild 612, das das Sichtfeld 614 des LiDAR-Systems repräsentiert. Das Bild 612 beinhaltet Informationen, die die Abgrenzungen 616 eines physischen Objekts 608 repräsentieren. Auf diese Weise wird das Bild 612 zum Bestimmen der Abgrenzungen 616 eines oder mehrerer physischer Objekte in der Nähe eines AV verwendet.
-
7 zeigt das LiDAR-System 602 im Betrieb. In dem in dieser Figur gezeigten Szenario empfängt das AV 100 sowohl die Kamerasystemausgabe 504c in der Form eines Bildes 702 als auch die LiDAR-Systemausgabe 504a in der Form von LiDAR-Datenpunkten 704. Im Gebrauch vergleichen die Datenverarbeitungssysteme des AV 100 das Bild 702 mit den Datenpunkten 704. Insbesondere wird ein im Bild 702 identifiziertes physisches Objekt 706 auch unter den Datenpunkten 704 identifiziert. Auf diese Weise nimmt das AV 100 die Abgrenzungen des physischen Objekts basierend auf der Kontur und der Dichte der Datenpunkte 704 wahr.
-
8 zeigt den Betrieb des LiDAR-Systems 602 mit zusätzlichen Einzelheiten. Wie oben beschrieben, detektiert das AV 100 die Abgrenzungen eines physischen Objekts basierend auf Charakteristiken der durch das LiDAR-System 602 detektierten Datenpunkte. Wie in 8 gezeigt, wird ein flaches Objekt, wie etwa der Boden 802, von einem LiDAR-System 602 emittiertes Licht 804a-d konsistent reflektieren. Anders ausgedrückt, da das LiDAR-System 602 Licht unter Verwendung eines konstanten Abstands emittiert, wird der Boden 802 Licht zurück zu dem LiDAR-System 602 mit dem gleichen konsistenten Abstand reflektieren. Während das AV 100 über den Boden 802 fährt, wird das LiDAR-System 602 fortfahren, durch den nächsten gültigen Bodenpunkt 806 reflektiertes Licht zu detektieren, falls nichts die Straße versperrt. Falls jedoch ein Objekt 808 die Straße versperrt, wird durch das LiDAR-System 602 emittiertes Licht 804e-f von Punkten 810a-b inkonsistent zu der voraussichtlichen konsistenten Weise reflektiert. Aus diesen Informationen kann das AV 100 bestimmen, dass das Objekt 808 vorhanden ist.
-
F fadplanung
-
9 zeigt ein Blockdiagramm 900 der Beziehungen zwischen Eingaben und Ausgaben eines Planungsmoduls 404 (z. B. wie in 4 gezeigt). Im Allgemeinen ist die Ausgabe eines Planungsmoduls 404 eine Route 902 von einem Startpunkt 904 (z. B. Quellstandort oder Anfangsstandort) zu einem Endpunkt 906 (z. B. Bestimmungsort oder endgültigen Ort). Die Route 902 wird typischerweise durch ein oder mehrere Segmente definiert. Beispielsweise ist ein Segment eine zu fahrende Distanz über zumindest einen Abschnitt einer Straße, Landstraße, Autobahn, Einfahrt oder ein anderer physischer Bereich, der sich zur Fahrt eines Kraftfahrzeugs eignet. In manchen Beispielen, falls z. B. das AV 100 ein geländefähiges Fahrzeug ist, wie etwa ein Vierrad(4WD)- oder Allrad(AWD)-Auto, SUV, Pickup-Truck oder dergleichen, beinhaltet die Route 902 „Off-Road“-Segmente, wie etwa unbefestigte Pfade oder offene Felder.
-
Zusätzlich zu der Route 902 gibt ein Planungsmodul auch Routenplanungsdaten 908 auf Fahrbahnebene aus. Die Routenplanungsdaten 908 auf Fahrbahnebene werden verwendet, um Segmente der Route 902 basierend auf Zuständen des Segments zu einer speziellen Zeit zu durchfahren. Falls die Route 902 eine mehrspurige Autobahn beinhaltet, beinhalten die Routenplanungsdaten 908 auf Fahrbahnebene Trajektorieplanungsdaten 910, die das AV 100 verwendet kann, um eine Fahrbahn unter den mehreren Fahrbahnen zu wählen, z. B. basierend darauf, ob sich einer Ausfahrt genähert wird, ob eine oder mehrere der Fahrbahnen andere Fahrzeuge aufweisen, oder andere Faktoren, die im Verlauf weniger Minuten oder weniger variieren. Gleichermaßen beinhalten die Routenplanungsdaten 908 auf Fahrbahnebene in manchen Implementierungen für ein Segment der Route 902 spezifische Geschwindigkeitsbeschränkungen 912. Falls das Segment beispielsweise Fußgänger oder unerwarteten Verkehr beinhaltet, können die Geschwindigkeitsbeschränkungen 912 das AV 100 auf eine Fahrgeschwindigkeit einschränken, die langsamer als eine voraussichtliche Geschwindigkeit ist, z. B. eine Geschwindigkeit basierend auf Geschwindigkeitsbegrenzungsdaten für das Segment.
-
In einer Ausführungsform beinhalten die Eingaben in das Planungsmodul 404 Datenbankdaten 914 (z.B. von dem in 4 gezeigten Datenbankmodul 410), aktuelle Standortdaten 916 (z. B. die in 4 gezeigte AV-Position 418), Bestimmungsortdaten 918 (z. B. für den in 4 gezeigten Bestimmungsort 412) und Objektdaten 920 (z. B. die klassifizierten Objekte 416, wie durch das in 4 gezeigte Wahrnehmungsmodul 402 wahrgenommen). In manchen Ausführungsformen beinhalten die Datenbankdaten 914 bei der Planung verwendete Regeln. Regeln werden unter Verwendung einer formellen Sprache spezifiziert, z. B. unter Verwendung von boolescher Logik. In einer beliebigen gegebenen Situation, auf die das AV 100 trifft, werden zumindest manche der Regeln für die Situation gelten. Eine Regel gilt für eine gegebene Situation, falls die Regel Bedingungen aufweist, die basierend auf dem AV 100 zur Verfügung stehenden Informationen erfüllt werden, z. B. Informationen über die umliegende Umgebung. Regeln können eine Priorität aufweisen. Beispielsweise kann eine Regel, die besagt „falls die Straße eine Schnellstraße ist, soll sich zu der am weitesten links gelegenen Spur bewegt werden“, eine niedrigere Priorität aufweisen als „falls sich der Ausfahrt innerhalb einer Meile genähert wird, soll sich zu der am weitesten rechts gelegenen Spur bewegt werden“.
-
10 zeigt einen gerichteten Graphen 1000, der bei der Pfadplanung z. B. durch das Planungsmodul 404 (4) verwendet wird. Im Allgemeinen wird ein gerichteter Graph 1000, wie der in 10 gezeigte, zum Bestimmen eines Pfads zwischen einem beliebigen Startpunkt 1002 und einem Endpunkt 1004 verwendet. In der realen Welt kann die den Startpunkt 1002 und den Endpunkt 1004 trennende Distanz relativ groß sein (z. B. in zwei unterschiedlichen Großstadtgebieten) oder kann relativ klein sein (z. B. zwei Kreuzungen, die an einen Häuserblock angrenzen, oder zwei Fahrbahnen einer mehrspurigen Straße).
-
In einer Ausführungsform weist der gerichtete Graph 1000 Knoten 1006a-d auf, die unterschiedliche Orte zwischen dem Startpunkt 1002 und dem Endpunkt 1004 repräsentieren, die durch ein AV 100 belegt sein könnten. In manchen Beispielen, z. B. wenn der Startpunkt 1002 und der Endpunkt 1004 unterschiedliche Großstadtgebiete repräsentieren, repräsentieren die Knoten 1006a-d Segmente von Straßen. In manchen Beispielen, z. B. wenn der Startpunkt 1002 und der Endpunkt 1004 unterschiedliche Orte auf derselben Straße repräsentieren, repräsentieren die Knoten 1006a-d unterschiedliche Positionen auf dieser Straße. Auf diese Weise beinhaltet der gerichtete Graph 1000 Informationen bei unterschiedlichen Granularitätsstufen. In einer Ausführungsform ist der eine hohe Granularität aufweisende gerichtete Graph auch ein Teilgraph eines anderen gerichteten Graphen mit einem größeren Maßstab. Beispielsweise weist ein gerichteter Graph, in dem der Startpunkt 1002 und der Endpunkt 1004 weit voneinander entfernt sind (z. B. mehrere Meilen getrennt), den Großteil seiner Informationen mit niedriger Granularität auf und basiert auf gespeicherten Daten, beinhaltet aber auch einige hochgranulare Informationen für den Abschnitt des Graphen, der physische Orte im Sichtfeld des AV 100 repräsentiert.
-
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 niedrig ist, repräsentieren die Objekte 1008a-b Gebiete, die das Kraftfahrzeug nicht durchfahren kann, z. B. Bereiche, die keine Straßen oder Landstraßen aufweisen. Wenn die Granularität hoch ist, repräsentieren die Objekte 1008a-b physische Objekte im Sichtfeld des AV 100, z. B. andere Kraftfahrzeuge, Fußgänger oder andere Entitäten, mit denen das AV 100 keinen physischen Raum teilen kann. In einer Ausführungsform sind manche oder alle der Objekte 1008a-b statische Objekte (z. B. ein Objekt, das seine Position nicht ändert, wie etwa eine Straßenlampe oder ein Strommast) oder dynamische Objekte (z. B. ein Objekt, das in der Lage ist, seine Position zu ändern, wie etwa ein Fußgänger oder ein anderes Auto).
-
Die Knoten 1006a-d sind durch Kanten 1010a-c verbunden. Falls zwei Knoten 1006ab durch eine Kante 1010a verbunden sind, ist es für das AV 100 möglich, zwischen einem Knoten 1006a und dem anderen Knoten 1006b zu fahren, z. B. ohne zu einem Zwischenknoten fahren zu müssen, bevor es an dem anderen Knoten 1006b ankommt. (Wenn sich auf ein zwischen Knoten fahrendes AV 100 bezogen wird, bedeutet dies, dass das AV 100 zwischen den beiden physischen Positionen fährt, die durch die jeweiligen Knoten repräsentiert werden.) Die Kanten 1010a-c sind häufig bidirektional in dem Sinne, dass ein AV 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 AV 100 von einem ersten Knoten zu einem zweiten Knoten fahren kann, das AV 100 jedoch nicht oder vom zweiten Knoten zum ersten Knoten fahren kann. Die Kanten 1010a-c sind unidirektional, wenn sie beispielsweise Einbahnstraßen, individuelle Fahrbahnen einer Straße, Landstraße oder Autobahn oder andere Merkmale, auf denen aufgrund rechtlicher oder physischer Beschränkungen nur in einer Richtung gefahren werden kann, repräsentieren.
-
In einer Ausführungsform verwendet das Planungsmodul 404 den gerichteten Graphen 1000, um einen Pfad 1012 zu identifizieren, der aus Knoten und Kanten zwischen dem Startpunkt 1002 und dem Endpunkt 1004 besteht.
-
Eine Kante 1010a-c weist assoziierte Kosten 1014a-b auf. Die Kosten 1014a-b sind ein Wert, der die Ressourcen repräsentiert, die verbraucht werden, falls das AV 100 diese Kante wählt. Eine typische Ressource ist Zeit. Falls beispielsweise eine Kante 1010a eine physische Distanz repräsentiert, die zweimal die einer anderen Kante 1010b ist, dann können die assoziierten Kosten 1014a der ersten Kante 1010a zweimal so groß sein wie die assoziierten Kosten 1014b der zweiten Kante 1010b. Andere Faktoren, die die Zeit beeinflussen, beinhalten erwarteter Verkehr, Anzahl von Kreuzungen, Geschwindigkeitsbegrenzung usw. Eine andere typische Ressource ist Kraftstoffeffizienz. Zwei Kanten 1010a-b können die gleiche physische Distanz repräsentieren, aber eine Kante 1010a kann mehr Kraftstoff erfordern als die andere Kante 1010b, z. B. infolge von Straßenbedingungen, erwartetem Wetter usw.
-
Wenn das Planungsmodul 404 einen Pfad 1012 zwischen dem Startpunkt 1002 und dem Endpunkt 1004 identifiziert, wählt das Planungsmodul 404 typischerweise einen für die Kosten optimierten Pfad, z. B. den Pfad, der die geringsten Gesamtkosten aufweist, wenn die individuellen Kosten der Kanten zusammenaddiert werden.
-
Steuerung des autonomen Fahrzeugs
-
11 zeigt ein Blockdiagramm 1100 der Eingaben und Ausgaben eines Steuermoduls 406 (z. B. wie in 4 gezeigt). Ein Steuermodul arbeitet gemäß einer Steuerung 1102, die beispielsweise einen oder mehrere Prozessoren (z.B. einen oder mehrere Computerprozessoren wie etwa Mikroprozessoren oder Mikrocontroller oder beides) ähnlich dem Prozessor 304, Kurzzeit- und/oder Langzeit-Datenspeicherung (z. B. Speicher-Direktzugriffsspeicher oder Flash-Speicher oder beides) ähnlich dem Hauptspeicher 306, dem ROM 1308 und der Speicherungsvorrichtung 210 und im Speicher gespeicherte Anweisungen, die Operationen der Steuerung 1102 ausführen, wenn die Anweisungen (z. B. durch den einen oder die mehreren Prozessoren) ausgeführt werden, beinhaltet.
-
In einer Ausführungsform empfängt die Steuerung 1102 Daten, die eine gewünschte Ausgabe 1104 repräsentieren. Die gewünschte Ausgabe 1104 beinhaltet typischerweise eine Bahngeschwindigkeit, z. B. eine Geschwindigkeit und einen Kurs. Die gewünschte Ausgabe 1104 kann beispielsweise auf Daten basieren, die von einem Planungsmodul 404 (z. B. wie in 4 gezeigt) empfangen werden. Gemäß der gewünschten Ausgabe 1104 erzeugt die Steuerung 1102 Daten, die als eine Gaspedaleingabe 1106 und eine Lenkeingabe 1108 verwendbar sind. Die Gaspedaleingabe 1106 repräsentiert den Betrag, mit dem das Gaspedal (z.B. Beschleunigungssteuerung) eines AV 100 zu betätigen ist, z. B. durch Einwirken auf das Lenkpedal oder Einwirken auf eine andere Gaspedalsteuerung, um die gewünschte Ausgabe 1104 zu erreichen. In manchen Beispielen beinhaltet die Gaspedaleingabe 1106 auch Daten, die zum Betätigen der Bremse (z. B. Verlangsamungssteuerung) des AV 100 verwendbar sind. Die Lenkeingabe 1108 repräsentiert einen Lenkwinkel, z. B. den Winkel, mit dem die Lenksteuerung (z. B. Lenkrad, Lenkwinkelaktor oder eine andere Funktionalität zum Steuern des Lenkwinkels) des AV positioniert werden sollte, um die gewünschte Ausgabe 1104 zu erreichen.
-
In einer Ausführungsform empfängt die Steuerung 1102 eine Rückmeldung, die zum Anpassen der Eingaben verwendet wird, die dem Gaspedal und der Lenkung bereitgestellt werden. Falls das AV 100 beispielsweise auf eine Beeinträchtigung 1110 trifft, wie etwa einen Hügel, wird die gemessene Geschwindigkeit 1112 des AV 100 unter die gewünschte Ausgabegeschwindigkeit gesenkt. In einer Ausführungsform wird eine jegliche gemessene Ausgabe 1114 der Steuerung 1102 bereitgestellt, sodass die notwendigen Anpassungen durchgeführt werden, z. B. basierend auf dem Unterschied 1113 zwischen der gemessenen Geschwindigkeit und der gewünschten Ausgabe. Die gemessene Ausgabe 1114 beinhaltet eine gemessene Position 1116, eine gemessene Bahngeschwindigkeit 1118 (einschließlich Geschwindigkeit und Kurs), eine gemessene Beschleunigung 1120 und andere Ausgaben, die durch Sensoren des AV 100 messbar sind.
-
In einer Ausführungsform werden Informationen über die Beeinträchtigung 1110 im Voraus detektiert, z. B. durch einen Sensor wie etwa eine Kamera oder ein LiDAR-Sensor, und einem prädiktiven Rückmeldemodul 1122 bereitgestellt. Das prädiktive Rückmeldemodul 1122 stellt dann der Steuerung 1102 Informationen bereit, die die Steuerung 1102 verwenden kann, um eine entsprechende Anpassung vorzunehmen. Falls die Sensoren des AV 100 beispielsweise einen Hügel detektieren („sehen“), können diese Informationen durch die Steuerung 1102 verwendet werden, um sich darauf vorzubereiten, das Gaspedal zu der geeigneten Zeit zu betätigen, um eine erhebliche Verlangsamung zu vermeiden.
-
12 zeigt ein Blockdiagramm 1200 der Eingaben, Ausgaben und Komponenten der Steuerung 1102. Die Steuerung 1102 weist einen Geschwindigkeitsprofilersteller 1202 auf, der den Betrieb einer Gaspedal-/Bremssteuerung 1204 beeinflusst. Beispielsweise weist der Geschwindigkeitsprofilersteller 1202 die Gaspedal-/Bremssteuerung 1202 an, Beschleunigung zu bewirken und Verlangsamung zu bewirken, unter Verwendung des Gaspedals/der Bremse 1206, in Abhängigkeit von z. B. der Rückmeldung, die durch die Steuerung 1102 empfangen und durch den Geschwindigkeitsprofilersteller 1202 verarbeitet wird.
-
Die Steuerung 1102 weist auch eine Lateralverfolgungssteuerung 1208 auf, die den Betrieb einer Lenksteuerung 1210 beeinflusst. Beispielsweise weist die Lateralverfolgungssteuerung 1208 die Lenksteuerung 1204 an, die Position des Lenkwinkelaktors 1212 in Abhängigkeit von z. B. einer Rückmeldung, die durch die Steuerung 1102 empfangen und durch die Lateralverfolgungssteuerung 1208 verarbeitet wird, anzupassen.
-
Die Steuerung 1102 empfängt mehrere Eingaben, die zum Bestimmen verwendet werden, wie das Gaspedal/die Bremse 1206 und der Lenkwinkelaktor 1212 zu steuern sind. Ein Planungsmodul 404 stellt Informationen bereit, die durch die Steuerung 1102 verwendet werden, um z. B. einen Kurs zu wählen, wenn das AV 100 den Betrieb beginnt, und um zu bestimmen, welches Straßensegment zu durchfahren ist, wenn das AV 100 eine Kreuzung erreicht. Ein Lokalisierungsmodul 408 stellt der Steuerung 1102 Informationen bereit, die den aktuellen Standort des AV 100 beschreiben, sodass die Steuerung 1102 beispielsweise basierend auf der Weise, mit der das Gaspedal/die Bremse 1206 und der Lenkwinkelaktor 1212 gesteuert wird, bestimmen kann, ob sich das AV 100 an einem erwarteten Standort befindet. In einer Ausführungsform empfängt die Steuerung 1102 Informationen von anderen Eingaben 1214, z. B. Informationen, die von Datenbanken, Computernetzwerken usw. empfangen werden.
-
Offline Kamera-zu-LiDAR-Kalibration
-
Die 13A und 13B veranschaulichen ein Offline-Sensorkalibrationssystem 1300 gemäß einer oder mehreren Ausführungsformen. Mit Bezug auf 13A beinhaltet das System 1300 ein auf einer Drehscheibe 1302 aufgestelltes Fahrzeug 1301 und mehrere Kalibrationsziele 1305a...1305d. Das Fahrzeug 1301 kann beispielsweise ein AV sein. Auf dem Dach des Fahrzeugs 1031 ist ein 3D-LiDAR-Sensor 1303 und ein vorwärts gerichteter Kamerasensor 1304 montiert. Obwohl in diesem Beispiel zwei Sensoren gezeigt sind, kann das Fahrzeug 1301 eine beliebige Anzahl und einen beliebigen Typ von Sensoren aufweisen. Beispielsweise kann es einen oder mehrere am Fahrzeug 1301 montierte, nach hinten gerichtete und/oder zur Seite gerichtete Kamerasensoren geben. Wie hierin beschrieben wird, werden diese zusätzlichen Kamerasensoren durch Rotieren der Drehscheibe 1302 kalibriert und validiert, sodass die Sichtlinien dieser Kamerasensoren zu den Kalibrationszielen 1305a...1305d zeigen. In einer Ausführungsform kann das System 300 in einer Wartungsstation für AVs untergebracht und/oder in einer AV-Herstellungsanlage enthalten sein.
-
Obwohl in diesem Beispiel vier Kalibrationsziele gezeigt sind, die sich bei unterschiedlichen Entfernungen vom Fahrzeug 1301 befinden und unterschiedliche Stellungen aufweisen, kann eine beliebige Anzahl von Kalibrationszielen verwendet und mit einem beliebigen gewünschten Stellungswinkel und einer beliebigen gewünschten Entfernung platziert werden, unter der Voraussetzung, dass die Kalibrationsziele gleichzeitig durch die Kamera und das LiDAR detektiert werden können. In den folgenden Beispielen sind die Kalibrationsziele 1305a...1305d Schachbretter, wie in 13B gezeigt. Durchschnittsfachleute werden jedoch verstehen, dass andere planare Kalibrationsziele verwendet werden können. Beispielsweise kann neben einem Schachbrettmuster ein Gitter mit Kreisen oder ein rauschartiges Muster mit vielen Merkmalen variierender Größenordnungen als planare Kalibrationsziele verwendet werden.
-
Schachbretter werden gewöhnlich verwendet, um die extrinsische Kalibration verschiedener Kameras und LiDAR-Entfernungssensoren durchzuführen, da sie zahlreiche geometrische Beschränkungen bereitstellen und leicht durch beide Sensoren detektiert werden. Herkömmlicherweise werden Schachbrettebenenparameter in sowohl den Kamera- als auch LiDAR-Daten geschätzt. Durch das Erstellen einer Ebene-zu-Ebene-Korrespondenz zwischen dem durch jeden Sensor beobachteten Schachbrett wird die Koordinatentransformation zwischen dem LiDAR und der Kamera abgeleitet. Diese Ableitung erfordert, dass ein Schachbrett in mindestens drei unterschiedlichen Stellungen aufgenommen wird, da jede Stellung die Transformation um zwei Freiheitsgrade (2-DOF) einschränkt. Typischerweise ist die Berechnung der Transformationsmatrix in eine anfängliche Ableitung der Rotationsmatrix/des Rotationsvektors und des Translationsvektors entkoppelt. Nach dem getrennten Lösen der Rotationsmatrix und des Translationsvektors wird die Transformation durch gemeinsames Optimieren der Punkt-zu-Ebene-Distanz zwischen den Kamera- und LiDAR-Rahmen verfeinert. In einer Ausführungsform kann eine Quaternion zum Repräsentieren der Rotation verwendet werden.
-
Der oben beschriebene Ansatz nutzt nicht alle der durch ein einzelnes Schachbrett gegebenen Informationen aus. Zusätzlich zu dem Schätzen der Ebenenparameter des Schachbretts können die orthogonalen Begrenzungsvektoren des Schachbretts in sowohl dem Kamerabild als auch der LiDAR-Punktwolke abgeleitet werden. Die Begrenzungsvektoren beschränken die extrinsische Transformation um 2-DOF. Ferner erzeugt eine dreidimensionale (3D) Punktekorrespondenz des Zentroids des Schachbretts zwischen beiden Sensormodalitäten drei weitere Beschränkungen. Die unten beschriebene vorgeschlagene Kalibrationsprozedur setzt alle der erwähnten Beschränkungen wirksam ein, und somit reicht ein einzelnes Schachbrett für die Berechnung der extrinsischen Transformationsmatrix aus.
-
14 veranschaulicht die Verwendung eines Schachbretts, um eine Kamera-zu-LiDAR-Koordinatentransformation abzuleiten, gemäß einer oder mehreren Ausführungsformen. Wie gezeigt, verwendet die Kalibrationsprozedur drei rechtshändige Koordinatensysteme: ein LiDAR-Koordinatensystem, das am LiDAR-Ort am Fahrzeug
1301 zentriert ist, das Kamerakoordinatensystem, das am Kameraort am Fahrzeug
1301 zentriert ist, und das Schachbrettkoordinatensystem, das an einem gewünschten Ort am Schachbrett zentriert ist. Die gewünschte Koordinatentransformation wird durch Bestimmen der Transformation von den LiDAR-Koordinaten zu den Kamerakoordinaten abgeleitet. Die Transformation vom LiDAR zu der Kamera kann aus der Transformation vom LiDAR zum Schachbrett und der Transformation vom Schachbrett zur Kamera unter Verwendung einer Matrizenmultiplikation, wie in Gleichung [1] gezeigt, berechnet werden.
-
Wie außerdem in
14 gezeigt, sind die sechs Freiheitsgrade (6-DOF) Transformationsmatrixparameter („extrinsische Parameter“), die eine 3x3-Rotationsmatrix
und einen 3-Komponenten-Spaltenvektor
zur Translation beinhalten.
-
15 ist ein Blockdiagramm eines extrinsischen Kalibrations- und Validierungssystems 1500 gemäß einer oder mehreren Ausführungsformen. Das System 1500 beinhaltet einen LiDAR-Sensor 1502, einen Kamerasensor 1503, ein Merkmalsextraktionsmodul 1504, ein Extrinsische-Kalibration-Modul 1505 und ein Validierungsmodul 1506. Die offline Kamera-zu-LiDAR-Kalibration und -Validierung wird nun mit Bezug auf das Kalibrations- und Validierungssystem 1500 beschrieben.
-
Problemformulierung
-
Das zugrundeliegende Ziel einer extrinsischen Kalibration besteht darin, die in
14 gezeigte 6-DOF-Starrkörpertransformation
zu schätzen, die die relative Position
und die relative Rotation
zwischen den beiden Sensoren beschreibt. Durch das Anwenden dieser Transformation
kann ein Punkt p
C im Kamerakoordinatensystem in das LiDAR-Koordinatensystem
transformiert werden. Diese Transformation wird durch Extrahieren eines gemeinsamen Merkmals, eines planaren Schachbretts, in beiden Sensormodalitäten unter Verwendung des Merkmalsextraktionsmoduls
1504 berechnet.
-
Aus einem gegebenen Schachbrett in der in sowohl dem Kamerakoordinatensystem C als auch im LiDAR-Koordinatensystem L beobachteten i-ten Stellung wird der Ebenenvektor des Schachbretts, seine Begrenzungsvektoren und sein Zentroid gefolgert. Diese geometrischen Merkmale sind in
16 visualisiert. In dem Kamerareferenzrahmen soll
den i-ten Einheitsnormalenvektor des Schachbretts,
die Einheitsbegrenzungsvektoren des Schachbretts und
das Zentroid des Schachbretts bezeichnen. Ähnlich zu der Kamerabezeichnung soll
den Einheitsnormalenvektor des Schachbretts und
die Einheitsbegrenzungsvektoren des Schachbretts und
das Zentroid des Schachbretts, die im LiDAR-Koordinatensystem beobachtet werden, repräsentieren.
-
LiDAR-Merkmalsextraktion
-
Unter Annahme von N Schachbrettern detektiert der Segmentierungsalgorithmus automatisch die zuvor eingeführten geometrischen Merkmale innerhalb einer Punktwolke. Durch das Vertrauen auf den Annahmen, dass die beobachteten Schachbretter räumlich voneinander getrennt sind und die einem Schachbrett entsprechenden Punkte eng zusammengepackt sind, wird die Punktwolke durch Anwenden des bekannten Clustering-Algorithmus DBSCAN oder eines beliebigen anderen geeigneten Clustering-Algorithmus in Gruppen geclustert. Die Punkte werden dann innerhalb der DBSCAN-Cluster gefiltert. Alle Punkte, die ein einzelnes Schachbrett beschreiben, sollten auf einer dreidimensionalen Ebene liegen. Daher wird eine Ebene unter Verwendung des bekannten RANSAC-Algorithmus zu jedem der Cluster angepasst. Die Punkte im Cluster werden dann verfeinert, indem alle als Ausreißer identifizierte Punkte entfernt werden.
-
Als Nächstes werden die räumlichen Cluster mittels ihrer konvexen Hülle gefiltert, um die die Schachbretter selbst enthaltenden Cluster wiederzugewinnen. Die konvexe Hülle der Schachbrettcluster bildet ein Rechteck mit bekannten Abmessungen. Es wird angenommen, das die Simplizes jedes Clusters durch LiDAR-Rückkehrsignale gebildet werden, die durch erhebliche Tiefendiskontinuitäten gekennzeichnet sind. Diese Punkte werden als „Rand“-Punkte bezeichnet. Ein Punkt wird als ein Randpunkt klassifiziert, falls sein Tiefenwert erheblich niedriger ist als mindestens einer seiner beiden nächsten Nachbarn. Wenn nach Randpunkten evaluiert wird, wird jeder Strahl unabhängig berücksichtigt, und daher werden nur die nächsten Nachbarn auf demselben Strahl berücksichtigt. Die Rohpunktwolke wird für alle Punkte gefiltert, die eine Tiefendiskontinuität größer als zehn Zentimeter aufweisen. Der Tiefendiskontinuitätswert für einen Punkt p ist ein Gleichung [2] gezeigt:
-
In Gleichung [2] bezieht sich p auf radiale Distanz (die L2-Norm der x- und y-Komponenten). Die Überschneidung zwischen den detektierten Randpunkten wird berechnet. Jeder Randpunkt wird mit dem den Randpunkt selbst enthaltenden Cluster verknüpft.
-
Im letzten Schritt werden die Randpunkte des Clusters auf die Ebene des Clusters projiziert und auf ein 2D-Rechteck angepasst. Um das Anpassungsproblem auf zwei Dimensionen zu reduzieren, wird eine Rotation angewendet, um die z-Achse mit dem Ebenenvektor auszurichten. Da LiDAR-Randpunkte durch Rauschen beeinflusst werden, wird ein Beschränkungsoptimierungsproblem formuliert, das A-Priori-Verteilungen an der geometrischen Form des Rechtecks sowie an seinen Abmessungen einbezieht. Die verarbeiteten Randpunkte werden dann in vier Sätze gruppiert: P
i, i ∈ {1,2, ..., p}, Q
j,j ∈ {1,2, ..., q}, R
k, k ∈ {1,2, ...,r}, S
l, l ∈ {1,2, ..., s}, wobei P, Q, R, S den vier Seiten des Rechtecks entsprechen, wie in
17 veranschaulicht. Da die Seiten des Rechtecks entweder parallel oder orthogonal sind, müssen die folgenden vier Gleichungen für jeden Punkt an der Grenze gemäß Gleichungen [3a-3d] erfüllt sein:
-
Dieses Gleichungssystem wird durch die Länge, Breite und Größe von [n
1, n
2]
T beschränkt:
-
Es soll x = [c
P, c
Q, c
R, c
S, n
1, n
2]
T die Lösung für das folgende beschränkte nichtlineare Least-Squares-Problem sein:
-
Die optimale Lösung für Gleichung [5] wird durch Übernehmen eines sequenziellen quadratischen Programmierverfahrens erhalten. Alle Cluster mit einer Größe von ||r||2 unter einer Schwelle von 0,1 werden als Cluster angesehen, die ein Schachbrett enthalten, während alle anderen Cluster ignoriert werden. Dieser Prozess reicht aus, um die Nichtschachbrett-Cluster von den Schachbrett-Clustern zu trennen.
-
Aus den identifizierten Schachbrett-Clustern wird der Schachbrettebenenvektor
abgeleitet, der der zuvor angepassten Ebene entspricht. Die Schachbrettbegrenzungsvektoren
werden durch erneutes Projizieren der angepassten Rechteckparameter [n
1, n
2]
T in den LiDAR-Koordinatenrahmen berechnet. Das Zentroid
ist als der Durchschnitt der Eckpunkte des angepassten Rechtecks definiert.
-
Mit Bezug auf die 18A-18D wird ein beispielhafter LiDAR-Merkmalsextraktionsprozess wie folgt zusammengefasst. Die Punktwolke wird zunächst geclustert, dann werden die Cluster auf Punkte gefiltert, die durch eine 3D-Ebene beschrieben werden, und schließlich werden die Schachbrett-Cluster durch Analysieren der durch die Randpunkte des Clusters gebildeten konvexen Hülle wiedergewonnen. 18A zeigt die identifizierten Cluster, die aus DBSCAN resultieren, 18B zeigt die Cluster nach der Filterung, 18C zeigt die detektierten Randpunkte und 18D zeigt die extrahierten Schachbrettmerkmale.
-
Kameramerkmalsextraktion
-
Die Schachbretter werden automatisch in dem Kamerabild unter Verwendung bekannter Computervisionsalgorithmen, die in der öffentlich verfügbaren OpenCV-Bibliothek definiert sind, detektiert. Die drei mit jedem Schachbrett assoziierten Vektoren werden durch Lösen des Perspective-n-Point(PnP)-Problems für jedes Schachbrett extrahiert, wobei das Lösen des PnP-Problems Schätzen der Stellung der Kamera in Anbetracht eines Satz von 3D-Punkten in globalen Koordinaten und ihren entsprechenden 2D-Projektionen im Bild beinhaltet. Die Kamerastellung besteht aus 6-DOF, die aus einer Rotation (Rollen, Nicken und Gieren) und einer 3D-Translation der Kamera bezüglich der globalen Koordinaten bestehen.
-
Die Lösung für das PnP-Problem zwischen den globalen Koordinaten und den Pixelkoordinaten jeder Schachbrettecke ist die Transformationsmatrix, die die Ecke des Schachbretts transformiert:
-
Diese Transformationsmatrix transformiert die Eckpunkte des Schachbretts vom Koordinatensystem des Schachbretts. Daher entsprechen die Spaltenvektoren von
den drei Schachbrettvektoren bezüglich des Kamerakoordinatensystems. Das Zentroid
des Schachbretts wird abgeleitet, indem alle Schachbretteckpunkte bezüglich des Kamerakoordinatensystems ausgedrückt werden. Das Zentroid entspricht dann der Durchschnittsstellung aller Schachbrettecken im Kamerakoordinatensystem.
-
Extrinsischer Kalibrationsalgorithmus
-
Erneut unter Bezugnahme auf
15 wird ein extrinsischer Kalibrationsalgorithmus durch das Kalibrationsmodul
1505 implementiert. Die Transformation
wird durch Abgleichen der zuvor eingeführten Schachbrettvektorgrößen im LiDAR-Koordinatensystem mit ihren Gegenstücken im Kamerakoordinatensystem definiert. Unter Berücksichtigung der Vektorkorrespondenz zwischen
werden die folgenden Beschränkungen an der Rotationsmatrix erhalten:
-
In Anbetracht der Punktekorrespondenz zwischen
und
wird der Translationsvektor
beschränkt durch:
-
In Anbetracht von Daten von N Schachbrettstellungen wird die Rotationsmatrix
aus den Beschränkungen in Gleichung [6] berechnet. Die Einführung der Begrenzungsvektorkorrespondenz erhöht die Diversität der Rotationsmessungen erheblich, da
senkrecht zu beiden
ist. Ein lineares Least-Squares-Problem wird formuliert, um den Einfluss von Sensorrauschen zu reduzieren:
-
Dieses Optimierungsproblem weist eine geschlossene Lösung auf. Um die geschlossene Lösung zu formulieren, werden die folgenden Spaltenvektormatrizen definiert:
-
Unter der Annahme, dass Singulärwertzerlegung (SVD: Singular Value Decomposition) von M
L(M
C)
T=USV
T ist, folgt, dass
Diese geschlossene Lösung kann entartete Lösungen aufweisen, für die das
keine richtige Rotationsmatrix
ist. Um die entarteten Lösungen zu korrigieren und somit zu gewährleisten, dass alle abgeleiteten Rotationsmatrizen
sind, wird eine Korrekturmatrix C=diag(1,0, 1,0, 1-sign(det(VU
T)) eingeführt. Somit wird die Lösung
-
Eine Schätzung des Translationsvektors
wird durch Minimieren der Punkt-zu-Punkt-Distanzen zwischen den N Schachbrett-Zentroiden abgeleitet. Dieses Minimierungsproblem weist eine geschlossene Lösung auf, falls die Translation von der Rotation entkoppelt ist. Im entkoppelten Fall entspricht die Translationsschätzung:
-
Eine anfängliche Schätzung von
wird unter Verwendung von
berechnet. Um Bias zu vermeiden, der aus der nicht einheitlichen Verteilung von LiDAR-Punkten hervorgeht, baut der vorgeschlagene Algorithmus alleinig auf
auf, um die Translation zu schätzen, anstatt alle der Schachbrettpunkte wirksam einzusetzen.
-
In den vorherigen Abschnitten wurde die anfängliche Transformationsschätzung berechnet, indem die Translation und die Rotation getrennt behandelt wurden. Diese Schätzung der Transformation wird nun verfeinert, indem die folgende Punkt-zu-Punkt-Distanz der N Schachbrettmassenzentren gemeinsam minimiert werden:
-
In einer Ausführungsform ist Gleichung [10] ein nichtlineares Least-Squares-Problem, das unter Verwendung der Levenberg-Marquardt-Methode oder eines beliebigen anderen geeigneten nichtlinearen Lösers gelöst wird.
-
Kamera-zu-LiDAR- Validierung
-
Problemformulierung
-
Das Ziel der Validierungsprozedur besteht darin, die exakte Fehlkalibration nicht als die Differenz zwischen den geschätzten extrinsischen Parametern
und einer Ground Truth
zu definieren. Die Validierungsprozedur berechnet eine Obergrenze für die Genauigkeit der Kalibration, die ohne eine Ground Truth möglich ist:
-
Um diese Obergrenzen zu schätzen, nimmt die Validierungsprozedur als Eingaben die mit manuell gemessenen Translationsparametern
assoziierte Ungenauigkeit (z. B. +/- 10 cm) und die Abmessungen und Standorte der Validierungsziele an. In einer Ausführungsform werden zwei Validierungsziele V
1 und V
2 genutzt, deren Form und Ort in den
19A bzw.
19B abgebildet sind. Das näher liegende Ziel wird als V
1 bezeichnet, das die Abmessungen h
1, l
1, w
1 aufweist und sich eine Distanz d
1 entfernt vom Ursprung der Kamera befindet. Gleichermaßen werden die Abmessungen des entfernter gelegenen Ziels V
2 durch h
2, l
2, w
2 repräsentiert, und es befindet sich d
2 entfernt von der Kamera.
-
Validierungsbedingung
-
Es wird die Obergrenze für die Genauigkeit der Kalibration wie in Gleichung [12] gezeigt abgeleitet:
wobei K die Kameramatrix ist,
die extrinsische Transformation ist, P
L = {(x,y, z)} die LiDAR-Rückkehrsignale vom Validierungsziel sind und IC = {(u, v)} die Pixel des Validierungsziels sind. Ein Bereich von Parametern erfüllt Gleichung [12], die jeweils die LiDAR-Punkte PL auf die Zielpixel des Kamerabildes IC im Bildraum projizieren, wie in den
20A-20C veranschaulicht, wobei
20A die LiDAR-Punkte PL zeigt, die dem Rahmen entsprechen,
20B das wie durch die Kamera beobachtete Bild IC des Rahmens zeigt, und
20C die Projektion der LiDAR-Punkte auf das Kamerabild IC mit akzeptablen extrinsischen Kalibrationsparametern zeigt. Dieser Bereich ändert sich mit den Abmessungen und dem Ort des Ziels.
-
Eine der Gleichung [12] genügende Kalibration ist in den 21A und 21B visualisiert, in denen die „+“-Symbole die projizierten LiDAR-Punkte sind. Die durch den Rahmen gegebene anfängliche Fehlergrenze (z. B. ±0,18 Grad in Gierung) wird durch die Gierung erhöht, die zum Verschieben aller LiDAR-Rahmenpunkte auf den Rahmen selbst benötigt wird (z. B. wird eine Gierverschiebung um 0,74 Grad benötigt, und daher ist die gegebene Kalibration auf ±0,92 Grad genau).
-
Genauigkeitsgrenzen
-
In Anbetracht einer Kalibration, die Gleichung [12] für zwei Validierungsziele V
1 und V
2 erfüllt, die sich bei unterschiedlichen Entfernungen von der Sensorsuite befinden, wird das näher liegende Ziel V
1 ausgenutzt, um die geschätzten Translationsparameter zu begrenzen, während die Grenzen an Rotationsparametern vom entfernten Ziel V
2 wiedergewonnen werden. Zunächst werden die Rotationsgrenzen definiert, und dann wird zu den Translationsgrenzen übergegangen. Eine extrinsische Transformation, die Gleichung [12] für V
2 erfüllt, könnte weiterhin von der Ground Truth um einen zumindest der Größe von w
2 entsprechenden Fehler abweichen. Zusätzlich zu einem Fehler von w
2 könnte auch ein durch eine unkorrekte Schätzung des Translationsvektors verursachter Translationsfehler vorhanden sein. Um eine Obergrenze an den Rotationsparametern wiederzugewinnen, werden beide Fehlerquellen berücksichtigt. Die resultierende Obergrenze für i ∈ {x, y} ist:
-
Jetzt für den nahe liegenden Rahmen V
1 wird erneut das schlimmstmögliche Szenario in Betracht gezogen: das Vorhandensein eines Fehlers der Größe w
1 und ein Winkelversatz. Der Winkelversatz entspricht der in Gleichung [13] gezeigten, zuvor festgelegten Grenze. Es kann dann behauptet werden, dass die Translation in die x-Richtung und die y-Richtung zu Folgendem genau ist:
-
Durch iteratives Lösen der Gleichungen [13] und [14] wird die Größe der mit den geschätzten Kalibrationsparametern assoziierten Fehlerobergrenzen weiter reduziert.
-
Schließlich wird eine Grenze für die Genauigkeit des Kalibrationsrollen θ
z aus der Länge und Dicke eines größeren Validierungsziels abgeleitet:
-
Unter der Annahme, dass der zweite Rahmen F
2 planar ist, und den Einfluss der perspektivischen Projektion vernachlässigend (Ebene des Rahmens ist ungefähr parallel zu der Bildebene der Kamera), wird eine Grenze für die Genauigkeit der Translation t
z durch Vergleichen der wahren Rahmenabmessungen mit jenen im Kamerabild gemessenen, die mit L bezeichnet sind, berechnet:
-
Implementierung
-
Durch das automatische Extrahieren von PL aus der Punktwolke und von IC aus dem Kamerabild wird die Validierungsprozedur automatisiert. Obwohl PL durch Clustern der Randpunkte in den LiDAR-Daten und Filtern auf Cluster, die Rechtecken entsprechen könnten, unter Verwendung des Rechteckanpassungsalgorithmus ohne die Beschränkungen an den Rechteckabmessungen abgerufen wird, wird IC durch klassische Computervisionsalgorithmen detektiert, wie etwa Kontrastverbesserung und Randdetektion.
-
Beispielhafter Prozess
-
Die 22A und 22B sind ein Flussdiagramm eines Prozesses 2200 zum Kalibrieren und Validieren extrinsischer Parameter, die bei einer Kamera-zu-LiDAR-Koordinatentransformation verwendet werden, gemäß einer oder mehreren Ausführungsformen. Der Prozess 2200 kann zum Beispiel unter Verwendung des in 3 gezeigten Computersystems implementiert werden. In einer Ausführungsform werden räumliche neuronale Netzwerke verwendet, um die Kalibrationsparameter vorherzusagen.
-
In einer Ausführungsform beginnt der Prozess 2200 mit Empfangen, von einem LiDAR(Lichtdetektion und -entfernungsmessung)-Sensor eines Fahrzeugs, einer ersten Punktwolke, die einen ersten Satz von LiDAR-Punkten beinhaltet, die von einem oder mehreren Kalibrationszielen zurückgesendet wurden (2202), und Empfangen, von einem Kamerasensor des Fahrzeugs, eines ersten Kamerabildes, das das eine oder die mehreren Kalibrationsziele beinhaltet. Die Kalibrationsziele können Schachbrettziele oder ein beliebiges anderes geeignetes planares Ziel sein.
-
Der Prozess 2200 fährt fort mit Extrahieren, unter Verwendung eines oder mehrerer Prozessoren des Fahrzeugs, von Merkmalen des einen oder der mehreren Kalibrationsziele aus dem ersten Satz von LiDAR-Punkten und dem ersten Kamerabild (2203), Assoziieren der extrahierten Merkmale aus dem ersten Satz von LiDAR-Punkten und dem ersten Kamerabild, um übereinstimmende Merkmale zu bestimmen (2204), und Schätzen extrinsischer Parameter einer Koordinatentransformation von LiDAR-Koordinaten zu Kamerakoordinaten oder von Kamerakoordinaten zu LiDAR-Koordinaten zumindest teilweise basierend auf den übereinstimmenden Merkmalen (2205). Beispielsweise werden Merkmale aus der LiDAR-Punktewolke und dem Kamerabild wie mit Bezug auf die 15-18 beschrieben extrahiert.
-
Der Prozess 2200 fährt fort mit Empfangen, vom LiDAR-Sensor, einer zweiten Punktwolke, die einen zweiten Satz von LiDAR-Punkten beinhaltet, die von einem oder mehreren Validierungszielen zurückgesendet wurden (2206), und
Empfangen, vom Kamerasensor, eines zweiten Kamerabildes, das das eine oder die mehreren Validierungsziele beinhaltet (2207). Beispielsweise werden ein zweiter LiDAR-Scan und ein zweites Kamerabild verwendet, um die geschätzten extrinsischen Parameter der Koordinatentransformation von Kamerakoordinaten zu LiDAR-Koordinaten zu validieren.
-
Der Prozess 2200 fährt fort mit Verwenden der Koordinatentransformation, um den zweiten Satz von LiDAR-Punkten auf das eine oder die mehreren Validierungsziele im zweiten Kamerabild zu projizieren (2208), Berechnen einer oder mehrerer Obergrenzen für die Genauigkeit der geschätzten extrinsischen Parameter (2209), Bestimmen, ob eine spezifizierte Anzahl oder ein spezifizierter Anteil von LiDAR-Punkten im zweiten Satz von LiDAR-Punkten auf oder innerhalb des einen oder der mehreren Validierungsziele, die im zweiten Kamerabild enthalten sind, liegt, gemäß der einen oder den mehreren berechneten Obergrenzen für die Genauigkeit (2210). Gemäß der Bestimmung, dass sich die spezifizierte Anzahl oder der spezifizierte Anteil von LiDAR-Punkten aus dem zweiten Satz von LiDAR-Punkten, die auf oder innerhalb des einen oder der mehreren Validierungsziele im zweiten Kamerabild liegen, innerhalb der Obergrenze für die Genauigkeit befinden, werden die geschätzten extrinsischen Parameter der Koordinatentransformation als zulässig erachtet (2211). Beispielsweise sind die Schritte zum Validieren der geschätzten extrinsischen Parameter mit Bezug auf die 19-21 beschrieben.
-
In der vorstehenden Beschreibung wurden verschiedene Ausführungsformen mit Bezug auf zahlreiche spezifische Einzelheiten beschrieben, die von Implementierung zu Implementierung variieren können. Die Beschreibung und Zeichnungen sind dementsprechend als veranschaulichend anstatt beschränkend anzusehen. Der alleinige und ausschließliche Indikator des Schutzumfangs der Erfindung, und was durch die Anmelder als der Schutzumfang der Erfindung beabsichtigt ist, ist der wörtliche und äquivalente Schutzumfang des Satzes von Ansprüchen, die aus dieser Anmeldung hervorgehen, in der spezifischen Form, in der derartige Ansprüche hervorgehen, einschließlich einer beliebigen anschließenden Korrektur. Jegliche hierin ausdrücklich dargelegte Definitionen für in derartigen Ansprüchen enthaltenen Begriffe sollen die Bedeutung solcher Begriffe regulieren, wie in den Ansprüchen verwendet. Zusätzlich kann, wenn der Begriff „ferner beinhaltend“ in der vorstehenden Beschreibung oder in den folgenden Ansprüchen verwendet wird, das, was diesem Ausdruck folgt, ein zusätzlicher Schritt oder eine zusätzliche Entität oder ein Teilschritt/eine Teilentität eines zuvor vorgetragenen Schritts oder einer zuvor vorgetragenen Entität sein.
-
Die folgenden Aspekte bilden auch Teil der Erfindung:
-
Aspekte
-
- 1. Ein Verfahren, das Folgendes umfasst:
- Empfangen, von einem LiDAR(Lichtdetektion und -entfernungsmessung)-Sensor eines Fahrzeugs, einer ersten Punktwolke, die einen ersten Satz von LiDAR-Punkten beinhaltet, die von einem oder mehreren Kalibrationszielen zurückgesendet wurden;
- Empfangen, von einem Kamerasensor des Fahrzeugs, eines ersten Kamerabildes, das das eine oder die mehreren Kalibrationsziele beinhaltet;
- Extrahieren, unter Verwendung eines oder mehrerer Prozessoren des Fahrzeugs, von Merkmalen des einen oder der mehreren Kalibrationsziele aus dem ersten Satz von LiDAR-Punkten und dem ersten Kamerabild;
- Assoziieren, unter Verwendung des einen oder der mehreren Prozessoren, der extrahierten Merkmale aus dem ersten Satz von LiDAR-Punkten und dem ersten Kamerabild, um übereinstimmende Merkmale zu bestimmen;
- Schätzen, unter Verwendung des einen oder der mehreren Prozessoren, extrinsischer Parameter einer Koordinatentransformation von LiDAR-Koordinaten zu Kamerakoordinaten oder von Kamerakoordinaten zu LiDAR-Koordinaten zumindest teilweise basierend auf den übereinstimmenden Merkmalen;
- Empfangen, vom LiDAR-Sensor, einer zweiten Punktwolke, die einen zweiten Satz von LiDAR-Punkten beinhaltet, die von einem oder mehreren Validierungszielen zurückgesendet wurden;
- Empfangen, vom Kamerasensor, eines zweiten Kamerabildes, das das eine oder die mehreren Validierungsziele beinhaltet;
- Verwenden der Koordinatentransformation, um den zweiten Satz von LiDAR-Punkten auf das eine oder die mehreren Validierungsziel im zweiten Kamerabild zu projizieren;
- Schätzen, unter Verwendung des einen oder der mehreren Prozessoren, einer oder mehrerer Obergrenzen für die Genauigkeit der geschätzten extrinsischen Parameter;
- Bestimmen, unter Verwendung des einen oder der mehreren Prozessoren, ob eine spezifizierte Anzahl oder ein spezifizierter Anteil von LiDAR-Punkten im zweiten Satz von LiDAR-Punkten auf oder innerhalb des einen oder der mehreren Validierungsziele, die im zweiten
- Kamerabild enthalten sind, liegt, gemäß der einen oder den mehreren berechneten Obergrenzen für die Genauigkeit; und
- gemäß der Bestimmung, dass sich die spezifizierte Anzahl oder der spezifizierte Anteil von LiDAR-Punkten aus dem zweiten Satz von LiDAR-Punkten auf oder innerhalb des einen oder der mehreren Validierungsziele im zweiten Kamerabild innerhalb der Obergrenze für die Genauigkeit liegt, Erachten der geschätzten extrinsischen Parameter der Koordinatentransformation als zulässig.
- 2. Das Verfahren von Aspekt 1, wobei die extrahierten Merkmale Vektorgrößen beinhalten, die eine Ebene des einen oder der mehreren Kalibrationsziele definieren, und die extrinsischen Parameter durch Abgleichen der Vektorgrößen in LiDAR-Koordinaten mit ihren entsprechenden Vektorgrößen in Kamerakoordinaten geschätzt werden, und wobei die Vektorgrößen übereinstimmen, wenn die Vektorgrößen in definierten Beschränkungen für Rotation und Translation der Vektorgrößen korrespondieren.
- 3. Das Verfahren von Aspekt 1, wobei das Schätzen einer oder mehrerer Obergrenzen für die Genauigkeit die mit manuell gemessenen Translationsparametern assoziierte Unsicherheit und die Abmessungen und Orte des einen oder der mehreren Validierungsziele berücksichtigt.
- 4. Das Verfahren von Aspekt 1, wobei zwei Validierungsziele verwendet werden, und ein erstes Validierungsziel sich bei einer ersten Entfernung von der Kamera befindet und ein zweites Validierungsziel sich bei einer zweiten Entfernung von der Kamera befindet, die weiter entfernt ist als die erste Entfernung, und wobei das erste Validierungsziel zum Schätzen einer ersten Obergrenze für die Genauigkeit für geschätzte Translationsparameter, die in den geschätzten extrinsischen Parametern enthalten sind, verwendet wird und das zweite Validierungsziel zum Schätzen einer zweiten Obergrenze für die geschätzten Rotationsparameter, die in den geschätzten extrinsischen Parametern enthalten sind, verwendet wird.
- 5. Das Verfahren von Aspekt 3, wobei eine Obergrenze für einen geschätzten Rollwinkel der geschätzten extrinsischen Parameter aus einer Länge und Dicke eines größeren der beiden Validierungsziele abgeleitet wird.
- 6. Das Verfahren von Aspekt 1, wobei das Extrahieren, unter Verwendung eines oder mehrerer Prozessoren des Fahrzeugs, von Merkmalen des einen oder der mehreren Kalibrationsziele aus dem ersten Satz von LiDAR-Punkten ferner Folgendes umfasst:
- Clustern des ersten Satzes von LiDAR-Punkten in räumliche Cluster von LiDAR-Punkten;
- für jedes Cluster:
- Filtern der LiDAR-Punkte innerhalb des Clusters, um Ausreißer-LiDAR-Punkte zu detektieren;
- Verfeinern des Clusters durch Entfernen jeglicher detektierter Ausreißer-LiDAR-Punkte aus dem Cluster;
- Filtern des Clusters mittels seiner konvexen Hülle, wobei die konvexe Hülle ein Rechteck mit bekannten Abmessungen bildet;
- Detektieren von Randpunkten im Cluster;
- Projizieren der Randpunkte auf eine Ebene des Clusters;
- Anpassen eines zweidimensionalen (2D) Rechtecks auf die Randpunkte;
- Bestimmen, ob das angepasste 2D-Rechteck ein Kalibrationsziel definiert, durch Formulieren und Lösen eines Beschränkungsoptimierungsproblems, das A-Priori-Verteilungen für die geometrische Form und Abmessungen des 2D-Rechtecks einbezieht; und
- gemäß der Bestimmung, dass das angepasste 2D-Rechteck ein Kalibrationsziel definiert, Ableiten eines Ebenenvektors, von Begrenzungsvektoren und eines Zentroids des 2D-Rechtecks als die Merkmale des Kalibrationsziels.
- 7. Das Verfahren von Aspekt 6, wobei das Detektieren von Randpunkten im Cluster Folgendes beinhaltet: Filtern der Punktwolke auf Punkte, die eine Tiefenkontinuität größer als ein Schwellenwert aufweisen, Identifizieren gefilterter Punkte auf einem Strahl, die Tiefenwerte aufweisen, die niedriger sind als mindestens einer von zwei nächsten Nachbar-LiDAR-Punkten auf demselben Strahl, Berechnen einer Überschneidung zwischen den detektierten Randpunkten und Verknüpfen jedes Randpunkts mit dem den Randpunkt enthaltenden Cluster.
- 8. Das Verfahren von Aspekt 1, wobei das Extrahieren, unter Verwendung eines oder mehrerer Prozessoren des Fahrzeugs, von Merkmalen des einen oder der mehreren Kalibrationsziele aus dem ersten Bild ferner Folgendes umfasst:
- Detektieren, unter Verwendung eines Computervisionsprozesses, des einen oder der mehreren Kalibrationsziele im ersten Bild;
- Extrahieren von drei Kalibrationszielvektoren aus den detektierten Kalibrationszielen durch Lösen eines Perspective-n-Point(PnP)-Problems für jedes Kalibrationsziel, wobei die Lösung des PnP-Problems zwischen globalen Koordinaten und Pixelkoordinaten jeder Ecke jedes Kalibrationsziels eine Transformation von Kamerakoordinaten zu Kalibrationszielkoordinaten ist, die die Ecke vom Kalibrationszielkoordinatensystem zu dem Koordinatensystem der Kamera transformiert, und wobei die Spaltenvektoren der Transformation den drei Kalibrationszielvektoren bezüglich des Kamerakoordinatensystems entsprechen, wobei jedes Zentroid eines Kalibrationsziels abgeleitet wird, indem alle Eckpunkte jedes Kalibrationsziels bezüglich des Kamerakoordinatensystems ausgedrückt werden, und wobei das Zentroid einer Durchschnittsstellung aller Ecken im Kamerakoordinatensystem entspricht.
- 9. Das Verfahren von Aspekt 8, ferner umfassend Filtern der Punktwolke auf Punkte, die eine Tiefenkontinuität größer als ein Schwellenwert aufweisen.
- 10. Das Verfahren von Aspekt 1, wobei das eine oder die mehreren Kalibrationsziele planare Schachbretter sind.
- 11. Ein System, das Folgendes umfasst:
- einen oder mehrere Prozessoren;
- Speicher, der Anweisungen speichert, die bei Ausführung durch den einen oder die mehreren Prozessoren bewirken, dass der eine oder die mehreren Prozessoren ein beliebiges der vorstehenden Verfahren der Aspekte 1-10 durchführen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
-
Zitierte Nicht-Patentliteratur
-
- Titel „CAMERA-TO-LIDAR CALIBRATION AND VALIDATION“, eingereicht am 18. Dezember 2019 [0001]