Open Source Brushless Gimbal Controller

Status
Nicht offen für weitere Antworten.

Tiggr

Read Only Account
Hiho!

Zur Lage:

Die Dinger sind ja 3-Achsaccelometer, das heißt entlang aller 3 Achsen (XYZ) wird die Beschleuigung gemessen. Also bei waagrechtem Einbau ist das dann wahrscheinlich die Y-Achse. Wenn ich das Ding um 90° drehe, steht eine andere Achse senkrecht und damit parallel zur Erdbeschleunigung! Ich muss halt nur eine andere Achse auslesen...

Zur Montageposition:
Eine Verschiebung aus dem Drehmittelpunkt ändert nichts am Drehwinkel! ein Rad, dass du um 45° drehst, dreht sich direkt an der Achse, und auch außen am Umfang um 45°!

Tschüss
Marcus (aka Tiggr - nicht schlagen, falls ich mich irre)
 
Zuletzt bearbeitet:

OlliW

Erfahrener Benutzer
die IMU ist 6DOF, d.h. es wird auch die Beschleunigung in allen 3 Achsen gemessen... d.h. wenn sagen wir mal (weiss es gerade nicht wie es bei BruGi ist) ein Winkel aus den Werten der z und x Achse bestimmt wird, dann spricht nichts dagen die IMU passen zu drehen und den Winkel aus z.B. den Werten der x und y Achse zu bestimmen... muss halt nur so programmiert werden, sind nur Vertauschungen und Vorzeichen (es gibt auch nur 24 Fälle die sich aber leicht systematisch erfassen lassen).

den Gyro-Messwerten ist es prinzip-bedingt (Physik) völlig egal ob die IMU sich genau in den Roll/Pitch Drehachsen befindet oder nicht, die gemessenen Beschleunigungen ändern sich bei einem Abstand von der Drehachse allerdings geringfügig, weil ja sozusagen Zusatzbeschleunigungen auftretten wenn sich die Camera dreht und der Sensor nicht exakt auf der Drehachse liegt. Allerdings helfen uns zwei Punkte: 1. die Acc-Werte werden ja eh nur im langen Mittel betrachtet (typisch 5-10 Sekunden), evtl schnelle Schwankungen die durch die schnellen (kleinen) Bewegungen durch die Regelung kommen sind also völlig unbedeutend (das ist ja gerade das Funktions-Prinzip des Datenfusing-Algorithmus). 2. Die Fehlbeschleunigungen aufgrund dessen dass der Kopter sich bewegt sind VIEL, VIEL GRÖßER, also wenn man sich um etwas Sorgen machen wollte dann zunächst darum.

huch, während dem Schreiben Marcus' Antwort übersehen
 

quadraf

Erfahrener Benutzer
Hiho!

Zur Lage:

Die Dinger sind ja 3-Achsaccelometer, das heißt entlang aller 3 Achsen (XYZ) wird die Beschleuigung gemessen. Also bei waagrechtem Einbau ist das dann wahrscheinlich die Y-Achse. Wenn ich das Ding um 90° drehe, steht eine andere Achse senkrecht und damit parallel zur Erdbeschleunigung! Ich muss halt nur eine andere Achse auslesen...

Zur Montageposition:
Eine Verschiebung aus dem Drehmittelpunkt ändert nichts am Drehwinkel! ein Rad, dass du um 45° drehst, dreht sich direkt an der Achse, und auch außen am Umfang um 45°!

Tschüss
Marcus (aka Tiggr - nicht schlagen, falls ich mich irre)
Hi Marcus,

Danke fur deine erklarung!
Ai ai, ich hatte nicht gewusst es seien 3 achsen ACC drin...so meine erklarung ist indertat falsch...:eek:
Zur montage position : mit den drehwinkel du meinst den Gyro winkel, das ist so.... aber den beschleunigung fur den ACC sensor an ausenseite ist doch mehr...oder verstehe ich das auch falsch??:confused:

Grusse Hans
 
Hallo Leute,

theoretisch verstehe ich das alles und denke Olli hat auch recht mit allem was er sagt.

Hab heute nacht mal geguckt und gefummelt, bekomme es aber nicht hin.
Ich denke, die einzige Stelle, wo ich was ändern müsste wäre in der IMU.ino

Da habe ich auch schon einiges geändert und versucht es nachzuvollziehen. Einfach nach Try and error.
Aber bekomm´s einfach nicht richtig hin.

Vielleicht kann ja mal einer der Software Götter hier einen Blick drauf werfen.
Ist vielleicht ja auch interessant für kommende Updates. Eine Einstellmöglichkeit zu bieten, egal wie die IMU montiert ist, wäre doch für alle von Vorteil.

In der Zwischenzeit bereite ich dann schon mal meine 3.Achse vor und widme mich dem umgeflashen eines ESC´s. OlliW hat da ja was geiles gebastelt. Leider bin ich in derart Programmierung eben noch in den Kinderschuhen. Aber wie sagt man? Man wächst mit seinen Aufgaben.....

Danke und Gruß
Dirk
 

Tiggr

Read Only Account
Hiho!

beschleunigung fur den ACC sensor
Jein, die linearen Beschleunigungen sind Größer, stimmt... Aber die mist man IMHO eigentlich garnicht, die stören eher! Man misst die Lage zur Erdbeschleunigung. Deswegen gibt es auch Probleme in engen Kurven, weil dann die Beschleunigungen durch den Copter sich erheblich zu der Erbeschleunigung addieren, und die Messung "kippen".

Tschüss
Marcus (aka Tiggr - nicht schlagen, falls ich mich irre)
 

OlliW

Erfahrener Benutzer
@Dirk: mach doch erstmal ein Bild deiner gewünschten Lage (und evtl der Normallage für Leut wie mich)... ohne zu wissen wie du es eingebaut haben willst wird dir Keiner weiterhelfen können ;)

@Hans: ich denke ich habe das präzise und erschöpfend beantwortet :)
 

quadraf

Erfahrener Benutzer
Hiho!



Jein, die linearen Beschleunigungen sind Größer, stimmt... Aber die mist man IMHO eigentlich garnicht, die stören eher! Man misst die Lage zur Erdbeschleunigung. Deswegen gibt es auch Probleme in engen Kurven, weil dann die Beschleunigungen durch den Copter sich erheblich zu der Erbeschleunigung addieren, und die Messung "kippen".

Tschüss
Marcus (aka Tiggr - nicht schlagen, falls ich mich irre)
Ja du hast recht... aber die frage war eigentlich WO man den sensor am besten montieren last. Wie gesagt fur den gyro machts niks den der misst nur winkel , aber fur den ACC doch ein SEHR wenig...durch die beschleunigung an der kante...? Meine vorschlag bleibt beim roll achse oder sehr nahe unter auf den gimbal.
Wir mussen doch ein gemeinsames antword kunnen geben...:)

Grusse Hans
 
@Dirk: mach doch erstmal ein Bild deiner gewünschten Lage (und evtl der Normallage für Leut wie mich)... ohne zu wissen wie du es eingebaut haben willst wird dir Keiner weiterhelfen können ;)
Hallo olli, was soll ein Bild denn da klären?
Die Achsen und Drehrichtungen stehen ja auf der IMU. Da kann man ja einfach dann gucken, welche Achse getauscht werden muss. Bei mir sieht´s dann so aus:

Roll: Z-Achse
Pitch X-Achse
Yaw: Y-Achse

Will eigentlich nur wissen, wo man im Sketch suchen muss. Ich tippe mal auf IMU.ino
Aber das ist sehr verwirrend. Gyros und ACCs sind nicht den gleichen Kanälen zugeordnet?!
Dazu noch die Richtungsvariable, die für mich keinen erkennbaren Richtungen folgt

// set default sensor orientation (sensor upside)
void initSensorOrientationDefault() {

// channel assignment
sensorDef.Gyro[ROLL].idx = 0;
sensorDef.Gyro[PITCH].idx = 1;
sensorDef.Gyro[YAW].idx = 2;

sensorDef.Acc[ROLL].idx = 1; // y
sensorDef.Acc[PITCH].idx = 0; // x
sensorDef.Acc[YAW].idx = 2; // z

// direction
sensorDef.Gyro[ROLL].dir = 1;
sensorDef.Gyro[PITCH].dir = 1;
sensorDef.Gyro[YAW].dir = 1;

sensorDef.Acc[ROLL].dir = 1;
sensorDef.Acc[PITCH].dir = 1;
sensorDef.Acc[YAW].dir = 1;

Dreht man jetzt über die GUI z.B. X- und Y-Achse, drehen sich die Richtungen aber eher merkwürdig.

if (config.axisSwapXY) {
// swap gyro axis
swap_char(&sensorDef.Gyro[ROLL].idx, &sensorDef.Gyro[PITCH].idx);
swap_int(&sensorDef.Gyro[ROLL].dir, &sensorDef.Gyro[PITCH].dir); sensorDef.Gyro[PITCH].dir *= -1; // try and error ;-)
// swap acc axis
swap_char(&sensorDef.Acc[ROLL].idx, &sensorDef.Acc[PITCH].idx);
swap_int(&sensorDef.Acc[ROLL].dir, &sensorDef.Acc[PITCH].dir); sensorDef.Acc[ROLL].dir *= -1;
}

Warum ist beim Gyro Roll=0, Pitch=1, Yaw=2
Beim ACC aber Roll=1, Pitch=0, Yaw=2 ??

Habe ziemlich viel ausprobiert. Alles ist nachvollziehbar, solange die Z-Achse nicht getauscht wird.

Kann vielleicht mal ein Software Guru da drüber schauen?
Ich bekomm´s nicht hin. In der Gui sieht man ja auch nicht die RAW-Werte der Gyros und ACC´s, was es noch viel schwieriger macht.

Oder bin ich sogar an der falsche Stelle und man kann das viel einfacher irgendwo anders umdrehen???

Gruß
Dirk
 
Zuletzt bearbeitet:

OlliW

Erfahrener Benutzer
Hallo olli, was soll ein Bild denn da klären?
das würde mir helfen dir zu helfen wie du die Achsen umbenennen musst ;)
(ich hab nicht so viel Lust nachzuforschen was die Defaultorientierung bei BruGi ist)

Will eigentlich nur wissen, wo man im Sketch suchen muss. Ich tippe mal auf IMU.ino
Aber das ist sehr verwirrend.
ja
Oder bin ich sogar an der falsche Stelle und man kann das viel einfacher irgendwo anders umdrehen???
IMHO ja.... wie ich oben vorgeschlagen hatte... BruGi sozusagen ganz vorne "betrügen", also nichts an dieser Stelle machen, versteht ja eh keiner, sondern gleich in der Routine die die Gyro bzw. Acc Werte an die Mainloop liefert

(Ok, heisst nicht GyroUdpdate oder so sondern readGyros und readAcc... mein Fehler)


(ist manchmal schon lustig das man was schreibt und wenige Posts später die Frage zur Antwort kommt, gilt ja auch für quadraf LOL)
 

biele01

Erfahrener Benutzer
Hallo. Ich möchte mal schnell eine technische frage einwerfen. Ich bin schon seit langem im Besitz des Martinez V1 board. was bisher wie erwartet funktioniert hat. auch nach aufspielung Aktueller Firmware war der Gimbal recht schnell wieder eingestellt und funktionierte"prinzipiell". Nun habe Ichg den Gimbal am Kopter montiert, nix anderes geändert, nun ist es so das nach dem bestromen, nach der Kalibrierung alle Motoren mit vollem Strom gehalten werden, die Bewegung des IMUs hat keine Auswirkung mehr. der Atmel sowie die beiden Endstufen sind sehr heiß, IMU hab ich probehalber getauscht, ohne Erfolg. Mist woran kann das jetzt liegen, kann doch nicht sein, das war von Heut auf Morgen ohne das ich etwas relevantes geändert hätte. Was kann defekt sein? eine Firmware wiederaufspielung hat ebenfalls keine Wirkung.Ging es schon mal jemanden ähnlich oder hat eine Idee? viele Grüße Tobias
 

martinez

Erfahrener Benutzer
Hi Tobias,

der Atmega darf auf keinen heiß werden, auch die beiden Treiber sollten eigentlich nur, je nach Motoren, Handwarm werden.
Ich denke du hast durch ein Einbau am Copter einen Kurzschluss verursacht. Es kann auch gut sein, dass der Atmega dauerhaft zerstört ist.
Bau am besten nochmal alles aus und überprüfe alles.

Gruß
Martinez
 

biele01

Erfahrener Benutzer
der Atmega lässt sich aber noch wie gewohnt via Arduino Flashen, auch in der GUI verbindet der Controller. Ich überprüfe alles trotzdem nochmal....
 

biele01

Erfahrener Benutzer
Hi Martinez, Ich glaube ich richte das gleich mal direkt an dich, du kennst dich bisschen aus mit deinem Brett. Auf dem Anschluss für den Inertialsensor, haben im unbestromten zusatand +5V und GND durchgang. Alle anderen Pins, Hauptstromversorgung, Motoren SDA,SCL,.... scheinen OK. Mit Stromversorgung liegen 4,9V auf der 5V IMU Leitung. Ist das erstmal normal? Kann das Modul welches die 5V generiert defekt sein? Ich kann sonst keine fehler finden...
 

martinez

Erfahrener Benutzer
Hi,

was meinst du damit?
Auf dem Anschluss für den Inertialsensor, haben im unbestromten zusatand +5V und GND durchgang.
Meinst du die I2C Stiftleiste, +5V -> GND ?

Wenn du alles von den Controller absteckst solltest du diese Spannung an diesen Punkten messen (Betrieben über VCC 12V und GND)
https://dl.dropboxusercontent.com/u/1686607/Foren/FVP/PN/Bildschirmfoto 2013-06-04 um 22.23.55.png

Die Werte von oben nach unten bedeuten:
- Versorgung Spannung liegt am Board an
- Sicherung ist okay
- Leiterbahn bis zur Verpolschutzdiode ist okay
- Verpolschutzdiode ist okay
- +5V Regler ist okay

Benutze dazu bitte ein kleines 12V Netzteil, solltest du mit einen Akku arbeiten und beim Messen mit den Messspitzen einen Kurzschluss mach kann das sonst böse für das Board enden...

Wichtig ist das du alles vom Controller trennst, nur so kannst du sicher stellen das nichts von "außen" mit rein spuckt (z.B. eine defekte IMU, oder Motor)

Gruß
Martinez
 
Zuletzt bearbeitet:

-Frank-

Nach oben ist immer gut.
Hallo liebe Commuity,

ich ich bin nun von meinem Servogimbal auf ein Brushlessgimbal umgestiegen und seit einigen Tagen am verzweifeln. Ich hab mich bis hierher in diesem thread durch gelesen und alles probiert was hier reingeschrieben wurde. Leider ohne den kleinsten Erfolg um das ich wieder Hoffnung schöpfen kann ^^
Mein Problem ist, ich bekomme das Controllerboard nicht geflasht (ist das richtig so ausgedrückt?)
Wenn ich die Arduinosoftware mit _046.ino starte und diesen einen Eintrag
(#define MPU6050_DEFAULT_ADDRESS MPU6050_ADDRESS_AD0_LOW) auf "LOW" gestellt habe, will ich dann den Upload starten. Comport ist richtig eingestellt und das Board, kann ich nehmen was ich will. Es steht niemals da, das der Upload erfolgreich war. Stattdessen seh ich dann meist :"avrdude: stk500_getsync(): not in sync: resp=0x00", oder ander komische "Wörter"
Und dieses GUI, scheint gar nicht zu funktionieren. Es bleibt bei "TC:reading values . . ." bis zum Sangt Nimmerleinstag.
Hier zwei Bilder, womit ich mich seit Tagen und Nächten und auch noch im Schlaf rumärger:
 

Anhänge

Zuletzt bearbeitet:

-Frank-

Nach oben ist immer gut.
Hallo,

das Video hab ich schon hiter mir. Dort ist es auch sehr gut erklärt, doch leider klappt es nicht. Ich bin grad dabei, Treiber etc. auf einem anderen, frisch aufgesetzten PC, zu installieren und von dem das zu probieren.
 
Zuletzt bearbeitet:

SpeedmasterB

Erfahrener Benutzer
Hi,

das problem wird wohl hier liegen "avrdude: stk500_getsync(): not in sync: resp=0x00" aber wie du dieses abstellen kannst
kann ich Dir leider nicht sagen evtl. hat es ja was mit com port, treiber und baud rate zu tun.

gruß
Joerg
 

-Frank-

Nach oben ist immer gut.
Ein anderer PC funktioniert auch nicht. Nun hab ich mir alles erdenkliche probiert. Ich weiß nicht mehr weiter. Ich nehm das Board, legs auf die Straße und fahr mit dem Auto rüber :???:

Komisch ist auch, wenn ich uploade, was bisher nicht klappte, sehe ich unten Binary sketch size: 26588 Bytes . . . Bei dem anderen PC seh ich 26648 Bytes und im Video steht was von 28014 Bytes. Alles ein und das die selbe 049 r161 Version.
 

Maggi

Erfahrener Benutzer
Hilfe,
sorry aber ich habe kein Plan wie man das den MPU 6050 an das Martinez Bord anschließt. Hatte da mal ein Bild gesehen aber finde es leider nicht mehr. Bei mir waren 4 Kabel dabei.

Gruß Rainer
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten