Level-Horizont verstellt sich nach Flips während des Fluges..... (BF 2.2.0)

Status
Nicht offen für weitere Antworten.

Goetz_Cologne

Erfahrener Benutzer
#1
Beim Start ist Levelmode OK, am Ende des Fluges (im Airmode) mit einigen Flips ist der Horizont stark verstellt. Wenn der Levelmode aktiviert wird, hält er aktiv einen Winkel so dass der Copter stark driftet. Nach ab- und wieder anstecken des Lipos ist wieder alles i.O., ist aber reproduzierbar....

Was ist da los? Hat jemand eine Idee?

Setup:
CC3D@BF 2.2.0 (OP-Bootloader)
FrSky 4Ch-Rx mit Summensignal
Sunnysky 2204/2300@5040 4S
 

Jörn

Erfahrener Benutzer
#3
Das haben die MultiWii Versionen auf der NanoWii leider auch. Auf der CC3D tritt das nicht auf.
 
#4
Je nach Hardware, Software und Flugverhalten verschluckt sich die FC bei schnellen Drehungen beim Berechnen der Drehwinkel. Damit passt der Horizont danach nicht mehr. Beim Multiwii Horizon Mode war das extrem. Tritt so auch bei vielen FCs auf wenn man zu lange im Atti Mode schnell vorwärts fliegt, dann driftet der Horizont nach vorne.
 

Goetz_Cologne

Erfahrener Benutzer
#5
"bei CC3d tritt das nicht auf": Bei mir schon.... ...siehe mein Setup oben

Bei MW hatte ich das Problem (seit Version 1.8P2!) nie (fast nie, es gab mal einen BUG in MW vor ca. 2 Jahren, der wurde aber schnell behoben). Da habe ich oft zwischen Acro und Level hin- und hergeschaltet und bin FPV viel im Level geflogen, mit mindestens 5 verschiedenen FC's....... .....mit der CC3D unter OP fiel es mir auch nicht auf.

Wenn schon so fachkompetente und erfahrene User wie "der Frickler" das bestätigen, frage ich mich, warum es mir bisher nie auffiel.
Das Einzige was ich mir zusammenreimen kann ist, dass ich früher weniger und langsamere Flips geflogen bin.

Zusammenfassend heisst das aber, dass ein Levelmode zum Landeanflug (zur Gewöhnung an verschiedene CAM-Tilts) oder auch nur als Rettungsmodus bei CF/BF nach Kunstflugmanövern nicht brauchbar zur Verfügung steht.... erschreckend, damit hätte ich nicht gerechnet.

Was ich daran nicht verstehe: An welcher Stelle ändert isch was während des Fluges? Ist es der ACC, der andere Werte ausgibt oder ist es die Flugsoftware, die während des Fluges die Kalibrierungswerte verändert?
 

schnellmaleben

Erfahrener Benutzer
#6
Das Problem ist dass der Gyro seine maximale Drehratenmessung erreicht. Du kannst die MPU6050 so einstellen dass sie bis 250, 500, 1000 oder 2000°/s messen kann (auf keinen Fall mehr). Mehr ist nicht besser, sondern reduziert die Genauigkeit/Auflösung der Messung (In Taulabs kann man das sogar einstellen). Ich weiß nicht was per default bei den bekannten FlightControl-Software benutzt wird, aber selbst 2000 kann schon knapp werden, in Momenten wenn die Regelung arbeitet. Dass das CC3D mit OP weniger stark als BF/MultiWii betroffen ist, kann daran liegen dass dort 2000 als default verwendet wird.

Wenn jetzt beispielsweise nur 1000°/s eingestellt ist und der Copter sich schneller dreht => ist klar, Fehlmessung.

Für die Absolutlage wird der Gyro hauptsächlich integriert, d.h. Drehungen aufeinander addiert und somit die Gesamtlage immer fortgeschrieben. Der ACC geht nur zu einem geringen Teil als Korrektur ein, weil er im aktiven Flugbetrieb nicht nur die Schwerkraft, sondern auch alle anderen Beschleunigungskräfte durch die Motoren auf allen drei Achsen linear "sieht". Schleichen sich dort nun Gyro-Fehlmessungen ein (vielleicht sogar ein negierter Wert) passt die Absolutlage nicht mehr.

