Forum: Mikrocontroller und Digitale Elektronik Lagebestimmung


von Claudia M. (cluadiam)


Lesenswert?

Hallo,

ich habe einen Magnetfeldsensor und Beschleunigungssensor. Beide kann 
man her nehmen um Nick und Roll (Quadrocopter) zu bestimmen. Allerdings 
nur solange sie nicht beschleunigt werden. Denn dann verändern sich die 
Werte beider Sensoren aufgrund der Bewegung.

Ist es theoretisch möglich mit z.B. einen Kalman Filter die beiden 
Sensoren zu einer sauberen Lagewert (x/y) zusammenzufügen?

Ich möchte noch kurz erwähnen, dass es hier nicht um eine Gyro/ACC 
Kombination handelt, sondern um eine Magnetic/ACC Kombination.

von Michael K. (mmike)


Lesenswert?

Hallo Claudia,

gehen würde das schon. Was Du auf die Schnelle mal ausprobieren kannst 
ist ein Komplementärfilter. Such mal unter google "The balance filter". 
Ist einfach deutlich weniger Aufwand als ein Kalmanfilter ...

Das Problem ist wie Du schon erwähnt hast, dass der 
Beschleunigungsmesser nicht zwischen dynamischer und statischer 
Beschleunigung unterscheiden kann. Ein Magnetometer könnte das zum Teil 
kompensieren, aber die Reaktion ist deutlich langsamer als bei einem 
Gyro. Zudem sollte es noch lagekompensiert sein, sonst kommen auch 
falsche Werte raus.

Meiner Erfahrung nach sind Magnetometer aber wenig zuverlässig auf dem 
"engen" Raum eines Quads. Da fließen einfach zu viele Ströme von den 
Reglern für die Motoren.
Hab mal Versuche gesehen, in der Arbeit mit einem Okto. Da hat im 
stabilen Flug das Magnetometer +-5 Grad gependelt ...

Was spricht denn gegen ein Gyro?

Grüße,
Michael

von Claudia M. (cluadiam)


Lesenswert?

> Was spricht denn gegen ein Gyro?
Naja, die anderen beiden sind bereits onboard und gyros müsste ich erst 
einbauen.

Würdest du denn davon abraten diese Kombination in einem copter zu 
nutzen? Mir würde ein stabiler einsteigerflug damit reichen. Keine 
Kunststücke.

von Michael K. (mmike)


Lesenswert?

Versuch macht kluch ;-)

Ich bezweifel aber dass es funktioniert ... aber ich lasse mich gerne 
eines Besseren belehren ...

Wenn Die Entscheidung doch für nen Gyro fällt, kann ich das ITG-3200 
empfehlen (z.B. bei Watterott zu beziehen). Damit fliegt auch mein 
Tricopter ...

Grüße,
Michael

von Lehrmann M. (ubimbo)


Lesenswert?

Michael K. schrieb:
> Ich bezweifel aber dass es funktioniert ...

Dieser Meinung darf ich mich uneingeschränkt anschließen. Die Probleme 
z.B. bzgl des Rauschens oder Temperaturdrifts von Gyros / Accs kann man 
noch halbwegs kompensieren, wohingegen du einen Magnetfeldsensor nur 
sehr schwer bis garnicht entstören / filtern kannst.

Es wäre allerdings sehr interessant, wie gut ein Kalman da wieder was 
rausreißt. Das Problem ist, dass du tausende Störquellen hast - überall 
wo ein bisschen Induktivität da ist knallt dir dein Magnetfeldsensorwert 
irgendwo im Raum herum ...

Michael K. schrieb:
> Wenn Die Entscheidung doch für nen Gyro fällt, kann ich das ITG-3200
> empfehlen (z.B. bei Watterott zu beziehen).

Das wäre mir ein bisschen zu stumpf ... 2000°/Sec wären mir zu ungenau. 
Das wären ja knapp 6 Loopings in einer Sekunde.

Claudia Mechtel schrieb:
> Würdest du denn davon abraten diese Kombination in einem copter zu
> nutzen? Mir würde ein stabiler einsteigerflug damit reichen. Keine
> Kunststücke.

Da würde ich definitiv davon abraten - gerade für Einsteiger. Ich 
verwendet den Magnetfeldsensor an meinem Octo nur zu Orientierunghilfe 
am Gyro wenn die gemittelten GPS-Werte mal wieder rumspinnen.

von Michael K. (mmike)


Lesenswert?

Lehrmann Michael schrieb:
> Das wäre mir ein bisschen zu stumpf ... 2000°/Sec wären mir zu ungenau.
> Das wären ja knapp 6 Loopings in einer Sekunde.

Bei 16bit Auflösung geht das schon ;-) Und mehr als ein Looping pro 
Sekunde kriegt er auch nicht hin ....

Grüße,
Michael

von Claudia M. (cluadiam)


Lesenswert?

> Wenn Die Entscheidung doch für nen Gyro fällt, kann ich das ITG-3200
empfehlen (z.B. bei Watterott zu beziehen).

Hm, wenn ich schon Sensoren einbauen muss, wäre da ein Board ala 
http://www.sparkfun.com/products/9268 nicht fast besser? Wenn ich es 
richtig verstanden habe, kombiniert es ACC und Gyro bereits und gibt mir 
die Lage sauber zurück. Bei einem Preis von 64€ inkl. Express Versand 
und Steuern wäre es nur minimal teurer und als die Gyros bei Watterott. 
Vielleicht hat ja Wattenrott ähnliches im Angebot.

> Das wären ja knapp 6 Loopings in einer Sekunde.
Ich habe nicht vor auch nur einen zu fliegen :)

> Ich bezweifel aber dass es funktioniert

Ich befürchte fast, du hast recht. Bei genauen überlegen wird das wohl 
nicht gehen. Ich weiß nicht, wie der Magnetfeldsensor funktioniert, aber 
irgendwie verhält er sich genau so, wie der ACC, vor allem wenn er 
geschüttelt wird hat er ähnliche Ausschläge, wie der ACC. Das würde ja 
bedeuten, ich möchte mit einem vom Verhalten ähnlichen Sensor die 
unerwünschten Werte kompensieren.
> Was Du auf die Schnelle mal ausprobieren kannst ist ein Komplementärfilter
Aber ich werde trotzdem mal den Filter ausprobieren. Vielleicht erreiche 
ich doch was.

von Klaus W. (mfgkw)


Lesenswert?

Claudia Mechtel schrieb:
> Vielleicht hat ja Wattenrott ähnliches im Angebot.

Mit Kompass:
http://www.watterott.com/de/9-Degrees-of-Freedom-Sensor-Stick

von Claudia M. (cluadiam)


Lesenswert?

Filtert der denn auch schon, so dass ich pitch and roll bekomme? Ist aus 
dem Text nicht zu erkennen. Der von Sparkfun macht es scheinbar

von Claudia M. (cluadiam)


Lesenswert?

http://www.watterott.com/de/9-Degrees-of-Freedom-Razor-IMU-AHRS-compatible
Der sieht vielversprechend aus. Aber 99€ ... puh

von Klaus W. (mfgkw)


Lesenswert?


von Claudia M. (cluadiam)


Lesenswert?

Ja, das sieht ja ganz vielversprechend aus. Aber geht das nicht 
günstiger?

von Michael K. (mmike)


Lesenswert?

Was ist denn günstig bei Dir? Die meisten der "IMUs" gibts zwar schon 
mit Code, aber wenn Du nen Quad regeln willst, dann sind 50Hz leider zu 
wenig. Mein Tricopter fliegt mit 400Hz. Andere, wie der Mikrocopter oder 
die Dinger von Asctec mit 1khz.

Es kommt einfach drauf an, wie Dein Vorgehen ist ... erzähl doch mal ein 
bisschen!

Grüße,
Michael

von Klaus W. (mfgkw)


Lesenswert?


von Claudia M. (cluadiam)


Lesenswert?

> Es kommt einfach drauf an, wie Dein Vorgehen ist ... erzähl doch mal ein
bisschen!
Es soll ein Quadrocopter werden. Und zwar möchte ich den von Grund auf 
selbst machen (keinen fertigen kaufen). Vor allem geht es mir um die 
Programmierung.  Jetzt bin ich gerade dabei zu prüfen, wie ich die Lage 
(Nick/Roll) sauber erfassen kann, damit ich sie mit meinem PID Regler 
regeln kann. Ich weiß schon so viel, dass man normalerweise 3 Gyros + 3 
ACCs nimmt, die üblicherweise über einen Kalmanfilter zu einer sauberen 
Lagebestimmung hergenommen werden. Den Thread habe ich deswegen 
aufgemacht, weil ich nirgends etwas über die Kombination Mag / ACC 
gelesen habe und bei mir die Frage aufkam, wieso man dies nicht 
miteinander zu einer Lage hernehmen kann. Aber mittlerweile glaube ich 
auch, dass dies nicht gehen wird. Ich werde trotzdem mal nen 
Komplementärfilter drüber laufen lassen, um zu sehen, was der ausspuckt.

Kann jemand Gyros empfehlen, die man nehmen kann? Allerdings muss ich da 
einen Kalmanfilter selbst implementieren ... da komme ich aber schnell 
an die Grenze mit meinem Verständnis und ich befürchte ich werde den 
selbst nicht proggen können. Kennt jemand eine gute Erklärung für den 
Filter (deutsch)? Ich habe bis jetzt nur englische Seiten gefunden und 
dies erschwert es nur unnötig.

von René F. (ren_f)


Lesenswert?

kleiner Geheimtipp:
http://invensense.com/mems/gyro/mpu6000.html

25 € wenn viele bei watterott den anfragen nehmen die den sicher in Ihr 
Programm auf.

von Michael K. (mmike)


Lesenswert?

@Rene: Den versuche ich (MPU6050) sein fast einem halben Jahr zu 
bekommen. Momentan leider nirgends lieferbar. Auch beim Hersteller nicht 
...

@Claudia: Der Kalmanfilter ist leider nicht besonders leicht zu 
verstehen und im Vergleich mit DCM Algorithmen oder Komplementär sehr 
komplex und rechenintensiv. Welchen Prozessor siehst Du denn vor?
Meinen Tri hab ich aus dem gleichen Grund aufgebaut, wie Du. Verständnis 
von A bis Z. Momentan setze ich nen XMega128A1 ein, dank der üppigen 
Peripherie. Wenn Du sowieso kein Loopings fliegen willst, brauchst fast 
keinen Kalman oder DCM. Ich limitiere bei meinem Tri die Lagewinkel im 
Lagereglermodus einfach auf +-30 Grad. Fang einfach mal klein, mit nem 
µC und den Sensoren an und bring die Lagewinkelrechnung zum laufen. Der 
Rest ergibt sich dann schon ...

Grüße,
Michael

von René F. (ren_f)


Lesenswert?

Ich habe hier ein Angebot von topas.de liegen für KW34. Sonst würde der 
6050 noch gehen:

den gibts hier

http://www.lipoly.de/index.php?main_page=product_info&cPath=880_883_885_1820&products_id=166414

von Michael K. (mmike)


Lesenswert?

Genau da hab ich im April bestellt ;-)

von Claudia M. (cluadiam)


Lesenswert?

@Michael: Danke ... so habe ich mir das auch gedacht. Die Lageregelung 
wird wohl der komplizierteste Part. CPU habe ich noch nicht so genau 
geschaut. Ich werde mich dir einfach anschliessen und mit deiner CPU 
anfangen zu suchen. Aber ein Schritt nach dem anderen. Erst mal muss 
klar sein, ob ich die Lagewerte sauber berechnen oder erhalten kann. 
Ohne das brauche ich auch nicht anfangen.
Was heist eigentlich DCM? Welchen Filter empfiehlst du mir? 
Komplementärfilter?

@René: der hat aber nicht zufällig schon einen Filter implentiert, 
sodass die Lagewerte schon gesäubert sind? In der Beschreibung war das 
nicht sauber rauszulesen.

von Bernd33-1 (Gast)


Lesenswert?

Es gibt noch den WII-Copter. Da wird die Sensorik (ACC und Gyros) aus 
den WII Fernbedienungen genommen. Billiger kommt man an die Sensorik 
nicht ran.

Grüße, Bernd

von Informant (Gast)


Lesenswert?

Bernd33-1 schrieb:
> Es gibt noch den WII-Copter. Da wird die Sensorik (ACC und Gyros) aus
> den WII Fernbedienungen genommen. Billiger kommt man an die Sensorik
> nicht ran.
>
> Grüße, Bernd

Aber mit Motion Plus, oder wii das heisst.
Klone gehen anscheinend auch, Fliegen geht wohl auch ohne 
Beschleunigungssensoren. Hier einige Varianten mit MSP430 und 2.4 GHz 
Funkmodulen: http://www.rcgroups.com/forums/showthread.php?t=1335765

von Michael K. (mmike)


Lesenswert?

@Claudia: DCM steht für Direction Cosine Matrix 
(Richtungscosinusmatrix). Da gibts einige Paper drüber von einem Mahony 
(scholar.google.com). Der Algo wird auch von einigen für nen SW 
Autopiloten für Modellflieger verwendet. Die rechnen floating point auf 
nem AVR - geht aber eben nur bis 40 - 50Hz. An Deiner Stelle würde ich 
mit Kompfilter anfangen. Der ist einfach und in ner Stunde verstanden 
und geschrieben. Bei mir funzt der wunderbar! Wenns später ein wenig 
mehr sein darf, dann kann man immer noch nen DCM oder Kalman angehen.
Und als Tipp. Die Gyro-Werte nicht einfach integrieren und damit die 
Lagewinkel rechnen. Das funzt nur wenn Roll und Nickwinkel nahe null 
Grad sind. Also "body nach euler" umrechnen. Stichwort Jacobi-Matrix ...

@Bernd: Über den WII copter hab ich auch schon einiges gelesen und 
scheint gut zu funktionieren.

Grüße,
Michael

von Claudia M. (cluadiam)


Lesenswert?

Also, ich habe jetzt die Mag und ACC Werte durch einen 
Komplementärfilter gejagt (http://forum.mikrokopter.de/topic-5795.html). 
Dabei kommt tatsächlich nur Müll raus.

von HelmH (Gast)


Lesenswert?

Hallo,

die Frage wurde oben schon mal gestellt, aber nicht beantwortet: Der 
MPU6050 hat ja einen "Digital Motion Processor™ (DMP™)". Heist das, dass 
er bereits die Signale zu sauberen Lageinformationen zusammenfügt?

von Michael K. (mmike)


Lesenswert?

@HelmH: Das ist leider nicht eindeutig. Auch die Datenblätter scheinen 
noch unvollständig zu sein. Könnte schon sein, aber genaueres weiß man 
noch nicht ...

Grüße,
Michael

von HelmH (Gast)


Lesenswert?

@Michael: Danke ... so habe ich die Doku auch verstanden

Gibt es irgendwo Lötadapter für diese Bauform? Habe bei den gängigen 
Anbietern nix gefunden.

von Michael K. (mmike)


Lesenswert?

@HelmH: Gern. Meinst Du Headerboards? Wenn der Sensor mal marktverfügbar 
ist, bin ich mir sicher, dass es fertige Develboards zu kaufen geben 
wird ... Sparkfun wird sich sicherlich was einfallen lassen ...

Grüße,
Michael

von HelmH (Gast)


Lesenswert?

Zitat von einem Sparkfun Kommentar:
"The appeal and "fusion" offered by InvenSense's IMU comes from what 
they call the Digital Motion Processor (DMP) -- which if I understand 
correctly is a processor embedded in the gyro's packaging which can turn 
the raw sensor values into extremely useful and nicely filtered data 
representations like quaternions and world-corrected acceleration 
values."

Wenns stimmt, dann brauche ich wohl auch so ein Ding!

von Michael K. (mmike)


Lesenswert?

Klingt fantastisch ! :-)

von René F. (ren_f)


Angehängte Dateien:

Lesenswert?

habe schon mal eine Breakout Platine erstellt.

von Claudia M. (cluadiam)


Lesenswert?

Kann man sich vorstellen, dass auf dieser Größe ein kalman Filter in 
entsprechender geschwindigkeit läuft?

von Michael K. (mmike)


Lesenswert?

@Rene: Cool! Sind da die Pullups schon drauf?

@Claudia: Welche Größe meinst Du? Die von der Breakout Platine? Da ist 
kein Proz drauf. Hängt aber vom Proz ab ... AVR bzw. XAVR könnte mit 
viel tuning und fixed point schon hinhauen ...

Grüße,
Michael

von Claudia M. (cluadiam)


Lesenswert?

@René: Ab wann ist es lieferbar ;)

von technikadonis (Gast)


Lesenswert?

Wenn der Prozessor noch nicht feststeht, habe ich hier noch einen 
Vorschlag:

Texas Instuments TMS320F28335
- 32Bit
- FPU
- bis zu 150MHz
- 2x CAN
- 3x UART
- 6x PWM
- ...

von Claudia M. (cluadiam)


Lesenswert?

@Michael: nein ... der DMP auf dem MPU. Da bis jetzt nur Gerüchte 
kursieren, was der genau macht, stellte ich mir die Frage, ob in so 
einem kleinen Ding entsprechende Software überhaupt schnell genug laufen 
könnte.

Eine Anwendung habe ich bereits bei YouTube gefunden: 
http://www.youtube.com/watch?v=VVwG7jLdaH4&feature=related

Läst sich aber schlecht mit den Anforderungen an einen Quadrocopter 
vergleichen.

von Claudia M. (cluadiam)


Lesenswert?

> Cool! Sind da die Pullups schon drauf?

Da es zufällig 3 sind, wohl eher die Kondensatoren, oder? Wobei es beim 
6050er 4 Kondensatoren sind, obwohl ich nicht weiß, ob man den VLogic 
Kondi wirklich braucht.

von René F. (ren_f)


Lesenswert?

ist ein ziemlich einfaches breakoutboard für den 6000 für den 6050 mach 
ich auch noch eins. Pullup brauchte ich nicht da ich´s über nen MSP430 
nutzen will. Kann ich aber auch noch bauen. Wenn Ihr wollt lade ich die 
Target Dateien hoch.

von Claudia M. (cluadiam)


Lesenswert?

@rene: gern. Danke.

von Philipp F. (philipp5054)


Lesenswert?

Guten Abend,
wenn Interesse besteht währe ich bereit einen "Großauftrag" der Breakout 
Platinen bei Leiton zu ordern und die Verteilung zu organisieren. Wenn 
genug zusammen kommen sollte der Preis ja auch Human sein. Evtl. sollten 
wir uns dann aber noch mal gedanken über Pullups und notwendige Cs 
machen.


Schönen Abend

Gruß Philipp

von René F. (ren_f)


Lesenswert?

Ich werde mich die Tage nochmal ans Layout machen. Was macht das 
preislich für einen Unterschied zwischen 1 und 2 seitigem Layout.

von Philipp F. (philipp5054)


Lesenswert?

@René F. Das kannst du am besten auf Leiton.de konkret durchrechnen. 
Würde allerdings immer zu Doppelseitig tendieren da du nur da auch 
saubere Durchkontaktierungen hast.
Das "Layout" wenn wir das bei dem kleinen Ding mal so nennen wollen 
könnte ich auch eben hinmalen. Die Frage ob generell interesse Besteht 
ist allerdings noch immer nicht so recht beantwortet ;-)

von Claudia M. (cluadiam)


Lesenswert?

Ja. Prinzipiell schon. Am besten mit pull ups und kondensatoren. Aber 
ohne genauere preisinformationen möchte ich jetzt noch nix zusagen.

von René F. (ren_f)


Lesenswert?

Ich wäre auch mit einer dabei, das Problem ist, dass der Chip noch nicht 
lieferbar ist.

von HelmH (Gast)


Lesenswert?

Ich habe mal quick and dirty eine Platine preislich berechnet. wenn man 
nur eine kauft sind es 56€. bei 5 Stück sind es nur noch 11€/Stk und bei 
10 Stück sind es 6€/Stück zzgl. Verpackung/Versand/Verteilung an jeden 
einzelnen.

Ich habe aber keine besonderen Einstellungen bei der Berechnung 
vorgenommen (Also Standardeinstellung mit 20x20mm Platine)

Ich denke mal, wenn wir 5 Leute zusammenkriegen, dann wäre der Preis 
schon akzeptabel.

>  das Problem ist, dass der Chip noch nicht lieferbar ist.
Ja, bei lipoly wird es wohl diesen Monat auch nix mehr werden. Aber eine 
Platine schon mal kreiren sollte doch kein Problem sein, oder?

von Michael K. (mmike)


Lesenswert?

Ich finde den Vorschlag von Philipp wirklich toll, aber für mich bzw. 
meinen Tricopter wäre der nächste Schritt direkt eine Platine zu 
entwerfen mit der kompletten Sensorik und Controller an Board.
Abgesehen davon bin ich mir fast sicher, dass es mindestens von Sparkfun 
ein Headerboard geben wird, wenn denn der Chip mal lieferbar ist ... 
seid Ihr sicher, dass ihr Euch die Arbeit machen wollt? Das layouten 
geht sicher schnell, aber gibts schon Erfahrungen bzgl. dem Löten von 
den Dingern?

Grüße,
Michael

von HelmH (Gast)


Lesenswert?

Ich habe eines bestellt und habe noch nie so ein Ding gelötet. Ich bin 
aber recht zuversichtlich, nach den ganzen Anleitungen hier, dass man 
das hinbekommt.

von René F. (ren_f)


Angehängte Dateien:

Lesenswert?

habe extra die pins etwas länger gemacht und nach außen gezogen. Wegen 
der Lötbarkeit.

von Mathias Tantau (Gast)


Lesenswert?

Hallo,
hat jemand das Anlöten der QFN Gehäuse hinbekommen, oder sollte man doch 
lieber ein fertiges breakout mit Lagesensoren drauf bestellen?

von runtastic (Gast)


Lesenswert?

Kauf ein fertiges.
Glaub mir.
Hab das auch schon öfters gemacht.
Macht keinen Spaß.

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.