PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Quadrokopter



baensch
28.08.2009, 12:15
Ich möchte meinen eigenen Quadrocopter bauen, der zumindest so hoch fliegt, dass er eine Treppe überwinden kann (ich denke so hoch wie zwei Stufen müsste reichen), nur leider habe ich noch keine Erfahrung in diesem Gebiet, deshalb habe ich einige Fragen:

*Warum müssen jeweils 2 Rotoren in eine andere Richtung drehen
*Gibt es einen bestimmten Sensor, der überprüfen kann, ob der Quadrokopter wagrecht fliegt
*Welche Motoren benötigt man dafür (Kann man normale DC-Motoren verwenden mit 14000U/min bei 5V)
*Welche Akkus sind empfehlenswert

ikarus_177
28.08.2009, 12:58
Hi,

ich hab zwar selbst keinen Copter gebaut, jedoch finde ich das ein sehr spannendes und interessantes Vorhaben!


*Warum müssen jeweils 2 Rotoren in eine andere Richtung drehen
Die Drehmomente der vier Motoren müssen sich aufheben, sonst würde der Copter ja in der Luft kreiseln. Genau dafür haben auch Hubschrauber einen Heckrotor.


*Gibt es einen bestimmten Sensor, der überprüfen kann, ob der Quadrokopter wagrecht fliegt
Die meisten Bastler verwenden hier eine Verbindung aus Gyros und Beschleunigungssensoren. Vielleicht würden auch Lagesensoren funktionieren, das kann ich nicht sagen. Schau dir mal Willas Tricopter-Projekt hier im Forum an. Was er aus seinem Copter gemacht hat, ist echt spitze!


*Welche Motoren benötigt man dafür (Kann man normale DC-Motoren verwenden mit 14000U/min bei 5V)
Ich würde Brushless-Motoren verwenden, die sind sehr leicht, und haben trotzdem eine hohe Leistung.


*Welche Akkus sind empfehlenswert
Hier kommen wohl nur LiPo's in Frage: leicht, leistungsstark, aber auch nicht ganz ohne in der Handhabung in Puncto Sicherheit.

Viele Grüße

baensch
28.08.2009, 16:34
Danke für die Antwort

Ich verstehe zwar dass Gyros allein nicht reichen wegen der Beschleunigung bei einer Bewegung doch wie kann man das mit einfachen Beschleunigungssensoren kompensieren?

Willa
28.08.2009, 18:23
Hallo!
Gyros alleine würden theoretisch reichen. Gyros messen eine Winkelgeschwindigkeit. Wenn du diese Geschwindigkeit aufintegrierst, bekommst du den Winkel mit dem der Copter grad in der Luft steht. Das würde reichen um einen Copter waagerecht zu halten. Leider passieren beim integrieren aber immer Fehler. Diese Fehler summieren sich mit der Zeit und werden irgendwann unendlich groß. Dein Copter denkt dann er würde waagerecht sein, in Wirklichkeit ist er aber um 180° gedreht bzw. schon längst eingeschlagen. Um diesen Fehler zu korrigieren verwendet man Beschleunigungssensoren (ACC). So ein Sensor kann die Erdbeschleunigung messen, und weiss daher immer ziemlich genau wo unten ist. Diese Information gibt er an das Gyrointegral weiter und korrigiert es langsam.
Ein ACC alleine reicht leider nicht, denn der rauscht von Natur aus ziemlich stark und ist zu langsam. Gyros sind extrem empfindlich und steuern bei jeder geringsten Abweichung gegen. Das kann ein ACC prinzipbedingt nicht so gut.

*Gibt es einen bestimmten Sensor, der überprüfen kann, ob der Quadrokopter wagrecht fliegt
Die Antwort lautet also nein. Ob der Copter waagerecht fliegt findest du mit zwei verschiedenen Sensoren und mit für einen Anfänger nicht ganz trivialen Algorithmen heraus.

P.S.: Übrigens ist die Navigation in geschlossenen Räumen auch nicht ganz trivial... Man könnte es so wie ich machen (mit Kamera und Markern), oder man nimmt infrarot Distanzsensoren. Mit letzterem weiss der Copter aber immernoch nicht wo er ist. Aber evtl. erkennt er Hindernisse....

baensch
31.08.2009, 12:11
Erstmal danke für die Antwor

Im Prinzip verstehe ich erstmal die Lageerkennung. Doch wie ich dieses Vorhaben realisieren soll weiß ich immer noch nicht.
Gyros + Integrator sind kein Problem
Korrigiert wird es mit dem angepassten Signal des Beschleunigungssensors (wahrscheinlich Summierer oder Subtrahierer)

Doch wie sehen die Algorithmen aus die dieses Signal anpassen (bzw ist hier ein bestimmtes Filter für die Realisierung gemeint)

Willa
31.08.2009, 13:19
Doch wie sehen die Algorithmen aus die dieses Signal anpassen
Das kannst du machen wie du willst. Dafür gibt es wohl zig Möglichkeiten. Ich habe mir etwas sehr sehr einfaches ausgedacht, was aber scheinbar vollkommen genügt:


if Gyro_Integral > ACC_Wert then
Gyro_Integral = Gyro_Integral - 1
end if
if Gyro_Integral < ACC_Wert then
Gyro_Integral = Gyro_Integral +1
end if

Anschliessend wird das Gyro_Integral mit dem Faktor 0.01 multipliziert, zu einem Integer konvertiert und in die Regelung eingespeist. Das Rauschen des ACCs kommt durch diesen kleinen Faktor überhaupt nicht bis zu den Motoren durch.
Man kann es wohl auch so machen:


Gyro_Integral = Gyro_Integral * 0.999 + ACC_Wert * 0.001

Ob das genauso schön funktioniert probiere ich evtl. irgendwann mal aus.

baensch
31.08.2009, 14:15
Okay vielen Dank

recycle
31.08.2009, 14:49
Anschliessend wird das Gyro_Integral mit dem Faktor 0.01 multipliziert, zu einem Integer konvertiert und in die Regelung eingespeist. Das Rauschen des ACCs kommt durch diesen kleinen Faktor überhaupt nicht bis zu den Motoren durch.

Die einzelnen Fragmente leuchten mir für sich als solche immer ien, das Gesamtbild wird dadurch aber irgendwie immer unklarer ;-)
Wenn du das bereinigte Gyrointegral als I-Anteil nimmst, was nimmst du für deine Regelung als P-Anteil?
Der absolute Messwert des Gyros, sprich die aktuelle Winkelgeschwindigkeit sagt doch nichts über die Lage aus.

Und wie gehts du damit um, dass der Gyro schnell und der ACC langsam ist?
Machst du einfach alle x-ms passend zur Geschwindigkeit des Gyros dieselbe Messung und Berechnung und ignorierst, dass du dabei vom langsamen ACC x-mal denselben (alten) Messwert verwendest?

Willa
31.08.2009, 15:02
Hi!
Also, diese Nomenklatur mit P, I und D ist mir absolut schleierhaft. Ich bin kein Regelungstechniker und möchte auch keiner werden, deswegen heisst bei mir "I-Anteil" einfach nur "Integral des Gyros". Der "P-Anteil" ist für mich das Signal, was aus dem Gyro rauskommt. Das ist zwar nicht korrekt, stört mich aber erstmal nicht.
Meine Regelung funktioniert nach diesem Schema (dabei steht "Gyro" jetzt für den Sensorwert den ich aus dem Gyro herausbekomme, "Knüppel" steht für die Stellung des entsprechenden Knüppels) In diesem Schema ist die Gyrointegralkorrektur nicht eingebaut. Diese würde beim Faktor "B" zum Einsatz kommen:

Modus1, Winkelgeschw. Steuerung:
A=Gyro-Knüppel
B=B+A
Motorsoll=A+B

Modus 2, Winkelsteuerung:
A=Gyro
B=B+A
C=B-Knüppel
Motorsoll=A+C

Wie würde ein Regelungstechniker diese Dinge benennen? Ich habe mal gehört, dass man evtl. den Schritt "Motorsoll = A+C" als Backstepping bezeichnet....


Und wie gehts du damit um, dass der Gyro schnell und der ACC langsam ist?
Da achte ich nicht drauf. Der Drift der Gyros ist extrem klein, der Korrekturfaktor dementsprechend auch. Da fällt sowas gar nicht ins Gewicht denke ich mal.


Machst du einfach alle x-ms passend zur Geschwindigkeit des Gyros dieselbe Messung und Berechnung und ignorierst, dass du dabei vom langsamen ACC x-mal denselben (alten) Messwert verwendest?
Leider liefert der ACC niemals zwei gleiche werte... Der rauscht zu stark (gefördert durch die Motorvibrationen). Abgefragt wird der Sensor genauso oft wie die Gyros. Das ergebnis wird gleich verrechnet.

baensch
31.08.2009, 15:16
Würde eurer Meinung nach so etwas funktionieren


Messanzahl++
if(Messanzahl==n)
{
Korrekturwert=Wert_Gyro - Wert_ACC;
Messanzahl=0;
}
Endwert = Wert_Gyro - Korrekturwert * Faktor

n ist eine bestimmte Anzahl an Messungen um die der ACC-Sensor langsemer ist.
Der Faktor wird sehr klein ausfallen (ca. 0.05).

Willa
31.08.2009, 15:45
Hi!
Aber der Acc ist ja nicht wirklich langsamer... Er ist tiefpass gefiltert. Eine Grenzfrequenz von z.B. 5 Hz bedeutet aber nicht, dass er nur mit 5 Hz neue Werte liefert. Er liefert die Werte genauso schnell wie vorher, nur sind Änderungen unter 5Hz um einen bestimmten Faktor abgeschwächt (weiss grad nicht wie der Faktor ist... 3 dB??). Aber die Änderungen sind immernoch da.

baensch
31.08.2009, 20:42
Das heißt ich kann sie immer gleichzeitig mit dem Gyroskope abfragen

Willa
31.08.2009, 21:05
Meiner Meinung nach ja. Und wenn du dir mein Projekt mal angesehen hast, stimmst du mir vielleicht zu. Es gibt höchstwahrscheinlich optimalere Lösungen als meine. Von Leuten erstellt, die eine Ausbildung in Elektronik oder Regelungstechnik oder Informatik haben. Nur wird man evtl. den Unterschied gar nicht merken können, denn meine Lösung funktioniert auch sehr gut.