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
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.
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.
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.
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?
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.
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.
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.
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.
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.