Approximation between LIN and PTP

  • Hello guys,


    I am trying to do a continuous movement between a linear and PTP movements, however, I am noticing that the motion of the robot is not completely continuous. The robot is decelerating at the end of the LIN movement and barely stopping before continuing the PTP movement. I tried to do some troubleshooting, by enabling the $STOPNOAPROX to true but there's no sign of not doing an approximation. Here is part of the code that include the LIN and PTP movement:


    Code
    LIN temp_pos6 C_DIS; to try ptp
    ;Waiting Zone Free
    CONTINUE
    WAIT FOR $IN[194]
    PTP DPoint[LayerIndexAMD_01_NOROT, PickIndexAMD_01_NOROT, 6] C_PTP


    The $advance run is 5 and I am able to do an approximation between 2 PTP however it is not working well between LIN-PTP movement. In addition to that, C_PTP and C_DIS approximation values are equal to 100 for both.


    Could someone give me more tips on what can be the cause of not doing a continuous movement?


    Thank you for your support.


    Best regards,

  • If stopnoaprox is showing nothing you are definitely blending only maybe with a very low velocity looking nearly as if robot stopps.


    You are aware that c_ptp is a percentage value referring to an axis angle and c_dis a cartesian distance value. Hence like this the blending area might be very assymetric. Does it get better when using c_dis on both sides by using lin ... c_dis c_dis. Also in mixed blending it's always a bit difficult if accelerations on both sides are very different. Therfore it often helps a bit playing around with accelerations on lin and/ or ptp side.


    Fubini

  • If stopnoaprox is showing nothing you are definitely blending only maybe with a very low velocity looking nearly as if robot stopps.


    You are aware that c_ptp is a percentage value referring to an axis angle and c_dis a cartesian distance value. Hence like this the blending area might be very assymetric. Does it get better when using c_dis on both sides by using lin ... c_dis c_dis. Also in mixed blending it's always a bit difficult if accelerations on both sides are very different. Therfore it often helps a bit playing around with accelerations on lin and/ or ptp side.


    Fubini

    Hello Fubini,


    Yes I tried c_dis c_dis next to LIN instruction and didn't work. The acceleration for both sides is equal to100. Do you suggest to change one of the accelerations?

  • The "wait for $IN[194]" before the PTP could be a problem.


    Try put "WAIT FOR $IN[194] CONT

    No, that's not correct KRL syntax. He has the CONTINUE command precedding the WAIT, which causes the WAIT to be evaluated $ADVANCE moves ahead and prevents the WAIT from breaking the advance run pointer.

    Hello Fubini,


    Yes I tried c_dis c_dis next to LIN instruction and didn't work. The acceleration for both sides is equal to100. Do you suggest to change one of the accelerations?

    Approximation, not acceleration.

    C_PTP and C_DIS approximation values are equal to 100 for both.

    What does this mean? C_PTP and C_DIS are command suffixes, not values. Which variables have you set the approximations in?


    If you've set the linear approximation value to 100, then it's only 100mm. You can set the approximation distance to anything up to 50% of the distance between the two points.

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