AF: Fernbedienung (SenFernb): Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 152: Zeile 152:
! style="font-weight: bold;" | Dokumentation
! style="font-weight: bold;" | Dokumentation
|-
|-
| 1 || Lenkwinkel-Signal für Volleinschlag links, rechts und geradeaus abweichend || Veraltete Werte || Aktuelle Parameter erfassen und anpassen/dokumentieren ||  ||  ||
| 1 || Abweichende Messwerte bei den Werten des Lenk-Signals in Artikel [[AMR 2022|AMR 2022]] erfasst || Möglicherweise durch Komponenten-Wechsel || Nachmessung der Signale mit Hilfe eines Oszilloskops ||  ||  ||
|-
|-
| 2 || Abweichende Messwerte bei den Werten des Lenk-Signals in Artikel [[AMR 2022|AMR 2022]] erfasst || Möglicherweise durch Komponenten-Wechsel || Nachmessung der Signale mit Hilfe eines Oszilloskops ||  ||  ||
| 2 || PT1-Filter für Lenkwinkel überflüssig || Filter kaum/keine Auswirkung auf das Ausgangssignal || Filter entfernen ||  ||  ||
|-
|-
| 3 || Look Up Tabelle für Lenkwinkel abweichend || Veraltete Werte || Anpassung der Parameter für die Look Up Tabelle ||  ||  ||
| 3 || Filter für PWM-Signal Gas überflüssig || Filter kaum/keine Auswirkung auf das Ausgangssignal || Filter entfernen ||  ||  ||
|-
|-
| 4 || PT1-Filter für Lenkwinkel überflüssig || Filter kaum/keine Auswirkung auf das Ausgangssignal || Filter entfernen || ||  ||
| 4 || SenFernb ist unordentlich || Unübersichtlichkeit kann zu Fehlern führen  || SenFernb aufräumen || x ||  || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#6:_SenFernb_ist_unordentlich Dokumentation]
|-
|-
| 5 || Filter für PWM-Signal Gas überflüssig || Filter kaum/keine Auswirkung auf das Ausgangssignal || Filter entfernen ||  ||  ||
| 5 || Signalnamen im Modell fehlen || Analyse wird unübersichtlich || Signalnamen vergeben || x ||  || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#7:_Signalnamen_im_Modell_fehlen Dokumentation]
|-
|-
| 6 || SenFernb ist unordentlich || Unübersichtlichkeit kann zu Fehlern führen  || SenFernb aufräumen || x ||  || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#6:_SenFernb_ist_unordentlich Dokumentation]
| 6 || PWM zu LW Lookup beschreibt Gerade || Magic Numbers || Geradengleichung mit Parametern aus Parameterdatei || x ||  || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#8:_PWM_zu_LW_Lookup_beschreibt_Gerade Dokumentation]
|-
|-
| 7 || Signalnamen im Modell fehlen || Analyse wird unübersichtlich || Signalnamen vergeben || x  ||  || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#7:_Signalnamen_im_Modell_fehlen Dokumentation]
| 7 || Lenkwinkel unsymmetrisch || Servo falsch eingestellt || Servo symmetrisch einstellen ||x  ||  || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#9:_Lenkwinkel_unsymmetrisch Dokumentation]
|-
|-
| 8 || PWM zu LW Lookup beschreibt Gerade || Magic Numbers || Geradengleichung mit Parametern aus Parameterdatei || x ||  || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#8:_PWM_zu_LW_Lookup_beschreibt_Gerade Dokumentation]
| 8 || Servos haben unterschiedlichen Arbeitsbereich || Analyse notwendig!  || ||  ||  ||
|-
|-
| 9 || Lenkwinkel unsymmetrisch || Servo falsch eingestellt || Servo symmetrisch einstellen ||x ||  || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#9:_Lenkwinkel_unsymmetrisch Dokumentation]
| 9 || 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 ||  ||  || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#9:_Lenkwinkel_unsymmetrisch Dokumentation]
|-
|-
| 10 || Servos haben unterschiedlichen Arbeitsbereich || Analyse notwendig!  ||  ||  ||  ||
| 10 || Verzögerter Sprung bei 8000 || Verursacht durch den angewendeten Filter ||  ||  ||
|-
| 11 || 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 ||  ||  || [https://wiki.hshl.de/wiki/index.php/AF:_Fernbedienung_(SenFernb)#9:_Lenkwinkel_unsymmetrisch Dokumentation]
|-
| 12 || Verzögerter Sprung bei 8000 || Verursacht durch den angewendeten Filter ||  ||  ||
|}
|}



Version vom 16. Mai 2023, 10:39 Uhr

Autoren: Johann Kismann & Dominik Koenig

Abbildung 1: Fernbedienung+Receiver-Futaba R143F

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

Systementwurf

Sensoranschlussplan

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 im Kapitel 3.3.5 einsehen.

Fahrtenregler

Tabelle 1: Anschlussplan Fahrtenregler
Funktion Kabel-Farbe DS1104 Pin J6_Empfänger
GND   Braun 4
VCC-5V   Rot 5
PWM-Siganl   Orange SCAP2 6

Lenkservo

Tabelle 2: Anschlussplan Lenkservo
Funktion Kabel-Farbe DS1104 Pin J6_Empfänger
GND   Braun 1
VCC-5V   Rot 2
PWM-Signal   Orange SCAP1 3

Sensorblock - SenXXX

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 (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.


Praktische Aufgabe

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 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

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.

Tabelle 3: Lenkwinkel-Messwerte
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)

Tabelle 3: Liste offener Punkte (LOP)
# Problem Analyse Maßnahme Freigabe Wirksamkeit Dokumentation
1 Abweichende Messwerte bei den Werten des Lenk-Signals in Artikel AMR 2022 erfasst Möglicherweise durch Komponenten-Wechsel Nachmessung der Signale mit Hilfe eines Oszilloskops
2 PT1-Filter für Lenkwinkel überflüssig Filter kaum/keine Auswirkung auf das Ausgangssignal Filter entfernen
3 Filter für PWM-Signal Gas überflüssig Filter kaum/keine Auswirkung auf das Ausgangssignal Filter entfernen
4 SenFernb ist unordentlich Unübersichtlichkeit kann zu Fehlern führen SenFernb aufräumen x Dokumentation
5 Signalnamen im Modell fehlen Analyse wird unübersichtlich Signalnamen vergeben x Dokumentation
6 PWM zu LW Lookup beschreibt Gerade Magic Numbers Geradengleichung mit Parametern aus Parameterdatei x Dokumentation
7 Lenkwinkel unsymmetrisch Servo falsch eingestellt Servo symmetrisch einstellen x Dokumentation
8 Servos haben unterschiedlichen Arbeitsbereich Analyse notwendig!
9 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 Dokumentation
10 Verzögerter Sprung bei 8000 Verursacht durch den angewendeten Filter

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

6: SenFernb ist unordentlich

Abbildung 8: 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 8 entnehmen.

7: Signalnamen im Modell fehlen

Es wurden alle nötigen Signalnamen hinzugefügt und entsprechend der Namenskonvention angepasst. Dies lässt sich in Abbildung 8 einsehen.

8: PWM zu LW Lookup beschreibt Gerade

Die Look Up Tabelle aus Abbildung 8 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 9). Diese sind in dem Ordner parameter in dem Matlab-Datei "param_SEN_online.m" angelegt und nach den aktuellen Messungen initialisiert (siehe Abbildung 10). 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

9: Lenkwinkel unsymmetrisch

Die unsymmetrische Lenkwinkelverteilung erstand 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 Frequenz-Check bestimmt. Dieser Bereich wird eingegrenzt durch die Variablen "UpperBound" und "LowerBound" aus der Abbildung 11. Innerhalb der Abbildung kann mit dem Plot erkannt werden, dass soweit die Frequenz innerhalb des Bereiches ist, eine vorgegebene Frequenz angenommen wird und erst ab dem Verlassen die Frequenz der Fernbedienung angenommen wird.

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