Beschleunigungssensor <> Erdbeschleunigung

OP (Firma: keine) #1464627
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
Gast
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.
Gast
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.
Gast
> 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.
Gast
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?
Gast
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.
Gast
> 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.
Gast
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.
OP (Firma: keine)
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!
Gast
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.
Gast
> 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
Gast
> >> 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²
Gast
> 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.
OP (Firma: keine)
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!
Gast
> 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.
Gast
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
Persönliche Seite
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.