Test der Abstandssensorik: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 15: Zeile 15:
# Auswählen einen entsprechenden Testfalls. Dabei wird bereits bei der Auswahl die entsprechende Testumgebung visualisiert.
# Auswählen einen entsprechenden Testfalls. Dabei wird bereits bei der Auswahl die entsprechende Testumgebung visualisiert.
# Beim Klick auf den Button MessungStart wird die Messung gestartet und unmittelbar durchgeführt.
# Beim Klick auf den Button MessungStart wird die Messung gestartet und unmittelbar durchgeführt.
# Das Ergebnis der Messung wird unterhalb des Buttons MessungStart tabellarisch angezeigt. Dabei werden jeweils die vier Sollwerte mit den vier Istwerten, also den gemessenen Werten, verglichen. In der rechten Spalte ist das Ergebnis dargestellt. Eine 1 steht jeweils für einen bestandenen Test und eine 0 für einen nicht bestanden Test. In dem Algorithmus der Testumgebung sind zu bestimmte Grenzen für eine maximale Abweichung vorgegeben, anhand dessen das Ergebnis ermittelt wird.
# Auswertung des Messergebnisses: Das Ergebnis der Messung wird unterhalb des Buttons MessungStart tabellarisch angezeigt. Dabei werden jeweils die vier Sollwerte mit den vier Istwerten, also den gemessenen Werten, verglichen. In der rechten Spalte ist das Ergebnis dargestellt. Eine 1 steht jeweils für einen bestandenen und eine 0 für einen nicht bestanden Test. In dem Algorithmus der Testumgebung sind dazu bestimmte Grenzen für eine maximale Abweichung vorgegeben, anhand dessen das Ergebnis ermittelt wird.
# Nach Abschluss der Messung, kann MATLAB wieder geschlossen werden.


== Generierung von Testfällen ==
== Generierung von neuen 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:
Um die Abstandssensorik zu testen werden Testfälle generiert und in Datenbanken gespeichert. Hierfür wird in der Simulation eine Laufzeitvariable erstellt und an bestimmten Positionen die Simulation gestoppt. Die benötigten Variablen in den Testfällen sind folgende:
* ObjektListe
* ObjektListe
* Schalter
* Schalter
Zeile 26: Zeile 27:
* psi
* 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. <br>
Die Variablen sind in jeweils einer .mat-Datei abzulegen. Der entsprechende bzw. mit der Nummerierung fortlaufende Name dieser Datei ist manuell zu wählen.
 
Hinweis: Es 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. Dieser ist jedoch in der Simulationsumgebung nicht zulässig. Um den Fehler zu umgehen wird an den Stellen, an denen das Fahrzeug gestoppt werden soll, ein Breakpoint gesetzt. In einer if - Bedingung wird so bei Erreichen eines Wertes der Laufzeitvariable am Breakpoint gestoppt. Nun kann im Matlab Command Window der 'save' - Befehl manuell eingetippt werden, mit dem die entsprechende .mat-File generiert wird. Dies ist beispielhaft kurz dargestellt. <br>


Beispiel für die Erstellung einer Datenbank:
Beispiel für die Erstellung einer Datenbank:
<pre>save('Messung1.mat','x','y','Schalter','ObjektListe','psi','stIRPosition')</pre>
<pre>save('Messung1.mat','x','y','Schalter','ObjektListe','psi','stIRPosition')</pre>


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.
Durch Eingabe der 'Enter' - Taste wird die Datenbank im Arbeitsordner angelegt. Wichtig zu wissen ist außerdem, dass die Variablen nicht im Workspace angezeigt werden, aber vorhanden sind. Deshalb ist auch ein Speichern der Variablen möglich.


Die Ergebnisse zu der Generierung von Testfällen befinden sich im Branch [https://svn.hshl.de/svn/MTR_SDE_Praktikum/branches/Einparksensorik_SS_19/ Einparksensorik_SS_19].
Die Ergebnisse zu der Generierung von Testfällen befinden sich im Branch [https://svn.hshl.de/svn/MTR_SDE_Praktikum/branches/Einparksensorik_SS_19/ Einparksensorik_SS_19].
Zeile 49: Zeile 52:
Ü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.
Ü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":
Das nachfolgende Beispiel zeigt exemplarisch den Testdurchlauf für den Fall "Messung4":





Aktuelle Version vom 17. Juli 2020, 23:08 Uhr

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

Ausführung von Testfällen

Zu diesem Abschnitt wird die Ausführung von Testfällen beschrieben. Dabei kann zwischen insgesamt sieben Testfällen gewählt werden. Um einen Test durchzuführen sind die folgenden Schritte notwendig:

  1. Starten der GUI in MATLAB.
  2. Auswählen einen entsprechenden Testfalls. Dabei wird bereits bei der Auswahl die entsprechende Testumgebung visualisiert.
  3. Beim Klick auf den Button MessungStart wird die Messung gestartet und unmittelbar durchgeführt.
  4. Auswertung des Messergebnisses: Das Ergebnis der Messung wird unterhalb des Buttons MessungStart tabellarisch angezeigt. Dabei werden jeweils die vier Sollwerte mit den vier Istwerten, also den gemessenen Werten, verglichen. In der rechten Spalte ist das Ergebnis dargestellt. Eine 1 steht jeweils für einen bestandenen und eine 0 für einen nicht bestanden Test. In dem Algorithmus der Testumgebung sind dazu bestimmte Grenzen für eine maximale Abweichung vorgegeben, anhand dessen das Ergebnis ermittelt wird.
  5. Nach Abschluss der Messung, kann MATLAB wieder geschlossen werden.

Generierung von neuen Testfällen

Um die Abstandssensorik zu testen werden Testfälle generiert und in Datenbanken gespeichert. Hierfür wird 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

Die Variablen sind in jeweils einer .mat-Datei abzulegen. Der entsprechende bzw. mit der Nummerierung fortlaufende Name dieser Datei ist manuell zu wählen.

Hinweis: Es 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. Dieser ist jedoch in der Simulationsumgebung nicht zulässig. Um den Fehler zu umgehen wird an den Stellen, an denen das Fahrzeug gestoppt werden soll, ein Breakpoint gesetzt. In einer if - Bedingung wird so bei Erreichen eines Wertes der Laufzeitvariable am Breakpoint gestoppt. Nun kann im Matlab Command Window der 'save' - Befehl manuell eingetippt werden, mit dem die entsprechende .mat-File generiert wird. Dies ist beispielhaft kurz dargestellt.

Beispiel für die Erstellung einer Datenbank:

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

Durch Eingabe der 'Enter' - Taste wird die Datenbank im Arbeitsordner angelegt. Wichtig zu wissen ist außerdem, dass die Variablen nicht im Workspace angezeigt werden, aber vorhanden sind. Deshalb ist auch ein 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 exemplarisch 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
→ zurück zum übergeordneten Artikel: Infrarotsensoren