pauses between LIN/CIRC moves

  • Hi everyone!

    I'm new here

    I would like to fix a problem with linear and circular movements.

    This movements are generated by a software CAM (Sprutcam) and upload in Kuka robot (KR C2).

    The movements are something like this...

    ...

    LIN {X 460.459, Y -90.397, Z 208.034, A -37.354, B 50.352, C -134.015} C_DIS

    CIRC {X 461.292, Y -88.808, Z 201.706, A -37.354, B 50.352, C -134.015},{X 461.958, Y -85.961, Z 195.815, A -37.354, B 50.352, C -134.015} C_DIS

    CIRC {X 460.714, Y -82.636, Z 194.563, A -37.354, B 50.352, C -134.015},{X 458.72, Y -81.113, Z 197.37, A -37.354, B 50.352, C -134.015} C_DIS

    LIN {X 458.657, Y -81.243, Z 197.598, A -37.354, B 50.352, C -134.015} C_DIS

    ...

    But between movements we can see little pouses and decelerations.


    In link below you can see what happens

    https://drive.google.com/file/d/1TD6-vg_SWIYfV65N3cdkqu4vXQTxwIRv/view?usp=share_link


    Someone can help me please?

    Thank you

  • kwakisaki

    Approved the thread.
  • Thank you for answer Mentat

    But if I use a large APO.CDIS I start to have imprecision in the cornes of my geometries.

    That's true.

    The only way I can think of to have smooth and precise motion is to convert those motions into splines, that is, if that Kr C2 controller supports them.

  • code snippet in original post only shows few motion points but skips the most important part - how and what motion parameters are initialized. what is value of $ADVANCE?

    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

  • code snippet in original post only shows few motion points but skips the most important part - how and what motion parameters are initialized. what is value of $ADVANCE?

    thank you

    $ADVANCE is set to 5

    this is my initial parameters ...



    $VEL.CP = 1

    $VEL.ORI1 = 100

    $VEL.ORI2 = 100

    $ACC.CP = 1

    $ACC.ORI1 = 100

    $ACC.ORI2 = 100

    $ADVANCE = 5

    $APO.CDIS = 1

    $ORI_TYPE = #VAR

    $TOOL = {X 432.967, Y 0.558, Z 207.046, A -89.24, B 66.306, C -89.305}

    $BASE = {X 2516.382, Y 17.498, Z 1205.042, A 45.325, B -0.585, C -0.518}

    PTP {A1 0.000, A2 -140.000, A3 90.000, A4 0.000, A5 50.000, A6 0.000}

    PTP {A1 -0.343, A2 -106.973, A3 105.049, A4 -15.628, A5 75.600, A6 136.874}

    $VEL.CP = 0.5

    LIN {X -560.396, Y 284.76, Z 346.441, A 0, B -88.205, C 90} C_DIS

    LIN {X -560.396, Y 250, Z 346.441, A 0, B -88.205, C 90} C_DIS

    LIN {X -560.396, Y 150, Z 346.441, A 0, B -88.205, C 90} C_DIS

    LIN {X -560.062, Y 150, Z 346.161, A 0, B -88.199, C 90} C_DIS

    CIRC {X -559.52, Y 150, Z 340.535, A 0, B -87.979, C 90},{X -553.894, Y 150, Z 341.077, A 0, B -88.093, C 90} C_DIS

    CIRC {X -554.436, Y 150, Z 346.703, A 0, B -88.312, C 90},{X -560.062, Y 150, Z 346.161, A 0, B -88.199, C 90} C_DIS

    LIN {X -558.133, Y 150.1, Z 348.655, A 0, B -88.332, C 90} C_DIS

    ...

  • increase this value


    $APO.CDIS = 1


    don't be afraid to make it generous - motion planner will automatically reduce actually used approximation distance when points are close.

    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

  • increase this value


    $APO.CDIS = 1


    don't be afraid to make it generous - motion planner will automatically reduce actually used approximation distance when points are close.

    Thanks for help but if i increase this value i have problems with some geometries like a simple square when i have to keep the sharp corners for example.


    There is some parameter that I can control the deceleration between LIN/CIRC movements?


    In advantage, I have doubts about the ACC.CP parameter.

    I noticed that we can adjust between 1 and 10, but I don't understand how it actually works :frowning_face:

    Maybe this parameter is related to my problem.

  • you cannot bend the laws of nature. robot cannot change direction instantly without decelerating or stopping. so when well defined corners are needed, approximation is not going to work there.


    $ACC.CP is a system variable. it is documented - read the system variable manual.

    its value is not limited to integers in range 1-10. this is a REAL and values 0-10 are possible, such as 0.0125 m/s2 or 9.75 m/s2

    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

  • If it helps, you can also use C_VEL instead of C_DIS. C_DIS sets smoothing at a certain distance of the point. C_VEL try's to keep a certain speed through a point.


    This is not a miracle worker, like Panic mode said you can not bend the laws of nature. but during some milling operations i find it easier to use. C_DIS I only use when i need a specific radius.

    Every problem has a solution, that isn't the problem. The problem is the solution.

  • If it helps, you can also use C_VEL instead of C_DIS. C_DIS sets smoothing at a certain distance of the point. C_VEL try's to keep a certain speed through a point.


    This is not a miracle worker, like Panic mode said you can not bend the laws of nature. but during some milling operations i find it easier to use. C_DIS I only use when i need a specific radius.

    Hmmmm, it sound good Leon.

    I'll try this and if it works well I'll let you know.

    Thank you very much!!!

  • Hi everyone

    I would like to report the results of my tests change parameter APO.CDIS and C_DIS per APO.CVEL and C_VEL.

    The moves are much more smooth and the pouses between movements almost disappeared.

    Thank you so much Leon, it really helped me

Advertising from our partners