Vom Rasenmäher zum Graswerfer - PIDMIX Möglich?

Status
Nicht offen für weitere Antworten.

MaxWin

(╯°□°)╯︵ ┻━┻
#1
Hi,

nachdem ich gestern gemault habe das mein Mini-H wieder sau Dreckig ist, kam von ThomasT ein einwurf: Man müsste doch die Drehrichtung ändern können, damit er das Gras nicht immer nach innen zieht sondern nach vorne raus wirft. Das wär zumindest im Vorwärtsflug ein wenig besser was den Schmutz angeht.

Gedanke um halb eins im Bett: Naze um 90° Drehen, Motoren drehrichtung ändern, Pitch/Roll in der Funke tauschen. Würde vielleicht sogar gehen ;)

Aber dann die idee: Schauste mal was es so im SourceCode gibt.
MultiiWii bietet dafür einen sogenannten PIDMIX an (hier ganz gut erklärt: http://polakiumengineering.org/custom-multiwii-motor-mixes/) aber im source von Baseflight hab ich leider spontan so etwas nicht gefunden.

Daher meine Frage: Hat schonmal jemand sowas gemacht ,wo finde ich das bei der Naze?

Gruß
Max
 
#2
Hast Du schon mal daran gedacht, dass er das Gras dann zwar nach vorne und hinten weg vom Copter wirft, dafür dann aber von den Seiten zum Copter hin? ;)
 
#4
Ok, ich denke aber dass dafür nur Yaw gedreht werden müsste - auf Pitch and Roll sollte die Drehrichtung der Motoren keinen Einfluss haben. Dafür werden die Motoren ja nur hoch und runter geregelt um in die entsprechende Richtung zu fliegen.
 

TomW

Erfahrener Benutzer
#7
ich habe es nicht getestet, aber ein "set yaw_direction=-1" in cli könnte das tun was du brauchst
Ich fürchte das betrifft nur den Steuer- nicht den Regelprozess. Geht das nicht über den Costummixer?
Ich finde das sehr interessant. Mit dem Naze fliege ich auch meist knapp über Grasnabenhöhe.
 

MaxWin

(╯°□°)╯︵ ┻━┻
#8
Ich fürchte das betrifft nur den Steuer- nicht den Regelprozess. Geht das nicht über den Costummixer?
Ich finde das sehr interessant. Mit dem Naze fliege ich auch meist knapp über Grasnabenhöhe.
yaw_direction sorgt auch nur für den Servo glaub ich. Aber das hilft uns hier nicht weiter.

Mit dem Custommixer meinst du genau das was ich angesprochen habe, den PIDMIX.
Zu sehen im Source:
https://github.com/multiwii/multiwii-firmware/blob/upstream_shared/Output.cpp

Hier das Original für einen Quad im X layout:

Code:
#if def QUADX
motor[0] = PIDMIX(-1,+1,-1); //REAR_R
motor[1] = PIDMIX(-1,-1,+1); //FRONT_R
motor[2] = PIDMIX(+1,+1,+1); //REAR_L
motor[3] = PIDMIX(+1,-1,-1); //FRONT_L
#endif
Ändert man nun die Vorzeichen des letzten Argumentes entsprechend, den es gilt:
Code:
“motor['motor number'] = PIDMIX( ‘- X-Coordinate’, ‘- Y-Coordinate’, ‘Rotation (‘clockwise ‘-’, counter-clockwise’+’)’);
Code:
#if def QUADX
motor[0] = PIDMIX(-1,+1,+1); //REAR_R
motor[1] = PIDMIX(-1,-1,-1); //FRONT_R
motor[2] = PIDMIX(+1,+1,-1); //REAR_L
motor[3] = PIDMIX(+1,-1,+1); //FRONT_L
#endif
Sollte er genau das tun was wir wollen. Leider hab ich keinen MultiWii Quad hier um das mal zu testen.
 

MaxWin

(╯°□°)╯︵ ┻━┻
#9
ebenso könnte man das für baseflight testen, hier sieht es im original so aus:

https://github.com/multiwii/baseflight/blob/master/src/mixer.c

Code:
static const motorMixer_t mixerQuadX[] = {
    { 1.0f, -1.0f,  1.0f, -1.0f },          // REAR_R
    { 1.0f, -1.0f, -1.0f,  1.0f },          // FRONT_R
    { 1.0f,  1.0f,  1.0f,  1.0f },          // REAR_L
    { 1.0f,  1.0f, -1.0f, -1.0f },          // FRONT_L
};
adaptiert man nun vom multiwii source code, so sieht man das ein zusätzliches Argument eingefügt wurde, das aber der Drehrichtung unabhänig ist. Daher sollte eine änderung auf

Code:
static const motorMixer_t mixerQuadX[] = {
    { 1.0f, -1.0f,  1.0f,  1.0f },          // REAR_R
    { 1.0f, -1.0f, -1.0f, -1.0f },          // FRONT_R
    { 1.0f,  1.0f,  1.0f, -1.0f },          // REAR_L
    { 1.0f,  1.0f, -1.0f, 1.0f },          // FRONT_L
};
auch hier wieder das gewünschte Ergebnis erzielen.

Doch auch kein fliegender Naze32 Copter gerade zur Hand :(
 
#10
du musst nur die fc um 90° drehen und dann nick gegen roll tauschen! thema abgeschlossen! keine programmierung oder sonst was.
musst nur beim pid-tunen aufpassen, da sich die werte auch tauschen!
 

MaxWin

(╯°□°)╯︵ ┻━┻
#11
du musst nur die fc um 90° drehen und dann nick gegen roll tauschen! thema abgeschlossen! keine programmierung oder sonst was.
musst nur beim pid-tunen aufpassen, da sich die werte auch tauschen!
Das hab ich ja bereits im ersten Post geschrieben. Allerdings ist es
a) irgendwie pfusch
b) GPS Funktionen wollen dann auch nicht mehr richtig
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten