Hallo, bin neu hier im Forum und grüße alle! Ich bin zurzeit dabei, mit Anderen ein Arduino gesteuertes U- Boot zum reinigen eines Aquariums zu bauen. Im Anhang befindet sich eine kurze Beschreibung zur Funktion. Das U- Boot soll durch Modellbaupumpen angetrieben werden und durch vier Modelbaupumpen die als Art Turbinen dienen abtauchen. Mein Part dieses Projekts ist, das U- boot anzutreiben und eine stabile Lage während der Tauchgänge zu gewährleisten. Da das Abtauchen wie gesagt durch diese 4 Pumpen (DC Motoren geschieht) und die Lage durch ein Beschleunigungssensor und Gyroscope erkennt wird und durch eine PID Steuerung geregelt werden soll, dachte ich an Quadrocopter (eig. gleiches Funktionsprinzip). Nun zu meinen Fragen: - Wie kann ich die Werte von den zwei 3 Achssensoren (Beschleunigungssensor/ Gyroscope) kombinieren --> damit ich die Lage bekomme - Muss ich die Werte filtern (Kalmanfilter) - Muss ich für jeden Motor ein PID Regler programmieren oder für jede Achse - Wie kann ich durch diese PID Ausgangswerte meine Motoren ansteuern (Plus/ X Konfiguration) Über Antworten oder Ideen würde ich mich sehr freuen!
:
Verschoben durch User
"Forum: Projekte & Code Hier könnt ihr eure Projekte, Schaltungen oder Codeschnipsel vorstellen und diskutieren. Bitte hier keine Fragen posten!"
Für eine Seaworld? Oder ein Goldfischglas...interessant aber für euch anspruchsvoll? Lage sollte doch mit genug Trägheit rel. unkritisch sein? Klaus.
Das Uboot soll für ein großes Aquarium sein! Natürlich ist es übertrieben, muss aber trotzdem gemacht werden da es die Vorgabe ist! Da das Uboot sehr schwer wird wird es wirklich sehr stabil im Wasser liegen. Die Regelung soll aber trotzdem gemacht werden, da das Projekt es verlangt. Hauptproblem oder Frage ist wie kann ich die Sensordaten matheatisch fusionieren, damit ich sie weiterverwenden kann?
Mit der Steuerung der Nutzfunktionen sollte ein Arduino ausreichend beschäftigt sein, die Lageregelung, wie sie Euch vorschwebt, gibt es als OpenSource in Soft-und Hardware, da ist die ganze Mathematik schon gelöst. Da die Quelltexte verfügbar sind, ideal, um es an die Bedingungen unter Wasser anzupassen. Stichworte sind: CC3D (ohne Druckerfassung), CC3d Evo (mit), Software OpenPilot/ Cleanflight. Gruß
Felix T. schrieb: > Hauptproblem oder Frage ist wie kann ich die Sensordaten matheatisch > fusionieren, So wie sonst auch Kalman Filter. Wobei ein Uboot automatisch sehr stabil im Wasser liegt, wenn der Schwerpunkt ordentlich gewählt wird. Dann kann es schon mal nicht rollen. Gieren fällt praktisch auch flach wegen dem hohen Wasserwiderstand und der Form Da man im Wasser wunderbar große Druckdifferenzen bei kleiner Höhenänderung hat könnte man durch einen Differenzdrucksensor und zwei Messpunkte vorne und hinten sehr genau feststellen ob das Boot horizontal liegt (nicken), bzw welchen Winkel es hat. Zumindest dann wenn man keinen höheren Wellengang im Aquarium hat. Insofern kann man sich die Gyros eigentlich sparen, bzw durch was besseres ersetzen. Felix T. schrieb: > Da das Uboot sehr schwer wird Es ist wohl genau so schwer wie das Gewicht des Wassers das es verdrängen soll.
Ich denke, dass Du eine globale Lageregelung verwenden musst, nicht pro Achse und schon garnicht pro Motor, denn dann hättest Du das Problem, dass unterschiedliche Regelkreise die gleichen Stellglieder (i.e. Motoren) ansteuern und die Regler potenziell gegeneinander arbeiten. Ehrlich gesagt fürchte ich auch, dass Du mit einer einfachen PID-Regelung nicht weit kommst. Ein Student bei uns hat vor etlichen Jahren einmal ein Inverses Pendel aufgebaut, das sich selbst aufschaukelt und dann balanciert. Das war auch ein Zustands- oder Modellbasierter Regler, wenn ich mich recht erinnere. Zum Thema Lagemessung findest Du hinreichend Literatur im Netz. Such mal nach dem Stichwort Gy80, oder z.B. hier. http://blog.bitify.co.uk/2013/12/pitch-roll-and-yaw-using-mpu6050.html. Ist glaube ich für den Rasperry, aber es geht ja um den Algorithmus.
Was soll das denn reinigen? Für Schwimmbäder gibt es Poolroboter, die machen das ganz ordentlich. Sowas wie die Roombas, nur für Unterwasser.
We all live in a yellow submarine! ;-) Im Ernst. So nett so eine U-Boot Spielerei sicher ist, aus PRAKTISCHER sich würde ich besser ein "Scheibenknutscher" bauen, spriche einen Roboter, der sich an der Scheibe ansaugt und diese dann reinigt, die Putzerfische lassen grüßen. Das dürfte deutlich besser machbar sein. Denn was soll sonst noch im Aquarium gereinigt werden? Steine, Pflanzen? Eher nicht, oder?
...ich denke es geht wohl um den "Bodensatz" (Fischkacke und Futterreste) der sich zwischen den Steinen absetzt. Das kann man normalerweise mit so einer Art Saugglocke saubermachen, was aber relativ nervig ist. Das U-Boot soll nun dieses Zeug aufwirbeln, damit es vom normalen Filter dann weggefiltert werden kann. Eigentlich eine ganz lustige Idee, ob es denn wirklich so funktioniert ist noch die Frage. Was ist denn mit Hindernissen wie Steinen, Pflanzen etc.?
Erst mal vielen Dank für die Antworten! Das ist Richtig, das Uboot dient zur Reinigung des Aquariumbodens (Aufwirbeln des Bodens). Ob es funktionieren wird, wird sich herraus stellen. Die ganze Idee klingt schon etwas übetrieben aber ist halt die Vorgabe für das Projekt und darum muss ich es auch so machen! Hindernisse müssen erkennt werden und wenn zum Beispiel der Akku leer ist muss es alleine in die Ladestation finden. Natürlich muss auch der gesamte Boden abgefahren werden. Dies sind aber die Aufgaben der Anderen. Die CC3d ist eine gute Idee! Hat damit jemand Erfahrung? Kann ich mit diesem Modul direkt die 4 Motoren ansteuern oder geschieht dies über den Arduino? Hab bei Youtube gute Beispiele gefunden, bei dem man die Sensordaten fusioniert. Also eine globale Lageregelung. An sowas hab ich eigentlich auch gedacht. Das ist ein Beispiel: https://www.youtube.com/watch?v=meNf1b1yY0Y Das die Regler gegeneinander arbeiten, könnte ein Problem werden, kommt wahrscheinlich darauf an ob sich die Achsen gegenseitig stark beeinflussen.
Mein Bruder hatte mal im Aquarium so einen Fisch, allerdings deutlich kleiner: https://de.wikipedia.org/wiki/Saugschmerlen der putzt auch die Scheiben.
Felix T. schrieb: > aber ist halt die Vorgabe für das Projekt Was ist das denn für ein Projekt? Praktikum, HTL, ...?
Wenn das U-Boot den 'Schmodder' am Grund aufwirbeln soll, und man eh schon in die Richtung Qadrokopter denkt, warum dann nicht einfach konsequent weiterdenken: Das U-Boot bewusst schwerer machen, als das Wasser das es verdrängt, dann müssen die vier Pumpen / Schiffsschrauben immer Auftrieb liefern, was einen nach unten gerichteten Wasserstrahl ergibt, der für das gewünschte Aufwirbeln sorgt. Wenn man jetzt noch Schiffsschrauben mit gegenläufigem Drehsinn findet, könnte man die Quadrokopter-Steuerung quasi 1:1 übernehmen, nur mit angepassten PID-Werten. Die Schrauben für den Vortrieb können dann auch noch entfallen, vorwärts geht es durch leichtes kippen des Gerätes. Die gegenläufigen schrauben sind wichtig, da durch die gegensinnigen Drehmomente die Drehung um die Gierachse überhaupt erst steuerbar wird. Mit freundlichen Grüßen - Martin Edit: Rechtschreibfehler
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.