Stoppen der Drift im Quadrocopter

13

Ich werde irgendwann eine 4-Propeller-Quadrocopter-Drohne bauen. Ich möchte das Fliegen relativ einfach machen, indem ich es dazu bringe, immer noch zu schweben, wenn die Bedienelemente nicht berührt werden.

Kann jemand Informationen darüber geben, wie ich den Quadrotor in der Luft halten kann? Ich dachte an Beschleunigungsmesser zur Messung von Drift und Roll / Nick / Gier, aber sie sind nicht empfindlich genug, um sehr langsame Drift zu erkennen, zum Beispiel aufgrund einer leichten Brise. Ist das GPS genau genug, um die Abweichung auf der 10-cm-Skala auszugleichen (dh eine Abweichung von 10 cm (oder weniger?) Von der ursprünglichen Position der Drohne zu erkennen)?

Bojangles
quelle
Wenn Sie gerne Roboter bauen, vergessen Sie nicht, den Robotics Proposal
Rocketmagnet

Antworten:

16

Ich denke, dass Sie eine Kombination von Sensoren verwenden möchten. Die Beschleunigungsmesser und Gyroskope können starke Brisen ausgleichen. Sie können dann GPS verwenden, um die längerfristige Abweichung (oder Verzerrung, wie es manchmal genannt wird) auszugleichen. Ich denke, dass die Kombination dieser beiden Sensoren in einer Art Filter (wahrscheinlich ein Kalman) Ihre Positionsdrift minimieren wird.

GPS allein ist jedoch nicht genau genug. Eine alternative Herangehensweise an den Kalman-Filter (der etwas mathelastig sein kann) ist die Verwendung des DCM-Algorithmus von mathelastig werden DIYdrones . Bisher scheint es sehr erfolgreich zu sein, dies zu nutzen.

Schließlich verwendet der Quadrotor der Parrot-Drohne eine nach unten gerichtete 60-fps-Kamera, um die Drift auszugleichen. Es schaut nach unten und extrahiert Merkmale aus dem Boden darunter. Anschließend verwendet es eine Art visuelle Kilometerzähler (ich gehe von einem optischen Flussalgorithmus aus), um zu bestimmen, wie weit der Quadrotor gedriftet ist. Ich glaube, dass dies nur in geringen Höhen auf dem Papagei funktioniert, aber ich sehe keinen Grund, warum es nicht auf eine höhere Höhe ausgedehnt werden konnte.

mjcarroll
quelle
Vielen Dank! Ich denke, ich werde mich für die Downfacing-Kamera-Option entscheiden, da ich die Drohne über einen LPC1768 mit Strom versorgen werde. Das ist genug Rechenleistung, um einfache Zeilenerkennung bei 640x480 durchzuführen, oder? Vielen Dank für Ihre alternative Lösung für die Verwendung von Gyroskopen und GPS für die Langzeitdrift. Kennen Sie auch Sensoren, die eine Drift erfassen können?
Bojangles
1
Zusätzlich zur IMU mit 6 Freiheitsgraden habe ich gehört, dass Menschen Magnetometer verwenden, um die Langzeitdrift durch Wahrnehmung von Änderungen im Erdmagnetfeld zu bestimmen. Ich weiß nicht, dass dies unbedingt eine gute Option ist, da das Feld bei Hochstromgeräten (wie 4 Motoren) schnell schwanken kann und sich nicht linear ändert.
mjcarroll
3
Das Problem mit der Kamera in höheren Lagen besteht darin, dass sehr kleine Rollbewegungen mit zunehmender Höhe zu immer größeren Bildverschiebungen führen, es sei denn, die Kamera befindet sich auf einer selbstnivellierenden Halterung.
mikeselectricstuff
@mikeselectricstuff - Konnten Sie den Bildverarbeitungsalgorithmus nicht basierend auf der Höhe anpassen?
mjh2007
1
@mjh Ich denke, dass das Problem am besten in einem Beispiel gesehen wird. In einer Höhe von 50 Fuß bewirkt eine Drehung oder Neigung von 5 Grad (ziemlich typisch für die Bewegung in X- oder Y-Richtung auf einem Quadrotor), dass sich Bodeneigenschaften bewegen (Bräune (5 Grad) * 50 Fuß) = 4,25 Fuß (grobe Rechnung) ). Selbst wenn sich der Quadrotor nicht bewegt, verschieben sich alle Bodenmerkmale um 4 Fuß. Dies könnte kompensiert werden, wird jedoch mit Auflösungs- und Berechnungseinschränkungen schwierig.
mjcarroll
3

GPS ist nicht genau genug. Beschleunigungsmesser können nur die Beschleunigung messen, keine konstante Drift.

Vielleicht ein lokalisiertes Ortungssystem mit Beacons und Trilateration oder so?

Vielleicht billige Kameras, um Drift relativ zum Boden oder anderen stationären Objekten zu erkennen? Mit den Gyroskopen können Sie Rotationen aufheben und anschließend eine Kreuzkorrelation zwischen den nachfolgenden Bildern herstellen, um die Drift relativ zum Boden zu erkennen, wie dies mit einer optischen Maus möglich ist.

Endolith
quelle
3

Wenn ich dies mit einer nach unten gerichteten Kamera machen würde, wäre das erste, was ich möchte, eine hohe Leistung und eine relativ niedrige Auflösung (dies ist ein Sensor, ich interessiere mich nicht wirklich für den Eingang der Kamera) und somit für die Kamera, die ich hätte Verwendung hierfür wäre eine optische Maus: Sie haben sehr schnelle Kameras mit niedriger Auflösung. Ich bin mir sicher, dass Sie nach einigem Hin und Her eine Linsenanordnung finden könnten, mit der Sie zwischen den Merkmalen auf dem Boden unterscheiden können, und dann einen Algorithmus zum Extrahieren des optischen Flusses verwenden könnten, um diese Eingabe zu verarbeiten.

Choscura
quelle
Ich bezweifle, dass Sie enorme Aktualisierungsraten benötigen. Die relativ langsame Geschwindigkeit eines Quadrotors und seine Reaktionszeit machen ihn nicht wirklich passend.
Nick T
Danke für die Alternativlösung Choscura. Ich werde auf jeden Fall die Verwendung einer optischen Maus untersuchen - ich brauche auch nicht den Kamerateil einer Kamera ;-) Das einzige Problem, das ich sehen kann, ist, dass der Differenzalgorithmus möglicherweise nicht so gut funktioniert, wenn das Bild unscharf ist . Habe ich recht?
Bojangles