Gyrorichtung falsch

#1
Hallo, muss wieder eure Hilfe in Anspruch nehmen, der Gyro an Board meines Copters reagiert nicht wie er soll.

Wenn ich den Copter mit wenig Gas nach hinten neige, laufen die Motoren der linken Seite an, neige ich ihn nach vorn, laufen die rechten Motoren.

Hier mal ein Foto bei dem ich den Copter nach hinten neige, in der GUI sieht man die nötigen Achsen, welche muss ich jetzt ändern damit der Gyro richtig reagiert???

Holger
 

Anhänge

kalle123

Jugend forscht ....
#2
Würde mal vorschlagen, an der MAG und ACC orientation nichts zu machen.

Also bleibt die Zeile GYRO orientation übrig.

Wie wäre es, einfach mal X <-> Y zu vertauschen.

Ufff, das war aber jetzt superschwer ;)
 
#3
Wie wäre es, einfach mal X <-> Y zu vertauschen.

Habe ich probiert aber keine Änderung im Multiwii.conf, doch nicht so leicht das Problem.
 

kalle123

Jugend forscht ....
#4
Wenn man

#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = -Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}

nach

#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = -X; gyroADC[PITCH] = -Y; gyroADC[YAW] = -Z;}

sollte sich schon eine Änderung zeigen. ;)

Der eigentliche Abgleich erfolgt nach dem Schema hier:

How should be the sensor axis directions

TILT the MULTI to the RIGHT (left side up):

MAG_ROLL, ACC_ROLL and GYRO_ROLL goes up
MAG_Z and ACC_Z goes down

TILT the MULTI forward (tail up):

MAG_PITCH, ACC_PITCH and GYRO_PITCH goes up
MAG_Z and ACC_Z goes down

Rotating the copter clockwise (YAW):

GYRO_YAW goes up

The copter stays level:

MAG_Z is positive ; ACC_Z is positive

 
#5
Wenn man

#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = -Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}

nach

#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = -X; gyroADC[PITCH] = -Y; gyroADC[YAW] = -Z;}

sollte sich schon eine Änderung zeigen. ;)

Danke für deine schnelle Antwort, habe jetzt fest gestellt das wenn ich den Copter ( ist über USB an geschlossen ) in Multiwiiconf 2.0 nach vorn und nach hinten neige der kleine Copter rechts unten im Bild, sich nach Rechts oder Links neigt.

Oben das hat sich erledigt, hab so lang das sketch um geschrieben bis alles jetzt läuft wie es soll, auch die Gyrowirkung ist jetzt richtig.

Nun noch folgendes die Motoren wenn ich ein drittel gas gebe springen dauernd rauf und runter, ohne das ich den copter bewege, habe alle regler einzeln an gelernt, hast du noch einen Tip dazu???
 
Zuletzt bearbeitet:

kalle123

Jugend forscht ....
#6
Klemm die Schei... Motoren ab. Du musst zuallererst schauen, das die Sensoren richtig arbeiten.

Also Motoren abklemmen.

Vielleicht nimmst du auch die Standard GUI.

How should be the sensor axis directions

1. TILT the MULTI to the RIGHT (left side up):

MAG_ROLL, ACC_ROLL and GYRO_ROLL goes up
MAG_Z and ACC_Z goes down

2. TILT the MULTI forward (tail up):

MAG_PITCH, ACC_PITCH and GYRO_PITCH goes up
MAG_Z and ACC_Z goes down

3. Rotating the copter clockwise (YAW):

GYRO_YAW goes up

The copter stays level:

MAG_Z is positive ; ACC_Z is positive


1. Also NACH RECHTS KIPPEN

Nur diese Sensoren beachten!!!

MAG_ROLL, ACC_ROLL and GYRO_ROLL goes up
MAG_Z and ACC_Z goes down

Die anderen Sensoren ausblenden!!!

Dann #2 und zuletzt #3
 

kalle123

Jugend forscht ....
#8
Tilman, deine Seite, schön und gut.

Aber es finden sich halt immer wieder Kandidaten, die sich dermaßen verrannt haben, dass sie den Wald vor lauter Bäumen nicht mehr sehen.

Da bedarf es halt des individuellen und ganz persönlichen Zuspruches ... :)

Gruß KH
 
#9
Tilman, deine Seite, schön und gut.

