-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung bezieht sich im Allgemeinen auf Kraftfahrzeuge, insbesondere auf Systeme und Verfahren zur Entwicklung und Validierung des autonomen Fahrzeugbetriebs unter Verwendung realer und virtueller Datenquellen.
-
HINTERGRUND
-
Ein autonomes Fahrzeug ist ein Fahrzeug, das in der Lage ist, seine Umgebung zu erfassen und mit geringfügiger oder gar keiner Benutzereingabe zu navigieren. Ein autonomes Fahrzeug erfasst seine Umgebung unter Verwendung von Sensorvorrichtungen, wie beispielsweise Radar-, Lidar-, Bildsensoren und dergleichen. Das autonome Fahrzeugsystem nutzt weiterhin Informationen von globalen Positioniersystem-(GPS)-Technologien, Karten, Navigationssystemen, Fahrzeug-Fahrzeug-Kommunikationen, Fahrzeug-Infrastruktur-Technologien und/oder drahtgesteuerten Systemen, um das Fahrzeug zu navigieren.
-
Die Fahrzeugautomatisierung wurde kategorisiert nach nummerischen Ebenen von null, entsprechend keiner Automatisierung mit voller menschlicher Kontrolle, bis Fünf, entsprechend der vollen Automatisierung ohne menschliche Kontrolle. Verschiedene automatisierte Fahrerassistenzsysteme, wie beispielsweise Geschwindigkeitsregelung, adaptive Geschwindigkeitsregelung und Parkassistenzsysteme, entsprechen niedrigeren Automatisierungsebenen, während echte „fahrerlose“ Fahrzeuge mit höheren Automatisierungsebenen übereinstimmen.
-
Zur Erzielung einer hochrangigen Automatisierung werden Fahrzeuge oft mit einer zunehmenden Anzahl an unterschiedlichen Arten von Vorrichtungen zur Analyse der Umgebung um das Fahrzeug, wie beispielsweise Kameras oder andere bildgebende Vorrichtungen zum Erfassen von Bildern in der Umgebung, Radar oder anderen Entfernungsmessgeräten zum Vermessen oder Erkennen von Eigenschaften in der Umgebung und dergleichen. Darüber hinaus werden eine Reihe von Stellgliedern verwendet, um das Fahrzeug als Reaktion auf zahlreiche Programme und Algorithmen zu steuern. Die Bewertung und Validierung der autonomen Fahrzeugsteuerung und des -betriebs während der Produktentwicklung ist mit einem hohen Maß an Komplexität verbunden.
-
Dementsprechend ist es wünschenswert, die Validierung in einem angemessenen Zeitrahmen durchzuführen, um Produkte auf den Markt zu bringen. Weitere wünschenswerte Funktionen und Merkmale werden aus der nachfolgenden ausführlichen Beschreibung und den beigefügten Ansprüchen in Verbindung mit den beigefügten Zeichnungen sowie dem vorab erklärten technischen Gebiet und Hintergrund offensichtlich.
-
KURZDARSTELLUNG
-
Es sind Systeme und Verfahren zur Entwicklung und Validierung eines autonomen Fahrzeugs vorgesehen. In einer Ausführungsform beinhaltet ein Verfahren das Sammeln eines realen Sensordatensatzes durch ein autonomes Fahrzeug mit einem Sensorsystem und Stellgliedern. Ein Fusionsmodul eines Computersystems führt die Echtzeitdaten von mehreren Sensoren und Karten zusammen. Ein Wandlermodul wandelt den zusammengefügten realen Sensordatensatz in eine gemeinsame Form des Darstellungsdatensatzes um. Ein Störungsmodul (Fuzzing) erzeugt Störungen aus dem konvertierten realen Sensordatensatz. Ein Generatormodul erzeugt aus dem gemeinsamen Darstellungsdatensatz des realen Sensordatensatzes einen dreidimensionalen Objektdatensatz. Der dreidimensionale Objektdatensatz wird verwendet, um Planungs-, Verhaltens-, Entscheidungs- und Kontrollfunktionen, wie beispielsweise Algorithmen und Software des autonomen Fahrzeugs, zu bewerten.
-
In einer weiteren Ausführungsform beinhaltet ein Verfahren das Sammeln eines realen Sensordatensatzes durch ein autonomes Fahrzeug mit einem Sensorsystem und Stellgliedern. Ein Generatormodul erzeugt aus dem realen Sensordatensatzes einen dreidimensionalen Objektdatensatz. Ein Störungs-(Fuzzing-)Modul eines Planungs- und Verhaltensmoduls erzeugt Störungen des dreidimensionalen Datensatzes, um zusätzliche Verkehrsszenarien zu erzeugen. Zur Auswertung führt das Planungs- und Verhaltensmodul ein Steuermerkmal aus, wie beispielsweise einen Algorithmus oder eine Software, unter Verwendung der dreidimensionalen Datenbank einschließlich der Störungen beim Ausführen des Steuermerkmals.
-
In einer weiteren Ausführungsform verwendet ein System einen realen Sensordatensatz, der von einem autonomen Fahrzeug Sensoren erzeugt wird, das mit Sensoren ausgestattet ist. Ein Sensor- und Wahrnehmungsmodul erzeugt Störungen des realen Sensordatensatzes. Ein Generatormodul erzeugt aus dem realen Sensordatensatzes einen dreidimensionalen Objektdatensatz. Ein Planungs- und Verhaltensmodul erzeugt Störungen des dreidimensionalen Objektdatensatzes. Ein Testmodul wertet ein Steuermerkmal, wie beispielsweise einen Algorithmus oder eine Software, unter Verwendung des dreidimensionalen Objektdatensatzes aus. Ein Steuermodul führt zum Auswerten von Steuermerkmalen Befehlsausgaben aus.
-
In einigen Ausführungsformen verwendet ein System einen synthetischen Datensatz, der von hochauflösenden Sensormodellen unter Verwendung einer virtuellen Umgebung erzeugt wird. Ein virtuelles Szenengeneratormodul erzeugt aus den virtuellen Sensoren einen dreidimensionalen Objektdatensatz, um eine große Anzahl von Verkehrsszenarien, Straßen- und Umgebungsbedingungen zu erzeugen. Dieser Objektdatensatz wird in einem Störungsmodul eines Planungs- und Verhaltensmoduls verwendet, um Störungen des dreidimensionalen Datensatzes zu erzeugen und zusätzliche Verkehrsszenarien zu erstellen. Zur Auswertung führt das Planungs- und Verhaltensmodul ein Steuermerkmal aus, wie beispielsweise einen Algorithmus oder eine Software, unter Verwendung der dreidimensionalen Datenbank einschließlich der Störungen beim Ausführen des Steuermerkmals.
-
In einer weiteren Ausführungsform beinhaltet ein Verfahren das Erzeugen eines virtuellen Sensors (synthetisch), eines Datensatzes durch einen Sensormodell-Emulator, das Zusammenführen des virtuellen Sensordatensatzes in einem Fusionsmodul, das Umwandeln des zusammengefügten virtuellen Sensordatensatzes in die gemeinsame Darstellungsdatensatzform, wie beispielsweise einen Voxeldatensatz, durch ein Wandlermodul und das Erzeugen des dreidimensionalen Objektdatensatzes durch ein Generatormodul aus der gemeinsamen Darstellungsdatensatz-Form des virtuellen Sensordatensatzes.
-
In einer weiteren Ausführungsform beinhaltet ein Verfahren das Umwandeln in eine gemeinsame Darstellungsdatensatzform durch Umwandeln des realen Sensordatensatzes in einen Voxeldatensatz.
-
In einer weiteren Ausführungsform beinhaltet ein Verfahren das Speichern des dreidimensionalen Datensatzes in einer Testdatenbank und das Erzeugen von Störungen des dreidimensionalen Datensatzes zum Erzeugen von Verkehrsszenarien, wie beispielsweise das Hinzufügen zusätzlicher und neuer Fahrzeuge, Objekte und anderer Entitäten zu den Verkehrsszenarien.
-
In einer weiteren Ausführungsform beinhaltet ein Verfahren das Auswerten eines Algorithmus durch ein Planungs- und Verhaltensmodul unter Verwendung der dreidimensionalen Datenbank beim Ausführen des Algorithmus.
-
In einer weiteren Ausführungsform beinhaltet ein Verfahren das Ausführen von Befehlsausgaben aus dem Steuermerkmal in einem Steuermodul, welches das autonome Fahrzeug simuliert, wie beispielsweise eines, das die Stellglieder des autonomen Fahrzeugs beinhaltet, um dessen Betrieb zu bewerten. Eine Auswertung der Befehlsausgaben kann auch durch eine Bewertungsmaschine in Bezug auf Scoring-Metriken durchgeführt werden.
-
In einer weiteren Ausführungsform beinhaltet ein Verfahren das Erzeugen von zweiten Störungen aus dem umgewandelten realen Sensordatensatz.
-
In einer weiteren Ausführungsform beinhaltet das Steuermodul eines Systems Stellglieder des autonomen Fahrzeugs, die auf die Befehlsausgaben reagieren.
-
In einer weiteren Ausführungsform beinhaltet ein System einen Sensor und ein Wahrnehmungsmodul, das durch ein Fusionsmodul eines Computersystems, des Echtzeit-Sensordatensatzes, verschmolzen. Ein Wandlermodul wandelt den verschmolzenen realen Sensordatensatz in eine gemeinsame Darstellungsdatensatzform um, bevor es den dreidimensionalen Objektdatensatz erzeugt.
-
In einer weiteren Ausführungsform beinhaltet ein System einen Sensormodell-Emulator, der zum Erzeugen eines virtuellen Sensordatensatzes (synthetischer Datensatz) aus einem Sensormodell konfiguriert ist. Das Planungs- und Verhaltensmodul ist konfiguriert, um in einer Bewertungsmaschine die Befehlsausgaben für die Leistung in Bezug auf Scoring-Metriken auszuwerten. Der reale Sensordatensatz kann Daten von infrastrukturbasierten Sensoren und mobilen plattformbasierten Sensoren beinhalten.
-
In einer weiteren Ausführungsform beinhaltet ein System mindestens einen Prozessor, der zum Verarbeiten von Daten mit Bildraten von mehr als dreißig Bildern pro Sekunde konfiguriert ist, was ausreichend ist, um zumindest Millionen von Fahrzeugmeilen für die Entwicklung und Validierung auszuwerten.
-
Figurenliste
-
Die exemplarischen Ausführungsformen werden nachfolgend in Verbindung mit den folgenden Zeichnungen beschrieben, worin gleiche Bezugszeichen gleiche Elemente bezeichnen, und worin gilt:
- 1 ist ein Funktionsblockdiagramm, das ein autonomes Fahrzeug zum Sammeln von Daten gemäß verschiedenen Ausführungsformen veranschaulicht;
- 2 ist ein Funktionsblockdiagramm, das ein System zur autonomen Fahrzeugentwicklung und -validierung mit einem Sensor- und Wahrnehmungsmodul sowie einem Planungs- und Verhaltensmodul gemäß verschiedenen Ausführungsformen veranschaulicht;
- 3 ist ein schematisches Blockdiagramm des Systems von 2 gemäß verschiedenen Ausführungsformen;
- 4 ein Funktionsblockdiagramm des Sensor- und Wahrnehmungsmoduls von 3 gemäß verschiedenen Ausführungsformen;
- 5 ein Funktionsblockdiagramm des Planungs- und Verhaltensmoduls des Systems von 3 gemäß verschiedenen Ausführungsformen; und
- 6 ist ein Flussdiagramm, das einen Prozess zur autonomen Fahrzeugentwicklung und -validierung gemäß einer oder mehreren exemplarischen Ausführungsformen veranschaulicht.
-
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 Kurzzusammenfassung 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, auf die Verarbeitungslogik und/oder Prozessorgeräte, einzeln oder in Kombinationen, unter anderem umfassend, eine anwendungsspezifische integrierte Schaltung (ASIC), eine elektronische Schaltung, einen Prozessor (gemeinsam genutzt, dediziert oder gruppiert) und einen Speicher, der ein oder mehrere Software- oder Firmwareprogramme, eine kombinatorische Logikschaltung und/oder andere geeignete Komponenten ausführt, die 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, beispielsweise 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 sind konventionelle Techniken in Verbindung mit der Signalverarbeitung, Datenübertragung, Signalgebung, Bildgebung, Entfernungsmessung, Synchronisation, Kalibrierung, den Steuergeräten und weiteren funktionalen Aspekten der Systeme (und den einzelnen Bedienelementen der Systeme) hierin ggf. nicht im Detail beschrieben. 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.
-
In einer oder mehreren exemplarischen Ausführungsformen, die sich auf autonome Fahrzeuge beziehen, beinhalten Systeme und Verfahren, wie hierin beschrieben, im Allgemeinen das Sammeln von Daten aus Echtzeit- und/oder simulierten Quellen. Es können Daten von zahlreichen autonomen Fahrzeugen, wie beispielsweise einer Fahrzeugflotte, gesammelt werden, wobei diese aus Infrastrukturquellen, einschließlich Sensoren und drahtlosen Vorrichtungen, und von anderen mobilen Plattformen, wie beispielsweise Luftfahrzeugen, gesammelt werden können. Daten bezüglich rückseitiger und/oder schwer in Echtzeit zu erfassender Situationen werden in einer simulierten Umgebung mit hochpräzisen Sensormodellen synthetisch erzeugt. Diese Quellen verbessern das Sammeln von spezifischen Szenen, die selten oder schwierig von einem Straßenfahrzeug zu sammeln sind. Die Daten können Informationen zur Fahrzeugumgebung beinhalten, wie beispielsweise Verkehrszeichen/Signale, Straßengeometrie, Wetter und andere Quellen. Die Daten können Informationen zum Betrieb des Fahrzeugs beinhalten, wie beispielsweise den Betrieb von Stellgliedern, welche die Funktionen des Fahrzeugs steuern. Die Daten können auch Objekteigenschaften beinhalten, wie beispielsweise Lage, Größe, Typ, Geschwindigkeit, Beschleunigung, Richtung, Trajektorie, Oberflächenreflexion, Materialeigenschaften und andere Details. Darüber hinaus können die Daten auch Ereignisdetails beinhalten, wie beispielsweise Spurwechsel, Geschwindigkeitsänderungen, Richtungsänderungen, Stopps und andere. Es werden Störungen erzeugt, um die Datenbankgröße zu erweitern, beispielsweise durch die Verwendung von Fuzzing. Die Störung kann in verschiedenen Phasen durchgeführt werden. Die gesammelten Daten werden in ein gemeinsames Darstellungsformat umgewandelt und können zur weiteren Verwendung in ein bevorzugtes Format weiterverarbeitet werden. Algorithmen und Software können unter Bezugnahme auf die Datenbank für Szenarien evaluiert werden, die ein individuelles Verhalten erfordern können. Zum Auswerten von Algorithmen kann eine sehr große Anzahl von Szenarien verwendet werden. So können beispielsweise Tausende von Simulationen ausgewertet und das Äquivalent von Milliarden von Fahrzeugmeilen simuliert werden. Die Algorithmen/Softwareleistung wird sowohl anhand von Metriken als auch bei der Steuerung eines autonomen Fahrzeugs evaluiert. Algorithmen/Software können im Rahmen der Entwicklungsarbeit evaluiert und verbessert werden, und entwickelte Algorithmen/Software können mit den hierin beschriebenen Systemen und Verfahren validiert werden.
-
Wie ersichtlich ist, bietet der hierin offenbarte Gegenstand bestimmte verbesserte Eigenschaften und Funktionen für die Entwicklung und Validierung autonomer Fahrzeuge. Zu diesem Zweck kann ein autonomes Fahrzeug und ein Entwicklungs- und Validierungssystem und -verfahren für autonome Fahrzeuge modifiziert, erweitert oder anderweitig ergänzt werden, um die nachfolgend näher beschriebenen zusätzlichen Merkmale bereitzustellen.
-
Unter Bezugnahme nun auf 1, beinhaltet ein exemplarisches autonomes Fahrzeug 10 ein Steuersystem 100, das einen Bewegungsplan für den autonomen Betrieb eines Fahrzeugs 10 entlang einer Route so, dass die Objekte oder Hindernisse, die von den Sensoren 28, 40, an Bord des Fahrzeugs erkannt wurden, erklären, wie im Folgenden näher erläutert. In diesem Zusammenhang verwendet ein Steuermodul an Bord des autonomen Fahrzeugs 10 verschieden Arten von Onboard-Sensoren 28, 40, was erlaubt, dass Daten von diesen verschiedenen Onboard-Sensoren 28, 40 räumlich zugeordnet oder anderweitig gegenseitig zugeordnet werden, was die Erkennung von Objekten, deren Klassifizierung und den resultierenden autonomen Betrieb des Fahrzeugs 10 verbessert. Aspekte des Fahrzeugs 10, wie beispielsweise Steuerungsfunktionen einschließlich Algorithmen und Software, können mit den hierin beschriebenen Systemen und Verfahren entwickelt und validiert werden. Diese Systeme und Verfahren verwenden reale Daten, die aus einer Flotte von autonomen Fahrzeugen, wie beispielsweise dem Fahrzeug 10, stammen. Dementsprechend kann das Fahrzeug 10 in einigen Ausführungsformen ein integraler Bestandteil dieser Systeme und Prozesse sein, weshalb das Fahrzeug 10 hierin ausführlich beschrieben wird.
-
Wie in 1 dargestellt beinhaltet das Fahrzeug 10 im Allgemeinen ein Fahrgestell, eine Karosserie 14 und Vorder- und Hinterräder 16, 18, die in der Nähe einer entsprechenden Ecke der Karosserie 14 rotierend mit dem Fahrgestell gekoppelt sind. Die Karosserie 14 ist auf dem Fahrgestell angeordnet und umhüllt im Wesentlichen die anderen Komponenten des Fahrzeugs 10; und die Karosserie 14 und das Fahrgestell können einen gemeinsamen Fahrzeugrahmen bilden.
-
Das Fahrzeug 10 ist ein autonomes Fahrzeug und ein Steuersystem 100 ist in das autonome Fahrzeug 10 integriert. Das Fahrzeug 10 ist beispielsweise ein Fahrzeug, das automatisch gesteuert wird, um Fahrgäste von einem Ort zum anderen zu befördern. Das Fahrzeug 10 ist in der veranschaulichten Ausführungsform als Pkw dargestellt, es sollte jedoch beachtet werden, dass auch jedes andere Fahrzeug, einschließlich Motorräder, Lastwagen, Sportfahrzeuge (SUVs), Freizeitfahrzeuge (RVs), Schiffe, Flugzeuge usw. verwendet werden können. In einer exemplarischen Ausführungsform ist das autonome Fahrzeug 10 ein sogenanntes Level-Vier oder Level-Fünf Automatisierungssystem. Ein Level-Vier-System zeigt eine „hohe Automatisierung“ unter Bezugnahme auf die Fahrmodus-spezifische Leistung durch ein automatisiertes Fahrsystem aller Aspekte der dynamischen Fahraufgabe an, selbst wenn ein menschlicher Fahrer nicht angemessen auf eine Anforderung einzugreifen, reagiert. Ein Level-Fünf-System zeigt eine „Vollautomatisierung“ an und verweist auf die Vollzeitleistung eines automatisierten Fahrsystems aller Aspekte der dynamischen Fahraufgabe unter allen Fahrbahn- und Umgebungsbedingungen, die von einem menschlichen Fahrer verwaltet werden können.
-
Wie dargestellt, beinhaltet das autonome Fahrzeug 10 im Allgemeinen ein Antriebssystem 20, ein Getriebesystem 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 zu den Fahrzeugrädern 16, 18 gemäß den wählbaren Übersetzungen 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, 18 ein Bremsmoment bereitzustellen. Das Bremssystem 26 kann in verschiedenen Ausführungsformen Reibungsbremsen, Brake-by-Wire, ein regeneratives Bremssystem, wie beispielsweise eine elektrische Maschine und/oder andere geeignete Bremssysteme beinhalten. Das Lenksystem 24 beeinflusst die Position der Fahrzeugräder 16, 18. Während in einigen Ausführungsformen innerhalb des Umfangs der vorliegenden Offenbarung zur Veranschaulichung als ein Lenkrad 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 10 erfassen. Die Sensorvorrichtungen 40a-40n können, sind aber nicht beschränkt auf, Radar, Lidar, globale Positioniersysteme, optische Kameras, Wärmebildkameras, Ultraschallsensoren, Lenkwinkelsensoren, Drosselklappensensoren, Raddrehzahlsensoren, Temperatursensoren und/oder andere Sensoren, einschließlich Fahrzeug-Fahrzeug-, Fahrzeug-Mensch- und Fahrzeug-Infrastruktur-Kommunikationsvorrichtungen, beinhalten. Das Stellgliedsystem 30 beinhaltet ein oder mehrere Stellgliedvorrichtungen 42a-42n, die ein oder mehrere Fahrzeugeigenschaften, wie zum Beispiel das Antriebssystem 20, das Getriebesystem 22, das Lenksystem 24 und das Bremssystem 26, steuern, sind aber nicht darauf beschränkt. In verschiedenen Ausführungsformen können die Fahrzeugmerkmale ferner Innen- und/oder Außenfahrzeugmerkmale, wie beispielsweise Türen, einen Kofferraum und Innenraummerkmale, wie z. B. Luft, Musik, Beleuchtung usw. (nicht nummeriert) beinhalten, sind jedoch nicht auf diese beschränkt.
-
Die Datenspeichervorrichtung 32 speichert Daten zur Verwendung beim automatischen Steuern des autonomen Fahrzeugs 10. In verschiedenen Ausführungsformen speichert die Datenspeichervorrichtung 32 definierte Karten 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 Karten durch das entfernte System zusammengesetzt und dem autonomen Fahrzeug 10 (drahtlos und/oder drahtgebunden) mitgeteilt und in der Datenspeichervorrichtung 32 gespeichert werden. Wie ersichtlich, 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 Datenspeichervorrichtung 32 kann auch Informationen speichern, die während des Betriebs des Fahrzeugs 10 gesammelt wurden, einschließlich Daten von den Sensoren 28, 40 und vom Betrieb der Stellglieder 30, 42 und kann Teil des Fahrzeugprotokollsystems sein. Insofern stellen die Daten reale Informationen zu tatsächlichen Szenen, Objekten, Funktionen und Vorgängen dar.
-
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) unter mehreren Prozessoren verbunden mit der Steuerung 34, ein Mikroprozessor auf Halbleiterbasis (in Form eines Mikrochips oder Chip-Satzes), ein Mikroprozessor, 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 an 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 10 verwendet werden.
-
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 umfasst. Die Anweisungen empfangen und verarbeiten, wenn diese vom Prozessor 44 ausgeführt werden, Signale vom Sensorsystem 28, führen Logik, Berechnungen, Verfahren und/oder Algorithmen zur automatischen Steuerung der Komponenten des autonomen Fahrzeugs 10 durch und erzeugen Steuersignale an das Stellgliedsystem 30, um die Komponenten des autonomen Fahrzeugs 10 basierend auf der Logik, den Berechnungen, den Verfahren und/oder Algorithmen automatisch zu steuern. Obwohl in 1 nur eine Steuerung 34 dargestellt ist, können Ausführungsformen des autonomen Fahrzeugs 10 eine beliebige Anzahl an 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 10 automatisch zu steuern.
-
In verschiedenen Ausführungsformen sind eine oder mehrere Anweisungen der Steuerung 34 im Steuersystem 100 (z. B. im Datenspeicherelement 46) enthalten und veranlassen den Prozessor 44, beim Ausführen durch den Prozessor 44 einen stationären oder bewegten Zustand des Fahrzeugs 10 basierend auf den Ausgangsdaten von einem oder mehreren Fahrzeugsensoren 40 (z. B. einem Drehzahlsensor, einem Positionssensor oder dergleichen) zu erkennen oder zu identifizieren, Daten zu erhalten, die von Bild- und Entfernungsmessvorrichtungen erfasst oder erzeugt wurden. Danach kann der Prozessor 44 Korrelationen und Transformationen zwischen den Datensätzen oder dem Referenzrahmen des Fahrzeugs festlegen, um Attribute von einem Datensatz an einen anderen Datensatz zuzuweisen und dadurch die Objekterkennung, Objektklassifizierung, Objektvorhersage und dergleichen zu verbessern. Die resultierenden Objekte und deren Klassifizierung und vorausgesagtes Verhalten beeinflussen die Fahrpläne zur autonomen Steuerung des Fahrzeugs 10, die wiederum Befehle beeinflussen, die vom Prozessor 44 zur Steuerung der Stellantriebe 42 erzeugt oder anderweitig bereitgestellt werden. Während die Daten erfasst oder erzeugt werden, werden sie protokolliert und können in der Datenspeichervorrichtung 32 oder in anderen Vorrichtungen des Fahrzeugs 10 gespeichert werden.
-
Das Steuersystem 100 synthetisiert und verarbeitet Sensordaten und prognostiziert das Vorhandensein, die Lage, die Klassifizierung und/oder den Verlauf von Objekten und Merkmalen der Umgebung des Fahrzeugs 10. Das Steuersystem 100 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, Geschwindigkeit usw.) des Fahrzeugs 10 in Bezug auf die Umgebung zu bestimmen. Das Steuersystem 100 verarbeitet Sensordaten zusammen mit anderen Daten, um eine Strecke zu bestimmen, dem das Fahrzeug 10 folgen soll. Das Fahrzeugsteuerungssystem 100 erzeugt Steuersignale zum Steuern des Fahrzeugs 10 entsprechend der ermittelten Strecke.
-
Bezogen auf 1 ist das Kommunikationssystem 36 in exemplarischen Ausführungsformen konfiguriert, um Informationen drahtlos an und von anderen Entitäten mit der/den Kommunikationsvorrichtung(en) 48, wie beispielsweise, jedoch nicht beschränkt auf andere Fahrzeuge („V2V“-Kommunikation,) Infrastruktur („V2I“-Kommunikation), entfernte Systeme und/oder persönliche Vorrichtungen 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. Das Kommunikationssystem 36 kann verwendet werden, um die in der Datenspeichervorrichtung gespeicherten Daten an das oder die hierin beschriebenen Systeme zur Verwendung von realen Daten bei Entwicklungs- und Validierungsaktivitäten zu übermitteln.
-
Unter nunmehriger Bezugnahme auf 2 ist in Übereinstimmung mit verschiedenen Ausführungsformen dem repräsentativen autonomen Fahrzeug 10 ein Validierungssystem 200 zugeordnet, das nur eines von zahlreichen autonomen Fahrzeugen, wie beispielsweise einer Flotte von autonomen Fahrzeugen, sein kann. Das Validierungssystem 200 wird durch einen oder mehrere Computer 202 ausgeführt, der einen oder mehrere Computer beinhaltet, die so konfiguriert sind, dass sie die Verfahren, Prozesse und/oder Vorgänge hieraus ausführen. Der/die Computer 202 beinhalten im Allgemeinen eine Kommunikationsstruktur, die Informationen zwischen Systemen und Vorrichtungen, wie beispielsweise einem Prozessor, und anderen Systemen und Vorrichtungen übermittelt. Computer 202 können Ein-/Ausgabevorrichtungen, wie beispielsweise menschliche Oberflächenvorrichtungen, und andere Vorrichtungen beinhalten, um Informationen an und von den Computern 202 bereitzustellen. In der vorliegenden Ausführungsform beinhaltet der/die Computer 202 eine Kommunikationsvorrichtung, die ein entferntes System der anderen Entitäten mit der/den vorstehend beschriebenen Kommunikationsvorrichtung(en) 48 zum Kommunizieren mit dem Kommunikationssystem 36 des Fahrzeugs 10 umfasst. Der/die Computer 202 führt/führen Vorgänge über einen oder mehrere Prozessoren aus, die im Speicher gespeicherte Anweisung ausführen. Der Speicher kann 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 dem/den Computer(n) 202 verwendet werden. In verschiedenen Ausführungsformen ist/sind der/die Computer 202 konfiguriert, um ein Fahrzeugentwicklungs- und Validierungssystem zu implementieren, wie im Folgenden im Detail erläutert wird. Der/die Computer 202 ist/sind mit einem Betriebssystem, einer Anwendungssoftware und Modulen konfiguriert, wie vorstehend definiert. Im Allgemeinen beinhalten die Module ein Sensor- und Wahrnehmungsmodul 204 sowie ein Planungs- und Verhaltensmodul 206. Der/die Computer 202-Schnittstelle mit einem Steuermodul 210, das in einigen Ausführungsformen das Fahrzeug 10, in anderen Ausführungsformen ein Hardware-Mockup der Sensoren und Stellglieder des Fahrzeugs 10 und in weiteren Ausführungsformen ein computerbasiertes Modell der Sensoren und Stellglieder des Fahrzeugs 10 ist/sind. Infolgedessen kann das Steuermodul 210 in dem/den Computer(n) 202 oder außerhalb von diesem untergebracht sein. Der/die Computer 202 kann/können auch eine oder mehrere Datenbanken 212, 214 beinhalten oder mit diesen verbunden sein, die sich in dem/den Computer(n) 202 befinden oder mit diesen verbunden sein können. In der vorliegenden Ausführungsform empfängt und speichert die Datenbank 212 in einer kuratierten Weise reale Daten aus der Flotte der autonomen Fahrzeuge, wie beispielsweise dem Fahrzeug 10. Das Validierungssystem 200 kann drahtlos mit dem Fahrzeug 10 vernetzt sein, um Daten über die Kommunikationsvorrichtung 48 zu übertragen, oder die Daten können durch jedes andere verfügbare Verfahren übertragen werden. Die Datenbank 212 kann auch Daten enthalten, die virtuell in einer simulierten Umgebung für ein Modell des Fahrzeugs 10 erzeugt wurden.
-
Wie im Folgenden näher ausgeführt, kann das Sensor- und Wahrnehmungsmodul 204 des Validierungssystems 200 Störungen der vom Fahrzeug 10 gesammelten Daten und/oder virtuell erzeugte Daten erzeugen, um die Anzahl der Szenarien in der Datenbank 212 zu erhöhen. Die gesammelten Daten werden im Sensor- und Wahrnehmungsmodul 204 in ein gemeinsames Darstellungsformat umgewandelt und können zur weiteren Verwendung im Planungs- und Verhaltensmodul 206 in ein bevorzugtes Format weiterverarbeitet werden. Algorithmen können unter Verwendung der Testdatenbank 214 durch Szenarien evaluiert werden, die ein individuelles Verhalten beinhalten können. Wie im Folgenden näher ausgeführt, kann das Planungs- und Verhaltensmodul 206 des Validierungssystems 200 unter Verwendung der Daten in der Testdatenbank 214 zusätzliche Störungen erzeugen, um die Anzahl der Szenarien im Speicher zu erhöhen. Das Planungs- und Verhaltensmodul 206 verwendet die Szenarien, um Steuerungsmerkmale, wie beispielsweise Algorithmen und Software zum Steuern des Fahrzeugs 10 oder seiner Elemente auszuwerten. In dem Planungs- und Verhaltensmodul 206 wird die Algorithmen-/Softwareleistung beispielsweise in Bezug auf Metriken ausgewertet und im Steuermodul 210 durch Steuern eines autonomen Fahrzeugs, eines Mock-ups oder eines Modells desselben ausgewertet. Durch das Validierungssystem 200 wird eine Auswertung schneller als in Echtzeit von Steueralgorithmen/Software durch parallele und verteilte Implementierungen der Algorithmen/Software erreicht. Die realen Daten werden durch Simulationen erzeugte Daten und durch das Erzeugen von Störeinflüssen ergänzt. Die Verwendung von realen Daten erhöht die Realitätsnähe von Ereignisszenarien zur Leistungsbewertung. Das Validierungssystem 200 kann auch zum Auswerten von Hardware im Steuermodul 210 verwendet werden.
-
Unter Bezugnahme auf 3 zusammen mit 1 wird eine exemplarische Architektur für ein System 300 zur End-to-End-Entwicklung und -Validierung von autonomen Fahrzeugen veranschaulicht. Das System 300 steht in vielen Aspekten im Einklang mit dem Validierungssystem 200 von 2, mit zusätzlichen Details. Die Daten werden von einer Fahrzeugflotte einschließlich des Fahrzeugs 10 gesammelt, wie beispielsweise vom Sensorsystem 28 einschließlich der Sensorvorrichtungen 40a-40n, die beobachtbare Bedingungen der äußeren Umgebung und/oder der inneren Umgebung des autonomen Fahrzeugs 10 und dessen Betrieb erfassen. Dies beinhaltet Rohdaten von den Sensoren 40a-40n in der Umgebung des Fahrzeugs 10, wie beispielsweise von Kameras, LIDAR, RADAR, GPS, Fahrzeug-Fahrzeug/Mensch/Infrastruktur und anderen Sensoren, sowie Daten von den Onboard-Sensoren 40a-40n, die den Zustand des Fahrzeugs einschließlich des Betätigens der Stellglieder 42 überwachen, wie beispielsweise Drehzahlsensoren, Lenkwinkelsensoren, Bremsbetätigungssensoren, eine Trägheitsmesseinheit und andere Sensoren. Die Daten werden von einem Protokolliersystem des On-Board-Prozessors 44 erfasst und in der Datenspeichervorrichtung 32 und/oder der computerlesbaren Speichervorrichtung oder dem Medium 46 gespeichert. Die Sensordaten werden 302 aus dem Fahrzeug 10 extrahiert, beispielsweise über eine drahtlose Kommunikationsverbindung, eine temporäre drahtgebundene Verbindung oder über ein lesbares Medium. Wie vorstehend erwähnt, kann zu diesem Zweck das Kommunikationssystem 36 verwendet werden. Die Daten stellen reale Daten über den gesamten Informationszustand des Fahrzeugs 10 dar. Die Daten können auch aus infrastrukturbasierten Sensoren 304 und anderen mobilen Quellensensoren 306 extrahiert 302 werden. So können beispielsweise Sensoren 304 von bestehenden Infrastruktursensoren, wie beispielsweise Kameras, genutzt und/oder zum Erfassen spezifischer Szenensituationen, wie beispielsweise Kreuzungen, Wendepunkte, Zusammenführungspunkte, Kurven, Engpässe und andere, eingesetzt werden, um die von den Fahrzeugen 10 gesammelten Daten zu ergänzen. Darüber hinaus können die Sensoren 306 auf anderen mobilen Plattformen, wie beispielsweise Flugzeugen, eingesetzt werden, um globale Ansichten von Verkehrsmustern, Langzeitverhalten und anderen Informationen zu erhalten. Die Daten von den Quellen 10, 304 und/oder 306 werden in einer kuratierten Weise in der Datenbank 212 gespeichert und dienen als Eingabe für das Sensor- und Wahrnehmungsmodul 204.
-
Die Daten aus der Datenbank 212 werden im Fusionsmodul 308 synthetisiert und verarbeitet, um das Vorhandensein, die Lage, die Klassifizierung und/oder den Weg von Objekten und Merkmalen der Umgebung des Fahrzeugs 10 und der von den Sensoren 304, 306 erfassten Szenen darzustellen. Das Fusionsmodul 308 vereint Informationen von mehreren Sensoren in einer registerartigen synchronisierten Form. Wie beispielsweise in 4 dargestellt, können Daten vom Fahrzeug 10 verwendet werden, um eine Szene aus der Perspektive des Fahrzeugs zu reproduzieren, wie in Bild 310 gezeigt. So können beispielsweise eine Fahrbahn 312, andere Fahrzeuge 314, Objekte 316 und Schilder 318 dargestellt werden. Daten können auch vom Sensormodell-Emulator 320 mit einem simulierten virtuellen Sensorsatz, der die Sensoren 40a-40n modelliert, übernommen werden. Dies kann ein Modell des Fahrzeugs 10 mit allen Sensoren 40a-40n beinhalten. Das Erzeugen von Daten für verschiedene Szenarien kann skriptgesteuert oder manuell zum Erzeugen von synthetischen Daten veranlasst werden. Der Sensormodell-Emulator 320 kann im Validierungssystem 200 oder in einem anderen Computer oder anderen Computern ausgeführt werden. Die Szenarien können mit einer Reihe anderer Akteure erstellt werden, einschließlich Fahrbahnvariationen, Fußgängern, anderen Fahrzeugen und anderen Objekten. Die Daten des Sensormodell-Emulators 320 können in der Datenbank 212 gespeichert oder direkt an das Fusionsmodul 308 übermittelt werden, wobei sie zusammen mit den realen Daten verschmolzen werden. Der Sensormodell-Emulator koordiniert mit einem virtuellen Welt-Renderer 322, der dreidimensionale Darstellungen von Fahrbahnen und Objekten unter Verwendung der virtuell erzeugten Daten aus dem Sensormodell-Emulator 320 erzeugt. So können beispielsweise Umgebungsaspekte der virtuellen Welt Infrastrukturdetails beinhalten, wie beispielsweise Ampeln, Verkehrsbegrenzungen, Verkehrsschilder und andere. Darüber hinaus können Objektaspekte der virtuellen Welt die Identifizierung des Objekts beinhalten, ob es sich bewegt oder stationär ist, zusammen mit einem Zeitstempel, Standort, Größe, Drehzahl, Beschleunigung, Richtung, Trajektorie, Oberflächenreflexion und Materialeigenschaften. Es können Ereignisinformationen einbezogen werden, wie beispielsweise Spurwechsel, Geschwindigkeitsänderungen, Stopps, Kurven und andere.
-
Das Sensor- und Wahrnehmungsmodul 204 beinhaltet ein Wandlermodul 324, das die verschmolzenen Sensordaten vom Fusionsmodul 308 unter Verwendung der Ergebnisse des virtuellen Welt-Renderers 322, in dem sowohl das reale Fahrzeug 10 als auch das durch den Sensormodell-Emulator 320 repräsentierte simulierte Fahrzeug betrieben werden, in eine gemeinsame Darstellungsform der Umgebung umwandelt. So wandelt beispielsweise das Wandlermodul 324 in der vorliegenden Ausführungsform die Daten in Voxeldaten (z. B. RGB, XYZ) um, um eine gemeinsame Darstellungsform sowohl von realen Daten aus dem/den Fahrzeug(en) 10 als auch von virtuellen Daten vom Sensormodell-Emulator 320 zu erhalten. Jedes Voxel enthält Informationen zu Farbe und/oder Intensität (RGB) und Tiefe XYZ. Die umgewandelten Voxeldaten, wie in Bild 326 dargestellt, werden in einer gemeinsamen Perspektive mit den Fahrbahnen 312, Fahrzeugen 314 und Objekten 316 dargestellt. Die Voxeldaten werden in einem globalen Bezugsrahmen dargestellt und können mit jedem geeigneten Verfahren, wie beispielsweise der Photogrammetrie, umgewandelt werden. Die Umwandlung beinhaltet eine Transformation der Szenenposition in ein gemeinsames dimensionales Modell (Koordinatensystem XYZ), einen gemeinsamen Farbraum (Farbmodell RGB) und eine zeitliche Ausrichtung. In diesem Beispiel werden die Fahrzeuge 314 und die Objekte 316 in Begrenzungsfeldern abgebildet, wie in Bild 326 dargestellt. Die 3D-Voxeldaten werden in Voxel unterteilt, die Fahrzeuge, Fußgänger, Ampeln, Schilder, Fahrspuren und andere Objekte und Merkmale enthalten, die im 3D-Raum gestört und manipuliert werden können. Störungen der realen Daten, wie beispielsweise vom Fahrzeug 10, werden im Störmodul 334 erstellt. Das Störmodul 334 kann im Validierungssystem 200 oder in anderen Computercomputern laufen. Störungen können Abweichungen von den Daten beinhalten, die zusätzliche Szenarien für die Position und/oder Bewegung von Fahrzeugen 314 und Objekten 316 schaffen, wie beispielsweise die Bewegung eines benachbarten Fahrzeugs 314 an verschiedene andere Positionen. Störungen können auch das Einführen/Ergänzen von neuen Fahrzeugen 314, Objekten 316 und anderen Entitäten zu den Daten beinhalten, die eine realistische Oberflächenreflexion und andere Materialeigenschaften aufweisen können, sodass sie Fahrzeugen, Objekten und anderen in der realen Welt erfassten Entitäten ähnlich sind. Genauer gesagt, beinhalten Beispiele die Verzögerung der Bewegung eines Objekts um einen bestimmten Zeitraum, das Kopieren des Verhaltens eines Objekts von der realen Szene A in die reale Szene B und so weiter. Das Erstellen von Störungen wird veranlasst, um die Anzahl und Variation der Szenarien im Datensatz zu erhöhen, der dem System 300 zur Verfügung steht. So kann beispielsweise die Datenmenge um eine Größenordnung erhöht werden. Dementsprechend werden die Einschränkungen bei der Datenerhebung in der realen Welt überwunden, indem neue Daten als Variationen der realen Daten erstellt werden. So können beispielsweise nicht aufgetretene Szenarien, wie beispielsweise das Auftreten eines anderen Akteurs, Schilderplatzierungen, Signalbetrieb und andere zur Verwendung beim Auswerten erstellt werden. Da die Störungen auf realen Daten basieren, weisen sie eine hohe Validität und Realitätsnähe auf. Im Ergebnis werden virtuelle und reale Elemente verschmolzen. So sind beispielsweise reale Wahrnehmungselemente in einer virtuellen Welt vorhanden. Ein Beispiel beinhaltet die Verwendung von realen Straßenumgebungsaspekten mit virtuellen Sensorausgaben. Durch das Erstellen von Störungen aus realen Daten werden die Herausforderungen eines realistischen Verhaltens in einer rein virtuellen Welt vermieden. In weiteren Ausführungsformen können auch Störungen der virtuellen Daten vom Sensormodell-Emulator 320 erzeugt werden.
-
Die Voxeldaten vom Wandlermodul 324 werden dann im Generatormodul 336 in dreidimensionale (3D) Objektdaten umgewandelt. Wie durch Bild 338 von 4 dargestellt, können die 3D-Objektdaten verwendet werden, um benutzerdefinierte Rahmen für Szenarien zu erzeugen, die realer erscheinen können, und bieten eine nahezu tatsächliche Darstellung der Umgebung, in der ausgewertete Algorithmen/Software im System 300 ausgeführt werden. So werden beispielsweise die Position anderer Fahrzeuge 314 und Objekte 316 sowie deren Ausrichtung und Bewegungen in Bezug auf das Trägerfahrzeug mit hoher Genauigkeit dargestellt. Die 3D-Objektdaten beinhalten sowohl die realen als auch die virtuell erzeugten Datenwörter und werden an das Planungs- und Verhaltensmodul 206 geliefert. Insbesondere werden die 3D-Objektdaten in der Testdatenbank 214 gespeichert. In weiteren Ausführungsformen können andere Mechanismen und Algorithmen, die verschmolzene Sensordaten in 3D-Objektdaten umwandeln, beinhaltet sein oder alternativ verwendet werden, wie durch das Transformationsmodul 340 angegeben und in 3 dargestellt. So kann beispielsweise ein Mechanismus wie ein typisches Wahrnehmungssystem in einem autonomen Fahrzeug verwendet werden, das Fahrzeuge, Fahrbahnen, Objekte, Fußgänger, Schilder und Signale sowie deren Attribute identifiziert.
-
Im Allgemeinen verwendet das Planungs- und Verhaltensmodul 206 die 3D-Objektdaten, einschließlich Informationen über andere Fahrzeuge und deren Bewegung in Bezug auf das Trägerfahrzeug und plant voraus, simuliert den Betrieb des Trägerfahrzeugs in einer Vielzahl von Situationen, um die Leistung von Algorithmen zum Steuern des Fahrzeugs zu bewerten. Unter Bezugnahme auf die 3 und 5 ist im Planungs- und Verhaltensmodul 206 ein Störmodul 342 beinhaltet, das Störungen der Daten in der Testdatenbank 214 erzeugt, die vom Sensor- und Wahrnehmungsmodul 204 empfangen wird. Insbesondere die realen Daten werden gestört, um die Variationen in den Daten zu erhöhen, sodass zusätzliche Verkehrssituationen entstehen, einschließlich seltener Ereignisse (z. B. ein schnell abbremsendes Fahrzeug). Wie in Bild 344 verdeutlicht, werden neue Verkehrsmuster erstellt, die zusätzliche Fahrzeuge 314, zusätzliche Objekte 316, Änderungen an den Fahrbahnen 312 und Bewegungsschwankungen beinhalten können. Die Szene wird mit realen und benutzerdefinierten Verhaltensweisen ausgelöst, einschließlich derjenigen, die Herausforderungen für das Trägerfahrzeug darstellen, auf die es reagieren und navigieren kann. So können beispielsweise Störungen mit anderen Fahrzeugen oder Objekten geschaffen werden, welche die Trajektorie des Trägerfahrzeugs schneiden und Beinahekollisionen und andere herausfordernde Ereignisse verursachen.
-
Mit den in die Testdatenbank 214 aufgenommenen Störungen wird ein Steuerungsmerkmal, wie beispielsweise ein Algorithmus/Software zum Steuern eines Teils des Fahrzeugs 10, in das Testmodul 346 geladen. Der Algorithmus/die Software verwendet die sensorbasierten Eingaben aus der Testdatenbank 214, verarbeitet die Eingaben und erzeugt Ausgaben, wie beispielsweise Befehle für die zu steuernde Funktion. Die Ausgaben 348 werden an eine Bewertungsmaschine 350 und an das Steuermodul 210 übermittelt. In der Bewertungsmaschine 350 werden die Ergebnisse für einen robusten, sicheren und komfortablen Betrieb ausgewertet, auch in Bezug auf Scoring-Metriken. Ein auszuwertender Algorithmus/eine Software verwendet die Dateneingaben, um eine Vorgehensweise zu bestimmen und Ausgaben zu liefern. So kann beispielsweise mit einem Algorithmus, der den Lenkwinkel steuert, wie beispielsweise einem Wegfindungsalgorithmus, die während eines simulierten Manövers entwickelte Querbeschleunigung mit Sollwerten von 0,5 g verglichen und basierend auf der aus dem Test erfassten Beschleunigung bewertet werden. Am Steuermodul 210 werden die Ausgaben in der tatsächlichen oder simulierten Steuerung des Fahrzeugs 10 ausgeführt. In einigen Beispielen kann das Steuermodul 210 das Fahrzeug 10 sein. In weiteren Ausführungsformen kann das Steuermodul 210 ein Hardware-Mock-up der relevanten Teile des Fahrzeugs 10 sein, wie beispielsweise der Sensoren 28, 40 und der Stellglieder 42. Hardware-in-the-Loop-(HIL)-Simulationstests können verwendet werden, um die Hardware und Algorithmen/Software von computerbasierten Steuerungen zu testen. Sie können auch zur Evaluierung der Hardware verwendet werden. In weiteren Ausführungsformen kann das Steuermodul 210 ein virtuelles Modell des Fahrzeugs 10 sein. Model-in-the-Loop (MIL) oder Software-in-the-Loop-(SIL)-Tests bieten Vorteile, wie beispielsweise eine frühzeitige Evaluierung während der Entwicklungsphase, noch bevor Hardware verfügbar ist. Vom Steuermodul 210 aus ist die Reaktion des Fahrzeugs 10 beim Ausführen der Befehle des auszuwertenden Algorithmus/der Software zu beobachten. Das Steuermodul 210 kann innerhalb des Planungs- und Verhaltensmodells 206 vorhanden sein oder in einem davon getrennten verbundenen Computer. Das Planungs- und Verhaltensmodul 206 ist sowohl für die Algorithmen-/Softwareentwicklung als auch für die Algorithmen-/Softwarevalidierung geeignet. So kann beispielsweise ein Algorithmus ausgewertet, Änderungen an diesem vorgenommen und dann erneut ausgewertet werden, unter anderem durch eine Reihe von Wiederholungen, sodass Verbesserungen am Algorithmus während seiner Entwicklung vorgenommen werden können. Ebenso kann in der Entwicklung ein Algorithmus unter vielen verschiedenen Szenarien ausgewertet werden. Zusätzlich kann ein entwickelter Algorithmus für Validierungszwecke ausgewertet werden. Durch das System 300 kann die autonome Fahrzeugsteuerung und -bedienung in Tausenden von Szenarien über Milliarden von Straßenmeilen in einem angemessenen Zeitrahmen ausgewertet werden.
-
Unter Bezugnahme auf 6 ist ein Verfahren 400 unter Verwendung des Systems 300 in Form eines Flussdiagramms veranschaulicht. Der Prozess 400 beginnt mit 401 und fährt mit der Datenerfassung 402 aus realen Quellen fort, einschließlich von autonomen Fahrzeugen, wie beispielsweise dem Fahrzeug 10, Infrastrukturquellen 304 und anderen mobilen Plattformquellen 306. Die gesammelten Daten werden in den Speicherdaten 404 in einer kuratierten Weise gespeichert, wie beispielsweise in der Testdatenbank 214. Das Erzeugen von virtuellen/synthetischen Daten 406 wird als Ergänzung zur Datenerfassung 402 verwendet. In dieser Ausführungsform werden die Daten bei der Datenfusion 408 verschmolzen und in Voxeldaten 410 umgewandelt. Der Prozess 400 erzeugt Störungen 412 aus der Datenerhebung 402, um den Datensatz um realistische Variationen zu erweitern, wobei die erzeugten Stördaten zu den fusionierten Daten bei 414 hinzugefügt werden. 3D-Objektdaten werden von den Voxeldaten erzeugt 416 und gespeichert 418, beispielsweise in der Testdatenbank 214. Die Testdatenbank 214 wird durch Störungen ergänzt, die im Störmodul 342 erzeugt 420 werden, wie beispielsweise durch zusätzliche Verkehrsszenarien. Ein Algorithmus/eine Software wird in das Testmodul 346 geladen 422 und der Algorithmus/die Software wird unter Verwendung von Daten aus der Testdatenbank 214 ausgeführt 424. Befehlsausgaben bei der Ausführung 424 werden ausgewertet 426, wie beispielsweise an der Bewertungsmaschine 350. Die Auswertung kann Scoring-Metriken beinhalten und eine Reihe von Faktoren auswerten. Befehlsausgaben durch das Ausführen 424 werden auch in einer Fahrzeugumgebung mit aktueller oder modellierter Hardware ausgeführt, wie beispielsweise am Steuermodul 210 beim Steuern der Hardware/des Modells 428, und der Prozess 400 endet 430.
-
Durch das vorgenannte System 200/300 und den Prozess 400 wird eine Kombination aus realen und virtuellen Daten verwendet, um den Betrieb eines autonomen Fahrzeugs oder dessen Systeme über eine sehr große Anzahl und Arten von Szenarien und Entfernungen schnell zu simulieren. In verschiedenen Phasen wird die Störung dazu verwendet, die für Testzwecke verfügbaren Daten zu vervielfachen und ereignisreichere Anwendungsfälle zu schaffen. Das gleiche System 200/300 Framework kann sowohl für Entwicklungs- als auch für Validierungszwecke verwendet werden. 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 Variationen gibt. Es ist auch anzumerken, dass die Auswertung schneller als in Echtzeit der Wahrnehmung, des Planungsverhaltens und der Regelalgorithmen/Software des autonomen Fahrzeugs durch einen oder mehrere Prozessoren in den Computern durchgeführt wird, die diese umfangreiche Datenzufuhr mit höheren Bildraten (z. B. > 30 Bilder pro Sekunde) zu parallelen und/oder verteilten Rechenclustern und/oder Supercomputern nach dem Stand der Technik verwenden. 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. Es versteht sich, dass verschiedene Veränderungen an der Funktion und der Anordnung von Elementen vorgenommen werden können, ohne vom Umfang der Offenbarung, wie er in den beigefügten Ansprüchen und deren rechtlichen Entsprechungen aufgeführt ist, abzuweichen.