mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Beschleunigungssensor <> Erdbeschleunigung


Autor: Peterle Anonym (Firma: keine) (wanderameise)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der Ebene so:
http://www.sofatutor.com/mathematik/videos/sinus-c...

Du braucht das bei drei Achsen fürden Raum, d.h. den Einheitskreis.

Autor: Tom Ekman (tkon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Überleg mal, was geben deine Gyroskope aus?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Zwölf Mal Acht (hacky)
Datum:

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

Autor: Verwundert (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

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

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peterle Anonym (Firma: keine) (wanderameise)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: drpepper (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: X- Rocka (x-rocka)
Datum:

Bewertung
0 lesenswert
nicht 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! ;)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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²

Autor: Experte (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peterle Anonym (Firma: keine) (wanderameise)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Simon K. (simon) Benutzerseite
Datum:

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

Autor: Guido (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Manuel Stahl (thymythos) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.