Aber es finden sich halt immer wieder Kandidaten, die sich dermaßen verrannt haben, dass sie den Wald vor lauter Bäumen nicht mehr sehen.

Da bedarf es halt des individuellen und ganz persönlichen Zuspruches ... :)

Hallo Kalle,

das hast du jetzt richtig kommentiert, ich habe die Seite schon rauf und runter durch gelesen und weiß immer noch nicht was ich bei meinem Board alles frei schalten muss (// entfernen)

Vielleicht alles was Tilman oben an gegeben hat??? das macht es als Anfänger eben so schwer, aber ich bin lernfähig auch wenn ich schon ein alter Knacker bin ;-))

Mein Board: http://quadframe.com/products/mwii01 habe folgendes frei geschaltet:

Multiwii 2.0 Arduino 1.0

#define MINTHROTTLE 1100

#define QUADX

#define YAW_DIRECTION 1 // if you want to reverse the yaw correction direction
//#define YAW_DIRECTION -1

#define I2C_SPEED 100000L //100kHz normal mode, this value must be used for a genuine WMP
//#define I2C_SPEED 400000L //400kHz fast mode, it works only with some WMP clones

//enable internal I2C pull ups
#define INTERNAL_I2C_PULLUPS

#define TRUSTED_ACCZ

#define GPS_BAUD 115200

#define INTERLEAVING_DELAY 3000


#define NEUTRALIZE_DELAY 100000

//if you use independent sensors
//leave it commented if you already checked a specific board above

#define ITG3200

#define BMA180

#define BMP085

#define MINCOMMAND 1000

#define LCD_CONF

#define LCD_SERIAL3W

/* keys to navigate the LCD menu (preset to LCD_TEXTSTAR key-depress codes)*/
#define LCD_MENU_PREV 'a'
#define LCD_MENU_NEXT 'c'
#define LCD_VALUE_UP 'd'
#define LCD_VALUE_DOWN 'b'

#define VBATREF 24

//#define SERVO_TILT
#define TILT_PITCH_MIN 1020 //servo travel min, don't set it below 1020
#define TILT_PITCH_MAX 2000 //servo travel max, max value=2000
#define TILT_PITCH_MIDDLE 1500 //servo neutral value
#define TILT_PITCH_PROP 10 //servo proportional (tied to angle) ; can be negative to invert movement
#define TILT_ROLL_MIN 1020
#define TILT_ROLL_MAX 2000
#define TILT_ROLL_MIDDLE 1500
#define TILT_ROLL_PROP 10


//#define CAMTRIG
#define CAM_SERVO_HIGH 2000 // the position of HIGH state servo
#define CAM_SERVO_LOW 1020 // the position of LOW state servo
#define CAM_TIME_HIGH 1000 // the duration of HIGH state servo expressed in ms
#define CAM_TIME_LOW 1000 // the duration of LOW state servo expressed in ms

/* you can change the tricopter servo travel here */
#define TRI_YAW_CONSTRAINT_MIN 1020
#define TRI_YAW_CONSTRAINT_MAX 2000
#define TRI_YAW_MIDDLE 1500 // tail servo center pos. - use this for

#define PITCH_DIRECTION_L 1 // left servo - pitch orientation
#define PITCH_DIRECTION_R -1 // right servo - pitch orientation (opposite sign to PITCH_DIRECTION_L, if servos are mounted in mirrored orientation)
#define ROLL_DIRECTION_L 1 // left servo - roll orientation
#define ROLL_DIRECTION_R 1 // right servo - roll orientation (same sign as ROLL_DIRECTION_L, if servos are mounted in mirrored orientation)
#define WING_LEFT_MID 1500 // left servo center pos. - use this for initial trim; later trim midpoint via LCD
#define WING_RIGHT_MID 1500 // right servo center pos. - use this for initial trim; later trim midpoint via LCD
#define WING_LEFT_MIN 1020 // limit servo travel range must be inside [1020;2000]
#define WING_LEFT_MAX 2000 // limit servo travel range must be inside [1020;2000]
#define WING_RIGHT_MIN 1020 // limit servo travel range must be inside [1020;2000]
#define WING_RIGHT_MAX 2000 // limit servo travel range must be inside [1020;2000]


#define PLEVELSCALE 50

#define PLEVELDIV 5000 // default for soft - if you lower PLEVELDIV, beware of overrun in uint32 pMeter
#define PLEVELDIVSOFT PLEVELDIV

#define PSENSORNULL 510 // for I=0A my sensor gives 1/2 Vss; that is approx 2.49Volt
#define PINT2mA 13

#define VBAT // comment this line to suppress the vbat code
#define VBATSCALE 131 // change this value if readed Battery voltage is different than real voltage
#define VBATLEVEL1_3S 107 // 10,7V
#define VBATLEVEL2_3S 103 // 10,3V
#define VBATLEVEL3_3S 99 // 9.9V
#define NO_VBAT 16 //

//if you want to change to orientation of individual sensor
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = -X; accADC[PITCH] = -Y; accADC[YAW] = -Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = -X; gyroADC[PITCH] = Y; gyroADC[YAW] = -Z;}
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = -Z;}


#define LCD_TELEMETRY_FREQ 23 // to send telemetry data over serial 23 <=> 60ms <=> 16Hz (only sending interlaced, so 8Hz update rate)
#define LCD_TELEMETRY_AUTO_FREQ 667 // to step to next telemetry page 667 <=> 2s
#define PSENSORFREQ 6 // to read hardware powermeter sensor 6 <=> 18ms
#define VBATFREQ PSENSORFREQ
 
Zuletzt bearbeitet:

kalle123

Jugend forscht ....
#10
Hallo Holger.

OK. Mach es doch nicht so kompliziert. Reduzier doch auf das Wesentliche.

Arduino und ITG 3200. Kein Empfänger, kein Steller ....

So wie unten im Bild.

5 Volt dran und an die GUI anschliessen. Hab dafür so einen kleinen Akkupack.
Mehr brauchst du nicht, um den GYRO zu testen und die Achsen anzupassen.

Ev. multiwii 2.0 mal neu runterladen, wenn du nicht mehr weisst, wo du rumgedreht hast.

Und dann einfach mal den GYRO versuchen nach den div. Anleitungen :) hinzukriegen.

Wenn du das hast, den BMA180 ....

Wenn die Elektronik stimmt, kannst du irgendwann auch die Steller ranpacken.

Aber versuch klein anzufangen und mach ein Schrittchen nach dem anderen.


Oder wie man so sagt ... keep it simple, stupid! ;)
 

Anhänge

#11
Hallo Holger.

OK. Mach es doch nicht so kompliziert. Reduzier doch auf das Wesentliche.

Arduino und ITG 3200. Kein Empfänger, kein Steller ....

So wie unten im Bild.

5 Volt dran und an die GUI anschliessen. Hab dafür so einen kleinen Akkupack.
Mehr brauchst du nicht, um den GYRO zu testen und die Achsen anzupassen.

Ev. multiwii 2.0 mal neu runterladen, wenn du nicht mehr weisst, wo du rumgedreht hast.

Und dann einfach mal den GYRO versuchen nach den div. Anleitungen :) hinzukriegen.

Wenn du das hast, den BMA180 ....

Wenn die Elektronik stimmt, kannst du irgendwann auch die Steller ranpacken.

Aber versuch klein anzufangen und mach ein Schrittchen nach dem anderen.


Oder wie man so sagt ... keep it simple, stupid! ;)
So ich habe jetzt das Board aus gebaut, so ein Akkupack hatte ich auch liegen wegen Heli testen, hab jetzt die Multiwii 1.9 genommen und hab nur erst mal den ITG3200 frei geschaltet BMA 180 und BMP 085 raus gelassen.

Also der Gyro reagiert in der Multiwiiconf 1.9 wie es sein muss nach Re. kippen die Gyro Roll Zahlen steigen an, gehen aber gleich wieder auf Null nach Li. Zahlen gehen ins Minus und wieder zurück, nach vorn und hinten auch richtig rum.

Hab jetzt noch BMA180 frei geschaltet, kippen nach Re. Zahlen rauf, kippen Li. Zahlen ins Minus, kippen nach vorn Zahlen ins Plus, nach hinten ins Minus.

Hab jetzt noch den BMP085 frei geschaltet, alles so geblieben, jetzt brauch ich die weitere Vorgehensweise!!!

Holger
 

kalle123

Jugend forscht ....
#13
Holger, das klappt also soweit?!

- Also dann würd ich vorschlagen, den Empfänger dran zuhängen, die Kanäle zuzuordnen und einzustellen, Schalter zuweisen und das ganze in der GUI zu checken.

Wenn das soweit OK ist. (Bevor du wieder fragst ....)

- Steller am Empfänger einlernen.

- Steller dran, BLs dran. Drauf achten, welcher an welchen Ausgang kommt. Drehrichtungskontrolle ohne Props.

- GUI Werte einstellen. Z.B. hier -> http://myhangar.de/parameter-einstellungen-mwc/

- Langsam ans Fliegen denken.
 
#14
Holger, das klappt also soweit?!

- Also dann würd ich vorschlagen, den Empfänger dran zuhängen, die Kanäle zuzuordnen und einzustellen, Schalter zuweisen und das ganze in der GUI zu checken.

Wenn das soweit OK ist. (Bevor du wieder fragst ....)

- Steller am Empfänger einlernen.

- Steller dran, BLs dran. Drauf achten, welcher an welchen Ausgang kommt. Drehrichtungskontrolle ohne Props.

- GUI Werte einstellen. Z.B. hier -> http://myhangar.de/parameter-einstellungen-mwc/

- Langsam ans Fliegen denken.
Soweit hab ich jetzt deine Angaben aus geführt und bei der Seite Myhangar.de Einstellungen wie beschrieben für Anfänger geändert.

In der GUI finde ich keine Möglichkeit wie ich über den AUX1 Ausgang am Empfänger über den 5ten Kanal die Motoren aus schalten kann, so eine Art Notknopf für mich, vielleicht zum Anfang ganz hilfreich.

Glaube wir sind jetzt ganz nah dran zum ersten Testflug!!!

Holger
 

kalle123

Jugend forscht ....
#15
Ich hab das in config.h auskommentiert.

Ist mir so lieber ;)


/* motors will not spin when the throttle command is in low position
this is an alternative method to stop immediately the motors */
#define MOTOR_STOP
 
#16
Ich hab das in config.h auskommentiert.

Ist mir so lieber ;)


/* motors will not spin when the throttle command is in low position
this is an alternative method to stop immediately the motors */
#define MOTOR_STOP
Super habe ich auch gemacht, hat ja den selben Effekt.

Hab gerade mal einen trockenflug gemacht ohne Propeller, tut super aus gleichen wenn ich ihn kippe oder neige, aber trotzdem laufen die Motoren nicht gleichmäßig rund stottern immer ein wenig.

Wenn du es genau sehen willst kann ich ein kleines Video von machen und bei youtube hoch laden, weiß nicht ob das normal ist.
 
#17
Ich hab das in config.h auskommentiert.

Ist mir so lieber ;)


/* motors will not spin when the throttle command is in low position
this is an alternative method to stop immediately the motors */
#define MOTOR_STOP
Hallo Kalle,

brauch noch deine Hilfe, da mein Board so besonders ist und es keine vernünftige Anleitung gibt wie es bei den andren der Fall ist.

Versuche grade die ersten Hüpfer zu machen, hat immer an gefangen zu wippen wenn er leichter wurde, hab die P Werte etwas gesengt jetzt geht es aber er fängt an sich zu drehen um die eigene Achse, wie kann ich das in Griff kriegen??? Mit trimmen am Sender probiert ohne Erfolg.

Hoffe hast noch einen Tip dazu!!!

Holger
 
#19
Bisschen Info musst du schon geben....[/QUOTE]

Habe folgendes Board: http://quadframe.com/products/mwii01

Alle Beschreibungen die sich auf das Multiwii Board bezieht bringen bei meinem Board nichts und auf der Hersteller Seite komm ich auch nicht weiter.

Gibt es das wieder was in der GUI was Erfolg bringt, gegen das drehen um die eigene Achse, dreht sich ganz langsam, mit trimmen bleibt alles so.

Und der kleine will nicht ab heben, weil zu schwer, wiegt 1100 gr. in der GUI gehen die Werte für throttle bei vollgas 1970 hoch
 

Anhänge

#20
Habe jetzt noch fest gestellt, das sich in der GUI bei Ruderausschlag nichts unter YAW passiert weder nach Li. oder Re. gibt es da in der Multiwiiconf. noch was das ich aktivieren muss???
 
FPV1

Banggood

Oben Unten