Willkommen! Anmelden Ein neues Profil erzeugen

Erweiterte Suche

Firmware für Scara

geschrieben von Wulle 
Firmware für Scara
02. July 2014 12:43
Hallo zusammen,

Nächstes (Schul)Jahr muss ich für ein Fach in der Schule (NWT=Naturwissenschaft und Technik) ein Projekt machen. Dieses darf man sich selbst heraussuchen.
Ich würde gerne einen Scara-Roboter, mit Steppermotoren und natürlich gedruckten Teilen bauen (Vielleicht so, dass er später selber drucken kann winking smiley ) Und da ich mich JETZT schon auf das Projekt freue, hab ich mir schon ein paar Gedanken dazu gemacht.
Ich denke das mechanische sollte machbar sein. Das einzige Problem ist Elektronik und Software!
Ich hab mir überlegt, einfach ein RAMPS einzusetzen. Nun fehlt nur noch die Software. Hier wollte ich auch eine Drucker Firmware nehmen, jedoch haben die ja alle keine Option für Scaras.
Es gibt zwar diese, aber so wie ich das sehe, ist die nur für Scaras mit zwei Armen.
(Ich hätte gerne so einen: )

Also muss ich da ja dann selber ran?!

Eigentlich baut das ganze ja auf Dreiecken auf, weshalb ich mit ein paar Winkelfunktionen schon ein bisschen was berechnen konnte (Welchen Winkel braucht welcher Arm um an einer bestimmten Position zu sein).
ABER: Ich habs nur hinbekommen, wenn die beiden Arme die selbe Länge haben (von Achse zu Achse). Und das stell ich mir fürs Bauen ziemlich ungeschickt vor.

Hat jemand von euch eine Idee? Oder ein paar Tipps?

LG
Wulle
Re: Firmware für Scara
02. July 2014 14:36
Ich schmeiß jetzt mal Vektoraddition in den Raum....damit sollte das auch mit verschiedenen Längen problemlos klappen.
Und du bewegst dich nur im R²...also noch ein Stückchen einfacher.

Oder lieg ich jetzt falsch?

Gruß Sven
Re: Firmware für Scara
02. July 2014 15:05
hmmm... na dann mal Mathelehrer fragen winking smiley Vektoren kommen nämlich erst in der 10ten tongue sticking out smiley

LG
Wulle
Re: Firmware für Scara
02. July 2014 15:31
Das ist recht simpel.
Da brauchts weder Ebenen, Kreuzprodukte oder sonstiges komisches Zeugs...lach.

Frag den mal oder googel mal nach Vektorrechnung.

Sei froh, das du dich nicht mit Ableitungen und Stammfunktionen herumärgern musstsmiling smiley
Re: Firmware für Scara
03. July 2014 09:26
Die Elektronik ist einfach. Da geht jede, die auch einen karthesischen Drucker steuern kann. Schrittmotor ist Schrittmotor.

Und klar, die Software ist die Herausforderung. Ob das Ding 2 oder 4 Arme hat ist egal, auch beim 4-armigen werden nur 2 Arme angetrieben. Das Ur-Projekt ist die Morgan. Da ist auch eine Firmware verlinkt. Wie gut die funktioniert, weiss ich nicht.

Falls das nicht klappt, kann man den G-code auch auf dem PC umrechnen. Dann kann man zwar manuell nicht entlang der karthesischen Koordinaten verfahren, doch Drucke sollten gelingen. Sinus und Cosinus sind für den kleinen ATmega eine ziemlich Herausforderung, ein i386 ist da tausend mal schneller. So oder so dürfte die Software alleine schon mehr als ein Schulprojekt ausmachen.

Wie wäre es denn erst mal mit einem einfachen Gerät wie einer WolfStrap oder einer Mantis? Da kann (und muss) man schon eine Menge lernen und mit dem Hintergrund kann man sich dann auf neue Wege begeben.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Firmware für Scara
03. July 2014 10:45
Danke für eure Antworten!!!

Hab heute meine Mathelehrerin nach Vektoren gefragt. Sie meint, es sei kein Problem, da es sich ja (für die beiden Arme) nur im 2-Dimansionalen Raum abspielt. Z-Achse für Greifarm/Bett könnte man ja extra machen.

