Hello everyone,
I am currently trying to approximate a custom acceleration profile for PTP motions. The robot is basically only used to perform rotations of the tool around the TCP, which is why I had some prior issues using LIN motions and decided to stick to PTP motions for now. My intention is to e.g. create a motion that is somewhat similar to an S-curve acceleration profile.
(Please excuse the small size, I simply couldn't manage to upload the image directly)
From what I gathered so far, such an acceleration profile could be either accomplished by chopping a single motion into several smaller motions and change $ACC and $VEL in between (orange curve) or by adjusting the program override $OV_PRO either at certain time intervals or in between motions which would result in a smoother acceleration profile but also reduce the programmed velocity by the same factor. I hope I am correct in my understanding so far.
I tried to create example programs to implement this but unfortunately, I only have basic knowledge of KRL programming and limited robot access at the moment. Can anyone tell me if any of my approaches should work as intended or if there are major things I’ve overlooked?
DEF Approach1()
$BASE = {FRAME: X 0.000,Y 0.000,Z 0.000,A 0.000,B 0.000,C 0.000}
$TOOL = {FRAME: X 50.000,Y 0.000,Z 450.000,A 0.000,B 30.000,C 0.000}
…
$ACC.ORI1 = 400.00000
$ACC.ORI2 = 400.00000
$VEL.ORI1 = 100.00000
$VEL.ORI2 = 100.00000
PTP XP1 C_PTP
$ACC.ORI1 = 600.00000
$ACC.ORI2 = 600.00000
$VEL.ORI1 = 250.00000
$VEL.ORI2 = 250.00000
PTP XP2 C_PTP
$ACC.ORI1 = 800.00000
$ACC.ORI2 = 800.00000
$VEL.ORI1 = 500.00000
$VEL.ORI2 = 500.00000
PTP XP3 C_PTP
…
END
Display More
DEF Approach2()
$BASE = {FRAME: X 0.000,Y 0.000,Z 0.000,A 0.000,B 0.000,C 0.000}
$TOOL = {FRAME: X 50.000,Y 0.000,Z 450.000,A 0.000,B 30.000,C 0.000}
…
$ACC.ORI1 = 400.00000
$ACC.ORI2 = 400.00000
$VEL.ORI1 = 100.00000
$VEL.ORI2 = 100.00000
$OV_PRO=25
PTP XP1 C_PTP
$OV_PRO=50
PTP XP2 C_PTP
$OV_PRO=75
PTP XP3 C_PTP
…
END
Display More
DEF Approach3()
$BASE = {FRAME: X 0.000,Y 0.000,Z 0.000,A 0.000,B 0.000,C 0.000}
$TOOL = {FRAME: X 50.000,Y 0.000,Z 450.000,A 0.000,B 30.000,C 0.000}
…
$ACC.ORI1 = 400.00000
$ACC.ORI2 = 400.00000
$VEL.ORI1 = 100.00000
$VEL.ORI2 = 100.00000
$OV_PRO=25
PTP XP1 C_PTP
TRIGGER WHEN DELAY = 100 DO $OV_PRO=50
TRIGGER WHEN DELAY = 200 DO $OV_PRO=75
TRIGGER WHEN DELAY = 300 DO $OV_PRO=100
PTP XP3 C_PTP
…
END
Display More