Guten Tag
Ich bin dabei für eine studentische Arbeit einen Stäubli TX2-40 Roboter über eine SPS mit einem Joystick zu verfahren. Der Roboter soll lediglich lineare Bewegungen in X-, Y- und Z-Richtung ausführen. Die Analogwerte des Joysticks bzw. X-, Y- und Z-Koordinaten werden via EtherCAT über die analogen Eingänge der Steuerung auf den Roboter übertragen. Die Koordinaten ändern sich kontinuierlich je nach Auslenkung des Joysticks. Wenn ich nun diese dynamischen Koordinaten in einen linearen Fahrbefehl einbinde führt der Roboter die gewünschte Bewegung zwar aus, jedoch ruckelt er sehr stark. Wahrscheinlich aus dem Grund, dass er jeder punkt anfährt, stoppt und auf den nächsten Punkt wartet. Ich habe danach versucht mit einer delay vier Punkte zu definieren damit das Programm weitere Punkte zur Verfügung hat. Das Problem mit dem Ruckeln oder stottern beim Verfahren besteht leider weiterhin. Hat jemand eine Ahnung wie ich die Punkte verschleifen kann, damit er möglicherweise nicht an jedem Punkt stillsteht und eine fliessende Bewegung entsteht?
Als Bemerkung: Das ist meine erste Aufgabe mit einem Industrieroboter. Ich bin also Neuling
Ich danke euch bereits im Voraus für Hilfeleistungen
Anbei liegt ein ausschnitt aus meinem Val3 Programm:
Auschnitt aus Unterprogramm für Definition der Punkte:
(xcoord_num, ycoord_num, zcoord_num sind die dynamischen Werte des Joysticks.
// Position adaptation
X_Target = xcoord_num
Y_Target = ycoord_num
Z_Target = zcoord_num
pTarget[0]={{X_Target,Y_Target,Z_Target,180,0,180},{sfree,efree,wfree}}
delay(0.00002)
X_Target1 = xcoord_num
Y_Target1 = ycoord_num
Z_Target1 = zcoord_num
pTarget[1]={{X_Target1,Y_Target1,Z_Target1,180,0,180},{sfree,efree,wfree}}
delay(0.00002)
X_Target2 = xcoord_num
Y_Target2 = ycoord_num
Z_Target2 = zcoord_num
pTarget[2]={{X_Target2,Y_Target2,Z_Target2,180,0,180},{sfree,efree,wfree}}
delay(0.00002)
X_Target3 = xcoord_num
Y_Target3 = ycoord_num
Z_Target3 = zcoord_num
pTarget[3]={{X_Target3,Y_Target3,Z_Target3,180,0,180},{sfree,efree,wfree}}
waitEndMove()
Auschnitt aus main Programm für Fahrbefehl:
movel(pTarget[0],flange,mSmooth)
movel(pTarget[1],flange,mSmooth)
movel(pTarget[2],flange,mSmooth)
movel(pTarget[3],flange,mSmooth)