Archiv verlassen und diese Seite im Standarddesign anzeigen : Ball-and-Plate Plattform (aka Kugelwippe)
Urinstein
12.06.2017, 17:56
Mahlzeit,
ich bin mehr oder weniger durch Zufall über dieses Board gestolpert, dachte ich melde mich mal an um ein paar interessante Projekte zu verfolgen usw.
Um einen Anfang zu machen gibt es hier erstmal den aktuellen Stand meines derzeitigen Bastelprojekts: eine Kugelwippe, die ich im Zuge meiner Masterarbeit baue.
http://abload.de/img/1497276762887f1u92.png
Das Ziel
Balancieren einer Kugel auf einer beweglichen Ebene
Das Werkzeug
Ein resistiver Touchsensor für die Positionsermittlung
Drei Modellbauservos als Stellglieder
Ein Arduino Due als Controller
Zwei PID-Regler für die Positions- bzw. Bahnregelung
Das Ergebnis
https://www.youtube.com/watch?v=ngT3sF_eBrg&feature=youtu.be
Work-in-Progress Videos
Video 01 (https://www.youtube.com/watch?v=lpaK5EqFRaA)
P-Regler. Erste Gehversuche, Test der Kinematik. Balancieren der Kugel mit reinem P-Regler nicht möglich.
Video 02 (https://www.youtube.com/watch?v=SEFt4bv-56w)
PD-Regler. Balancieren der Kugel möglich (entsprechende Parametrisierung vorausgesetzt). Bleibende Regeldifferenz, Kugel kommt abseits der Mittelposition zum stehen.
Video 03 (https://www.youtube.com/watch?v=n-ezBTAm4t8)
PID-Regler vs. konstante Störgröße.
Video 04 (https://www.youtube.com/watch?v=zaJpuwIdvSQ)
Manuelle Sollwertvorgabe
Respekt, Hut ab. Das ist mal ein richtig schönes Projekt, auch was fürs Auge und was zum spielen. Welche Servos hast du verwendet und welchen Touchsensor? Die Führung der Platte gegen verdrehen erfolgt nur über die Servogelenke unten? Gruß, Michael
Urinstein
13.06.2017, 15:05
Hallo Michael,
freut mich wenn es dir gefällt.
Der Sensor müsste dieser hier sein: http://de.rs-online.com/web/p/touchscreen-sensoren/7105238/
Servos sind HiTec HS-5485HB. Rückblickend hätte ich aber eher was günstiges vom Chinamann nehmen sollen, die machen auch was sie sollen für einen Bruchteil der Kosten (z.B. die TowerPro Mg996r für 4€ das Stück).
Und ja, die Platte ist nur über die drei Servos gelagert. Das hat den Vorteil dass ich die Platte nicht nur kippen, sondern auch in der Höhe verstellen kann. Den zusätzlichen Freiheitsgrad nutze ich dafür, die Platte nicht um den Mittelpunkt, sondern um den Kontaktpunkt zwischen Kugel und Platte rotieren zu lassen (dieser ist ja dank Messung zu jedem Zeitpunkt bekannt).
gruß Tom
Urinstein
14.10.2017, 16:43
Ich aktualisiere hier nochmal mit dem finalen Stand des Projekts.
https://www.youtube.com/watch?v=ngT3sF_eBrg&feature=youtu.be
oberallgeier
23.10.2017, 11:17
Hallo Tom,
ja, das ist mal wirklich viel Grips ein einem Projekt. Alle Achtung!
.. Rückblickend hätte ich aber eher was günstiges vom Chinamann nehmen sollen ..Ist nicht auch der Controller ein bisschen groß? Aber wenn ich die Zeichnung richtig lese, dann hast Du nen arduino genommen!? Masterarbeit? Regelungstechnik oder ETechnik oder was genau?
.. Zwei PID-Regler für die Positions- bzw. Bahnregelung ..Hmmmm - das ist ein Teil der Software ?
Die Zeichnung zeigt einen Knopf - Einstellung für beide Linearpotis oder wofür?
Wie hoch sind denn ungefähr die Gesamtkosten und wieviel Arbeitstunden liegen drin (einschließlich Irrwegen und Zusatztests wie P, PD und so)? Und, nur mal so, wie lang (Stunden) und dick (Seiten) ist die zugehörige schriftliche Arbeit?
Sehr hübsche Präsentation!
Urinstein
23.10.2017, 15:19
Hallo oberallgeier,
zuerstmal Danke für das Lob.
Ist nicht auch der Controller ein bisschen groß? Aber wenn ich die Zeichnung richtig lese, dann hast Du nen arduino genommen!?
Ursprünglich ein Arduino Mega 2560, später dann auf einen leistungsstärkeren Arduino Due geupgradet. Ob der Controller überdimensioniert ist ist schwer zu sagen. Ich bin kein Experte was Programmierung und Umgang mit Controllern angeht. Durch die Rechenleistung und den großen Speicher des Due hatte ich allerdings die Möglichkeit auch mal quick & dirty zu programmieren, ohne mir ständig Gedanken um die Rechenzeitoptimierung machen zu müssen.
Masterarbeit? Regelungstechnik oder ETechnik oder was genau?
Maschinenbau, Labor für Regelungstechnik.
.. Zwei PID-Regler für die Positions- bzw. Bahnregelung ..
Hmmmm - das ist ein Teil der Software ?
Ja, die Regler sind Teil der Software.
Die Zeichnung zeigt einen Knopf - Einstellung für beide Linearpotis oder wofür?
Richtig, die Zeichnung zeigt zwei Linearpotentiometer an der Rückseite und einen Drehstufenschalter auf der Vorderseite. Später wurde noch der Zweiachs-Analogstick angeschlossen.
Der Drehstufenschalter dient zur Auswahl des Betriebsmodus, die Steuerung läuft über den Analogstick (abhängig vom eingestellten Betriebsmodus): Im "Normalbetrieb" kann die Kugelposition in X- und Y-Richtung eingestellt werden, beim Eindrücken des Sticks werden Führungssprünge ausgeführt. Bei den Kreis- und Bahnbewegungen steuert man über den Stick Geschwindigkeit, Radius und Richtungswechsel. Die Linearpotentiometer sind ein Relikt aus der Planungsphase und erfüllen keine Funktion mehr, aber bei Bedienelementen ist es wie mit Kondomen: Haben und nicht brauchen ist immer besser als brauchen und nicht haben ;)
Wie hoch sind denn ungefähr die Gesamtkosten
Grob überschlagen:
- Touchpanel 80€
- Servomotoren 3x25€
- Servoarme (Aluminium) 3x10€
- Material und Fertigung Acrylglasteile 36€
- Material und Fertigung Aluminiumteile 0€ (Hauseigene Werkstatt)
- Arduino Due 40€
- Diverse Kleinteile beim großen C 70€
- Diverse Kugeln beim örtlichen Flipperautomatenbastler 10€
Insgesamt also ca. 350€, angepeilte Obergrenze waren 500€. Sofern Lieferzeiten keine Rolle spielen dürfte es auch locker für die Hälfte möglich sein: ein vergleichbares Touchpanel gibts bei Aliexpress für 40€, Servomotoren unter 5€, ebenso die Servoarme, Arduino Klone etc...
wieviel Arbeitstunden liegen drin (einschließlich Irrwegen und Zusatztests wie P, PD und so)? Und, nur mal so, wie lang (Stunden) und dick (Seiten) ist die zugehörige schriftliche Arbeit?
Schwer zu sagen. Einarbeitung, Planung und die komplette Konstruktion waren etwa 6 Wochen, danach etwas Leerlauf (Fertigung und warten auf Kaufteile). Funktionstüchtig war der Aufbau nach geschätzten 3 Monaten, wobei danach noch viel Detailarbeit anstand. Arbeitsaufwand insgesamt 6 Monate in Studenten-Vollzeit ("ich hab keinen Bock mehr, ich geh' jetzt ein Bier trinken"), die zugehörige Abschlussarbeit hat etwa 50 Seiten.
oberallgeier
23.10.2017, 16:11
Danke Tom für die umfassende Aufklärung. Mich freut es, wenn Maschinenbauer so richtig über den Rand schauen (dürfen). Auch der hübsch große Controller ist ganz nach meinem Geschmack - weil ich sehr dazu neige, reichlich Testsoftware on board zu haben. Da bleibt manchmal reichlich viel "totes Meer" im Code.
Fünfzig Seiten? Prima, dann müssen Prof und Assi nicht sooo viel lesen.
.. 6 Monate in Studenten-Vollzeit ("ich hab keinen Bock mehr, ich geh' jetzt ein Bier trinken") ..Solche Auszeiten sind nie vergeblich, auch nicht im Erwerbsleben (jedenfalls bei mir). Immerhin hat Newton seine Apfelgravitation (http://www.spiegel.de/wissenschaft/natur/historisches-manuskript-der-apfel-des-isaac-newton-a-672494.html) vermutlich beim Müssiggang entdeckt - zumindest der Sage nach (http://www1.wdr.de/stichtag/stichtag5192.html). Das geschieht heute weniger, dafür werden heute Supernovae beim akademischen Pizzaessen entdeckt (http://www.focus.de/wissen/weltraum/heller-stern-beim-pizzaessen-britische-studenten-entdecken-supernova-in-der-zigarrengalaxie_id_3567384.html) (und ob DAS ohne Bier abging ? ? ?). Viel Erfolg jedenfalls weiterhin.
Nachtrag: meine wenigen arduinoClones quarze ich um (https://www.roboternetz.de/community/threads/69322-Quarz-20-MHz-1mm-x-3-mm-f%C3%BCr-Nanoclone-gesucht) - 20 MHz sind 125 % von 16 MHz.
Makkeysn
19.06.2018, 00:39
Hallo Tom,
ich bin selbst Maschinenbauer und entwickel gerade ebenfalls solch eine Plattform, allerdings als Bachelorarbeit.
Die Konstruktion ist soweit fertig, jetzt fehlt "nur" noch der Regler und die Programmierung dessen auf einem Arduino Uno.
Da ich lediglich ein Semester lang Regelungstechnik hatte, bin ich gerade etwas aufgeschmissen, wie ich das alles umgesetzt bekomme.
Ist deine Masterarbeit denn öffentlich einsehbar? Vielleicht finde ich ja einen hilfreichen Tipp, der mir aktuell weiter hilft!
Hast du den Regler mit MATLAB/Simulink ausgelegt?
Danke schon mal vorab für deine Hilfe!
Viele Grüße,
Markus
Urinstein
24.06.2018, 15:01
Hallo Markus,
möchtest du uns vielleicht etwas von deinem aktuellen Stand präsentieren?
Die Abschlussarbeit kann ich dir gerne zukommen lassen. Dafür benötige ich deine Mailadresse, du bekommst dann einen Dropboxlink.
Wie man Quellen referenziert hast du hoffentlich schon gelernt, falls du dich denn daraus bedienst.
Gruß Tom
Makkeysn
25.06.2018, 12:22
Hallo Tom,
vielen, lieben Dank für deine Hilfsbereitschaft!
Der aktuelle Stand ist der, dass ich den ersten Prototypen meiner instabilen Plattform konstruktiv fertig gestellt habe. Es fehlt also noch der Entwurf eines Reglers und die Implementierung dessen auf dem Arduino.
Ich hänge diesem Post mal ein paar Fotos an, die den momentanen Stand des Projekts zeigen.
Da ich die Arbeit selbst finanzieren muss, hatte ich auf möglichst günstige Bauteile aus China zurück gegriffen. Diese bereiten mir im Moment aber sehr viele Probleme (Aufschwingen der Plattform durch viel Spiel in den Gelenken etc.).
Zu meinem Bachground:
Ich studiere Maschinenbau, mit dem Schwerpunkt Mechatronik. Bin also kein "gelernter" Regelungstechniker, weswegen mir ein kleiner Denkanstoß in diesen Bereich bestimmt weiter helfen würde :)
Daher nehme ich dein Angebot gerne an und schicke dir meine Mailadresse per PN.
Die Quellenangabe ist selbstverständlich und würde meinerseits eingefügt werden, wenn ich auf deine Arbeit zurückgreife.
Danke schon mal vorab für deine Unterstützung!
Viele Grüße,
Markus
Urinstein
25.06.2018, 15:11
Das sieht doch schonmal ganz ordentlich aus. Den Link zur Dropbox solltest du bekommen haben.
Viel Erfolg noch bei deiner Abschlussarbeit.
Makkeysn
25.06.2018, 22:32
Hab ich bekommen, danke dir. Großen Respekt an dich für diese, wie ich finde sehr gelungene Abschlussarbeit!
Urinstein
26.06.2018, 10:59
Falls ich dir noch ein paar Tips mit auf den Weg geben darf:
Versuche zuerst mal nur den Sensor für die Kugelposition in Betrieb zu nehmen, den Rest kannst du hinten anstellen. Dazu bietet es sich an ein Koordinatensystem zu erstellen und auszudrucken, damit du ein paar Referenzpunkte hast um die Messungen zu validieren und den Sensor zu kalibrieren. Wie du siehst habe ich mich letztendlich dazu entschieden mein KS auf Klarsichtfolie zu drucken und in den fertigen Aufbau zu integrieren. Bild hängt unten an. Meinen Code für den Sensor kannst du übrigens nicht verwenden, der funktioniert nur für 4-/8-Wire Sensoren, deiner ist soweit ich das erkennen kann ein 5-Wire.
Wenn der Sensor läuft geht es weiter mit einem Code um den Plattenneigungswinkel zu steuern. Da du deine Neigungswinkel unabhängig voneinander durch zwei Servos steuerst sollte das deutlich einfacher laufen als in meiner Arbeit.
Wenn o.g. Punkte erfüllt sind ist der Regler auch kein Hexenwerk mehr, der bekommt die Regeldifferenz aus Sollwert und der Positionsmessung aus Punkt 1 als Eingangsgröße und liefert dir den Plattenneigungswinkel für Punkt 2 als Ausgangsgröße. Das ganze zweimal, jeweils für die X- und die Y-Richtung. Ob du dir den Regler selber schreibst oder eine Library verwendest bleibt dir überlassen.
https://abload.de/thumb/img_20170329_101522c3kf7.jpg (http://abload.de/image.php?img=img_20170329_101522c3kf7.jpg) https://abload.de/thumb/img_20170712_172804kpkz5.jpg (http://abload.de/image.php?img=img_20170712_172804kpkz5.jpg)
Makkeysn
03.07.2018, 21:27
Hey Tom,
vielen Dank dir für die Tipps...sind auf jeden Fall sehr hilfreich :)
Was mich noch interessieren würde:
Wie sah denn deine Vorrichtung zur Servokalibrierung aus?
Ich habe mir nämlich auch ewig Gedanken darüber gemacht, wie ich ich die Kalibrierung am besten durchführe, habe aber bis dato nur nach Augenmaß kalibriert.
Das Andere was ich mich gefragt habe...ist denn der Abgriff der Spannung U_pot unbedingt notwendig?
Ist es nicht möglich, das ganze so zu lösen, dass wenn ich dem Servo einen Soll-Winkel vorgebe, der Ist-Winkel nach einer kurzen Verzögerung (PT2) gleich der Soll-Winkel ist?
Ich muss dazu sagen, noch bin ich regelungstechnisch noch nicht so fit...sollte ich da was falsch verstehen, nimm's mir nicht übel ;)
Gruß Markus
Urinstein
04.07.2018, 20:36
Hallo Makkeysn,
Wie sah denn deine Vorrichtung zur Servokalibrierung aus?
so (http://abload.de/img/img_20170607_103046wyst6.jpg)
Das Andere was ich mich gefragt habe...ist denn der Abgriff der Spannung U_pot unbedingt notwendig?
Nein, den Spannungsabgriff U_Pot brauchst du nicht, ich fand es einfach nur interessant eine Möglichkeit zu haben die tatsächliche Servoposition auslesen zu können.
Ist es nicht möglich, das ganze so zu lösen, dass wenn ich dem Servo einen Soll-Winkel vorgebe, der Ist-Winkel nach einer kurzen Verzögerung (PT2) gleich der Soll-Winkel ist?
Kann man so machen, ich habe mein Modell ähnlich angenähert. Ganz exakt ist das allerdings nicht.
Makkeysn
04.07.2018, 23:36
so
Sehr schön gelöst, gefällt mir!
Nein, den Spannungsabgriff U_Pot brauchst du nicht, ich fand es einfach nur interessant eine Möglichkeit zu haben die tatsächliche Servoposition auslesen zu können.
Alles klar. Ich werde nur mit der Näherung arbeiten. Das sollte für meinen Zweck ausreichend sein.
Bin ja sehr gespannt, ob ich das System zum Laufen bekomme.
Schönen Abend und Danke nochmal!
Falls ich dir noch ein paar Tips mit auf den Weg geben darf:
Versuche zuerst mal nur den Sensor für die Kugelposition in Betrieb zu nehmen, den Rest kannst du hinten anstellen. Dazu bietet es sich an ein Koordinatensystem zu erstellen und auszudrucken, damit du ein paar Referenzpunkte hast um die Messungen zu validieren und den Sensor zu kalibrieren. Wie du siehst habe ich mich letztendlich dazu entschieden mein KS auf Klarsichtfolie zu drucken und in den fertigen Aufbau zu integrieren. Bild hängt unten an. Meinen Code für den Sensor kannst du übrigens nicht verwenden, der funktioniert nur für 4-/8-Wire Sensoren, deiner ist soweit ich das erkennen kann ein 5-Wire.
Wenn der Sensor läuft geht es weiter mit einem Code um den Plattenneigungswinkel zu steuern. Da du deine Neigungswinkel unabhängig voneinander durch zwei Servos steuerst sollte das deutlich einfacher laufen als in meiner Arbeit.
Wenn o.g. Punkte erfüllt sind ist der Regler auch kein Hexenwerk mehr, der bekommt die Regeldifferenz aus Sollwert und der Positionsmessung aus Punkt 1 als Eingangsgröße und liefert dir den Plattenneigungswinkel für Punkt 2 als Ausgangsgröße. Das ganze zweimal, jeweils für die X- und die Y-Richtung. Ob du dir den Regler selber schreibst oder eine Library verwendest bleibt dir überlassen.
https://abload.de/thumb/img_20170329_101522c3kf7.jpg (http://abload.de/image.php?img=img_20170329_101522c3kf7.jpg) https://abload.de/thumb/img_20170712_172804kpkz5.jpg (http://abload.de/image.php?img=img_20170712_172804kpkz5.jpg)
Hallo,
erstmal Glückwunsch, die Videos können sich echt sehen lassen!
Ich bin auch gerade an der Uni an einem ähnlichen Projekt dran.
Hast du zur Aufbereitung der Daten noch einen Filter verwendet (Kalman z.B.) und wie genau hast du den Regler ausgelegt?
Kannst du mir deine Arbeit auch per Mail schicken?
Beste Grüße und einen schönen Abend
Martin
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.