Brushless Gimbal Controller - SOFTWARE

Status
Nicht offen für weitere Antworten.

wolfes1126

Erfahrener Benutzer
Hi zusammen,

ich hatte das schon im Sammelthread gepostet, aber ich weiß nicht, ob es nicht thematisch besser hier rein passt:

ich hatte mir noch einen Controller von einem deutschen Händler gekauft inkl. Sensor. Soll ein Martinez 3.1 sein

Wenn ich die 048 aufspiele klappt das, wenn ich aber versuche die aktuelle 049er aufzuspielen kommt vom Arduino Prog folgende Fehlermeldung

IMU:44: error: variable or field 'readACC' declared void
IMU:44: error: 'axisDef' was not declared in this scope
IMU.ino: In function 'void initSensorOrientationDefault()':
IMU:40: error: 'sensorDef' was not declared in this scope
IMU:40: error: 'ROLL' was not declared in this scope
IMU:41: error: 'PITCH' was not declared in this scope
IMU:42: error: 'YAW' was not declared in this scope
IMU.ino: In function 'void initSensorOrientation()':
IMU:85: error: 'config' was not declared in this scope
IMU:87: error: 'sensorDef' was not declared in this scope
IMU:87: error: 'YAW' was not declared in this scope
IMU:88: error: 'ROLL' was not declared in this scope
IMU:89: error: 'PITCH' was not declared in this scope
IMU:92: error: 'config' was not declared in this scope
IMU:94: error: 'sensorDef' was not declared in this scope
IMU:94: error: 'ROLL' was not declared in this scope
IMU:94: error: 'PITCH' was not declared in this scope
IMU.ino: In function 'void setACCFastMode(bool)':
IMU:104: error: 'AccComplFilterConst' was not declared in this scope
IMU:104: error: 'DT_FLOAT' was not declared in this scope
IMU:106: error: 'AccComplFilterConst' was not declared in this scope
IMU:106: error: 'DT_FLOAT' was not declared in this scope
IMU:106: error: 'config' was not declared in this scope
IMU.ino: In function 'void initIMU()':
IMU:114: error: 'gyroScale' was not declared in this scope
IMU:114: error: 'resolutionDevider' was not declared in this scope
IMU:119: error: 'EstG' was not declared in this scope
IMU.ino: In function 'void rotateV(fp_vector*, float*)':
IMU:128: error: variable 'fp_vector v_tmp' has initializer but incomplete type
IMU:129: error: invalid use of incomplete type 'struct fp_vector'
IMU:42: error: forward declaration of 'struct fp_vector'
IMU:129: error: 'ROLL' was not declared in this scope
IMU:129: error: 'PITCH' was not declared in this scope
IMU:130: error: invalid use of incomplete type 'struct fp_vector'
IMU:42: error: forward declaration of 'struct fp_vector'
IMU:130: error: 'YAW' was not declared in this scope
IMU:131: error: invalid use of incomplete type 'struct fp_vector'
IMU:42: error: forward declaration of 'struct fp_vector'
IMU.ino: In function 'void readGyros()':
IMU:140: error: 'mpu' was not declared in this scope
IMU:141: error: 'sensorDef' was not declared in this scope
IMU:142: error: 'gyroADC' was not declared in this scope
IMU:142: error: 'ROLL' was not declared in this scope
IMU:142: error: 'gyroOffset' was not declared in this scope
IMU:146: error: 'PITCH' was not declared in this scope
IMU:150: error: 'YAW' was not declared in this scope
IMU.ino: At global scope:
IMU:155: error: variable or field 'readACC' declared void
IMU:155: error: 'axisDef' was not declared in this scope
IMU.ino: In function 'void updateGyroAttitude()':
IMU:172: error: 'gyroADC' was not declared in this scope
IMU:172: error: 'gyroScale' was not declared in this scope
IMU:172: error: 'DT_FLOAT' was not declared in this scope
IMU:175: error: 'EstG' was not declared in this scope
IMU.ino: In function 'void updateACC()':
IMU:183: error: 'accLPF' was not declared in this scope
IMU:183: error: 'accADC' was not declared in this scope
IMU:184: error: 'accSmooth' was not declared in this scope
IMU:185: error: 'accMag' was not declared in this scope
IMU:191: error: 'accMag' was not declared in this scope
IMU:196: error: 'accSmooth' was not declared in this scope
IMU:196: error: 'ROLL' was not declared in this scope
IMU:196: error: 'acc_25deg' was not declared in this scope
IMU:196: error: 'PITCH' was not declared in this scope
IMU:196: error: 'YAW' was not declared in this scope
IMU:197: error: 'flags' was not declared in this scope
IMU:199: error: 'flags' was not declared in this scope
IMU.ino: In function 'void updateACCAttitude()':
IMU:212: error: 'accMag' was not declared in this scope
IMU:212: error: 'flags' was not declared in this scope
IMU:214: error: 'accSmooth' was not declared in this scope
IMU:215: error: 'EstG' was not declared in this scope
IMU:215: error: 'AccComplFilterConst' was not declared in this scope
IMU.ino: In function 'void getAttiduteAngles()':
IMU:226: error: 'angle' was not declared in this scope
IMU:226: error: 'ROLL' was not declared in this scope
IMU:226: error: 'config' was not declared in this scope
IMU:226: error: 'EstG' was not declared in this scope
IMU:226: error: 'Rajan_FastArcTan2_deg1000' was not declared in this scope
IMU:229: error: 'PITCH' was not declared in this scope
_BruGi.ino: In function 'void loop()':
_BruGi:275: error: 'readACC' was not declared in this scope

