Hintergrund | Seit ich zum ersten Mal einen Deltaroboter in Aktion gesehen habe (es war dieser hier), war klar, dass ich mich früher oder später auch mal an einem solchen Aufbau versuchen muss. Im Prinzip ist die zugrundeliegende mechanische Struktur nicht kompliziert, sodass ich den Aufbau vor einigen Monaten mal als Nebenprojekt begonnen habe. Ich bin natürlich im Vergleich zum oben verlinkten Video an verschiedenen Stellen Kompromisse eingegangen, dafür war das Projekt dann aber relativ "straight forward" umzusetzen. Vor einigen Tagen nun hat mein deltaR - so habe ich ihn getauft - auch endlich die ersten Bewegungen gemacht. Um einen ersten einfachen Anwendungsfall zu haben, der einen anschaulichen Eindruck von der Genauigkeit des Roboters vermittelt, habe ich ihn als Plotter verwendet. Was die Präzision angeht ist, kann der Roboter zwar nicht ganz mit seinen deutlich aufwendiger konstruierten Artgenossen mithalten, im Prinzip funktioniert das System aber sehr gut. Im Folgenden beschreibe ich das Projekt etwas ausführlicher, allerdings werde ich den Artikel aus Zeitmangel nur nach und nach weiter ausbauen können.
Parallelkinematik | Roboterarme- und beine sind klassische Beispiele für Strukturen mit seriellen Kinematiken. Dabei sind mehrere Freiheitsgerade hintereinander geschaltet, um den Endpunkt dieser offenen Kette an verschiedene Positionen im Raum bewegen zu können. Die Freiheitsgrade einer solchen Struktur sind dabei in dem Sinne abhängig voneinander, dass ein Freiheitsgrad die Lage des ihm nachgeschalteten Freiheitsgrades beinflusst. Bei Parallelkinematiken wirken im Gegensatz dazu mehrere Antriebe parallel in einer geschlossenen Kette auf den Endpunkt der Struktur ein, Bewegungen in einem Freiheitsgrad wirken sich zwar auf die Lage des Endpunktes aber nicht auf die Lage der anderen Freiheitsgrade aus. Der bis heute wohl bekannteste Roboter mit einer Parallelkinematik ist der von seinem Erfinder Reymond Clavel so genannte "Delta Prallel Roboter". Clavel entwickelte ihn Anfang der 80er Jahre und führte sein Konzept 1991 in seiner Doktorarbeit "Conception d'un robot parallèle rapide à 4 degrés de liberté" ausführlich aus. Dadurch, dass bei diesem Roboter die üblicherweise schweren Aktuatoren statisch an der Basis sitzen, bleiben die Arme verhältnismäßig leicht und können sich dementsprechend schnell bewegen. Bei seriellen Kinematiken werden die Aktuatoren typischerweise mit bewegt (wobei es natürlich Ausnahmen gibt).
Aufbau | Im Folgenden einige Bilder vom Aufbau meines Deltaroboters. Als Materialien dienten im Wesentlichen Aluminium-Vierkantrohre und PVC Platten. Die Basis des Roboters hängt an drei Stützen, die zu den beweglichen Armen um 60° versetzt angeordent sind. Der Aufbau ist relativ hochbeinig, weil ich mir nicht ganz klar war und bin, was als Werkzeug an der Plattform angebracht werden soll. Tatsächlich sind die Stützen etwas zu dünn für die gewählten Dimensionen ausgefallen, woraus eine gewisse Schwingneigung resultiert. Der Roboter ist aber sehr modular konstruiert ist, es ist ohne größere Umstände möglich, die Stützen bei Zeiten mal durch stabiliere zu ersetzen.
Eine entscheidende Komponente bei einem Delta Roboter sind die Lager, mit denen die "Parallelogramm-Arme" mit der Plattform bzw. dem Arm der am Motor sitzt verbunden sind. Ich habe mich an dieser Stelle für Kugelgelenklager entschieden. Die Firma igus hat diese als Kunstoffkomponenten in großer Auswahl im Angebot. igus war so freundlich, mir die für meinen Aufbau benötigten Lager kostenlos zur Verfügung zu stellen. Nochmal vielen Dank dafür!
Zur Motorisierung habe ich auf einfache Modellbauservos zurückgegriffen. Um allerdings etwas mehr Drehmoment zur Verfügung zu haben, benutze ich eine XL-Varainte. Somit ist es ohne viel Aufwand möglich, die Arme auf bestimmte Drehwinkel einzustellen. Der Servo erhält ein PWM-Signal dessen Pulsweite den Drehwinkel vorgibt. Die Reglungselektronik im Servo kümmert sich dann darum, dass dieser Winkel eingestellt und unter Last gehalten wird - naja, so einigermaßen... Man darf dabei nämlich nicht zu viel erwarten, die Lageregelung ist nicht sehr präzise.
Steuerung | Die Hardware der Steuerung ist noch imporivisiert. Die Grundidee dabei ist, dass die Steuerungselektronik per serieller Schnittstelle (bzw. in der Endversion per USB) die x-, y-, und z-Koordinate erhält, die die Plattform anfahren soll. Daraus werden dann über die inverse Kinematik die Stellwinkel für die drei Servos berechnet und die entprechenden PWM-Signale ausgegeben. Die Berechnung der inversen Kinematik ist nicht übermäßig aufwendig, insofern ließ sie sich problemlos auf einem Atmel AVR Mega8 unterbringen, auch wenn sie in Bascom implementiert ist. Für die ersten Funktionstests der Controller Firmware habe ich mein miniAVR Board verwendet. Da es über keinen Taktgeber für den µC verfügt, läuft der AVR mit internem Takt bei 8 MHz. Unter dieser Bedingung braucht ein Berechnungsdurchgang für die komplette inverse Kinematik etwas über 6 ms, sodass diese bei ca. 150 Hz läuft. Das ist nicht extrem schnell, aber ausreichend für meinen einfachen Aufbau. Mit einem schnellerem AVR ließe sich das Ganze ohne weitere Programmänderungen um einen Faktor von 2.5 schneller machen. Zur Stromversorgung der Servos habe ich mir ein einfaches Schaltnetzteil besorgt, das immerhin 8 A liefert.
Video: deltaR als Plotter | Hier ein kleines Video von meinen Delta-Roboter. Es zeigt die Konstruktion und - als kleinen Genauigkeitstest - den Versuch, damit zu malen. Um einen Stift an der Plattform des Roboters befestigen zu können, habe ich einen einfachen Stifthalter improvisiert. Es handelt sich um einen Kunstoffklotz mit einem Loch für den Stift. Der Stift selbst wird von einem zweiten Kunstoffteil beschwert, so dass er etwas Andruck auf dem Papier hat und außerdem nicht durchs Loch fallen kann. Das nebenstehende Bild zeigt die "Konstruktion". Der Stift ist etwas konisch, was die Konsequenz hat, dass er in dem Halter wackelt, wenn er auf dem Papier aufsetzt. Das verringert die Zeichengenauigkeit - die aufgrund der Servos ohnehin nicht so berühmt ist.
Video: deltaR mit Kinect gesteuert | Weil meine Kinect schon seit längerem in der Ecke steht, ohne dass ich damit sonderlich viel getan habe, und weil außerdem ja seit kurzem das offizielle Kinect SDK von Microsoft raus ist, habe ich mal versucht, meinen deltaR mithilfe des Kinect skeleton trackings zu steuern. Ich bin natürlich nicht der erste der das versucht, hier probierte man ähnliches (man bekommt allerdings keinen rechten Eindruck wie gut bzw. schelcht es da funktioniert). Bei mir zumindest funktioniert das nur so einigermaßen. Ich verwende in diesem Falle nur die Positionen der rechten und linken Hand. Sobald die rechte Hand 300 mm höher als die linke gehalten wird, wird die Position der linken Hand als Nullpunkt angenommen und alle weiteren Bewegungen darauf bezogen. Die deltaR-Plattform folgt dann den relativen Bewegungen der linken Hand, bis die rechte Hand weniger als 300 mm höher als die linke gehalten wird. Klingt etwas kompliziert - ist aber sehr simpel...
deltaR mit Kinect gesteuert, Greifen von Stahlkugeln | Hier noch eine kleine Erweiterung meines deltaRs. Ich habe einen Elektromagneten an die Plattform gebaut, mit dessen Hilfe er Stahlkugeln greifen kann.
die Arme habe ich selbst aus Alu-Stangen bzw. -Rohren hergestellt. Bei den "Oberarmen" handelt es sich um eloxiertes Vierkantrohr wie man es zB im Baumarkt bekommt. Die "Unterarme" sind Alustangen vom lfd. Meter. Die Enden der Stangen wurden abgedreht und dann ein Gewinde darauf geschnitten. Wenn man die Unterarme mehrteilig aufbaut ist es wichtig, dass man den Abstand der Lagerpunkte genau einstellen kann. Bei zwei gleichsinnigen Gewinden ist dies problematisch (da die Lagerköpfe in einer Ebene liegen müssen, kann man ihren Abstand bei gleichsinnigen Gewinden nur in ganzzahligen Vielfachen eines halben Gewindeganges einstellen), deshalb ist eine Gewindestange nur bedingt geeignet. Ich habe die Stangen deshalb mit gegensinnigen Gewinden versehen.
Hallo! Ich wuerde gerne wissen, wo sie arme gekauft hast...ich baue jetzt ein delta...und ich dachte, vielleicht werde ich einfach gewindestange benutzen...aber deine arme siehen einfach viel besser aus
Vielen Dank für das große Interesse nochmal - hier und in Form von Emails! Ich arbeite nebenbei an einem Artikel über diesen Roboter, der alles, also Konstruktion, Elektronik, inverse Kinematik und den Quellcode enthalten wird. Im vorhinein möchte ich nur sehr ungern halbgare Teile von dem Projekt veröffentlichen. Ich bitte um Verständnis und noch etwas Geduld :-).
Hi, großen Respekt, und Anerkennung für Dein Projekt. Hat mich sehr begeistert und gefesselt. Nun was soll ich sagen, in mir ist der Wunsch aufgekommen das nachzubauen. Daher meine Frage ist es möglich das Projekt nach deinem Vorbild nachzubauen? Also gibt es die Möglichkeit das Programm Bauanleitung zu bekommen? Danke Grüße Sven
Hallo, wir sollen im Studium genau so einen Delta Roboter bauen. Kannst du uns weiterhelfen und uns deine Steuerungskomponenten (Von der Software bis zum Servo) auflisten? Das wäre echt klasse! Vielen Dank schonmal.
Great job it wud certainly help in my project thanx ... but it wub very nice and useful if u can tell me how did yu do the inverse kinematics or any file which has the solutions or any website link wud do thanx Malte your help wud be awaited . email id : ankushhjain28@gmail.com
I'm interested in the max. workspace of your robot
Till now haven't calculated, simulated or measured it precisely so at the moment I can just give you a very rough estimate of the workspace size. You can think of it as a cylinder with a diameter of about 400 mm and a height of about 250 mm. Thanks for your interest!
Hey Malte, good work and nice design!^^ I'm interested in the max. workspace of your robot. Could you please capture it (best from above) from the lowest position of the work plate to the highest? Maybe like a helix with a slight pitch. Thanks in advance: ;)
Yes, I'll publish the source code at some point in the near future. But first I want to clean up and comment it. So for the moment I can just ask for your patience. Thanks for your interest!
Kommentare
die Arme habe ich selbst aus Alu-Stangen bzw. -Rohren hergestellt. Bei den "Oberarmen" handelt es sich um eloxiertes Vierkantrohr wie man es zB im Baumarkt bekommt. Die "Unterarme" sind Alustangen vom lfd. Meter. Die Enden der Stangen wurden abgedreht und dann ein Gewinde darauf geschnitten. Wenn man die Unterarme mehrteilig aufbaut ist es wichtig, dass man den Abstand der Lagerpunkte genau einstellen kann. Bei zwei gleichsinnigen Gewinden ist dies problematisch (da die Lagerköpfe in einer Ebene liegen müssen, kann man ihren Abstand bei gleichsinnigen Gewinden nur in ganzzahligen Vielfachen eines halben Gewindeganges einstellen), deshalb ist eine Gewindestange nur bedingt geeignet. Ich habe die Stangen deshalb mit gegensinnigen Gewinden versehen.
Viel Spass beim Bauen!
Malte
großen Respekt, und Anerkennung für Dein Projekt.
Hat mich sehr begeistert und gefesselt.
Nun was soll ich sagen, in mir ist der Wunsch aufgekommen das nachzubauen.
Daher meine Frage ist es möglich das Projekt nach deinem Vorbild nachzubauen?
Also gibt es die Möglichkeit das Programm Bauanleitung zu bekommen?
Danke
Grüße Sven
mail me to ayesha_all@hotm ail.com
i will wait for your reply
wir sollen im Studium genau so einen Delta Roboter bauen.
Kannst du uns weiterhelfen und uns deine Steuerungskompo nenten (Von der Software bis zum Servo) auflisten?
Das wäre echt klasse! Vielen Dank schonmal.
email id : ankushhjain28@g mail.com
good work and nice design!^^
I'm interested in the max. workspace of your robot. Could you please capture it (best from above) from the lowest position of the work plate to the highest? Maybe like a helix with a slight pitch. Thanks in advance: ;)
Ciao,
Chris
Best,
Malte
Alle Kommentare dieses Beitrages als RSS-Feed.