Baro Code Änderungen

J

JinGej

Gast
@JinGej

Klar, kann man auch einen generellen, zusätzlichen Lowpassfilter für die Accz Integration anlegen, den man dann in der config.h einstellen und zuschalten kann. Dafür muss man gottlob nicht den kompletten Barocode neu machen. Kein Harakiri erforderlich.
Durch die ausreichend sauberen Werte des BMA180, habe ich bislang keine Notwendigkeit gesehen. Wenn eine MPU Einstellung von "#define MPU6050_LPF_42HZ" reicht, ist das natürlich die beste Lösung (kein Speicherverbrauch).

@Martinez: Da blicke ich jetzt allerdings auch nicht durch. Sehr merkwürdig. Deine Acc Werte sind doch in alle Richtungen bei max 512 (nicht nur z).

LG
Rob
neinein... ich meine den GANZEN code :D
 

FireN

trägt sonst keine Brille!
Wird doch ein Klacks für Roberto :D
"MultiRobertoWii 1.0" xD
 
J

JinGej

Gast
ja, sowas in der art - ohne zu verzetteln, ohne dinge wie flugzeug- oder helistabilisierung... sowas wie naza eben - nur besser - und preiswerter (vielleicht auch auf stm32 hardware) :)
 

upapa

Erfahrener Benutzer
@Upapa: Die eingeschaltete, serielle Schnittstelle scheint echt der Killer für diese Funktion zu sein - also auch serielles GPS.
Naja, bei mir bringts was, und es ist auch per default auf aus.
Hi Roberto,
selbst mit deaktiviertem #define ConstantPID5000 ist Deine MOD doch sehr, sehr gut brauchbar!

BTW,
da mein zweiter Crius-Copter (Crius AIO Pro) mit GPS läuft (aber leider nicht mit der default MultiWii2.1 UND GPS) schon wieder :) eine Bitte: Vielleicht kannst Du ja erneut andeuten, an welcher Stelle Dein NazaStyleTest2-Code in die MultiWii 2.1-Software eingepflegt werden kann. So könnte ich mit einer Dev-Version und der Crius AIO Pro testen.
Sollte der Aufwand für Dich zu hoch sein (ist ja "nur" eine Testversion :) ), ignoriere einfach meinen Wunsch!

upapa
 

Roberto

Erfahrener Benutzer
Also, eine Multiwii aus dem Boden zu stampfen übersteigt meine Fähigkeiten um LÄNGEN, da müssten schon ganz andere Kaliber ran.
@Upapa: Die Final3, funktioniert die bei Dir auf der Crius AIO auch nur mit dem LPF, wie bei "DerJunior" http://fpv-community.de/showthread.php?14199-Baro-Code-%C4nderungen&p=213270&viewfull=1#post213270 ?
Aktuell mache ich noch keine Zusammenstellung der Codeänderungen, da sich noch zuviel ändert (nicht in der Kernroutine). Bei den Aktuellen Devs wird viel herumgestrickt und es häufen sich die Angaben über Abstürze in dem neuen ACC Flugmodus und sogar mit der Acc inflight calibration. Ich bleibe erst mal bei der 2.1, bis da Stabilität bei den Devs eingekehrt ist. Wie hiess es früher in der Waschmittelwerbung: "Da weiss man, was man hat, schönen guten Abend".

@Martinez: Ich habe auf dem Schreibtisch nochmal den Software LPF getestet. Ein Faktor von 0.04f produziert schon eine deutlich Phasenverschiebung (Latenz) und Abschwächung gegenüber dem Originalsignal, also noch kleinere Werte (stärkerer Filter) scheinen mir nicht mehr praxistauglich zu sein. Da ich das ganze Herumgefummel mit den Kommazahlen benutzerunfreundlich und nervig finde, habe ich noch eine Version gemacht, bei der kleinster und stärkster Filter definiert sind (lpfmin 0.2f, lpfmax 0.04f) und über eine Prozentzahl angesprochen werden (klar, 0 bis 100%). Das ist jetzt quasi ein genereller, und abschaltbarer (kein Byte Mehrverbrauch bei Abschaltung) LPF, der sich für alle Acc nutzen lässt (kommt in die nächste Version). Wenn Du daran Interesse hast, kann ich eine IMU.zip zusammenstellen, da die Änderungen mehrere Stellen betreffen. Das bringt Dir zwar nicht mehr Funktionalität als der bereits gepostete Vorschlag, aber Du kannst vielleicht einfacher einstellen.

@Alle: Overclocking ist Aktuell nicht das Thema. Einfaches Hochdrehen der Taktfrequenz kann durchaus auch Probleme machen. Da muss man vorher den Code abklopfen, ob da nicht irgendwo an einer kritischen Stelle nur Durchläufe gezählt werden. Ein "Overspeichering" wäre wirklich erforderlich.
Es wäre schön, wenn der Thread hier nicht ganz so aus dem Ruder laufen könnte. Beiträge über Hummeln und Overclocking sind sehr interessant, nur verwässern sie das eigentliche Barothema und Aktuell hat Martinez mit der Crius AIO Probleme.

@PN Schreiber aus anderen Threads: Ich bin nicht der Märchenonkel für Akku und wie stelle ich überhaupt irgendwelche PIDs ein. Von mir aus könnt Ihr es auch mit einer Flachbatterie und PIDs auf 0 versuchen. Das nervt wirklich langsam. Da gibt es genug Threads dazu. Z.B "Kurze Frage, kurze Antwort" http://fpv-community.de/showthread.php?5921-Kurze-Frage-kurze-Antwort

LG
Rob
 

martinez

Erfahrener Benutzer
@JinGej

@Martinez: Da blicke ich jetzt allerdings auch nicht durch. Sehr merkwürdig. Deine Acc Werte sind doch in alle Richtungen bei max 512 (nicht nur z).

LG
Rob
Hi Rob,
das checke ich heute Abend, leider komme ich wahrscheinlich heute nicht zum fliegen..... (kleiner Umzug von einem Freund)

@Martinez: Ich habe auf dem Schreibtisch nochmal den Software LPF getestet. Ein Faktor von 0.04f produziert schon eine deutlich Phasenverschiebung (Latenz) und Abschwächung gegenüber dem Originalsignal, also noch kleinere Werte (stärkerer Filter) scheinen mir nicht mehr praxistauglich zu sein. Da ich das ganze Herumgefummel mit den Kommazahlen benutzerunfreundlich und nervig finde, habe ich noch eine Version gemacht, bei der kleinster und stärkster Filter definiert sind (lpfmin 0.2f, lpfmax 0.04f) und über eine Prozentzahl angesprochen werden (klar, 0 bis 100%). Das ist jetzt quasi ein genereller, und abschaltbarer (kein Byte Mehrverbrauch bei Abschaltung) LPF, der sich für alle Acc nutzen lässt (kommt in die nächste Version). Wenn Du daran Interesse hast, kann ich eine IMU.zip zusammenstellen, da die Änderungen mehrere Stellen betreffen. Das bringt Dir zwar nicht mehr Funktionalität als der bereits gepostete Vorschlag, aber Du kannst vielleicht einfacher einstellen.


LG
Rob
Das Angebot würde ich gerne annehmen :)


Der im Video zusehende LPF sieht vielversprechend aus.

Noch mal eine Frage zu den ALT PID werten der FinalVersion.
Mit den Standartwerten 10 0.030 80 sollte "jeder" Kopter so einigermaßen die Höhe halten, +-50cm?! Vorrausgesetzt der ACC im Kopter macht keine Probleme. Richtig?!
Ich bin mir im Moment nicht mehr so sicher wie ich an die Sache ran gehen soll. Erst einmal schauen das der ACC ordentlich gefilterte Werte liefert (Wie erkenne ich das?) und dann die PID Werte optimieren.
Oder erst versuchen mit den PID Werten zu spielen und dann die verschiedenen Filterstärken durchtesten.

Testkanidat ist wieder fit:
Gestern Abend habe ich endlich meinen anderen Quad (der kleine "böse", BMA020 und BMP085) wieder flugfertig bekommen.
Ich hab auch ein paar kleine Änderungen gemacht, statt 7.5mm 10mm Aluvierkant und ein bisschen mehr Motor-Motor-Abstand. Dadurch ist das Teil zwar ein bisschen schwerer aber auch steifer und hoffentlich satter in der Luft Ich glaube das PLUS an Gewischt tut hin ganz gut :D

Somit habe ich jetzt zwei Kanidaten für deine leckeren Codes :D

Freitag wird getestet bis der Akku streikt!!!!

LG
Martinez
 

upapa

Erfahrener Benutzer
@Upapa: Die Final3, funktioniert die bei Dir auf der Crius AIO auch nur mit dem LPF, wie bei "DerJunior" http://fpv-community.de/showthread.php?14199-Baro-Code-%C4nderungen&p=213270&viewfull=1#post213270 ?
Hi Roberto,
die PIDVario3Final läuft auf meiner Crius_AIO bei LPF mit den default-Einstellungen. Es isnd keinerlei Änderungen nötig.

Aktuell mache ich noch keine Zusammenstellung der Codeänderungen, da sich noch zuviel ändert (nicht in der Kernroutine). Bei den Aktuellen Devs wird viel herumgestrickt und es häufen sich die Angaben über Abstürze in dem neuen ACC Flugmodus und sogar mit der Acc inflight calibration. Ich bleibe erst mal bei der 2.1, bis da Stabilität bei den Devs eingekehrt ist.
Ich hatte da auch nur an meine für Crius_AIO bewährte r1074 gedacht, die noch identisch der MultiWii 2.1 "gestrickt" ist. In ihr ließen sich Deine bisherigen Änderungen deshalb problemlos einarbeiten.
Aber es ist nachvollziehbar, dass der Doku-Aufwand für eine Testversion unangemessen hoch ist. (Ich könnte ja auch mal mit deaktiviertem GPS fliegen und vorher die NazaStyleTest2 auf die Crius_AIO spielen... :) )

upapa
 

upapa

Erfahrener Benutzer
Ich könnte ja auch mal mit deaktiviertem GPS fliegen und vorher die NazaStyleTest2 auf die Crius_AIO spielen.
Hi Roberto,
da ich etwas mehr Zeit und fünf volle LiPos hatte: gesagt, getan... :)
Habe //#define ConstantPID5000 so auskommentiert gelassen.
Auch mit dem NazaStyleTest2-MOD flog der Crius_AIO hier mit den LPF default-Einstellungen ohne Probleme. Als am brauchbarsten haben sich für ALT die Werte P=14, I=0.025 und D=45 erwiesen.
Inzwischen habe ich mich auch etws an den Naza-Style gewöhnt...

upapa
 

upapa

Erfahrener Benutzer
kannst du mir kurz dein kopter beschreiben.
Gewicht, Motoren usw.
Ich versteh einfach nicht warum meiner so zickt.
Hi Martinez,
gern mach ich das. :)
Also
- Alu-Rahmen Profil 10x10 mm
- Motor-zu-Motor-Abstand 45 cm
- hexTronik DT750 Brushless Outrunner 750kv
- Hobbyking SS Series 18-20A ESC (card programmable)
- Propeller 10x4.5
- LiPo 3S 2200 mAh 40C/50C
zusätzlich an Board:
- GPS-Modul UBlox NEO-6M
- Bluetooth-Modul
- Abfluggewicht: 1115 g
Die FC ist hart gelagert (keine Gummipuffer) auf Kunststoff-Abstandshalter.

upapa
 

martinez

Erfahrener Benutzer
Danke upapa!
Wieso hast du deine CRIUS hart gelagert? Das hatte ich auch erst so, hab aber wegen den Problemen Gummipuffer genommen. Wie du weist ohne Erfolg...

Rob,
mein ACC geht über alle 3 Achsen in Ruhe (also 1G) auf ca. 510, wenn ich z.B. den Kopter über die Z-Achse schnell nach oben beschleunige (mit der Hand) komme ich auf ca. 750.
Ist das normal für den CRIUS?

Viele Grüße
Martinez
 

Roberto

Erfahrener Benutzer
Hi!
Da hat sich ja ganz schön was getan hier!
Danke, Upapa, dass Du Martinez hilfst! Ohne gleiche Hardware kann ich nur im Trüben fischen.

Jetzt der Reihe nach:

@Martinez:
Noch mal eine Frage zu den ALT PID werten der FinalVersion.
Mit den Standartwerten 10 0.030 80 sollte "jeder" Kopter so einigermaßen die Höhe halten, +-50cm?! Vorrausgesetzt der ACC im Kopter macht keine Probleme. Richtig?!"
Ich kann nur mit einem Kopter testen. Die Werte können auf keinen Fall für alle passend sein, da sie letztendlich alle bestimmen, wie sehr bei Änderungen (P Absoluthöhe, I Variobremse, D Winkel/Gas Zuschlag) am Gas gezogen wird und jeder Kopter hängt eben anders am Gas. Ein sich selbst einstellender Code wäre theoretisch denkbar, d.h. in sicherer Höhe auf lernen schalten und los gehts. So etwas habe ich, mega erfolglos, probiert :) .
Die imu.ino habe ich Dir hier als Zip angehängt, Du kannst die Imu.ino aus dem Naza2test überschreiben.
Damit der LPF auch aktiv wird, musst Du in der config.h noch
Code:
    //#define AccBaroLPF 75         // Use at least 75% when you use MPU without "MPU6050 Low pass filter setting" Possible values: 0% up to 100% (strongest filter+delay), values probably useful >50%
    //#define AccBaroDebug       // Visualize RAW and FILTERED (only if AccBaroLPF is set) Accz Values in Debug0 and Debug1. Corrected Accz Values to 1G in Debug2
einfügen und auskommentieren. Du kannst Dir, wie in dem Video, über "AccBaroDebug" die Wirkung eines eingestellten Software-LPF darstellen lassen. Das ist wesentlich anschaulicher, als nackte Zahlen. Wenn Du kannst, lass auch gleich die Motoren mitlaufen, dann siehst Du gleich, was zu "bekämpfen" ist. Mit meinem USB Kabel ist das leider etwas kritisch, wenn man nur 2 Hände hat. Der LPF wird auf alle 3 ACC Achsen angewendet. Debug 0 & 1 zeigen nur die eine ACC Z Komponente (Roh & LPF). Debug 2 (3.Kasten von links) zeigt die regelungsrelevante Kombination aus den 3 ACC Achsen bezogen auf die Senkrechte. Wenn Dir die 100% Einstellung nicht reichen sollte, musst Du in der IMU.ino nur in Zeile 202 " #define lpfmax 0.04f" ändern in kleinere Werte, also z.B #define lpfmax 0.02f. Natürlich kannst Du auch die "0%" Einstellung durch Verlkeinern anheben ("#define lpfmin 0.2f"). Ein höherer LPF macht natürlich, neben der Latenz, auch die Amplitude für die "I" Berechnung kleiner, d.h. das I muss ggf. dann erhöht werden.

Rob,
mein ACC geht über alle 3 Achsen in Ruhe (also 1G) auf ca. 510, wenn ich z.B. den Kopter über die Z-Achse schnell nach oben beschleunige (mit der Hand) komme ich auf ca. 750.
Ist das normal für den CRIUS?"
So muss das sein. Im Stand: ACC Roll und Pitch ca. 0 und "z" bei ca. 512. Wenn Du ihn 90 Grad auf die rechte Kante stellst, sollte Roll bei ca. 512 und der Rest in der Nähe von 0 sein.
Wenn Du ihn 90 Grad auf die vordere Kante stellst, sollte Pitch bei ca. 512 und der Rest in der Nähe von 0 sein.

@Upapa:
Ich hatte da auch nur an meine für Crius_AIO bewährte r1074 gedacht, die noch identisch der MultiWii 2.1 "gestrickt" ist.
Ich verstehe, ich machs auch, wenn Zeit ist.

"Auch mit dem NazaStyleTest2-MOD flog der Crius_AIO hier mit den LPF default-Einstellungen ohne Probleme. Als am brauchbarsten haben sich für ALT die Werte P=14, I=0.025 und D=45 erwiesen.
Inzwischen habe ich mich auch etws an den Naza-Style gewöhnt..."
Die MPU6050 gibt es wohl in verschiedenen Revisionen, nicht das Martinez die "Zappelphillip" Revision erwischt hat.
Diese Naza-Gas Geschichte, wollte ich nach oben hin schneller und nach unten hin langsamer und begrenzt machen, damit es nicht zum Ausschalten der Gesamtregelung im Flug kommen kann, wenn man wild am Gas herumrudert. Die Methode mit Verstellung der Sollhöhe ist natürlich am softesten.


LG

Rob

P.s.: Hoffentlich komme ich am WE zum ausgiebigen Testen, dann kann ich endlich den Sack zu machen mit den Stick-Flugmodi.
 

Anhänge

franko_

Erfahrener Benutzer
Hi Roberto, wollte mich nun auch mal Deinem Code widmen.

Gibt es schon ein Setting für das Crius SE V1.0 mit I2C und GPS, bzw. welchen Code soll ich da jetzt nehmen?
Final, Nazastyle...

Aber vorher wollte ich das Copterframe nochmals umbauen wg. Gewicht und EMV: Alu10mm und Strom ganz runter
 

FireN

trägt sonst keine Brille!
Ich glaube mit GPS war der Sketch zu groß, aber warten wir mal ab was Roberto schreibt.
 
Also bei einem Arduino Pro Mini kann ich, in der Finale 3, GPS mit einbinden.
Binäre Sketchgröße: 25.372 Bytes (von einem Maximum von 30.720 Bytes)

Wenn ich mich richtig erinnere, lag es an der seriellen Übertragung der GPS Daten.
Da gab es dann wohl ein Timing Problem.
Ich weiß allerdings nicht, wie es bei I2C GPS aussieht.
Das I2C GPS Module von Drotek liegt hier schon und ich hab es aber noch nicht fertig eingebaut.
Mal sehen wie es morgen von der Zeit und Wetterlage aussieht. dann werde ich es mal testen.

Gruß Ingo
 
FPV1

Banggood

Oben Unten