• Herzlich willkommen!

    Das Team von »Doctor Brick« heißt Euch herzlich willkommen und wünscht Euch viel Spaß hier!
    »Doctor Brick« ist eine anerkannte Community (RLOC) für erwachsene LEGO Enthusiasten, auch AFOLs (= Adult Fans Of LEGO) genannt.
    Wir können uns hier über alle Belange des LEGO Hobbys austauschen wie z.B. Set- und Teilefragen, Vorstellung und Rezensionen von Legobauten.
    Bitte beachtet die Nutzungsbedingungen und den Verhaltensleitfaden.

[WIP] 6-Achsroboter mit EV3 (+Pyhton) nach RoboticSolutions

carver0510

Urgestein
Registriert
20 Mai 2016
Beiträge
895
Hallo zusammen,

ich weiß, dass ich in letzter Zeit sehr still bin und man kaum etwas von mir hört. Deswegen dachte ich mir, dass ich mich mal wieder mit einem aktuellen Projekt hier melde :)

Vor einiger Zeit habe ich durch Zufall dieses Video gefunden:


Der 6-Achsroboter hat mich total begeistert, wollte ich schon als kleines Kind so einen Roboterarm haben :D Durch Zufall bin ich auch gleich auf das LXF-File unter einem der Videos von RoboticSolutions gestossen und da wusste ich: Das wird mein nächstes Projekt - habe ich doch in meiner Jugend gerne programmiert ;)

Also habe ich begonnen die Teile zusammen zu suchen und den Roboter zu bauen. Es gibt auch einige andere Roboterarme, die vielleicht leichter im Gewicht und einfacher im Aufbau sind. Aber mir hat der "Industrialstyle" so gut gefallen. Weshalb ich mich für dieses Modell entschied.

Ich hatte das Glück, dass ich an zwei EV3-Sets (eines neu und eines gebraucht) recht günstig rangekommen bin, aber ich habe dann auch noch einige Sensoren und Kabel benötigt. Wie manhier auf den Entstehungsfotos sieht :)
















Der Bau war echt spannend und hat Spaß gemacht - auch wenn sich das Durchklicken durch die LXF als etwas mühsam erweist :)

So nun ging es an die Programmierung ... Gut das ich mit der Programmierung noch etwas gewartet hab, da es mittlerweile für den EV3 das neuer pybricks 2.0.0 gibt (basierend auf ev3dev). Dort ist es möglich über Bluetooth Nachrichten zwischen den EV3s auszutauschen. Ich nutze die Methode um Befehle von dem EV3-1 an den EV3-2 zu schicken und dort auszuführen. Ich weiß ... sowas ist sehr heikel - aber wer will mich schon hacken ;)

Ich muss sagen, dass ich das letzten mal so richtig vor über 15 Jahren programmiert habe. Aber Pyhton ist eine sehr dankbare Programmiersprache, da sie doch relativ einfach in der Syntax ist :)

Aktueller Stand ist, dass die Routine zum Kalibieren implementiert ist und ich den Roboterarm nun frei bewegen kann. Die Idee zur Kalibrierung mit den Farbtafeln gefällt mir sehr sehr gut und macht es wirklich sehr simpel den Nullpunkt einer jeden Achse zu finden! Einzig das Schwenken der Zange muss ich über ein fahren in den Anschlag Kalibrieren. Zum Glück erkennt der EV3, wenn der Motor blockiert:


Als nächstes muss ich mich mit 6 DOF (=Degree of Freedom / Freiheitsgraden) Programmierung befassen. Das wird eine Herausforderung, denn da müssen einige Matrizen gelöst werden. Endlich weiß ich, wozu ich das in der Schule gelernt habe hihi ;) Aber nachdem ich mir ein Video dazu auf Youtube angeschaut habe, wo es am Ende dann so aussah:

Bildschirmfoto 2020-06-16 um 21.13.50.png

Dachte ich mir: Ok - du hättest es auch einfach haben können ;) Aber es macht Spaß und ich bin gespannt ob ich auch alles so umsetzen kann ;)
 

Ts__

Eisenbahner
Registriert
6 Jan. 2016
Beiträge
2.548
Ort
Zwickau / Sachsen
Cool

Errinnert mich an den G120 "Sumo-Ringer" Roboter aus der Automobil-Branche . Der hatte noch einen indianischen Namen, der auf deutsch "Der sich zum Punkt zittert" bedeutet :devil:

Von mir "Hut ab". Ich hatte auch schon mal versucht, die Handachsen aus Lego zu bauen, aber es nie fertiggestellt.

Thomas
 

Functional Technic

Urgestein
Registriert
21 März 2017
Beiträge
784
sehr schöner arm. wie sieht es mit dem spiel in den gelenken aus, respektiv wie genau kannst du mit der zange arbeiten?
 

carver0510

Urgestein
Registriert
20 Mai 2016
Beiträge
895
also das Spiel ist schon ordentlich. Durch das Gewicht wird es natürlich nicht einfacher. Ein paar Tricks habe ich noch um das Spiel zu minimieren, aber raus bringen werde ich das nie. Aber für das was ich vor habe, wird es gehen ... denn die Schwerkraft drückt mir ja zumindest in eine Richtung das Spiel raus ;)
 

