-
Diese Erfindung betrifft ein Verfahren und ein System zum Durchführen eines autonomen Betriebs eines Fahrzeugs gemäß dem Oberbegriff des Anspruchs 1 bzw. des Anspruchs 6, wie der Art nach im Wesentlichen aus der
DE 10 2013 200 132 A1 bekannt.
-
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. Während einer elektrischen Servolenkungsstörung, muss ein autonomes Fahrzeug mithilfe einer sekundären Einschlagvorrichtung gesteuert werden. Aufgrund der zeitlichen Begrenzung des Problems muss das autonome Fahrzeug bei einer höheren Querbeschleunigung und/oder durch eine sich schnell ändernde Längsgeschwindigkeit gesteuert werden. Zusätzlich kann sich der Vorderradeinschlag aufgrund einer der durch einen Fahrer hinzugezogenen Einschlagsteuerung bewegen, wobei die numerische Strömungsmechanik (CFD nach Computational Fluid Dynamics) nicht den Vorderradeinschlag, die hohe Straßenlast oder dergleichen hält. Eine robuste Steuerung mit der Fähigkeit, sich auf eine solche dynamische Variabilität einzustellen, kann erforderlich sein, um auf solche Umstände einzugehen.
-
Dementsprechend ist es wünschenswert, Techniken zur verbesserten Steuerung des Einschlags für autonome Fahrzeuge bereitzustellen. Es ist zusätzlich wünschenswert, Verfahren, Systeme und Fahrzeuge vorzusehen, die derartige Techniken anwenden. Darüber hinaus werden weitere wünschenswerte Aspekte und Eigenschaften aus der nachfolgenden ausführlichen Beschreibung und den hinzugefügten Ansprüchen in Verbindung mit den zugehörigen Zeichnungen und dem vorangegangenen technischen Gebiet und Hintergrund ersichtlich.
-
Der Erfindung liegt daher die Aufgabe zu Grunde, diesen Wünschen zu entsprechen.
-
Diese Aufgabe wird mit einem Verfahren und einem System zum Durchführen eines autonomen Betriebs eines Fahrzeugs mit den Merkmalen des Anspruchs 1 bzw. des Anspruchs 6 gelöst. Vorteilhafte Weiterbildungen ergeben sich aus den Unteransprüchen.
-
Manche Ausführungsformen der vorliegenden Erfindung sehen ein Verfahren zum Durchführen eines autonomen Betriebs eines Fahrzeugs vor. Das Verfahren erkennt einen Fehlerzustand einer elektrischen Servolenkungs (EPS)-Vorrichtung an Bord des Fahrzeugs durch mindestens einen Prozessor; erfasst Eingangstrajektoriedaten für den autonomen Betrieb des Fahrzeugs durch den mindestens einen Prozessor; berechnet den vorgesteuerten Hinterradeinschlag-Winkel anhand der Eingangstrajektoriedaten durch den mindestens einen Prozessor; berechnet das Rückkopplungssignal des vorgesteuerten Hinterradeinschlag-Winkels durch den mindestens einen Prozessor; berechnet den endgültigen Einschlagwinkel-Befehl unter Verwendung des vorgesteuerten Hinterradeinschlag-Winkels und des Rückkopplungssignals durch den mindestens einen Prozessor; und betreibt eine Einschlagvorrichtung des Fahrzeugs unter Verwendung des endgültigen Einschlagwinkel-Befehls, um das Fahrzeug gemäß des endgültigen Einschlagwinkel-Befehls autonom zu manövrieren.
-
Einige Ausführungsformen sehen eine Vorrichtung zum Durchführen eines autonomen Betriebs eines Fahrzeugs vor. Das System beinhaltet ein Systemspeicherelement; eine Einschlagvorrichtung für das Fahrzeug, wobei die Einschlagvorrichtung so konfiguriert ist, um das Fahrzeug gemäß einem endgültigen Einschlagwinkel-Befehl zu manövrieren; und mindestens einen Prozessor, der kommunikativ mit dem Systemspeicherelement und der Einschlagvorrichtung verbunden ist, wobei der mindestens eine Prozessor konfiguriert ist zum: Erkennen eines Fehlerzustandes einer elektrischen Servolenkungs (EPS)-Vorrichtung an Bord des Fahrzeugs; Erfassen von Eingangstrajektoriedaten für den autonomen Betrieb des Fahrzeugs; Berechnen eines vorgesteuerten Hinterradeinschlag-Winkels anhand der Eingangstrajektoriedaten; Berechnen eines Rückkopplungssignals des vorgesteuerten Hinterradeinschlag-Winkels; Berechnen des endgültigen Einschlagwinkel-Befehls unter Verwendung des vorgesteuerten Hinterradeinschlag-Winkels und des Rückkopplungssignals; und Einleiten des Betriebs der Einschlagvorrichtung unter Verwendung des endgültigen Einschlagwinkel-Befehls.
-
Einige Ausführungsformen sehen ein Trajektoriesteuersystem an Bord eines Fahrzeugs vor, das für einen autonomen Betrieb konfiguriert ist. Das Trajektoriesteuersystem beinhaltet eine Bahnplanungssteuerung, die konfiguriert ist zum: Empfangen von Eingangstrajektoriedaten; und Berechnen einer gewünschten Bahn für das Fahrzeug anhand der Eingangstrajektoriedaten, wobei die gewünschte Bahn Krümmungsdaten, Fahrtrichtungsdaten und seitliche Versatzdaten umfasst; eine quasi-vorgesteuerte Fahrspurhalteteuerung, die kommunikativ mit der Bahnplanungssteuerung verbunden ist, wobei die quasi-vorgesteuerte Fahrspurhalteteuerung konfiguriert ist zum: Empfangen von Eingangsgrößen, umfassend die Krümmungdaten und die Vorderradeinschlag-Winkeldaten; und Berechnen eines vorgesteuerten Hinterradeinschlagwinkel-Befehls anhand der Eingangsgrößen; eine modellprädiktive Regelung (MPC nach Model Predictive Control)-Rückkopplungssteuerung, die kommunikativ mit der Bahnplanungssteuerung und der quasi-vorgesteuerte Fahrspurhalteteuerung verbunden ist, wobei die MPC-Rückkopplungssteuerung konfiguriert ist zum: Empfangen mindestens des vorgesteuerten Hinterradeinschlagwinkel-Befehls, eines Vorderradeinschlag-Winkels, der gewünschten Bahndaten und der Fahrzeugsensordaten; und Berechnen eines endgültigen Einschlagwinkel-Befehls unter Verwendung mindestens des vorgesteuerten Hinterradeinschlagwinkel-Befehls, des Vorderradeinschlag-Winkels, der gewünschten Bahndaten und der Fahrzeugsensordaten; und eine Einschlagvorrichtung für das Fahrzeug, wobei die Einschlagvorrichtung kommunikativ mit der MPC-Rückkopplungssteuerung verbunden ist, wobei die Einschlagvorrichtung konfiguriert ist zum: Empfangen des endgültigen Einschlagwinkel-Befehls von der MPC-Rückkopplungssteuerung; und Manövrieren des Fahrzeuges gemäß des endgültigen Einschlagwinkel-Befehls.
-
Diese Kurzdarstellung wird bereitgestellt, um eine Auswahl von Konzepten in einer vereinfachten Form einzuführen, die im Folgenden in der ausführlichen Beschreibung beschrieben sind..
-
Ein vollständigeres Verständnis des Gegenstands kann durch Bezugnahme auf die ausführliche Beschreibung und die Ansprüche, wenn in Verbindung mit den folgenden Figuren betrachtet, abgeleitet werden, in denen gleiche Bezugszeichen auf ähnliche Elemente in den Figuren verweisen.
- 1 ist Funktionsblockdiagramm eines autonomen Fahrzeugs, umfassend ein Steuersystem zum Steuern des autonomen Fahrzeugs gemäß den offenbarten Ausführungsformen;
- 2 ist ein Flussdiagramm, das eine Ausführungsform ein Verfahren zum Durchführen eines autonomen Fahrzeugbetriebs darstellt; und
- 3 ist ein Flussdiagramm einer exemplarischen Ausführungsform eines konzeptionellen Rahmens für das Verfahren von 2.
-
Der hierin vorgestellte Gegenstand betrifft Vorrichtungen und Verfahren zum autonomen Steuern eines Fahrzeugs im Falle einer elektrischen Servolenkungs (EPS)-Störung. Insbesondere betrifft der Gegenstand das Berechnen entsprechender Steuerbefehle und das autonome Steuern eines Fahrzeugs unter Verwendung des berechneten Einschlagbefehls.
-
Mit Bezug auf die verschiedenen Ausführungsformen der vorliegenden Erfindung kommen bestimmte Terminologien zur Anwendung. 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, ab. Das autonome Fahrzeugsystem nutzt ferner Informationen von Systemen, wie beispielsweise globale Positioniersysteme (GPS), zum Navigieren. Eine Einschlagvorrichtung ist jede Vorrichtung, Hardware oder ein anderes Gerät, das verwendet wird, um ein Fahrzeug autonom zu manövrieren, und zwar gemäß einer vorbestimmten Trajektorie. Die Einschlagvorrichtung kann unter Verwendung einer Hinterradeinschlag-Vorrichtung, einer Vorderradeinschlag-Vorrichtung, einer Differentialbremsvorrichtung oder jeder anderen Komponente oder jedem anderen System implementiert werden, das betreibbar ist, um das Fahrzeug autonom zu manövrieren.
-
Unter Bezugnahme nun auf die Figuren, ist 1 ein Funktionsblockdiagramm eines autonomen Fahrzeugs 100, umfassend ein Steuersystem 102 zum Steuern des autonomen Fahrzeugs 100 gemäß den offenbarten Ausführungsformen. Das autonome Fahrzeug 100 kann ein beliebiges aus einer Reihe von verschiedenen Arten von Typen von Kraftfahrzeugen (Limousinen, Lastwagen, LKW, Motorräder, Geländewagen, Transporter usw.), Militärfahrzeugen (Humvees, Panzer, Lastwagen usw.), Rettungsfahrzeugen (Feuerwehr, Leiterwagen, Polizeiwagen, Rettungsdienst-LKW und Krankenwagen usw.) und dergleichen sein.
-
Das Steuersystem 102 kann unter Verwendung jedes Rechensystems oder einer Plattform an Bord eines Fahrzeugs implementiert sein. Das Steuersystem 102 beinhaltet im Allgemeinen ohne Einschränkung: mindestens einen Prozessor 104; ein Systemspeicherelement 106; ein Navigationssystem 108; eine oder mehrere Kameras 110; mehrere Fahrzeug-Bordsensoren 112; ein Fahrzeugtrajektorie-Berechnungsmodul 114; und eine Einschlagvorrichtung 116. Diese Elemente des Steuersystems 102 können wirksam miteinander verbunden, miteinander gekoppelt oder auf andere Weise zum Zusammenwirken, wie erforderlich, zur Unterstützung der gewünschten Funktionalität konfiguriert werden - insbesondere den autonomen Betrieb des Fahrzeugs 100, wie hierin beschrieben. Zur besseren Verständlichkeit und Klarheit werden die verschiedenen physikalischen, elektrischen und logischen Verbindungen und Zwischenverbindungen für diese Elemente nicht in 1 dargestellt. Außerdem ist zu bemerken, dass Ausführungsformen des Steuersystems 102 andere Elemente und Module beinhalten, die zusammenwirken, um die gewünschte Funktionalität zu unterstützen. Zur Vereinfachung bildet 1 nur bestimmte Elemente ab, die sich auf die im Folgenden näher beschriebenen Betriebstechniken des autonomen Fahrzeugs 100 beziehen.
-
Zumindest ein Prozessor 104 kann mit einem oder mehreren Universalprozessoren, einem inhaltsadressierbaren Speicher, einem digitalen Signalprozessor, einer anwendungsspezifischen integrierten Schaltung, einem feldprogrammierbaren Gate-Array, jeder geeigneten programmierbaren Logikvorrichtung, diskretem Gatter oder Transistorlogik, diskreten Hardwarekomponenten oder jeglicher Kombination, die entwickelt ist, um die hier beschriebenen Funktionen auszuführen, angewendet sein oder durchgeführt werden. Insbesondere kann zumindest ein Prozessor 104 als ein oder mehrere Mikroprozessoren, Controller, Mikrocontroller oder Zustandsmaschinen realisiert werden. Darüber hinaus kann zumindest ein Prozessor 104 als eine Kombination von Berechnungseinrichtungen, z. B. einer Kombination von Digitalsignalprozessoren und Mikroprozessoren, mehreren Mikroprozessoren, ein oder mehreren Mikroprozessoren in Verbindung mit einem digitalen Signalprozessorkern oder eine beliebige der anderen Konfiguration angewendet sein.
-
Der mindestens eine Prozessor 104 kommuniziert mit einem Systemspeicherelement 106. Das Systemspeicherelement 106 kann unter Verwendung einer beliebigen Anzahl von Vorrichtungen, Komponenten oder Modulen, der Ausführungsform entsprechend, realisiert werden. Des Weiteren könnte das Steuersystem 102 darin ein integriertes Systemspeicherelement 106 und/oder Systemspeicher 106 beinhalten, das betriebsfähig, entsprechend der bestimmten Ausführungsform, daran verbunden ist. In der Praxis könnte das Systemspeicherelement 106 als RAM-Speicher, Flash-Speicher, EPROM-Speicher, EEPROM-Speicher, Register, eine Festplatte, eine Wechselplatte oder jede andere Form von Speichermedium, das in der Technik bekannt ist, realisiert werden. In bestimmten Ausführungsformen beinhaltet das Systemspeicherelement 106 eine Festplatte, die ebenfalls verwendet werden kann, um Funktionen zumindest eines Steuersystems 102 zu unterstützen. Das Systemspeicherelement 106 kann mit zumindest einem Prozessor 104 verbunden sein, sodass mindestens ein Prozessor 104 Informationen vom Systemspeicherelement 106 lesen und Informationen auf ihn schreiben kann. In der Alternative kann das Systemspeicherelement 106 mit mindestens einem Prozessor 104 integriert sein. Als Beispiel können sich zumindest ein Prozessor 104 und das Systemspeicherelement 106 in einer geeignet ausgeführten anwendungsspezifischen integrierten Schaltung (ASIC) befinden.
-
Das Navigationssystem 108 wird an Bord des Hostfahrzeugs 100 eingesetzt. In der Praxis kann das Navigationssystem 108 in ein bordgestütztes Fahrzeug-Entertainment-System, ein bordgestütztes Anzeigesystem, eine bordgestützte Instrumentengruppe oder dergleichen implementiert sein. In einer praktischen Ausführungsform ist das Navigationssystem 108 ausgeführt als, umfasst ein oder wirkt zusammen mit einem bordgestützten Satellitennavigationssystem (Global Positioning System, GPS), das die geografische Position des Fahrzeugs in Echtzeit, oder im Wesentlichen in Echtzeit, empfängt. Das Navigationssystem 108 ist konfiguriert, um Standortdaten an das Steuersystem 102 des Fahrzeugs 100 bereitzustellen. Wenn das Fahrzeug 100 gefahren wird, funktioniert das Navigationssystem 108 zur periodischen Erfassung und/oder Messung eines aktuellen Standorts für das Fahrzeug 100. Das Navigationssystem 108 kann diese Standortdaten an das Steuersystem 102 des Fahrzeugs 100 über die Datenübertragung bereitzustellen. Ein aktueller Standort für das Fahrzeug 100 kann eine triangulierte Position, eine Breiten-/Längenposition, X- und Y-Koordinaten oder jede andere Notation sein, die die geografische Position des Fahrzeugs 100 anzeigt.
-
In bestimmten Ausführungsformen ist das Navigationssystem 108 als ein GPS implementiert, das ein Kartenmodul beinhaltet, das die Straßenkrümmung und die Rate der Krümmungsänderungsdaten speichert. In diesem Szenario liefert das Navigationssystem 108 Krümmungsdaten der Straße vor dem autonomen Fahrzeug 100, wenn ein GPS-Standort dem Kartenmodul zugeführt wird.
-
Die eine oder die mehreren Kameras 110 sind auf geeignete Weise konfiguriert, um Bilder außerhalb des Fahrzeugs 100 zu erfassen, und diese Bilddaten werden vom Steuersystem 102 verwendet, um eine vorhergesagte Bahn des Fahrzeugs und eine theoretische Bahn (d. h. eine gewünschte Trajektorie) für das Fahrzeug 100 und die Positionierung des Fahrzeugs 100 innerhalb der Fahrspurmarkierungen auf der Straße, auf der das Fahrzeug fährt, aufrechtzuerhalten. Jede der einen oder mehreren Kameras 110 kann die Fähigkeit haben Standbilder und/oder Videobilder zu erfassen.
-
Die eine oder mehreren Kameras 110 erkennen und melden die linke und rechte Fahrspurmarkierung als zwei Polynome. Die eine oder die mehreren Kameras 110 erkennen und melden auch Objekte (z. B. andere Autos) innerhalb der Ansicht der einen oder mehreren Kameras 110. Sobald Bilder von einer Kamera erfasst sind, können die Bilder gespeichert oder übertragen werden.
-
Die Mehrzahl der Fahrzeug-Bordsensoren 112 kann Geschwindigkeitssensoren, Gierratensensoren, Radarsensoren, Inertialmessungssensoren, Vorderradwinkelsensoren, Hinterradwinkelsensoren und jeden anderen Sensor an Bord des Fahrzeugs 100 beinhalten, die verwendet werden können, um Daten bereitzustellen, die mit der autonomen Steuerung des Fahrzeugs 100 im Zusammenhang stehen. In einigen Ausführungsformen werden Langstreckenradarsensoren (LRRs nach Long Range Radar Sensors) und Kurzstreckenradarsensoren (SRRs nach Short Range Radar Sensors) hauptsächlich zum Erfassen von Objekten innerhalb der Sensorerkennungsnähe zum autonomen Fahrzeug 100 verwendet.
-
Das Fahrzeugtrajektorie-Berechnungsmodul 114 ist auf geeignete Weise konfiguriert, um einen „endgültigen“ Einschlagbefehl zu berechnen, der geeignet ist, um das Fahrzeug 100 in Richtung und durch die theoretische Bahn (d. h. die gewünschte Trajektorie) im Einsatz durch das Fahrzeug 100 zu manövrieren. Das Fahrzeugtrajektorie-Berechnungsmodul 114 verwendet berechnete Parameter, Fahrzeugsensordaten, seitliche Versatzfehlerdaten und Einschlagwinkeldaten, um den endgültigen Einschlagbefehl zu berechnen, der erforderlich ist, um das Fahrzeug 100 an die gewünschte Trajektorie zurückzubringen. Der endgültige Einschlagbefehl kann auf eine Hinterradeinschlag-Vorrichtung, eine Vorderradeinschlag-Vorrichtung, eine Bremsdifferentialvorrichtung oder jede andere Art von Einschlagvorrichtung 116 anwendbar sein, die verwendet wird, um das Fahrzeug 100 über das Steuersystem 102 autonom zu betreiben.
-
Bei exemplarischen Ausführungsformen des Steuersystems 102 verwendet das Fahrzeugtrajektorie-Berechnungsmodul 114 (i) Fahrspurmarkierungsdaten von der einen oder mehreren Kameras 110; (ii) Krümmungsdaten, die vom Navigationssystem 108 (z. B. dem GPS- und dem Kartenmodul) erfasst werden; (iii) Objektdaten, die von der einen oder mehreren Kameras 110 und den Fahrzeug-Bordsensoren 112 (z. B. LRRs und SRRs) als Teil einer Sensorfusionsalgorithmik erfasst werden, um Trajektoriekoordinaten einer imaginären oder theoretischen Mittellinie für die aktuelle Fahrspur vorherzusagen. Die vorhergesagten Trajektorienkoordinaten werden den nachgeschalteten Steuerungen als Polynom y = f(x) in den aktuellen Fahrzeugkoordinaten zur Verfügung gestellt.
-
In der Praxis können das Fahrzeugtrajektorie-Berechnungsmodul 114 mit mindestens einem Prozessor 104 implementiert sein (oder mit diesem zusammenwirken), um zumindest einige der hierin im Detail beschriebenen Funktionen und Vorgänge durchzuführen. In dieser Hinsicht kann das Fahrzeugtrajektorie-Berechnungsmodul 114 als auf geeignete Weise konzipierte Verarbeitungslogik, Anwendungsprogrammcodes oder dergleichen ausgeführt werden.
-
Die Einschlagvorrichtung 116 ist so konfiguriert, um das Fahrzeug gemäß dem endgültigen Einschlagwinkel-Befehl, der durch das Steuersystem 102 vorgesehen ist, autonom zu manövrieren. Die Einschlagvorrichtung 116 kann unter Verwendung einer Vorderradeinschlag-Vorrichtung, einer Hinterradeinschlag-Vorrichtung, einer Differentialbremsvorrichtung oder jeder anderen Geräteausstattung an Bord des Fahrzeugs 100 implementiert werden, das betreibbar ist, um das Fahrzeug 100 als Teil einer autonomen Funktion des Fahrzeugs 100 zu lenken oder zu manövrieren.
-
2 ist ein Flussdiagramm zur Darstellung einer Ausführungsform eines Verfahrens 200 zum Durchführen eines autonomen Fahrzeugbetriebs. Die verschiedenen auszuführenden Aufgaben können im Zusammenhang mit dem Verfahren 200 durch Software, Hardware, Firmware oder eine beliebige Kombination davon ausgeführt werden. Zu Veranschaulichungszwecken kann sich die folgende Beschreibung des Verfahrens 200 auf Elemente beziehen, die vorstehend in Verbindung mit 1 erwähnt wurden. In der Praxis können Abschnitte des Verfahrens 200 durch verschiedene Elemente des beschriebenen Systems ausgeführt werden. Es ist zu bemerken, dass das Verfahren 200 eine beliebige Anzahl an zusätzlichen oder alternativen Aufgaben beinhalten kann, die in 2 aufgeführten Aufgaben müssen nicht in der angegebenen Reihenfolge ausgeführt werden, und das Verfahren 200 kann in ein größeres Verfahren oder einen größeren Prozess mit zusätzlicher Funktionalität integriert werden, die hierin nicht im Detail beschrieben sind. Darüber hinaus könnte eine oder mehrere der in 2 gezeigten Aufgaben aus einer Ausführungsform eines des Verfahrens 200 ausgelassen werden, solange die beabsichtigte Gesamtfunktionalität erhalten bleibt.
-
Zur Vereinfachung und Klarheit der Beschreibung wird angenommen, dass das Verfahren 200 mit dem Erkennen eines Fehlerzustandes einer elektrischen Servolenkungs(EPS)-Vorrichtung an Bord des Fahrzeugs beginnt (Schritt 202). Im Allgemeinen bewegt sich das Fahrzeug entlang einer Bahn oder einer Trajektorie, wenn ein Fehlerzustand auftritt, der das Fahrzeug von der definierten Bahn ablenkt und möglicherweise zu einer unkontrollierten Position des Fahrzeugs führt. Dadurch entsteht ein Versatz zwischen der definierten Bahn und der tatsächlichen Fahrzeugposition. Bei einigen Ausführungsformen weist eine Vorderradeinschlag-Vorrichtung und/oder eine Hinterradeinschlag-Vorrichtung eine Fehlfunktion auf, wird bei einem bestimmten Winkel verriegelt oder weist einen anderen Fehlerzustand auf, wodurch die Vorder- oder Hinterradeinschlag-Vorrichtung für den autonomen Betrieb des Fahrzeugs nicht funktional ist. Als Reaktion auf den Fehlerzustand und um eine potentiell höhere Querbeschleunigung und eine sich schnell ändernde Längsgeschwindigkeit, die aus dem Fehlerzustand resultiert, zu berücksichtigen, werden die Schritte 204-212 des Verfahrens 200 ausgelöst.
-
Anschließend erfasst das Verfahren 200 Eingangstrajektoriedaten für den autonomen Betrieb des Fahrzeugs (Schritt 204). Die Eingangstrajektoriedaten wurden zuvor anhand von Bildern von Fahrspurmarkierungen auf der Straße berechnet, die von einem Fahrzeug-Bordkamerasystem erfasst wurden. Die Eingangstrajektoriedaten beinhalten eine erste Bahn zwischen den Fahrspurmarkierungen, damit das Fahrzeug fahren kann.
-
Das Verfahren 200 berechnet dann einen vorgesteuerten Hinterradeinschlag-Winkel anhand der Eingangstrajektoriedaten (Schritt 206). Hier berechnet das Verfahren 200 eine gewünschte Bahn (d. h. eine theoretische Trajektorie) für das Fahrzeug, das Krümmungsdaten, Fahrtrichtungsdaten und seitliche Versatzdaten beinhaltet, die auf den Eingangstrajektoriedaten basieren. Das Verfahren 200 erhält auch eine Längsbeschleunigung für das Fahrzeug und einen Vorderradeinschlag-Winkel für das Fahrzeug und berechnet den vorgesteuerten Hinterradeinschlag-Winkel unter Verwendung der Krümmungsdaten, einer Längsbeschleunigung und eines Vorderradeinschlag-Winkels.
-
Anschließend berechnet das Verfahren 200 ein Rückkopplungssignal des Hinterradeinschlag-Winkels (Schritt 208). Das Verfahren 200 erhält die Fahrzeugsensordaten, die mindestens eine Quergeschwindigkeit des Fahrzeugs und eine Gierrate des Fahrzeugs umfassen. Das Verfahren 200 berechnet auch zusätzliche berechnete Parameter, einschließlich mindestens den vorgesteuerten Hinterradeinschlag-Winkel, den Fahrtrichtungsdaten, den seitlichen Versatzdaten, dem Vorderradeinschlag-Winkel, einer Echtzeit-Kostenfunktion und Echtzeit-Zustandsraummatrizen. Das Verfahren 200 berechnet auch einen integralen Zustand, um einen seitlicher Versatzfehler zu akkumulieren. An dieser Stelle im Verfahren 200 ist der Vorderradeinschlag verriegelt. Das Verfahren 200 berechnet dann das Rückkopplungssignal unter Verwendung der Fahrzeugsensordaten, der berechneten Parameter und des seitlichen Versatzfehlers.
-
Während der Berechnung des Rückkopplungssignals (Schritt 208) behandelt das Verfahren 200 den angewiesenen vorgesteuerten Hinterradeinschlag-Winkel und den tatsächlichen Vorderradeinschlag-Winkel als Störungen der Steuerarchitektur und berechnet das Rückkopplungssignal des vorgesteuerten Hinterradeinschlag-Winkels unter Verwendung von linearen quadratischen Regler-(LQR nach Linear Quadratic Regulator)-Strategien und/oder modellprädiktiven Steuerungs (MPC)-Strategien als Reaktion auf die Störungen.
-
Das Verfahren 200 berechnet einen endgültigen Einschlagwinkel-Befehl unter Verwendung des angewiesenen vorgesteuerten Hinterradeinschlag-Winkels und des Rückkopplungssignals (Schritt 210). Hier kombiniert das Verfahren 200 den vorgesteuerten Hinterradeinschlag-Winkel und das Rückkopplungssignal, um einen endgültigen Einschlagwinkel-Befehl zu erstellen.
-
In einem Beispiel ist das Verfahren 200 so konfiguriert, um eine Differentialbremse zusätzlich zum Hinterradeinschlag anzuweisen. Das Verfahren 200 berechnet zuerst den Bremsbefehl und dann den Hinterradeinschlagbefehl unter Verwendung eines aktuellen seitlichen Versatzwertes und das Verfahren 200 subtrahiert dann den von der Differentialbremse empfangenen Aufwand. Nach Beendigung dieser Schritte überträgt das Verfahren 200 den Hinterradeinschlagbefehl an den Hinterradeinschlag und den Bremsbefehl an die Differentialbremse. Im aktuellen Verfahren 200 verhält sich die Vorwärtskopplung ähnlich wie die Differentialbremse, mit dem Vorbehalt, dass die Vorwärtskopplung kein anderes Stellglied ist, jedoch auf dasselbe Hinterradeinschlagstellglied angewendet wird. Hier addiert das Verfahren 200 die den vorgesteuerten Befehl an den gesamten Hinterradeinschlagbefehl. Nach Berechnung des endgültigen Einschlagwinkel-Befehls, betreibt das Verfahren 200 eine Einschlagvorrichtung des Fahrzeugs mithilfe des endgültigen Einschlagwinkel-Befehls, um das Fahrzeug gemäß des endgültigen Einschlagwinkel-Befehls autonom zu manövrieren (Schritt 212).
-
3 ist ein Flussdiagramm 300 einer exemplarischen Ausführungsform eines konzeptionellen Rahmens für das Verfahren 200 von 2. Es ist zu bemerken, dass 3 eine vereinfachte Ausführungsform des Verfahrens 200 von 2 darstellt und dass einige Implementierungen des Flussdiagramms 300 zusätzliche Elemente oder Komponenten beinhalten können. Das Flussdiagramm 300 beinhaltet verschiedene Komponenten eines Steuersystems zum autonomen Einschlagen eines Fahrzeugs, einschließlich ohne Einschränkung: eine Bahnfusionssteuerung 302, eine Bahnplanungssteuerung 304, eine quasi-vorgesteuerte Fahrspurhalteteuerung 312, eine modellprädiktive Steuerungs (MPC)-Rückkopplung-Fahrspurhaltesteuerung 318 und eine seitliche Versatzfehlersteuerung 328. Jeder dieser Steuerungen kann an Bord eines Fahrzeugs mit einem oder mehreren Bordcomputersystemen und/oder elektronischen Steuergeräten (ECUs) implementiert werden.
-
Die Bahnfusionssteuerung 302 ist betreibbar, um eine vorhergesagte Bahn oder eine Trajektorie für das Fahrzeug zu bestimmen oder um die vorhergesagten Trajektoriedaten von einer externen Quelle zu erhalten. Die Bahnplanungssteuerung 302 liefert die vorhergesagten Trajektoriedaten an die Bahnplanungssteuerung 304 und die Bahnplanungssteuerung 304 führt dann Berechnungen durch, um eine gewünschte Bahn (d. h. theoretische Trajektorie) zu erzeugen. Die gewünschte Bahn beinhaltet mehrere (x, y) Koordinaten basierend auf aktuellen Koordinaten des Fahrzeugs und den erhaltenen vorhergesagten Bahndaten. Der Ausgang der Bahnplanungssteuerung 304 beinhaltet eine gewünschte Krümmung 306, eine gewünschte Fahrtrichtung 308 und einen gewünschten seitlichen Versatz 310. Die gewünschte Fahrtrichtung 308 beinhaltet den Winkel der gewünschten Bahn und die gewünschte Krümmung 306 ist eine Ableitung der gewünschten Fahrtrichtung 308.
-
Die quasi-vorgesteuerte Fahrspurhalteteuerung 312 empfängt Eingangssignale einschließlich der gewünschten Krümmung 306 und einem Vorderradeinschlag-Winkel 314. Wie zuvor beschrieben, wird die gewünschte Krümmung 306 durch die Bahnplanungssteuerung 304 berechnet. Der Vorderradeinschlag 314 kann direkt von einem Vorderradeinschlag-Winkelsensor an Bord des Fahrzeugs erhalten werden. Die quasi-vorgesteuerte Fahrspurhalteteuerung 312 erzeugt ein Ausgangssignal, das einen vorgesteuerten Hinterradeinschlag-Winkelbefehl 316 beinhaltet, wobei die gewünschte Krümmung 306 und der Vorderradeinschlag-Winkel 314 verwendet werden.
-
Die quasi-vorgesteuerte Fahrspurhalteteuerung
312 führt eine vorgesteuerte Berechnung durch, um einen Hinterradeinschlag-Winkel (d. h. den vorgesteuerten Hinterradeinschlag-Winkelbefehl
316) unter Verwendung der folgenden Gleichung zu bestimmen: δ
R = -(L * ρ + K * V
2 * ρ) + δ
F, wobei p die gewünschten Bahnkrümmung
306 ist,
wobei δ
R das Hinterradeinschlag-Winkel ist, wobei L die Länge des Fahrzeugs ist, wobei V die Geschwindigkeit des Fahrzeugs ist und wobei Order Vorderradeinschlag-Winkel ist;
wobei K = K
us + K
us,SAT + K
us,LAT + K
us,LFCS, wobei K der Untersteuerungskoeffizient ist, K
us,SAT ein Untersteuerungskoeffizient für Rückstellmoment ist, wobei K
us,LAT ein Untersteuerungskoeffizient für seitliche Kraftübertragung ist und wobei K
us,LFCS ein Untersteuerungskoeffizient für einen elastischen Seitenkrafteinschlag ist;
wobei
wobei
wobei p = die pneumatische Spur;
wobei
wobei
-
Hier wird der Untersteuerungskoeffizient in Abhängigkeit der gewünschten Krümmung 306 anstelle der tatsächlichen Krümmung dargestellt. Dies ist für den autonomen Steuerbefehl geeignet, wodurch die positive Rückkopplungsschleife eliminiert wird, die ansonsten unter Verwendung des durch die Fahrdynamik vorgesehenen Untersteuerungskoeffizienten erzeugt werden würde.
-
Die MPC-Rückkopplung-Fahrspurhaltesteuerung 318 empfängt Eingangssignale einschließlich des vorgesteuerten Hinterradeinschlag-Winkelbefehls 316, des gewünschten Fahrtrichtung 308, des gewünschten seitlichen Versatzes 310, der Vorderradeinschlag-Winkels 314, einer Echtzeit-Kostenfunktion 320, Echtzeit-Zustandsraummatrizen 322 sowie Fahrzeugsensordaten, die eine Quergeschwindigkeit 324 und eine Gierrate 326 und seitliche Versatzfehlerdaten 330 beinhalten.
-
Die Echtzeit-Kostenfunktion
320 und die Echtzeit-Zustandsraummatrizen
322 werden unter Verwendung eines 2-DOF-linearisiertem Fahrradmodells + einer 2-DOF-Straßenversatz und -Fahrtrichtung unter Verwendung der folgenden Gleichungen berechnet:
wobei:
wobei v
x die Längsgeschwindigkeit in Metern pro Sekunde ist; wobei v
y die Quergeschwindigkeit in Metern pro Sekunde ist; wobei r die Gierrate in Radianten pro Sekunde ist; wobei δ(t) der tatsächliche Einschlagwinkel der Vorderräder in Radianten ist; wobei Φ
r(t) der Gierwinkel in Bezug auf die Straße in Radianten ist; wobei y
r(t) der lateralen Versatz des Schwerpunkts des Fahrzeugs von der Fahrspur in Metern ist; wobei a der Abstand des Schwerpunkts des Fahrzeugs zur Vorderachse in Metern ist; und b der Abstand des Schwerpunkts des Fahrzeugs zur Hinterachse in Metern ist. Diese und andere Berechnungen können zusätzlich im Detail in der bereits eingangs genannten
DE 10 2013 200 132 A1 (US-Patent Nr.
US 8 903 607 B2 ) beschrieben sein.
-
Die folgenden Gleichungen dienen zur Minimierung der LQR-Kosten:
wobei z̃(k) = ẑ(k) - z
des(k), Q
N ≥ 0,Q ≥ 0,R > 0, und u der Einschlagwinkel-Befehl ö ist;
mit der Definition der Steuerungsverstärkungsmatrizen K(k) und L(k),
die zusätzliche Sequenz v(k):
und die Riccati-Gleichung:
-
Um der MPC-Rückkopplung-Fahrspurhaltesteuerung
318 eine Lernfähigkeit hinzuzufügen, wird die ursprüngliche Vier-DOF-Zustandsraummatrix mit einem integralen Zustand erweitert:
-
AI = [1 0 0 0] oder mit anderen Worten, der Fehler ist nur auf dem seitlichen Versatz integriert, da x = [y φ vy r]T. Zusätzlich wird, da die MPC-Rückkopplung-Fahrspurhaltesteuerung 318 abgemessen ist, um den zukünftigen Integralfehler zu optimieren, der vergangene Integralfehler dem Anfangszustand des integralen Zustands hinzugefügt.
-
Zusätzlich,
wobei Δc
0 = c
0(0) - c
0(-T), und
wobei T die Samplezeit ist.
Die K1-, K2-, K3-Werte sind Kalibrierungsschwellenwerte.
-
Wie oben beschrieben, ist c0 die Differenz in c0 zwischen einem aktuellen Zeitwert und dem letzten Samplezeit-Wert. Der c0 -Wert ist der seitliche Versatz des Fahrzeugs von der Mittellinie. Das Integral reicht von -Unendlichkeit bis t=0 (d. h., die aktuelle Zeit). Das Integral wird auf null zurückgesetzt, wenn der Absolutwert c0 eine kleine Zahl ist, die anzeigt, dass sich das Fahrzeug nahe der Mittellinie befindet. Zusätzlich wird das Integral nur akkumuliert, wenn der Absolutwert co größer ist als ein Schwellenwert K3.
-
Die seitliche Versatzfehlersteuerung 328 stellt der MPC-Rückkopplung-Fahrspurhaltesteuerung 318 die seitlichen Versatzfehlerdaten 330 bereit. Die seitliche Versatzfehlersteuerung 328 empfängt Eingangssignale einschließlich des Vorderradeinschlag-Winkels 314 und verwendet einen integralen Zustand, um seitliche Versatzfehlerdaten 330 zu akkumulieren, die dann als ein Ausgangssignal an die MPC-Rückkopplung-Fahrspurhaltesteuerung 318 geliefert werden.
-
Die MPC-Rückkopplung-Fahrspurhaltesteuerung 318 erzeugt ein Ausgangssignal, das einen Rückkopplung-Hinterradeinschlag-Winkelbefehl (d. h. ein Rückkopplungssignal) beinhaltet. Der vorgesteuerte Hinterradeinschlag-Winkel 316 ist dann mit dem Rückkopplung-Hinterradeinschlag-Winkelbefehl 332 kombiniert, um einen „endgültigen“ Hinterradeinschlag-Winkelbefehl oder in anderen Worten, einen kombinierten Hinterradeinschlag-Winkelbefehl 334 zu erzeugen. Obwohl dieses exemplarische Ausführungsbeispiel des Flussdiagramms 300 einen kombinierten Hinterradeinschlag-Winkelbefehl 334 zur Verwendung bei der Steuerung einer Hinterradeinschlag-Vorrichtung für das Fahrzeug erzeugt, ist zu bemerken, dass das Flussdiagramm 300 einen Vorderradeinschlag-Winkelbefehl, einen Differentialbremsen-Betriebsbefehl oder jeden anderen Befehl erzeugen kann, der für das Einschlagen des Fahrzeugs geeignet ist.
-
Die Techniken und Technologien können hierin in Bezug auf die funktionellen und/oder logischen Blockkomponenten und unter Bezugnahme auf symbolische Darstellungen von Vorgängen, Programmverarbeitungen und Funktionen beschrieben werden, die von verschiedenen Computerkomponenten oder Vorrichtungen durchgeführt werden können. Diese Vorgänge, Programme und Funktionen werden zuweilen als Computer-ausgeführt, computerisiert, Softwareimplementiert oder Computer-implementiert bezeichnet. In der Praxis kann eine oder mehrere Prozessoreinrichtungen die beschriebenen Vorgänge, Programme und Funktionen durch Manipulieren elektrischer Signale, die Datenbits an Speicherstellen im Systemspeicher darstellen, sowie andere Verarbeitung von Signalen durchführen. Die Speicherstellen, an denen Datenbits gehalten werden, sind physikalische Orte, die bestimmte elektrische, magnetische, optische oder organische Eigenschaften, die den Datenbits entsprechen, aufweisen. Es sollte beachtet werden, dass derartige Blockkomponenten aus einer beliebigen Anzahl an Hardware, Software und/oder Firmware-Komponenten aufgebaut sein können, die dafür konfiguriert sind, die spezifischen Funktionen auszuführen. So kann beispielsweise eine Ausführungsform eines Systems oder einer Komponente verschiedene integrierte Schaltungskomponenten, z. B. Speicherelemente, digitale Signalverarbeitungselemente, Logikelemente, Wertetabellen oder dergleichen, einsetzen, die eine Vielzahl von Funktionen unter der Steuerung eines oder mehrerer Mikroprozessoren oder anderer Steuergeräte ausführen können.
-
Wenn in Software oder Firmware implementiert, sind verschiedene Elemente der hierin beschriebenen Systeme im Wesentlichen die Codesegmente oder Anweisungen, die die verschiedenen Aufgaben ausführen. Die Programm- oder Codesegmente können in einem prozessorlesbaren Medium gespeichert werden oder durch ein Computerdatensignal, das in einer Trägerwelle über ein Übertragungsmedium oder Kommunikationspfad verkörpert wird, übertragen werden. Das „computerlesbare Medium“, „prozessorlesbare Medium“ oder „maschinenlesbare Medium“ kann jedes Medium umfassen, das Informationen speichern oder übertragen kann. Beispiele des prozessorlesbaren Mediums umfassen eine elektronische Schaltung, eine Halbleiterspeichervorrichtung, einen ROM, einen Flash-Speicher, einen löschbaren ROM (EROM), eine Diskette, eine CD-ROM, eine optische Platte, eine Festplatte, ein faseroptisches Medium, eine Hochfrequenz(RF)-Verbindung oder dergleichen. Das Computerdatensignal kann jedes Signal umfassen, das sich über ein Übertragungsmedium, wie etwa elektronische Netzwerkkanäle, optische Fasern, Luft, elektromagnetische Pfade oder RF-Verbindungen, ausbreiten kann. Die Codesegmente können über Computernetzwerke, wie das Internet, ein Intranet, ein LAN oder dergleichen, heruntergeladen werden.
-
Aus Gründen der Kürze können herkömmliche Techniken im Zusammenhang mit der Signalverarbeitung, Datenübertragung, Signalisierung, Netzwerksteuerung und andere funktionale Aspekte der Systeme (und der einzelnen Betriebskomponenten der Systeme) hierin nicht im Detail beschrieben werden. Ferner sollen die in den verschiedenen hierin enthaltenen Figuren gezeigten Verbindungsleitungen exemplarische funktionale Beziehungen und/oder physikalische Kopplungen zwischen den verschiedenen Elementen darstellen. Es sollte beachtet werden, dass viele alternative oder zusätzliche funktionale Beziehungen oder physikalische Verbindungen in einer Ausführungsform des Gegenstands vorhanden sein können.
-
Einige der in dieser Spezifikation beschriebenen Funktionseinheiten wurden als „Module“ bezeichnet, um insbesondere deren Implementierungsunabhängigkeit zu betonen. So kann die Funktionalität zum Beispiel, die hier als ein Modul bezeichnet wird, vollständig oder teilweise als Hardwareschaltung, die benutzerdefinierte VLSI-Schaltungen oder Gate-Arrays umfasst, serienmäßige Halbleiter, wie Logikchips oder andere diskrete Komponenten, implementiert sein. Ein Modul kann auch in programmierbaren Hardware-Vorrichtungen, wie etwa feldprogrammierbaren Gate-Arrays, programmierbarer Array-Logik, programmierbaren Logikbauelementen oder dergleichen, implementiert sein. Die Module können auch in Software zur Ausführung durch verschiedene Prozessortypen implementiert sein. Ein identifiziertes Modul von ausführbarem Code kann beispielsweise ein oder mehrere physische oder logische Module von Computeranweisungen, die beispielsweise als Objekt, Prozedur oder Funktion organisiert werden können, umfassen. Dennoch müssen die ausführbaren Dateien eines identifizierten Moduls nicht physisch beieinander angeordnet sein, können aber unterschiedliche, an verschiedenen Stellen gespeicherte, Anweisungen umfassen, die, wenn logisch miteinander verbunden, das Modul umfassen und den angegebenen Zweck für das Modul erzielen. Ein Modul eines ausführbaren Codes kann aus einer einzelnen Anweisung oder vielen Anweisungen bestehen und kann sogar über mehrere verschiedene Codesegmente, unter verschiedenen Programmen und über mehrere Speicherbauelemente, verteilt werden. In ähnlicher Weise können Betriebsdaten in jeder geeigneten Form verkörpert und in einer beliebigen geeigneten Art von Datenstruktur organisiert sein. Die Betriebsdaten können als ein einzelner Datensatz gesammelt werden oder können über verschiedene Standorte, einschließlich über verschiedene Speichervorrichtungen, verteilt sein und können zumindest teilweise lediglich als elektronische Signale in einem System oder Netzwerk existieren.