Theoretisch müsste es sich durch die ACC-Beimischung nach einiger Zeit wieder erledigen, vielleicht wirklich einige Minuten, hast Du das mal ausprobiert? Also statt Akkucycle noch mal paar Minuten ruhig im Acro rumschweben, stimmt es dann wieder?
 

Goetz_Cologne

Erfahrener Benutzer
#8
Super, danke für die Mühe.
Findet die Integration des Gyros im Sensor statt (ich kann mich daran erinnern, dass als der MPU6050 Standard wurde daran gearbeitet wurde, Berechnungen von der FC in die MPU zu verlegen) oder in der FC? -> wäre es nicht möglich, in einer gleichmässigen (möglichst unbeschleinigten) Flugphase die Intergration neu zu beginnen?

Ob sich die Dejustierung durch Schweben reduzieren lässt probiere ich gleich mal aus...
 

Goetz_Cologne

Erfahrener Benutzer
#9
Super... ....wenn ich daran gedacht hätte, mir den Levelmode wieder auf einen Schalter zu legen, wäre mein Test auch erfolgreich gewesen.... ....so habe ich gerade meinen einzigen warmen Lipo verflogen und konnte nicht testen ob sich der Drift reduziert.... ...werde berichten, wenn mal wieder volle warme Lipos da sind, es nicht regnet und ich dran gedacht habe Levelmode aufzuschalten.... ....der für mich in jedem Falle witzlos geworden ist... ..hilft nur üben üben üben...

Bis vor kurzem bin ich Acro nur mit einem alten Board mit ITG3200 geflogen - war der dafür unanfälliger?
 

Goetz_Cologne

Erfahrener Benutzer
#10
Test: Start und Levelmode: i.O., ein paar Flips im Acro: Horizont im Levelmode ist verstellt. Ruhiges schweben im Acro (ca. 1. Minute): Horizont ist wieder O.K.

Für mich bleibt neben der Erkenntnis, dass der MPU60x0 auf einem Racer oder Acroquad zumindest mit den standardeinstellungen von CF/BF keinen Sinn macht die Fragen:

- Ist das bei anderen ACC's genau so oder hängt das am MPU60x0?

- Welche Drehrate ist Standardmäßig bei CF/BF eingestellt - und kann man sie ändern?
 

schnellmaleben

Erfahrener Benutzer
#11
Cool, danke für den Test und Bestätigung.

Ich habe mal im Code von Betaflight geguckt: Es wird sowohl für die MPU6050 (Naze32 & Co) und MPU6000 (CC3D) 2000°/s eingestellt. Vielleicht ist ja irgendwo noch ein Bug in der Software (müsste man debuggen was konkret in den Situationen passiert); oder es ist einfach am Limit (wobei man da noch Workarounds schrauben könnte, z.B. den Complementärfilter dynamisch anpassen oder schneller resetten wenn die Messung in die Sättigung geht...)

ODER, für mich bleibt die Erkenntnis, hat der Levelmode auf einem Racer oder Acroquad keinen Sinn ;)

Der ITG3200 ist auch auf 2000°/s limitiert.

Die konfigurierten Drehraten an sich sind nicht so hoch, bei Luxfloat gibt es eine Umrechnung auf physikalisch Einheiten die ich gerade nicht genau im Kopf habe, vielleicht (Roll|Pitch|Yaw)-Rate mal 100 = Drehrate in Sekunden? Also 0.5 = 500 grad/s? Kommt gefühlt hin... Bei OP kannst Du es ja direkt in °/s angeben.
 

Goetz_Cologne

Erfahrener Benutzer
#12
Super, Danke für die Coderecherche... ...bei meinen Programmierkenntnissen wäre das ein dreistes Unterfangen geworden;-)

Mir fällt auf, dass ich meinen PIDC bei meinem Setup nicht angegeben habe - hatte keinen Zusammenhang gesehen. Ich bin gerade von OP (1000°/s) auf BF (Rate P&R 0.8 aber MW_Rewrite) umgestiegen und mag OP nicht mehr fliegen:). Lux hatte in Preversionen von BF (nach Forum RCG) Probleme gemacht...

Fazit ist wohl: Levelmode vergessen.... ....was ich (z.B. bei massiven Videostörungen) schon schade finde. Man sollte drüber nachdenken, darauf hinzuweisen, dass Level für Acroflieger KEIN geeigneter Rettungsmodus ist (und damit sicher auch kein anderer Flugmodus ausser Acro selbst).
-> Gyro-Only, ohne Netz und doppelten Boden:)
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten