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

  • Place your Ad here!
  • kwakisaki

    Approved the thread.
  • 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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now

Advertising from our partners