PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Quadrokopter - Neigungssensor



quadeng
10.09.2010, 15:34
Hallo, Ich arbeite gerade an einer Diplomarbeit in der ich einen Quadrokopter entwickeln soll und weiß im Moment nicht welche Sensoren ich brauche um den Neigunswinkel festzustellen.
Bin derzeit vom ADXL345 begeistert, würde aber gerne von ein paar Fachleuten die sich schon etwas länger damit beschäftigen wissen ob das ausreicht und ob ich ein Gyroskop (Was genau macht das eigentlich?) auch noch brauche.
Ich hoffe wirklich mir kann jemand helfen

Bammel
10.09.2010, 16:40
Hallo,

ein gyroskop auch kurz gyro genannt ist ein sensor der die winkelgeschwindigkeit misst.

du brauchst für so ein projekt mindesten zwei beschleunigungssensoren und drei gyros. es gibt doch so viele projekt in dennen sowas beschrieben wird. ein nettes open source projekt ist die shrediquette ein tri-copter von willa.

http://shrediquette.blogspot.com
dort findest du ein paar infos dazu.

gruß, bammel

avr_mcu
10.09.2010, 17:16
Hallo quadeng,
ein ADXL345 allein wird für ein Flugobjekt nicht ausreichen.
ADXL345 -> misst translatorische Beschleunigung z.B. Beschleunigungen in X,Y,Z

Gyro -> misst Drehrate, also eine Winkeländerung/Drehung des Objekts (bspw. um die X,Y,Z Achse) pro Zeiteinheit

Vielleicht ist der Link hier interessant für dich (hier wird zur Erhöhung der Genauigkeit zusätzlich noch ein dreiachsiger Magnetfeldsensor verwendet).

http://www.watterott.com/de/9-Degrees-of-Freedom-Razor-IMU-AHRS-compatible

Grüße,
Stefan

quadeng
10.09.2010, 17:45
Erstmal Danke für die schnelle Antwort!
Also wenn ich das jetzt richtig verstanden habe brauche ich ein 3-Achsen Gyro und einen 3-Achsen Beschleunigungssensor. Mit dem Magnetfeldsensor erhöhe ich dann nur noch meine Genauigkeit.

Mit dieser Hardware wäre mein Quadrokopter dann theoretisch in der Lage den Nick-, Roll- und Gierwinkel festzustellen und über I2C einfach auszulesen.

Würde ich mir durch die 3. Achse (Gierachse) jetzt eigentlich einen Kompass ersparen?

Mein Ziel ist es nämlich dem Quadrokopter nur noch GPS-Koordinaten zu senden und dieser fliegt dann ganz autonom auf die qewünschte Stelle. Meine Frage ist nämlich die, ob mir diese Sensoren sagen können in welcher Richtung Norden liegt oder einfach nur einen relativen Winkel liefern.
Wär nämlich ziemlich blöd wenn das ganze darin endet dass er die ganze Zeit völlig Orientierungslos im Kreis fliegt...

Würd mich sehr über eine Bestätigung freuen

avr_mcu
10.09.2010, 18:14
1. Nein, bitte schau ins Datenblatt, was dir die entsprechenden Sensoren liefern und informiere dich bitte über Begriffe wie Position/Beschleunigung, Absolut-/Relativmessung, sampling Rate, Rauschen, Drift.
2. Auch hier hilft ein Blick ins Datenblatt -> 3-Axis Digital _Compass_ IC
3. warum dann kein GPS-Modul im Quadrokopter verwenden ?

MfG,
S.

Bammel
10.09.2010, 19:21
zum navigieren mit gps ist aber auch ein kompass von nöten also wäre das ideal!

Besserwessi
10.09.2010, 21:01
Die Gyros liefern die Winkelbeschleunigung und duch Integrieren kann man daraus den Winkel bestimmen. Allerdings hat man bei den kleinen Gyros relativ viel drift und für langfristige Orientierung braucht man schon so etwas wie einen Kompass.
Mit passenden Flugmanöver könnte man notfalls auch mit dem GPS Signal die Orientierung bestimmen, das ist aber schon aufwendig, und braucht die Bewegung. So aufwendig und schwer ist ein Elektronischer Kompass ja auch wieder nicht.

Elexerion
10.09.2010, 23:08
Also:

Das ist sportlich! Einen Qudrocopter in einem halben Jahr zu entwickeln.

Du brauchst:

Gyros
Acceleratoren
Kompass
GPS

Da der Qudrocopter eher auf der Stelle steht, als ständig umherzufliegen, sind Accelaratoren für die horizontale Ausrichtung meist genug. Wenn Du sicher gehen willst, musst Du noch Thermopiles dazu nehmen (Copilot-System), das funzt aber nur, wenn Du draußen fliegst und eine gewisse Höhe einnimmst.

Die Daten auszulesen ist mit I2C ganz einfach, das stimmt.
ABER: Alle MEMS haben ein großes Problem: Sie driften, das liegt an der Temperatur im Chip. Einige haben daher eine Driftkompensation, die mehr schlecht als recht funktioniert. Man muss also alle Signale filtern. Dabei muss man aufpassen, brauchbare Signale zu erhalten, die nicht überfiltert, also zu träge, und nicht unterfiltert, also zu zappelig sind. Da kommen gerne die Kalmanfilter ins Spiel. Meist wird aber nur ein PI-Filter eingesetzt. Die Parameter einzustellen ist hier nicht ganz einfach.
Acceleratoren sind empfindlich und reagieren auf Beschleunigung genau so wie auf Gravitation, was sie prädestiniert für die horizontalausrichtung der Fuhre. Aber sie reagieren eben auch auf Flugbeschleunigungen, was sie einschränkt, um eben das zu tun. Daher braucht man auch Gyros, um Rotationen der kiste zu messen. Alles stark fehlerbehaftet. Die Gyros funktionieren in einer Drehrichtung für ein paar Sekunden ganz gut, dann driften die weg und es summieren sich die Drehratenfehler durch Messungenauigkeiten. Das kann man dann nur mit einem Kompass kompensieren, der aber unbedingt Neigunsunabhängig funktionieren muss, sonst spinnt auch der. Und das wird erreicht durch, wir ahnen es schon, gyros und Acceleratoren! Die ungenau sind usw. usw.
Kalman sorgt dafür, dass es alles trotzdem passt. Aber er ist auch kein Allheilmittel.
Das Thema ist aber hochspannend und wird Dir den Schlaf rauben.
Zuerst sieht alles ganz klar aus, wenn aber so viele Sensoren zusammenspielen sollen, wird es echt komplex.

Ach ja: Damit die Kiste nicht sofort im Sand endet, solltest Du noch einen Ultraschallentfernungsmesser in das System integrieren. Das ist am leichtesten zu programmieren.

Man, was für eine Materie. Einfach wird das nicht!

Ich wünsche Dir aber viel Spaß trotzdem.

Gruss

quadeng
11.09.2010, 09:58
Danke für die zahlreichen Antworten, das war sehr Hilfreich
Ich habe zwar gewusst dass es sehr schwer werden wird einen Quadrokopter zu entwickeln, hätte aber nie gedacht dass es schon bei der Sensorenauswahl und der Sensordaten-Erfassung so viel zu wissen gibt.

Einen GPS-Sensor und Abstandssensoren habe ich bereits und die funktionieren auch, was allerdings wohl der einfachere Teil war.

Die Acceleratoren geben mir, wenn ich schwebe, einen 2D-Vektor (bzw. 3D) richtung Boden, wodurch ich Wind und sonstige einflüsse kompensieren kann.
Während des Fluges brauche ich dann zusätzlich ein 3Achsen-Gyro. Dies misst die Winkelgeschwindigkeit (die Änderung, jetzt hab ichs verstanden) was ich durch Integration in einen absoluten Winkel umwandeln kann.

Zum navigieren mit dem GPS-Modul benötigt man dann noch einen einfachen Kompass der aber so neigungskompensiert wie möglich sein muss was mit Hilfe eines Magnetfeldsensors (wieder 3 Achsen) geschieht.

Das heißt: wenn ich diese Bauteile habe ist eine Navigation möglich, solange ich diese vielzahl an Daten nur richtig auswerte (Was gottseidank mein Kollege machen wird).
Ich denke soweit habe ich es verstanden, wenn ich mich doch getäuscht haben sollte korrigiert mich bitte wieder.

Gruss und nochmals Danke

avr_mcu
11.09.2010, 10:05
Vllt. wäre ein Luftdruck-Sensor für die Höhenstabilisierung interessant.


Man, was für eine Materie.

Von einer Diplomarbeit kan man erwarten, dass sie den wiss. Horizont
(zumindest ein bischen) erweitert. Darf ich fragen, wo hierbei der Fokus
liegt (Forsch nachgefragt: Quadro-/Hexa-/Oktokopter gibts schon viele und auch das Kalman-Filter und angebundene (schwenkbare) Kameras sind prinzipiell bekannt; in welche Richtung geht deine Entwicklung ?) ?

quadeng
11.09.2010, 10:35
Seit ende Juni arbeite ich zusamen mit 2 Kollegen an dem Quadrokopter.
Wir gehen zusamen in eine HTL mit den Zwei Elektronik und dem schwerpunkt Technischer Informatik und wollten alle 3 unbedingt einen Roboter bauen.
Da es in unserer Schule jedoch noch nie einen Flugrobotoer gab, haben wir uns dann für einen Quadrokopter entschieden (leichter Steuerbar als ein Tricopter und billiger als einer mit noch mehr Rotoren).
Unser Hauptgebiet ist die Softwareprogrammierung was wir auf einen Cortex M3 mittels C machen. Dabei verwenden wir auch gleich ein Echtzeit-Betriebssystem.
Mein Teil ist die Sensorauswahl und die Datenübertragung zwischen verschiedenen Prozessen und den Sensoren.
Auf jedenfall wartet viel Arbeit auf uns und wir wollen zumindest dieses Jahr noch einen Flugfähigen Quadrokopter entewickeln an dem zukünftige Schüler weiterarbeiten können.
Bis jetzt habe ich meinen Wissenshorizon auf jeden Fall schon erweitert,
Gruß Jakob

Elexerion
11.09.2010, 12:28
ja, genau, das viel mir auch gestern im Bett noch ein: Ein Drucksensor zum Abgleich mit den GPS-Daten für die Flughöhe ist eine gute Idee!

Die Gyros liefern eine Drehrate, aber das hast Du schon richtig erkannt mit der Integration.

Übrigens: Du brauchst 6 Acceleratoren, denn die Dinge funktionieren nur in eine Richtung, nach unten sozusagen. sobald man sie auf den Kopf dreht, liegt die Masse, die an der Feder hängt (symolisch), auf und mißt nix mehr. Nur so zur Info. Für die drei Achsen braucht man also für den normalen Horizontalflug ein Set und für den Überkopfflug (nur im Notfall) ein zweites Set von Acceleratoren. Die haben übrigens verschiedene Meßbereiche, z.B. von 0-2g oder 0-4 oder 0-8 g. Man sollte sich den richtigen aussuchen. Es wird von ELV ein fertig aufgebauter 3-Achs-Acc mit I2C für knapp 6,- €!!! angeboten. Der hat auch noch einen einstellbaren Meßbereich in den eben von mir genannten g-Bereichen und kann zwischen 2.8 und 6 Volt (oder so) betrieben werden!. Schnäppchen!
Die Gyros sollten auch den richtigen, beim Copter vorkommenden Meßbereich haben, sonst verschenkt man Auflösung (z.B. Sparkfun/USA oder Watterott).

Sonst fällt mir momentan nichts wichtiges mehr ein. Evtl. noch was für die Software: praktisch ist eine Positionsdatenaufzeichnung, die kann man dann später in Google-Earth eingeben und die Flugbahn darstellen, die man abgeflogen hat...

Gruss

Edit: Ach ja, wenn das Ding auch indoor fliegen soll, mußt Du einen entsprechend starken GPS-Empfänger haben. Sowas gibt es, ich arbeite auch mit einem solchen. Besser und eine wirklich witzige Anwendung, gerade wenn es um die Weiterentwicklung der Kiste im laufe der Zeit geht, ist, Ihn rundherum mit Distanzsensoren auszustatten und Indoor zu fliegen. Dann kann man z.B. Labyrinth-Alghoritmen ausprobieren. Das ist wirklich spektakulär! und sehr spannend, wenn so ein Ding ohne Pilot durch die Gegend gleitet und den Weg sucht...

Richard
11.09.2010, 12:31
Ich möchte noch einmal Wiila erwähnen, der hat auch eine
gute Anleitung zu selbstbau geschrieben!

http://shrediquette.blogspot.com

Gruß Richard

avr_mcu
11.09.2010, 13:11
Vielleicht hilft das MikroKopter-Projekt (Quad) von www.ulrichradig.de
weiter. Das ist gut mit Bauplänen etc. dokumentiert und eine
ARM Flight Control ist auch skizziert.
Grüße,
Stefan

PS.: Beim ADXL345 besser SPI nehmen wie für höhere Datenraten im Datenblatt empfohlen.

skydiver
23.09.2010, 22:09
Hallo Elexerion,

nach Deiner Ausführung...


Also:

Das ist sportlich! Einen Qudrocopter in einem halben Jahr zu entwickeln.

Du brauchst:

Gyros
Acceleratoren
Kompass
GPS

Da der Qudrocopter eher auf der Stelle steht, als ständig umherzufliegen, sind Accelaratoren für die horizontale Ausrichtung meist genug. Wenn Du sicher gehen willst, musst Du noch Thermopiles dazu nehmen (Copilot-System), das funzt aber nur, wenn Du draußen fliegst und eine gewisse Höhe einnimmst.

Die Daten auszulesen ist mit I2C ganz einfach, das stimmt.
ABER: Alle MEMS haben ein großes Problem: Sie driften, das liegt an der Temperatur im Chip. Einige haben daher eine Driftkompensation, die mehr schlecht als recht funktioniert. Man muss also alle Signale filtern. Dabei muss man aufpassen, brauchbare Signale zu erhalten, die nicht überfiltert, also zu träge, und nicht unterfiltert, also zu zappelig sind. Da kommen gerne die Kalmanfilter ins Spiel. Meist wird aber nur ein PI-Filter eingesetzt. Die Parameter einzustellen ist hier nicht ganz einfach.
Acceleratoren sind empfindlich und reagieren auf Beschleunigung genau so wie auf Gravitation, was sie prädestiniert für die horizontalausrichtung der Fuhre. Aber sie reagieren eben auch auf Flugbeschleunigungen, was sie einschränkt, um eben das zu tun. Daher braucht man auch Gyros, um Rotationen der kiste zu messen. Alles stark fehlerbehaftet. Die Gyros funktionieren in einer Drehrichtung für ein paar Sekunden ganz gut, dann driften die weg und es summieren sich die Drehratenfehler durch Messungenauigkeiten. Das kann man dann nur mit einem Kompass kompensieren, der aber unbedingt Neigunsunabhängig funktionieren muss, sonst spinnt auch der. Und das wird erreicht durch, wir ahnen es schon, gyros und Acceleratoren! Die ungenau sind usw. usw.
Kalman sorgt dafür, dass es alles trotzdem passt. Aber er ist auch kein Allheilmittel.
Das Thema ist aber hochspannend und wird Dir den Schlaf rauben.
Zuerst sieht alles ganz klar aus, wenn aber so viele Sensoren zusammenspielen sollen, wird es echt komplex.

Ach ja: Damit die Kiste nicht sofort im Sand endet, solltest Du noch einen Ultraschallentfernungsmesser in das System integrieren. Das ist am leichtesten zu programmieren.

...wundert es mich, dass Quadros überhaupt fliegen ;-)

Das wurde von der Hummel auch schon behauptet:
http://www.zeit.de/stimmts/1998/1998_19_stimmts
Zum Glück wußte die davon aber nix...

Für die Datenfusion gibt es zahlreiche Lösungen. Der KF oder EKF ist da nur eine Möglichkeit.
Dass es auch mit einem simplen Komplementärfilter sehr gut funktioniert beweist die tausendfach verkaufte FlightCtrl von HiSystems:
www.mikrokopter.de

Der Großteil der Software ist OpenSource und dürfte für eigene Projekte als erprobte Grundlage dienen...

Gruß
Rainer

Richard
24.09.2010, 00:39
Hallo, Ich arbeite gerade an einer Diplomarbeit in der ich einen Quadrokopter entwickeln soll und weiß im Moment nicht welche Sensoren ich brauche um den Neigunswinkel festzustellen.
Bin derzeit vom ADXL345 begeistert, würde aber gerne von ein paar Fachleuten die sich schon etwas länger damit beschäftigen wissen ob das ausreicht und ob ich ein Gyroskop (Was genau macht das eigentlich?) auch noch brauche.
Ich hoffe wirklich mir kann jemand helfen

https://www.roboternetz.de/phpBB2/viewtopic.php?t=44744

Da findest Du alles was Du brauchst und noch viel mehr!

Gruß Richard