Quote

Ob das Ding 2 oder 4 Arme hat ist egal, auch beim 4-armigen werden nur 2 Arme angetrieben.
Das heißt, eigentlich sollte die Firmware schon für "meine" Art SCARA funktionieren?

Quote

Wie wäre es denn erst mal mit einem einfachen Gerät wie einer WolfStrap oder einer Mantis?
Einfache Antwort: Ich hab hier schon nen Eigenbau-Prusa und ein 2ter Drucker nach meinem Design ist gerade im Bau. Da würde mich das vom Wissen/Können her nicht weiterbringen!
Außerdem brauch ich ne Herausforderung und Spaß machen tuts mir auch... sonst würd ich nicht ein halbes Jahr davor anfangen spinning smiley sticking its tongue out

Ich denke auch, die Software wird das schwierigste. Aber hier im Forum gibt es doch sicher ein paar Leute, die mir bei Problemen helfen könnten....oder?!?!? confused smiley

LG
Wulle
Re: Firmware für Scara
04. July 2014 06:18
Hi,

coole Sache, ich wünschte ich hätte in der Schulzeit solche möglichkeiten gehabt ;-)

Mathematisch sollte das Problem auf jedenfall lösbar sein ob Vectoraddition oder einfache Geometrie.

ich habe gerade ein bischen über die Geometrische lösung nachgedacht und versuch das mal ein bischen zu erläutern:

Im Prinzip sucht du ja einfach nur zwei Winkel in abhängigkeit der x,y Koordinaten:

1. Winkel alpha ist der zwischen den Armen
dazu dürcken wir mal s als funktion des Winkels aus

s=sin(alpha/2) *a *2

und stellen die gleichung nach alpha um

alpha = 2*arcsin(s/(2*a))



dann müssen wir noch s mit pytagoras bestimmen und in die Gleichung für alpha einsetzten. (s = Wurzel aus ( x²+y²))

alpha = 2* arcsin( sqrt(x²+y²) / (2*a) ) (sqrt steht für Wurzel aus)




dann noch den zweiten winkel delta:

der setzt sich aus beta und den winkel gamma zusammen den ich hier vergessen hab einzupainten.
Gamma ist der winkel zwischen den strecken a und s.

Beta = tan(x/y)
Gamma = (180-alpha)/2

delta = Beta + Gamma


wie man das softwaremaßig umsetzt kann ich dir nicht sagen da ich mich mit c kaum auskenne.
Vielleicht ist das nicht die einfachste Lösung aber man kann sie in etwa so den Programcode übernehmen.

Viele Grüße
Kevin

ps sry für mein paint Gemälde aber das schien mir am schnellsten zu gehen :-D
Re: Firmware für Scara
04. July 2014 07:02
Quote
Wulle
Aber hier im Forum gibt es doch sicher ein paar Leute, die mir bei Problemen helfen könnten....oder?!?!?

Wenn Du wüsstest, wie oft solche Wünsche hier eingehen (mehrere die Woche) und wie wenig Code dabei heraus kommt (nichts), würdest Du das vielleicht anders sehen. Irgendwie scheinen sehr viele Leute immer noch zu glauben, das wäre mit 2, 3 Klicks erledigt.

Dass Du schon einen Drucker hast ist prima. Ich will Dich auch nicht aufhalten. Vektorrechnung ist in der Tat kein Hexenwerk. Ein (zweidimensionaler) Vektor besteht aus zwei Zahlenstrahlen, man muss also einfach alle Rechnungen zwei Mal ausführen, für jede Richtung einmal. Ich würde mal mit Pythagoras, Sinus und Cosinus anfangen.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Firmware für Scara
04. July 2014 09:54
Hallo Kevin, danke für deine Mühe!
So wollte ich das auch machen! Ich hab auch ne Zeichnung erstellt und ein bisschen gelatext:




Warum ich aber zu Vektoren übergehen wollte: Diese Art der Berechnung funktioniert nur mit 2 gleich langen Armen!

