Forum: Mikrocontroller und Digitale Elektronik IMU inkl. uC


von IMU (Gast)


Lesenswert?

Hallo Forum

Ich habe nun einige Stunden gegoogelt und auch hier im Forum gesucht, 
vielleicht verwende ich auch einfach die falschen Wörter, aber ich finde 
absolut nichts...

Zuerst: Anders als oft hier im Forum, Geld spielt hierbei KEINE Rolle. 
Das Teil kann kosten was es will.

Gesucht ist folgendes:
Ein IMU (Accelerometer + Gyro) <- Das wäre soweit ja kein Problem zu 
finden...
Nun mein extra Wunsch: Ein uC der die Sensordaten einliesst, den Kalman 
FIlter anwendet und die fertigen Daten per SPI/I2C/UART oder wie auch 
immer zur Verfügung stellt. Ich selbst traue mir nämlich nicht zu, einen 
solchen Filter zu Programmieren, bzw. ich traue mir eher weniger zu den 
Mathematischen Teil dahinter richtig zu verstehen.

Ist jemandem von euch ein solches Board bekannt? Das ganze findet 
Einsatz in einem selbstentwickelten Spiel.

Vielen dank für eure Hilfe

von Michael F. (startrekmichi)


Lesenswert?

IMU schrieb:
> Zuerst: Anders als oft hier im Forum, Geld spielt hierbei KEINE Rolle.
> Das Teil kann kosten was es will.

Hm, wenn du meinst:
ADIS16480, kostet momentan 2241.47€ bei Digikey.

Ich meine aber es gibt auch ein Board mit einfacheren Sensoren, das 
ebenfalls die Lage (sprich Eulerwinkel, Quaternion oder Drehmatrix) 
rausgibt. Das war im Bereich von 100-200€, wenn ich mich richtig 
erinnere. Ev. fällt's mir noch wieder ein wie es hieß.

Was für Informationen willst du eigentlich überhaupt haben? Hoffentlich 
nur die Lage. Mangels passender Messungen wird's mit einer IMU alleine 
nämlich nix mit Geschwindigkeiten und/oder Position, dafür bräuchte es 
dann z.B. GPS.

Ein ganz einfaches Lagefilter ist übrigens wirklich nicht schwierig, im 
Endeffekt nur eine Kombination aus Hoch- und Tiefpass. Für viele 
Anwendungen reicht das schon aus, da muss man kein EKF auspacken.

von IMU (Gast)


Lesenswert?

Michael Frangenberg schrieb:
> Hm, wenn du meinst:
> ADIS16480, kostet momentan 2241.47€ bei Digikey.

Okay, das wäre die absolute Notlösung. Ein paar 100 Euro hätte ich dafür 
locker bezahlt, aber über 2k ist schon ne grosse Menge. :P

Michael Frangenberg schrieb:
> Was für Informationen willst du eigentlich überhaupt haben? Hoffentlich
> nur die Lage.

Korrekt, es soll lediglich die Lage bestimmt werden. Kannst dir das 
vorstellen wie ein Smartphone, lediglich die Neigung soll erkannt 
werden. Sinn dahinter ist es später einmal die Neigung der Steuerung zu 
erkennen und dementsprechende Aktionen auszuführen.

Michael Frangenberg schrieb:
> Ein ganz einfaches Lagefilter ist übrigens wirklich nicht schwierig, im
> Endeffekt nur eine Kombination aus Hoch- und Tiefpass. Für viele
> Anwendungen reicht das schon aus, da muss man kein EKF auspacken.

Hmm... In Mathe war ich leider noch nie ein Genie, Kalman kommt mir 
daher auf den ersten Blick doch recht kompliziert vor. Vielleicht mache 
ich mir das Leben aber auch selbst schwer. Oft sieht man ja eine ganz 
Simple Formel, dann sieht man wieder Dutzende Berechnungen, weiss nicht 
genau was ich nun brauche. Bin da ein wenig überfordert mit 
Informationen.

Vielleicht kennt jemand einen Link für eine Kalman Beschreibung, 
lediglich für die Fusion von Gyro + Accelerometer?

von Michael F. (startrekmichi)


Lesenswert?

IMU schrieb:
> Hmm... In Mathe war ich leider noch nie ein Genie, Kalman kommt mir
> daher auf den ersten Blick doch recht kompliziert vor. Vielleicht mache
> ich mir das Leben aber auch selbst schwer.
Das glaube ich allerdings auch.

> Oft sieht man ja eine ganz
> Simple Formel, dann sieht man wieder Dutzende Berechnungen, weiss nicht
> genau was ich nun brauche. Bin da ein wenig überfordert mit
> Informationen.
Wie gesagt: wenn dir Kalman zu hoch ist, vergiss ihn. Das ist eine 
gängige Lösung, aber bei Weitem nicht die einzige.

Jeder Segway, balancierende Roboter und viele Quadrocopter (sofern sie 
mehr als nur Drehratenregelung haben) müssen dieses Problem übrigens 
auch lösen. D.h. dazu gibt's genügend Anleitungen und Code im Netz. Such 
z.B. mal nach den genannten Projekten oder nach "Komplementärfilter".

Ein einfacher Ansatz wäre folgender:
- Drehraten aufintegrieren -> ergibt prädizierte Lage
- Aus dem Beschleunigungsvektor die "gemessene" Lage errechnen (das gilt 
zwar streng genommen nur wenn dein Körper sich nicht beschleunigt 
bewegt, aber in der Praxis geht's meist). Die Berechnung ist reine 
Trigonometrie, also am besten mal ganz altmodisch mit Stift und Papier 
hinmalen.
- Prädiktion hochpassfiltern und die Messung tiefpassfiltern, zusammen 
ist das dann ein Komplementärfilter. Über den Filterparameter stellst du 
die relative Gewichtung ein, den Wert muss man einfach mal ausprobieren.


Für ein fertiges Board scheint AHRS (attitude and heading reference 
system) ein guter Suchbegriff zu sein, da solltest du eigentlich etwas 
bezahlbares finden können.


> Vielleicht kennt jemand einen Link für eine Kalman Beschreibung,
> lediglich für die Fusion von Gyro + Accelerometer?
Hier ist eine ganz gute Zusammenfassung der veschiedenen Möglichkeiten, 
allerdings schon recht mathematisch:
http://www.olliw.eu/2013/imu-data-fusing/

von St. D. (st_d)


Lesenswert?

Teensy 3.1 + ein IMU breakout, befestigt auf ein Stück 
Lochrasterplatine.
Falls Du nur ein Stück brauchst schick mir bitte PN, ich habe einen 
abzugeben. Kode ist fertig, gibt die Daten über UART, funktioniert 
wunderbar.

von Tim  . (cpldcpu)


Lesenswert?

Hallo,

so etwas gibt es von

Invensense->MPU6050 mit propritärer CPU, die leider nicht dokumentiert 
ist.
ST->Mit Cortex M0 von ST

Habe die Typen gerade nicht parat. Auf den Websites gibt es mehr infos.

von IMU (Gast)


Lesenswert?

St. D. schrieb:
> Teensy 3.1 + ein IMU breakout, befestigt auf ein Stück
> Lochrasterplatine.
> Falls Du nur ein Stück brauchst schick mir bitte PN, ich habe einen
> abzugeben. Kode ist fertig, gibt die Daten über UART, funktioniert
> wunderbar.

Das hört sich sehr interessant an. Daten in Welchem Format? Bereits 
sauber gefiltert?

Tim    schrieb:
> Invensense->MPU6050 mit propritärer CPU, die leider nicht dokumentiert
> ist.

Den MPU6050 habe ich auch schon gesehen, wenn ich alles richtig 
verstanden habe liefert aber lediglich die Werte der Sensoren per SPI 
oder? Die Fusion von Acc und Gyro ist eigentlich der Teil, den ich 
Suche.

Tim    schrieb:
> Bosch->Mit Atmel CM0
> ST->Mit Cortex M0 von ST

Schaue ich mir gleich mal an

von Tim  . (cpldcpu)


Lesenswert?


von IMU (Gast)


Lesenswert?

Tim    schrieb:
> Bosch:
> 
http://www.bosch-sensortec.com/en/homepage/products_3/9_axis_sensors_5/sensor_hub/sensor_hub_1
> ST:
> http://www.st.com/web/en/catalog/sense_power/FM89/SC1950

Virtuelles High 5!

Sieht auf den ersten Blick nach genau dem aus, was ich suche. Gleich mal 
anschauen ;)

von Tim  . (cpldcpu)


Lesenswert?

IMU schrieb:
> Den MPU6050 habe ich auch schon gesehen, wenn ich alles richtig
> verstanden habe liefert aber lediglich die Werte der Sensoren per SPI
> oder? Die Fusion von Acc und Gyro ist eigentlich der Teil, den ich
> Suche.

Nein, man kann Nutzerprogramme hochloaden, die diverse Berechnungen 
ausführen. Datenfusion zu Quaternionen gibt es als Binary von Invensense 
für registrierte Entwickler und auf diversen unauthorisierten Websites. 
Leider alles undokumentiert.

von Jürgen S. (jurs)


Lesenswert?

IMU schrieb:
> Nun mein extra Wunsch: Ein uC der die Sensordaten einliesst, den Kalman
> FIlter anwendet und die fertigen Daten per SPI/I2C/UART oder wie auch
> immer zur Verfügung stellt. Ich selbst traue mir nämlich nicht zu, einen
> solchen Filter zu Programmieren, bzw. ich traue mir eher weniger zu den
> Mathematischen Teil dahinter richtig zu verstehen.
>
> Ist jemandem von euch ein solches Board bekannt?

Wenn ich mich nicht täusche, gibt es für die Arduino-Plattform weltweit 
ganze Heerscharen an Bastlern, die an RC-Modellflugzeugen, 
RC-Helikoptern, Trikoptern, Quadkoptern, Hexkoptern oder Oktokoptern 
herumbasteln und von diesen Bastler-Heerscharen programmieren ungefähr 
1% der Leute ihre IMUs für die Basteleien selbst, und die übrigen 99% 
kopieren nur die fertigen Libraries, die ihnen andere zur Verfügung 
stellen.

Du bist die 99%!

Beispielhardware: https://www.sparkfun.com/products/11055
Beispiellibrary:  https://code.google.com/p/ardu-imu/downloads/list

von IMU (Gast)


Lesenswert?

Jürgen S. schrieb:
> Wenn ich mich nicht täusche, gibt es für die Arduino-Plattform weltweit
> ganze Heerscharen an Bastlern, die an RC-Modellflugzeugen,
> RC-Helikoptern, Trikoptern, Quadkoptern, Hexkoptern oder Oktokoptern
> herumbasteln und von diesen Bastler-Heerscharen programmieren ungefähr
> 1% der Leute ihre IMUs für die Basteleien selbst, und die übrigen 99%
> kopieren nur die fertigen Libraries, die ihnen andere zur Verfügung
> stellen.

Ja, die gibt es. Kann dir aber sagen, ich bastle selbst mehr als so 
manch einer hier im Forum. Das Projekt an welchem ich gerade sitze waren 
schon ein paar Stunden aufwand (Um genau zu sein über 400 Stunden), viel 
fehlen tut nicht.

Es ist nicht so, dass ich zu Faul wäre irgendwas zu machen. Es ist nur 
so, dass das Gebiet IMU für mich schwer verständlich ist, vor allem 
wegen den ganzen Mathematischen Aspekten, denn Mathe ist irgendwie nicht 
ganz so meins.  Kann dir aber trotzdem sagen, habe mich bestimmt 10 
Stunden in das Gebiet eingelesen, es ist nicht so, dass ich es nicht 
probiert hätte. Jetzt suche ich halt mal was fertiges, vielleicht 
schaffe ich es ja irgendwann doch noch selbst. Aber ist es so tragisch 
etwas zu verwenden was schon existiert? Du erfindest ja auch nicht jeden 
Tag das Rad neu.

Trotzdem vielen dank für deine Links, bzw für eure Links!!!

Eine Menge lesestoff, da mache ich mich gleich mal dran.

von Jürgen S. (jurs)


Lesenswert?

IMU schrieb:
> Aber ist es so tragisch etwas zu verwenden was schon existiert?
> Du erfindest ja auch nicht jeden Tag das Rad neu.

Das brauchst Du mir nicht zu erzählen, denn ich bin Arduino-Bastler und 
verwende recht oft fremde Libraries.

Allerdings sehe ich gerade beim von mir geposteten Hardware-Link: 
US-Ausfuhrbeschränkungen für das kleine kompakte Teil aus µC und IMU auf 
einem Mini-Board.

Wenn es etwas größer sein darf, mußt Du Dir eben ein handelsübliches 
Arduino Mini-Board besorgen und die beiden SPI-Sensoren extern 
anschließen.

Oder wenn Geld keine Rolle spielt: Die Eagle-Files herunterladen, die 
Platine ätzen und von jemandem bestücken lassen, der sich mit 
SMD-Bestückung auskennt, falls Du innerhalb Europas keinen Lieferanten 
findest.

Es gibt für Arduino + Gyrosensor + Beschleunigungssensor + ggf. weitere 
Sensoren aber auch noch diverse andere IMU-Projekte, dieses ArduIMU ist 
bei weitem nicht das einzige. Zum Beispiel das Projekt MultiWii:
http://www.multiwii.com/

von IMU (Gast)


Lesenswert?

Jürgen S. schrieb:
> Das brauchst Du mir nicht zu erzählen, denn ich bin Arduino-Bastler und
> verwende recht oft fremde Libraries.

Dann gehörst du wohl auch zu den 99 % :P

Jürgen S. schrieb:
> Allerdings sehe ich gerade beim von mir geposteten Hardware-Link:
> US-Ausfuhrbeschränkungen für das kleine kompakte Teil aus µC und IMU auf
> einem Mini-Board.

Da steht lediglich das ein Export ausserhalb der USA sich verzögern 
kann. Weiterhin ein interessantes Teil :)

Jürgen S. schrieb:
> Wenn es etwas größer sein darf, mußt Du Dir eben ein handelsübliches
> Arduino Mini-Board besorgen und die beiden SPI-Sensoren extern
> anschließen.

Wäre natürlich auch eine Option. Die Hardware ist weniger das Problem, 
an der Software happerts ;P

Jürgen S. schrieb:
> Oder wenn Geld keine Rolle spielt: Die Eagle-Files herunterladen, die
> Platine ätzen und von jemandem bestücken lassen, der sich mit
> SMD-Bestückung auskennt, falls Du innerhalb Europas keinen Lieferanten
> findest.

Wäre für mich die mit abstand billigste Variante. Habe Zugriff auf ein 
Ätzbad und eine Fräsmaschine für Leiterplatten. SMD Bestückung habe ich 
mit den richtigen Files in ein paar Minuten erledigt, 
Bestückungsmaschinen sind schon was tolles, vor allem wenn man sie 
Firmenintern benutzen darf. :P

von Dennis (Gast)


Lesenswert?


von IMU (Gast)


Lesenswert?

Dennis schrieb:
> http://www.chrobotics.com/shop/um7-lt-orientation-sensor

Das Teil ist Gott. Danke viel mal für den Link!

von Stefan H. (cheeco)


Lesenswert?

Alternativ kannst Du auch hier schauen:

http://www.yeitechnology.com/yei-3-space-sensor

Stefan

von Jürgen S. (jurs)


Lesenswert?

IMU schrieb:
> Wäre für mich die mit abstand billigste Variante. Habe Zugriff auf ein
> Ätzbad und eine Fräsmaschine für Leiterplatten. SMD Bestückung habe ich
> mit den richtigen Files in ein paar Minuten erledigt,
> Bestückungsmaschinen sind schon was tolles, vor allem wenn man sie
> Firmenintern benutzen darf. :P

Dann bist Du natürlich deutlich besser ausgestattet als der 
durchschnittliche Arduino-Bastler. Die Eagle-Files für die ArduIMU V3 
kannst Du hier downloaden:
http://stuff.storediydrones.com/ArduIMU328_V3_Eagles.zip

von Floep (Gast)


Lesenswert?

Etwas teurer, dafür wirklich out-of-the-box zuverlässige Funktion:

http://www.xsens.com/products/

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.