HUWI

Papa Schlumpf
Registriert
8 Jan. 2018
Beiträge
5.472
Ort
Bochum
Wahnsinn! In Legoland hängen da die Besucher an den Modellen von KUKA, aber viel größer sind die auch nicht...

Schön, dass du wieder da bist!
 

Blechtaler

Urgestein
Registriert
29 Apr. 2017
Beiträge
1.433
zu KUKA: wäre der auch in orange baubar?

KUKA ist ja nun mal bei mir in Augsburg...
- hieß ja ürsprünglich mal Keller und Knappich Augsburg

René
 

Ts__

Eisenbahner
Registriert
6 Jan. 2016
Beiträge
2.548
Ort
Zwickau / Sachsen
Als nächstes muss ich mich mit 6 DOF (=Degree of Freedom / Freiheitsgraden) Programmierung befassen. Das wird eine Herausforderung, denn da müssen einige Matrizen gelöst werden.

Darauf bin ich aber mal richtig gespannt. Die Frage ist halt: Was willst du erreichen? Ein Programm, damit der Roboter sich bewegt / irgendwas macht oder ein Framework, wo man dann recht einfach neue Bewegungen vorgeben kann und der Roboter errechnet sich seine Bahn?

Alle (mir bekannten, also nicht alle, aber viele) aktuellen Industrie-Roboter fahren von Punkt A zu Punkt B. Ein Raumpunkt wird da üblicherweise mit X,Y,Z, A, B, C angegeben. Das reicht aber nicht für eine eindeutige Stellung des Roboters (es kann die gleiche Werkzeugstellung mit unterschiedlichen Achsstellungen angefahren werden). Also kommt zb bei KUKA noch S (Status) und T (Turn) dazu.
Die Robotersteuerung errechnet sich dann selbst die Bahn von Punkt A zu Punkt B.

Die alten VRS G120 Roboter haben noch mehr mit den Achs-Werten gearbeitet. Da gibt es dann für jeden Punkt die 6 Achs-Werte. Das ist für eine eindeutige Position ausreichend (ausser bei endlos drehenden Achsen^^, wird aber normalerweise nicht genutzt, da Schlauchpakete sich sonst aufwickeln).

Für einen "simplen" Lego-Roboter wären die Achswerte sicher ausreichend. Dann noch ein "minimales" Bahnmodul dazu:

Für "Punkt zu Punkt / PTP" gibt es dann zwei grundsätzliche Strategien:

- jede Achse fährt so schnell sie kann von Punkt A zu Punkt B. Sieht "scheisse" aus. Ein paar Achsen sind schon da, während andere noch weit fahren müssen...
- die langsamste Achse / die Achse mit den weitesten Weg bestimmt die Geschwindigkeit aller Achsen. Alle Achsen kommen gleichzeitig am Zielpunkt zum stehen. Die mit kurzen Weg fahren dann halt langsamer. Eindeutig die bessere Strategie und ergibt ein harmonisches Fahrverhalten.

Es gibt noch mehr Bewegungsarten, aber "Punkt zu Punkt" ist die meistgenutzte und einfachste.

Wenn du mehr dazu wissen willst -> frag mich an.

Bis dahin verfolge ich das Projekt hier auf jedenfall weiter.

Thomas, Roboter-Dompteur oder Zyklopen-Bändiger
 

carver0510

Urgestein
Registriert
20 Mai 2016
Beiträge
895
@rechrene also damals war der in rot, schwarz und weiß baubar. Ob mittlerweile Orange (danke dem Porsche) geht müsste man sich mal an schauen. Aber ich mag so steriles weiß :) keine Ahnung warum. Aber ich bin mir sicher, dass man bei KUKA auch den Roboter in weiß bestellen könnte ;)

@Ts__ oh wouw ... danke dir erst mal und ich würde auf deine Hilfe gerne nochmal zurück kommen :)

Also bezüglich der Programmierung bin ich ganz am Anfang. Musste ich mich doch erst mal in Python reinfuchsen (da ich aber vor 15 Jahre schon programmiert habe, war das nicht sonderlich schwer). Momentan funktioniert der Code, aber das ganze ist noch nicht so schon vom Quellcode her aufgebaut wie ich mir das wünschen würde - aktuell einfach nur funktional. Da muss ich evtl. nochmal bissl umbauen. Ich habe mir auch erst ein paar Videos zur Berechnung der Bewegung angeschaut. Aber wie du schon geschrieben hast wäre mein Plan wie folgt:
  • Fahren von Punkt zu Punkt
  • Arbeiten mit Raumpunkten mit X,Y,Z und A,B,C
  • Ideal mit variabler Geschwindigkeit der Achsen, so dass alle Achsen zur selben Zeit am Zielpunkt ankommen
  • minimales Bahnmodul
Das Thema mit der Geschwindigkeit habe ich mir auch nur ganz kurz überlegt. Ich muss aber erst einmal dazu kommen, dass der Roboter von A nach B fährt und die Zange dann immer Waagrecht gehalten wird. Deshalb wird es erst mal so sein, dass ich alle Achsen so einstelle, dass die alle standardmäßig mit der selben Geschwindigkeit fahren. Das gute an der Programmierung mit Python bzw. pybricks ist, dass ich die einzelnen Zahnradkombinationen im Getriebe angeben kann und er sich so automatisch die Übersetzung ausrechnet. Wenn ich nun sage: Dreh die Zange um 90 Grad, dann dreht sich der Motor so oft bzw. so weit bis die die Zange den 90 Grad Winkel erreicht hat. Nun würde ich die Geschwindigkeiten der Achsen so einstellen, dass diese sich alle "gleich" schnell bewegen. Natürlich ist das unschön, weil es dazu führt, dass eine Achse vor der anderen fertig wird. Aber das Abstimmen der Geschwindigkeiten wird erst in einem zweiten Schritt geschehen.

Ihr müsst auch bedenken, dass ich die ganzen Abläufe gerade selber programmiere ... ich kann auf keine bestehende Steuerung aufsetzen sonder muss mir alles selber Coden. Darum muss ich erst mal verstehen wie die Berechnung der Winkel einer jeden Achse im Raum funktioniert und das sind einige Matrizen die gelöst werden wollen. Ich bin auch gerade auf der Suche nach Library's die ich in mein Programm einbinden kann, damit ich das nicht alles selber Programmieren muss.

Natürlich wäre so ein minimales Bahnmodul auch sehr schick, aber selbst das müsste ich vermutlich selber programmieren ... ich weiß noch nicht wie weit ich da komme. Meine Ansprüche sind hoch :D Aber das ganze ist noch ein langer Weg :)
 

Bricksy

Digital-Designer
Ehren-Doctor
Registriert
14 Aug. 2014
Beiträge
7.128
Hi Sebastian


Der ist mal richtig cool und was der groß ist der Hammer! :good2:

Kann der auch richtig was greifen und umsetzen oder was zusammensetzen, wenn ja das würde ich gerne mal sehen in einem weiteren Video.



Gruß

Michael
 

carver0510

Urgestein
Registriert
20 Mai 2016
Beiträge
895
Also zusammensetzen würde ich bezweifeln. Aber etwas umsetzen soll er können. Das wird aber noch dauern, weil ich davor die Bewegungen Programmieren muss :)

Ich habe auch schon eine sehr konkrete Aufgabe für den Arm. Das kann / werde ich aber erst vorstellen, wenn er es auch wirklich kann ;)
 

Bricksy

Digital-Designer
Ehren-Doctor
Registriert
14 Aug. 2014
Beiträge
7.128
Hi Sebastian


Na das hört sich doch gut an, da bin ich gespannt was da kommen wird!



Gruß

Michael
 

merhof

Trecker-Aushecker
Registriert
30 Dez. 2017
Beiträge
1.632
Ort
Waldeck-Sachsenhausen
BIn gerade über einen facebook-Hinweis gestolpert...

https://www.facebook.com/KUKADACH/p...gdreo5wXr1V5BA6cPMrrjbVZYhe8vEb22g&__tn__=K-R

104537820_837688853423352_6895711044803410524_o.jpg


104226384_837688780090026_4445501774247735115_n.png


https://www.orangeapps.de/?lng=de&page=products/ers&fbclid=IwAR0mW1vSR5ln3h5rBvMGJpoLw7cn91bgkUoeLc39UYoT1aeTC3UYD5sexBM

Sieht aus wie LEGO - ist es das auch? Kuka ist ja mittlerweise chinesisch, wenn ich mich nicht irre...

Und einer der Kommentaroren des Artikels schreibt: "Hamse das dem Seb abgeschaut?" ;)
 
Zuletzt bearbeitet:

TechnicFreakz

Mitglied
Registriert
17 Dez. 2017
Beiträge
38
Jain.

Es gibt einen EV6. Dieser hat nochmal 4 Ports mehr als der EV3.

Oh interessant, weiß man etwas über die Qualität des EV6? Die Bewertungen auf der von dir gesendeten Seite waren jetzt nicht soooo aufschlussreich und auf Google hab ich auf die schnelle nix finden können.

@carver0510 sehr cooles Projekt! Ich bin sehr gespannt zu sehen, wie du das programmieren wirst:fngrcrssd:. Roboter wie die von Kuka haben mich schon immer fasziniert und dann auch noch aus ABS?! Göttlich:inlove:
 

carver0510

Urgestein
Registriert
20 Mai 2016
Beiträge
895
Den Roboter von Kuka habe ich schon gesehen :) Und die Software wäre evtl. sogar interessant. Aber 700€ zahle ich dafür nicht. ;)

Auch eine EV6 würde mir aktuell nichts bringen ... da ja eh schon alles verbaut ist und ich sonst auch Probleme mit dem Kabeln bekommen würde. So kann ich das schön trennen ;)
 
Oben