Seite 12 von 23

Re: 2DOF 360° SimPit

Verfasst: 25. Aug 2016, 17:51
von DirtDiver
Wegen Dir sprang heut morgen mein Laster nich an..... :lol: :lol:

Re: 2DOF 360° SimPit

Verfasst: 26. Aug 2016, 10:44
von JaBoG32_Toolface
Soso... Die Bank Achse ist bei 80kg ausgeglichen.
Wenn ich im Pit sitze ist sie es nicht :lol:

Re: 2DOF 360° SimPit

Verfasst: 28. Aug 2016, 20:46
von JaBoG32_Siddharta
Bosshogs verdacht hat sich bestätigt:

Die Vektoren für Bank sind radianten gehen aber nur von -3,14... bis + 3,14...
Der von radiant von Pitch geht sogar nur von -1,57... bis +1,57...
Damit die Formel:
bank * cos(pitch)
funktioniert, brauche ich den vollen, positiven radiant von 0 bis 6.283....

Wenn ich math.abs anwenden wird leider nur das Vorzeichen gelöscht. Ich muss also ein Produkt erhalten.
In Excel gibt es dafür die Matrix-Funktion:
SUMMENPRODUKT

Wie lautet so ein Formel in der normalen Mathematik?

Re: 2DOF 360° SimPit

Verfasst: 28. Aug 2016, 21:26
von Sparrowhawk
Wenn ich es richtig verstehe musst Du die Bank Werte -3,14 bis +3,14 nach 0 bis 6,283 umwandeln.
Dazu würde ich einfach zu dem Bank Wert 3,14 hinzu addieren.
Beim Pitch würde ich den Wert erst mit 2 multiplizieren und dann wieder die 3,14 dazu addieren...

Ich hoffe ich habe es nicht falsch verstanden... :gruebel:

Re: 2DOF 360° SimPit

Verfasst: 29. Aug 2016, 10:20
von JaBoG32_Siddharta
Das hat funktioniert d.h. Bank ist jetzt rad 0 - 6.283...
aber Bank 0° ist jetzt rad 3,14... was wiederum mit cos(pitch) nicht zusammen funktioniert.

Daher habe ich jetzt gerechnet (acBank + 3,14...) -3,14.... um rad 0 auf Bank 0° zu kalibrieren.
Hat auch funktioniert, aber dann macht mir DCS wieder einen Strich durch die Rechnung,
weil IMMER unter 0 ein minus davor gesetzt wird.
D.h. Bank -90° ist nicht rad 4,71... sonder wieder rad -1,57 :cry:
:kotz:

Re: 2DOF 360° SimPit

Verfasst: 29. Aug 2016, 19:44
von JaBoG32_Siddharta
So hier die Erklärung von BOSSHOG warum nichts funktioniert hat!

Ich hab‘ mir mal die Mühe gemacht, die Werte von Yaw, Pitch und Roll auszuwerten, die von DCS über LoGetSelfData geliefert werden. Deine Beobachtungen bezüglich der Maximalwerte werden damit bestätigt. Der mögliche Hintergrund ist die fehlende, eindeutige Bestimmungsmöglichkeit für Yaw, Pitch und Roll. Mit anderen Worten, die Werte (in Grad)
Yaw = 0.0
Pitch = 180.0
Roll = 0.0
entsprechen einem Rückenflug. Diese Fluglage kann aber auch mit
Yaw = 180.0
Pitch = 0.0
Roll = 180.0
dargestellt werden. Die Fluglage ist exakt die Gleiche.
DCS versucht die Darstellung eindeutig zu machen indem der Pitch-Wert nie größer als 90 Grad werden darf.
Dazu müssen aber Yaw und Roll umgerechnet werden in dem Augenblick, wenn Pitch 90° überschreitet.
In diesem Augenblick wird der Roll-Winkel und der Yaw-Winkel neu angepasst.
Auf das obige Beispiel bezogen startet der Loop mit Roll = 0.0. Beim durchlaufen von Pitch > 90 Grad springt Bank auf 180.0 (oder -180) und Yaw auf 180.0.
Der zweideutige Fall tritt somit nicht ein.
Das zu lösende Problem ist die Werteumkehrung zu erkennen:
Dann müsste der Pitch nach Durchlauf von 90 Grad als 180 – Pitch gerechnet werden. Bei Pitch 89 erhält man 91 als Ergebnis.
Zum Bank wird 180 Grad addiert und auf den Wertebereich +-180 eingegrenzt.
Man kann auch die Werte konvertiert in die Maschinensteuerung einbauen. Dieser Fall ist relativ kompliziert. Hier müsste eine 3 x 3 Drehmatrix ausgewertet werden.
Die Drehmatrix erlaubt es die Flugzeuglage eindeutig zu ermitteln.
Der Trick ist, das die DCS-Werte in der Drehmatrix immer eine eindeutige Achsenlage ergeben.
Durch standardisierte Rückdrehung der Matrix erhält man immer eindeutige Winkel, die nur beim 360° Überlauf auf Null springen.
Ich habe mir solche Tools für C++ geschrieben. Eine Überführung in LUA ist zwar möglich, ist aber ein erheblicher Aufwand.