Der Händler meinte der "Jumper", der da komisch verlötet ist, hätte damit nichts zu tun. Jedes Board würde getestet und mit einem Bootloader versehen. Naja die 48er hat er ja auch angenommen...

Anhang anzeigen 61108


Der Sensor ist noch nicht angeschlossen - was bei der 048 auch egal ist. Weiß jemand, wo der Fehler liegt? Oder kann es sein, dass das Board im Eimer ist?

LG

HKP
Wieso ist das BAuteil über C3 Pin nicht richtig angelötet ??? Oder ist das der besagte Jumper ???
 

nico_99

Erfahrener Benutzer

HongKong-Pfui

Antivibration-Master
ja das hatte ich ja dem Händler geschrieben, dass der in der Luft hägt, aber der meinte, dass jedes Board getestet wird.

Was sagt Ihr denn zu der Fehlermeldung?
 
@jogijo
Du bist nicht alleine! Das Problem mit dem Wegkippen habe ich auch gerade. Mal sehen ob ich aus deinen Erfahrungen und Tipps etwas lernen kann. Schon mal Danke dafür.

@OlliW
Auch ein Dankeschön an dich für die tolle Erklärung und Anleitung. Ich hatte bereits bemerkt, dass ich mit meinen bisherigen Erfahrungen mit PID-Reglern hier nicht weit komme.

Gruß Micha
 

Jogijo

Erfahrener Benutzer
Die Beschreibung von OlliW ist super, und es steckt viel wertvolle Information drin, sie geht aber nicht von der "BruGi_049B_r77" aus und ist daher in einigen Punkten nicht für "BruGi_049B_r77" anwendbar.
Das betrifft vor allem die Nachbemerkung zu P, I, D und die Aussagen zu den ACC Werten.
In der "BruGi_049B_r77", und von nichts anderem spreche ich, ist es nicht zielführend P auf null zu stellen und zunächst I und D einzustellen, das ergibt ein unbeherrschbares Rodeo. Die von OlliW genannten ACC Werte sind teilweise in der Gui gar nicht verfügbar, da geht es von 1 bis 20, wobei 1 am schnellsten auf das ACC reagiert und somit das Gimbal empfindlich auf Verfälschungen durch Beschleunigung macht.
 

OlliW

Erfahrener Benutzer
deine Einwände sind teils berechtigt, teils IMHO nicht.

das mit dem Acc hat sich aufgeklärt... ich habe nur die entscheidende Zeile gesucht und mir angesehen... der dort vorkommende Wert wird aber vorher umgerechnet
Code:
setACCFastMode (bool fastMode) {
  if (fastMode) {
    AccComplFilterConst = (float)DT_FLOAT/(2.0 + DT_FLOAT); // 2 sec
  } else {
    AccComplFilterConst = (float)DT_FLOAT/(config.accTimeConstant + DT_FLOAT);
  }
}
und mit dieser Umrechnung passts mit deinen Erfahrungen zusammen (werde ich oben ändern)

das mit dem P wundert mich schwer... der Regler im BruGi ist nichts anderes als der übliche Wald-und-Wiesen PID...
 
