WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Synthetische Messdaten erzeugen - Ist das so richtig?

 

phima
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 31.01.18
Wohnort: Baden-Württemberg
Version: ---
     Beitrag Verfasst am: 16.02.2018, 11:20     Titel: Synthetische Messdaten erzeugen - Ist das so richtig?
  Antworten mit Zitat      
Hallo zusammen,
ich möchte einen synthetischen Messdatensatz erzeugen. Folgendes Szenario:
Ich messe mit einem Radar-Sensor ein Ziel, auf das ich mich zubewege. Es gibt einen Start-Punkt für die Messung, der auch der Ursprung eines kartesischen Koordinatensystems ist. Das Ziel steht in diesem Koordiantensystem beispielsweise auf Pz(50, 0 , 1). Die Normale des Radar-Sensors sollte parallel zur X-Achse des Koordinatensystems ausgerichtet sein. Diese Ausrichtung soll mit zwei Winkeln (phi und theta) eingestellt werden können (nach rechts/links schauen, nach oben/unten schauen). Außerdem kommt noch hinzu, dass ich mich nicht immer auf der y-Achse gerade auf das Ziel zubewege, sondern dass dies unter einem Winkel (phi2) geschieht. Da dieser Winkel auch eingestellt werden soll, ich mich aber immer am Ende meiner Bewegung bei dem Ziel befinden muss, drehe ich also meine Messdaten um das Ziel. Ich möchte also synthetische Messdaten erhalten, die mir Daten liefern, was der Radar-Sensor und verstellung verschiedener Winkel tatsächlich sieht. Ich hoffe das ist soweit verständlich. Folgendes habe ich verbrochen:
Code:


%% Punktwolke erstellen:
anzahlPunkte = 100;
x = linspace(50,1,anzahlPunkte);
y = -0.1 + (0.1+0.1).*rand(1,anzahlPunkte);
z = 0.95 + (1.05-0.95).*rand(1,anzahlPunkte);
Daten = [x' y' z'];

%% Drehpunkt für die Zubewegeungs-Drehung und Winkelverstellung
xp = x(1,1);
yp = 0;

phi = 6;
phi2 = -3;
theta = 4;


%% Drehung um z-Achse
Rz = [ cosd(phi) -sind(phi)     0;
       sind(phi)  cosd(phi)     0;
       0            0           1];
%% Drehung um y-Achse
Ry = [ cosd(theta) 0    sind(theta);
       0            1           0;
       -sind(theta)  0   cosd(theta)];


Daten2 = nan(anzahlPunkte,3);
Daten3 = nan(anzahlPunkte,3);
Daten4 = nan(anzahlPunkte,3);

[row,col] = size(Daten);

for i = 1:row
    Daten2(i,:) = Rz*Daten(i,:)';
end

for i = 1:row
    Daten3(i,:) = Ry*Daten2(i,:)';
end

%% Drehung um einen Punkt P(xp,yp,zp)

for i = 1:row
    Daten4(i,1) = xp + cosd(phi2)*(Daten3(i,1)-xp) - sind(phi2)*(Daten3(i,2)-yp);
    Daten4(i,2) = yp + sind(phi2)*(Daten3(i,1)-xp) + cosd(phi2)*(Daten3(i,2)-yp);
    Daten4(i,3) = Daten3(i,3);
end

%% Plot
plot3(x,y,z,'.b');hold on
grid on
plot3(x(1,end),y(1,1),z(1,1),'<');hold on
plot3(Daten3(:,1),Daten3(:,2),Daten3(:,3),'.r'); hold on
plot3(Daten4(:,1),Daten4(:,2),Daten4(:,3),'.y');
xlabel('x-Achse')
ylabel('y-Achse')
zlabel('z-Achse')
set(gca, 'Xtick', 0:10:50, 'XLim', [0, 50]);
set(gca, 'Ytick', -25:10:25, 'YLim', [-25, 25]);
set(gca, 'Ztick', -25:10:25, 'ZLim', [-25, 25]);
title('Synthetische Messdaten')
legend('Daten unberührt','Start-Position','Daten mit phi und theta Verstellung','Daten mit zusätzlicher phi2 Verstellung')

 


Ihr könnt den Code einfach so kopieren, sollte Funktionieren. Anhand des Plots wird vielleicht klarer, um was es geht.

Jetzt zu meiner doch simplen Frage: Ist das so korrekt? Erhalte ich hier die Daten, die ich mir wünsche? Denn trotz den Plots fällt es mir doch relativ schwer das zu erkennen. Und ich glaube ich muss bei den Winkeln in den Rechnungen das Vorzeichen drehen, oder? Damit eben die "gesehenen" Messdaten passen.

Ich danke euch für eure Zeit und Hilfe!

Liebe Grüße
phima
Private Nachricht senden Benutzer-Profile anzeigen


phima
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 31.01.18
Wohnort: Baden-Württemberg
Version: ---
     Beitrag Verfasst am: 23.02.2018, 17:46     Titel: Weiß schon jemand ob das so stimmt?
  Antworten mit Zitat      
Hallo zusammen,

kann mir schon jemand bei diesem Problem helfen? Stimmen meine Annahmen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.