Gruß,
BOSSHOG

Re: 2DOF 360° SimPit

Verfasst: 11. Sep 2016, 21:21
von JaBoG32_Siddharta
So Leute, hier sieht man was Bosshog programmieren muss um DCS zu überlisten!!!

"Hi Sid,
das Problem ist doch komplexer als auf den ersten Blick vermutet. Ich habe ein kleines C++ Projekt geschrieben, das eine Lösung beinhaltet, die im praktischen Gebrauch getestet werden muss. Mein Lösungsansatz über eine Matrix funktioniert nicht, da die Rückdrehung brav die eingegebenen Attitude Werte zurückreicht. Das liegt daran, dass die Matrix auch zwei oder mehr mögliche sin/cos Werte für ein und dieselbe Attitude produziert. Die Lösung ist es, zu erkennen wann DCS Yaw und Roll flippt. DCS hat einen weichen Übergang für den Pitch eingebaut und nimmt einen Sprung um 180° für Yaw und Roll in Kauf. Eine moving Plattform kann Yaw ignorieren, braucht aber weiche Übergänge für Roll und Pitch. Wobei Pitch und Roll den Bereich von +-180 Grad abdecken sollen. Die zu verwendende Funktion heißt ConvertDCSattitude. Die wird mit den Werten von DCS gefüttert und liefert (hoffentlich) die korrekten Werte für deinen Simulator. Da die Funktion eine Vergleichserkennung benutzt, müssen die aktuellen DCS Werte gebunkert werden und beim nächsten Aufruf als ‚previous‘ Werte übergeben werden. Nur so kann die Sondersituation erkannt werden.

Das beigelegte Paket enthält ein komplettes C++ (VS2013) Projekt, das ein Beispieldiagramm zeigt.
Im Paket befindet sich das Beispielprogramm ‚Matrix.exe‘ unter
Matrix\x64\Release

Es zeigt drei Diagramme, die 4 aufeinanderfolgende Loopings darstellen in denen der Pilot den Bank-Angle auf Null hält. Die blauen Kurven stellen die DCS Werte dar, die roten die Ergebnisse nach der Umrechnung. Für Dich ist die rote Pitch-Kurve und die rote Roll Kurve von Interesse. Beim Pitch pendelt die blaue DCS Kurve zwischen +-90° hin und her. Die rote zeigt die korrespondierenden Werte zwischen +-180°.

Das zweite Diagramm zeigt die Roll-Entwicklung. Während die blaue DCS Kurve den Flipp bei +90° und -90° zeigt, bleibt die rote Ergebniskurve brav bei null Grad Bank.
Die senkrechten, grauen Diagrammstriche kennzeichnen das Ende eine kompletten Loops.
Das dritte Diagramm zeigt die Yaw Entwicklung, die für deinen Simulator Ignoriert werden kann.

Die Konvertierungsfunktion nutzt ein paar Hilfsfunktionen aus meiner GEOMETRY Library.
Ich hab‘ die Funktionen extrahiert und als Quelltext zur Verfügung gestellt.
Da die Matrixfunktionen anscheinend auch von Interesse sind, hab‘ ich auch die beigelegt.
Die Quelltexte dürfen an Interessenten weitergegeben werden."

Re: 2DOF 360° SimPit

Verfasst: 12. Sep 2016, 18:53
von JaBoG32_G-Rex
Heftig

Re: 2DOF 360° SimPit

Verfasst: 9. Jan 2017, 00:13
von JaBoG32_Siddharta
Ein sonst sehr schweigsamer Freund, darf die Rift im Oma Progamm testen:
https://dl.dropboxusercontent.com/u/110 ... Pit-VR.mp4

Ui Jui Jui Jui! :lol:

Re: 2DOF 360° SimPit

Verfasst: 9. Jan 2017, 05:07
von Striker
:lol: .... am besten finde ich den Nothammer auf der rechten Seite.... :lol:
Aber coole Sache....Vor allem, wieder der typische Effekt. Man stellt sich die Person die man sonst nur über den TS hört bildlich immer anders vor...Nun hat man mal ein Gesicht...War schon zum Geschwadertreffen so...