Forum: Mechanik, Gehäuse, Werkzeug 6-DOF Knickarm-Roboter mit C#


von Chris (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen

Darf ich euch hier meinen 6 Achsen Knickarm-Roboter vorstellen? Alles 
aus dem 2D Lasercutter und dem 3D-Drucker. Als Getriebe wurden 
Zahnriemen genommen.

https://www.youtube.com/watch?v=k47auAHhDr4

Die Antriebe sind alles Servomotoren "HDrives" aus meinem aktuellen 
Kickstarter Projekt: http://kck.st/2gal6IG

Die Kinematik wird in C# auf meinem Windows PC berechnet. Der 
kartesische Bahnplaner läuft mit 1 kHz.  Das ganze über TCP/IP und UDP. 
Nicht zeitdeterministisch, es funktioniert aber sehr gut.

Ich bin gespannt auf euer Feedback :).

Liebe Grüsse
Chris

: Verschoben durch User
von Alexander S. (alex998)


Lesenswert?

Chris schrieb:
> Ich bin gespannt auf euer Feedback :)

OK. Dein Robbi sieht ja schnucklig aus, soweit sehr ansehnlich.

Aber zu deinem Kickstarter-Projekt: Nicht dein Ernst, oder? Muss man 
denn unbedingt jeden Scheiss ans Netz anstöpseln? Wofür braucht ein 
Schrittmotor Internet? Ich seh es schon kommen wie Botnetze von Steppern 
die Weltherrschaft an sich reissen.

von Chris (Gast)


Lesenswert?

Alexander S. schrieb:
> Aber zu deinem Kickstarter-Projekt: Nicht dein Ernst, oder? Muss man
> denn unbedingt jeden Scheiss ans Netz anstöpseln? Wofür braucht ein
> Schrittmotor Internet? Ich seh es schon kommen wie Botnetze von Steppern
> die Weltherrschaft an sich reissen.

Ich geb dir 100% recht. Das "IoT" hat aber auch eine Werbefunktion. Wir 
betreiben keinen Motor im Internet bei uns.
Der Vorteil an der Geschichte ist, dass ich keine Gerätetreiber und 
keine Schnittstellenadapter (CAN, DeviNet, etc.) brauche.

Als Beispiel: In Matlab braucht man nur 3 Zeilen Code um einen Motor zu 
bewegen!
In C# oder Java auch nicht viel mehr: 1. TCP Socket erstellen, 2. XML 
Ticket mit Fahrbefehl generieren, 3. absenden.

Man braucht keinerlei zusätzliche Elektronik wie Arduino, Raspberry pi 
etc.

von Alexander S. (alex998)


Lesenswert?

Chris schrieb:
> Das "IoT" hat aber auch eine Werbefunktion.

Schade dass man so etwas heutzutage quasi tun muss.

Aber noch ne Frage, TCP ist ja auch nicht gerade als Echtzeitprotokoll 
bekannt. Ist es wirklich sinnig das so zu tun? CAN und Konsorten sind 
vllt. doch besser geeignet.

> keine Schnittstellenadapter
Naja, ein Netzwerkadapter ist genau das.


Ich wills dir aber nicht madig machen; dürfte ne ganze Menge Arbeit 
dahinterstehen und scheint ja zu funktionieren. Hoffe dass du dein 
Finanzierungsziel erreichst, viel Spass noch.

von rmu (Gast)


Lesenswert?

Für 6 Motoren braucht man ja fast schon einen eigenen switch.

Kann man die Motoren per multicast ansprechen? So dass man mit einem 
Paket die Soll-Position aller Motoren setzen kann?

von Chris (Gast)


Lesenswert?

Ciao Alexander, vielen Dank für deine ehrliche Antwort.
Wir wissen, wir fahren einen ganz eigenen Weg.

Die harte Echtzeitfähigkeit ist bei TCP nicht vorhanden. Deshalb bieten 
wir auch eine CAN Schnittstelle als auch ein Step/Dir Interface an. 
Dennoch das TCP funktionier überraschend gut, wir Kommunizieren mit bis 
zu 2kHz mit den Motoren. Diese senden kontinuierlich ihre Daten welche 
einen RTC clock beinhalten, so kann man immerhin sehen wenn irgend etwas 
nicht stimmt.

Die Innovation liegt aber wo anders, und ich möchte wissen ob euch das 
den Preis vom Motor Wert ist:

Mit dem "HDrive" können z.B. Prototypen in kürzester Zeit gebaut werden. 
Macht euch keine Gedanken mehr über Schrittmotor Treiber und Hardware 
Ansteuerungen. Der HDrive funktioniert sofort und kann wie ein Werkzeug 
verwendet werden.

Als Beispiel ein 3D Scanner, gebaut in einem halben Tag: 
https://www.youtube.com/watch?v=BzsTlfyQbL4&t=2s

Mit Schnittstellenadapter meinte ich CAN zu USB etc. diese zicken oft 
rum und machen Probleme.

von Chris (Gast)


Lesenswert?

rmu schrieb:
> Für 6 Motoren braucht man ja fast schon einen eigenen switch.
Ja, das haben wir auch so gemacht :)

> Kann man die Motoren per multicast ansprechen? So dass man mit einem
> Paket die Soll-Position aller Motoren setzen kann?
Noch nicht probiert, könnte man entwickeln. Für die Echtzeit 
synchronisation wäre aber CAN besser geeignet, und könnte zugleich auch 
als Bus-System durch den Roboter geführt werden.

Die Latenzzeit über TCP ist in unserem Netzwerk aber <10ms (2 Switch, 6 
Motoren).
es geht schon ziemlich zackig.

von Alexander S. (alex998)


Lesenswert?

Chris schrieb:
> Der HDrive funktioniert sofort und kann wie ein Werkzeug
> verwendet werden.

Wenn das wirklich PROBLEMLOS so funktioniert - ja, könnte man drüber 
nachdenken. Andererseits ist euer avisierter Preis von 350$ doch schon 
etwas hoch. Der aus dem Vollen gefräste Aluklotz ist wohl sehr 
preistreibend. Sag mal, einfacher Thermoplast-Spritzguss (zB PA66, 
notfalls glasfaserverstärkt) würde nicht funktionieren?
Wie sieht es eigtl. mit Kühlung aus, warum ist da kein Lüfter 
angeflanscht, würde sich doch anbieten.

von Chris (Gast)


Lesenswert?

Das Gehäuse ist vom Prototypen, wir dachten eigentlich an einen 
Aluminium Spritzguss. Ich habe dein Werkstoff aber auf meine Liste 
genommen :).

Kühler brauchen wir keinen, der Leistungstreiber ist überdimensioniert 
und hat einen sehr hohen Wirkungsgrad. Wir probieren auch den Motor von 
der Elektronik und dem Gehäuse thermisch zu isolieren, deshalb würde der 
Kühler auch für den Motor nur wenig bringen.

von noreply@noreply.com (Gast)


Lesenswert?

Warum läuft bei mir eine CPU auf 100 % wenn ich das Kick-Start-Projekt 
anklicke?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ich kann hier kein "Projekt" erkennen. Kommt da noch was?

von Chris (Gast)


Lesenswert?

Hier noch ein parr details:
http://www.roboternetz.de/community/threads/69942-6-Achsen-Knickarm-Roboter

für die CPU last kann ich nichts :)
Grüsse und schöne Adventszeit

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ist also kein Projekt. Da es um schicke Mechanik geht, ist's unter 
"Mechanik" ja vielleicht besser aufgehoben.

von Elmer (Gast)


Lesenswert?

Könntest du das auch in einer richtigen Programmiersprache umsetzen?

von Dampf T. (ouuneii)


Lesenswert?

Tolles Projekt. Was mir noch nicht so klar ist, ist das Error Handling 
wenn etwas nicht geht. Wenn man zB mehrere Motore hat und einer hat ein 
Problem, sollten die anderen auch stoppen, sonst geht etwas kaputt. 
Dafuer lass ich mir per UDP kontinuierlich den Status senden. Und muss 
dann darauf reagieren und den laufenden Prozess abbrechen, 
ueberschreiben.

Ein Fehler koennte zB  sein, ich gebe ein ganz kleines Drehmoment vor 
und lasse langsam drehen bis er in einen Anschlag faehrt. Dh der Winkel 
aendert sich bei gegebenem Drrehmoment nicht mehr.

Zu irgend einem Zeitpunkt muss ich einen Referenzpunkt anfahren. Da 
wuerd man eine eher langsame Rotation vorgeben und fuer den Motor 
ploetzlich einen Stopbefehl geben. Das waere dann meine 
Referenzposition, die Winkel-Null. Der Stopbefehl wuerde aufgrund eines 
externen Ereignisses, zB Position erreicht oder so generiert.

Wie geht das so ?

Nochwas. Kann man die Position nach einem Powerup auslesen, ohne bewegen 
zu muessen ?

Feedback. Ja. Ausser der seriellen Schnittstelle ist die Ethernet 
Schnittstelle die einzige Konstante fuer die naechsten paar Jahre.
Und man benoetigt fuer beide keine Treiber. Naja so etwa.

Fuer erhoehte Anforderungen kann man den PC nicht mehr verwenden, da vor 
allem dieser die Echtzeitfaehigkeit nicht besitzt. Dann mustte man den 
Bahnrechner in einem Raspi oder so auslagern.

Fuer einfache Anforderungen waere auch eine serielle Schnittstelle 
genuegend.

Der Preis fuer Prototypenbau ist ok, denn selber hab ich viel laenger 
und nie was so passendes.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.