Seite 1 von 1

Anfänger bittet um Hilfe. TrackIR Daten mit FreePIE editieren

Verfasst: Sonntag 20. Mai 2018, 08:21
von edelatze_roman
Hi,

um mein Head Tracking Projekt abzuschließen ist der Letzte Schritt nun ein kleines Programm zu schreiben, welches die Rohdaten des Bewegungssensors abgreift, und mit meinem Algorithmus neu berechnet.
Leider habe ich keine Vorkenntnisse vom Programmieren, sodass mich Kleinigkeiten sehr lange aufhalten.
Vielleicht habt ihr ja einen Vorschlag, wie ich meine zwei konkreten Probleme lösen kann.

Rohdaten werden in Abhängigkeit meiner Kopfbewegung korrekt in FreePIE angezeigt:
diagnostics.watch(trackIR.yaw)
diagnostics.watch(trackIR.pitch)
diagnostics.watch(trackIR.roll)
diagnostics.watch(trackIR.x)
diagnostics.watch(trackIR.y)
diagnostics.watch(trackIR.z)

Problem Nr.1

setze ich einen Variable auf einen festen Wert, gehen alle anderen Werte auf 0.
Gibt es die Möglichkeit, einer Variable einen Wert zuzuweisen, ohne dass die anderen Werte beeinflusst werden?

Problem Nr.2

trackIR.yaw = math.atan(trackIR.x/trackIR.y)
Hier habe ich dass Problem, dass Track IR.y den Wert 0 annehmen Kann. Division durch 0 nicht möglich.
Gibt es hier einen Weg, wie man den Wert 0 ausschließen kann?

Ich bin um jede Hilfe dankbar.

Gruß,
Roman

Re: Anfänger bittet um Hilfe. TrackIR Daten mit FreePIE editieren

Verfasst: Sonntag 20. Mai 2018, 09:00
von __deets__
Statt atan benutzt man atan2, genau wegen dem von dir beschriebenen Problem.

Re: Anfänger bittet um Hilfe. TrackIR Daten mit FreePIE editieren

Verfasst: Sonntag 20. Mai 2018, 10:36
von edelatze_roman
Hi deets,
danke für die schnelle Hilfe, doch leider brachte das keinen Erfolg.
Nun bekomme ich diese Fehlermeldung:
https://picload.org/view/doopaldi/4.png.html

Re: Anfänger bittet um Hilfe. TrackIR Daten mit FreePIE editieren

Verfasst: Sonntag 20. Mai 2018, 10:52
von Sirius3
Hast Du nachgelesen, wie man ›atan2‹ benutzt? Das solltest Du nachholen.

Re: Anfänger bittet um Hilfe. TrackIR Daten mit FreePIE editieren

Verfasst: Sonntag 20. Mai 2018, 11:23
von edelatze_roman
zugegeben... es war naiv zu glauben, dass es nur durch hinzufügen der Zahl 2 funktioniert :-)
mit dem Ausdruck z = atan2(x,y) funktioniert es nun. Damit wäre Problem Nr. 2 gelöst. Super!

Nun habe ich nur noch Problem Nr.1
FreePIE empfängt Variable trackIR.yaw als Rohdatensatz. Nun muss ich dieser Variable einen neuen Wert zuweisen, und unter gleichem Namen an die Simulation weiterleiten.
Das führt dazu, dass das Skript zwar läuft, aber alle Bewegungsfreiheitsgrade 0 ergeben.
https://picload.org/view/dooplaia/11.png.html
https://picload.org/view/dooplail/22.png.html

Re: Anfänger bittet um Hilfe. TrackIR Daten mit FreePIE editieren

Verfasst: Sonntag 20. Mai 2018, 11:27
von __deets__
Bist du sicher, das du die Parameter an atan2 in der richtigen Reihenfolge übergibst? In der Doku ist das nämlich y,x

Bezüglich deines anderen problems kann ich dir nicht helfen. Ich verstehe durch die Bilder weder, was da passiert, noch was da passieren soll. Gib es für dieses Tool ggf eine Community?

Re: Anfänger bittet um Hilfe. TrackIR Daten mit FreePIE editieren

Verfasst: Sonntag 20. Mai 2018, 11:58
von edelatze_roman
Ich bin noch in der Experimentierphase. Daher macht es momentan noch keinen Unterschied ob y,x oder umgekehrt. Hauptsache es funktioniert und ich habe plausibele Werte.

Mein anderes Problem versuche ich noch einmal verständlicher anhand eines Screenshots zu erklären.
https://picload.org/view/doopwgoi/erklaerung.jpg.html

Ich habe mich bereits an die TrackIR-, FreePIE-, und Rennsimulationscommunity gewendet. Bisher leider ohne Erfolg.
Aber hier geht es ja super voran!

Re: Anfänger bittet um Hilfe. TrackIR Daten mit FreePIE editieren

Verfasst: Sonntag 20. Mai 2018, 12:20
von __deets__
Na so wie ich das verstehe ist das ja ein FreePIE verhalten. Der mag nicht, wenn du Werte selber setzt. Warum da so ist, muss der ja wissen.

Kannst du nicht einfach eine neue Variable einführen, yaw2, die dann propagiert wird?

Re: Anfänger bittet um Hilfe. TrackIR Daten mit FreePIE editieren

Verfasst: Sonntag 20. Mai 2018, 12:35
von __deets__
Ich habe mal ein bisschen in den Code geschaut. Da sehe ich nichts, das dieses Verhalten erklären würde. Vielleicht solltest du mal ein minimales Beispiel bauen & einen issue bei FreePIE einstellen.

Re: Anfänger bittet um Hilfe. TrackIR Daten mit FreePIE editieren

Verfasst: Montag 21. Mai 2018, 11:28
von edelatze_roman
__deets__ hat geschrieben: Sonntag 20. Mai 2018, 12:20
Kannst du nicht einfach eine neue Variable einführen, yaw2, die dann propagiert wird?
Ja, ich kann der Variable yaw2 den korrekten Wert zuweisen. Dann habe ich aber das Problem, dass die Simulation diesen Wert nicht einliest.

Hier kommen schon wieder neue Probleme auf mich zu, denn, so wie es aussieht, liest die Simulation nur die Daten direkt von der TrackIR Software, und nicht mein Python Skript von FreePIE.
Aber das hat nichts mit der Programmiersprache zu tun. Ich habe aber auch keine Ahnung, wie ich das das hinkriegen soll, bzw. wer da Rat weiß.

Gruß,
Roman

Re: Anfänger bittet um Hilfe. TrackIR Daten mit FreePIE editieren

Verfasst: Montag 21. Mai 2018, 11:43
von __deets__
Ich sehe das ja alles zum ersten Mal. Aber kann es sein, dass du da ein konzeptionelle Problem hast? So wie ich das sehe versuchst du denen originalmTracker Input mittels FreePI zu filtern, also zu modifizieren, und dann soll das modifizierte Ergebnis wieder zurück auf den tracker (respektive dessen Informations-Datenstruktur) geschrieben werden. Das geht glaube ich so nicht.

Du kannst remapping machen, also zb mouse oder Tastatur Ereignisse erzeugen. Aber dieser Filterfall ist so nicht vorgesehen.

Das heißt, das eben alle Programme, die am tracker hängen, dessen Daten bekommen. Dein SIM genauso wie FreePIE. Was du aber tun musst, ist deinen SIM auf bestimmte Tastatur oder Joystick Events zu konfigurieren, und die zu erzeugen. So sieht das zumindest aus. Ggf kann man auch virtuelle Geräte erzeugen, dann wäre das der Weg. KA wie FreePIE das macht, ich habe kein Windows hier.

Re: Anfänger bittet um Hilfe. TrackIR Daten mit FreePIE editieren

Verfasst: Montag 21. Mai 2018, 15:24
von edelatze_roman
__deets__ hat geschrieben: Montag 21. Mai 2018, 11:43 Ich sehe das ja alles zum ersten Mal. Aber kann es sein, dass du da ein konzeptionelle Problem hast? So wie ich das sehe versuchst du denen originalmTracker Input mittels FreePI zu filtern, also zu modifizieren, und dann soll das modifizierte Ergebnis wieder zurück auf den tracker (respektive dessen Informations-Datenstruktur) geschrieben werden. Das geht glaube ich so nicht.
Danke für den Hinweis.

Die Inspiration für mein Vorhaben entspringt diesem Video:
[/url]https://www.youtube.com/watch?v=DREkyWxBJtg[/url]

In den ersten 2 Minuten erklärt er seine Struktur:
- Freetrack generiert Rohdaten seines Eigenbau Headtracking device
- FreePIE modifiziert die Daten mittels Python Skript
- Simulation liest FreePIE Daten

Wenn er sein Skript ändert, ändert sich auch die Bewegung im Spiel.
Leider ist mein TrackIR 5 System nicht mehr kompatiblem mit dem alten Programm "Freetrack", sonst sollte es auch bei mir funktionieren wie bei ihm.
Daher dachte ich, es könnte auch mit der originalen TrackIR Software funktionieren anstatt Freetrack, tut es aber leider nicht.

Ich werde mal im Netz eine alternative Headtracking Software suchen, die mit meinen Gerät funktioniert.

Gruß,
Roman