Funktionieren bei Euch Kompass und Baro vernünftig ?

Roberto

Erfahrener Benutzer
@aileroned
I zunächst auf 100 (0,100) P in 5er Schritten erhöhen. D erstmal testen, ob die neue Variante funktioniert mit 1/2/3 -> wenn dabei keine spürbare D Wirkung auftritt ->OK, es funktioniert wie beabsichtigt, dann in 20er Schritten hoch.
Der Thread ist auch für das Magnetometer (@martinez, dass ich nicht habe :( ), das interessiert mich z.B auch.
Ich habe einmal grob über den EOSBandi Code geschaut bzgl. Magnetometer (http://code.google.com/p/i2c-gps-nav/downloads/list) und irgendwie keine gravierenden Änderungen gegenüber der jetzigen Dev gefunden. Martinez, probeweise kannst Du den natürlich mal flashen, es kann nur besser werden....

LG
ROB

P.s.: In dem Doc bei Eosbandi steht noch was zur Mag Declination , hast Du die eingegeben?
Zitat:"
Magnetic declination
Magnetic declination is the angle between magnetic north (the direction the north end of a compass needle points) and true north. For a precise navigation we have to know this variance and use it during our calculations. You can get your location’s magnetic declination from this website : http://magnetic-declination.com/ The value must be converted to a decimal degree by the degree+minutes*(1/60) formula. For example the magnetic declination for Budapest is 3° 58' EAST so the value that you have to enter into config.h is 3+58*(1/60) which is 3.96. EAST means that the value is positive, WEST means it’s negative ( at Pittsburg it is 9° 13' WEST which is -9.21 ). Enter the calculated value to config.h, in the #define MAG_DECLINIATION line, please add an f after the number to indicate a decimal number.
#define MAG_DECLINIATION 3.96f"

D.h. bei Dir müsste das irgendwas in der Art von:

#define MAG_DECLINIATION 1.48f // (Eschborn/Hessen)

stehen.
 

aileroned

Erfahrener Benutzer
Ja, ich hab die Überschrift schon lange nicht mehr gelesen :D.

Magno interessiert mich auch und ich kann das Verhalten auch genau so bestätigen. Die yaw-Achse ist immer daneben.
Danke für den Link zum MWC Forum, ich werde mal mit den Gains spielen.

Defakto benutze ich ihn nicht... muss mir mal was einfallen lassen den in einer kontrollierten Situation zu kalibrieren.
Bluetooth ist auf dem Weg zu mir, das erleichtert die Sache ungemein.
 

helste

Erfahrener Benutzer
Ich werde heute mal wieder die neue Version drauf machen und testen.
Die letzten Tage war ich mit dem APM1 beschäftigt. Hatte da einen blöden Fehler, welchen ich heute gefunden habe. Wer lesen will, worum es da ging und wie blöd man eigentlich sein kann, das steht im Ardupilot Mega Faden im Quadrokopterbereich.
Eigentlich hätte ich das gar nicht schreiben sollen und mich stattdessen in ein tiefes Loch im Boden vergraben sollen, aber vielleicht macht ja mal wer den gleichen Fehler wie ich (obwohl ich mir das kaum vorstellen kann) und ist dann froh, dass er erstens weiß, woran es liegt und zweitens sieht, dass es auch andere Schwachmaten gibt, die genau den gleichen Blödsinn machen. Sorry, aber ich bin gerade so schön selbstkritisch drauf und würde mich am liebsten den ganzen Tag für meine Dummheit geiseln.
 

martinez

Erfahrener Benutzer
Moin
Den mag kannst du auch per Knüppel kalibrieren .
Bei Mode 2 gas auf voll, yaw auf voll rechts und Nick voll ziehen.
Dann startet der kalibriervorgang.
Oder im ConfigTool den Calib_Mag Knopf drücke und dann das USB Interface ziehen und den Copter fröhlich drehen...
 

martinez

Erfahrener Benutzer
Der Thread ist auch für das Magnetometer (@martinez, dass ich nicht habe :( ), das interessiert mich z.B auch.
Ich habe einmal grob über den EOSBandi Code geschaut bzgl. Magnetometer (http://code.google.com/p/i2c-gps-nav/downloads/list) und irgendwie keine gravierenden Änderungen gegenüber der jetzigen Dev gefunden. Martinez, probeweise kannst Du den natürlich mal flashen, es kann nur besser werden....

LG
ROB

P.s.: In dem Doc bei Eosbandi steht noch was zur Mag Declination , hast Du die eingegeben?
Zitat:"
Magnetic declination
Magnetic declination is the angle between magnetic north (the direction the north end of a compass needle points) and true north. For a precise navigation we have to know this variance and use it during our calculations. You can get your location’s magnetic declination from this website : http://magnetic-declination.com/ The value must be converted to a decimal degree by the degree+minutes*(1/60) formula. For example the magnetic declination for Budapest is 3° 58' EAST so the value that you have to enter into config.h is 3+58*(1/60) which is 3.96. EAST means that the value is positive, WEST means it’s negative ( at Pittsburg it is 9° 13' WEST which is -9.21 ). Enter the calculated value to config.h, in the #define MAG_DECLINIATION line, please add an f after the number to indicate a decimal number.
#define MAG_DECLINIATION 3.96f"

D.h. bei Dir müsste das irgendwas in der Art von:

#define MAG_DECLINIATION 1.48f // (Eschborn/Hessen)

stehen.
Die Zeile "#define MAG_DECLINIATION" hatte ich bisher leider übersehen...
Ich habe an Hand der verlinkten Seite die Zeile jetzt mal so abgeändert:
#define MAG_DECLINIATION 2.40f //For Amberg Germany.

Leider bringt das nicht für das beschriebene Problem :(

Den Code vom EOSBandi wollte ich eben aufspielen und testen, leider bekomme ich ein Kompilierfehler, siehe Bild.
In der zip Datei sind ja noch ein paar Ordner mit dabei, muss ich bei dieser Version irgendetwas anderes beim aufspielen machen?

Viele Grüße
Martin

PS: Super das hier so viele Leute aktiv mit machen!!!
 

Anhänge

Roberto

Erfahrener Benutzer
@martinez:

Da hilft ein Blick in das DOC ! Abschnitt compiling the code:

"Compiling the code
There are some extra steps are needed to get the code compiled in the arduino IDE. The GPS functions are using two libraries for PI and PID controllers. These libraries are in the Arduino-PID-libs folder and you have to copy them into the libraries folder in your arduino folder. If you planning to use i2c_gps, then an extra step is needed. The i2c communication library that comes with arduino needs a patch. You have to take twi.c and twi.h from the Arduino-twi-lib-patch and copy them to the libraries\wire\utilities folder. "

LG

ROB

P.s.: War mir ungefähr - viel zu aufwändig.....
 

Wollez

Erfahrener Benutzer
Hallo zusammen,

zum Thema Mag kann ich Euch auch nen kleinen aber sehr wichtigen Tipp geben. Das Problem hat nichts mit Eurem Sensor oder der Software zu tun!
Er wird von der Stromversorgung und Regler gestört! Die Stromversorgung MUSS unbedingt gedrillt werden. Verwendet KEINE zentralen Boards für die Stromversorgung! Auch wenn es eigentlich schön ist. Musste mich leider auch davon trennen.

Ihr könnt das mal ausprobieren. Macht die Rotoren weg und startet den Copter. Schaut Euch dabei die Werte am PC an. Wenn Ihr die Drehzahl der Motoren erhöht, wird der Kompass sich drehen. So lange Ihr diesen Effekt habt, ist der Kompass einfach nicht brauchbar. An dem liegt es aber nicht.

Gruß Wolfgang
 

aileroned

Erfahrener Benutzer
Hi Wollez,

das hier beschriebene Problem ist bereits direkt nach dem Kalibrieren vorhanden.
Er tut auf x-y, was er soll, aber auf z bricht er jede Logik.

Cheers,

Micha
 

helste

Erfahrener Benutzer
Ich habe jetzt den Kompass noch nicht mit drehenden Motoren in der GUI überwacht, kann daher auch nicht mit Sicherheit sagen, wie es sich bei mir verhält. Ich habe aber im Flug einen deutlichen Unterschied, wenn ich den Kompass zu schalte. Ohne Kompass muss ich YAW immer korrigieren, aber mit zugeschaltetem Kompass bleibt der Kopter immer konstant ausgerichtet. Habe das bei meinem Barometerdauertest über 15 Minuten ausprobiert und ohne den linken Stick auch nur einmal anzurühren ist der 15 Minuten geschwebt und hat dabei immer in die gleiche Richtung geschaut. Ohne zugeschaltetem Kompass geht das bei mir nicht.
Ich verwende ein PDB und habe die Kabel nicht verdrillt. Ich werde das demnächst aber mal mit angeschlossenem Kopter in der GUI testen.

Was die Barogeschichte anbelangt, so dürfte die letzte Version wieder ein weiterer guter Schritt gewesen sein.
Habe die vorhin drauf gespielt und war jetzt gerade mal im Garten. Bei ziemlich heftigem und böigem Wind war die Gelegenheit für den Härtetest gut.
Habe den Kopter auf ca. 5m Höhe geparkt und musste nur permanent gegen den Wind ankämpfen, was die Position anbelangt. Der Wind war so stark, dass der Kopter ziemlich geneigt sein musste, um dagegen anzukämpfen. Die Höhe hat er aber super gehalten. Besser, wie letztens bei Windstille. Ich habe beinahe den Eindruck, dass er besser hält, je mehr Kräfte von außen auf ihn einwirken. So hat er letztens bei Windstille am besten direkt über dem Boden, also im Bodeneffekt gehalten. Ich führe das auf die ACCZ Korrektur zurück. Heftiger Wind bzw. Bodeneffekt schütteln den Kopter ruckartig durch und da arbeitet der ACC ganz energisch dagegen an.
Das merkt man auch, wenn man den Kopter vor sich in die Luft parkt und versucht ihn runter zu drücken. Macht man das langsam, dann geht es leichter. Drückt man aber ruckartig drauf, dann gibt es heftige Gegenwehr.

Jedenfalls hat der heute bei sehr heftigen Wind die Höhe auf +/-1m gehalten und nur ab und zu ist er zwischendurch mal kurz um 2-3m rauf oder runter. Das war aber in 5 Minuten vielleicht 3-4 mal der Fall.
Der Rest war wirklich stabiles Höhe halten. Echt spitze.
 

weisseruebe

Erfahrener Benutzer
Ich habe nun doch mal ein wenig probiert.
Mal die aktuelle dev-Version aufgespielt - keine Verbesserung.
Die Gain-Werte verändert - keine Verbesserung.

Wenn man den Gain ändert, dann ist die Änderung der Nadel nicht mehr linear, bei Nord springt sie dann sehr schnell, bei Süd sehr langsam.
Der Fehler ist viel stärker, wenn die Nase nach Norden oder Süden zeigt, wenn sie nach Osten oder Westen zeigt ist er deutlich geringer im Moment.

Im aktuellen 2.0-Code gibt es auch eine Fallunterscheidung für 5883 und 5843, die gibt es in meinem 2.0 Code noch nicht. Die hat aber bisher auch nicht den erwünschten Effekt gebracht...
 

weisseruebe

Erfahrener Benutzer
Zur Deklination (d.h. Missweisung): Das macht Sinn, wenn man mit GPS fliegt. Dann ist das ganz wesentlich, damit der Copter die richtige Richtung einschlagen kann, um bestimmte Koordinaten zu erreichen. Wenn es nur um Heading Hold geht, müsste das total egal sein, dann versucht er ja nur, den aktuellen Winkel zu halten.

Zur Störung durch die Stromversorgung: Das Problem tritt bei mir auch ohne Akku auf, nur mit USB. Da dann die Richtungen, in die der Copter bei Pitch dreht ziemlich genau mit dem Flugverhalten übereinstimmen gehe ich davon aus, dass es nicht an der Störung durch Stromfluss liegt. Das habe ich eigentlich auch gleich zu beginn getestet. Den Copter auf den Boden gedrückt und Vollgas gegeben. Den Mag hat das nicht weiter beeindruckt...
Auch bei schnellem Aufstieg dreht er sich nicht weg.

Bei meinen ersten Flügen hatte ich allerdings mehrmals den Effekt, dass er sich genau ein Mal von alleine um die Hochachse gedreht hat, um dann wieder die alte Richtung einzunehmen. Das klingt ja auch erstmal sehr nach Vorzeichenproblem oder so, wodurch er dann in die falsche Richtung korrigiert.
Ich habe bei meinem Copter Metallschrauben recht knapp unter der FC. Ich muss mal testen, ob diese magnetisch sind. Vielleicht bringen diese den Sensor durcheinander...

EDIT: Gerade mal getestet: Die Schrauben in meiner Centerplate sind ziemlich magnetisch. Jedenfalls kann ich mit einer Schraube einen mechanischen Kompass ablenken und den Kompass im Smartphone noch viel mehr.
In gewissem Rahmen wird das ja durch die Mag-Kalibrierung ausgeglichen, schätze ich, aber vielleicht nicht komplett? Wird getestet...
 

martinez

Erfahrener Benutzer
Das der Mag Sensor durch eine vom Rahmen wirkendes Magnetfeld beeinflusst wird kann zwar sein, aber das ist nicht die Ursache für dieses Problem.
Ich habe gestern zum testen mein Mag Sensor aus den Copter ausgebaut und mit 50cm langen Kabel an das MultiWiiBoard angeschlossen, d.h. ich konnte den Sensor frei mit meinen Händen bewegen. --> Gleiches Problem, auch nach mehrmaligen kalibrieren war keine Verbesserung zu sehen.
Das scheint wirklich ein Software oder Sensor Problem zu sein.

Haben eigentlich alle die dieses Fehlverhalten haben den HMC5883(L)? Ihr könnt ja evtl. ein kurzen Eintrag machen....

Thema Stromversorgung:
Ich hatte bei meinen Tests (auch auf den Video zu sehen) die Motoren nicht an, also die Motoren stören das nicht, ich kann das also bestätigen was weisseruebe sagt.

Thema Mag korrigiert die YAW Achse von helste:
Ja, das funktioniert schon. Der Copter hält ziemlich zielsicher seine YAW Richtung mit eingeschalteten MAG im hochizontalen Schwebeflug, das ist glaube ich bei jeden so (auch in mein Video zu sehen http://youtu.be/kNfo11GGSqM?hd=1 ).

@ helste: mach mal folgenden Test, ACC + MAG - Schwebeflug und dann ziemlich kräftig Pitch nach vorn (schon so ca. 5 Sek) du wirst, solltest du auch das Problem haben, sehen wie dein Copter dabei nach eine Richtung giert.


Was mir eben noch aufgefallen ist: Der Effekt, dass die Kompassnadel von der "richtigen" Richtung bei Pitch nach vorn nach rechts oder links weg driftet viel schlimmer ist, wenn die Anfangsrichtung Osten oder Westen ist. Bei der Richtung Norden oder Süden ist das nicht so schlimm.
Also bitte bei Testen den Copter Richtung Osten oder Westen zeigen lassen.

Gruß
Martin
 

Roberto

Erfahrener Benutzer
@Helste: Hat das funktioniert mit der geänderten Formel? D.h. konntest Du das D jetzt weiter aufdrehen mit dem BMA180 - also feiner einstellen? Ich kann es leider nur eingeschränkt testen, da das bei mir quasi eine "Nullnummer" mit dem BMA020 ist.
@aileroned: Schon ausprobiert mit Deinen "512er Werten"? Ich war heute endlich auch wieder fliegen (mit unserer Forumsversion 2b http://fpv-community.de/showthread....o-vern%FCnftig&p=158927&viewfull=1#post158927). Der ACC macht sich vor allem positiv bemerkbar, wenn man bei gut Wind schnell unterwegs ist. Das ist schon ein deutlicher Unterschied ob das ACC eingeschaltet ist! ROsewhite hat aber schon Recht, das "Pumpen" geht mir auch auf den Saxx. Wenn das Wetter morgen mitspielt, probiere ich eine weitere "Mittelwertstufe" nur für den Baro, damit müsste das Pumpen weg sein. Mein alter Test mit dem Gesamtmittelwert, also auch noch mit den neg. ACC Werten, war damals schlechter. Hoffentlich leidet das Ergebnis nicht zu sehr.
@Martinez: Ich habe mir Dein Video noch mal genau angschaut. Es sieht so aus, als wenn die Magnetometerwerte nicht richtig mit den ACC und Gyrodaten integriert würden.

LG

Rob

EDIT:
P.s.: Ich sichte grade die neue MultiWii_dev_20120618.zip. Der Barocode ist nicht verändert :( .
Der Magnetometer Pfad scheint auch unverändert zu sein. GPS hat Änderungen und die Booleans wurden jetzt in einem Bitfeld zusammengefasst zur Speicherersparnis.
 

weisseruebe

Erfahrener Benutzer
Was mir eben noch aufgefallen ist: Der Effekt, dass die Kompassnadel von der "richtigen" Richtung bei Pitch nach vorn nach rechts oder links weg driftet viel schlimmer ist, wenn die Anfangsrichtung Osten oder Westen ist. Bei der Richtung Norden oder Süden ist das nicht so schlimm.
Also bitte bei Testen den Copter Richtung Osten oder Westen zeigen lassen.
Genau das habe ich auch beobachtet.


Momentan sieht es ganz vielversprechend aus, aber eigentlich habe ich nichts geändert. Ich habe die FC mal mit mehr Abstand zu den Schrauben verbaut. Dann war es ziemlich gut. Dann wieder normal verbaut, es bleibt recht ordentlich, in alle Himmelsrichtungen kaum Abweichungen beim kippen.
Einziger Unterschied: Ich sitze nicht mehr auf dem Fußboden sondern 3m entfernt am Schreibtisch. Mit dem alten Nadelkompass messe ich an der Stelle, wo ich bisher immer rumprobiert habe eine Missweisung von 60° (!) Einen halben Meter über dem Boden stimmt es wieder einigermaßen. Offenbar ein Stahlträger unter dem Estrich...

Alles komisch....das Problem ist ja auch, dass man mit der Zeit die Objektivität verliert. Ich werde mal so, wie er ist einen Probeflug machen, das zeigt dann, ob es wirklich einen Unterschied macht.
 

Roberto

Erfahrener Benutzer
Bei der Version hier http://fpv-community.de/showthread....o-vern%FCnftig&p=158927&viewfull=1#post158927

heisst es:
Code:
      ACCZD -= (((int32_t)conf.D8[PIDALT]*(abs(AccZHighest)+abs(AccZLowest))*(constrain (AccZHighest-abs(AccZLowest),-10,+10)))*63)/(int32_t)(acc_1G*acc_1G); // conf.D8[PIDALT] Is scalefactor for ACCZ
Es sollte allerdings eine Klammer umgesetzt werden, da es sonst einen Überlauf geben kann und die ACC Regelung wieder zu hart ist.

Besser ist daher:
Code:
      ACCZD -= (((int32_t)conf.D8[PIDALT]*(abs(AccZHighest)+abs(AccZLowest))*(constrain (AccZHighest-abs(AccZLowest),-10,+10)))*63)/((int32_t)acc_1G*acc_1G); // conf.D8[PIDALT] Is scalefactor for ACCZ
Ich kann es leider nicht wirklich testen, da mein ACCZ-Wert vom BMA020 zu klein ist, um einen Überlauf zu produzieren.

Eine neue Version ist fertig und kommt heute, wenn die Flugteste OK sind. Die Zeile von oben ist natürlich schon korrigiert. Das Pumpen müsste dann auch weg sein.

LG

Rob
 

Paraglider58

Erfahrener Benutzer
So Freunde,

ich bin wieder dabei. Letzte Woche habe ich bemerkt daß ein Regler sehr heiß wird ohne daß die Motoren gelaufen sind. Heute ist der neue gekommen und ich komme gerade vom testen.
So fliegt der Kopter recht gut. Ca. 1mtr. geht er, aber immer noch rauf und runter, manchmal sind es auch 2mtr. Fast wie ein langsamer Jojo. Ich werde noch ein wenig an den Werten drehen, mal schauen was dabei raus kommt.

Gruß Paraglider58
 

Roberto

Erfahrener Benutzer
@Paraglider58: Versuche mal das I auf 50%/30%/20% (I= 0,050 ; 0,030 ; 0,020) dann kann er nicht mehr so stark nach unten Pendeln.
Ich teste momentan noch die Version "ohne Pumpen", momentan bin ich davon noch nicht so begeistert (meine ESC's sicherlich schon...).

LG

Rob
 

Paraglider58

Erfahrener Benutzer
Hi Rob,
@Paraglider58: Versuche mal das I auf 50%/30%/20% (I= 0,050 ; 0,030 ; 0,020) dann kann er nicht mehr so stark nach unten Pendeln.
Ich teste momentan noch die Version "ohne Pumpen", momentan bin ich davon noch nicht so begeistert (meine ESC's sicherlich schon...).

LG

Rob
welches I? Das von ALT? das steht bei mir im Moment auf 0,100

Außerdem habe ich seit heute das Problem das der Kopter nach links rollt. Ich habe die Trimmung schon ganz auf rechts. Hat er vorher nicht gemacht. Woran kann das liegen?

Gruß Paraglider58
 

aileroned

Erfahrener Benutzer
@aileroned: Schon ausprobiert mit Deinen "512er Werten"? ...
Grade getestet, mit 2B und der Zusatzklammer auf MS5611 und MPU6050.

ALT PID 5/0.100/10

Sowohl im HH, als auch im ACC, hält er die Höhe, für etwa 1minute recht passabel, leichtes oszillieren im 10 Sekundentakt um 50cm. Dann folgen immer wieder langsame Absacker, von 3.5m Testhöhe, bis fast auf den Boden, aber auch immer wieder der Wille, die Grundhöhe wieder zu erreichen und dort zu verbleiben.
Woraus ich nicht schlau werde, wie lange "merkt" er sich die Höhe, auf der der Baro eingekickt wurde und wie verhält sich das mit Schubänderungen?
Bei Schubänderung reichen ca 5% Änderung, damit er ca 3m Höhe on Top als neuen Basiswert nimmt.
Das Pumpen, was für mich eher das Geräusch war, wenn man nen 4Zylinder auf 3 laufen lässt, war völlig verschwunden.

Perfektes Höhe halten ist noch nicht erreicht.
Angenehm fällt auf, dass er im ACC auf Nick/Roll Bewegung fast ohne Absacken reagiert.
Im HH turnt er erstmal kräftig abwärts, bei Nick/Roll, geht dann aber wieder auf die Basishöhe zurück.

Ob der Barocode tatsächlich was tut, konnte man durch abschalten desselben schnell verifizieren, der Gasstick war immer unterhalb Schwebegas und er hat erstmal nen kräftigen Absacker hingelegt.

Cheers,

Micha
 
FPV1

Banggood

Oben Unten