OK, Notfalls kann man die Spindeln ja ein Stück "aus der Maschine gucken lassen".
Davon bin ich noch nicht so überzeugt. Man braucht mehr Motoren, dafür jedoch kürzere Spindeln usw.
Selbst wenn die Kosten hier etwas höher liegen würden, da wäre ich auch bereit mehr Geld zu investieren, da ich einen Roboterarm universeller einsetzen könnte. Ein Bestückautomat ist für mich mehr so etwas wie "Lego für fortgeschrittene", sprich es geht mir da mehr um´s "gescheit hin bekommen" als um den späteren Einsatz. Sicher würde ich diesen auch mal Einsetzten können, aber das wäre schon ziemlich selten. Einen Roboterarm hingegen kann man für alles mögliche einsetzen.
6 Achsen statt 4 Achsen (X,Y,Z,Theta). Man könnte den Roboter auch mit 5 Achsen bauen, dann wäre halt kein "seitlich" greifen möglich, aber mit 5 Achsen könnte der schon genauso viel wie ein Bestückautomat mit 4 Achsen.
Ja, wenn man den Arm baut wie ein Industrieroboter, welcher ja quasi jeden Punkt in Armweite erreichen kann. Ich würde das anders bauen.
Entschuldige bitte meine furchtbare Skizze, aber die soll ja nur verdeutlichen, was ich meine:
Links wäre quasi ein Industrieroboter, der kann mit seinen Gelenken jeden Punkt erreichen, der in seiner Reichweite liegt. Der ist schlank, schnell und äußerst flexibel ...dummerweise auch wahnsinnig teuer, da alles üppig dimensioniert sein müsste.
Rechts wäre mein Vorschlag. Die Roten Striche sollen Spindeln sein. Der Motor würde also nicht direkt als Welle eingesetzt werden, sondern lediglich die Spindeln bewegen und damit die Winkelstellungen verändern. Dieser Roboterarm kann nun nicht mehr alle Punkte im Raum erreichen (weil die Länge der Spindeln den Bewegungsradius einschränkt) und er wäre auch langsamer, da die Spindeln ja eine enorme Untersetzung darstellen.
Der Vorteil ist jedoch, dass selbst relativ schwache Motoren ausreichen Haltemoment hätten. Die Spindeln könnten auch eine relativ kleine Steigung haben, denn wenn man diese wenige cm bewegt streckt man den Arm erheblich mehr.
Den Verlust an Genauigkeit kann durch die kleinere Steigung der Spindeln ausgeglichen werden.
Mit 6 Achsen wäre dieser Roboterarm jedoch immer noch sehr flexibel einsetzbar, auch wenn man den Arm z.B. nicht senkrecht nach oben richten kann.
Na ja, soooo kompliziert ist das nun auch wieder nicht. Plump gesagt kann man das komplett mit dem Satz des Pythagoras, sowie Sinus und Kosinus errechnen. Die einzelnen Längen der Teilstücke sind uns ja bekannt. Schau mal hier:
http://www.3eck.org/triangle/de/calculator_advanced.php
A und B sind quasi "Oberarm" und "Unterarm", also eine stets bekannte Größe.
C ist quasi die Entfernung zur Zielposition
Alle nötigen Winkelmaße lassen sich daraus berechnen. Ist nun also die Zielposition bekannt kann diese Achse schon mal loslegen. Die Theta-Achse welchen den gesamten Arm dreht muss stark untersetzt werden, um eine ausreichende Genauigkeit zu gewährleisten. Diesen Winkel kann man ebenfalls leicht berechnen, denn der Roboter ist gleichzeitig der Nullpunkt. Sind die Zielkoordinaten nun z.B. x30 y200, dann ergibt das ein Dreieck vom Roboterarm (x0 Y0) nach x0 y200 (0°-Position) und x30 y200. Damit kann auch die 2. Achse zeitgleich los legen. Die 3. Achse, welche den Oberarm neigt (Schultergelenk, also am Standfuß des Roboterarms) und somit für die Höhe zuständig ist kann auch wieder nach dem gleichen Prinzip errechnet werden. Der Soll-Abstand zur Soll-Position (darin inbegriffen ist die Länge der Nozzle, usw.) ist eine Seite des (in diesem Fall rechtwinkligen) Dreiecks, die Distanz zur Sollposition ist die andere Seite des Dreiecks, Pythagoras nennt uns die 3. Seite des Dreiecks, und schon wissen wir wieder welchen Winkel wir brauchen. Diese Achse könnte sich auch direkt in Bewegung setzen, sofern keine Hindernisse im Weg sind.
Die 4. Achse muss nun die Nozzle senkrecht ausrichten. Dieser Winkel lässt sich ebenfalls ausrechnen und auch diese Achse kann direkt los legen.
Sind alle Achsen in der Sollposition kann die 5. Achse (die Z-Achse) in Bewegung gesetzt werden. Ist diese dann z.B. nach dem Abholen eines Bauteils zurück in der Endposition können wieder alle anderen Achsen gleichzeitig die nächste Position ansteuern, usw.
Wenn dann auch noch die 6. Achse eingesetzt wird (z.B. um die Nozzle nicht von oben nach unten fahren zu lassen, sondern von rechts nach links), dann muss diese Achse ihre Bewegung natürlich vor der Z-Achse ausführen und dann ist diese Achse für die anderen Achsen die Soll-Position. Aber auch das kann man alles berechnen.
5 Achsen würden für den Anfang völlig ausreichen, die 6. Achse wäre lediglich eine Option für Revision 2.
Ich hoffe dass ich hier nicht irgendwo einen groben Denkfehler habe.
Das ist doch einer der Vorteile. Man kann den Arbeitsbereich vergrößern ohne eine riesige Maschine bauen zu müssen. Den Roboterarm kann man "anwinkeln" und dann nimmt der kaum noch Platz weg und passt in jede Ecke (und auch in mein Auto). Das wäre mit dem Bestückautomaten erheblich komplizierter.
Und was sagst du zu meiner Idee, den Roboter-Arm weniger flexibel und langsamer zu machen, dafür jedoch "genauer" und "stabiler", indem man Spindeln nutzt? Die von mir beschriebene Winkelberechnung ist einfach, aber man kann dann halt nicht so wilde Bewegungen ausführen wie es die Industrieroboter machen. Das wäre für unsere Zwecke aber auch nicht nötig. Ich würde es mal mit dem Arm eines Schaufelbaggers vergleichen. Dieser kann auch nicht jede beliebige Position einnehmen, ist aber dennoch absolut flexibel genug um "brauchbar" zu sein.
Ich müsste mir mal ansehen wie die USB-Unterstützung des Atmega32U4 genau funktioniert. Wenn man damit recht einfach die Befehle vom PC zum Atmega bekommt sollte der Rest relativ einfach sein.
Ich stelle mir das so vor:
Ich teile dem Atmega mit welcher Motor wieviele Schritte in welche Richtung machen soll. Der Atmega ist dann für die Rampen zuständig, sowie für die Geschwindigkeit (was ja die Rampen beinhaltet). Vielleicht ist es auch relativ einfach möglich den Stromfluss der Motoren zu errechnen (das wäre dann ebenfalls eine Aufgabe des Atmega) und daran zu erkennen wenn ein Motor "hängt".
Die Endschalter werden auch vom Atmega überwacht. Sind die Schritte ausgeführt soll der Atmega eine Rückmeldung geben, dann folgt vom Programm der nächste Schritt, usw.
Der Atmega ist spottbillig, für die Endstufe kann man billige (aber Leistungsstarke) FET-Transistoren verwenden.
Der Aufbau wäre vorerst auf einer Lochraster-Platine und wenn sich das bewährt hat (Fehler ausgemerzt, usw.) kann man immer noch eine "gescheite" Platine erstellen.
Ich werde mich mal über den Atmega32U4 schlau machen, vielleicht eignet der sich ja auch gar nicht für mein Vorhaben.
Sollte das jedoch so passen, wie ich es erhoffe, dann würde mich die Steuerung incl. Endstufen < 50 Euro kosten (zzgl. die Kosten der Leiterplatte, wenn es dann mal gescheit gemacht wird). Zudem wären einige Endschalter/Sicherheitsschalter möglich und vor allem die Rückmeldung. Ich würde ungern die Z-Achse verfahren lassen, wenn X und Y ihre Position noch nicht erreicht haben![]()
Lesezeichen