@Jogij
Das habe ich in der letzten Stunde auch herausgefunden.
Für die Rollachse, die manchmal abkippt (Nick funktioniert gut), hab ich jetzt, glaube ich, alle erdenklichen Kombinationen durchprobiert, komme aber immer wieder in den Bereich der bisherigen Werte zurück da das Gimbal sonst schwingt.
Ich hab nun den eh schon hohen D-Anteil noch ein Stückchen höher gestellt (ist jetzt auf 90) und ACC von 7 auf 11, so wie du es beschrieben hast. Dazu noch den PWM von 47 auf 60, damit der Motor mehr Power hat. Wenn das Wetter mitspielt werde ich´s morgen mal testen. (Mit so kleinen Werten, wie auf dem Foto von dir, könnte man mein Gimbal als Schaukel für Kleintiere nutzen.)

Gruß Micha
 

Jogijo

Erfahrener Benutzer
Ein ACC Wert von 11 ist schon fast zu viel, aber das ist Geschmacksache, ich bin bei 9 gelandet.
Generell gilt, I hoch halten, D klein halten, P hoch halten, ich habe aber die Erfahrung gemacht das es wichtiger ist I hoch zu halten als P hoch zu halten.
D soll ja Resonanzen bremsen, dabei habe ich festgestellt das es bei D einen gewissen Punkt gibt an dem man genau die Resonanz erwischt, und so optimal bremst, ist D zu gering, dann schwingt das Gimbal sichtbar, ist D zu hoch, entstehen ganz feine Schwingungen die man hören kann. So war es zumindest bei meiner Nick Achse.
Ich empfehle also, wenn du meinst das die Einstellungen fertig sind, noch mal mit D zu spielen. Ich kann auch empfehlen das Gimbal bei den Einstellarbeiten ganz sanft zu berühren, da man so die feinen Schwingungen gut fühlen kann, durch leichtes antippen kann man die feinen Schwingungen auch gut provozieren.
 

Jogijo

Erfahrener Benutzer
das mit dem P wundert mich schwer... der Regler im BruGi ist nichts anderes als der übliche Wald-und-Wiesen PID...
Ich habe es mehrmals versucht, bevor ich hier etwas schreibe, mit besagtem Ergebnis.
Da ich nun aber von der Stabilität meiner verwendeten Kabel mehr als überzeugt bin, möchte vielleicht ein anderer, der "BruGi_049B_r77" in Verwendung hat, weiter Testen und hier berichten.
 

OlliW

Erfahrener Benutzer
OK, nehme ich als Erfahrung zur Kenntnis
ansonsten klingt deine Beschreibung im vorhergenden Post ja aber wie eine 1zu1 Bestätigung des von mir Gesagten :)
viel Spass weiterhin


edit: habe ich vergessen, das
dabei habe ich festgestellt das es bei D einen gewissen Punkt gibt an dem man genau die Resonanz erwischt, und so optimal bremst
macht übrigens absolut Sinn, bzw. wäre von der Theorie her genau so zu erwarten (wenn man "richtige" Werte hätte, würde sich daraus genau die Resonanzfrequenz der Motor-Kamera-Einheit ergeben). Ich kann das bei meinem Aufbau nicht sehr ausgeprägt beobachten, daher hatte ich nichts geschrieben, es ist aber nett zu sehen dass es den Effekt schon gibt
 
Zuletzt bearbeitet:

Jogijo

Erfahrener Benutzer
Jetzt wo ich so darüber nachdenke..., wenn bei dir die 48er läuft, kann es ja nur schwer ein Hardwareproblem sein. Irgendwo habe ich gehört oder gelesen das man ein eeprom clear machen sollte bevor man die 49er aufspielt, ich habe das jedenfalls sicherheitshalber gemacht.
 
Danke Jogijo für die genaue Erklärung. Gibt es schon einen Ort wo die verschiedenen Parameter Erklärt werden bzw. kann man das nicht in die Hilfe der GUI einbauen?
 
Excellenter Vorschlag. Auch in den englischen Foren ist das Frage Nummer zwei (nach der Frage wo denn das Tool geblieben sei, da sei blos eine TCL-Datei...).
 

Jogijo

Erfahrener Benutzer
OlliW hat sich hier
http://fpv-community.de/showthread....oller-SOFTWARE&p=381584&viewfull=1#post381584
die Mühe gemacht.
Und ich habe meine Erfahrungen mit der "BruGi_049B_r77" da
http://fpv-community.de/showthread....oller-SOFTWARE&p=381513&viewfull=1#post381513
nieder geschrieben.
Ich habe keinen Kontakt zu den Programmierern, ich bin nur ein User, aber ich denke mir, es ändert sich alles so schnell, da macht sich kein Programmierer die Mühe ein schönes Howto zu schreiben, man sollte auch bedenken das die "BruGi_049B_r77" eine BETA Version ist, aber dafür haben wir ja unser Forum.
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten