Lagebestimmung

#2249755
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.
#2249794
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
#2250150
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
#2250186
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.
#2250259
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.
#2250372
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
#2250391
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.
#2250399
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
#2250518
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.
Gast #2250527
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
#2250534
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
Gast #2250882
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?
Gast #2251009
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!
#2252018
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.
#2259670
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
#2260449
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 ;-)
Gast #2260704
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?
#2260743
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren