Funfly Naze32 + Tricopter. Servo aufschaukeln

Status
Nicht offen für weitere Antworten.
#1
Hallo,

Ich besitze einen Tricopter (rcexplorer.se) und habe ein kleines Problem mit dem Heckservo.
Wenn der Tricopter auf seinen wackeligen Füßen steht, reicht ein winziger Reiz(ein Windhauch reicht aus) von außen, um den Heckservo zum arbeiten zu bringen. Die Kombination aus einem schweren Dt750 und den wackligen Beinen führt zu einem Aufschaukeln des ganzen Tricopters.

Falls ihr euch nicht vorstellen könnt, was ich meine, hier ein Video:
Tricopter Heckservo Problem

Ich glaube, dass diese ruckartigen Bewegungen der Lebenszeit des Servos nicht zuträglich sind. Desweiteren finde ich es falsch, dass der Heckservo aktiv wird, sobald die Batterie eingesteckt wird.
Vor ein paar Tagen habe ich es beim Fliegen etwas übertrieben und bin in einen Busch gestürtzt. Ich habe natürlich direkt "disarmed", um Schäden durch blockierte Motoren zu vermeiden. Dennoch versuchte der Heckservo, seinen Motor in die Neutralposition zurückzufahren, was durch die Lage und das Gestrüpp nicht ging. Die Folge= Die Zahnräder des "Metal-gear Servos"(Corona929MG/Hobbyking) scherten ab.

Meiner Meinung nach sollte der Heckservo erst bei "armed" aktiv werden und bei "disarmed" wieder inaktiv, um Schäden zu vermeiden. Was meint ihr?
Könnte man das in die Firmware integrieren? Vielleicht als Option?

MfG Jan-Philip
 

Roberto

Erfahrener Benutzer
#2
Hi!
Dreh doch mal die YawPids auf 0. Damit nimmst Du die FC aus der Gleichung. So ein Aufschaukeln kann nämlich auch von dem Regelkreis IN dem Servo kommen. Wenn er dann immer noch den Wackelpeter macht, musst Du ein "dickeres" Servo nehmen, oder die Anlenkung verändern. Kannst Du auch nochmal Deine verwendete FW posten?
Wenn das Wackeln von der FC kommt, hast Du mehrere Möglichkeiten:
1.: Die Yaw Pids waren einfach primär zu hoch angesetzt: Reduzieren.
Wenn die Reduktion der Yaw Pids allerdings dazu führt, dass Dein Heck schlechte Kontrolle hat, dann:
2.: GGf. Den Glättungsfaktor für Gyro aktivieren feature GYRO_SMOOTHING.
Ich sehe grade, dass man die Glättungsfaktoren nicht im CLI einstellen kann. Das ist natürlich blöd.

Die "Arming" Sache: Am besten "Armed" man einen Trikopter über einen Schalter. Wenn das nicht geht könnte man natürlich das Heck stumm schalten, solange nicht gearmt ist, hat aber den Nachteil, dass man sich dann beim Aufbau wundert, warum das Heck nicht "geht". Die Heckfunktion muss ausserdem mit einer Verzögerung nach dem Scharfschalten aktiv werden, weil dann das Yawservo sonst sofort in die Maximalposition fahren würde. Ist aber optional machbar, gute Idee.

LG
Rob

EDIT: Ich habe mal zu mwii - Zeiten einen Tri gebaut, der das gleiche Leiden hatte. Es war ein zu kleines digital metall servo. In der Grabbelkiste hatte ich noch so ein 5€ billo conrad Standardservo - das hat dann gut funktioniert. Plastikzahnräder sind natürlich auf Dauer keine gute Idee.... naja daran ist der Tri nicht gestorben .... er liegt jetzt auf dem Grund eines grossen, Deutschen Flusses.....
 
Zuletzt bearbeitet:
#3
Vielen Dank für deine Antwort.

Die aktuelle Firmware ist die: Harakiri10 BETA BFr288
YawPids: 8,5 0,045 0
Heckservo: Hobbyking Link

Vorher hatte ich den Corona 929MG, aber weil ich neu bestellen musste und im EU warehouse nur die beiden digitalen Servos da waren, hab ich halt mal zwei von denen bestellt. Funktionieren ganz gut und haben weniger Spiel als der 929MG von Corona.

Werde jetzt die Werte nullen und dann testen.
Habe die Werte genullt und anschließend am Arm gewackelt. Der Servo schaukelt sich auf, ja. Aber hierfür musste ich sehr stark am Arm wackeln. Mag sein, dass der Servo das ganze mit steigender Amplitude verstärkt, aber der Auslöser ist die Naze. Die Yaw Werte möchte ich eig. nicht verringern, da ich mit dem Flugverhalten ganz zufrieden bin.

Die "Arming" Sache: Am besten "Armed" man einen Trikopter über einen Schalter. Wenn das nicht geht könnte man natürlich das Heck stumm schalten, solange nicht gearmt ist, hat aber den Nachteil, dass man sich dann beim Aufbau wundert, warum das Heck nicht "geht". Die Heckfunktion muss ausserdem mit einer Verzögerung nach dem Scharfschalten aktiv werden, weil dann das Yawservo sonst sofort in die Maximalposition fahren würde. Ist aber optional machbar, gute Idee.
Der Tricopter wird durch einen Schalter "armed". Es ist also nicht so, dass ich den Tricopter mit einstecken der Batterie scharf schalte, falls du das meinst.

EDIT: Ich habe mal zu mwii - Zeiten einen Tri gebaut, der das gleiche Leiden hatte. Es war ein zu kleines digital metall servo. In der Grabbelkiste hatte ich noch so ein 5€ billo conrad Standardservo - das hat dann gut funktioniert. Plastikzahnräder sind natürlich auf Dauer keine gute Idee.... naja daran ist der Tri nicht gestorben .... er liegt jetzt auf dem Grund eines grossen, Deutschen Flusses.....
Und der 5 euro Servo vom Conrad funktionierte besser? Könnte natürlich einen größeren Servo verbauen, allerdings passt der aktuelle so schön auf den 14mm breiten Arm. Dein Tricopter war nicht mehr zu retten? Oder hast du gar nicht danach gesucht?
 
Zuletzt bearbeitet:

Roberto

Erfahrener Benutzer
#4
Alles klar. Du hast 2 Regelkreise (die nichts voneinander "wissen"), die sich gegenseitig aufschaukeln (Resonanz).
Beide lassen sich beeinflussen. Das dicke Analog - Versuchsservo (40g) hatte damals das Problem definitiv gelöst, weil es mit dem Motor "spielen" konnte, ohne selbst in eine Aufschwingproblematik zu kommen. Auf Dauer wäre wahrscheinlich das Plastikgetriebe hin gewesen. Der mwii - Reste - Tri ist mitten im Rhein bei KDS Funkausfall mit einer Keychaincamera abgetaucht - ich habe noch einmal salutiert zum Abschied.
Versuche den Hebelweg Deiner Anlenkung zu verändern, damit Dein Servo weniger Arbeit hat. Stelle Dein Servo neutral und sorge für eine kleine Neigung des Motors entgegengesetzt zum Hauptdrehmoment, so dass der Copter möglichst neutral fliegt bei der Servoneutralstellung.
Auf der Naze Seite bleibt Dir nur der Yaw Pidcontoller und der Lowpassfilter...
Mit dem Scharfschalten meinte ich, dass es besser ist in der GUI "ARM" auf einen Schalter zu legen, dann brauchst Du nicht mit Yaw herumspielen. Das "retarded arm" von TC würde ich nicht empfehlen.

LG
Rob
 
Zuletzt bearbeitet:
#5
Vielen Dank für deine Hilfe, bei der Fehleranalyse.

Ich merke, dass mein Tricopter noch eingie Schwachstellen hat. Ich schreibe dennoch eine Nachricht an die Autoren der Firmwares, vielleicht finden sie die Idee gar nicht so schlecht. Mal sehen.

MfG Jan-Philip
 

olex

Der Testpilot
#7
Ich möchte das Thema mal aufgreifen, da ich mit meinem Tri aktuell vor dem gleichen Problem stehe. Ich habe ein HXT900 Servo gegen ein Corona 919MG Digital ausgetauscht, woraufhin ich jetzt keine stabilen PID-Werte finden kann - mit zu wenig P schwimmt das Heck zu viel rum und schwingt langsam, mit mehr P werden die Schwingungen schneller, aber zur Ruhe kommt's eigentlich nie - im Schweben geht's, aber im Vorwärtsflug ist es deutlich schlechter als mit dem billigen HXT900. Bevor ich mir jetzt noch ein drittes Servo hole (analog mit Metallgetriebe), möchte ich das Problem gerne erstmal softwareseitig angehen.

Welche Parameter genau muss ich im Zusammenhang mit dem LPF im aktuellen Harakiri umstellen? Habe im anderen Forum gelesen, der "gyro_lpf" Parameter habe keine Wirkung und sei fest auf 42 beim MPU6050 - stimmt das immer noch? Und wie genau ist die Wirkung von "acc_lpf_factor" - muss dieser für eine stärkere Filterung höher oder tiefer gesetzt werden?
 

Roberto

Erfahrener Benutzer
#8
Hi, olex!

Du bist Opfer des Fortschritts für multicopter geworden und dem fehlenden Fortschritt im Tricopterbereich.
Ursprünglich wurden die Gyrodaten viel stärker gefiltert, weil der Ursprung der Multiwii Software bei den verrauschten Gyrodaten der Wiimotion lag. Die aktuelleren Sensoren haben allerdings ein deutlich weniger verrauschtes Signal, dass durch den Hardwareinternen LPF (von Dir angesprochen) direkt, ohne weiters software Filtering brauchbar ist. Da meine Testgerätschaft nur aus 2 Quadcoptern besteht, hatte ich durch die Reduktion der (wiimotion) Softwarefilter ein deutlich besseres Leveling/Flugverhalten erhalten (für quadcopter). Als ich das änderte, hatte ich mir schon gedacht, dass das evtl. mit tricopter/servos Ärger machen könnte. Zu allem Übel, sind die Änderungen über Umwege wohl auch in den aktuellen BF Trunc eingeflossen (was man so sieht). Das hatte ich allerdings nicht erwartet, so dass auch die aktuelle BF Version wohl eher nicht Dein Problem beheben wird. Ein Analogservo macht quasi konstruktionsbedingt einen lowpassfilter für die eingehenden Signale, der bei einem Digitalservo (konstruktionsbedingt) reduziert ist. Das dürfte Deine aktuelle Problematik erklären. Zu allem Überfluss lassen sich die optionalen Filterfaktoren nicht über das CLI einstellen, da liegt der Fehlerball auch in meinem Feld, weil ich davon ausgegangen bin, dass man das im CLI einstellen kann und es nicht überprüft habe, dass das in Baseflight nicht vorgesehen ist.
Für Dich heisst das konkret:
Aktuelles Soft (BF/Harakiri) mit feature GYRO_SMOOTHING testen (stellt leider fixe gyro Filterwerte für ALLE Achsen ein)
Der Hardware GYRO LPF lässt sich auch verändern (betrifft leider auch alles Achsen):
z.B bei Harakiri: set gyro_lpf = X (X = 98, 42 (default), 20, 10, 5Hz)
Die Alternative ist eine ältere BF/Harakiri Version (z.B Harakiri eine Juniversion), weil dort die Gyrowerte noch stärker gefiltert wurden.

Grundsätzlich ist, auch Dein Problem, ein Resonanzproblem, dass nur (ohne Servoänderung/ggf Anlenkung) durch einen einstellbaren Filter auf der Gierachse gelösst werden kann (da könnte auch ggf. weniger Filter das Problem lösen - ist aber unwahrscheinlich). Deswegen ist es megablöd (man könnte auch sagen bescheuert), dass Du den Filter für die Yaw Achse nicht seperat einstellen kannst. Mittlerweile habe ich das Problem "gefixt" und wäre in der nächsten Version dabei.
Ich bin nur momentan persönlich etwas im Stress und will nicht einfach eine Version rauskloppen, bevor ich nicht noch die ein oder andere geänderte Sache testen konnte.

LG
Rob
 
Zuletzt bearbeitet:

olex

Der Testpilot
#9
Vielen Dank für die aufschlussreiche Antwort, Roberto! Finde es echt Klasse dass du auf die doch recht spezifischen Fragen der Nutzer deiner Firmware so detailliert eingehst, das sieht man nicht bei vielen Entwicklern - Daumen hoch.

Ich werde morgen GYRO_SMOOTHING und andere LPF Werte probieren - hoffentlich lässt sich damit was machen. Schön dass die neue Version getrennte Filter für die Achsen hat, du hast aber auch völlig Recht dass man wegen einem Feature die neue Version auf keinen Fall direkt raushauen sollte - lieber Zeit lassen und alles soweit wie nötig testen, bevor man evtl. mehr Probleme wieder einbringt als mit dem Update gelöst wurde.
 

Roberto

Erfahrener Benutzer
#10
@Olex: Herzlichen Dank für die Blumen! Momentan komme ich irgendwie nicht zu sehr viel. Im Github habe ich zwar schon eine angepasste Version oben, die allerdings 0,nix getestet ist (und garantiert noch Macken hat), aber eine Sache fällt mir noch zu der Resonanz Geschichte ein. Die Aktuelle Looptime ("set looptime = X, X ist 3000us d.h. 3ms) steht auf 333HZ. Vielleicht ist das auch besonders unglücklich/Resonanz fördernd bei Digitalservos. Du kannst die Looptime auch z.B mal auf 286Hz setzen mit "set looptime = 3500" oder auf z.B 250Hz mit "set looptime = 4000" ich denke, damit stehen die Chancen nicht schlecht, aus dem Resonanzbereich/dem Aufschaukeln der Regelung heraus zu kommen.
LG
Rob
 

olex

Der Testpilot
#11
Danke nochmal für die Tipps. Habe mit allem rumprobiert, aber so richtig wollte das digitale Servo letzten Endes doch nicht. Zudem habe ich festgestellt, dass im Getriebe doch verdammt viel Spiel war (~5°), das hat bestimmt auch nicht gerade geholfen.

Habe das Problem radikal gelöst, indem ich ein analoges Servo mit Metallgetriebe geholt und installiert habe. Ergebnis:

[video=youtube;KHavnDOazMk]http://www.youtube.com/watch?v=KHavnDOazMk[/video]

Yaw-P ist bei 3.5, sehr minimales Schaukeln ist manchmal noch drin, aber das ist einfach mal Welten besser als mit dem Digitalding. Jetzt macht das Gerät endlich richtig Spaß zu fliegen :)
 

Roberto

Erfahrener Benutzer
#12
@olex: Schade, dass Du per Hardware aus Deinem Digital ein Analogservo machen musstest! Immerhin lüppts nu.
Sonst, kannst Du auch den Todays Snapshot von hier nehmen https://github.com/Crashpilot1000?tab=repositories (->Readme).
Da kannst Du etwas speziell für Tricopter einstellen:
"Weichmacher" für Dein Yawservo mit:
"set gy_smyw = X" [X z.B 3 oder 5 oder 8 oder... 0 schaltet das smoothing aus (default)]
"tri_ydel" kannst Du auch einstellen (Readme).
LG
Rob
 

sepper

Erfahrener Benutzer
#13
Hallo Roberto,

ich habe das gleiche Problem bei meinem Tri, ich hatte ein Robbe FS 61BB Speed Carbon Nano Analog- Servo verbaut ->
http://www.robbe.de/servo-fs-61-bb-speed-carbon.html

