Komplizierte Wegerfassung mit Beschleunigungssensor

Hallo,

wir haben eine irre Aufgabe bekommen. Die Aufgabe wird von mehreren Gruppen (Teams) gelöst. Derjenige der das beste Ergebnis liefert hat gewonnen und bekommt vom Prof einen feuchten Händedruck. Der Letzte hat die Arschkarte.

Wir sollen mit einem dreiaxialen Beschleunigungssensor die Lage des Sensors in einem dreiaxialen Koordinatensystem bestimmen. Der Sensor ist in gewissem Maße festgelegt (Link steht unten) und scheint auch keinen besonderen Einfluss auf das Ergebnis zu haben. Die Ausgabe aus dem Sensor können wir noch festlegen, analog oder digital eben.

Der Sensor + Board + Versorgung wird in einem geschlossenen Pappkarton befestigt. Der Karton wird auf den Tisch gelegt und von Laserwegsensoren abgetastet. Mit den Lasersensoren wird der Weg des Kartons sehr genau verfolgt und aufgezeichnet. Die "gegnerischen" Teammitglieder werden den Karton schieben, ziehen, kippen, schütteln, fallen lassen usw.. Aufzeichnungszeit beträgt 120 Sekunden. Anschließend wird die reale Bewegung (Lasersensor) mit der kalkulierten Bewegung des Beschleunigungssensors verglichen.

Ein Beschleunigungssensor nimmt die Werte immer(?) relativ von einem Punkt aus auf. Ich kann also immer nur aufbauend von einem vorherigen Punkt den absoluten(!) Punkt im Raum feststellen, durch zweifache Integration des Beschleunigungswertes. Je mehr Punkte vor einem gewünschten Punkt liegen, desto größer wird der Fehler. Irgendwann wird der Fehler so groß und die berechneten Werte nur noch großer Müll sind.

Gibt es irgendeinen Tipp / Kniff / Trick / Algorithmus der mir diese unangenehme Eigenschaft dieser relativen + kalkulatorischen Wegerfassung beseitigt oder mindestens abmildert? Irgendwie ist mir der letzte Platz unangenehm.

Sven

formatting link

Reply to
Sven Schulz
Loading thread data ...

In Elektor gabs mal sowas, ich glaube Speedmaster.

Hab keine gute I-net verbindung, deshalb schau bitte selbst mal auf elektor.de

MfG Dennis Keipp

Reply to
Dennis Keipp

Hallo Sven,

formatting link

Da das ein Wettbewerb ist, will ich jetzt nichts vorkauen. Nur ein Tip: Flugzeuge haben (bzw. beinahe schon "hatten") aehnliches an Bord. Mache Dich mal schlau zum Thema "Inertia Navigation" und "Gyroscopes" oder "Gyros" (nichts mit griechischen Restaurants zu tun, lechz ...)

--
Gruesse, Joerg

http://www.analogconsultants.com
Reply to
Joerg

Moin!

Dein reales System hat 6 Freiheitsgrade: 3x schieben + 3x drehen. Schreib Deinem Profen eine hübsche Abhandlung, warum man diese 6 Freiheitsgrade nicht mit den 3 Sensoren eines Chips erfassen kann.

Hinweis:

Ich kippe das Gerät um 45°, so misst es auf dem ehemals senkrechten Kanal 0,7*g, auf dem ehemals waagerechten Kanal ebenfalls 0,7*g und auf dem dritten Kanal nichts.

Ich halte das Gerät waagerecht und beschleunige es mit 0,3*g nach unten und mit 0,7*g zur Seite. Rate mal, was Du diesmal misst.

Gruß, Michael.

Reply to
Michael Eggert

Hallo,

ein ähnliche Aufgabenstellung hatten wir zu meinen UNI-Mitarbeiterzeiten auch mal. Mit Entwicklung spezieller Sensor-Arrays und allem drum und dran. Ein mal integrieren zur Geschwindigkeit ging noch, die zweite Integration hat uns aber den Rest gegeben. (Ich hatte es ja gleich gewußt, nur wollte niemand auf mich hören :-) ). Davon abgesehen fehlen die 3 Drehratesensoren. Und die Koordinatentransformation von den Beschleunigungssensoren in ein Referenzkoordinatensystem ist auch nicht ohne. Die inertialen Navigationssysteme aus Luft und Raumfahrt kosten nicht umsonst >100k$.

Eine Möglichkeit die Drift der Lage ein wenig in den Griff zu bekommen wäre eine Kompensation in Ruhelage. D.h. wenn sich die Sensoren in Ruhe befinden muß die Geschwindigkeit 0 und die Position unverändert bleiben. Entsprechend kann man Offsets kompensieren.

MfG Michael

Reply to
Michael Schlegel

Hallo Sven,

die Tipps mit "inertia" oder "gyro" als Suchbegriffe hast du ja schon bekommen. Dass drei Drehsonsoren fehlen, auch. Der Wettbewerb macht also nur dann Sinn, wenn nur heben und schieben erlaubt ist und drehen verboten wird.

Für die beste Genauigkeit des analogen Signals musst du deine Elektronik so aufbauen, dass nach Möglichkeit keinerlei Drift auftreten kann. Elkos oder irgendwas Temperaturempfindliches sollten auf jeden Fall vermieden werden. Soll digital gearbeitet werden, dann brauchst du einen möglichst schnellen AD-Wandler hoher Auflösung und eine möglichst hohe Rechengeschwindigkeit mit möglichst vielen Stellen, um damit pro Zeiteinheit möglichst viele Messpunkte zu erwischen und berechnen zu können und digitale Rundungsfehler untergehen zu lassen. Grob gesagt - je teurer, desto genauer...

Servus Christoph Müller

formatting link

Reply to
Christoph Müller

Es wurden bereits ehedem Kompensationsschaltungen/schleifen verwendet:

formatting link

Sinnvoller erster Schritt ( wenn die Zeit es erlaubt ) ist immer die Literatur aufzuarbeiten.

Es gab in den letzten Jahren diverse Projekte an Hochschulen, von Studenten diese neumodischen Sensoren zu verwenden. Z.B. WARR / T-Rex mit Freescale Sensoren in Höhenforschungsrakete

formatting link
Dabei wurden allerdings anscheinend nur Daten aufgezeichnet, nichts Echtzeit verrechnet. Da an Hochschulen ( anders als bei Industrieprojekten ) meist was veröffentlicht wird könnte man die Beteiligten anbohren.

Man kann auch Applikationsleute bei AD / ST / Freescale wegen Unterlagen oder Hinweisen nach solchen Projekten die mit ihren Teilen hierzulande realisiert wurden nerven.

Google hilft auch. Aber nicht am Anfang sonder erst am Ende wenn man eng eingrenzende Suchbegriffe hat.

MFG JRD

Reply to
Rafael Deliano

Michael Eggert schrieb:

Ich würde mal davon ausgehen, das dieses Problem durchaus bekannt ist und es darum geht eine möglichst gute Lösung zu finden, auch wenn klar ist, dass es keine Perfekte geben kann. Man hat ja glücklicherweise nicht bloß die 3 Sensorwerte zu einem Zeitpunkt sondern eine Zeitreihe von Sensorwerten. Damit wäre auch erstmal noch nichts gewonnen, aber man kann ja zusäzliche Constraints einführen. Die Kiste wird ja von Hand bewegt, eine gleichmässige Beschleunigung mit einem Betrag von 1g wird man so nicht hinbekommen. Falls man also etwas entsprechendes findet, dann kennt man die Rotation der Kiste zu diesem Zeitpunkt. Zudem kann man annehmen, dass die maximale Drehgeschwindigkeit beschränkt ist. Ich würde zunächst versuchen die Drehbewegungen zu rekonstruieren, andere Beschleunigungen könnte man zumindest teilweise mittels Tiefpassfilter rausrechnen. Nach dem die Rotation dann halbwegs klar ist kann man versuchen die Translation herauszubekommen.

Jan

Reply to
Jan Lucas

Jan Lucas schrieb:

Mmh, da bleibt ja eigentlich auch noch eine Unbekannte. Es ist dann ja nur klar in welche Richtung die Gravitation geht. Um die Gravitationsachse kann man drehen ohne das man das an den Meßwerten sieht. Ihr braucht also wirklich mehr als einen Beschleunigungssensor oder ihr müsst euren Beschleunigungssensor selber bewegen.

Jan

Reply to
Jan Lucas

KI ;-)

Der Einfluß der Erdanziehung wurde hier schon erwähnt, und auch die Drehung ist nicht so das Drama, weil der Sensor die sehr wohl mitbekommt, wenn man nicht exakt um _seine_ Hochachse dreht. Dazu sollte man seine Position in der Kiste nicht unbedingt offensichtlich sein lassen, etwas Versteckspiel ist angesagt.

Die inscheniörsmäßigen Ansätze hast Du hier schon gelesen, alleine: für eine gute Lösung reicht das sowohl aufgrund der unvollständigen Information wie auch diverser Nichtlinearitäten der Sensoren bei Beschleunigungsspitzen ("fallen lassen") nicht aus.

Ergo braucht es intelligente Software, die mit unvollständigen Informationen auskommt und die man trainieren kann => KI

Gruß Oliver

