-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung betrifft im Allgemeinen Fahrzeugwahrnehmungssysteme, und insbesondere Systeme und Verfahren zum Bestimmen der Geschwindigkeit von Lidarpunkten in Fahrzeugwahrnehmungssystemen.
-
HINTERGRUND
-
Fahrzeugwahrnehmungssysteme wurden in Fahrzeuge integriert, um es einem Fahrzeug zu ermöglichen, seine Umgebung zu erfassen und in einigen Fällen dem Fahrzeug zu ermöglichen, autonom oder teilautonom zu navigieren. Abtastvorrichtungen, die in Fahrzeugwahrnehmungssystemen eingesetzt werden können, beinhalten Radar, Lidar, Bildsensoren und andere.
-
Während in den letzten Jahren signifikante Fortschritte bei Fahrzeugwahrnehmungssystemen zu verzeichnen waren, könnten solche Systeme in mehrfacher Hinsicht noch verbessert werden. So kann beispielsweise Lidar verwendet werden, um Objekte in der Nähe eines Fahrzeugs zu erkennen. Obwohl Lidar-Daten den Abstand eines Objekts zum Lidarsystem bereitstellen können, können viele Lidarsysteme nicht bestimmen, ob sich das erkannte Objekt bewegt.
-
Dementsprechend ist es wünschenswert, Systeme und Verfahren zum Bestimmen der Relativbewegung von Lidarpunkten bereitzustellen. Ferner werden andere wünschenswerte Funktionen und Merkmale der vorliegenden Erfindung aus der nachfolgenden ausführlichen Beschreibung und den beigefügten Ansprüchen, in Verbindung mit den beigefügten Zeichnungen, sowie mit dem vorangehenden technischen Gebiet und Hintergrund ersichtlich offensichtlich.
-
KURZDARSTELLUNG
-
Es sind Systeme und Verfahren zum Erkennen der Bewegung von Lidarpunkten in Fahrzeugwahrnehmungssystemen vorgesehen. In einer Ausführungsform beinhaltet ein prozessorimplementiertes Verfahren in einem Fahrzeug zum Erkennen der Bewegung von Lidarpunkten und zum Erzeugen einer zweidimensionalen (2D) Top-Down-Karte, die bewegliche Objekte identifiziert: das Konstruieren einer Sequenz von computergenerierten Voxelrastern, die das Fahrzeug bei jedem aus einer Vielzahl von aufeinanderfolgenden Zeitschritten umgeben, durch den Prozessor, worin die Sequenz von Voxelrastern ein Voxelraster für die aktuelle Zeit und ein Voxelraster für jeden aus einer Vielzahl von vergangenen Zeitschritten beinhaltet. Das Verfahren beinhaltet ferner das Verfolgen von Lidarstrahlen von einem Lidarsystem am Fahrzeug durch das Voxelraster in jedem Voxelraster in der Sequenz durch den Prozessor, das Analysieren von Unterschieden in der Sequenz von Voxelrastern, um einen Bewegungswert für eine Vielzahl von Bereichen im Voxelraster für die aktuelle Zeit zu erzeugen, der den Bewegungsgrad in dem Bereich über die aufeinanderfolgenden Zeitschritte charakterisiert, Summieren der Bewegungswerte der Bereiche über Spalten hinweg durch den Prozessor, um einen summierten Bewegungswert für jede Spalte von Bereichen zu erzeugen, und Erzeugen eines 2D-Bildes durch den Prozessor aus den summierten Bewegungswerten.
-
In einer Ausführungsform beinhaltet die Vielzahl von aufeinanderfolgenden Zeitschritten mindestens acht aufeinanderfolgende Zeitschritte.
-
In einer Ausführungsform beinhaltet das Konstruieren einer Sequenz von computergenerierten Voxelrastern das Konstruieren eines Voxelrasters für die aktuelle Zeit durch Hinzufügen von Voxeln zu einer Vorderseite eines Voxelrasters für eine vorherige Zeitinstanz, worin die Anzahl der hinzugefügten Voxel der Menge der Fahrzeugbewegung in der vorwärts gerichteten Richtung entspricht, und das Entfernen von Voxeln von einer Rückseite des Voxelrasters für die vorherige Zeitinstanz, worin die Anzahl der entfernten Voxel der Menge der Fahrzeugbewegung in der Richtung entgegengesetzt zur rückwärts gerichteten Richtung entspricht.
-
In einer Ausführungsform beinhaltet das Analysieren von Unterschieden über die Sequenz von Voxelrastern das Anwenden eines maschinell lernenden Klassifikators auf die aufeinanderfolgenden Bilder.
-
In einer Ausführungsform beinhaltet das Analysieren von Unterschieden über die Sequenz von Voxelrastern das Anwenden eines zufälligen Waldklassifikators auf die aufeinanderfolgenden Bilder.
-
In einer Ausführungsform beinhaltet das Analysieren von Unterschieden über die Sequenz von Voxelrastern, um einen Bewegungswert für eine Vielzahl von Bereichen in den Voxelrastern zu erzeugen: das Unterteilen des Voxelrasters für die aktuelle Zeit in eine Vielzahl von Bereichen, Identifizieren der Bereiche im Voxelraster für die aktuelle Zeit, die belegt Voxel enthalten, und Erzeugen eines Bewegungswerts für jeden identifizierten Bereich, der den Bewegungsgrad in dem identifizierten Bereich über die aufeinanderfolgenden Zeitschritte charakterisiert, indem Unterschiede zwischen den Voxeln in den identifizierten Bereichen und den Voxeln in entsprechenden Bereichen in den Voxelrastern für vergangene Zeitereignisse analysiert werden.
-
In einer Ausführungsform beinhaltet ein Bereich ein rechteckiges Prisma aus Voxeln.
-
In einer Ausführungsform identifiziert das 2D-Bild Objekte, die sich in Bewegung befinden.
-
In einer Ausführungsform identifiziert das 2D-Bild die Geschwindigkeit der Objekte, die sich in Bewegung befinden.
-
In einer Ausführungsform beinhaltet ein identifizierter Bereich einen Bereich, in dem ein Lidarstrahl im mittleren Voxel des Bereichs endet.
-
In einer Ausführungsform beinhaltet das Verfolgen von Lidarstrahlen durch das Voxelraster: das Zuordnen eines ersten Merkmals zu einem Voxel, wenn ein Lidarstrahl durch das Voxel hindurchgeht, das Zuordnen eines zweiten Merkmals zu einem Voxel, wenn kein Lidarstrahl durch das Voxel hindurchgeht, und das Zuweisen eines dritten Merkmals zu einem Voxel, wenn ein Lidarstrahl an diesem Voxel endet.
-
In einer Ausführungsform ist das erste Merkmal klar, das zweite Merkmal ist unbekannt und das dritte Merkmal ist belegt.
-
In einer weiteren Ausführungsform beinhaltet ein prozessorimplementiertes Verfahren in einem Fahrzeug zum Bestimmen der Geschwindigkeit von Lidarpunkten: das Konstruieren eines Voxelrasters um das Fahrzeug herum durch einen Prozessor, das Identifizieren eines Objekts im Voxelraster durch den Prozessor, das Abrufen einer Sequenz von Kamerabildern, die das Objekt umfassen, durch den Prozessor, das Abgleichen von Pixeln in der Sequenz von Kamerabildern, die das Objekt umfassen, mit entsprechenden Voxeln im Voxelraster, die das Objekt umgeben, Bestimmen der Geschwindigkeit der Pixel, die das Objekt umgeben, durch den Prozessor aus der Sequenz der Kamerabilder und Ableiten der Geschwindigkeit der entsprechenden Voxel, die das Objekt umgeben, durch den Prozessor basierend auf der Geschwindigkeit der Pixel, die das Objekt umgeben.
-
In einer Ausführungsform beinhaltet das Bestimmen der Geschwindigkeit der Pixel das Analysieren der Bewegung des Objekts in aufeinanderfolgenden Bildern in der Sequenz der Bilder.
-
In einer Ausführungsform beinhaltet das Identifizieren eines Objekts im Voxelraster das Verfolgen von Lidarstrahlen von einem Lidarsystem am Fahrzeug durch das Voxelraster.
-
In einer Ausführungsform beinhaltet das Verfolgen von Lidarstrahlen durch das Voxelraster: das Zuordnen eines ersten Merkmals zu einem Voxel, wenn ein Lidarstrahl durch das Voxel hindurchgeht, das Zuordnen eines zweiten Merkmals zu einem Voxel, wenn kein Lidarstrahl durch das Voxel hindurchgeht, und das Zuweisen eines dritten Merkmals zu einem Voxel, wenn ein Lidarstrahl an diesem Voxel endet.
-
In einer Ausführungsform ist das erste Merkmal klar, das zweite Merkmal ist unbekannt und das dritte Merkmal ist belegt.
-
In einer Ausführungsform beinhaltet das Identifizieren eines Objekts im Voxelraster das Identifizieren von Voxeln, denen ein belegtes Merkmal zugeordnet wurde.
-
In einer Ausführungsform beinhaltet das Anpassen von Pixeln in der Sequenz von Kamerabildern, die das Objekt umgeben, an entsprechende Voxel die Synchronisation der Position und Zeit der Pixel mit der Position und Zeit der Voxel.
-
In einer weiteren Ausführungsform beinhaltet ein autonomes Fahrzeug: ein Bildgebungssystem, das zum Erzeugen von Bilddaten konfiguriert ist, ein Lidarsystem, das zum Erzeugen von Lidardaten konfiguriert ist, und ein Geschwindigkeitsabbildungssystem, das zum Ableiten der Geschwindigkeit von Voxeln aus den Bilddaten konfiguriert ist, die ein Objekt basierend auf der Geschwindigkeit von Pixeln in den Bilddaten umfassen. Das Geschwindigkeitsabbildungssystem beinhaltet einen oder mehrere Prozessoren, die durch Programmieranweisungen konfiguriert sind, die in nicht-flüchtigen, computerlesbaren Medien kodiert sind. Das Geschwindigkeitsabbildungssystem ist konfiguriert, um: ein Voxelraster um das Fahrzeug herum zu konstruieren, ein Objekt im Voxelraster zu identifizieren, eine Sequenz von Kamerabildern abzurufen, die das Objekt umfassen, Pixel in der Sequenz von Kamerabildern, die das Objekt umfassen, mit entsprechenden Voxeln im Voxelraster, die das Objekt umfassen, abzugleichen, die Geschwindigkeit der Pixel zu bestimmen, die das Objekt umfassen, aus der Sequenz von Kamerabildern und die Geschwindigkeit der entsprechenden Voxel abzuleiten, die das Objekt umfassen, basierend auf der Geschwindigkeit der Pixel, die das Objekt umfassen.
-
Figurenliste
-
Die exemplarischen Ausführungsformen werden nachfolgend in Verbindung mit den folgenden Zeichnungen beschrieben, worin gleiche Bezugszeichen gleiche Elemente bezeichnen, und worin gilt:
- 1A zeigt ein exemplarisches Fahrzeug, das ein Lidar (Lichtdetektions- und Entfernungs)-System gemäß verschiedenen Ausführungsformen beinhaltet;
- 1B zeigt eine Draufsicht des exemplarischen Fahrzeugs von 1A, die das Lidarsystem gemäß verschiedenen Ausführungsformen veranschaulicht;
- 1C zeigt ein exemplarisches Voxelraster, das als um das exemplarische Fahrzeug von 1A herum gebildet visualisiert werden kann, in einer computergestützten dreidimensionalen Darstellung des das exemplarische Fahrzeug umgebenden Raumes gemäß verschiedenen Ausführungsformen;
- 2 ist ein Funktionsblockdiagramm, das ein autonomes Antriebssystem (ADS) veranschaulicht, das einem autonomen Fahrzeug gemäß verschiedenen Ausführungsformen zugeordnet ist;
- 3A ist ein Blockdiagramm eines exemplarischen Bewegungsabbildungssystems in einem exemplarischen Fahrzeug gemäß verschiedenen Ausführungsformen;
- 3B zeigt eine Seitenansicht eines exemplarischen Voxelrasters nach den Lidarstrahlverfolgungsoperationen gemäß verschiedenen Ausführungsformen;
- 4 ist ein Prozessablaufdiagramm, das einen exemplarischen Prozess in einem Fahrzeug zum Erkennen der Bewegung von Lidarpunkten zum Erzeugen einer zweidimensionalen Top-Down-Karte darstellt, die bewegliche Objekte gemäß verschiedenen Ausführungsformen identifiziert;
- 5 ist ein Blockdiagramm eines exemplarischen Geschwindigkeitsabbildungssystems in einem exemplarischen Fahrzeug gemäß verschiedenen Ausführungsformen; und
- 6 ist ein Prozessablaufdiagramm, das einen exemplarischen Prozess in einem Fahrzeug zum Bestimmen und Ausgeben der Geschwindigkeit von Lidarpunkten gemäß verschiedenen Ausführungsformen darstellt.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die folgende ausführliche Beschreibung dient lediglich als Beispiel und soll die Anwendung und Verwendung in keiner Weise einschränken. Weiterhin besteht keine Absicht, im vorstehenden technischen Bereich, Hintergrund, der Zusammenfassung oder der folgenden ausführlichen Beschreibung an eine ausdrücklich oder implizit vorgestellte Theorie gebunden zu sein. Der hierin verwendete Begriff „Modul“ bezieht sich auf alle Hardware-, Software-, Firmwareprodukte, elektronische Steuerkomponenten, Verarbeitungslogik und/oder Prozessorgeräte, einzeln oder in allen Kombinationen, unter anderem beinhaltend, eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA), eine elektronische Schaltung, einen Prozessor (gemeinsam genutzt, dediziert oder Gruppenprozessor) und einen Speicher, der ein oder mehrere Software- oder Firmwareprogramme, eine kombinatorische Logikschaltung und/oder andere geeignete Komponenten ausführt, welche die beschriebene Funktionalität bieten.
-
Ausführungsformen der vorliegenden Offenbarung können hierin als funktionale und/oder logische Blockkomponenten und verschiedene Verarbeitungsschritte beschrieben sein. Es ist zu beachten, dass derartige Blockkomponenten aus einer beliebigen Anzahl an Hardware-, Software- und/oder Firmware-Komponenten aufgebaut sein können, die zur Ausführung der erforderlichen Funktionen konfiguriert sind. Zum Beispiel kann eine Ausführungsform der vorliegenden Offenbarung eines Systems oder einer Komponente verschiedene integrierte Schaltungskomponenten, z. B. Speicherelemente, digitale Signalverarbeitungselemente, Logikelemente, Wertetabellen oder dergleichen, einsetzen, die mehrere Funktionen unter der Steuerung eines oder mehrerer Mikroprozessoren oder anderer Steuervorrichtungen durchführen können. Zudem werden Fachleute auf dem Gebiet erkennen, dass die exemplarischen Ausführungsformen der vorliegenden Offenbarung in Verbindung mit einer beliebigen Anzahl an Systemen eingesetzt werden können, und dass das hierin beschriebene System lediglich eine exemplarische Ausführungsform der vorliegenden Offenbarung darstellt.
-
Der Kürze halber können konventionelle Techniken in Verbindung mit der Signalverarbeitung, Datenübertragung, Signalgebung, Steuerung, Maschinenlernmodelle, Radar, Lidar, Bildanalyse und weiteren funktionalen Aspekten der Systeme (und den einzelnen Bedienkomponenten der Systeme) hierin nicht im Detail beschrieben werden. Weiterhin sollen die in den verschiedenen Figuren dargestellten Verbindungslinien exemplarische Funktionsbeziehungen und/oder physikalische Verbindungen zwischen den verschiedenen Elementen darstellen. Es sollte beachtet werden, dass viele alternative oder zusätzliche funktionale Beziehungen oder physikalische Verbindungen in einer Ausführungsform der vorliegenden Offenbarung vorhanden sein können.
-
Die 1A und 1B zeigen ein exemplarisches Fahrzeug 100, das ein Lidarsystem (Lichtdetektions- und Entfernungssystem) 102 beinhaltet. 1A präsentiert eine Seitenansicht des exemplarischen Fahrzeugs 100 und 1B präsentiert eine Draufsicht des exemplarischen Fahrzeugs 100. Das exemplarische Lidarsystem 102 ist auf einer Oberfläche (z. B. einer Oberseite) des exemplarischen Fahrzeugs 100 montiert. Das exemplarische Lidarsystem 102 beinhaltet einen Sensor, der sich dreht (z. B. gegen den Uhrzeigersinn) und gibt eine Vielzahl von Lichtstrahlen 104 ab. Das exemplarische Lidarsystem 102 misst eine Zeitspanne, in der die Lichtstrahlen zum Fahrzeug 100 zurückkehren, um den Abstand zu Objekten um das Fahrzeug 100 herum zu messen. Das exemplarische Fahrzeug 100 beinhaltet ein Kartierungssystem 106, das konfiguriert ist, um die Relativbewegung von Lidarpunkten zu bestimmen.
-
1C zeigt ein exemplarisches Voxelraster 108, das als um das exemplarische Fahrzeug 100 herum gebildet visualisiert werden kann, in einer computergestützten dreidimensionalen Darstellung des Raumes um das exemplarische Fahrzeug 100. Das exemplarische Voxelraster 108 besteht aus einer Vielzahl von Voxeln 110 (wobei in diesem Beispiel ein einzelnes Voxel schattiert ist). Jedes Voxel 110 im exemplarischen Voxelraster 108 kann als in einem von drei Zuständen charakterisiert werden: einem klaren Zustand, einem belegten Zustand oder einem unbekannten Zustand. Der Voxelzustand wird in diesem Beispiel basierend darauf bestimmt, ob ein Lidarstrahl 104 vom exemplarischen Fahrzeug 100 in das Voxel 110 eingetreten ist oder dieses passiert hat. Ein Voxel gilt als in einem klaren Zustand, wenn aus den Lidar-Daten bestimmt werden kann, dass ein Lidarstrahl das Voxel passieren würde, bevor er auf ein Objekt trifft. Ein Voxel gilt als in einem belegten Zustand, wenn aus den Lidar-Daten bestimmt werden kann, dass ein Objekt an diesem Voxel vorhanden sein würde. Ein Voxel gilt als in einem unbekannten Zustand, wenn der Zustand des Voxels nicht aus den Lidar-Daten bestimmt werden kann. Mehrere zusammenhängende Voxel können auf ein einzelnes Objekt oder ein oder mehrere gebündelte Objekte hinweisen. Das Kartierungssystem 106 ist konfiguriert, um anzuzeigen, ob mehrere zusammenhängende Voxel ein einzelnes Objekt oder ein oder mehrere gebündelte Objekte anzeigen.
-
Wie in 1A dargestellt, beinhaltet das Fahrzeug 100 im Allgemeinen ein Fahrgestell 12, eine Karosserie 14, Vorderräder 16 und Hinterräder 18. Die Karosserie 14 ist auf dem Fahrgestell 12 angeordnet und umhüllt im Wesentlichen die anderen Komponenten des Fahrzeugs 100. Die Karosserie 14 und das Fahrgestell 12 können gemeinsam einen Rahmen bilden. Die Räder 16-18 sind jeweils mit dem Fahrgestell 12 in der Nähe einer jeweiligen Ecke der Karosserie 14 drehbar verbunden.
-
In verschiedenen Ausführungsformen ist das Fahrzeug 100 ein autonomes Fahrzeug und das Kartierungssystem 104 ist in das autonome Fahrzeug 100 integriert. Das autonome Fahrzeug 100 ist beispielsweise ein Fahrzeug, das automatisch gesteuert wird, um Passagiere von einem Ort zum anderen zu befördern. Das Fahrzeug 100 ist in der veranschaulichten Ausführungsform als Pkw dargestellt, wobei jedoch auchjedes andere Fahrzeug einschließlich Motorräder, Lastwagen, Sportfahrzeuge (SUVs), Freizeitfahrzeuge (RVs), Schiffe, Flugzeuge usw. verwendet werden kann.
-
In einer exemplarischen Ausführungsform entspricht das autonome Fahrzeug 100 einem Automatisierungssystem des Level vier oder Level fünf gemäß der Standardtaxonomie automatisierter Fahrlevels der Society of Automotive Engineers (SAE) „J3016“. Mit dieser Terminologie bezeichnet ein Level-Vier-System eine „hohe Automatisierung“ unter Bezugnahme auf einen Fahrmodus, bei dem das automatisierte Fahrsystem alle Aspekte der dynamischen Fahraufgabe übernimmt, selbst wenn ein menschlicher Fahrer nicht angemessen auf eine Aufforderung zum Eingreifen reagiert. Ein Level-Fünf-System hingegen zeigt eine „Vollautomatisierung“ und bezeichnet einen Fahrmodus, bei dem das automatisierte Fahrsystem alle Aspekte der dynamischen Fahraufgabe unter allen Fahrbahn- und Umweltbedingungen erfüllt, die ein menschlicher Fahrer bewältigen kann. Es versteht sich, dass die Ausführungsformen gemäß der vorliegenden Thematik nicht auf eine bestimmte Taxonomie oder Rubrik der Automatisierungskategorien beschränkt sind. Darüber hinaus können Systeme gemäß der vorliegenden Ausführungsform in Verbindung mit jedem Fahrzeug verwendet werden, in dem der vorliegende Gegenstand umgesetzt werden kann, unabhängig von seiner Autonomie.
-
Wie dargestellt, beinhaltet das autonome Fahrzeug 100 im Allgemeinen ein Antriebssystem 20, ein Übertragungssystem 22, ein Lenksystem 24, ein Bremssystem 26, ein Sensorsystem 28, ein Stellantriebsystem 30, mindestens einen Datenspeicher 32, mindestens eine Steuerung 34 und ein Kommunikationssystem 36. Das Antriebssystem 20 kann in verschiedenen Ausführungsformen einen Verbrennungsmotor, eine elektrische Maschine, wie beispielsweise einen Traktionsmotor und/oder ein Brennstoffzellenantriebssystem, beinhalten. Das Übertragungssystem 22 ist dazu konfiguriert, Leistung vom Antriebssystem 20 auf die Fahrzeugräder 16 und 18 gemäß den wählbaren Übersetzungsverhältnissen zu übertragen. Gemäß verschiedenen Ausführungsformen kann das Getriebesystem 22 ein Stufenverhältnis-Automatikgetriebe, ein stufenlos verstellbares Getriebe oder ein anderes geeignetes Getriebe beinhalten.
-
Das Bremssystem 26 ist dazu konfiguriert, den Fahrzeugrädern 16 und 18 ein Bremsmoment bereitzustellen. Das Bremssystem 26 kann in verschiedenen Ausführungsformen Reibungsbremsen, Bake-by-Wire, ein regeneratives Bremssystem, wie beispielsweise eine elektrische Maschine und/oder andere geeignete Bremssysteme, beinhalten.
-
Das Lenksystem 24 beeinflusst eine Position der Fahrzeugräder 16 und/oder 18. Während in einigen Ausführungsformen innerhalb des Umfangs der vorliegenden Offenbarung zur Veranschaulichung als ein Lenkrad 25 dargestellt, kann das Lenksystem 24 kein Lenkrad beinhalten.
-
Das Sensorsystem 28 beinhaltet eine oder mehrere Sensorvorrichtungen 40a-40n, die beobachtbare Zustände der äußeren Umgebung und/oder der inneren Umgebung des autonomen Fahrzeugs 100 (zum Beispiel den Zustand eines oder mehrerer Insassen) erfassen und entsprechende Sensordaten erzeugen. Sensorvorrichtungen 40a-40n können, sind jedoch nicht beschränkt auf, Radare (z. B. Langstrecken-, Mittelstrecken-Kurzbereich), Lidare, globale Positionierungssysteme, optische Kameras (z. B. nach vorne gerichtet, 360-Grad, nach hinten gerichtet, seitlich gerichtet, Stereo, usw.), beinhalten, Wärmebildkameras (z. B. Infrarot), Ultraschallsensoren, Geschwindigkeitsmesssensoren (z. B. Encoder) und/oder andere Sensoren, die in Verbindung mit Systemen und Verfahren gemäß dem vorliegenden Gegenstand verwendet werden können.
-
Das Stellantriebssystem 30 beinhaltet ein oder mehrere Stellantriebsvorrichtungen 42a-42n, die ein oder mehrere Fahrzeugeigenschaften, wie zum Beispiel das Antriebssystem 20, das Übertragungssystem 22, das Lenksystem 24 und das Bremssystem 26, steuern, sind aber nicht darauf beschränkt. In verschiedenen Ausführungsformen kann das autonome Fahrzeug 100 auch Fahrzeug-Innen- und/oder Außenausstattungen beinhalten, die nicht in 1A dargestellt sind, wie beispielsweise verschiedene Türen, Kofferraum- und Kabinenausstattungen wie Luft, Musik, Beleuchtung, Touchscreen-Display-Komponenten (wie sie in Verbindung mit Navigationssystemen verwendet werden) und dergleichen.
-
Die Datenspeichervorrichtung 32 speichert Daten zur Verwendung beim automatischen Steuern des Fahrzeugs 100. In verschiedenen Ausführungsformen speichert die Datenspeichervorrichtung 32 definierte Landkarten der navigierbaren Umgebung. In verschiedenen Ausführungsformen können die definierten Landkarten vordefiniert und von einem entfernten System abgerufen werden. So können beispielsweise die definierten Landkarten durch das entfernte System zusammengesetzt und dem autonomen Fahrzeug 100 (drahtlos und/oder drahtgebunden) mitgeteilt und in der Datenspeichervorrichtung 32 gespeichert werden. Routeninformationen können auch in der Datenspeichervorrichtung 32 gespeichert werden - d. h. in einer Reihe von Straßenabschnitten (die geografisch mit einer oder mehreren der definierten Karten verknüpft sind), die zusammen eine Route definieren, die der Benutzer von einem Startort (z. B. dem aktuellen Standort des Benutzers) zu einem Zielort zurücklegen kann. Wie ersichtlich ist, kann die Datenspeichervorrichtung 32 ein Teil der Steuerung 34, von der Steuerung 34 getrennt, oder ein Teil der Steuerung 34 und Teil eines separaten Systems sein.
-
Die Steuerung 34 beinhaltet mindestens einen Prozessor 44 und eine computerlesbare Speichervorrichtung oder Medien 46. Der Prozessor 44 kann eine Spezialanfertigung oder ein handelsüblicher Prozessor sein, eine Zentraleinheit (CPU), eine Grafikprozessoreinheit (GPU), eine anwendungsspezifische integrierte Schaltung (ASIC) (z. B. eine benutzerdefinierte ASIC, die ein neuronales Netzwerk implementiert), ein feldprogrammierbares Gate-Array (FPGA), ein Hilfsprozessor unter mehreren Prozessoren, verbunden mit der Steuerung 34, ein Mikroprozessor auf Halbleiterbasis (in Form eines Mikrochips oder Chip-Satzes) eine Kombination derselben oder allgemein jede beliebige Vorrichtung zur Ausführung von Anweisungen. Die computerlesbare Speichervorrichtung oder Medien 46 können flüchtige und nicht-flüchtige Speicher in einem Nur-Lese-Speicher (ROM), einem Speicher mit direktem Zugriff (RAM) und einem Keep-Alive-Memory (KAM) beinhalten. KAM ist ein persistenter oder nicht-flüchtiger Speicher, der verwendet werden kann, um verschiedene Betriebsvariablen zu speichern, während der Prozessor 44 ausgeschaltet ist. Die computerlesbare Speichervorrichtung oder Medien 46 können unter Verwendung einer beliebigen einer Anzahl von bekannten Speichervorrichtungen, wie beispielsweise PROMs (programmierbarer Nur-Lese-Speicher), EPROMs (elektrische PROM), EEPROMs (elektrisch löschbarer PROM), Flash-Speicher oder beliebige andere elektrischen, magnetischen, optischen oder kombinierten Speichervorrichtungen implementiert werden, die Daten speichern können, von denen einige ausführbare Anweisungen darstellen, die von der Steuerung 34 beim Steuern des autonomen Fahrzeugs 100 verwendet werden. In verschiedenen Ausführungsformen ist die Steuerung 34 konfiguriert, um das im Folgenden ausführlich erläuterte Kartierungssystem zu implementieren.
-
Die Anweisungen können ein oder mehrere separate Programme beinhalten, von denen jede eine geordnete Auflistung von ausführbaren Anweisungen zum Implementieren von logischen Funktionen beinhaltet. Die Anweisungen empfangen und verarbeiten, wenn diese durch den Prozessor 44 ausgeführt werden, Signale (z. B. Sensordaten) vom Sensorsystem 28, führen Logik, Berechnungen, Verfahren und/oder Algorithmen zur automatischen Steuerung der Komponenten des autonomen Fahrzeugs 100 durch und erzeugen Steuersignale, die an das Stellgliedsystem 30 übertragen werden, um die Komponenten des autonomen Fahrzeugs 10 basierend auf der Logik, den Berechnungen, den Verfahren und/oder Algorithmen automatisch zu steuern. Obwohl in 1A nur eine Steuerung 34 dargestellt ist, können Ausführungsformen des autonomen Fahrzeugs 100 eine beliebige Anzahl von Steuerungen 34 beinhalten, die über ein geeignetes Kommunikationsmedium oder eine Kombination von Kommunikationsmedien kommunizieren und zusammenwirken, um die Sensorsignale zu verarbeiten, Logiken, Berechnungen, Verfahren und/oder Algorithmen durchzuführen, und Steuersignale zu erzeugen, um die Funktionen des autonomen Fahrzeugs 100 automatisch zu steuern.
-
Das Kommunikationssystem 36 ist konfiguriert, um Informationen drahtlos an und von anderen Einheiten 48, wie beispielsweise, jedoch nicht beschränkt auf andere Fahrzeuge („V2V“-Kommunikation,) Infrastruktur („V2I“-Kommunikation), Netzwerke („V2N“-Kommunikation), Fußgänger („V2P“-Kommunikation), entfernte Transportsysteme und/oder Benutzervorrichtungen zu übermitteln. In einer exemplarischen Ausführungsform ist das drahtlose Kommunikationssystem 36 dazu konfiguriert, über ein drahtloses lokales Netzwerk (WLAN) unter Verwendung des IEEE 802.11-Standards, über Bluetooth oder mittels einer mobilen Datenkommunikation zu kommunizieren. Im Geltungsbereich der vorliegenden Offenbarung werden jedoch auch zusätzliche oder alternative Kommunikationsverfahren, wie beispielsweise ein dedizierter Nahbereichskommunikations-(DSRC)-Kanal, berücksichtigt. DSRC-Kanäle beziehen sich auf Einweg- oder Zweiwege-Kurzstrecken- bis Mittelklasse-Funkkommunikationskanäle, die speziell für den Automobilbau und einen entsprechenden Satz von Protokollen und Standards entwickelt wurden.
-
Gemäß verschiedenen Ausführungsformen realisiert die Steuerung 34 ein autonomes Antriebssystem (ADS) 70, wie in 2 dargestellt. Das heißt, dass geeignete Soft- und/oder Hardwarekomponenten der Steuerung 34 (z. B. der Prozessor 44 und das computerlesbare Speichermedium 46) verwendet werden, um ein autonomes Antriebssystem 70 bereitzustellen, das in Verbindung mit dem Fahrzeug 100 verwendet wird.
-
In verschiedenen Ausführungsformen können die Anweisungen des autonomen Antriebssystems 70 je nach Funktion oder System gegliedert sein. Das autonome Antriebssystem 70 kann beispielsweise, wie in 2 dargestellt, ein Wahrnehmungssystem 74, ein Positioniersystem 76, ein Wegplanungssystem 78 und ein Fahrzeugsteuerungssystem 80 beinhalten. Wie ersichtlich ist, können die Anweisungen in verschiedenen Ausführungsformen in beliebig viele Systeme (z. B. kombiniert, weiter unterteilt, usw.) gegliedert werden, da die Offenbarung nicht auf die vorliegenden Beispiele beschränkt ist.
-
In verschiedenen Ausführungsformen synthetisiert und verarbeitet das Wahrnehmungssystem 74 die erfassten Sensordaten und prognostiziert Anwesenheit, Standort, Klassifizierung und/oder Verlauf von Objekten und Merkmalen der Umgebung des Fahrzeugs 100. In verschiedenen Ausführungsformen kann das Wahrnehmungssystem 74 Informationen von mehreren Sensoren (z. B. dem Sensorsystem 28) beinhalten, einschließlich, aber nicht beschränkt auf Kameras, Lidars, Radars und/oder eine beliebige Anzahl anderer Arten von Sensoren.
-
Das Positioniersystem 76 verarbeitet Sensordaten zusammen mit anderen Daten, um eine Position (z. B. eine lokale Position in Bezug auf eine Karte, eine exakte Position in Bezug auf die Fahrspur einer Straße, Fahrzeugrichtung, usw.) des Fahrzeugs 100 in Bezug auf die Umgebung zu bestimmen. Wie zu erkennen ist, können verschiedene Techniken eingesetzt werden, um diese Lokalisierung durchzuführen, beispielsweise simultane Lokalisierung und Kartierung (SLAM), Partikelfilter, Kalman-Filter, Bayes'sche Filter und dergleichen.
-
Das Wegplanungssystem 78 verarbeitet Sensordaten zusammen mit anderen Daten, um einen Weg zu bestimmen, dem das Fahrzeug 100 folgen soll. Das Fahrzeugsteuerungssystem 80 erzeugt Steuersignale zum Steuern des Fahrzeugs 100 entsprechend der ermittelten Strecke.
-
In verschiedenen Ausführungsformen implementiert die Steuerung 34 maschinelle Lerntechniken, um die Funktionalität der Steuerung 34 zu unterstützen, wie z. B. Merkmalerkennung/Klassifizierung, Hindernisminderung, Routenüberquerung, Kartierung, Sensorintegration, Boden-Wahrheitsbestimmung und dergleichen.
-
In verschiedenen Ausführungsformen kann das Kartierungssystem 104 ganz oder teilweise in das Wahrnehmungssystem 74, das Positioniersystem 76, das Wegplanungssystem 78 und/oder das Fahrzeugsteuerungssystem 80 eingebunden werden. Wie vorstehend kurz erwähnt, ist das Kartierungssystem 106 von 1A konfiguriert, um die Relativbewegung von Lidarpunkten zu bestimmen.
-
3A ist ein Blockdiagramm eines exemplarischen Bewegungsabbildungssystems 302 in einem exemplarischen Fahrzeug 300 gemäß verschiedenen Ausführungsformen. Das exemplarische Bewegungsabbildungssystem 302 ist konfiguriert, um aus Lidar-Daten ein zweidimensionales (2D) Bild 304 eines Bereichs um das Fahrzeug 300 herum zu erzeugen, das Lidarpunkte im Bild 304 spezifisch als stationär oder in Bewegung identifiziert. Um das Bild 304 zu erzeugen, das Lidarpunkte spezifisch als beweglich oder stationär identifiziert, ist das exemplarische Bewegungsabbildungssystem 302 konfiguriert, um eine Sequenz von computergenerierten Voxelrastern zu konstruieren, die ein Fahrzeug bei jeder von einer Vielzahl von aufeinanderfolgenden Zeitschritten umgeben, wobei die Sequenz von Voxelrastern ein Voxelraster für die aktuelle Zeit und ein Voxelraster für jede von einer Vielzahl von vergangenen Zeitereignissen beinhaltet. Das exemplarische Bewegungsabbildungssystem 302 ist ferner konfiguriert, um in jedem Voxelraster in der Sequenz Lidarstrahlen von einem Lidarsystem am Fahrzeug durch das Voxelraster hindurch zu verfolgen, Unterschiede in der Sequenz von Voxelrastern zu analysieren, um einen Bewegungswert für eine Vielzahl von Bereichen im Voxelraster für die aktuelle Zeit zu erzeugen, der den Bewegungsgrad in dem Bereich über die nachfolgenden Zeitschritte charakterisiert, Summieren der Bewegungswerte der Bereiche über Spalten, um einen summierten Bewegungswert für jede Spalte von Bereichen zu erzeugen, und Erzeugen eines 2D-Bildes aus den summierten Bewegungswerten, das Lidarpunkte in Bewegung und stationäre Lidarpunkte identifiziert. Das exemplarische Bewegungsabbildungssystem 302 beinhaltet ein Voxelrastererzeugungsmodul 306, ein Lidarstrahlverfolgungsmodul 308, ein Bewegungsauswertungsmodul 310 und ein Spaltensummierungsmodul 312.
-
Das exemplarische Bewegungsabbildungssystem 302 beinhaltet eine Steuerung, die zum Implementieren des Voxelrastererzeugungsmoduls 306, des Lidarstrahlverfolgungsmoduls 308, des Bewegungsauswertungsmoduls 310 und des Spaltensummierungsmoduls 312 konfiguriert ist. Die Steuerung beinhaltet mindestens einen Prozessor und eine computerlesbare Speichervorrichtung oder ein Medium, die mit Programmieranweisungen zum Konfigurieren der Steuerung kodiert sind. Der Prozessor kann jeder kundenspezifische oder ein handelsüblicher Prozessor sein, eine Zentraleinheit (CPU), eine Grafikprozessoreinheit (GPU), eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA), ein Hilfsprozessor unter mehreren Prozessoren, verbunden mit der Steuerung, ein Mikroprozessor auf Halbleiterbasis (in Form eines Mikrochips oder Chip-Satzes) eine Kombination derselben oder allgemein jede beliebige Vorrichtung zur Ausführung von Anweisungen.
-
Die computerlesbare Speichervorrichtung oder Medien können flüchtige und nicht-flüchtige Speicher in einem Nur-Lese-Speicher (ROM), einem Speicher mit direktem Zugriff (RAM) und einem Keep-Alive-Memory (KAM) beinhalten. KAM ist ein persistenter oder nicht-flüchtiger Speicher, der verwendet werden kann, um verschiedene Betriebsvariablen zu speichern, während der Prozessor ausgeschaltet ist. Die computerlesbare Speichervorrichtung oder Medien können unter Verwendung einer beliebigen einer Anzahl von bekannten Speichervorrichtungen, wie beispielsweise PROMs (programmierbarer Nur-Lese-Speicher), EPROMs (elektrische PROM), EEPROMs (elektrisch löschbarer PROM), Flash-Speicher oder beliebige andere elektrischen, magnetischen, optischen oder kombinierten Speichervorrichtungen implementiert werden, die Daten speichern können, von denen einige ausführbare, programmierbare Anweisungen darstellen, die von der Steuerung verwendet werden.
-
Das exemplarische Voxelrastererzeugungsmodul 306 ist konfiguriert, um eine Sequenz von computergenerierten Voxelrastern 307 zu konstruieren, die ein Fahrzeug bei jeder von einer Vielzahl von aufeinanderfolgenden Zeitschritten umgeben, wobei die Sequenz von Voxelrastern ein Voxelraster für die aktuelle Zeit und ein Voxelraster für jede von einer Vielzahl von vergangenen Zeitereignissen beinhaltet. In diesem Beispiel umfasst die Vielzahl von aufeinanderfolgenden Zeitschritten mindestens acht aufeinanderfolgende Zeitschritte. Das exemplarische Voxelrastererzeugungsmodul 306 ist konfiguriert, um die Voxelraster unter Verwendung der abgerufenen Lidarpunktwolkendaten 301, der Lidarpositionsdaten 303 in Bezug auf das Fahrzeug und der Fahrzeugpositionsdaten 305 aus anderen Fahrzeugsystemen zu konstruieren. Das exemplarische Voxelrastererzeugungsmodul 306 ist ebenfalls konfiguriert, um ein Voxelraster für die aktuelle Zeit zu konstruieren, indem ein Voxelraster von einer früheren Zeitinstanz basierend auf der Fahrzeugbewegung seit der vorherigen Zeitinstanz verschoben wird. Das Voxelraster kann verschoben werden, indem sowohl Voxel zu einem vorwärtsgerichteten Voxelraster für eine frühere Zeitinstanz hinzugefügt werden, worin die Anzahl der hinzugefügten Voxel der Menge der Fahrzeugbewegung in der vorwärts gerichteten Richtung über die Zeitschritte entspricht, und das Entfernen von Voxeln von einer Rückseite des Voxelrasters für die vorherige Zeitinstanz, worin die Anzahl der entfernten Voxel der Menge der Fahrzeugbewegung in der Richtung entgegengesetzt zur rückwärts gerichteten Richtung über die Zeitschritte entspricht.
-
Das exemplarische Lidarstrahlverfolgungsmodul 308 ist konfiguriert, um in jedem Voxelraster in der Sequenz Lidarstrahlen von einem Lidarsystem am Fahrzeug durch ein Voxelraster 307 zu verfolgen. Das exemplarische Lidarstrahlverfolgungsmodul ist konfiguriert, um Lidarstrahlen durch ein Voxelraster 307 zu verfolgen, indem es ein Voxel als klar charakterisiert, wenn ein Lidarstrahl durch das Voxel hindurchgeht, ein Voxel als unbekannt charakterisiert, wenn kein Lidarstrahl durch das Voxel hindurchgeht, und ein Voxel als belegt charakterisiert, wenn ein Lidarstrahl an diesem Voxel endet. Das exemplarische Lidarstrahlverfolgungsmodul 308 ist konfiguriert, um Lidarstrahlen unter Verwendung der Lidarpunktwolkendaten 301, der Lidarpositionsdaten 303 in Bezug auf das Fahrzeug und der Fahrzeugpositionsdaten 305 aus anderen Fahrzeugsystemen zu verfolgen. Das exemplarische Lidarstrahlverfolgungsmodul 308 ist konfiguriert, um nach der Lidarstrahlverfolgung die verfolgten Voxelraster 309 auszugeben.
-
3B zeigt eine Seitenansicht eines exemplarischen Voxelrasters 330 nach den Lidarstrahlverfolgungsoperationen. Das exemplarische Voxelraster 330 beinhaltet eine Vielzahl von Voxeln, die durch einen von drei Zuständen charakterisiert werden: einen klaren Zustand (C), einen belegten Zustand (O) oder einen unbekannten Zustand (U). Ein Voxel wird als klar charakterisiert, wenn ein Lidarstrahl durch das Voxel hindurchgeht, als unbekannt charakterisiert, wenn kein Lidarstrahl durch das Voxel hindurchgeht, oder als belegt charakterisiert, wenn ein Lidarstrahl an diesem Voxel endet. Ebenso sind auf dem Voxelraster 330 zur Veranschaulichung ein exemplarisches Fahrzeug 332 und exemplarische Lidarstrahlen 334 überlagert.
-
Unter Bezugnahme auf 3A ist das exemplarische Bewegungsauswertungsmodul 310 konfiguriert, um Unterschiede über die Sequenz verfolgten Voxelraster 309 zu analysieren, um einen Bewegungsauswertungswert 311 für eine Vielzahl von Bereichen im verfolgten Voxelraster 309 für die aktuelle Zeit zu erzeugen, die den Bewegungsgrad in dem Bereich über die aufeinanderfolgenden Zeitschritte charakterisiert. Das exemplarische Bewegungsauswertungsmodul 310 beinhaltet ein Bereichskennungs-(ID)-Modul 316, das konfiguriert ist, um das Voxelraster für die aktuelle Zeit in eine Vielzahl von Bereichen zu unterteilen. Als ein Beispiel kann das Voxelraster in Bereiche unterteilt werden, die aus einem rechteckigen Prisma von Voxeln bestehen, wie beispielsweise ein 3x3x3 rechteckiges Prisma von Voxeln oder ein anderes dreidimensionales rechteckiges Prisma.
-
Das exemplarische Bewegungsauswertungsmodul 310 beinhaltet ferner ein Belegtbereichs-ID-Modul 318, das konfiguriert ist, um die Bereiche im Voxelraster für die aktuelle Zeit, die belegte Voxel enthalten, zu identifizieren. In diesem Beispiel wird ein Bereich als ein Bereich mit belegten Voxeln identifiziert, wenn mindestens das mittlere Voxel belegt ist (z. B. wobei ein Lidarstrahl in dem mittleren Voxel des Bereichs endet).
-
Das exemplarische Bewegungsauswertungsmodul 310 beinhaltet ferner ein Bereichsbewegungsauswertungsmodul 320, das konfiguriert ist, um für jeden identifizierten Bereich einen Bewegungswert zu erzeugen. Der Bewegungswert charakterisiert den Bewegungsgrad in dem identifizierten Bereich über die aufeinanderfolgenden Zeitschritte. Das exemplarische Bereichsbewegungsauswertungsmodul 320 führt die Bewertung durch, indem es Unterschiede zwischen den Voxeln in den identifizierten Bereichen und den Voxeln in entsprechenden Bereichen in den Voxelrastern für vergangene Zeitereignisse analysiert. Die Unterschiede werden in diesem Beispiel unter Verwendung eines maschinell lernenden Klassifikators analysiert, der auf die nachfolgenden Bilder angewendet wird. Der exemplarische maschinell lernende Klassifikator kann einen Ensemble-Lernklassifikator wie beispielsweise einen zufälligen Waldklassifikator beinhalten.
-
Das exemplarische Spaltensummierungsmodul 312 ist konfiguriert, um die Bewegungswerte der Bereiche über Spalten zu summieren, um einen summierten Bewegungswert für jede Spalte der Bereiche zu erzeugen. Als ein Beispiel für Spalten mit übereinandergestapelten Bereichen ist das exemplarische Spaltensummierungsmodul 312 konfiguriert, um die Ergebnisse für die gestapelten Bereiche zu summieren.
-
Das exemplarische Bewegungsabbildungssystem 302 ist ferner konfiguriert, um den summierten Bewegungswert für jede Spalte von Bereichen als das Bild 304 auszugeben, das Lidarpunkte in einem Bereich um das Fahrzeug 300 herum als stationär oder in Bewegung identifiziert. Das Bild 304 kann als Draufsicht auf den Bereich um ein Fahrzeug herum, auf in Bewegung befindliche Lidarpunkte, auf stationäre Lidarpunkte und in einigen Beispielen auf die Relativgeschwindigkeit von in Bewegung befindlichen Lidarpunkten angezeigt werden.
-
4 ist ein Prozessablaufdiagramm, das einen exemplarischen Prozess 400 in einem Fahrzeug zum Erkennen der Bewegung von Lidarpunkten und zum Erzeugen einer zweidimensionalen Top-Down-Karte darstellt, die bewegliche Objekte identifiziert. Die Abfolge der Vorgänge innerhalb des Verfahrens ist nicht auf die in der Figur dargestellte sequenzielle Abarbeitung beschränkt, sondern kann in einer oder mehreren unterschiedlichen Reihenfolgen gemäß der vorliegenden Offenbarung durchgeführt werden. In verschiedenen Ausführungsformen kann das Verfahren basierend auf einem oder mehreren vordefinierten Ereignissen und/oder kontinuierlich während des Betriebs des Fahrzeugs ausgeführt werden.
-
Der exemplarische Prozess 400 beinhaltet das Konstruieren einer Sequenz von computergenerierten Voxelrastern, die ein Fahrzeug bei jeder von einer Vielzahl von aufeinanderfolgenden Zeitschritten umgeben, wobei die Sequenz von Voxelrastern ein Voxelraster für die aktuelle Zeit und ein Voxelraster für jede von einer Vielzahl von vergangenen Zeitereignissen (Operation 402) beinhaltet. In diesem Beispiel umfasst die Vielzahl von aufeinanderfolgenden Zeitschritten mindestens acht aufeinanderfolgende Zeitschritte. Die exemplarischen Voxelraster können unter Verwendung der abgerufenen Lidarpunktwolkendaten, der Lidarpositionsdaten in Bezug auf das Fahrzeug und der Fahrzeugpositionsdaten aus anderen Fahrzeugsystemen konstruiert werden. Das exemplarische Voxelraster für die aktuelle Zeit kann durch Verschieben eines Voxelrasters von einer früheren Zeitinstanz basierend auf der Fahrzeugbewegung seit der vorherigen Zeitinstanz konstruiert werden. Das Voxelraster kann verschoben werden, indem sowohl Voxel zu einem vorwärts gerichteten Voxelraster für eine frühere Zeitinstanz hinzugefügt werden, worin die Anzahl der hinzugefügten Voxel der Menge der Fahrzeugbewegung in der vorwärts gerichteten Richtung über die Zeitschritte entspricht, und das Entfernen von Voxeln von einer Rückseite des Voxelrasters für die vorherige Zeitinstanz, worin die Anzahl der entfernten Voxel der Menge der Fahrzeugbewegung in der Richtung entgegengesetzt zur rückwärts gerichteten Richtung über die Zeitschritte entspricht.
-
Der Beispielprozess 400 beinhaltet das Verfolgen von Lidarstrahlen von einem Lidarsystem am Fahrzeug in jedem Voxelraster in der Sequenz durch das Voxelraster (Operation 404). Das Verfolgen von Lidarstrahlen durch die Voxelraster kann erreicht werden, indem ein Voxel als klar charakterisiert wird, wenn ein Lidarstrahl durch das Voxel hindurchgeht, ein Voxel als unbekannt charakterisiert wird, wenn kein Lidarstrahl durch das Voxel hindurchgeht, und ein Voxel als belegt charakterisiert wird, wenn ein Lidarstrahl an diesem Voxel endet. Lidarpunktwolkendaten, Lidarpositionsdaten in Bezug auf das Fahrzeug und Fahrzeugpositionsdaten aus anderen Fahrzeugsystemen können während der Lidarstrahlverfolgung verwendet werden.
-
Der exemplarische Prozess 400 beinhaltet das Analysieren von Unterschieden über die Sequenz von Voxelrastern, um einen Bewegungswert für eine Vielzahl von Bereichen im Voxelraster für die aktuelle Zeit zu erzeugen, der den Bewegungsgrad in dem Bereich über die aufeinanderfolgenden Zeitschritte charakterisiert (Operation 406). Das Analysieren von Unterschieden über die Sequenz von Voxelraster kann das Unterteilen des Voxelrasters für die aktuelle Zeit in eine Vielzahl von Bereichen beinhalten. Als ein Beispiel kann das Voxelraster in Bereiche unterteilt werden, die aus einem rechteckigen Prisma von Voxeln bestehen, wie beispielsweise ein 3x3x3 rechteckiges Prisma von Voxeln oder ein anderes dreidimensionales rechteckiges Prisma. Das Analysieren von Unterschieden über die Sequenz von Voxelraster kann auch das Identifizieren der Bereiche im Voxelraster für die aktuelle Zeit beinhalten, die belegte Voxel enthalten. In diesem Beispiel wird ein Bereich als ein Bereich mit belegten Voxeln identifiziert, wenn mindestens das mittlere Voxel belegt ist (z. B. wobei ein Lidarstrahl in dem mittleren Voxel des Bereichs endet). Das Analysieren von Unterschieden über die Sequenz von Voxelrastern kann ferner das Erzeugen eines Bewegungswertes für jeden identifizierten Bereich beinhalten, der den Bewegungsgrad in dem identifizierten Bereich über die aufeinanderfolgenden Zeitschritte charakterisiert. Der Bewegungswert kann durch das Analysieren von Unterschieden zwischen den Voxeln in den identifizierten Bereichen und den Voxeln in den entsprechenden Bereichen in den Voxelrastern für vergangene Zeitereignisse erzeugt werden. Die Unterschiede werden in diesem Beispiel unter Verwendung eines maschinell lernenden Klassifikators analysiert, der auf die nachfolgenden Bilder angewendet wird. Der exemplarische maschinell lernende Klassifikator kann einen Ensemble-Lernklassifikator wie beispielsweise einen zufälligen Waldklassifikator beinhalten.
-
Der exemplarische Prozess 400 beinhaltet das Summieren der Bewegungswerte der Bereiche über die Spalten, um einen summierten Bewegungswert für jede Spalte der Bereiche (Operation 408) zu erzeugen. Als Beispiel kann das Summieren für Spalten mit übereinandergestapelten Bereichen das Summieren der Werte für die gestapelten Bereiche beinhalten.
-
Der exemplarische Prozess 400 beinhaltet das Erzeugen eines 2D-Bildes aus den summierten Bewegungswerten (Operation 410). Das exemplarische 2D-Bild stellt eine Draufsicht bereit, die Lidarpunkte in einem Bereich um ein Fahrzeug herum als stationär oder in Bewegung identifiziert und in einigen Beispielen die Relativgeschwindigkeit von Lidarpunkten, die in Bewegung sind, identifiziert.
-
5 ist ein Blockdiagramm eines exemplarischen Geschwindigkeitsabbildungssystems 502 in einem exemplarischen Fahrzeug 500. Das exemplarische Geschwindigkeitsabbildungssystem 502 ist konfiguriert, um die Geschwindigkeit 504 von Lidarpunkten zu bestimmen und auszugeben. Um die Geschwindigkeit von Lidarpunkten zu bestimmen, ist das exemplarische Geschwindigkeitsabbildungssystem 502 konfiguriert, um ein Voxelraster um ein Fahrzeug herum zu konstruieren, ein Objekt im Voxelraster zu identifizieren, eine Sequenz von Kamerabildern abzurufen, die das Objekt umfassen, Pixel in der Sequenz von Kamerabildern, die das Objekt umfassen, mit entsprechenden Voxeln im Voxelraster, die das Objekt umfassen, abzugleichen, die Geschwindigkeit der Pixel zu bestimmen, die das Objekt umfassen, aus der Sequenz von Kamerabildern und die Geschwindigkeit der entsprechenden Voxel abzuleiten, die das Objekt umfassen, basierend auf der Geschwindigkeit der Pixel, die das Objekt umfassen.
-
Das exemplarische Geschwindigkeitsabbildungssystem 502 beinhaltet ein Voxelrastererzeugungsmodul 506, ein Objektidentifikations-/Lidarstrahlverfolgungsmodul 508, ein Pixelmodul 510 und ein Voxelgeschwindigkeitsbestimmungsmodul 512. Das exemplarische Geschwindigkeitsabbildungssystem 502 beinhaltet eine Steuerung, die konfiguriert ist, um das Voxelrastererzeugungsmodul 506, das Objektidentifikations-/Lidarstrahlverfolgungsmodul 508, das Pixelmodul 510 und das Voxelgeschwindigkeitsbestimmungsmodul 512 zu implementieren.
-
Das exemplarische Voxelrastererzeugungsmodul 506 ist konfiguriert, um ein Voxelraster 507 um ein Fahrzeug herum zu konstruieren. Das exemplarische Voxelrastererzeugungsmodul 506 ist konfiguriert, um das Voxelraster 507 unter Verwendung der abgerufenen Lidarpunktwolkendaten 501, der Lidarpositionsdaten 503 in Bezug auf das Fahrzeug und der Fahrzeugpositionsdaten 505 aus anderen Fahrzeugsystemen zu konstruieren. Das exemplarische Voxelrastererzeugungsmodul 506 ist ebenfalls konfiguriert, um ein Voxelraster zu konstruieren, indem ein Voxelraster von einer früheren Zeitinstanz basierend auf der Fahrzeugbewegung seit der vorherigen Zeitinstanz verschoben wird. Das Voxelraster kann verschoben werden, indem sowohl Voxel zu einem vorwärtsgerichteten Voxelraster für eine frühere Zeitinstanz hinzugefügt werden, worin die Anzahl der hinzugefügten Voxel der Menge der Fahrzeugbewegung in der vorwärts gerichteten Richtung über die Zeitschritte entspricht, und das Entfernen von Voxeln von einer Rückseite des Voxelrasters für die vorherige Zeitinstanz, worin die Anzahl der entfernten Voxel der Menge der Fahrzeugbewegung in der Richtung entgegengesetzt zur rückwärts gerichteten Richtung über die Zeitschritte entspricht.
-
Das exemplarische Objektidentifikations-/Lidarstrahlverfolgungsmodul 508 ist konfiguriert, um ein Objekt im Voxelraster 507 zu identifizieren, indem Lidarstrahlen von einem Lidarsystem am Fahrzeug 500 durch das Voxelraster 507 verfolgt werden, wodurch ein verfolgtes Voxelraster 509 erzeugt wird. Das exemplarische Lidarstrahlverfolgungsmodul ist konfiguriert, um Lidarstrahlen durch ein Voxelraster 507 zu verfolgen, indem es ein Voxel als klar charakterisiert, wenn ein Lidarstrahl durch das Voxel hindurchgeht, ein Voxel als unbekannt charakterisiert, wenn kein Lidarstrahl durch das Voxel hindurchgeht, und ein Voxel als belegt charakterisiert, wenn ein Lidarstrahl an diesem Voxel endet. Das exemplarische Lidarstrahlverfolgungsmodul 508 ist konfiguriert, um Lidarstrahlen unter Verwendung der Lidarpunktwolkendaten 501, der Lidarpositionsdaten 503 in Bezug auf das Fahrzeug und der Fahrzeugpositionsdaten 505 aus anderen Fahrzeugsystemen zu verfolgen. Das exemplarische Lidarstrahlverfolgungsmodul 508 ist konfiguriert, um nach der Lidarstrahlverfolgung ein verfolgtes Voxelraster 509 auszugeben. Das Identifizieren eines Objekts im Voxelraster 507 beinhaltet das Identifizieren von Voxeln, die als belegt charakterisiert wurden.
-
Das exemplarische Pixelmodul 510 ist konfiguriert, um die Geschwindigkeit von Pixeln in einem Kamerabild zu bestimmen, die den als belegt charakterisierten Voxeln entsprechen. Das exemplarische Pixelmodul 510 beinhaltet ein Kamerabildabrufmodul 516, das konfiguriert ist, eine Sequenz von Kamerabildern abzurufen, die das Objekt umschließen.
-
Das exemplarische Pixelmodul 510 beinhaltet ferner ein Pixel-Voxel-Anpassungsmodul 520, das konfiguriert ist, um Pixel in der Sequenz von Kamerabildern, die das Objekt umschließen, an entsprechende Voxel im Voxelraster anzupassen, die das Objekt umschließen. Das exemplarische Pixel-Voxel-Anpassungsmodul 520 ist konfiguriert, um Pixel an entsprechende Voxel anzupassen, indem die Position und Zeit der Pixel mit der Position und Zeit der Voxel synchronisiert wird.
-
Das exemplarische Pixelmodul 510 beinhaltet ferner ein Pixelgeschwindigkeitsbestimmungsmodul 518, das konfiguriert ist, um die Geschwindigkeit der Pixel zu bestimmen, die das Objekt umschließen, aus der Sequenz von Kamerabildern. Das exemplarische Pixelgeschwindigkeitsbestimmungsmodul 518 ist konfiguriert, um die Geschwindigkeit der Pixel zu bestimmen, indem die Bewegung des Objekts in aufeinanderfolgenden Bildern in der Sequenz von Bildern analysiert wird.
-
Das exemplarische Voxelgeschwindigkeitsbestimmungsmodul 512 ist konfiguriert, um die Geschwindigkeit der entsprechenden Voxel, die das Objekt umgeben, basierend auf der Geschwindigkeit der Pixel, die das Objekt umgeben, abzuleiten. Das exemplarische Voxelgeschwindigkeitsbestimmungsmodul 512 ist konfiguriert, um die Geschwindigkeit unter Verwendung maschineller Lerntechniken abzuleiten.
-
6 ist ein Prozessablaufdiagramm, das einen exemplarischen Prozess 600 in einem Fahrzeug zum Bestimmen und Ausgeben der Geschwindigkeit von Lidarpunkten darstellt. Die Abfolge der Vorgänge innerhalb des Verfahrens ist nicht auf die in der Figur dargestellte sequenzielle Abarbeitung beschränkt, sondern kann in einer oder mehreren unterschiedlichen Reihenfolgen gemäß der vorliegenden Offenbarung durchgeführt werden. In verschiedenen Ausführungsformen kann das Verfahren basierend auf einem oder mehreren vordefinierten Ereignissen und/oder kontinuierlich während des Betriebs des Fahrzeugs ausgeführt werden.
-
Der exemplarische Prozess 600 beinhaltet das Konstruieren eines Voxelrasters um ein Fahrzeug herum (Operation 602). Das exemplarische Voxelraster kann unter Verwendung der abgerufenen Lidarpunktwolkendaten, der Lidarpositionsdaten in Bezug auf das Fahrzeug und der Fahrzeugpositionsdaten aus anderen Fahrzeugsystemen konstruiert werden. Das exemplarische Voxelraster für die aktuelle Zeit kann durch Verschieben eines Voxelrasters von einer früheren Zeitinstanz basierend auf der Fahrzeugbewegung seit der vorherigen Zeitinstanz konstruiert werden. Das Voxelraster kann verschoben werden, indem sowohl Voxel zu einem vorwärts gerichteten Voxelraster für eine frühere Zeitinstanz hinzugefügt werden, worin die Anzahl der hinzugefügten Voxel der Menge der Fahrzeugbewegung in der vorwärts gerichteten Richtung über die Zeitschritte entspricht, und das Entfernen von Voxeln von einer Rückseite des Voxelrasters für die vorherige Zeitinstanz, worin die Anzahl der entfernten Voxel der Menge der Fahrzeugbewegung in der Richtung entgegengesetzt zur rückwärts gerichteten Richtung über die Zeitschritte entspricht.
-
Der exemplarische Prozess 600 beinhaltet das Identifizieren eines Objekts im Voxelraster (Operation 604). Das Identifizieren eines Objekts im Voxelraster beinhaltet in diesem Beispiel das Verfolgen von Lidarstrahlen von einem Lidarsystem am Fahrzeug durch das Voxelraster. Das Verfolgen von Lidarstrahlen durch die Voxelraster kann erreicht werden, indem ein Voxel als klar charakterisiert wird, wenn ein Lidarstrahl durch das Voxel hindurchgeht, ein Voxel als unbekannt charakterisiert wird, wenn kein Lidarstrahl durch das Voxel hindurchgeht, und ein Voxel als belegt charakterisiert wird, wenn ein Lidarstrahl an diesem Voxel endet. Lidarpunktwolkendaten, Lidarpositionsdaten in Bezug auf das Fahrzeug und Fahrzeugpositionsdaten aus anderen Fahrzeugsystemen können während der Lidarstrahlverfolgung verwendet werden. Das Identifizieren eines Objekts im Voxelraster beinhaltet das Identifizieren von Voxeln, die als belegt charakterisiert wurden.
-
Der exemplarische Prozess 600 beinhaltet das Abrufen einer Sequenz von Kamerabildern, die das Objekt umgeben (Operation 606) und das Anpassen von Pixeln in der Sequenz von Kamerabildern, die das Objekt umgeben, an entsprechende Voxel im Voxelraster, die das Objekt umgeben (Operation 608). Das Anpassen von Pixeln in der Sequenz von Kamerabildern, die das Objekt umgeben, an entsprechende Voxel kann das Synchronisieren der Position und Zeit der Pixel mit der Position und Zeit der Voxel beinhalten.
-
Der exemplarische Prozess 600 beinhaltet das Bestimmen der Geschwindigkeit der Pixel, die das Objekt umgeben, aus der Sequenz von Kamerabildern (Operation 610). Das Bestimmen der Geschwindigkeit der Pixel kann das Analysieren der Bewegung des Objekts in aufeinanderfolgenden Bildern in der Sequenz von Bildern beinhalten.
-
Der exemplarische Prozess 600 beinhaltet das Ableiten der Geschwindigkeit der entsprechenden Voxel, die das Objekt umgeben, basierend auf der Geschwindigkeit der Pixel, die das Objekt umgeben (Operation 612). Maschinelle Lerntechniken können angewendet werden, um die Geschwindigkeit der entsprechenden Voxel, die das Objekt umgeben, basierend auf der Geschwindigkeit der Pixel, die das Objekt umgeben, abzuleiten.
-
Während mindestens eine exemplarische Ausführungsform in der vorstehenden ausführlichen Beschreibung dargestellt wurde, versteht es sich, dass es eine große Anzahl an Varianten gibt. Es versteht sich weiterhin, dass die exemplarische Ausführungsform oder die exemplarischen Ausführungsformen lediglich Beispiele sind und den Umfang, die Anwendbarkeit oder die Konfiguration dieser Offenbarung in keiner Weise einschränken sollen. Die vorstehende ausführliche Beschreibung stellt Fachleuten auf dem Gebiet vielmehr einen zweckmäßigen Plan zur Implementierung der exemplarischen Ausführungsform bzw. der exemplarischen Ausführungsformen zur Verfügung. Verschiedene Änderungen an der Funktion und der Anordnung von Elementen können vorgenommen werden, ohne vom Umfang der Offenbarung, wie er in den beigefügten Ansprüchen und deren rechtlichen Entsprechungen aufgeführt wird, abzuweichen.