Welches eigentlich gut funktionierte, da es mir es aber etwas schwach am heck erschien (Einrastverhalten usw..) bin ich auf ein
FS 550 Carbon Digital Speed gewechselt. ->
http://www.robbe.de/servo-fs-550-bb-carbon-digit-speed.html

Sämtliche Einstellversuche mit der 2.6 bringen leider keine Besserung, set gy_smyw oder looptime (das FS 550 läuft laut Datenblatt mit 330Hz) ändern verhindert nicht das sich das Servo aufschwingt.
tri_ydel funktioniert 1A, perfekt für Tricopter.
 

brm

Erfahrener Benutzer
#14
da ist prinzipiell noch ein problem.
man ist nicht in der luft und solange sollten die ausgänge in der neutralstellung bleiben.
das aufschaukeln sollte man erst in der luft sehen.
das im video zu sehende ruckeln ist im niedrigen frequenz bereich zuzuordnen - ein paar hz.
die pid regelung für yaw mal heftig zurücknehmen.

es steht ein tri im keller - hatte ne apm drauf - habe aber aufgegeben nachdem bei apm zu viel gebastelt wurde...
muss es mal versuchen - flightcontroller liegen 'en masse' auf dem büro :)
 

brm

Erfahrener Benutzer
#15
@olex: Schade, dass Du per Hardware aus Deinem Digital ein Analogservo machen musstest! Immerhin lüppts nu.
Sonst, kannst Du auch den Todays Snapshot von hier nehmen https://github.com/Crashpilot1000?tab=repositories (->Readme).
Da kannst Du etwas speziell für Tricopter einstellen:
"Weichmacher" für Dein Yawservo mit:
"set gy_smyw = X" [X z.B 3 oder 5 oder 8 oder... 0 schaltet das smoothing aus (default)]
"tri_ydel" kannst Du auch einstellen (Readme).
LG
Rob
das ist nix anderes als ein low pass filter gegen die befehle von 'oben'.
evtl. sollte man darüber nachdenken die ausgabe für servos auf 50 bis 75 hz runterzuregeln.
 

brm

Erfahrener Benutzer
#17
@brm
PID auf YAW hab ich zurückgenommen, das einzige was mir sinnvoll erschien und auch funktioniert - Problem ist dann das ich wieder bei meiner Ausgangssituation bin - Heck zu `weich`.

Bei der looptime bin ich bis auf 250 Hz runter, darunter habe ich noch nicht probiert - Besserung brachte das keine.
das langsame servo reagiert im bereich 50 bis 65 hz.
wenn die fluglage regelung im bereich 250 bis 400 hz 'regelt', dann ist es nicht definiert welcher 'befehl' die servos
erreicht.
also sollte die servo regelung im bereich 60 bis 65 hz tuten.
einen i-anteil zu definieren ist sau gefährlich - evtl. ist dies auch ein grund des aufschaukelns.
alles ander macht keinen sinn.
und hier fehlt der 'c' code ;-)

was ich im video sehe ist ein schwingen um die 'null' achse.
wenn das servo die von dir genannten 5 grad spiel hat dann ist das schrott.
da sollte kein spiel sein - wenn es da ist, dann sind keine optimalen/hohen p-werte möglich.

die looptime spielt keine rolle - wie du schon bemerkt hast.
hier heisst die devise rauf auf gute werte.

mal schauen ob ich meinen tri hinkriege ...
 

brm

Erfahrener Benutzer
#18
der code für die servo ausgabe eines tri's ist def. falsch.
da muss ausgebessert werden.
postponed :)
 

brm

Erfahrener Benutzer
#20
ja, ;-)
die ausgabe sollte nur in armed mode erfolgen.
zudem ist das smoothing ungünstig.
ich würde da mal einen 8 einträge langen moving average filter einbauen.
case MULTITYPE_TRI:
if (f.ARMED)
pwmWriteServo(0, servo[5]);
else
pwmWriteServo(0, cfg.midrc); // midrc when not armed
break;
da ist nicht endültig - der averaging filter fehlt.
das signal killen wie bei tc würde ich nicht - könnte ein servo kosten...
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten