Test der Abstandssensorik

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zu testende Matlab function im Simulink-Modell. Pfad: SEN-Sensoren-offline/SenAbs - Abstandssensorik

Autoren: Julin Horstkötter, Levin Baumeister

In dem Offline-Modus des Simulink-Modells des autonomen Fahrzeugs erfolgt die Simulation der Infrarotsensoren in einer Matlab function. In der Funktion werden mit Hilfe von Umrechnungen der verschiedenen Koordinatensysteme die Ausgabe der vier Infrarotsensoren in der Einheit Meter simuliert. In diesem Artikel wird eine Benutzeroberfläche genauer erläutert und beschrieben, die entwickelt wurde, um die Implementierung der Matlab function, die der Simulation dient, zu testen.

Kurzinformation

Der generelle Umgang mit der Benutzeroberfläche (GUI - Graphical User Interface) wird in den folgenden Abschnitten behandelt. Zunächst müssen Testfälle generiert werden, die in sich besonders aussagekräftig sind und so weitere mögliche Situationen ebenfalls abbilden. Im Anschluss daran werden diese der Umgebung der GUI hinzugefügt, und zuletzt kann der Test ausgeführt werden. Entwickelt wurde die GUI im SS2019 mit Hilfe von Matlab GUIDE [1].

Generierung von Testfällen

Um die Abstandssensorik zu testen werden Testfälle generiert und in Datenbanken gespeichert. Hierfür wurde in der Simulation eine Laufzeitvariable erstellt und an bestimmten Positionen die Simulation gestoppt. Die benötigten Variablen in den Testfällen sind folgende:

  • ObjektListe
  • Schalter
  • stIRPosition
  • x
  • y
  • psi

Zusätzlich ist zu beachten, dass die Simulation in der bibliothek 'SensorenAktoren_offline' gestoppt werden muss, da die Variablen nur lokal in der Funktion gespeichert werden und global nicht sichtbar sind. Damit Datenbanken in Matlab erstellt werden können muss der 'save' - Befehl verwendet werden. Jedoch hatte dieser in der Simulation einen Fehler ausgelöst, da dieser dort nicht verwendet werden darf. Um den Fehler zu umgehen wurden an den Stellen, an denen das Fahrzeug gestoppt werden sollte ein Breakpoint gesetzt. In einer if - Bedingung wurde bei Erreichen eines Wertes der Laufzeitvariable der Breakpoint gesetzt. Nun kann im Matlab Command Window der 'save' - Befehl manuell eingetippt werden.

Beispiel für die Erstellung einer Datenbank:

save('Messung1.mat','ObjektListe','stIRPosition','x','y','psi')

Durch Eingabe der 'Enter' - Taste wird die Datenbank im Arbeitsordner angelegt. Weiterhin ist zu beachten, dass die Variablen nicht im Workspace angezeigt werden, aber vorhanden sind. Deshalb ist das Speichern der Variablen möglich.

Die Ergebnisse zu der Generierung von Testfällen befinden sich im Branch Einparksensorik_SS_19.

Auswertung der Sensordaten

Für die Auswertung gibt es eine Testumgebung für die Abstandssensorik. Diese befindet sich bei folgendem Link: GUI. Um die Datenbanken der generierten Testfälle in die Testumgebung einzubinden, müssen sie zuvor in den Ordner, in dem sich die Testumgebung befindet, eingefügt werden. Zusätzlich dazu müssen die Bilder in des Testfalls in den Ordner geladen werden, damit über die GUI der entsprechende Test ausgewählt werden kann.

Anschließend kann in Matlab durch Starten der GUI der gewünschte Testfall ausgelesen werden.

Nachdem die Datenbank in der Testumgebung eingelesen wurde, wird diese gestartet. Anschließend zeigt die GUI an, ob der Test bestanden (1) oder nicht bestanden (0) wurde.



Über das DropDown-Menü "Auswahl des Testfalls" kann der jeweilige Testfall geladen werden. In dem Koordinatensystem wird dann optisch der Test dargestellt, damit der Anwender sieht welcher Test durchgeführt wird. Über den Button "MessungStart" wird die Messung durchgeführt. Hierfür wurde die Testumgebung als Funktion ausgelagert und in der GUI aufgerufen. In einer Tabelle werden dann alle notwendigen Testdaten angezeigt.

Das nachfolgende Beispiel zeigt den Testdurchlauf für den Fall "Messung4":


In der Tabelle können die vorgegebenen Soll-Werte abgelesen werden. Durch die berechneten Ist-Werte wird ermittelt, ob die Abweichung in Ordnung ist. Das Ergebnis wird in der letzten Spalte angegeben. Die GUIbefindet sich im SVN.

Einzelnachweis

  1. Create a Simple App Using GUIDE [1]

→ zurück zum Hauptartikel: Praktikum SDE