PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Quad mit Motorschwenkbewegung



Heinzgas
27.04.2012, 08:54
Hallo Leute,

wie in diesem Video zu sehen http://www.youtube.com/watch?v=SNPJMk2fgJU&feature=g-logo&context=G2314f0bFOAAAAAAABAA
wird der Quad über schwenkbare Motoren in alle Richtungen gesteuert...

ich finde die Idee einfach genial!!!
nur, wie geht man sowas an???
da hier ja eine Kopplung von Richtungssteuerung und Drehzahlsteuerung statt finden muss.....denke ich.



Gruß Heinz

ronco
27.04.2012, 11:27
Hi Heinz,

also die mischung könnte ich dir mit MultiWii Machen!

wenn du die musse hast sowas zu bauen ;) (aber bitte ohne knarre dran)

gruß

felix

Heinzgas
27.04.2012, 11:46
Hallo Felix,

und wie genau geht man sowas an???


Gruß Heinz

ronco
27.04.2012, 13:20
Hallo Heinz,

also wenn ich das sehe brauchte man 4 servos und 4 motoren.

die motoren müssten dann nur den angle also die horizontale yaw und roll machen pitch leuft ja dann über die servos? oder wie meinst du ist das in dem video?
(der kopter im viedo würde sonst was machen wenn er echt wäre .. so wie der sich verhält)

umsetzen kann man sowas (wenn man ne halbweegs schlüssige theorie hat) dann in den files..

wenn man jetzt z.b das machen würde: (ungetestet aber theorethisch solltest gehen)

in multiwii 2.0 in der config.h einen eigenen typ anlegen



/*************************************************************************************************/
/**** CONFIGURABLE PARAMETERS ****/
/*************************************************************************************************/

/* Set the minimum throttle command sent to the ESC (Electronic Speed Controller)
This is the minimum value that allow motors to run at a idle speed */
//#define MINTHROTTLE 1300 // for Turnigy Plush ESCs 10A
//#define MINTHROTTLE 1120 // for Super Simple ESCs 10A
//#define MINTHROTTLE 1220
#define MINTHROTTLE 1150

#define SERVOQUAD // das ist dann dein persönlicher special typ

/* The type of multicopter */
//#define GIMBAL
//#define BI
//#define TRI
//#define QUADP
#define QUADX // quad x bleibt an da er als basis genommen wird
//#define Y4
//#define Y6
//#define HEX6
//define HEX6X
//#define OCTOX8
//#define OCTOFLATP
//#define OCTOFLATX
//#define FLYING_WING
//#define VTAIL4


in der def.h die gewünschten servos aktivieren



...
#if defined(GIMBAL)
#define NUMBER_MOTOR 0
#define PRI_SERVO_FROM 1 // use servo from 1 to 2
#define PRI_SERVO_TO 2
#elif defined(FLYING_WING)
#define NUMBER_MOTOR 1
#define PRI_SERVO_FROM 1 // use servo from 1 to 2
#define PRI_SERVO_TO 2
#elif defined(BI)
#define NUMBER_MOTOR 2
#define PRI_SERVO_FROM 5 // use servo from 5 to 6
#define PRI_SERVO_TO 6
#elif defined(TRI)
#define NUMBER_MOTOR 3
#define PRI_SERVO_FROM 6 // use only servo 6
#define PRI_SERVO_TO 6
#elif defined(QUADP) || defined(QUADX) || defined(Y4)|| defined(VTAIL4)
#define NUMBER_MOTOR 4
#elif defined(Y6) || defined(HEX6) || defined(HEX6X)
#define NUMBER_MOTOR 6
#elif defined(OCTOX8) || defined(OCTOFLATP) || defined(OCTOFLATX)
#define NUMBER_MOTOR 8
#endif

#if defined(SERVOQUAD) // zu den vom quad x aktiven 4 motoren noch 4 servos aktivieren
#define PRI_SERVO_FROM 1 // servo 1-4 aktivieren
#define PRI_SERVO_TO 4
#endif

...



das ganze dann in der output.ino mischen


...
#ifdef QUADX
// den normalen PID mix können wir ja nicht nehmen da pitch auf den servos liegen soll
// also axisPID[PITCH] wird durch angle[PITCH] ersetzt
#define PIDMIX2(X,Y,Z) rcCommand[THROTTLE] + axisPID[ROLL]*X + angle[PITCH]*Y + YAW_DIRECTION * axisPID[YAW]*Z

motor[0] = PIDMIX2(-1,+1,-1); //REAR_R
motor[1] = PIDMIX2(-1,-1,+1); //FRONT_R
motor[2] = PIDMIX2(+1,+1,+1); //REAR_L
motor[3] = PIDMIX2(+1,-1,-1); //FRONT_L

//jetzt noch pitch auf die 4 servos legen
//1500 = mitte, 1020 minimum auschlag und 2000 maximun auschlag
servo[0] = constrain(1500 + axisPID[PITCH]), 1020, 2000); //REAR_R
servo[1] = constrain(1500 + axisPID[PITCH]), 1020, 2000); //FRONT_R
servo[2] = constrain(1500 + axisPID[PITCH]), 1020, 2000); //REAR_L
servo[3] = constrain(1500 + axisPID[PITCH]), 1020, 2000); //FRONT_L

#endif
...


die pins an die die servos dann z.b am arduino promini kommen sind

servo[0] = pin A0
servo[1] = pin A1
servo[2] = pin A2
servo[3] = pin 12

die motoren würden so wie beim normalen quad x angeschlossen


gruß

Felix

warthox
27.04.2012, 18:55
wie man sowas angeht? indem man ein paar cgi artists engagiert ;) das video ist gefaked.
aber ich kann mir vorstellen dass man das auch 'real' bauen kann. nur der vorteil erschließt sich mir nicht.
nachteile aber schon: viel mehr gewicht und mechanik = wesentlich anfälliger.

ronco
27.04.2012, 20:29
(der kopter im viedo würde sonst was machen wenn er echt wäre .. so wie der sich verhält)

;)

Heinzgas
27.04.2012, 21:37
Hallo,

so ins "Gewicht" würde das nicht fallen denke ich...
ein Quad mit ordentlich "Bums" unter Haube verträgt das sicher:)

es geht ja hier um die Machbarkeit....Video hin oder her...egal.
also....ich denke wenn man die Motoren in alle Richtungen schwenken will, braucht man mind. zwei Servos pro Motor..
nur, wer steuert dann Pitch???


Gruß Heinz

Crizz
28.04.2012, 00:05
Durch ThrustVectoring steuerst du im MC nur Roll und Nick, Yaw und Pitch steuerst du über Gas. Anders funktionieren meine EDF-TriCopter auch nicht, egal ob mit ThrustVector-Gearing oder Tilt-Gearing.

Jasmir
28.04.2012, 22:04
Ich denke mal, das mechanische Verstellen der Propellerdrehebene ist nur interessant, wenn man die Raumlage des Chassis unabhänig von irgendwelchen Copter-Bewegungen halten will. Die normalen Nutzlasten (Kameras) lassen sich da mit weniger Aufwand schwenkbar anbauen, da die ja i.d.R keinen Rückstoss haben ;)

Crizz
28.04.2012, 22:14
Der Vorteil von einem Nick-Schwenken der Rotoren liegt halt darin, das das Chassis eine neutralere Fluglge behält. Wird halt auch gerne bei BiCoptern gemacht, da geht es nicht anders um Vortrieb zu erzeugen. Beim Quad ist es halt quasi wie ein Gimbal, das direkt auf das Chassis ausgelegt ist ansttt auf einer Halterung für das gerät, was niveliert bleiben soll.