AuF - Antrieb und Fernbedienung
SS 2014
Einleitung
In diesem Artikel werden Arbeiten dokumentiert, welche im Rahmen des SDE Praktikums im SS2014, des MTR Studienganges, durchgeführt wurden. Im Speziellen wird hier auf die Funktion der Fernbedienung eingegangen, durch welche es möglich ist, einen autonomen Ablauf zu unterbrechen und das Fahrzeug manuell zu steuern. Das Team "AuF" besteht aus den Studenten Benjamin Brüne und Alexander Haneke.
Anforderungen des Lastenheftes
Die folgenden Aufgaben sind ein Ausschnitt aus dem Lastenheft, welches vorgegeben ist, und stellt die Anforderungen dar, welche über das Semester erfüllt werden sollen.
Ausgangssituation
Vor Beginn des Semesters war das Fahrzeug durch Vorarbeiten früherer Semester in folgendem Zustand:
- Das Fahrzeug war mit einem Empfänger für die Fernbedienungssingale ausgestattet.
- Eine Reaktion auf Fernbedienungssignale war teilweise gegeben.
- Das Lenken per Fernbedienung war bereits eingeschränkt möglich.
- Auf das Gasgeben per Fernbedienung reagierte das Fahrzeug nicht.
Projektplan
Um die Umsetzung der Aufgaben zu planen wurde ein Projektplan erstellt,damit der Fortschritt, sowie die einhaltung des Zeitplans im Überblick ist.
Projekttagebuch
KW 18:
Einarbeitung in die Vorarbeiten des letzten Semesters.
Dazu zählte:
1.) Einarbeitung in das Matlab-Simulinkmodell
2.) Einarbeitung in das dSpace ControlDesk Modell
3.) Kennenlernen der Fernbedienungsfunktion
4.) Auslesen der Fernbedienungssignale am Empfänger mit Hilfe eines Oszilloskops
KW 19:
5.) Verfolgung der Signalflüsse von Lenkwinkel und Gas
6.) Berichtigung des falschen Signalflusses Gas
7.) Verlagerung der Schleichfahrtfunktion in den Aktorblock
8.) Anpassung der Begrenzungsparameter für die Schleichfahrtfunktion
KW 20:
9.) Erstellung einer geeigneten Diagnoseseite in ControlDesk
10.) Dokumentation und Beschriftung Simulink
11.) Anpassung der Begrenzungsparameter entfernt, durch Lookup Table ersetzt
KW 21:
Spezialworkshop Fernbedienung
KW 22:
12.) Linearisierung der Geschwindigkeit
13.) Signalfilterung Fernbedienung (Angeschaltet)
14.) Simulinkmodell bereinigt
KW 23:
15.) Notstopfunktion im Totbereich (Lookup Table)
16.) Geradestellung der Spur (Software)
17.) Teilsingalfilterung Fernbedienung (Ausgeschaltet)
KW 25:
18.) Dokumentation im Wiki
19.) ControlDeskseite überarbeiten
Optimierung der Fernbedienungsfunktionen
Berichtigung des Signalwegs
Bei der Verfolgung der für die Fernbedienung relevanten Signale im Simulinkmodell fiel auf, dass das Signal SenRti_PwmBreiteGas_f64 nicht zum Aktor durchgeleitet wird. Fälschlicherweise wurde das Signal SenRti_PwmFreqGas_f64 mit dem Aktor verbunden, sodass eine Ansteuerung des Antriebs mit der Fernbedienung unmöglich war. Dieser Fehler wurde durch die Neuverlegung des Signals behoben, sodass das Signal ordnungsgemäß am Aktor ankommt und der Antrieb durch die Fernbedienung bedient werden kann.
Implementierung von Test- und Wettbewerbsmodi
Das Fahrzeug soll über die Fernbedienung in 2 Modi gesteuert werden: - Ein Wettbewerbsmodus, in dem das Fahrzeug bei Eingriff der Fernbedienung nur 0,3 m/s in beide Richtungen fahren kann. - Ein Testmodus, in dem das Fahrzeug bei Eingriff der Fernbedienung 1,0 m/s in beide Richtungen fahren kann.
Um das zu ermöglichen, wurde zunächst die Variable PAR_Schelichmodus in die start.m-Datei implementiert. Diese Variable schaltet einen Schalter im Simulinkmodell, der zwischen beiden Modi schalten soll. Für beide Modi wurden dann jeweils Saturation-Blöcke eingefügt, welche das Signal nach oben und unten begrenzen.
Im Weiteren stellte sich raus, dass die Steuerung über die Fernbedienung nicht stufenlos funktioniert, sondern lediglich eine An/Aus-Funktion bietet. Im Testmodus sollte das Fahrzeug jedoch auch stufenlos zu beschleunigen sein. Um das zu erreichen, wurde anstelle des Saturation-Blocks eine Lookup-Table implementiert und so dimensioniert, dass das Fernbedienungssignal das Fahrzeug stufenlos beschleunigen kann.
Da das Fahrzeug bei der Fahrt durch den Regler mit der Fernbedienung gestoppt werden soll, wurde sich darauf geeinigt, dass um die Nullstellung der Fernbedienung ein Bereich freigelegt wird, in dem das Auto zwar durch die Fernbedienung angesprochen wird, aber nicht fährt. So ist es möglich, das Fahrzeug mit der Fernbedienung zum Stehen zu kriegen.
Anschließend wurde auch eine Lookup Table in den Wettbewerbsmodus eingebaut, damit das Fahrzeug auch im Wettbewerb gestoppt werden kann. Auch hier wurde ein Totbereich erstellt, in dem das Fahrzeug zwar angesprochen wird, sich jedoch nicht bewegt.
Somit ist das sicherheitsrelevante Stoppen des Fahrzeugs funktionsfähig.
Erstellung einer geeigneten Diagnoseseite in ControlDesk
Um die Fernbedienungsfunktionen korrekt darzustellen und zu analysieren, wurde eine geeignete Seite in ControlDesk erstellt. Diese Seite beinhaltet die PWM-Breite des Eingangssignales des Antriebs und des Lenkwinkels, sowie die Ausgangssignale an die Aktoren. Somit kann immer nachvollzogen werden, welche Änderung welche Auswirkung auf das Verhalten des Fahrzeugs hat. Außerdem wurden Anzeigen für die Aktivitätsbits der Lenkung, des Antriebs und der Fernbedienung in Allgemeinen erstellt, welche die Diagnose von Fehlern übersichtlich machen. Zudem wurde eine Umstellmöglichkeit vom Wettbewerb- in den Testmodus erstellt.
Filterung des Signals bei ausgeschalteter Fernbedienung
Da das Abfragen des An/Aus-Schalters durch den Empfänger nicht möglich ist, wurden zunächst die Störsignale bei ausgeschalteter Fernbedienung analysiert. Es wurde festgestellt, dass die Eingangswerte größtenteils in einem Bereich unterhalb von 0.002 liegen. Diese Signale lassen sich durch eine einfache if-Bedingung filtern, in dem man Signale unterhalb von 0.002 gleich Null setzt. Außerdem entstehen teilweise kurze Peaks, die in einem Bereichoberhalb 0.1 liegen und sich somit von dem Signal der üblichen Aktorenansteuerung nicht unterscheidet. Diese Signale lassen sich leider momentan noch nicht ausreichend herausfiltern. Die momentane Filterung funktioniert so, dass das Signal abgetastet wird, und erst durchgeschaltet wird, wenn es eine bestimmte Zeit anliegt. Mit Erhöhung von könnte man eine bessere Filterung erzielen, allerdings würde sich dies negativ auf die Reaktionszeit auswirken.
Zusammenfassung
Fazit
Zum Ende der Projektphase konnte die vollständige Funktion der Fernbedienung im eingeschalteten Zustand realisiert werden. Es ist nun möglich, das Fahrzeug zu bewegen und zu lenken. Der Noteingriff während der Fahrt mit eingeschalteter Regelung führt nun zunächst zum Stopp des Fahrzeugs, anschließend kann der Benutzer das Fahrzeug wunschgemäß steuern. Der Eingriff wird durch Blinken einer blauen Signal-LED am höchsten Punkt des Fahrzeugs signalisiert. Somit sind alle Punkte des Lastenheftes realisiert worden.
Ausblick
Die Fernbedienungsfunktionen sind nun vollständig gegeben. Es sollte jedoch noch eine verbesserte Filterung der Signale bei ausgeschalteter Fernbedienung implementiert werden, um das Fahrzeug zu schützen. Auch die Filterung des Signals bei eingeschalteter Fernbedienung funktioniert nicht immer optimal. Die Störfälle sind nicht reproduzierbar, wodurch sich eine Analyse des Störsignals kaum durchführen lässt. Außerdem können die Höchstgeschwindigkeiten der Wettbewerb- und Testmodi erst korrekt eingestellt werden, wenn das Auslesen der Geschwindigkeit über die Hallsensoren fehlerfrei funktioniert. Bis dahin können diese Werte nur empirisch ermittelt werden.
Für die Zukunft sollte man überlegen, ob die eingebaute Hardware eine zufriedenstellende Lösung ist.
WS 2014/2015
Einleitung
Im Wintersemester 2014/15 wurden die Arbeiten aus dem vorherigen Semester weitergeführt. Nachfolgend werden die Ergebnisse dokumentiert und erläutert. Die Ausgangssituation entspricht dem beschriebenen Stand aus Punkt 1.6 sowie 1.7.
Nachfolgend werden zunächst die gestellten Aufgaben aufgelistet.
Anschließend folgt eine Lösungsdokumentation mit abschließender Zusammenfassung
Anforderungen des Lastenheftes
Die nachfolgenden Aufgaben wurden für das Semester gestellt, und es galt, diese bis zum 15.01.2015 abzuschließen
Aufgabenlösungen
Filterung der Fernsteuerungssignale
Die Filterung des Fernsteuerungssignals wurde nach neuen Erkenntnissen, auf dem Stand des SS2014 belassen. Dies geschah aus folgenden Gründen:
1.) Eine stärkere Filterung hätte Nachteile, welche das Signal beeinflussen. So würde sich beispielsweise eine Verzögerung einstellen, welche zur Folge hätte, dass das Fahrzeug nicht rechtzeitig unter Kontrolle gebracht werden könnte und dadurch ein Schaden entsteht.
2.) Die Störungen bei ausgeschalteter Fernbedienung lassen sich nicht vermeiden, da diese im Arbeitsbereich liegen. Eine Filterung würde die beschriebene Auswirkung der Verzögerung aus Punkt 1 nach sich ziehen.
3.) Werden die folgenden grundlegenden Dinge beachtet, ist das Signal nahezu störungsfrei:
- Achten Sie auf die Ladung der Fernbedienungsbatterien. Diese sollten immer voll sein.
- Achten Sie darauf, dass das Antennenkabel nicht um Motoren oder andere störende Bauteile gewickelt ist.
- Achten Sie darauf, dass das Antennenkabel 2-3 cm aus dem Führungsröhrchen hinaus ragt.
- Achten Sie darauf, dass die Fernbedienung immer Sichtkontakt zum Fahrzeug hat.
- Achten Sie darauf, dass die Trimmräder an der Fernbedienung nicht verstellt sind. Ein optimaler Werte, bei ruhender Lenkstellung, ist 0,0973.Siehe hierzu das nächste Kapitel.
Lenkwinkelkalibrierung
Damit die Lenkung in der Bahnplanung und Spurführung, sowie beim Einparken, gezielt eingestellt werden kann, musste zunächst eine Kalibrierung durchgeführt werden. Der erste Schritt bestand darin, die Lenkung, in der Nullstellung der Fernbedienung, so einzustellen, dass das Fahrzeug geradeaus fährt. Da dies zu Beginn der Arbeiten nicht der Fall war, wurde zunächst die Vorderachse eingestellt. Zur Feinkalibrierung verfügt die Fernbedienung über sogenannte Trimmräder. Verstellt man diese, ändert sich der Nullpunkt. Ein Nachteil bei dieser Einstellung ist, dass sich dabei der Lenkwinkel in die eine Richtung verkürzt und zur anderen Seite vergrößert. Da zu beiden Seiten gleichermaßen gelenkt werden soll, muss die Vorderachse neu eingestellt werden Dies geschieht über Spurstangen, welche in der folgenden Abbildung rot markiert sind.
Die Spurstangen lassen sich in der Länge verstellen, sodass die Spur eingestellt werden kann. Die erste (obere) Spurstange befindet sich direkt am Servomotor für die Lenkung. Mit dieser lässt sich einstellen, wie weit nach rechts und links eingelenkt werden kann.
Hat man die Spurstange so eingestellt, dass man zu beiden Seiten gleichermaßen lenken kann, betrachtet man die Position der einzelnen Räder an der Vorderachse.
Laufen diese gerade, ist keine weitere Einstellung nötig.
Ansonsten müssen die Rechte und linke Spurstange eingestellt werden.
Da das Fahrzeug nicht über einen Sensor verfügt, welche den Lenkwinkel misst, wurde eine Vorrichtung gebaut um diesen zu bestimmt. In der folgenden Schemazeichnung wurde der Aufbau skizziert.
An die Räder der Vorderachse wurden Stifte montiert und unter dem Fahrzeug wurde ein Blatt Papier platziert.
Lenkt man nun das Fahrzeug manuell mit der Fernbedienung, wird eine Linie erzeugt, welche in der Schemazeichnung grün gekennzeichnet ist.
Anhand dieser Linie lässt sich anschließend der Lenkwinkel pro Rad, in die jeweilige Richtung bestimmen.
Der Lenkwinkel beträgt pro Seite 24 °
Damit der Lenkwinkel auch manuell per Software bestimmt werden kann, wurde der Servomotor per Software angeregt.
Hierbei wurde gleichzeitig der Lenkwinkel sowie die PWM-Breite dokumentiert.
Anschließend wurde das Ergebnis mithilfe einer Lookup Table in die Software implementiert.
Es stellte sich dabei heraus, dass das Verhältnis von Lenkwinkel zu PWM-Breite linear ist, und daher eine Umrechnung sehr einfach durchgeführt werden kann.
Zu finden ist dieser Part unter CCF-online==> AKT - Aktoren - online==> AktRtiPwM - PWM4fach-Modul der RTI-Bloecke
Der Lenkwinkel kann nun in Radiant (SI-Einheit) eingegeben werden, dies wird dann durch die Lookup Table in die entsprechende PWM-Breite umgerechnet und dementsprechend eingestellt.
Des Weiteren kann auf der Hauptseite des Control-Desk-Aufbaus(Projekt:Carolo Cup Fahrzeug ==> Inbetriebnahme) der aktuelle Winkel abgelesen (Nr.1), und auch neu definiert werden (Nr.2).
Kommt es während autonomen Fahrten zu Störungen der Fernbedienung, muss die Einstellung dieser kontrolliert werden.
Für die Feinabstimmung sind 2 Trimmräder vorhanden, welche eingestellt werden können.
Das Rädchen mit der Nummer 1 ist für die Einstellung der Lenk-Range zuständig.
Normalerweise beträgt der Lenkwinkel 24 ° in jede Richtung. Ist die Position verstellt worden und es ist nur noch ein Einschlag von beispielsweise 18 ° möglich, muss die Radstellung passend eingestellt werden. Zur Hilfe kann man die Hauptseite des Control-Desk-Aufbaus verwenden, welche den aktuellen Einschlagwinkel in Grad anzeigt.
Das zweite Rädchen ist für die Abstimmung der Nullposition zuständig.Ist dieser Punkt verstellt, greift die Fernbedienung, durch Störsignale, willkürlich in Regelprozesse ein. Um dies zu vermeiden, sollte die Position so eingestellt werden, dass die gefilterten Störungen keinen Einfluss ausüben können. Dies ist der Fall, wenn der angezeigte Lenkwinkel auf der Control-Desk-Hauptseite ~ 0 ° beträgt, oder die PWM-Breite bei ~ 0,0973 liegt. Die PWM-Breite der Lenkung kann in dem Reiter Fernbedienung HB abgelesen werden.
Geschwindigkeitseinstellung
Nachdem eine Geschwindigkeitseinstellung nach m/s möglich war, wurde die Höchstgeschwindigkeit in den jeweiligen Modis angepasst. Die Vmax beträgt nun im Testmodus 0,3 m/s und im Wettbewerbsmodus 0,1 m/s. Die Umsetzung erfolgt über Lookup Tables (Matlab) sowie Schaltern (Control Desk). Die Lookuo Tables können unter CCF-online==> AKT - Aktoren - online==> AktRtiPwM - PWM4fach-Modul der RTI-Bloecke, Wettbewerbsmodus - Testmodus, gefunden werden
Um die Sattelpunkte bei 0,09 befindet sich das Fahrzeug in Ruhe. Der Bereich von 0,086 - 0,1 wird durch die Vorgabe, auf ca. 0,09 gesetzt. Dies hat zur Folge, dass das Fahrzeug bei einem Eingriff durch die Fernbedienung, zunächst auch in Ruhe versetzt wird. Dadurch hat man als Bediener eine bessere Kontrolle. Drückt man den Gaszug weiter , fängt das Fahrzeug langsam an zu beschleunigen.
Die Art des Modus kann in der start.m Datei, in Zeile 93 geändert werden, oder in Control-Desk auf dem Reiter "Fernbedienung HB", wie weiter oben in Abschnitt "Erstellung einer geeigneten Diagnoseseite in ControlDesk" gezeigt.
Filterung der Objektliste
Damit Hindernisse auf der Fahrbahn erkannt werden und diesen ausgewichen werden kann, wurde dieses Szenario von Herrn Professor Doctor Ulrich Schneider, in einer Simulation umgesetzt.
Die rote Linie zeigt die gefahrene Wegstrecke des Fahrzeuges, pinke Kästchen symbolisieren Hindernisse auf der Fahrbahn.
Werden Hindernisse in der Simulation erkannt, werden diese in einer Objektliste gespeichert. Bei der Fahrt mit dem echten Fahrzeug werden die Objekte mithilfe eines Laserscanners sowie einer Kamera detektiert.
Die folgende Abbildung zeigt eine Objektliste:
Die Eigenschaften von gefunden Objekten werden jeweils in einer Zeile gespeichert.
In der ersten Spalte steht die Objekt-ID.
In der zweiten Spalte befindet sich der X-Abstand in Metern.
In der dritten Spalte befindet sich der Y-Abstand in Metern.
In der vierten Spalte befindet sich die Breite des gefundenen Objektes.In der Simulation ist dies ein statischer Wert.
In der fünften Spalte befindet sich die länge des gefundenen Objektes.In der Simulation ist dies ein statischer Wert.
Spalte sechs und sieben sind momentan ebenfalls statisch und werden in der Simulation nicht verwendet.
Die wichtigen Werte für eine Filterung sind zunächst die Objekt-ID, sowie der X- und Y-Abstand.
Mithilfe der ID wird zunächst registriert, ob ein Objekt gefunden wurde oder nicht. Ist dies der Fall, wird mithilfe eines Kalmanfilters der X- und Y-Abstand gefiltert.
Der Kalman hat den Vorteil, dass er bei Verlust der Detektion, kurfristigem Rauschen oder kurzfristigem Ausfall von Sensoren weiter schätzt, und somit vorgesetzt werden kann. Des Weiteren können weitere Größen geschätzt werden, für welche keine eigenen Sensoren verbaut sind. Beispielsweise wird bei der Filterung des X- und Y-Wertes, gleichzeitig die Richtungsgebundene Geschwindigkeit geschätzt.
Der Aufbau wurde in Matlab/Simulink umgesetzt und ist auf der folgenden Abbildung dargestellt. Finden kann man diesen Part unter : CCF_offline==>SAB - Signalaufbereitung==>SABLIDAR-Kalman
Zunächst werden die relevanten Werte aus der Objektliste gezogen.
Hierzu dient der Matlab-Block: Selector
Anschließend sorgt ein Mux-Block dafür, dass aus den einzelnen X- und Y-Werten ein Vektor erstellt wird.
Ein Switch-Block fragt ab, ob die rausgezogene Objekt-ID, größer 0 ist.
Ist dies der Fall, wird der XY Vektor durch einen Kalman-Block gefiltert, ansonsten nicht.
Der Kalmanblock muss für eine korrekte Funktion, genau auf die Eingangsgrößen eingestellt werden.Die nachfolgende Abbildung zeigt die Einstellmöglichkeiten:
Da wir 2 Einganswerte haben, aus welchem wiederum 2 neue Werte geschätzt werden, muss die Startposition eine 4 x 1 Matrix sein. Der Startwert wird hier bei 0 angesetzt.
In der "Initial consition for estimate error covariance" wird festgelegt, wie genau der bestimmte Startwert ist. Die Covarianz beziffert die Breite der Gausglocke, welche den Bereich der möglichen Position festlegt.
Bei der "State transition matrix" handelt es sich um das Systemmodell. In diesem Beispiel wird das Ruck-Null-Modell verwendet, welches aus der Vorlesung "Multisensorsysteme" bekannt ist.
Die "Process nois covariance" legt fest, inwieweit das Systemmodell genau ist, bzw. wie viel dem Modell vertraut wird.
Die "Measurement matrix" ist das Messmodell. Die Einsen legen fest, welche Eingangswerte gemessen werden. Die "Measurement noise covariance" legt wieder fest, in wie weit dem Modell vertraut wird.
Nachfolgende Grafik, zeigt die erzeugte Trackliste, mit dem Vergleich zur Objektliste:
Die Trackliste besteht momentan nur aus 4 Elementen pro Zeile.
Jede Zeile steht für ein gefundenes Objekt.
Das erste Element ist der gefilterte Y-Wert. Das zweite Element ist der gefilterte X-Wert. Das dritte Element ist die geschätzte Geschwindigkeit in Y-Richtung. Das vierte Element ist die geschätzte Geschwindigkeit in X-Richtung.
Zusammenfassung
Zusammenfassend lässt sich sagen, dass alle Aufgaben aus dem vorherigen Semester fertiggestellt werden konnten, und die Funktionen des Fahrzeugs erweitert wurden. Es ist nun möglich den aktuellen Lenkwinkel abzulesen, sowie diesen gezielt, per Software zu setzen. Dadurch steht einem erfolgreichen Einparkmanöver, sowie einer souveränen Spurführung nichts mehr im Wege.
Des Weiteren wurde die Sicherheit für das Fahrzeug erhöht. Im Testmodus ist nun eine Höchstgeschwindigkeit von 0,3 m/s möglich, der Wettbewerbsmodus wurde nach den Vorgaben des Carolocupreglements, mit 0,1 m/s angesetzt. Weiterhin sorgt der erweiterte Sattelpunkt für ein Stoppen der Fahrzeugbewegung, woraufhin dann gezielt eingegriffen werden kann.
Abschließend wurde in der Simulation, durch einen Kalmanfilter, die Objektlistein eine gefilterte Trackliste umgewandelt Diese wird durch das Bahn- und Spurführungsteam dafür genutzt, Objekten auf der Fahrbahn auszuweichen.
Nächste Schritte
Die Kalmanfilterung sollte zunächst in der Simulation weiter ausgearbeitet werden. Momentan singt die geschätzte Geschwindigkeit bei abnehmendem Abstand, was aber nicht der Fall sein sollte.
Anschließend muss der erprobte Filter in das Online-Modell implementiert und am echten Fahrzeug getestet werden.
Autor: Benjamin Brüne, Alexander Haneke
Siehe auch
→ zurück zum Hauptartikel: Praktikum SDE