PTP and SPTP difference

  • all of this is explained in manuals.


    PTP is joint move. each axis starts and stops moving together. since each axis is only concerned with own target and start/stop angles can be anything, TCP is moving along complex path which is usually simply described as "not predictable" since no other concern is given. this means too orientation is not maintained, speed at TCP is not maintained etc. basically one only knowns initial and final point. anything in between is considered "too complex" or "unknown".


    then there are motions that follow simple geometric path. LIN moves TCP along straight line. CIRC moves TCP along circular path. both of those can control tool orientation as well as velocity at TCP (joint velocities are more or less irrelevant unless excessive).


    then spline came along. this was computationally more complex and therefore processed as separate (and complex) motion. basically this had it's own motion planner separate from PTP, LIN and CIRC. over time more motion types were added to spline. so you can have SPTP, SLIN and SCIRC as equivalents of legacy instructions PTP, LIN and CIRC. this addition makes it possible to perform several motions and blend them at points of overlap. this is called approximated motion.


    one selects type of motion based on needs and availability. older KSS software had fewer motions to choose from. newer ones have more. approximate motion is preferred for speed and smoother paths (less wear and tear).


    spline motions tend to be more aggressive out of box but this may hold for inline form instructions. of one writes code that does not rely on the inline forms, one can crank up speeds on both sides and winner is not so clear.


    but that is just motions. motions alone are rarely useful. in most cases other instructions are needed to get the job done (I/O operations). out of safety concern, I/O operations are normally not performed by advance run pointer meaning that risk of collision is much lower but so is the performance since robot tends to stops frequently, nearly after each motion.


    this means need for planning and good understanding how instruction pointers work.

    if one is using newer motion instructions (ones that start with "S" in the name) one can take advantage of improved conditional stop. on older robots this is not available so to accomplishing similar thing on an older robot would require advanced programming skill and reaching deeper into bag of tricks.

    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


  • It always helps to get familiar with Spline. The newest Kuka controllers with Linux based iiQKA are only using spline inside as motion generator.


    Fubini

  • Yes there are differences in detail regarding approximation and velocity profile but not geometrically. SPTP as PTP is a line segment in axis space.



    Regarding velocity profile jerk limitation for SPTP is generated by $gear_jerk in PTP it's done implicitly by $Filter leading to velocity dependent deviance from the ideal curve.


    Fubini

  • I use SPTP 100% CONT 100 or 500 mm, no advance run stop (check it in T1 and debugging) and still stoping between some movements xD

    The only advantage that I see in SPTP are faster moves in T1.

  • there are numerous advantages to using sptp compared to ptp. Approximation can be done by c_spl for both slin and sptp, STOP WHEN PATH can be used (conditional stop as mentioned by panic), you can use $DIST_NEXT, WITH commands can be used (unsure if this was possible with old motions), just to name a few + all the actual motion related things mentioned by fubini. And surely there are more that has not been mentioned here.


    If it stops there surely is something overlooked, post code to get proper answers.

Advertising from our partners