ToolPath velocity control while using DKP 400

  • Hello


    KR240 R2900, KRC4 , KSS 8.6.7, DKP 400 V1, Fronius ROB 5000.


    I am working on 3d printing with above mentioned setup. I have trouble maintaining the speed.

    The toolpath looks like a zigzag pattern, I am aware that the robot has to slow down at the corners to achieve 180 degree turns, but this speed deviation is way more when I include the external axes movements in the motion command (LIN) compared to when using robot axes alone.


    In the attached example(test1) the robot speed varies between 0.004-0.09 even though the programmed speed is 0.01

    • The robot and external axis motions are synchronized and mathematically coupled.
    • The printed toolpath looks as intended.

    In the attached example(test2) the robot speed varies between 0.008-0.009

    • The robot and external axis motions are synchronized and mathematically coupled.
    • The printed toolpath looks as intended.

    The only difference is the movement of coupled external axes. The speeds mentioned above are observed through analog output as defined in the attached files.


    Do the external axes movements restrict the print speed?

    How do I achieve constant(almost) path speed while using external axes(DKP)?

    I also purchased KUKA.CNC (did not use it yet), will it help to achieve better results?


    Please let me know if I am missing any major steps or information here.


    Thanks and Regards

    SPK

  • Of course restrictions of the external axes are taken into account. Whats the programmed velocities, accelarations (and if spline jerks) for your external axes? In case of coupled konematics the overall system can only drive as fast as the slowest component allows.


    Fubini

  • Hi Fubini,


    Thank you for the response.


    I attached the $machine file. I only changed $VEL_AXIS_MA[7,8] to 4100 from lower values, as the rated values are 4300 and 4100 respectively.


    I also defined both $VEL_EXTAX[] and $ACC_EXTAX[] to 100 for both the axes(1,2).


    DEF speedTest()

    ;------- Declaration section -------

    ;FOLD DECL

    DECL REAL printVel

    ;ENDFOLD

    ;------- Initialization ---------

    BAS (#INITMOV,0)

    BAS(#VEL_PTP, 10)

    $VEL.CP = 0.01

    $ACC.CP = 1

    $APO.CDIS = 50

    $APO.CVEL = 80


    $VEL_EXTAX[1]=100

    $ACC_EXTAX[1]=100


    $VEL_EXTAX[2]=100

    $ACC_EXTAX[2]=100


    PDAT_ACT = {VEL 10,ACC 100,APO_DIST 50}

    FDAT_ACT = {TOOL_NO 5,BASE_NO 3,IPO_FRAME #BASE}

    BAS (#PTP_PARAMS,15)

    printVel = 0.01

    ;----------- Main section ----------

    PTP $POS_ACT

    ;Time Stamp 08/25/2023 11:18:59

    ANOUT ON CHANNEL_1 = 1.0*$VEL_ACT+0.0 DELAY=0

    ;FOLD LIN P0 (0%)

    $VEL.CP = printVel

    LIN {E6POS: X 36.85, Y 14.09, Z 22.03, A 48.708, B 87.197, C 136.76, E1 -2.80, E2 -48.71}C_VEL

    LIN {E6POS: X 38.53, Y 12.92, Z 22.03, A 44.624, B 87.996, C 136.694, E1 -2.00, E2 -44.62}C_VEL

    LIN {E6POS: X 37.11, Y 11.52, Z 21.96, A 44.624, B 87.996, C 136.734, E1 -2.00, E2 -44.62}C_VEL

    LIN {E6POS: X 38.66, Y 10.38, Z 21.99, A 40.126, B 88.985, C 136.675, E1 -1.01, E2 -40.13}C_VEL

    LIN {E6POS: X 40.19, Y 11.67, Z 22.02, A 40.126, B 88.985, C 136.631, E1 -1.01, E2 -40.13}C_VEL

    LIN {E6POS: X 41.80, Y 10.27, Z 22.01, A -144.806, B 89.92, C -43.132, E1 0.08, E2 -34.90}C_VEL

    LIN {E6POS: X 40.17, Y 9.12, Z 22.01, A -144.806, B 89.92, C -37.864, E1 0.08, E2 -29.68}C_VEL

    LIN {E6POS: X 41.54, Y 7.69, Z 22.03, A -150.317, B 88.9, C -43.411, E1 1.10, E2 -29.68}C_VEL

    LIN {E6POS: X 43.28, Y 8.68, Z 21.99, A -150.317, B 88.9, C -43.46, E1 1.10, E2 -29.68}C_VEL

    LIN {E6POS: X 44.50, Y 6.85, Z 21.97, A -156.534, B 88.2, C -43.488, E1 1.80, E2 -23.47}C_VEL

    LIN {E6POS: X 42.66, Y 6.05, Z 22.03, A -156.534, B 88.2, C -43.436, E1 1.80, E2 -23.47}C_VEL

    LIN {E6POS: X 43.37, Y 4.20, Z 22.03, A -163.532, B 88.108, C -43.456, E1 1.89, E2 -16.47}C_VEL

    LIN {E6POS: X 45.29, Y 4.77, Z 21.96, A -163.532, B 88.108, C -43.512, E1 1.89, E2 -16.47}C_VEL

    LIN {E6POS: X 45.50, Y 2.54, Z 21.99, A -170.97, B 88.865, C -43.529, E1 1.14, E2 -9.03}C_VEL

    LIN {E6POS: X 43.52, Y 2.23, Z 22.03, A -170.97, B 88.865, C -43.472, E1 1.14, E2 -9.03}C_VEL

    .

    .

    .

    I still can not achieve the constant (atleast close to) velocity of 0.01 at the TCP, which is a problem for welding(WAAM). What else should I be considering to improve it?

  • you initialize values then run some other code before doing LIN motions.


    did you even check what this does:


    Code
    BAS (#PTP_PARAMS,15)


    if i am not mistaken it overwrites velocity for all axes .... including E1 and E2. so they are 15% and no longer 100%


    btw, your code is not even executable. i do not see tool and base selection. without them there is no LIN motion.

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • Bas (#ptp_params,15) indeed sets the values for external axis, but not shure if they are used when moving linear and coordinated. :hmmm:


    Tool / base selection is also done by BAS (#ptp_params,15).


    But are you sure that the base no 3 uses coupled / coordinated motion?

    Upload your $config.dat, you can see it in MACHINE_FRAME_DAT[3].MACH_DEF_INDEX

  • if i am not mistaken it overwrites velocity for all axes .... including E1 and E2. so they are 15% and no longer 100%


    btw, your code is not even executable. i do not see tool and base selection. without them there is no LIN motion.

    As hermann suspected BAS (#PTP_PARAMS,15) only affects the PTP movement. I tried changing it to 100 and observed no change in velocity in linear movements.


    FDAT_ACT = {TOOL_NO 5,BASE_NO 3,IPO_FRAME #BASE}

    BAS (#PTP_PARAMS,15)

    This usually sets the tool/base.


    But are you sure that the base no 3 uses coupled / coordinated motion?

    Upload your $config.dat, you can see it in MACHINE_FRAME_DAT[3].MACH_DEF_INDEX

    Yes, the base no 3 is calibrated with reference to the DKP. Here is the frame definition from $config.dat:


    MACHINE_FRAME_DAT[3]={MACH_DEF_INDEX 2,PARENT[] "DKP-400_1_40A",GEOMETRY[] "ObjectId = -338815267"}


    I think, even though the commanded linear velocity is 0.01, the required axis movements could be over demanding to achieve it. How could I calculate the exact axis RPM so that I can figure out maximum possible linear velocity at the toolpath point?


    Is there anything else I can do to unleash :upside_down_face: the full potential of the motors (if not already done from my script)

    Edited once, last by yourspk ().

  • Hi,


    I had the same problem at my workplace with a KR8 R1620 robot and a DKP 400 40A positioner.

    Answers to your questions:

    - the external axes limit the robot movements. The table is equipped with a gearbox, which is there to allow the table to handle heavy products and ensure accuracy, while the dynamics of the table are lost.

    - The problems with maintaining a constant speed are related to several things. First, it depends on what tolerance you used in CAM when generating the code. Next, it depends on the maximum possible length of a single element. Here you have to find a compromise. Small segments next to each other will ensure constant speed, but the robot controller does not keep count and therefore the robot runs slowly. Large segments cause large oscillations in speed. It also depends on what exactly you are printing. When you print the cylinder so that the robot is standing still and only the table is moving, you are very limited in speed - the radius of the cylinder also matters (the smaller the radius, the slower the process). So ideally you want to set the code generation so that both the robot and the positioner are moving.

    - Unfortunately, the KUKA CNC package does not offer improvements in the basic version. It is necessary to purchase Extended HSC programming (in the programming manual page 313), which allows processing of a large number of commands in mode 2 (surface optimizer).


    Good luck with your projects,


    Tomas

Advertising from our partners