Hello everyone,
My name is Emilio and I'm trying to use a Kuka KR3 R540 as a 3D printer. The software version is KSS 8.5.7 HF1. The controller is a Smart-PAD.
I mounted a direct drive hot-end on the robot and the goal is to deposit material through curved layers. Therefore I need to use all of the DOF of the robot (simultaneous rotation and translation).
The system is almost complete but I cannot find a way to perform a smooth roto-translation with the robot.
I briefly describe the current system:
- My lab PC reads commands from a g-code and sends to the robot the XYZABC coordinates;
- Those coordinates are assigned to a variable ("AIM" in the code below) that is continuously changed (the robot is in a "listening loop");
- Through a LIN movement the robot goes to the coordinates previously sent.
This is the code in KRL I'm using currently:
DEF homing( )
;--------- Declaration section ----------
DECL INT T;
DECL E6POS AIM;
DECL INT I;
DECL AXIS HOME;
;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS == TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV, 0)
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;ENDFOLD (USER INI)
;ENDFOLD (INI)
$TOOL = TOOL_DATA[1]
$BASE = BASE_DATA[1]
;FOLD PTP HOME Vel=100 % DEFAULT;%{PE}%R 8.5.19,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:100, 7:DEFAULT, 9:0
$BWDSTART=FALSE
PDAT_ACT=PDEFAULT
FDAT_ACT=FHOME
BAS(#PTP_PARAMS,100)
SET_CD_PARAMS( 0)
$H_POS=XHOME
PTP XHOME
;ENDFOLD
;--------- Initialization ---------
HOME={AXIS: A1 0, A2 -90, A3 90, A4 0, A5 0, A6 0}
;--------- Main section ---------
PTP HOME;
OPERATION_PENDING = TRUE
FOR T=1 TO 6
$ACC_AXIS[T]=2
$VEL_AXIS[T]=0.56
ENDFOR
$VEL.CP = 3
$VEL.ORI1 = 400
$VEL.ORI2 = 400
$ACC.CP = 1
$ACC.ORI1 = 100
$ACC.ORI2 = 100
$APO.CVEL = 90
$APO.CDIS = 0.5
$ADVANCE=5
CURR_POS=$POS_ACT_MES
$APO.CDIS=50
$APO.CORI=50
CURR_SPEED=0.03
$ORI_TYPE=#JOINT
LOOP
AIM.X=CURR_POS.X
AIM.Y=CURR_POS.Y
AIM.Z=CURR_POS.Z
AIM.A=CURR_POS.A
AIM.B=CURR_POS.B
AIM.C=CURR_POS.C
$VEL.CP=0.5
LIN AIM C_DIS
OPERATION_PENDING = FALSE
ENDLOOP
END
Display More
This codes works smoothly and fine when I'm performing normal planar printing (basically just XYZ coordinates are changed). When I try to change the ABC angles as well, the motion starts to be characterized by start and stop movements. I would like to have a continuous movement if possible, because currently I'm not able to print good quality parts.
I already tried the "C_ORI" together with the "C_DIS" commands. I tried to increase the "$ADVANCE" command but nothing changed.
Is there a way to approximate both rotation and translation simultaneously?
The extruder of the print head is controlled by a separate system.
Thank you in advance for the support.
Best regards,
Emilio