Hallo, ich möchte gerne mittels eines 3-Achsen Beschleunigungssensors und eines 2 Achsen Gyroskops den zurückgelegten Weg berechnen.Die zurückgelegten Strecken sind nicht allzu groß (20cm). Zuerst einmal: Ja ich weiss wie ungenau das ganze ohne Kalmann Filterung ist. Ich weiss auch, dass ich bei zweimaligen Integrieren, das Rauschen mitrechne, was zu erheblicher Ungenauigkeit führt. Aber darum geht es hier nicht.Da das Projekt in mehrere Teile gegliedert ist, fällt auf mich nur folgendes: Aus den 5 Spannungswerten der 2 Sensoren, die Erdbeschleunigung rauszurechnen und daraus eine Formel, zur Wegmessung abzuleiten. Wie ungenau die Werte letztendlich sind, ist die Aufgabe eines Anderen. Der Sensor liefert im Grundzustand den Beschleunigungsvektor G=[0,0,1g], sprich nur auf die Z Ebene wirkt die Erdbeschleunigung: Die Sensoren befinden sich in Ruhe. Für mich nachvollziehbar, ebenso wie einfache Bewegungen in X- und Y- Richtung, wo die Erdbeschleunigung konstant mit 9,81 m/s^2 auf die Z Achse einwirkt. Soabld aber Neigungen mit ins Spiel kommen, bin ich mit meinem mathematischen Latein am Ende. Daher bin ich dankbar für jede Erläuterung bzw Hilfestellung, wie ich die Erdbeschleunigungskomponente herausrechnen kann. danke
In der Ebene so: http://www.sofatutor.com/mathematik/videos/sinus-cosinus-tangens-eines-winkels-und-einheitskreis/in-course/brueckenkurs-mathe-fuer-naturwissenschaftler-ingenieure-teil-3-integrale-vektoren-geometrie Du braucht das bei drei Achsen fürden Raum, d.h. den Einheitskreis.
ich hatte mir auch schon mal über genau diesen Problem gedanken gemacht. Ich bin der meinung das es mit einem 3D Sensor nicht geht. Man muss die aktuell Drehung/Lage erst errechnen dafür braucht man noch für jede Achse einen weiter Sensor der im Abstand befestigt ist. Aus der Differenz zwischen den beiden Sensoren für eine Achse kann man die drehung errechnen. Das minimum müssten dann 3stück von den 3D Sensoren sein, und diese müssen möglichst weit von einander entfernt sein.
Es lohnt nicht der Mühe eine Antwort auf deine Frage zu schreiben. Mit den üblichen Beschleunigungssensoren ist keine Wegmessung möglich. Es sei den das Teil bewegt sich mit der Beschleunigung einer Rakete.
> Es lohnt nicht der Mühe eine Antwort auf deine Frage zu schreiben. Mit > den üblichen Beschleunigungssensoren ist keine Wegmessung möglich. Es > sei den das Teil bewegt sich mit der Beschleunigung einer Rakete. kannst du das auch ein wenig Begründen? Ich bin auch der Meinung das es grundsätzlich geht aber über die Zeit zu ungenau wird.
Ohne fundierte Mathematik macht das Ganze wenig Sinn. Das Verrechnen der Gyros in die Beschleunigung benoetigt extensiv Drehmatrizen, resp deren Konzepte.
Kann denn so ein Sensor so genau messen, also Beschleunigungen und 0.0000000001g? Ich meine, wie stark kann man denn auf 20cm Strecke schon beschleunigen?
Die üblichen Beschleunigungswerte sind so gering, dass sie im Rauschen der Erdbeschleunigung untergehen. Ich habe das bei einem Modellhubschrauber versucht der sich schon sehr heftig bewegt. Das Ergebnis war wirklich gleich Null weil die kurzen Beschleunigungsspitzen zwar aufsummiert wurden aber die weichen Auslaufbeschleunigungen nicht messbar waren.
> Kann denn so ein Sensor so genau messen, also Beschleunigungen und > 0.0000000001g? Ich meine, wie stark kann man denn auf 20cm Strecke schon > beschleunigen? was denn das für eine blöde aussage, wenn dir etwas auf eine Steinplatte fällt, dann gibt es dort eine negative Beschleunigung von ein paar 100g auf 3mm. Jetzt mal grob überschlagen, jedes kleine RC-Auto-Modell kann mit 0.1g beschleunigen.
Schaut euch doch mal die spielchen auf den IPhone an, das machen sie auch mit einem Beschleuniungsmesser.
Beim iPhone müsse es auch eher Lage- als Beschleunigungssensor heißen. Er misst einfach, auf welche Achsen die Erdbeschleunigung einwirkt und ermittelt daraus die Neigung. Echte Beschleunigungen kann der Sensor erst ab so ca. 5-6 m/s² vom Rauschen unterscheiden.
sehr interessante Antworten. Und auch mit den "es geht nicht so einfach" Antowrten habe ich egrechnet.Sind sind auch begründet das gebe ich gerne zu. Jedoch würde ich mich gerne selbst davon überzeugen. Dafür jedoch muss ich erstmal den mathematischen weg dorthin finden. Wie es sich anhört scheint dieser jedoch nicht ganz trivial zu sein. Hat denn wenigstens jemand einen Ansatz für mich? Evtl mit etwas erklärung? Die genaue Funktion des Sensors wird sein, die absolute Lage zu einem vorher referenzierten Nullpunkt zu ermittelen. der sensor wird in einem handschuh die arbeiten und somit die wegdaten der handbewegung aufnehmen und weiterreichen! vielleicht helfen die infos!
Bescheunigungsmessung zum Zwecke der Inertialnavigation ist nicht besonders einfach. Um den RandomWalk, der durch die Integration der Beschleunigungswerte entsteht, in den Griff zu bekommen, eignet sich z.B. ein Kalmanfilter, der relativ aufwändig zu dimensionieren ist.
> Echte Beschleunigungen kann der Sensor > erst ab so ca. 5-6 m/s² vom Rauschen unterscheiden. kann ich mir nicht vorstellen, es gibt ja genügend Beschleunigungssensoren die +-5G mit 8 oder 10Bit auflösung. @Benjamin Anonym Fang doch erstmal mit einem Sensor und einer Achse an, einfach mal nur in eine Richtung bewegen und daraus die Entfernung berechnen. Dann sollte man schon abschätzen können ob es sinn macht weiter zu basteln.
Freescale hat da einige Application Notes. Vielleicht noch Invensense (Gyros). Ich habe mit so einem 3-Achsen Accelerometer bisher nur Neigung und Lage ermittelt. Weg wird schwer... Aber nach Invensense zusammen mit Gyro ganz toll! ;)
Benjamin Anonym schrieb: > zu. Jedoch würde ich mich gerne selbst davon überzeugen. Na gut. Wenn du Geld zum Fenster rausschmeissen willst. > anhört scheint dieser jedoch nicht ganz trivial zu sein. Kommt auf deine Vorkentnisse an. > Hat denn wenigstens jemand einen Ansatz für mich? Evtl mit etwas > erklärung? Du brauchst eine Matrix, die ein Koordinatensystem repräsentiert. Wie man das macht, werde ich hier sicher nicht ausführen. Aber Erklärugnen finden sich zb. bei den Computergraphikern und den Leuten die sich mit Roboterprogrammierung beschäftigen. Der Umgang mit Koordinatensystemen und deren Transformation ist dort täglich Brot. Kurz gesagt: Ist alles Vektor/Matrizenarithmetik - lineare Algebra. Die solltest du beherrschen, damit dich die Umrechnung von Positionen von einem Inertialsystem in ein anderes Inertialsystem, bzw. die Konstruktion eines Inertialsystems nicht in Schwierigkeiten bringt. Da du Gyros benutzt, die von Natur aus Drehinformation liefern (meistens mehr als dir lieb ist), könnte man auch darüber nachdenken, die Rotationsinformation in Form von Quaternionen anstelle von Rotationsmatrizen mitzuführen. > Die genaue Funktion des Sensors wird sein, die absolute Lage zu einem > vorher referenzierten Nullpunkt zu ermittelen. der sensor wird in einem > handschuh die arbeiten und somit die wegdaten der handbewegung aufnehmen > und weiterreichen! Vergiss es. Das wird so nichts. In der Theorie funktioniert das alles hervorragend. Überhaupt kein Problem. Aber in der Praxis vermasseln dir Sensorrauschen und thermische Drift die Tour. Das wird darauf hinauslaufen, dass dir dein Programm nach ungefähr 1 Minute mitteilt, dass dein Handschuh jetzt im Badezimmer ist, während du im Wohnzimmer auf der Couch sitzt :-)
Peter schrieb: >> Echte Beschleunigungen kann der Sensor >> erst ab so ca. 5-6 m/s² vom Rauschen unterscheiden. > kann ich mir nicht vorstellen, es gibt ja genügend > Beschleunigungssensoren die +-5G mit 8 oder 10Bit auflösung. Auflösung ist nicht gleich Genauigkeit
> >> Echte Beschleunigungen kann der Sensor > >> erst ab so ca. 5-6 m/s² vom Rauschen unterscheiden. > > kann ich mir nicht vorstellen, es gibt ja genügend > > Beschleunigungssensoren die +-5G mit 8 oder 10Bit auflösung. > Auflösung ist nicht gleich Genauigkeit schon klar, aber bei 8bit Auflösung würde ich sagen das 4bit genauigkeit drin sind. Und das sind schon mal weniger als 5-6 m/s²
> ich möchte gerne mittels eines 3-Achsen Beschleunigungssensors und > eines 2 Achsen Gyroskops den zurückgelegten Weg berechnen. Geht nicht. Du brauchst dazu 6 Messwerte.
6 Messwerte? Habe auch immer gedacht, das 2 Achsen beim Gyro zu wenig sind, aber es soll wohl klappen. leider fehlt mir immernoch der mathematische zugang zu dem ganzen. achja die hardware gibt es bereits, also keine kostenfrage für mich!
> 6 Messwerte? Habe auch immer gedacht, das 2 Achsen beim Gyro zu wenig > sind, aber es soll wohl klappen. Mit nur zwei Gyros kann eine Rotation um eine Achse, die senkrecht zu beiden Gyroachsen liegt, nicht detektiert werden. Und wenn ich dich richtig verstanden habe, möchtest du die Lage des Sensorsystems in sechs Freiheitsgraden ermitteln.
Was erwartest du denn? Das wir dir jetzr die ganzen mathematischen Zusammenhänge hier hinhauen? Über das Thema gibts dicke Bücher.
Jeder Körper im freien Raum hat 6 Freiheitsgrade (s. Technische Mechanik). 3x Translation 3x Rotation Steht eine der drei Achsen Deines Beschleunigungssensors parallel zu Erdbeschleunigung kannst Du eine Drehbewegung um diese Achse nicht detektieren. Somit weisst Du sehr bald nicht mehr wo Du "absolut stehts". Mit freundlichen Grüßen Guido
Vielleicht hilft dir das weiter: * Wenn du davon ausgehst, dass sich dein Sensor nicht bewegt, sondern nur neigt, kannst du mit einem 3-Achsen (bei kleinen Neigungen reichen auch 2-Achsen) Beschleunigungssensor die Neigung messen. * Wenn du davon ausgehst, dass sich dein Sensor nicht neigt (Z-Achse immer nach oben!) kannst du mit einem 3-Achsen Beschleunigungssensor theoretisch versuchen durch zweifache Integration den Weg in allen drei Richtungen zu bestimmen. Du solltest aber oft genug die Möglichkeit haben durch einen weiteren Sensor (oder das Rauschen deines Sensors) festzustellen, wann du dich nicht bewegst. * Wenn Bewegung und Neigung auftreten brauchst du auf jedenfall noch Gyros in 3 Achsen. Die Mathematik um das (in der Praxis mit MEMS Sensoren!) zu verrechnen ist noch nicht entgültig gelöst. Das ist Thema aktueller Forschungsarbeit. * Grundsätzlich gilt: je mehr Einschränkungen die Bewegungungen/Neigungungen haben desto einfacher
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.