--
Oliver Bartels + Erding, Germany + obartels@bartels.de
http://www.bartels.de + Phone: +49-8122-9729-0 Fax: -10
Reply to
Oliver Bartels

Michael Eggert schrieb:

Das ist interessant, da hab ich noch nie drüber nachgedacht.

Könnte man sowas mit 6 Beschleunigungssensoren, 3 statischen (messen Erdbeschleunigung mit) und 3 dynamischen (tun es eben nicht) lösen? Also, solange die Sensoren in ihrer Relativlage zueinenader unverädndert sind, meine ich natürlich.

Wenn ja, wie würde man so ein Problem ohne Schwerkraft lösen?

Viele Grüße, Johannes

--
PS: Ein Realname wäre nett. Ich selbst nutze nur keinen, weil mich die
meisten hier bereits mit Namen kennen.
  Markus Gronotte aka "Makus" aka "Kosst Amojan" in de.sci.electronics
Reply to
Johannes Bauer

Johannes Bauer schrieb:

Hallo,

denke mal an Einsteins Fahrstuhl Gedankenexperiment. Die Erdbeschleunigung und eine Beschleunigung durch Bewegung sind zunächst für den Sensor nicht unterscheidbar, jedenfalls wenn man auch eine längere Beschleunigung mit genau 1 g zulässt.

Bye

Reply to
Uwe Hercksen

Hallo!

Wer hat sich denn diese Aufgabe ausgedacht? Selbst recht gute Low-Cost-IMUs mit vergleichbaren Sensoren (aber guten Filtern + AD-Wandlern + Software) erreichen nur ca. 40m/min Drift in der Position. Wenn das jetzt nicht ein Wettbewerb wäre würde ich sagen: VergisS es!

Eigentlich braucht man dazu Gyros+Beschleunigungssensoren +

3-Achskompass inkl. einer Sensordatenfusion (Stichworte: Komplementärfilter, Kalmanfilter) und ne Menge Koordinatentransformationen um halbwegs unabhängig von der Lage im Raum die dann kompensierte Beschleunigung in X/Y/Z überhaupt integrieren zu können. Die einfache, übliche Eulerwinkeldarstellung beschränkt das ganze auch noch weswegen dann sogar Quaternionen zur Berechnung der Lage verwendet werden. Also nichts was "mal eben" in nem Studentenprojekt machbar ist.

Wenn ihr mehrere Sensoren verwenden dürft gibts noch ne Variante: Man kann mit sechs geschickt angeordneten Beschleunigungssensoren eine volle

6DOF IMU bauen. Ist aber auch einiges an Rechnerei und das ganze ist um einiges schlechter als Gyros+Beschleunigungssensoren.

Ansonsten: Proz + evtl. nen guten A/D-Wandler + so schnell wie möglich integrieren. Driftkompensation geht nicht ohne Referenz -> beim Einschalten Nullpunkt bestimmen. Evtl. könnte es helfen eine kleine "Intelligenz" einzubauen, die bei mehreren Sekunden halbwegs konstanten Werten die Integrale zurücksetzt. So hat man wenigstens nen perfekten Startpunkt. Wenn man davon ausgeht dass da die Kiste noch grade ist kann man das sogar als Kalibrierung verwenden. Genauso könnte man auch filtern wenn die Kiste kurze Zeit nicht bewegt wird...nach 200ms ohne grosse Signaländerung einfach das Integral nicht weiterlaufen lassen. Tricksen könnte man auch mit ner Winkelschätzung über nen stark Tiefpass gefilterten Beschleunigungswert...Wahrscheinlich werden solche Tricks am Ende entscheiden wer der Beste ist...

mfg Jan

Reply to
Jan Stumpf

Uwe Hercksen schrieb:

Du hast Recht! Hmm, seltsam, weißt du dann warum AD in der Beschribung des ADXL202 schreibt "The ADXL202 can measure both dynamic acceleration (e.g., vibration) and static acceleration (e.g., gravity)."?

Ich hatte mir diesen Satz einfach aus dem Datenblatt gemerkt - ohne drüber nachzudenken.

Wie erfasst man denn dann Positionen im R³ mithilfe von Beschleunigungssensoren?

Viele Grüße, Johannes

--
PS: Ein Realname wäre nett. Ich selbst nutze nur keinen, weil mich die
meisten hier bereits mit Namen kennen.
  Markus Gronotte aka "Makus" aka "Kosst Amojan" in de.sci.electronics
Reply to
Johannes Bauer

Sven Schulz schrieb:

Moin!

Für meine Diplomarbeit beschäftige ich mich mit Fußgänger-Positionierung. Dabei sind auch einige Ansätze, die Beschleunigungsmesser verwenden. Wie andere schon sagten braucht es noch eine Drehungserkennung auf allen Achsen. Mit Gyroskopen geht das.