@Traumflug
Ok, das verstehe ich natürlich... hoff ich mal, dass es bei mir anders wird winking smiley

LG
Wulle
Re: Firmware für Scara
05. July 2014 07:37
Das sieht doch schon gut aus. Nur: den Winkel Beta kannst Du nicht direkt mit einem Motor einstellen. Statt dessen den Winkel zwischen der X- oder Y-Achse und dem ersten Arm.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Firmware für Scara
05. July 2014 09:21
Klar, da muss man ja einfach nochmals Tangens von der y und x Strecke nehmen, dann bekommt man den Winkel bei x, den zu beta dazu und fertig (Mathe in der Schule hat halt doch nen Sinn grinning smiley )

Könnte ein Arduino so etwas packen? Dann müsste ich halt die beiden Arme gleich lang machen. Wär zwar bisschen instabiler, aber die Software wär so um ein Vielfaches "einfacher".

LG
Wulle
Re: Firmware für Scara
06. July 2014 06:36
Quote
Wulle
Könnte ein Arduino so etwas packen?

Ja, können tut er das schon. Einfach ganz normales C programmieren. Ist eben die Frage wie schnell das geht.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Firmware für Scara
06. July 2014 07:34
Traumflug lieg ich richtig mit der Vermutung das du an der teacup frimeware mitgewirkt hast?

Wenn ich eine Frimware programmieren würde dann würde ich den Teil mit der Kinematik in einem eigenen Package unterbringen. Dann müsste man die frimware nicht neu schreiben.
Wäre die frimeware in Java geschrieben dann hätte ich schon lust zu helfen, aber in C.....

ich würde beta über den dreieckssatz (oder wie der hieß) bestimmen mit alpha + beta + gamma = 180° = Pie da beta = gamma .

ich hab das mit den winkelfunktionen auch nochmal mit unterschiedlichlangen seiten gerechnet und es kam nichts schönes raus was ein arduino schnell genug rechnen kann.
vielleicht habe ich auch den falschen Rechenweg genommen aber ich denke Gleich lange arme helfen dir und dem arduino enorm.
Re: Firmware für Scara
06. July 2014 14:02
Stimmt... an den Dreieckssatz hab ich so garnicht gedacht!
Sowas sollte der Arduino doch dann eigentlich mit Leichtigkeit rechnen können (bloß der Sinus könnte vielleicht Schwierigkeiten bereiten)?!

Wie hast du das mit unterschiedlich langen Seitenlängen geschafft? Kannst du eine Zeichnung machen, bitte?

Und du hast gesagt, du könntest Java programmieren? Vielleicht wär eine andere Möglichkeit mit einem PC-Programm den g-code in einen "scara-code" umzurechnen, sodass dann nur noch die Motor-Winkel als Daten zum Arduino gesendet werden.
Er muss dann nichts mehr berechnen, außer, wie viele Steps ein Motor machen muss! (Jetzt sollte ich bloß auch noch Java programmieren können tongue sticking out smiley )

LG
Wulle

1-mal bearbeitet. Zuletzt am 06.07.14 14:10.
Re: Firmware für Scara
06. July 2014 15:22
Dass ich Java kann ist übertrieben, ich habe zwei semester Informatik gehabt in denen es darum ging programmteile zu ergänzen.

die frimware ist in C geschrieben wenn ich das richtig sehe
scara-code kannst du leider vergessen. da müsste man zuviel hirnschmalz reinstecken bis das halbwegs funktioniert, außerdem wäre das System extrem unflexibel.
Außerdem bezweifel ich das man den gcode so manipulieren kann das das klappt.


am ende war mir das zu blöd nach dem winkel auf zu lösen und ich hab wolframalpha gefragt und da kam ne hässliche funktion über 3 Zeilen raus.
ich glaube das bringt dir nicht viel. Man könnte in der frimware bekannten zahlen schon vorher ausrechnen so dass man sie nicht bei jedem schritt wieder durchkneten muss. Aber ich denke es bleibt trozdem bei einem sehr hohen Rechenaufwand.
Mit Vektorrechnung könnte es besser klappen.

Grüße
Kevin
Re: Firmware für Scara
06. July 2014 16:12
Mit Scara Code meinte ich eher:

Es gibt einen G-Code z.B.
G1 X100 Y200
Bei einer Armlänge von 40cm würde das nach meiner Formel von oben
alpha= 32,4617... und beta=57,538...
geben. Also könnte der "Scara-Code" ungefähr so aussehen:
G1 A32,4617... B57,538...
Der Arduino müsste so nichts mehr rechnen, und das "einzige", was an in der Firmware verändern müsste wären die Eingangssignale und ihre Wirkung. Die ganzen M-Befehle könnte man ja lassen.

Und mit einem Computer müssten sich die ganzen Befehle ja ziemlich Flott umrechnen lassen?!

LG
Wulle
Re: Firmware für Scara
07. July 2014 02:49
Das was du meinst macht alles die frimware.
Es wäre natürlich denkbar so einen Code am PC zu erzeugen. Aber der GCode fungiert als Interface(Schnittstelle) zwischen slicer und Maschiene, deshalb wäre es sehr unschön dass so zu lösen und ein neues Interface nur für deinen Drucker zu kreieren.
Das der drucker den Code versteht muss man auch ein bisschen was an der Frimware umschreiben. Dann ergibt sich noch das problem das der Drucker dem host nicht mehr sagen kann welchen punkt er gerade anfährt --> Alle existierenden Hosts sind nicht mit deinem Drucker Kompatibel.

ich habe einen Rostock der bekommt auch gCode und der rechnet dann die Wege der einzelnen Tower aus. So in der art müsste man das mit der Scara Frimware auch machen.
Auch bei meinem Drucker bin ich am überlegen ein Arduino duo einzubauen, da es mehr Rechenleistung hat. Das wäre auch eine Lösung um ein Stotern vorzubeugen.

Viele Grüße
Kevin
Re: Firmware für Scara
07. July 2014 03:23
Hallo Wulle,

bei einem Scara-Roboter ist es mit einer PC-seitigen GCode-Umrechnung leider nicht getan, denn deine Firmware muss trotzdem die Scara-Kinematik vertehen. Stell dir vor, du willst linear von Punkt A nach Punkt B fahren, dann ist es leider nicht damit getan, dass sich Alpha1 linear auf Alpha2 und Beta1 linear auf Beta2 ändert. Du fährst dann keine Gerade. Vielmehr hast du zwangsläufig unterschiedliche Beschleunigungen und Winkelgeschwindigkeiten auf den einzelnen Gelenken. Deine Firmware muss das im vorraus berechnen können und zwar für jede einzelne Positionsänderung!
Hinzu kommt ein zweites Problem, denn wie du vielleicht schon gemerkt hast, ist deine Formel für die Winkelberechnung der Gelenke uneindeutig. Für (fast) jede mögliche Position des Endeffektors (des Greifers, Druckkopfes) sind zwei verschiedene Gelenkstellungen möglich. Auch das muss eine Firmware berücksichtigen und für jeden einzelnen Berechnungsschritt entscheiden können, welche der beiden Möglichkeiten die sinnvollere ist. Unter Umständen muss mitten in einer linearen Bewegung von Möglichkeit 1 auf Möglichkeit 2 umgeschwenkt werden!

Ich glaube so eine Firmware an sich ist schon mehr als genug für ein Schulprojekt... Vielleicht solltest du dich auf den Bau des Scaras beschränken. Eine richtige Firmware kannst du später immernoch draufspielen, wenn du Zeit und Lust hast und um die Funktionsfähigkeit deiner Maschine zu demonstrieren reicht zunächst ja auch ein einfaches Programm.

Gruß Marco
Re: Firmware für Scara
07. July 2014 05:13
Ich war mal so frei und habe Repetier angeschrieben:

Es gibt einen ähnlichen Thread im englischen Forum
[forums.reprap.org]


Er schreibt auch das er in der sin/cos Funktion das größte Problem sieht, da sie viel Rechenleistung benötigt. Also wäre ein Arduino Duo nicht schlecht als Ausgangspunkt.

Im Repetier Forum gibt es wohl einen Thread über neue Kinematik, den werde ich mir bei Gelegenheit mal angucken.

