Hallo Community, Ich werde demnächst den DIYDrones ArduIMU+ V3 bekommen. Dieser hat einen MPU 6000 3 Achsen Gyro und 3 Achsen Beschleunigungssensor drin und noch ein 3 Achsen Magnetometer... Da ich ihn noch nicht habe, wollte ich mich jetzt erstmal mit ein paar mathematischen Problemen auseinandersetzten die ich wohl später haben werden. Mein Ziel ist den Weg den dieser IMU zurücklegt aufzuzeichnen bzw. einfach erstmal die werte ausgeben zu lassen. (Im grunde wie hier http://www.youtube.com/watch?v=6ijArKE8vKU) Ich habe ein wenig recherchiert und erfahren das man den Weg eines Punktes wohl mit hilfe der doppelten Integration der Beschleunigung rausfinden kann (ebenfall dass sich erhebliche fehler beim integrieren durch das rauschen ergeben können). Meine erste Frage wäre demnach erstmal, hat jemand eine Seite oder Formel an der Hand mit dessen Hilfe ich rausfinden kann wie ich den Beschleunigungsvektor Integrieren kann/muss? Bei meiner zweiten Frage geht es um Genauigkeit, ich habe was von dem Kalkman-filter gelesen und weiß nicht ob dieser dringend notwendig ist und wie ungenau so ein Ergebnis bei einer kurzen Bewegung werden kann...(Bewegung innerhalb ca. 1m^3)? Un meine Letzte und wohl entscheindste frage ist, machen meine ersten Fragen sinn? Und habe ich mit meinen recht "normalen" Mathekenntnissen eine Chance hier weiter zu kommen.
Moin, da hast die aber ganz schön was vorgenommen. Hast du mal in den Publikationen von dem Autor des Videos geguckt? x-io.co.uk oder so ist seine Seite. Die würde ich mir mal ansehen. Da du aber anscheinend keine genaue Vorstellung davon hast was dort mathematische abgeht empfehle ich dir mal diese Seite http://www.starlino.com/dcm_tutorial.html Wie du siehst kommst du ums einlesen nicht herrum und das meißte davon was frei im Netz rum geistert ist englisch. Auf deutsch musst du dir bücher über inertial Navigation ansehen. MfG Tec
Jan L. schrieb: > Meine erste Frage wäre demnach erstmal, hat jemand eine Seite oder > Formel an der Hand mit dessen Hilfe ich rausfinden kann wie ich den > Beschleunigungsvektor Integrieren kann/muss? a ist der ermittelte beschleunigungsvektor v ist die Geschwindigkeit s ist der zurückgelegte Weg alle 3 sind Vektoren v = v + a s = s + v fertig. Aber glücklich wirst du damit nicht werden.
Hey, ich glaube da wirst du ziemlich Schwierigkeiten haben weil du immer wieder deine Fehler (durch Messrauschen verursacht) aufintegrieren wirst. Wenn du danach ein Kalmann hängst bringt das auch nicht sonderlich viel. Ein kommolitone von mir hat das mal versucht und kam auf keinen grünen Zweig (genauigkeit ließ zu wünschen übrig) speicher dir lieber die Positionsdaten die du über das GPS modul bekommst alle sec ab, dann hast du deine pos.
Jan L. schrieb: > Ich habe ein wenig recherchiert und erfahren das man den Weg eines > Punktes wohl mit hilfe der doppelten Integration der Beschleunigung > rausfinden kann (ebenfall dass sich erhebliche fehler beim integrieren > durch das rauschen ergeben können). Theoretisch ist das eher simpel. Du kannst ja mal nach Koppel- navigation googlen. Praktisch musst Du aber mit so grossen Fehlern rechnen, das dieses Verfahren wohl kaum noch genutzt wird. Zumal es heute ja wesentlich bessere Verfahren zur Ortsbe- simmung (GPS) gibt. Gruss Harald
aber klappt das denn auf so kleinem raum? zb wenn ich die bewegung von nem stift oder ähnlichem auzeichnen möchte
Jan L. schrieb: > aber klappt das denn auf so kleinem raum? zb wenn ich die bewegung von > nem stift oder ähnlichem auzeichnen möchte Das Problem ist eher, dass dir dein Programm nach 10 Minuten laufenlassen sagen wird, dass dein Bleistift, der eigentlich ruhig vor dir auf dem Tisch liegt, mitlerweile schon über dem Brenner in Italien ist und mit einem Affenzahn sich in Richtung Sizilien bewegt :-) Gyros und Beschleunigungssensoren, die dieses Problem nicht in der Form haben gibt es zwar, aber die kannst du nicht bezahlen. Für kurze Integrations-Zeiträume ist das alles kein Problem. Aber bei längeren Zeiträumen geht das (wegen der doppelten Integration) ratz fatz ins Unbrauchbare.
> v = v + a > s = s + v Da fehlen die Intervalle dt: v = v + a * dt s = s + v * dt Man sollte noch anmerken, dass dies die Variablenzuweisungen und keine physikalischen Formeln sind.
ok das heisst sollte ich es irgendwann hinbekommen muss ins manual "nicht länger als 5min am stück nutzen xD" nein mal spass bei Seite. Die ungenauigkeit ist für mich dann erstmal nebensächlich. Nur die Funktion will ich erstmal hinbekommen. Und allgemein zum verständnis. Ich bin mir nicht sicher ob GPS eine gute lösung währe weil es hier nicht um große strecken geht. es geht darum sagen wir zb. den schlag eines tennisschlägers oder so aufzu zeichnen... zumindest um die größen ordnung. @max: diese Definitionen hab ich auch schon gefunden, sind die aber nicht nur für den 2D Raum?
Jan L. schrieb: > es geht darum sagen wir zb. den schlag eines tennisschlägers oder so > aufzu zeichnen... zumindest um die größen ordnung. Ist kein Thema. Kann man machen. > @max: diese Definitionen hab ich auch schon gefunden, sind die aber > nicht nur für den 2D Raum? Vektoren sind Vektoren. Wenn du im (geometrisch) 5-dimensionalen Raum rechnest, funktioniert das genau gleich. Alle benutzten Operationen sind von der Dimensionszahl unabhängig. Und die Natur unterscheidet bei Beschleunigungen nicht nach der Richtung. eine Beschleunigung führt zu einer Geschwindigkeitsänderung eine Geschwindigkeit führt zu einer Ortsveränderung unabhängig von der Richtung. Nur wenn zusätzliche Kräfte ins Spiel kommen (wie zb die Kraft, die der Fussboden auf deine Füsse ausübt) ändern sich die Dinge. Aber diese Kräfte gehen dann in die Beschleunigung ein :-)
Prima Idee! Im Flug ist Mathe leichter als ein GPS - und GPS kann jeder. Integrieren wird weder möglich (Du hast keine kontinuierlichen Werte) noch nötig sein. Bezeichnungen: Strecke s, Geschwindigkeit v, Beschleunigung a. Bei konstanter Geschwindigkeit gilt: s = v * t (fährst'e doppelt so schnell oder doppelt so lange, kommst'e doppelt so weit.) Hier hast Du Dein erstes Integral, der Funktionswert ist konstant v. Bei 0 angefangen, ergibt sich für die Geschwindigkeit v = a * t (beschleunigst'e stark, biste genauso schnell, als wenn Du lange ein wenig beschleunigst.) Hier hast Du Dein zweites Integral, der Funktionswert ist konstant a. Leider kann man diese Geschwindigkeit nicht in die Formel oben einfach einsetzen, weil sie sich ja dauernd ändert. Bei einer gleichmäßigen Beschleunigung gilt aber s = v * t^2 / 2 Das mit dem doppelt integrieren ist zwar richtig (aus der Beschleunigung die Geschwindigkeit, aus der Geschwindigkeit die Zeit, aber das hilft Dir nicht weiter, weil Du kein schönes Polynom bekommst, das Du integrieren kannst. Du kannst Dir eines verschaffen, indem Du auf Basis der Stützstellen (=Messpunkte) eines ermittelst: n Messpunkte -> Polynom vom Grad n-1. Das willst Du nicht wirklich. Statt den Umweg über das Polynom zu gehen, solltest Du direkt aus den Messwerten eine stückweise gleichmäßige Beschleunigung annehmen. Die mittlere Beschleunigung ergibt sich bei bekannter Anfangszeit t1, Endzeit t2, Anfangsgeschwindigkeit v1 und Endgeschwindigkeit v2: a = (v2-v1) / (t2-t1) Wenn Du einen Zeitabschnitt betrachtest und Du kennst die Beschleunigung und möchtest die Endgeschwindigkeit ermitteln, dann bekommst Du a*(t2-t1) + v1 = v2 Damit erhältst Du stückweise die Strecken und kannst die drei Achsen einfach per Vektoraddition zusammenzählen und hast dann Deinen Endpunkt. Achtung: Das gilt nur, wenn Dein Beschleunigungssensor sich nicht dreht! Sonst musst Du erst mal die wirkliche Richtung ermitteln. Wenn's nicht klappt, kannst Du immer noch ein GPS nehmen.
Christoph schrieb: > ... Ums nochmal zusammenzufassen: Die beiden Zeilen v(i) = v(i-1) + a(i) * dt s(i) = s(i-1) + v(i) * dt integrieren dir deine Funktion numerisch, auch wenn man das noch ein kleines bischen genauer machen könnte. Da ich die technischen Details nicht kenne, kann ich nicht einschätzen ob und wie lange du damit aufzeichnen kannst ohne riesige Abweichungen zu bekommen.
also ich hab, dank euch mittlerweile fast das gefühl, dass ich das doch vielleicht irgendwie schaffen kann. Um jetzt aber mein verständnis zu prüfen werde ich wohl erstmal meinen imu brauchen um damit ein bisschen was zu testen.
Ich hatte kürzlich etwas in die Richtung probiert. Allerdings mit Gyros und nicht Beschleunigungssensoren. (Du wirst beide brauchen) Drehrate im Intervall von ca. 5ms aufintegriert. Nach 10 Minuten (ruhend) hatten sich ca. 10° angesammelt. Die Temperatur war dabei aber auch schön konstant. Integration der Gyros über 3 Achsen im erdfesten System (mit stümperhafter Umrechnung der körperfesten Werte) war auch ganz brauchbar. In alle Richtungen kreuz und quer geschaukelt, auf den Kopf gestellt, wieder ruhig hingelegt: Abweichung auf allen Achsen 5-10° und das Koordinatensystem war nicht mehr ganz rechtwinklig (Rundungsfehler und mein Algorithmus). Gyros waren nicht kalibriert (nur der Offset war korrigiert). Stephan
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.