AF: Fernbedienung (SenFernb): Unterschied zwischen den Versionen
(223 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
''' | '''Autoren: [[Benutzer:Johann Kismann|Johann Kismann]] & [[Benutzer:Dominik Koenig|Dominik Koenig]]''' <br/> | ||
[[Datei:Fernbedienung+Receiver-Futaba R143F.jpg|thumb|right|550px|Abbildung 1: Fernbedienung+Receiver-Futaba R143F]] | |||
== Primärsensor == | == Primärsensor == | ||
Es besteht bereits ein Artikel zur Fernbedienung, welcher unter folgendem Link aufgerufen werden kann: | Es besteht bereits ein Artikel zur Fernbedienung, welcher unter folgendem Link aufgerufen werden kann: | ||
[[Fahrzeughardware|Fahrzeughardware]] | [[Fahrzeughardware|Fahrzeughardware]] | ||
Für die genauere Betrachtung der Signale kann auf folgenden Artikel zurückgegriffen werden: | |||
[[AMR 2022|AMR 2022]] | |||
Des Weiteren wird für das Empfangen der Signale der Fernbedienung der Receiver R143F der Firma Futaba verwendet (siehe Abbildung 1). | |||
== Messkette == | == Messkette == | ||
<gallery widths="800" heights="540"> | |||
Datei:Messkette-Fernbedienung.jpg|600px|Abbildung 2: Messkette-Fernbedienung | |||
</gallery> | |||
== Systementwurf == | == Systementwurf == | ||
Zeile 12: | Zeile 22: | ||
=== Sensoranschlussplan === | === Sensoranschlussplan === | ||
[[Datei:J6-Empfängerstecker.jpg|thumb|right|400px|Abbildung 3: J6-Empfängerstecker]] | |||
=== | ==== Anschluss des Empfängermoduls an Adapterplatine ==== | ||
Der Anschluss des Empfängers (Futaba F143F) an die Adapterplatine lässt sich in Artikel [[AMR 2022| AMR 2022]] im Kapitel 3.3.5 einsehen. | |||
==== Fahrtenregler ==== | |||
{| class="wikitable" | |||
|+ style = "text-align: left"|Tabelle 1: Anschlussplan Fahrtenregler | |||
! Funktion !! colspan="2" | Kabel-Farbe !! DS1104 !! Pin J6_Empfänger | |||
|- | |||
| GND | |||
! style="background-color: brown;" | | |||
| Braun | |||
| | |||
| style = "text-align: center"| 4 | |||
|- | |||
| VCC-5V | |||
! style="background-color: red;" | | |||
| Rot | |||
| | |||
| style = "text-align: center"| 5 | |||
|- | |||
| PWM-Siganl | |||
! style="background-color: orange;" | | |||
| Orange | |||
| SCAP2 | |||
| style = "text-align: center"| 6 | |||
|} | |||
== | ==== Lenkservo ==== | ||
{| class="wikitable" | |||
|+ style = "text-align: left"|Tabelle 2: Anschlussplan Lenkservo | |||
! Funktion !! colspan="2" | Kabel-Farbe !! DS1104 !! Pin J6_Empfänger | |||
|- | |||
| GND | |||
! style="background-color: brown;" | | |||
| Braun | |||
| | |||
| style = "text-align: center"| 1 | |||
|- | |||
| VCC-5V | |||
! style="background-color: red;" | | |||
| Rot | |||
| | |||
| style = "text-align: center"| 2 | |||
|- | |||
| PWM-Signal | |||
! style="background-color: orange;" | | |||
| Orange | |||
| SCAP1 | |||
| style = "text-align: center"| 3 | |||
|} | |||
== Sensorblock - | == Sensorblock - SenFernb == | ||
[[Datei:SEN_ausg.jpg|thumb|right|400px|Abbildung 4: SEN_ausg]] | |||
Die Signalverarbeitung des empfangenen Signals der Fernbedienung findet in dem SenFernb-Block statt. Dieser ist in Abbildung 2 mit einem roten Rahmen gekennzeichnet. | |||
Hierbei zu erkennen ist, dass die Empfangen Signale der dSpace-Karte direkt weiter in den Sensorblock geleitet werden. | |||
In dem SenFernb-Block (siehe Abbildung 3) wird die Verarbeitung der Lenkwinkel- und dem Gaspedal-Signal unterteilt. In dem rot gekennzeichneten Bereich findet die Verarbeitung des Lenkwinkels und im blauen die Verarbeitung der Gespedalstellung statt. | |||
Das Eingangssignal (Eingang[1]) SenRti_PwmBreiteLw_f64 ist ein Pulsweitenmoduliertes-Signal, was mit einer Frequenz (<code>PAR_SenFernb_PwmBreiteLw_PT1Freqeunz</code> [50 Hz]) gefiltert wird. Anschließend wird mithilfe einer Look Up Table Funktion dem Signal ein eindeutiger Winkel zugeordnet, was am Ausgang(11) <code>SenFernb_Lw_f64</code> entnommen werden kann. Von dem Ausgang(1) wird das gefilterte Signal (pulsweitenmoduliert) direkt weiter in den Aktor-Ansteuerungsblock geschickt. | |||
Das Eingangssignal (Eingang[3]) <code>SenRti_PwmBreiteGas_f64</code> ist ebenfalls ein Pulsweitenmoduliertes Signal, was die Gaspedalstellung der Fernbedienung übermittelt. Es wird mit dem Filter "Filterung PWM Signal Gas" bearbeitet und an den Ausgang(10) <code>SenFernb_PwmBreiteGas_f64</code> gesendet und führt anschließend in den Aktor-Ansteuerungsblock. | |||
Die weiteren Bestandteile des SenFernb - Fernbedienung Block dienen der Erkennung eines Eingriffes an der Fernbedienung, womit autonom laufende Programm unterbrochen werden können. | |||
<gallery widths="600" heights="340"> | |||
Datei:SenFernb - Fernbedienung.jpg|600px|Abbildung 5: SenFernb - Fernbedienung | |||
</gallery> | |||
== Praktische Aufgabe == | == Praktische Aufgabe == | ||
[[Datei:Referenzmessung Lenkwinkel.jpg|thumb|right|350px|Abbildung 6: Referenzmessung Lenkwinkel]] | |||
Damit die Signale der Fernbedienung und deren Weiterverarbeitung geprüft werden können, werden mittels Control Desk Messungen aufgenommen. So können die gemessenen Werte mit Matlab visualisiert und anschließend mit den Referenzwerten verglichen werden. Die entsprechende Bedienung des Control Desks lässt sich im Artikel [[Fahrzeugsoftware| Fahrzeugsoftware]] unter Punkt 4 auffinden. | |||
Zunächst wird der Lenkwinkel auf seine Richtigkeit geprüft. Dabei werden zuerst die Referenzwerte aufgenommen, indem die Vorderachse des autonomen Fahrzeuges auf ein Blatt Papier gestellt wird. Darauf werden die drei Positionen geradeaus, Volleinschlag nach links und Volleinschlag nach rechts jeweils parallel zur Fahrtrichtung aufgezeichnet (siehe Abbildung 6). Danach können dann die maximalen Lenkwinkel beider Vorderräder abgemessen werden und diese gelten dann ebenfalls als Referenzwerte, wobei geprüft werden soll, ob diese eingehalten, überschritten oder auch unterschritten werden. | |||
Nachdem diese Werte aufgefasst wurden, wird die Messung der realen Messwerte des Lenkwinkels aufgezeichnet. Dabei wird zuerst vollständig nach rechts und unmittelbar danach nach vollständig nach links eingeschlagen. Währenddessen werden die Parameter <code>SenRti_PwmBreiteLw_f64</code>, <code>SenFernb_PwmBreiteLw_f64</code> und <code>SenFernb_Lw_f64</code> zyklisch abgefragt und in einer .mat Datei gespeichert. Diese kann anschließend mit Matlab geöffnet und visualisiert werden, damit daraus ermittelt werden kann, ob die Referenzwerte erreicht wurden oder nicht. | |||
Bei dem PWM-Signal für das Gas wird keine Referenzmessung durchgeführt, da nur ermittelt werden soll, ob das Fahrzeug bei der jeweiligen Stellung des Gashebels die entsprechende Fahrtrichtung ausführt. Wird der Gashebel zu den Anwender hin gezogen, soll das autonome Fahrzeug geradeaus fahren. Wird dieser jedoch entgegengesetzt vom Anwender weg gedrückt, so soll es rückwärts fahren. | |||
== Signalanalyse == | == Signalanalyse == | ||
[[Datei:Auswertung Plot.PNG|thumb|right|750px|Abbildung 7: Darstellung der Messkurven]] | |||
Für die Signalanalyse wurden zwei Messungen durchgeführt und in der Abbildung 7 aufgeführt. | |||
In der ersten Messung wurde das Lenkwinkelsignal aufgezeichnet. Hierbei wurde zuerst der Radanschlag nach rechts und daraufhin nach links absolviert. | |||
Bei einem Volleinschlag nach rechts wird ein Duty Cycle von 7% (0,07) und nach links von 12,3% (0,1228) übermittelt. | |||
In dem Funktionsplot "Lenkwinkel PWM Aufbereitung" (links oben) ist deutlich zu erkennen, dass das Gefilterte- und das Ungefilterte-Signal keine/kaum eine identifizierbare Abweichung aufweist. | |||
In dem Funktionsplot "Lenkwinkel nach Look Up Table" (links unten) wird die Verarbeitung des pulsweitenmodulierten Lenkwinkelsignals aufgeführt. Hierbei wurde dem Eingangssignal ein definierter Lenkwinkel in Grad zugewiesen. | |||
{| class="wikitable" | |||
|+ style = "text-align: left"|Tabelle 3: Lenkwinkel-Messwerte | |||
! Fahrrichtung !! Duty Cycle in % !! Lenkwinkel in Grad !! Referenz-Wert | |||
|- | |||
| style = "text-align: left"| Geradeaus | |||
| style = "text-align: center"| 0,09 | |||
| style = "text-align: center"| 5,3 | |||
| style = "text-align: center"| 0 | |||
|- | |||
| style = "text-align: left"| Rechts | |||
| style = "text-align: center"| 0,07 | |||
| style = "text-align: center"| 24 | |||
| style = "text-align: center"| 24 | |||
|- | |||
| style = "text-align: left"| Links | |||
| style = "text-align: center"| 0,12 | |||
| style = "text-align: center"| 17,5 | |||
| style = "text-align: center"| 19 | |||
|} | |||
In Tabelle 3 wurden die Werte für die Referenz-Wert-Spalte aus der Abbildung 7 entnommen. | |||
In dem Funktionsplot "Duty Cycle Gas" (rechts oben) wird das pulsweitenmodulierte Signal von einem Vorwärts- und anschließend Rückwärtssignal gezeigt. | |||
Die Steuerung für die Vorwärtsfahrt erfolgt über einen Duty Cycle Bereich von 6,5% (0,065) bis hin zu 9,2% (0,092). Für die Rückwärtsfahrt wird der Bereich von 9,2% (0,092) bis zu 12% (0,12) verwendet. | |||
Hierbei repräsentiert der Duty Cycle von 9,2% (0,092) ein Stoppen des Fahrzeuges. | |||
== Liste offener Punkte (LOP) == | == Liste offener Punkte (LOP) == | ||
Zeile 35: | Zeile 152: | ||
! style="font-weight: bold;" | Dokumentation | ! style="font-weight: bold;" | Dokumentation | ||
|- | |- | ||
| 1 || || || | | 1 || PT1-Filter für Lenkwinkel überflüssig || Filter kaum/keine Auswirkung auf das Ausgangssignal || Filter entfernen || || siehe Dokumentation || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#1:_PT1-Filter_für_Lenkwinkel_überflüssig Dokumentation] | ||
|- | |||
| 2 || SenFernb ist unordentlich || Unübersichtlichkeit kann zu Fehlern führen || SenFernb aufräumen || x || siehe Dokumentation || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#2:_SenFernb_ist_unordentlich Dokumentation] | |||
|- | |||
| 3 || Signalnamen im Modell fehlen || Analyse wird unübersichtlich || Signalnamen vergeben || x || siehe Dokumentation || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#3:_Signalnamen_im_Modell_fehlen Dokumentation] | |||
|- | |- | ||
| | | 4 || PWM zu LW Lookup beschreibt Gerade || Magic Numbers || Geradengleichung mit Parametern aus Parameterdatei || x || siehe Dokumentation || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#4:_PWM_zu_LW_Lookup_beschreibt_Gerade Dokumentation] | ||
|- | |- | ||
| | | 5 || Lenkwinkel unsymmetrisch || Abweichung tritt aufgrund der Fahrwerkseinstellungen auf || Passender Wert für Geradeausfahrt einstellen ||x || siehe Dokumentation || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#5:_Lenkwinkel_unsymmetrisch Dokumentation] | ||
|- | |- | ||
| | | 6 || Servos haben unterschiedlichen Arbeitsbereich || Servo falsch eingestellt || Einstellung des Fahrwerkes (physikalisch) || || siehe Dokumentation || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#6:_Servos_haben_unterschiedlichen_Arbeitsbereich Dokumentation] | ||
|- | |- | ||
| | | 7 || Lenksignal hat Spikes, Geschwindigkeit nicht || Verursacht durch das Drehmoment des plötzlichen Loslassens des Lenkwinkeldrehrades || Keine, da die Aktorik erst ab einem bestimmten Offset reagiert, welches höher als die Spikes ist || || siehe Dokumentation || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#5:_Lenkwinkel_unsymmetrisch Dokumentation] | ||
|- | |- | ||
| 8 || Verzögerter Sprung bei 8000 || Verursacht durch den angewendeten Filter || Filter entfernen || || siehe Dokumentation ||[https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#8:_Verzögerter_Sprung_bei_8000 Dokumentation] | |||
|} | |} | ||
Zeile 54: | Zeile 176: | ||
* Wirksamkeit: Beschreibung Nachweis Wirksamkeit (Dummy-Prüfung, Versuche, Kurzzeitfähigkeit, Kennzahlen, Audit, etc.) | * Wirksamkeit: Beschreibung Nachweis Wirksamkeit (Dummy-Prüfung, Versuche, Kurzzeitfähigkeit, Kennzahlen, Audit, etc.) | ||
* Dokumentation: Doku der Lösung im HSHL-Wiki | * Dokumentation: Doku der Lösung im HSHL-Wiki | ||
== Dokumentationen der LOP == | |||
=== 1: PT1-Filter für Lenkwinkel überflüssig === | |||
In der Strecke von der Signalverarbeitung des Lenkwinkel-Servos ist ein PT1-Filter (Abbildung 5: SenFernb - Fernbedienung [Roter Block]) eingefügt. Bei der Analyse von der Auswirkung des Filters, wurden das Eingangssignal und das Ausgangssignal aufgezeichnet. Die beiden Signale wurden in Abbildung 7: Darstellung der Messkurven (Lenkwinkel PWM Aufbereitung) verglichen und es wurde keine Auswirkung erkannt. Um die Erkenntnis zu stützen wurde eine weitere Messung durchgeführt. Hierbei wurde eine kontinuierliche Verdrehung des Lenkwinkel-Servos durchgeführt, um den gesamten Signal-Ausgangsbereich zu überprüfen. Wie in Abbildung 8 zu sehen ist, hat auch hier der Filter keinen Einfluss. Eine weitere Erkenntnis daraus ist, dass die Sprünge in der Abbildung 7: Darstellung Messkurven (Lenkwinkel PWM Aufbereitung) von einem plötzlichen loslassen in Endlage aufgrund einen kurzen Überschlag entstanden und die Position des Lenkwinkel-Servo problemlos erfasst wird. | |||
<gallery widths="600" heights="340"> | |||
Datei:Wirksamkeit-Lenkwinkel-Filter.PNG|600px|Abbildung 8: Wirksamkeit-Lenkwinkel-Filter | |||
</gallery> | |||
=== 2: SenFernb ist unordentlich === | |||
[[Datei:SenFernb Aufgeraeumt.PNG|thumb|right|500px|Abbildung 9: SenFernb Aufgeraeumt]] | |||
Das Simulink-Subsystem "SenFernb - Fernbedienung" wurde so angepasst, dass die Check-Abfrage, ob die Fernbedienung eingeschaltet ist, in ein separates Subsystem mit den entsprechenden Ein- und Ausgängen eingeordnet wurde. Zudem wurden die jeweiligen Filter des Lenkwinkels und des PWM-Signals des Gases entfernt, da diese, wie bereits beschrieben, wenig/keinen Einfluss auf die Messwerte haben. Dies wurde geprüft, indem alte aufgenommene Messwerte in das Workspace geladen und anschließend als Eingangswerte verwendet wurden. Durch das Visualisieren in einem Scope konnte dann durch das Vergleichen der gefilterten und ungefilterten Messkurven festgestellt werden, dass die aufgestellte Annahme richtig war und die Filter überflüssig sind. Letztlich wurden die einzelnen Blöcke so verschoben, dass möglichst wenig Signale gekreuzt werden, um so ein leichteres und schnelleres Verständnis zu ermöglichen. Der letzte Stand des Subsystems lässt sich aus Abbildung 9 entnehmen. | |||
=== 3: Signalnamen im Modell fehlen === | |||
Es wurden alle nötigen Signalnamen hinzugefügt und entsprechend der Namenskonvention angepasst. Dies lässt sich in Abbildung 9 einsehen. | |||
=== 4: PWM zu LW Lookup beschreibt Gerade === | |||
Die Look Up Tabelle aus Abbildung 9 ist für die Konvertierung des PWM-Signals des Lenkwinkel in einen real umsetzbaren Lenkwinkel zuständig. Für die sonst manuell festgelegten Werte wurden Variablen hinzugefügt (siehe Abbildung 10). Diese sind in dem Ordner parameter in dem Matlab-Datei "param_SEN_online.m" angelegt und nach den aktuellen Messungen initialisiert (siehe Abbildung 11). Somit werden diese Werte als Variablen der Look Up Tabelle übergeben und können in Zukunft, falls nötig, leichter angepasst werden. | |||
Die gewählten Werte für die Variablen wurden aus den Abbildungen und der Tabelle des folgenden Artikels entnommen: [https://wiki.hshl.de/wiki/index.php/AMR_2022#Lenk-Signal Lenk-Signal] | |||
Die Messwerte basieren auf den grundlegenden Servo-Betrieb. Grundsätzlich erfolgt die Abfrage des Signals mit einer Frequenz von 50 Hertz. Damit der Servo-Motor daraus seine Position ermitteln kann, wird die "High" Phase des Signal gemessen. Hierbei wird eine eine High Zeit von 1 ms als Mittelstellung, 0.5 ms als voller Linkseinschlag und 1.5 ms als voller Rechtseinschlag definiert. Diese High-Phasen werden über den Duty-Cycle angeben. | |||
Freqeunz von 50 Hertz => 0.02 s | |||
Beispiel: 1 ms High-Signal => 5% Duty-Cycle | |||
<gallery widths="400" heights="200"> | |||
Datei:Look Up Table.PNG|600px|Abbildung 10: Look Up Table | |||
Datei:Parameter Einstellung Look Up Table.PNG|600px|Abbildung 11: Parameter Einstellung Look Up Table | |||
</gallery> | |||
=== 5: Lenkwinkel unsymmetrisch === | |||
Die unsymmetrische Lenkwinkelverteilung ensteht durch einen Fehler bei der Referenz-Messung. In der Messung wurde die Mittelstellung über eine autonome Funktion überschrieben weil der Eingriff der Fernbedienung nicht erkannt wurde. Der Eingriff wird über einen Duty Cycle-Check bestimmt. Dieser Bereich wird eingegrenzt durch die Variablen "UpperBound" und "LowerBound" aus der Abbildung 12. | |||
Innerhalb der Abbildung kann mit dem Plot erkannt werden, dass soweit die Frequenz innerhalb des Bereiches ist, ein vorgegebener Duty Cycle angenommen wird und erst ab dem Verlassen der Duty Cycle der Fernbedienung angenommen wird. Dieser Duty Cycle von 0,103 soll für die Geradeausfahrt gelten, doch dabei hat das Fahrzeug durchgehend einen leichten Drall nach links. Daher ist der Ausgangspunkt falsch eingestellt, wodurch sich ebenfalls die Spannbreite für eine Links- und Rechtslenkung unterscheidet und somit eine Asymmetrie beim Lenkverhalten entsteht, da der geeignete Wert für die Mittelstellung des Lenk-Servos bei 0,1 liegt. | |||
<gallery widths="600" heights="340"> | |||
Datei:Symmetrie-Analyse-Lenkwinkel.PNG|600px|Abbildung 12: Symmetrie-Analyse-Lenkwinkel | |||
</gallery> | |||
=== 6: Servos haben unterschiedlichen Arbeitsbereich === | |||
[[Datei:Fernbedienung-Potentiometer.jpg|thumb|right|500px|Abbildung 13: Fernbedienung-Potentiometer]] | |||
Der unterschiedliche Arbeitsbereich der Servos entstammt unter Anderem einer falschen Einstellung der Aufteilung des PWM-Bereiches des Lenkwinkelrades an der Fernbedienung. Dies kann behoben werden, indem an der Fernbedienung zwei Potentiometer genutzt werden (siehe Abbildung 13). Eines ist dafür zuständig, dass die Mittelstellung passend justiert wird (Abbildung 13: Pfeil 2) und das andere dient zur Einstellung der Spannweite des PWM-Signals für den Lenkwinkel (Abbildung 13: Pfeil 1). Dabei kann die Spannweite entweder vergrößert oder auch verkleinert werden, wobei die Auflösung jedoch bei kleinerer Spannweite steigt. Der unterschiedliche Arbeitsbereich tritt hier also auf, weil die passende Mittelstellung falsch kalibriert wurde. Daher muss stets vor der Benutzung der Fernbedienung kontrolliert werden, ob die Potentiometer so eingestellt sind, dass der gesendete Duty Cycle der Mittelstellung auch mit dem Duty Cycle des Lenk-Servos übereinstimmt. | |||
=== 8: Verzögerter Sprung bei 8000 === | |||
[[Datei:Gas-Filter.png|thumb|right|500px|Abbildung 14: Gas-Filter]] | |||
Der Sprung erfolgt nur bei der Rückwärtsfahrt aufgrund des vorhanden Filters "Filterung PWM Signal Gas" aus Abbildung 5: SenFernb - Fernbedienung, worin das Signal 3 <code>SenRti_PwmBreiteGas_f64</code> einfließt. Der Filter-Aufbau ist in Abbildung 14: Gas-Filter mit seinen Parameter aufgeführt. Dieser Filter sorgt für eine Verzögerung bei dem Weiterleiten des PWM-Signals des Gas-Pedal-Servos. Diese Verzögerung beträgt 0,3 Sekunden und tritt ein, sobald das Eingangssignal zwischen einem Duty Cycle von 0,093 und 0,094 liegt. Aufgrund der Nullstellung, die ein Duty Cycle von 0,0928 besitzt, wird der Filterbereich nur bei einer gewollten Rückwärtsfahrt durchgequert und sorgt für den Sprung im Signal. Für eine Vorwärtsfahrt wird der Duty Cycle kleiner, bis hin zu 0,065, womit er den Bereich nicht durchquert und keine Verzögerung bei der Vorwärtsfahrt auftritt. | |||
Sollte die Verzögerung für beide Richtungen gewünscht sein, muss die untere Grenze angepasst werden und in das überarbeitete Layout aus Abbildung 9: SenFernb Aufgeraeumt hinzugefügt werden. Ist die Verzögerung in keine Richtung gewollt, kann die Filterung entfallen und das aufgeräumte Layout, wie vorgeschlagen, übernommen werden. | |||
== Zusammenfassung == | == Zusammenfassung == | ||
Die Fernbedienung funktioniert einwandfrei und wird von dem autonomen Fahrzeug korrekt erkannt. Die Signale werden ebenfalls korrekt durchgeführt, jedoch müssen bei der Verarbeitung der Signale, wie bereits in Tabelle 3 beschrieben, gewisse Parameter aktualisiert werden. | |||
== Dokumentation in SVN == | == Dokumentation in SVN == | ||
Sowohl die Messdaten, als auch die Auswertung in Matlab können unter folgendem Link in SVN eingesehen werden: [https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Workshops/Abgaben/JohannKismann&DominikKoenig/Messdaten-Auswertung-Workshop03-Fernbedienung/ Matlab-Messdaten/Auswertung] | |||
---- | ---- | ||
→ zurück zum Hauptartikel: [[Praktikum_SDE|Praktikum SDE]] | [[SDE-Team 2023/24]] | [[SoSe23_-_Praktikum_Systementwurf_-_Lernzielkontrolle_1|Lernzielkontrolle 1]] | → zurück zum Hauptartikel: [[Praktikum_SDE|Praktikum SDE]] | [[SDE-Team 2023/24]] | [[SoSe23_-_Praktikum_Systementwurf_-_Lernzielkontrolle_1|Lernzielkontrolle 1]] |
Aktuelle Version vom 17. Mai 2023, 11:43 Uhr
Autoren: Johann Kismann & Dominik Koenig
Primärsensor
Es besteht bereits ein Artikel zur Fernbedienung, welcher unter folgendem Link aufgerufen werden kann: Fahrzeughardware
Für die genauere Betrachtung der Signale kann auf folgenden Artikel zurückgegriffen werden: AMR 2022
Des Weiteren wird für das Empfangen der Signale der Fernbedienung der Receiver R143F der Firma Futaba verwendet (siehe Abbildung 1).
Messkette
-
Abbildung 2: Messkette-Fernbedienung
Systementwurf
Sensoranschlussplan
Anschluss des Empfängermoduls an Adapterplatine
Der Anschluss des Empfängers (Futaba F143F) an die Adapterplatine lässt sich in Artikel AMR 2022 im Kapitel 3.3.5 einsehen.
Fahrtenregler
Funktion | Kabel-Farbe | DS1104 | Pin J6_Empfänger | |
---|---|---|---|---|
GND | Braun | 4 | ||
VCC-5V | Rot | 5 | ||
PWM-Siganl | Orange | SCAP2 | 6 |
Lenkservo
Funktion | Kabel-Farbe | DS1104 | Pin J6_Empfänger | |
---|---|---|---|---|
GND | Braun | 1 | ||
VCC-5V | Rot | 2 | ||
PWM-Signal | Orange | SCAP1 | 3 |
Sensorblock - SenFernb
Die Signalverarbeitung des empfangenen Signals der Fernbedienung findet in dem SenFernb-Block statt. Dieser ist in Abbildung 2 mit einem roten Rahmen gekennzeichnet. Hierbei zu erkennen ist, dass die Empfangen Signale der dSpace-Karte direkt weiter in den Sensorblock geleitet werden.
In dem SenFernb-Block (siehe Abbildung 3) wird die Verarbeitung der Lenkwinkel- und dem Gaspedal-Signal unterteilt. In dem rot gekennzeichneten Bereich findet die Verarbeitung des Lenkwinkels und im blauen die Verarbeitung der Gespedalstellung statt.
Das Eingangssignal (Eingang[1]) SenRti_PwmBreiteLw_f64 ist ein Pulsweitenmoduliertes-Signal, was mit einer Frequenz (PAR_SenFernb_PwmBreiteLw_PT1Freqeunz
[50 Hz]) gefiltert wird. Anschließend wird mithilfe einer Look Up Table Funktion dem Signal ein eindeutiger Winkel zugeordnet, was am Ausgang(11) SenFernb_Lw_f64
entnommen werden kann. Von dem Ausgang(1) wird das gefilterte Signal (pulsweitenmoduliert) direkt weiter in den Aktor-Ansteuerungsblock geschickt.
Das Eingangssignal (Eingang[3]) SenRti_PwmBreiteGas_f64
ist ebenfalls ein Pulsweitenmoduliertes Signal, was die Gaspedalstellung der Fernbedienung übermittelt. Es wird mit dem Filter "Filterung PWM Signal Gas" bearbeitet und an den Ausgang(10) SenFernb_PwmBreiteGas_f64
gesendet und führt anschließend in den Aktor-Ansteuerungsblock.
Die weiteren Bestandteile des SenFernb - Fernbedienung Block dienen der Erkennung eines Eingriffes an der Fernbedienung, womit autonom laufende Programm unterbrochen werden können.
-
Abbildung 5: SenFernb - Fernbedienung
Praktische Aufgabe
Damit die Signale der Fernbedienung und deren Weiterverarbeitung geprüft werden können, werden mittels Control Desk Messungen aufgenommen. So können die gemessenen Werte mit Matlab visualisiert und anschließend mit den Referenzwerten verglichen werden. Die entsprechende Bedienung des Control Desks lässt sich im Artikel Fahrzeugsoftware unter Punkt 4 auffinden.
Zunächst wird der Lenkwinkel auf seine Richtigkeit geprüft. Dabei werden zuerst die Referenzwerte aufgenommen, indem die Vorderachse des autonomen Fahrzeuges auf ein Blatt Papier gestellt wird. Darauf werden die drei Positionen geradeaus, Volleinschlag nach links und Volleinschlag nach rechts jeweils parallel zur Fahrtrichtung aufgezeichnet (siehe Abbildung 6). Danach können dann die maximalen Lenkwinkel beider Vorderräder abgemessen werden und diese gelten dann ebenfalls als Referenzwerte, wobei geprüft werden soll, ob diese eingehalten, überschritten oder auch unterschritten werden.
Nachdem diese Werte aufgefasst wurden, wird die Messung der realen Messwerte des Lenkwinkels aufgezeichnet. Dabei wird zuerst vollständig nach rechts und unmittelbar danach nach vollständig nach links eingeschlagen. Währenddessen werden die Parameter SenRti_PwmBreiteLw_f64
, SenFernb_PwmBreiteLw_f64
und SenFernb_Lw_f64
zyklisch abgefragt und in einer .mat Datei gespeichert. Diese kann anschließend mit Matlab geöffnet und visualisiert werden, damit daraus ermittelt werden kann, ob die Referenzwerte erreicht wurden oder nicht.
Bei dem PWM-Signal für das Gas wird keine Referenzmessung durchgeführt, da nur ermittelt werden soll, ob das Fahrzeug bei der jeweiligen Stellung des Gashebels die entsprechende Fahrtrichtung ausführt. Wird der Gashebel zu den Anwender hin gezogen, soll das autonome Fahrzeug geradeaus fahren. Wird dieser jedoch entgegengesetzt vom Anwender weg gedrückt, so soll es rückwärts fahren.
Signalanalyse
Für die Signalanalyse wurden zwei Messungen durchgeführt und in der Abbildung 7 aufgeführt.
In der ersten Messung wurde das Lenkwinkelsignal aufgezeichnet. Hierbei wurde zuerst der Radanschlag nach rechts und daraufhin nach links absolviert. Bei einem Volleinschlag nach rechts wird ein Duty Cycle von 7% (0,07) und nach links von 12,3% (0,1228) übermittelt. In dem Funktionsplot "Lenkwinkel PWM Aufbereitung" (links oben) ist deutlich zu erkennen, dass das Gefilterte- und das Ungefilterte-Signal keine/kaum eine identifizierbare Abweichung aufweist.
In dem Funktionsplot "Lenkwinkel nach Look Up Table" (links unten) wird die Verarbeitung des pulsweitenmodulierten Lenkwinkelsignals aufgeführt. Hierbei wurde dem Eingangssignal ein definierter Lenkwinkel in Grad zugewiesen.
Fahrrichtung | Duty Cycle in % | Lenkwinkel in Grad | Referenz-Wert |
---|---|---|---|
Geradeaus | 0,09 | 5,3 | 0 |
Rechts | 0,07 | 24 | 24 |
Links | 0,12 | 17,5 | 19 |
In Tabelle 3 wurden die Werte für die Referenz-Wert-Spalte aus der Abbildung 7 entnommen.
In dem Funktionsplot "Duty Cycle Gas" (rechts oben) wird das pulsweitenmodulierte Signal von einem Vorwärts- und anschließend Rückwärtssignal gezeigt.
Die Steuerung für die Vorwärtsfahrt erfolgt über einen Duty Cycle Bereich von 6,5% (0,065) bis hin zu 9,2% (0,092). Für die Rückwärtsfahrt wird der Bereich von 9,2% (0,092) bis zu 12% (0,12) verwendet.
Hierbei repräsentiert der Duty Cycle von 9,2% (0,092) ein Stoppen des Fahrzeuges.
Liste offener Punkte (LOP)
# | Problem | Analyse | Maßnahme | Freigabe | Wirksamkeit | Dokumentation |
---|---|---|---|---|---|---|
1 | PT1-Filter für Lenkwinkel überflüssig | Filter kaum/keine Auswirkung auf das Ausgangssignal | Filter entfernen | siehe Dokumentation | Dokumentation | |
2 | SenFernb ist unordentlich | Unübersichtlichkeit kann zu Fehlern führen | SenFernb aufräumen | x | siehe Dokumentation | Dokumentation |
3 | Signalnamen im Modell fehlen | Analyse wird unübersichtlich | Signalnamen vergeben | x | siehe Dokumentation | Dokumentation |
4 | PWM zu LW Lookup beschreibt Gerade | Magic Numbers | Geradengleichung mit Parametern aus Parameterdatei | x | siehe Dokumentation | Dokumentation |
5 | Lenkwinkel unsymmetrisch | Abweichung tritt aufgrund der Fahrwerkseinstellungen auf | Passender Wert für Geradeausfahrt einstellen | x | siehe Dokumentation | Dokumentation |
6 | Servos haben unterschiedlichen Arbeitsbereich | Servo falsch eingestellt | Einstellung des Fahrwerkes (physikalisch) | siehe Dokumentation | Dokumentation | |
7 | Lenksignal hat Spikes, Geschwindigkeit nicht | Verursacht durch das Drehmoment des plötzlichen Loslassens des Lenkwinkeldrehrades | Keine, da die Aktorik erst ab einem bestimmten Offset reagiert, welches höher als die Spikes ist | siehe Dokumentation | Dokumentation | |
8 | Verzögerter Sprung bei 8000 | Verursacht durch den angewendeten Filter | Filter entfernen | siehe Dokumentation | Dokumentation |
Legende
- Problem: Was genau ist das Problem? Wo tritt das Problem auf? Wie zeigt sich das Problem? Wann tritt das Problem auf? Warum ist es ein Problem?
- Analyse: Was ist die Ursache des Problems?
- Maßnahme: Maßnahme zur Beseitigung der identifizierten Ursache
- Freigabe: Abstimmung der Maßnahme mit Prof. Schneider
- Wirksamkeit: Beschreibung Nachweis Wirksamkeit (Dummy-Prüfung, Versuche, Kurzzeitfähigkeit, Kennzahlen, Audit, etc.)
- Dokumentation: Doku der Lösung im HSHL-Wiki
Dokumentationen der LOP
1: PT1-Filter für Lenkwinkel überflüssig
In der Strecke von der Signalverarbeitung des Lenkwinkel-Servos ist ein PT1-Filter (Abbildung 5: SenFernb - Fernbedienung [Roter Block]) eingefügt. Bei der Analyse von der Auswirkung des Filters, wurden das Eingangssignal und das Ausgangssignal aufgezeichnet. Die beiden Signale wurden in Abbildung 7: Darstellung der Messkurven (Lenkwinkel PWM Aufbereitung) verglichen und es wurde keine Auswirkung erkannt. Um die Erkenntnis zu stützen wurde eine weitere Messung durchgeführt. Hierbei wurde eine kontinuierliche Verdrehung des Lenkwinkel-Servos durchgeführt, um den gesamten Signal-Ausgangsbereich zu überprüfen. Wie in Abbildung 8 zu sehen ist, hat auch hier der Filter keinen Einfluss. Eine weitere Erkenntnis daraus ist, dass die Sprünge in der Abbildung 7: Darstellung Messkurven (Lenkwinkel PWM Aufbereitung) von einem plötzlichen loslassen in Endlage aufgrund einen kurzen Überschlag entstanden und die Position des Lenkwinkel-Servo problemlos erfasst wird.
-
Abbildung 8: Wirksamkeit-Lenkwinkel-Filter
2: SenFernb ist unordentlich
Das Simulink-Subsystem "SenFernb - Fernbedienung" wurde so angepasst, dass die Check-Abfrage, ob die Fernbedienung eingeschaltet ist, in ein separates Subsystem mit den entsprechenden Ein- und Ausgängen eingeordnet wurde. Zudem wurden die jeweiligen Filter des Lenkwinkels und des PWM-Signals des Gases entfernt, da diese, wie bereits beschrieben, wenig/keinen Einfluss auf die Messwerte haben. Dies wurde geprüft, indem alte aufgenommene Messwerte in das Workspace geladen und anschließend als Eingangswerte verwendet wurden. Durch das Visualisieren in einem Scope konnte dann durch das Vergleichen der gefilterten und ungefilterten Messkurven festgestellt werden, dass die aufgestellte Annahme richtig war und die Filter überflüssig sind. Letztlich wurden die einzelnen Blöcke so verschoben, dass möglichst wenig Signale gekreuzt werden, um so ein leichteres und schnelleres Verständnis zu ermöglichen. Der letzte Stand des Subsystems lässt sich aus Abbildung 9 entnehmen.
3: Signalnamen im Modell fehlen
Es wurden alle nötigen Signalnamen hinzugefügt und entsprechend der Namenskonvention angepasst. Dies lässt sich in Abbildung 9 einsehen.
4: PWM zu LW Lookup beschreibt Gerade
Die Look Up Tabelle aus Abbildung 9 ist für die Konvertierung des PWM-Signals des Lenkwinkel in einen real umsetzbaren Lenkwinkel zuständig. Für die sonst manuell festgelegten Werte wurden Variablen hinzugefügt (siehe Abbildung 10). Diese sind in dem Ordner parameter in dem Matlab-Datei "param_SEN_online.m" angelegt und nach den aktuellen Messungen initialisiert (siehe Abbildung 11). Somit werden diese Werte als Variablen der Look Up Tabelle übergeben und können in Zukunft, falls nötig, leichter angepasst werden.
Die gewählten Werte für die Variablen wurden aus den Abbildungen und der Tabelle des folgenden Artikels entnommen: Lenk-Signal
Die Messwerte basieren auf den grundlegenden Servo-Betrieb. Grundsätzlich erfolgt die Abfrage des Signals mit einer Frequenz von 50 Hertz. Damit der Servo-Motor daraus seine Position ermitteln kann, wird die "High" Phase des Signal gemessen. Hierbei wird eine eine High Zeit von 1 ms als Mittelstellung, 0.5 ms als voller Linkseinschlag und 1.5 ms als voller Rechtseinschlag definiert. Diese High-Phasen werden über den Duty-Cycle angeben.
Freqeunz von 50 Hertz => 0.02 s
Beispiel: 1 ms High-Signal => 5% Duty-Cycle
-
Abbildung 10: Look Up Table
-
Abbildung 11: Parameter Einstellung Look Up Table
5: Lenkwinkel unsymmetrisch
Die unsymmetrische Lenkwinkelverteilung ensteht durch einen Fehler bei der Referenz-Messung. In der Messung wurde die Mittelstellung über eine autonome Funktion überschrieben weil der Eingriff der Fernbedienung nicht erkannt wurde. Der Eingriff wird über einen Duty Cycle-Check bestimmt. Dieser Bereich wird eingegrenzt durch die Variablen "UpperBound" und "LowerBound" aus der Abbildung 12. Innerhalb der Abbildung kann mit dem Plot erkannt werden, dass soweit die Frequenz innerhalb des Bereiches ist, ein vorgegebener Duty Cycle angenommen wird und erst ab dem Verlassen der Duty Cycle der Fernbedienung angenommen wird. Dieser Duty Cycle von 0,103 soll für die Geradeausfahrt gelten, doch dabei hat das Fahrzeug durchgehend einen leichten Drall nach links. Daher ist der Ausgangspunkt falsch eingestellt, wodurch sich ebenfalls die Spannbreite für eine Links- und Rechtslenkung unterscheidet und somit eine Asymmetrie beim Lenkverhalten entsteht, da der geeignete Wert für die Mittelstellung des Lenk-Servos bei 0,1 liegt.
-
Abbildung 12: Symmetrie-Analyse-Lenkwinkel
6: Servos haben unterschiedlichen Arbeitsbereich
Der unterschiedliche Arbeitsbereich der Servos entstammt unter Anderem einer falschen Einstellung der Aufteilung des PWM-Bereiches des Lenkwinkelrades an der Fernbedienung. Dies kann behoben werden, indem an der Fernbedienung zwei Potentiometer genutzt werden (siehe Abbildung 13). Eines ist dafür zuständig, dass die Mittelstellung passend justiert wird (Abbildung 13: Pfeil 2) und das andere dient zur Einstellung der Spannweite des PWM-Signals für den Lenkwinkel (Abbildung 13: Pfeil 1). Dabei kann die Spannweite entweder vergrößert oder auch verkleinert werden, wobei die Auflösung jedoch bei kleinerer Spannweite steigt. Der unterschiedliche Arbeitsbereich tritt hier also auf, weil die passende Mittelstellung falsch kalibriert wurde. Daher muss stets vor der Benutzung der Fernbedienung kontrolliert werden, ob die Potentiometer so eingestellt sind, dass der gesendete Duty Cycle der Mittelstellung auch mit dem Duty Cycle des Lenk-Servos übereinstimmt.
8: Verzögerter Sprung bei 8000
Der Sprung erfolgt nur bei der Rückwärtsfahrt aufgrund des vorhanden Filters "Filterung PWM Signal Gas" aus Abbildung 5: SenFernb - Fernbedienung, worin das Signal 3 SenRti_PwmBreiteGas_f64
einfließt. Der Filter-Aufbau ist in Abbildung 14: Gas-Filter mit seinen Parameter aufgeführt. Dieser Filter sorgt für eine Verzögerung bei dem Weiterleiten des PWM-Signals des Gas-Pedal-Servos. Diese Verzögerung beträgt 0,3 Sekunden und tritt ein, sobald das Eingangssignal zwischen einem Duty Cycle von 0,093 und 0,094 liegt. Aufgrund der Nullstellung, die ein Duty Cycle von 0,0928 besitzt, wird der Filterbereich nur bei einer gewollten Rückwärtsfahrt durchgequert und sorgt für den Sprung im Signal. Für eine Vorwärtsfahrt wird der Duty Cycle kleiner, bis hin zu 0,065, womit er den Bereich nicht durchquert und keine Verzögerung bei der Vorwärtsfahrt auftritt.
Sollte die Verzögerung für beide Richtungen gewünscht sein, muss die untere Grenze angepasst werden und in das überarbeitete Layout aus Abbildung 9: SenFernb Aufgeraeumt hinzugefügt werden. Ist die Verzögerung in keine Richtung gewollt, kann die Filterung entfallen und das aufgeräumte Layout, wie vorgeschlagen, übernommen werden.
Zusammenfassung
Die Fernbedienung funktioniert einwandfrei und wird von dem autonomen Fahrzeug korrekt erkannt. Die Signale werden ebenfalls korrekt durchgeführt, jedoch müssen bei der Verarbeitung der Signale, wie bereits in Tabelle 3 beschrieben, gewisse Parameter aktualisiert werden.
Dokumentation in SVN
Sowohl die Messdaten, als auch die Auswertung in Matlab können unter folgendem Link in SVN eingesehen werden: Matlab-Messdaten/Auswertung
→ zurück zum Hauptartikel: Praktikum SDE | SDE-Team 2023/24 | Lernzielkontrolle 1