Unter http://www.youtube.com/watch?v=XwwJkF9KDOA findest du ein Video.
Dieses zeigt symbolhaft ein Mobiltelefon, das am Hinterkopf eines
Menschen angebracht ist. Die weißen Kugeln symbolisieren die Augen,
Drehung geschieht um den Hals in den Freiheitsgraden, die ein Kopf hat.
Das Display des Mobiltelefones zeigt nach außen. Es hat einen
Schwerkraftkompensierten 3D-Beschleunigungssensor. Das heißt, wird der
Kopf beschleunigt, wird auch das Mobiltelefon beschleunigt, und - nicht
vergessen - negativ beschleunigt beim Abbremsen.
Wie es bei Headtrackern so ist, soll die Bewegung auf Mausbewegung
umgelenkt werden. Das ist soweit kein Problem. Auch die Daten vom Handy
zu gewinnen ist kein Problem.
Nein, es ist ein Logikproblem, aus den X, Y und Z-Komponenten der
Beschleunigung(siehe http://developer.android.com/images/axis_device.png
) relative Mausbewegungen abzuleiten.
Die Frage ist konkret: Wie muß - bei den im Video gezeigten
Bewegungen(merke, das Mobiltelefon ist gekippt) - eine Funktion
X_Maus_relativ = f(X_Handy,Y_Handy,Z_Handy) und Y_Maus_relativ =
f(X_Handy,Y_Handy,Z_Handy) aussehen?
Wenn keine Idee, besseres Forum für die Frage vorschlagen.
Winston Barth schrieb:> Nein, es ist ein Logikproblem, aus den X, Y und Z-Komponenten der> Beschleunigung(siehe http://developer.android.com/images/axis_device.png> ) relative Mausbewegungen abzuleiten.
eigentlich ist das auch kein Logikproblem, sondern ein ganz banales
'Problem' aus der Phsik. Und zwar aus der Grundlagenphysik
Geschwindigkeit = Integral( Beschleunigung dt )
Ort = Integral( Geschwindigkeit dt )
das und ein wenig Vektor bzw Matrizenrechnung, hinten nach noch eine
DIfferenzbildung um die Orts-Veränderung festzustellen und die Sache ist
gegessen
Winston Barth schrieb:> Unter http://www.youtube.com/watch?v=XwwJkF9KDOA findest du ein Video.> Dieses zeigt symbolhaft ein Mobiltelefon, das am Hinterkopf eines> Menschen angebracht ist. Die weißen Kugeln symbolisieren die Augen,> Drehung geschieht um den Hals in den Freiheitsgraden, die ein Kopf hat.>> Das Display des Mobiltelefones zeigt nach außen. Es hat einen> Schwerkraftkompensierten 3D-Beschleunigungssensor. Das heißt, wird der> Kopf beschleunigt, wird auch das Mobiltelefon beschleunigt, und - nicht> vergessen - negativ beschleunigt beim Abbremsen.>> Wie es bei Headtrackern so ist, soll die Bewegung auf Mausbewegung> umgelenkt werden.
So wie das Video aussieht, wird mit der Maus das Kopf-Modell gedreht
bzw. die Ansicht darauf.
> Das ist soweit kein Problem. Auch die Daten vom Handy> zu gewinnen ist kein Problem.
Die braucht's dazu doch garnicht?
Und was hat das alles mit "Sprache" zu tun?
Wenn überhaupt, ist das ein arithmetischen Problem, kein sprachliches.
Karl Heinz Buchegger schrieb:> eigentlich ist das auch kein Logikproblem, sondern ein ganz banales> 'Problem' aus der Phsik. Und zwar aus der Grundlagenphysik>> Geschwindigkeit = Integral( Beschleunigung dt )> Ort = Integral( Geschwindigkeit dt )
So ermittle ich Weg_Vektor = Beschleunigung_Vektor * (Zeit)².
Weg_x = Beschleunigung_x * (Zeit)²
Weg_y = Beschleunigung_y * (Zeit)²
Weg_z = Beschleunigung_z * (Zeit)²
Und was ist Zeit?
>> das und ein wenig Vektor bzw Matrizenrechnung, hinten nach noch eine> DIfferenzbildung um die Orts-Veränderung festzustellen und die Sache ist> gegessen
Wenns so trivial ist, rechne es doch mal aus. Ich finde das kein bißchen
trivial.
Allgemein: Das ist nicht der Ton, den man in einem Forum erwarten kann.
Findet wieder zu diesem Ton zurück. Danke.
>Und was ist Zeit?
irrelevant, mal hautpsächlich..
am besten nimmst du die bildwiederholfrequenz vom monitor (60Hz z.b.)
also 1/60 sekunde
>relative Mausbewegungen abzuleiten.
dazu musst du erstmal definieren WIE/WANN sich die maus bewegen soll
z.B: soll sie, wenn man nach rechts schaut immer nach rechts fahren
solange bis man wieder mittig schaut(wie ein joystick)?
was ist wenn man den kopf links/rechts bewegt (ohne drehung)
oder den kopf schwenkt?
oder soll sie dorthin fahren wo man hin schaut ? (das würd eher einer
maus entsprechen)
usw. usw.
solange du nichts davon definierst, kannst du auch nichts ausrechnen
Winston Barth schrieb:> Karl Heinz Buchegger schrieb:>> eigentlich ist das auch kein Logikproblem, sondern ein ganz banales>> 'Problem' aus der Phsik. Und zwar aus der Grundlagenphysik>>>> Geschwindigkeit = Integral( Beschleunigung dt )>> Ort = Integral( Geschwindigkeit dt )> So ermittle ich Weg_Vektor = Beschleunigung_Vektor * (Zeit)².
Nö, das ist nur dann der Fall, wenn die Beschleunigung konstant ist.
Allgemein:
Robert L. schrieb:> am besten nimmst du die bildwiederholfrequenz vom monitor (60Hz z.b.)
also etwa 2 m/s² * 0.167. Steht dort 2m/s² als Beschleunigung in
Richtung X, hat sich das Handy 33 mm in X-Richtung seit dem letzten Bild
bewegt.
>>relative Mausbewegungen abzuleiten.>> dazu musst du erstmal definieren WIE/WANN sich die maus bewegen soll>> was ist wenn man den kopf links/rechts bewegt (ohne drehung)
Dann soll sich die Maus nach links/rechts bewegen(Y_Maus_relativ = 0).
> oder soll sie dorthin fahren wo man hin schaut ? (das würd eher einer> maus entsprechen)
Genau so soll es sein. Allerdings habe ich eine relative Bewegung, also
etwa "20 Einheiten nach links". Das heißt, wenn die Maus dort ist, wo
ich hinschaue, soll die rel. Bewegung X_Maus_relativ = 0 &
Y_Maus_relativ = 0 sein.
Winston Barth schrieb:> Johann L. schrieb:>> Allgemein:>> Und was nutzt mir diese Formel jetzt?
Deine Formel ist völliger Blödsinn. Wenn du keine Variable definierst
hat sie Null aussagekraft.
Winston Barth schrieb:> Deine Formel ist völliger Blödsinn.
Nein, die Formel ist völlig korrekt und gibt das wieder, was Karl Heinz
oben schon geschrieben hat:
Karl Heinz Buchegger schrieb:> Geschwindigkeit = Integral( Beschleunigung dt )> Ort = Integral( Geschwindigkeit dt )Winston Barth schrieb:> Wenn du keine Variable definierst hat sie Null aussagekraft.
Die Variablen sind so definiert, wie in der Physik üblich:
a: Beschleunigung
v: Geschwindigkeit
s: Weg
t: Zeit
Die großen, langestreckten 'S' sind Integralzeichen. Habe ich noch etwas
vergessen?
Winston Barth schrieb:> Karl Heinz Buchegger schrieb:>> eigentlich ist das auch kein Logikproblem, sondern ein ganz banales>> 'Problem' aus der Phsik. Und zwar aus der Grundlagenphysik>>>> Geschwindigkeit = Integral( Beschleunigung dt )>> Ort = Integral( Geschwindigkeit dt )> So ermittle ich Weg_Vektor = Beschleunigung_Vektor * (Zeit)².
No.
Du musst das schon genau so machen, wie in der Vorgabe.
Erst die Beschleunigung zur Geschwindigkeit summieren.
und dann die Geschwindigkeit zum Weg aufsummieren.
Wenn du beschleunigst und so eine Geschwindigkeit aufbaust und dann
plötzlich aufhörst zu beschleunigen, bewegst du dich nach wie vor
weiter. Weil du bereits eine Geschwindigkeit aufgebaut hast.
> Wenns so trivial ist, rechne es doch mal aus. Ich finde das kein bißchen> trivial.
double dt = ......; // in welchen Zeitabständen du auch immer
// dann die Beschleunigung misst
vector3D acceleration, velocity, position;
while( 1 ) {
acceleration = ....;
velocity += acceleration * dt;
position += velocity * dt;
}
wo ist da jetzt das Problem?
Winston Barth schrieb:> Allgemein: Das ist nicht der Ton, den man in einem Forum erwarten kann.> Findet wieder zu diesem Ton zurück. Danke.
Ausgesuchte Höflichkeit kann ich in deinen Texten auch nicht
feststellen.
Alleine deshalb mache ich mir schon gar keine Gedanken um dein Problem.
Sind wir hier deine Lakaien, oder was?
Klaus Wachtler schrieb:> Winston Barth schrieb:>> Allgemein: Das ist nicht der Ton, den man in einem Forum erwarten kann.>> Findet wieder zu diesem Ton zurück. Danke.>> Ausgesuchte Höflichkeit kann ich in deinen Texten auch nicht> feststellen.> Alleine deshalb mache ich mir schon gar keine Gedanken um dein Problem.>> Sind wir hier deine Lakaien, oder was?
Du kannst auch nur stänkern, oder!?
Ich vielleicht auch.
Immerhin kannnst du den Beitrag ja melden, dann wird mein Gemecker
vielleicht gelöscht.
Das ändert aber nichts an dem Umstand, daß du hier ankommst, etwas
gelöst haben willst ohne vorher mal selber nach den Grundlagen gesucht
zu haben, und dann herumkommandierst, wie man dir gefälligst zu helfen
hat.
Das ist alles soweit halbwegs normal, wenn auch nicht schön.
Aber mit deinem Umgangston dann von anderen mehr Höflichkeit zu
verlangen, ist überdurchschnittlich dreist.
Also: was hast du dir schon selbst an Grundlagen gesucht?
Koordinatentransformation vielleicht?
Mal ein Mathebuch gesehen? Welches? Von außen oder auch von innen?
Was genau hast du daran dann nicht verstanden?
Winston Barth schrieb:> Allgemein: Das ist nicht der Ton, den man in einem Forum erwarten kann.> Findet wieder zu diesem Ton zurück. Danke.
Noch allgemeiner:
Ist es der Sinn eines Forums, daß jemand etwas lustiges im Internet
findet und sich dann hier die Formeln dazu abholt, ohne selber denken zu
müssen?
>> oder soll sie dorthin fahren wo man hin schaut ? (das würd eher einer>> maus entsprechen)>Genau so soll es sein.
aha
das funktioniert nicht (zumindest nicht mit den "angaben" die du bisher
gemacht hast)
beschleunigung in x y z ist da zu wenig (rotation um x y und z hast du
ja auch)
in der praxis wird es dann auch noch daran scheitern, dass die augen wo
anders hin schauen, als der kopf gedreht ist..
man könnte es aber auch VIEL einfacher machen, in dem man davon ausgeht,
dass der kopf an einer fixen stelle bleibt, und sich nur dreht...
dann brauchst du nur 2 achsen (zum/vom monitor geht dann ja nicht)...
Robert L. schrieb:> man könnte es aber auch VIEL einfacher machen, in dem man davon ausgeht,> dass der kopf an einer fixen stelle bleibt, und sich nur dreht...>> dann brauchst du nur 2 achsen (zum/vom monitor geht dann ja nicht)...
so soll es sein
Dennoch gibt es ein Problem mit den Achsen. Drehe ich den Kopf von links
nach rechts während ich nach unten schaue bekomme ich nicht die gleichen
Werte aber invertiert für X wenn ich von links oben nach rechts oben
schaue.
Hier kommen alle drei Beschleunigungen ins Spiel, die Richtung des
a-Vektor verändert sich von oben nach unten.
Das wiederum läßt sich mit dem Analysieren der Geometrie lösen, was mir
zu schwer ist.
Es ist alles andere als trivial, meine Herren.
Wichtig ist zu wissen, daß ich vom Handy diskrete Beschleunigungswerte
bekomme in kurzen aber unterschiedlichen Intervallen. Wenn ich jetzt
über die Zeit integriere, müßte ich einige Zeiteinheiten abwarten, um
von hier zu dort zu integrieren.
Das Ergebnis wird keinen Sinn ergeben.
KHB hat dir doch oben die Formeln genannt zum näherungsweisen
Integrieren mit diskreten Werten.
Wenn du jetzt keine konstanten Intervalle hast, ändert sich halt
jedesmal das dt - aber sonst bleibt alles beim Alten.
Oder wo ist das Problem?
wenn der kopf also fix ist, ist das doch (extrem) einfach:
ich würde da nix integriern (wozu auch)
>diskrete Beschleunigungswerte>bekomme in kurzen aber unterschiedlichen Intervallen.
(warum fragst du weiter oben nach der ZEIT, wenn die eh fix vorgegeben
ist??)
einfach die Zeit (zwischen dem letzten wert und jetzt) multipliziert mit
der beschleunigung ergibt die geschwindigkeitszunahme (oder abnahme)
das addierst du zu deiner "letzten" geschwindigkeit ergibt die neue
aktuelle geschwindigkeit
die selbe zeit wie oben multipliziert mit der geschwindigkeit = strecke
(dies addierst du zum aktuellen standpunkt)
das ganze auch für die 2. achse..
fertig
(das läuft zwar irgendwann wegen rundungsdifferenzen und
messungenauigkeiten extrem aus dem ruder, aber ein paar minuten lang
wird das schon gehen...)
Winston Barth schrieb:> Das wiederum läßt sich mit dem Analysieren der Geometrie lösen, was mir> zu schwer ist.
Tja.
Dann wirds eben nichts.
Es gibt eben doch einen Unterschied zwischen
möchten - wollen - können
> Du hast die Geometrie gänzlich vernachlässigt. X-Handy ungleich X-Maus.
Weiß ich. Aber ein bißchen was soll ja auch für dich bleiben.
Sonst geht's dir am Ende so wie dem Walter Maischberger, dass du die
anderen fragen musst: Und wo war da jetzt meine Leistung?
Karl Heinz Buchegger schrieb:> Tja.> Dann wirds eben nichts.
Mit deiner Hilfe wohl wahr.
>> Du hast die Geometrie gänzlich vernachlässigt. X-Handy ungleich X-Maus.> Weiß ich. Aber ein bißchen was soll ja auch für dich bleiben.
Genau, die restlichen kleinen 95 Prozent um die sich die Frage dreht.
Warum ist Klaus noch nicht gebannt?
Karl Heinz Buchegger schrieb:> Tja.> Dann wirds eben nichts.
Mann, bist du heute herzlos.
Willst du dich nicht gleich selbst bannen?
Rein vorsorglich... :-)
Klaus Wachtler schrieb:> Karl Heinz Buchegger schrieb:>> Tja.>> Dann wirds eben nichts.>> Mann, bist du heute herzlos.
Ich schreib ihm doch jetzt keine 5 Seiten Kurz-Abhandlung über 3D
Geometrie und wie man Koordiatensystemtransformationen mittels Matrizen
in den Griff kriegt.
> Willst du dich nicht gleich selbst bannen?> Rein vorsorglich... :-)
Hmm. Könnt ich natürlich tun.
Aber ich denke, ich belass es heute mal bei einer Verwarnung.
Winston Barth schrieb:> Wenn ich hier Moderator wäre würde ich Klaus nun sperren.
Bist du aber glücklicherweise nicht, und ich glaube Andreas genug
zu kennen, dir zu versichern: mit dem Benehmen wirst du das hier
auch nie werden.
Ein Freund von mir würde deine Herangehensweise wohl mit den Worten
kommentieren: "Zu faul, einen Eimer Wasser umzuwerfen, der schon
auf der Kippe steht."
Du hast nun schon alles vorgesetzt bekommen, von der vollständigen
analytisch exakten mathematischen Beschreibung bis zu einer
Andeutung, wie man das in der Praxis näherungsweise umsetzen kann,
aber den verbliebenen Rest darfst du schon noch selbst erledigen,
so dich das Thema denn ernsthaft interessiert.
>Aber ich denke, ich belass es heute mal bei einer Verwarnung.
Na aber... Reiss Dich mal am Riemen Mensch. Man kriegt niemals ein paar
Salzburger Nockerln zu Deinen Antworten. Dabei mag ich die so. ;-)
Karl Heinz Buchegger schrieb:> Hmm. Könnt ich natürlich tun.> Aber ich denke, ich belass es heute mal bei einer Verwarnung.
Komisch.. Ich habe den Beitrag schon zweimal gemeldet und er ist immer
noch da. ;)
Ich glaube er hat einfach Probleme kontinuierliche mathematische
Lösungen in Diskrete umzu... ähh umzustellen, umzudeuten ?! Wie auch
immer.
Also zB. Abtastintervall als Zeit zu sehen und die Formel in einen
diskretisierten Algorithmus in irgendeiner Sprache (Programmiersprache)
zu bringen.
Uwe schrieb:> Ich glaube er hat einfach Probleme kontinuierliche mathematische> Lösungen in Diskrete umzu... ähh umzustellen, umzudeuten ?! Wie auch> immer.
Was ich glaube:
Ich glaube er hat das übliche Problem:
Können mit Wollen verwechselt und der Weg, wie man aus Wollen zu Können
kommt, der ist ihm zu steinig.
Kommt hier alle paar Tage vor: Da sieht jemand ein cooles Video auf
Youtube und beschliesst "will haben". Bis dann die Bestandsaufnahme
ergibt: Ich hab keine Ahnung wie das geht und lernen will ichs auch
nicht.
Das derjenige, der das Video gemacht hat, das auch nicht an einem Tag
sich aus den Rippen geschnitten hat, sondern er im Video den momentanen
Stand einer laufenden Entwicklung zeigt, wird geflissentlich ignoriert.
Sprich: Die in den Videos haben auch nicht mit dem coolen
Zwischen(End)Produkt angefangen, sondern oft viel banaler.
Oft trifft das zb. auf LED-Cubes zu. Sehen cool aus, aber dann kommt der
Katzenjammer: Keine Ahnung von Elektronik, keine Ahnung wie ein
Multiplex funktioniert, Timer sowieso Fehlanzeige,
Bildwiederholfrequenzen rechnen is nicht, Arrays sind in C
Schreckgespenster, Pointer eine Ausgeburt des Bösen, mit Ach und Krach
und viel Hilfe wird dann endlich mal ein Vorwiderstand ausgerechnet,
.... Aber einen LED Cube bauen wollen, bei denen man mit all diesen
Dingen besser auf Du-und-Du steht. Am besten gleich einen mit 16x16x16
und RGB.
Karl Heinz Buchegger schrieb:> Am besten gleich einen mit 16x16x16 und RGB.
:-)
4 Ki LEDs, das habe ich bislang auch noch nicht geschafft. :) Hab's
bisher "nur" auf 0,5 k LEDs gebracht (LED-Uhr mit Nachbildung einer
analogen Zeigeruhr). Übrigens habe ich mich auch da gründlich
verhauen: von üblicher CMOS-Technik verwöhnt, hatte ich den
Eigenstrombedarf der 12 Konstantstrom-LED-Treiber-ICs völlig
unberücksichtigt gelassen. Hatte zur Folge, dass ich einen einfach
so hingeschusterten 08/15-Linearregler durch eine Huckepack-Platine
mit einem Schaltwandler ersetzen durfte. :-/