Allerdings haben Gyros und Beschleunigungssensoren große Drifts. Bei der Fußgängerpositionierung nutzt man den Stillstand des Fußes zwischen zwei Schritten um die Drifts auf Null zu setzen. Möglicherweise kannst Du das mittels Schwellwerten machen. Annahmen zu Maximalen Drehungen und Beschleunigungen, so wie Distanzen können grobe Fehler ausschließen.

Literatur zu Beschleunigungs- und Drehungsmessern und deren Problemen z.B. in:

Quentin Ladetto, J. van Seeters, S. Sokolowski, Z. Sagan, Bertrand Merminod: 'Digital compass and gyroscope for dismounted soldier position and navigation', Military Capabilities enabled by Advances in Navigation Sensors, Sensors \& Electronics Technology Panel, NATO-RTO meetings,

14.-16 Oktober 2002, Istanbul, Turkey, \\ \verb|
formatting link
|

Timothy J. Brand, Richard E. Phillips: 'Foot-to-Foot Range Measurement as an Aid to Personal Navigation', Institute of Navigation, 59th. Annual Meeting, 23.-25. Juni 2003, Albuquerque, NM, USA, Draper Report no. P-4138

Ciao Dschen

--
Dschen Reinecke

=== der mit dem Namen aus China ===

http://WWW.DSCHEN.DE mailto:usenet@dschen.de
Reply to
Dschen Reinecke

Moin!

Man könnte es mit 6 intelligent zueinander angebrachten Sensoren lösen, wobei jeweils 2 Sensoren die gleiche Achse messen und sich gegenüber sitzen. Für 1 Translation und 1 Rotation:

1 * 2

Translation: ( Signal(1) + Signal(2) ) / 2 Rotation : ( Signal(1) - Signal(2) ) /(2*Abstand)

Dreidimensionale ASCII-Art spare ich mir mal. Dafür sollten dann allerdings alle 6 Sensoren idealerweise auf einer gedachten Kugel sitzen, man braucht also wegen der räumlichen Trennung 6 Chips. (Okay, es gehen auch 4 Chips auf einem Kreis, wobei 2 Chips 2 Achsen messen).

Gruß, Michael.

Reply to
Michael Eggert

Moin!

Viel Spaß beim "Schütteln und Fallenlassen".

Ob gleichmäßig oder nicht, ich wollte nur anhand einer Momentaufnahme darstellen, daß das Ergebnis nicht eindeutig ist. Du kannst zu jedem Messwert-Trio unendlich viele mögliche Bewegungen errechnen, die diese Signale erzeugt haben könnten. Mathematisch gesagt: Du hast ein System aus drei Gleichungen mit 6 Unbekannten.

Gruß, Michael.

Reply to
Michael Eggert

Johannes Bauer schrieb:

Hallo,

das heisst doch nur das auch der Gleichspannungsanteil des Beschleunigungssignals mit nach aussen geht und das der Sensor solche Anteile messen kann.

Man stelle sich einen Sensor vor aus einem Stabmagnet an zwei Federn aufgehängt in einer Spule vor. Dynamische Beschleunigungen durch Vibrationen induzieren Spannungen in der Spule, eine statische Beschleunigung aber kann keine Gleichspannung induzieren.

Aber eine konstante Beschleunigung mit 1 g und die Erdschwerkraft sind für diesen Sensor auch nicht unterscheidbar, es wird in beiden Fällen die Spannung 0 induziert.

Bye

Reply to
Uwe Hercksen

"Sven Schulz" :

Durch die 2-fache Integration werden die Fehler schnell sehr gross. Rechne nach 2min mit Abweichungen im km-Bereich. ;) (die modernen micromachining Teile rauschen recht stark, schaut Euch am Anfang mal an, wie der Weg wegläuft, wenn das Ding einfach nur daliegt, danach erst den Kopf über die fehlenden Drehratensensoren und die Erdbeschleunigung zerbrechen). Polstert das Teil schön und macht es schwer - jede Übersteuerung führt zu weiteren Fehlern.

M.

Reply to
Matthias Weingart

Matthias Weingart schrieb:

Einer unserer E-Technik-Profs hat Ende der 70er Jahre von einem militärischen Experiment erzählt. Da wurden genau solche Trägheitssensoren in einen Jeep gebaut, mit dem die Leute dann 200 km Testfahrt querfeldein durch die Gegend gefahren sind. Die Ausgangsposition stimmte bis auf wenige Meter genau. Hat ihn seinerzeit sehr beeindruckt.

Servus Christoph Müller

formatting link

Reply to
Christoph Müller

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.