Spurparameter (Sende-/Empfangsseite): Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „Neue Seite“) |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
=Einleitung= | |||
In diesem Protokoll soll die Spurerkennung genauer untersucht werden, um mögliche Fehler zu erkennen und analysieren. Dazu wurde im Vorfeld eine Messung durchgeführt, die einen Vergleich zwischen der Spurerkennungssoftware und den versendeten Daten zieht. Mit diesen Daten und einer eindeutigen Referenz, können möglich Fehlerquellen gefunden und analysiert werden. Alle Messergebnisse sind im [[C:\Users\david\Documents\Technik\HSHL\Semester_06\22_Systementwurf\Systementwurf\Workshops\Abgaben\David Weigt & Yunkai Lin\Workshop_9\9_9\svn.hsh l.de\svn\MTR_SDE_Praktikum\trunk\Workshops\Abgaben\David Weigt & Yunkai Lin\Workshop_9\9_9 | SVN-Ordner]] abgelegt. | |||
=Durchführung der Messung= | |||
In den beiden Abbildungen sind die Zustände der Kameraführung zu erkennen, die bei einer Messung verwendet wurde. Da es bei diversen Messungen zu einem unerklärlichen Fehler gekommen ist, wurde nur eine Vermessung der Geraden vollzogen. Dazu wurde die Spurerkennungssoftware gestartet und die versendeten Daten in ControllDesk aufgezeichnet. | |||
Die Ausgabe der Spurerkennungssoftware wurde dabei im Windows Command Windows ausgegeben und in einer Textdatei (ErsteMessung.txt) gespeichert. Die versendeten Daten sind zudem in einem .mat File archiviert. | |||
[[Datei:Gerade.png|mini|left|500px|Abb 1:Gerade]] | |||
[[Datei:Kurve.png|mini|left|500px|Abb 2: Kurve]] | |||
<br clear=all> | |||
=Messdaten Auswertung= | |||
Zur Auswertung der zuvor vermessenen Messdaten, wurde hierzu ein Matlab Skript erstellt, welches die Daten beider Dateitypen einließt und grafisch Darstellt. | |||
<syntaxhighlight lang="matlab"> | |||
clc; | |||
clear all; | |||
close all; | |||
addpath ('C:\Users\david\Documents\Technik\HSHL\Semester_06\22_Systementwurf\Systementwurf\Workshops\Abgaben\David Weigt & Yunkai Lin\Workshop_9\9_9'); | |||
addpath 'C:\Users\david\Documents\Technik\HSHL\Semester_06\22_Systementwurf\Systementwurf\Software\CaroloCupFahrzeug\funktionen' ; | |||
Messdatei = 'Kamera_im_ex_ersteMessung.mat'; | |||
[CCF CCF_mess] = funktion_wandle_dspacemess_in_CCF_mess(Messdatei); | |||
%Laden der Messdaten aus Controlldesk | |||
SenKam_SpurA_f64 = CCF_mess.SenKam_SpurA_f64; | |||
SenKam_SpurB_f64 = CCF_mess.SenKam_SpurB_f64; | |||
SenKam_SpurC_f64 = CCF_mess.SenKam_SpurC_f64; | |||
%Laden der Referenzmessung | |||
dateipfad = 'ErsteMessung.txt'; | |||
dateiID = fopen(dateipfad, 'r'); | |||
i = [1 1 1]; | |||
werte = []; | |||
zeile = fgetl(dateiID); | |||
while ischar(zeile) | |||
if startsWith(zeile, 'a:') | |||
wert = str2double(extractAfter(zeile, 'a:')); | |||
Ref_SenKam_SpurA_f64(i(1),:) = wert; | |||
i(1) = i(1) + 1; | |||
elseif startsWith(zeile, 'b:') | |||
wert = str2double(extractAfter(zeile, 'b:')); | |||
Ref_SenKam_SpurB_f64(i(2),:) = wert; | |||
i(2) = i(2) + 1; | |||
elseif startsWith(zeile, 'c:') | |||
wert = str2double(extractAfter(zeile, 'c:')); | |||
Ref_SenKam_SpurC_f64(i(3),:) = wert; | |||
i(3) = i(3) + 1; | |||
end | |||
zeile = fgetl(dateiID); | |||
end | |||
fclose(dateiID); | |||
%Plot der Referenzmessung | |||
subplot(3, 2, 1) | |||
plot(Ref_SenKam_SpurA_f64); | |||
title("Ref_SenKam_SpurA_f64"); | |||
subplot(3, 2, 3) | |||
plot(Ref_SenKam_SpurB_f64); | |||
title("Ref_SenKam_SpurB_f64"); | |||
subplot(3, 2, 5) | |||
plot(Ref_SenKam_SpurC_f64); | |||
title("Ref_SenKam_SpurC_f64"); | |||
%Plot der Controlldesk Messung | |||
subplot(3, 2, 2) | |||
plot(SenKam_SpurA_f64); | |||
title("SenKam_SpurA_f64"); | |||
subplot(3, 2, 4) | |||
plot(SenKam_SpurB_f64); | |||
title("SenKam_SpurB_f64"); | |||
subplot(3, 2, 6) | |||
plot(SenKam_SpurC_f64); | |||
title("SenKam_SpurC_f64"); | |||
</syntaxhighlight> | |||
=Ergebnis= | |||
Aus der Ausgabe des zuvor gezeigten Skripts ist hervorzugehen, dass nur ein Teil des Polynoms übertragen wurde. Dabei ist zu beachten das mit Ref_ die kopierten Messwerte des Windows Commands der Spurerkennungssoftware gemeint ist. Somit besteht ein Fehler in der Übertragung oder anschließender Auswertung der Daten. | |||
[[Datei:Kamera Messadaten Spurerkennung.png|mini|left|500px|Abb 3:Ergebnisse der Messung]] | |||
<br clear=all> | |||
=Fehleranalyse= | |||
Die Fehlerquelle können an mehreren Stellen entstehen. So könnte eine fehlerhafte Übertagung der Grund für die fehlenden Messwerte sein. Dies könnte über ein Tool wie Wireshark leicht kontrolliert werden. Außerdem kann eine falsche Auswertung der Daten zum Fehlverhalten führen. Dies kann dank möglicher Open-Loop Simulationen überprüft werden. |
Aktuelle Version vom 21. Juni 2023, 23:00 Uhr
Einleitung
In diesem Protokoll soll die Spurerkennung genauer untersucht werden, um mögliche Fehler zu erkennen und analysieren. Dazu wurde im Vorfeld eine Messung durchgeführt, die einen Vergleich zwischen der Spurerkennungssoftware und den versendeten Daten zieht. Mit diesen Daten und einer eindeutigen Referenz, können möglich Fehlerquellen gefunden und analysiert werden. Alle Messergebnisse sind im SVN-Ordner abgelegt.
Durchführung der Messung
In den beiden Abbildungen sind die Zustände der Kameraführung zu erkennen, die bei einer Messung verwendet wurde. Da es bei diversen Messungen zu einem unerklärlichen Fehler gekommen ist, wurde nur eine Vermessung der Geraden vollzogen. Dazu wurde die Spurerkennungssoftware gestartet und die versendeten Daten in ControllDesk aufgezeichnet. Die Ausgabe der Spurerkennungssoftware wurde dabei im Windows Command Windows ausgegeben und in einer Textdatei (ErsteMessung.txt) gespeichert. Die versendeten Daten sind zudem in einem .mat File archiviert.
Messdaten Auswertung
Zur Auswertung der zuvor vermessenen Messdaten, wurde hierzu ein Matlab Skript erstellt, welches die Daten beider Dateitypen einließt und grafisch Darstellt.
clc;
clear all;
close all;
addpath ('C:\Users\david\Documents\Technik\HSHL\Semester_06\22_Systementwurf\Systementwurf\Workshops\Abgaben\David Weigt & Yunkai Lin\Workshop_9\9_9');
addpath 'C:\Users\david\Documents\Technik\HSHL\Semester_06\22_Systementwurf\Systementwurf\Software\CaroloCupFahrzeug\funktionen' ;
Messdatei = 'Kamera_im_ex_ersteMessung.mat';
[CCF CCF_mess] = funktion_wandle_dspacemess_in_CCF_mess(Messdatei);
%Laden der Messdaten aus Controlldesk
SenKam_SpurA_f64 = CCF_mess.SenKam_SpurA_f64;
SenKam_SpurB_f64 = CCF_mess.SenKam_SpurB_f64;
SenKam_SpurC_f64 = CCF_mess.SenKam_SpurC_f64;
%Laden der Referenzmessung
dateipfad = 'ErsteMessung.txt';
dateiID = fopen(dateipfad, 'r');
i = [1 1 1];
werte = [];
zeile = fgetl(dateiID);
while ischar(zeile)
if startsWith(zeile, 'a:')
wert = str2double(extractAfter(zeile, 'a:'));
Ref_SenKam_SpurA_f64(i(1),:) = wert;
i(1) = i(1) + 1;
elseif startsWith(zeile, 'b:')
wert = str2double(extractAfter(zeile, 'b:'));
Ref_SenKam_SpurB_f64(i(2),:) = wert;
i(2) = i(2) + 1;
elseif startsWith(zeile, 'c:')
wert = str2double(extractAfter(zeile, 'c:'));
Ref_SenKam_SpurC_f64(i(3),:) = wert;
i(3) = i(3) + 1;
end
zeile = fgetl(dateiID);
end
fclose(dateiID);
%Plot der Referenzmessung
subplot(3, 2, 1)
plot(Ref_SenKam_SpurA_f64);
title("Ref_SenKam_SpurA_f64");
subplot(3, 2, 3)
plot(Ref_SenKam_SpurB_f64);
title("Ref_SenKam_SpurB_f64");
subplot(3, 2, 5)
plot(Ref_SenKam_SpurC_f64);
title("Ref_SenKam_SpurC_f64");
%Plot der Controlldesk Messung
subplot(3, 2, 2)
plot(SenKam_SpurA_f64);
title("SenKam_SpurA_f64");
subplot(3, 2, 4)
plot(SenKam_SpurB_f64);
title("SenKam_SpurB_f64");
subplot(3, 2, 6)
plot(SenKam_SpurC_f64);
title("SenKam_SpurC_f64");
Ergebnis
Aus der Ausgabe des zuvor gezeigten Skripts ist hervorzugehen, dass nur ein Teil des Polynoms übertragen wurde. Dabei ist zu beachten das mit Ref_ die kopierten Messwerte des Windows Commands der Spurerkennungssoftware gemeint ist. Somit besteht ein Fehler in der Übertragung oder anschließender Auswertung der Daten.
Fehleranalyse
Die Fehlerquelle können an mehreren Stellen entstehen. So könnte eine fehlerhafte Übertagung der Grund für die fehlenden Messwerte sein. Dies könnte über ein Tool wie Wireshark leicht kontrolliert werden. Außerdem kann eine falsche Auswertung der Daten zum Fehlverhalten führen. Dies kann dank möglicher Open-Loop Simulationen überprüft werden.