Hi everybody
I hope you are doing well and great.
I am a robotic simulation engineer with relevant background in some projects.
Currently i am working for a depalletizing project with kuka robots by using kuka sim pro and there i am facing some issues with a programming structures.
Exact scenario,
I want my robot to unload the 4 different boxes at a 4 iterations.
For this i am using one single program with base frame shift option in kuka sim pro, we have 32 boxes with 4 variety. one variety of boxes stacked above as 8 and same for remaining 3 as well, so total of 32 with stacked of each 8.
I have used FOR in programming and i have given COUNTER variable to calculate and switch to different program after each box pick.
The issue is for first 4 iterations its working fine after 5th iteration its keep on on picking the first boxes again and again.
Can you help me on this to solve my issue.
Let me know if you have any questions.
KUKA robots depalletizing base frame is not shifting after some iterations
-
Dinesh007 -
October 6, 2024 at 11:56 AM -
Thread is Unresolved
-
-
massula
October 6, 2024 at 2:35 PM Approved the thread. -
Can you post your current program?
-
Here is my SRC file for depalletizing project which i created in kuka sim
DEF MAIN()
;FOLD PTP HOME Vel=100 % DEFAULT Tool[1]:TOOL_DATA[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=HOME; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.MoveDataPtpName=DEFAULT; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP; SimId=
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PDEFAULT
FDAT_ACT = FHOME
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XHOME
;ENDFOLD
pick_and_drop()
;FOLD PTP HOME Vel=100 % DEFAULT Tool[1]:TOOL_DATA[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=HOME; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.MoveDataPtpName=DEFAULT; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP; SimId=
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PDEFAULT
FDAT_ACT = FHOME
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XHOME
;ENDFOLD
ENDDEF Pick1()
;FOLD PTP P1 CONT Vel=100 % PDAT14 Tool[1]:TOOL_DATA[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=P1; Kuka.BlendingEnabled=True; Kuka.APXEnabled=False; Kuka.MoveDataPtpName=PDAT14; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP; SimId=
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT14
FDAT_ACT = FP1
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XP1 C_Dis
;ENDFOLD
;FOLD PTP approach CONT Vel=100 % PDAT13 Tool[1]:TOOL_DATA[1] Base[1]:BASE_DATA[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=approach; Kuka.BlendingEnabled=True; Kuka.APXEnabled=False; Kuka.MoveDataPtpName=PDAT13; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP; SimId=
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT13
FDAT_ACT = Fapproach
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP Xapproach C_Dis
;ENDFOLD
;FOLD LIN pick_point Vel=2 m/s CPDAT8 Tool[1]:TOOL_DATA[1] Base[1]:BASE_DATA[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=pick_point; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.MoveDataName=CPDAT8; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN; SimId=
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT8
FDAT_ACT = Fpick_point
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN Xpick_point
;ENDFOLD
$OUT[1] = TRUE
;FOLD LIN depart Vel=2 m/s CPDAT9 Tool[1]:TOOL_DATA[1] Base[1]:BASE_DATA[1] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=depart; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.MoveDataName=CPDAT9; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN; SimId=
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT9
FDAT_ACT = Fdepart
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN Xdepart
;ENDFOLD
ENDDEF Drop1()
;FOLD PTP P6 CONT Vel=100 % PDAT17 Tool[1]:TOOL_DATA[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=P6; Kuka.BlendingEnabled=True; Kuka.APXEnabled=False; Kuka.MoveDataPtpName=PDAT17; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP; SimId=
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT17
FDAT_ACT = FP6
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XP6 C_Dis
;ENDFOLD
;FOLD PTP P5 CONT Vel=100 % PDAT16 Tool[1]:TOOL_DATA[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=P5; Kuka.BlendingEnabled=True; Kuka.APXEnabled=False; Kuka.MoveDataPtpName=PDAT16; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP; SimId=
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT16
FDAT_ACT = FP5
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XP5 C_Dis
;ENDFOLD
;FOLD PTP P3 CONT Vel=100 % PDAT15 Tool[1]:TOOL_DATA[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=P3; Kuka.BlendingEnabled=True; Kuka.APXEnabled=False; Kuka.MoveDataPtpName=PDAT15; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP; SimId=
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT15
FDAT_ACT = FP3
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XP3 C_Dis
;ENDFOLD
$OUT[100] = FALSE
;FOLD LIN P2 Vel=2 m/s CPDAT10 Tool[1]:TOOL_DATA[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=P2; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.MoveDataName=CPDAT10; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN; SimId=
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT10
FDAT_ACT = FP2
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XP2
;ENDFOLD
$OUT[1] = FALSE
;FOLD LIN P4 Vel=2 m/s CPDAT11 Tool[1]:TOOL_DATA[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=P4; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.MoveDataName=CPDAT11; Kuka.VelocityPath=2; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=LIN; SimId=
;ENDFOLD
$BWDSTART = FALSE
LDAT_ACT = LCPDAT11
FDAT_ACT = FP4
BAS(#CP_PARAMS, 2.0)
SET_CD_PARAMS (0)
LIN XP4
;ENDFOLD
;FOLD PTP P7 Vel=100 % PDAT18 Tool[1]:TOOL_DATA[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=P7; Kuka.BlendingEnabled=False; Kuka.APXEnabled=False; Kuka.MoveDataPtpName=PDAT18; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP; SimId=
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT18
FDAT_ACT = FP7
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XP7
;ENDFOLD
$OUT[100] = TRUE
ENDDEF pick_and_drop()
FOR COUNTER = 1 TO 32
Boxes=COUNTER - ( COUNTER / 4 ) * 4
Pick1()
Drop1()
SWITCH Boxes
CASE 1
BASE_DATA[1]=BASE_DATA[1]:{ X 0, Y 500, Z 0, A 0, B 0, C 0 }
CASE 2
BASE_DATA[1]=BASE_DATA[1]:{ X 700, Y 0, Z 0, A 0, B 0, C 0 }
CASE 3
BASE_DATA[1]=BASE_DATA[1]:{ X 0, Y -500, Z 0, A 0, B 0, C 0 }
CASE 0
BASE_DATA[1]=BASE_DATA[1]:{ X -700, Y 0, Z -200, A 0, B 0, C 0 }
ENDSWITCH
ENDFOR
ENDPlease let me know if you have any questions
-
if you really wrote that, you know how it is supposed to work.
and the way it is written, X and Y values will repeat after 4 transfers (again and again) but Z value will keep on decrementing by 200mm for each new layer.
-
and here is the proof... notice that Z value is decreasing every four transfers.
-
Hi
As you said this base z value will decrease after 4 picks by 200mm because the box height is 200mm i created and for this only i given 200mm offset in z direction.
-
Can you tell me the software which you used to check my program?
-
Can you tell me the software which you used to check my program?
Think he has used the special an unique software in his brain. You can't download it anywhere.
-
согласен с автором выше это поможет!
-
Can you tell me the software which you used to check my program?
i just looked at the code and saw what it does.
the video clip shows OfficeLite... in this case it was an ancient one (KSS5.5) since old software loads faster. the right side shows variable overview. due limitations on scope of variables that can be monitored, i copied local variables to global counters...