Dann schreibt er noch "Aber im Grunde beschränkt es sich auf eine neue Transformation, Homing und Geomatriebeschreibung, also nicht all zu viel code."

an der Mathematik hätte ich wohl meinen Spaß da werde ich heute abend nochmal drüber nachdenken.

Gruß Kevin
Re: Firmware für Scara
07. July 2014 05:33
Quote
windiesel
Traumflug lieg ich richtig mit der Vermutung das du an der teacup frimeware mitgewirkt hast?

Das ist richtig. Ich bin wohl schuld daran, dass diese Firmware so klein und schnell ist. *protz*

Quote
Wulle
Also könnte der "Scara-Code" ungefähr so aussehen:
G1 A32,4617... B57,538...

Genau. Statt A und B die Bezeichner bei X und Y lassen und schon kann man eine normale Firmware verwenden.

Der Haken an der Strategie ist, dass sich der Druckkopf nicht auf einer geraden Linie bewegen wird. Denn die Geschwindigkeit der beiden Motoren ist proportional zueinander, was nur auf einem karthesischen Roboter zu geraden Linien führt.

Diese Berechnung in die Firmware zu verlagern bringt da erst mal keine Besserung. Die Strategie, die die Deltas anwenden, ist, den Weg in sehr viele kleine Stücke zu zerlegen. Die einzelnen Stückchen sind dann immer noch gurkenförmig, doch wenn sie kurz genug sind (1 mm oder weniger) fällt das nicht mehr auf.

Die perfekte Lösung wäre, die Geschwindigkeit der beiden Motoren zueinander ständig nachzuregeln. Nicht gerade einfach, deswegen hat sich da noch niemand ans Werk gemacht.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Firmware für Scara
07. July 2014 05:44
Ahh... ok ich verstehe das Problem. Dann muss man wirklich eine Lösung finden, das ganze vom Arduino selber berechnen zu lassen.

@Marco R
Das was du gerade sagst, ist mir so noch garnicht wirklich aufgefallen. Danke für den Hinweis!!
Das würde die ganze Sache nochmal erschweren. Aber als erstes würden es ja auch un-lineare Verfahrwege tun?!

@windiesel
Danke für deine Unterstützung! Find ich toll, dass du dir da solche Gedanken drüber machst! thumbs up smiling smiley
Ich werde in nächster Zeit auch mal ein paar Personen befragen, die sich damit auskennen könnten...

@Traumflug
Hmm... das mit der Unterteilung wär natürlich eine Möglichkeit! Ich glaube, ich hab mir das ganze zu einfach vorgestellt tongue sticking out smiley

LG
Wulle
Re: Firmware für Scara
07. July 2014 05:49
Quote
Marco R
bei einem Scara-Roboter ist es mit einer PC-seitigen GCode-Umrechnung leider nicht getan, denn deine Firmware muss trotzdem die Scara-Kinematik vertehen. Stell dir vor, du willst linear von Punkt A nach Punkt B fahren, dann ist es leider nicht damit getan, dass sich Alpha1 linear auf Alpha2 und Beta1 linear auf Beta2 ändert. Du fährst dann keine Gerade. Vielmehr hast du zwangsläufig unterschiedliche Beschleunigungen und Winkelgeschwindigkeiten auf den einzelnen Gelenken. Deine Firmware muss das im vorraus berechnen können und zwar für jede einzelne Positionsänderung!

Wie gesagt lösen die Delta-Firmwaren das dadurch, dass man den Weg in viele kleine Geraden zerlegt. Und das kann man gerade so gut auf dem PC machen.

Quote
Marco R
Hinzu kommt ein zweites Problem, denn wie du vielleicht schon gemerkt hast, ist deine Formel für die Winkelberechnung der Gelenke uneindeutig. Für (fast) jede mögliche Position des Endeffektors (des Greifers, Druckkopfes) sind zwei verschiedene Gelenkstellungen möglich.

Auch das ist richtig, doch der Weg dazwischen kann immer nur mit einer Veränderung erreicht werden. Oder anders gesagt, man muss sich entscheiden, ob man den ersten Arm links oder rechts haben will. Nimmt man immer den kleineren Veränderungswinkel der beiden möglichen Lösungen und vermeidet die gestreckte Position (beide Arme auf einer Linie, Übergang des ersten Arms von links nach rechts) sollte es funktionieren. Zumindest soweit ich das bislang überblicken kann.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Firmware für Scara
07. July 2014 05:57
Quote
Traumflug
Oder anders gesagt, man muss sich entscheiden, ob man den ersten Arm links oder rechts haben will. Nimmt man immer den kleineren Veränderungswinkel der beiden möglichen Lösungen und vermeidet die gestreckte Position (beide Arme auf einer Linie, Übergang des ersten Arms von links nach rechts) sollte es funktionieren.

Wenn ich es mich recht überlege, sollte es genügen, den Winkel Alpha in der obigen Skizze immer kleiner als 180° zu halten. Dann sollte ein "überspringen" von links nach rechts ausgeschlossen sein.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Firmware für Scara
07. July 2014 06:25
Ich habe gerade gesehen, dass es bei der Software "LinuxCNC" auch eine SCARA unterstützende Version gibt. Aber kann man die dann mit einem RAMPS verbinden? Da bräuchte ich doch dann eher einen richtigen CNC-Controller oder?
Re: Firmware für Scara
07. July 2014 07:04
Quote
Traumflug
Wenn ich es mich recht überlege, sollte es genügen, den Winkel Alpha in der obigen Skizze immer kleiner als 180° zu halten. Dann sollte ein "überspringen" von links nach rechts ausgeschlossen sein.

Solange du in einem Arbeitsbereich der Gelenke arbeitest, in dem tatsächlich beide Gelenkstellungen möglich sind, ist das bestimmt richtig! Praktisch gibt es aber wohl immer "verbotene Bereiche", an deren Rändern nur eine Gelenkstellung "erlaubt" ist. Siehe dazu zum Beispiel diese Arbeitsbereichszeichnung vom Adept Cobra. Bei Positionieraufgaben ist ein Überspringen natürlich generell kein Problem, beim Drucken müsste die Firmware allerdings eine art Preview haben, die ein Überspingen frühzeitig erkennt und mit Retract ausführt. Oder man druckt alternativ nur in dem mehrdeutigen Raum...
Re: Firmware für Scara
07. July 2014 07:06
Vielleicht wäre ja ein reprap Morgen für dich ne alternative
[www.youtube.com]
ich denke dazu könnte man auch schon fertige frimware für finden.

Edit: ist ja praktisch ein Parallelogramm müsste also auf sehr ähnlicher Mathematik basieren. Und ist schneller da weniger bewegte masse.

Gruß
Kevin

1-mal bearbeitet. Zuletzt am 07.07.14 07:09.
Re: Firmware für Scara
07. July 2014 07:21
Reprap Morgan wurde oben schon mal angesprochen,
allerdings ist es nicht das, was ich suche spinning smiley sticking its tongue out

Mir geht es nicht darum, dass er später druckt oder total schnell ist, mir geht es darum einen "einarmigen" SCARA Roboter zu bauen. Die Dinger faszinieren mich einfach, seit ich mal einen live gesehen habe.
Wenn es sich als zu schwierig herausstellen sollte, dann lass ichs lieber ganz.... Es wird aber nicht zu schwierig grinning smiley

Aber Danke für den Hinweis!

LG
Wulle
Re: Firmware für Scara
07. July 2014 08:39
Quote
windiesel
ist ja praktisch ein Parallelogramm müsste also auf sehr ähnlicher Mathematik basieren.
Re: Firmware für Scara
07. July 2014 08:42
Oh achso... du meinst, man könnte das übertragen?

Muss ich mir mal anschauen!
Re: Firmware für Scara
07. July 2014 09:39
Quote
Wulle
Oh achso... du meinst, man könnte das übertragen?

Ja, das sollte funktionieren. Einziger Unterschied: der Motor auf dem Arm muss die Bewegungen des ersten Armes kompensieren, d.h. für diesen Motor muss man die zu fahrenden Winkel der beiden Motoren zusammen zählen.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen