Fünf-Achsen-Roboterarm TCP/IP über Raspberry Pi

Die Motoren

Die HDrive-Motoren sind drehmomentstark (0.4 Nm bei 300 RPM) und fordern wenig Aufwand zur Inbetriebnahme. Dabei handelt es sich um bipolare Hybrid-Schrittmotoren mit einer feldorientierten Ansteuerung. Ihr Verhalten gleicht einem sehr starken, hochpoligen DC-Motor.

Es erfolgen keine Schritte: Auch unter blockierter Welle drückt der Motor mit konstantem Drehmoment, anstelle eines Synchronfeldverlustes und damit einem Durchrutschen wie bei konventionellen Schrittmotoren. Die Motoren verfügen über eine Ethernet/IP-Schnittstelle und können aus fast jeder Programmiersprache angesteuert werden.

Folgendes TCP-Telegramm genügt um die Zielposition von 15° zu erreichen:

<control position=“150“ speed=“900“ torque=“200“ mode=“129“ acceleration =“200“ deceleration=“50“ />

Der Modus unterscheidet in welchem Fahrprofil wie Drehmoment, Geschwindigkeit oder Position gefahren wird. Die Position wird in Zehntel-Grad angegeben.

Dabei sind keinerlei Gerätetreiber, komplizierte Protokolle oder Bus-Adapter notwendig. Jeder Motor besitzt einen Webserver über den sofort aktuelles Drehmoment, Geschwindigkeit, Position und viele weitere Parameter gelesen oder geschrieben werden. Insbesondere die Regelparameter des PID-T1 Positionsreglers werden so für jede Achse separat definiert.

Die Inbetriebnahme forderte damit nicht einmal eine Stunde, die Motoren konnten aus C# angesteuert werden.

Dazu muss lediglich das XML-Ticket über TCP zum ersten Antrieb gesendet werden. Jeder HDrive17 kann auch als CAN-Master konfiguriert werden und so bis zu sieben zusätzliche Slave-Motoren steuern. Konfiguriert wird alles einmalig über ein Webinterface welches der Motor bereitstellt. Die restlichen vier Motoren werden mit nur zwei Adern durch den ganzen Roboter von Motor zu Motor durchgeschlauft. Das über Ethernet gesendete Ticket beinhaltet die Zielpositionen aller 5 Motoren. Der Master kümmert sich um den Rest und leitet die über Ethernet/IP empfangenen Positionsdaten an sich selbst, sowie an die entsprechenden Slave-Motoren weiter.

Die empfangenen Zielpositionen werden von den Motoren jeweils über den integrierten Positionsregler eingestellt. Der übergeordnete Bahnplaner, welcher die Zielpositionen der einzelnen Achsen mit deren Beschleunigungswerten berechnet, befindet sich auf dem Steuerungs-PC resp. dem Raspberry Pi.