Hallo,
ich suche nach einer Lösung, um mit jeweils drei Gyro- und
Beschleunigungssensoren eine 3D-Positionsbestimmung zu realisieren.
Damit sollte z.B. auch ein Quadrocopter gesteuert werden.
Was meint Ihr, mit welcher prozentualen Abweichung nach ca. 60 Sekunden
muss ich rechnen, wenn ich (A) 200 Euro in Bauteile und (B) 1000 Euro in
Bauteile für die Messwerterfassung investiere?
Mit wenigen Daten gibt's auch keine Aussage.
Das muesst sich doch rechnen lassen auf der Daten in den jeweilgen
Datenblaettern. Alle Sensoren haben ein Rauschen, einen Offset, eine
Drift und einen dynamischen Bereich.
Ich wuer's mit Barometer und GPS probieren. Das wird moeglicherweise
genauer. In Realitaet braucht beides, GPS, Barometer,
Beschleunigungssensoren und Gyros.
Hinz schrieb:> In Realitaet braucht beides, GPS, Barometer,> Beschleunigungssensoren und Gyros.
Danke für den Hinweis, GPS scheidet hier leider aus, da auch Bewegungen
in Gebäuden erfasst werden soll.
Zwischen Theorie und Praxis kann es aber Unterschiede geben.
Deshalb die Frage an die Praktiker: Was ist mit dem beschriebenen
Aufwand erreichbar und gibt es neben dem Barometer noch weitere erprobte
Tricks, die Genauigkeit zu verbessern?
Mein Gott da steht mal wieder so viel Blödsinn in den Antworten...
1.) Nein, im Datenblatt steht kein Wort von Toleranzen zur
Positionsbestimmung, WIE und WOHER auch?
2.) Mit deinem Budget ist eine Trägheitsnavigation auf 60s schlichtweg
unmöglich. Wir reden in dieser Preiskleise bei 60s nicht mehr von
"Toleranzen", sondern davon in welcher nächstgelegenen Stadt dein
Quadrocopter glauben wird sich zu befinden.
Ein weitaus realistischeres Szenario in diesem Budget wäre zum Beispiel
eine Ultraschall-Ortung durchzuführen. Unter größzügiger Abschätzung von
Echos und Co könntest du damit deine Position wohl alle ~200-300ms
updaten. Das sind Zeiten, in denen auch mit günstigen MEMS Sensoren
integriert werden kann.
/edit
Ultraschall übrigens im Sinne von Bodenstation als Referenzpunkt, bzw.
mehrere Bodenstationen. Der Aufwand hierfür ist nicht zu unterschätzen,
sowohl in der benötigten Rechenleistung, als auch beispielsweise in der
benötigten Uhrensynchro usw. usf.
Es hat halt schon seinen Grund, wieso dutzende Unis und FHs an dem
ganzen Thema drankleben.
lg
Lars Sch. schrieb:> Zwischen Theorie und Praxis kann es aber Unterschiede geben.> Deshalb die Frage an die Praktiker: Was ist mit dem beschriebenen> Aufwand erreichbar und gibt es neben dem Barometer noch weitere erprobte> Tricks, die Genauigkeit zu verbessern?
Ein Trick ist das kalman Filter. Mit dem kannst du gyro und
accelerometerwerte inkl messrauschen zu eulerwinkeln verrechnen. Ist
mathematisch allerdings tricky!
Vincent Hamp schrieb:> 1.) Nein, im Datenblatt steht kein Wort von Toleranzen zur> Positionsbestimmung, WIE und WOHER auch?
Es stehen aber die Toleranzen der Messdaten des Sensors drinnen und die
Sample Rate. Ein Sensor der nur 1x in der Sekunde eine
Positionsbestimmung zur Vorherigen liefert dürfte schlechter sein als
einer mit mehr Daten. Aber alles natürlich auch abhängig davon wie
schnell sich die Position verändert. Eine Abschätzung lässt sich also
schon errechnen.
Suchender schrieb:> Vincent Hamp schrieb:>> 1.) Nein, im Datenblatt steht kein Wort von Toleranzen zur>> Positionsbestimmung, WIE und WOHER auch?>> Es stehen aber die Toleranzen der Messdaten des Sensors drinnen und die> Sample Rate. Ein Sensor der nur 1x in der Sekunde eine> Positionsbestimmung zur Vorherigen liefert dürfte schlechter sein als> einer mit mehr Daten. Aber alles natürlich auch abhängig davon wie> schnell sich die Position verändert. Eine Abschätzung lässt sich also> schon errechnen.
Hast du das Datenblatt überhaupt gelesen?
Aus der IMU perse kommt überhaupt keine Position raus.
Genausowenig sagt die Update-Rate was über die (nennen wir es mal) Güte
der Sensoren aus. Wichtig ist vor allem der Bias der Sensoren, sprich
der Drift, Noise, Bandbreite, etc. etc.
Ein Gyro, der z.B. lediglich 1Hz Update Rate hat, jedoch einen Drift von
0.006°/h wär mir wesentlich lieber, als ein Gyro den ich mit 800Hz
auslesen kann, der mir aber um 6°/h driftet.
Und auch eine "Abschätzung" lässt sich leider so überhaupt nicht
treffen, schon gar nicht wenn Positionsintegrationen im Spiel sind. Eine
effektive Sensor-Fusion, sprich eine Verheiratung von Beschleunigungs-,
Gyro- und Magnetometer kann auf etwa Zig-Trillionen Arten erfolgen. Je
nachdem wie gut der Algorithmus ist, mit dem die Gyroskope aufgerichtet
werden, umso besser auch die eigentliche Positionsbestimmung. Ein Fehler
in der Ortsintegration kommt letztendlich nämlich einzig und allein
durch eine "falsche" Raumlage raus, bzw. durch eine Verzerrung der
Linearbeschleunigungen... aber das geht jetzt zuweit.
Kurzes Beispiel:
Angenommen unsere Raumlage ist auf Grund von Sensorfehlern um 0,029rad
(~1,6°) falsch. Eigentlich ein ziemlich lächerlich kleiner Fehler. Wir
denken aber wir stehn absolut horizontal im Raum und fangen an eine
Ortsintegration durchzuführen, bespielsweise mal für 60s.
Rein rechnerisch bewegen wir uns nun überhaupt nicht, schließlich sagt
unsere Raumlage, dass wir konstant schweben.
Praktisch stehen wir jedoch 0,029rad "schief" im Raum.
0,029rad ergeben bei 9,81m/s² Erdbeschleunigung aber leider eine
seitliche Beschleunigung von 0,285m/s²! Unser Heli wird also in der
Realität anfangen zu driften.
Integrieren wir auf Basis dieser Raumlage für lediglich 60s, so ergibt
sich nach s = 1/2 a*t² ein Ortsfehler von 513m!
Man kann sich also ausmalen wie gut die Information der Raumlage sein
muss, um für 60s eine Ortsintegration durchführen zu können. Das ist
schon für kaum bewegte, faktisch statische Objektive nicht so einfach.
Von Sachen mit hoher Dynamik wie Quadrocoptern braucht man da noch gar
nicht mal sprechen...
Wenn Dein Teil, nach einer halben Stunde auf dem Tisch 200Km/h, unter
einem Winkel von 80°, in Richtung NNW drauf hat, wirst Du erkennen, dass
all die lieben Gyros besser auf dem Teller (lecker), als in einer
Regelschleife aufgehoben wären.
Da hilft auch kein Barometer, sondern nur absolute Daten.
In Gebäuden durch Laser, Ultraschall, Schnittbildentfernungsmesser,
Radar oder was sonst noch angesagt ist.
Draußen wirst Du wohl nicht ohne GPS, plus lokaler Hilfsmittel,
auskommen.
Etwas Widerspruch. Ein Barometer ist sehr genau, man muss es nur mit
genuegend ausfloesung laufen lassen. 10cm Hoehenstabilitaet sind so
durchaus moeglich. Wenn sich der Luftdruck aendert, wird das dann auch
in hohe umgesetzt.
Die Gyros und Beschleunigungssensoren sind leider nicht so gut wie es
auf den ersten Blick erwartbar waere. Nehmen wir einen einfachen Gyro,
den ADXRS150. Erhat einen ausgang von 12.5mV/Grad/sek. Die
Nullpunktdrift ueber die Temperatur ist +-300mV, das waeren dann
+-25Grad/sek. Die horizontalen Achsen kann man mit der Vertikalen
periodisch abgleichen, solange man keine Kurven fliegt. Die vertikale
Ache muss man daher anders periodisch abgleichen zB mit einem Kompass.
Das Rauschen betraegt 0.05Grad/sek/Rt(Hz).
Nehmen wir einen Beschleunigungssensor. zB den ADXL202E. Der bringt ca
320mV/g. Mit einer Temperaturdrift von 0.5%. Die Rauschdicht ist
200ug/Rt(Hz). Die Temperaturdrift ist 2mg/Kelvin
>Etwas Widerspruch
Bei mir hängt ein Barometer an der Wand und ich bin mir ganz sicher,
dass der Nagel, an dem es hängt, fest sitzt.
Trotzdem zeigt es mir ständig unterschiedliche Höhen an:-)
Bei einem Wetterumschwung sogar binnen kürzester Zeit.
Ja. Der Druck aendert, aber auf einer fuer einen Kopter langsamen
Zeitskala. Der Kopter hat die Batterien leer, bevor sich die Hoehe
nennenswert geaedert hat. Die Hoehe muss man natuerlich beim Start
abgleichen, und dann relativ zum Start fliegen.
Position nur mit Gyro + Acc + ggf Magnetometer ist quasi nicht machbar,
wenn man keine Ruhephasen hat, bei denen man z.B. den acc resetten kann.
Auch das Kalman Filter bringt da gar nix, die Gyros driften, die
theoretisch mit dem Beschleunigungssensor ausgeglichen werden können,
aber nur, wenn die die reine Erdbeschleunigung messen. Und das tun sie
fast nie ;-)
Und selbst wenn das alles funktioniert, hast du immer nur die
Orientierung, mit der dann theoretisch die Geschwindigkeit und Position
berechnet werden kann. Theoretisch ;)
Ohne absolute Referenz und gute Sensoren, gute Signalverarbeitung wird
das nix, sorry.