Forum: Mikrocontroller und Digitale Elektronik Beschleunigungssensor <> Erdbeschleunigung


von Peterle A. (Firma: keine) (wanderameise)


Lesenswert?

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

von Stefan B. (stefan) Benutzerseite


Lesenswert?


von Tom E. (tkon)


Lesenswert?

Überleg mal, was geben deine Gyroskope aus?

von Peter (Gast)


Lesenswert?

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.

von Gast (Gast)


Lesenswert?

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.

von Peter (Gast)


Lesenswert?

> 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.

von Purzel H. (hacky)


Lesenswert?

Ohne fundierte Mathematik macht das Ganze wenig Sinn. Das Verrechnen der 
Gyros in die Beschleunigung benoetigt extensiv Drehmatrizen, resp deren 
Konzepte.

von Verwundert (Gast)


Lesenswert?

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?

von Gast (Gast)


Lesenswert?

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.

von Peter (Gast)


Lesenswert?

> 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.

von Peter (Gast)


Lesenswert?

Schaut euch doch mal die spielchen auf den IPhone an, das machen sie 
auch mit einem Beschleuniungsmesser.

von Gast (Gast)


Lesenswert?

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.

von Peterle A. (Firma: keine) (wanderameise)


Lesenswert?

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!

von drpepper (Gast)


Lesenswert?

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.

von Peter (Gast)


Lesenswert?

> 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.

von X- R. (x-rocka)


Lesenswert?

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! ;)

von Karl H. (kbuchegg)


Lesenswert?

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 :-)

von Karl H. (kbuchegg)


Lesenswert?

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

von Peter (Gast)


Lesenswert?

> >> 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²

von Experte (Gast)


Lesenswert?

> 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.

von Peterle A. (Firma: keine) (wanderameise)


Lesenswert?

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!

von yalu (Gast)


Lesenswert?

> 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.

von Simon K. (simon) Benutzerseite


Lesenswert?

Was erwartest du denn? Das wir dir jetzr die ganzen mathematischen 
Zusammenhänge hier hinhauen? Über das Thema gibts dicke Bücher.

von Guido (Gast)


Lesenswert?

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

von Manuel S. (thymythos) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.