1. Home
    1. Dashboard
    2. Search
  2. Forum
    1. Unresolved Threads
    2. Members
      1. Recent Activities
      2. Users Online
      3. Team Members
      4. Search Members
      5. Trophys
  3. Articles
  4. Blog
  5. Videos
  6. Jobs
  7. Shop
    1. Orders
  • Login or register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Products
  • More Options
  1. Robotforum - Support and discussion community for industrial robots and cobots
  2. Forum
  3. Industrial Robot Support and Discussion Center
  4. KUKA Robot Forum
Your browser does not support videos RoboDK Software for simulation and programming
Visit our Mainsponsor
IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Sponsored Ads

Another question about move smoothing

  • RainerFord
  • April 14, 2025 at 4:21 PM
  • Thread is Unresolved
  • RainerFord
    Reactions Received
    2
    Trophies
    3
    Posts
    27
    • April 14, 2025 at 4:21 PM
    • #1

    Hello

    There are a couple of points and SPTP movement with approximation between them. The problem is that robot acts strange on the approximation trajectory (I would call that "jerk" but it is not quite so). It seems like robot rise up its speed when it on the approximation trajectory and set the speed back to normal, when on the trajectory. It could be seen on the attached video (at the very start, when the robot starts to rotate A6).
    I tried to lower the acceleration and approximation distance, also tried to increase approximation distance but it does not seems to have effect at all...
    What can help to smooth the trajectory?

    The robot is KR180 R3200-2 PA, KRC5 with KSS 8.7.7

    rb.mp4

  • panic mode
    Reactions Received
    1,296
    Trophies
    11
    Posts
    13,136
    • April 14, 2025 at 7:04 PM
    • #2

    couple of points could be the problem if they are close to each other and not forming smooth path. i like to eliminate as many points as possible.

    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

  • RainerFord
    Reactions Received
    2
    Trophies
    3
    Posts
    27
    • April 15, 2025 at 11:45 AM
    • #3

    Well maybe, but the points are quite distant from each other. At least I think so. The distance between the points more than 1.5-2 meters...
    About the point locations: You can see them on the attached pic (top view drawn by my shaking hand:upside_down_face:). So the TCP moves via the black trajectory and increases speed in the red arc. Than it desend the speed back to normal to the point P3. I can agree that the point location is quite far from organising the smooth approximation with the basic parameters. But I still can not understand, why it does not change trajectory close to the green one when I change the approximation distance parameter (thou this is not my option anyway)... The easiest way I think is to move the P2 closely to P1, but it will not work for me cuz the robot falls back from the camera wich takes its shot...

    Posting that message I desided to add P4 and watch if it helps.

    Despite your recomendation to eliminate points, lol:wallbash:... But I think it could be useful in this case. I will update this post with a results

  • Online
    Leon
    Reactions Received
    35
    Trophies
    5
    Posts
    473
    • April 15, 2025 at 12:33 PM
    • #4

    could you post your actual program? or just that part of it? you say you are using spline's (SPTP). are you using them in a spline block? Details matter.

    When it comes to spline i am no expert, some other people here are much more knowledgeable about that then me. so if you post your code they might be able to see what might be causing the problem.

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

  • RainerFord
    Reactions Received
    2
    Trophies
    3
    Posts
    27
    • April 15, 2025 at 12:48 PM
    • #5

    I did not use spline block here... Used to apply it only for some kind of complicated motions. Do not think this is the case...

    I can definitely post the code. The problem happens in the XHOME point. On the video is the fragment with TRANSPORTATION(#PLACE) called

    Code
    DEF TRANSPORTATION(COMMAND:IN)
    DECL TRANSPORT_COMMAND COMMAND
    SWITCH COMMAND
       CASE #HOME 
    ;FOLD SPTP HOME Vel=60 % HPTP ;%{PE}
       ;FOLD Parameters ;%{h}
          ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=HOME; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=HPTP; Kuka.VelocityPtp=60; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
       ;ENDFOLD
       SPTP XHOME WITH $VEL_AXIS[1] = SVEL_JOINT(60.0), $TOOL = STOOL2(FHOME), $BASE = SBASE(FHOME.BASE_NO), $IPO_MODE = SIPO_MODE(FHOME.IPO_FRAME), $LOAD = SLOAD(FHOME.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PHPTP), $APO = SAPO_PTP(PHPTP), $GEAR_JERK[1] = SGEAR_JERK(PHPTP), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
    ;ENDFOLD
    CAMTRIG=TRUE
       CASE #PLACE
    ;FOLD SPTP HOME CONT Vel=30 % PLPDAT2 ADAT ;%{PE}
    ;FOLD Parameters ;%{h}
    ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=HOME; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PLPDAT2; Kuka.VelocityPtp=30; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; KukaRoboter.Movement.SplineLogicName=ADAT; Trigger[1]=Trigger 1; TriggerPath[1]=-600; TriggerOnStart[1]=FALSE; TriggerDelay[1]=0; TriggerType[1]=ASSIGNMENT; TriggerAssignVariable[1]=CAMTRIG; TriggerAssignValue[1]=TRUE; Trigger[2]=Trigger 2; TriggerPath[2]=-600; TriggerOnStart[2]=FALSE; TriggerDelay[2]=0; TriggerType[2]=ASSIGNMENT; TriggerAssignVariable[2]=READY2GETCORD; TriggerAssignValue[2]=TRUE; IlfCommand=SPTP
    ;ENDFOLD
    TRIGGER WHEN PATH=PTH DELAY=0 DO CAMTRIG=TRUE
    TRIGGER WHEN PATH=PTH DELAY=0 DO READY2GETCORD=TRUE
    SPTP XHOME WITH $VEL_AXIS[1] = SVEL_JOINT(30.0), $TOOL = STOOL2(FHOME), $BASE = SBASE(FHOME.BASE_NO), $IPO_MODE = SIPO_MODE(FHOME.IPO_FRAME), $LOAD = SLOAD(FHOME.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPLPDAT2), $APO = SAPO_PTP(PPLPDAT2), $GEAR_JERK[1] = SGEAR_JERK(PPLPDAT2), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0) C_Spl
    ;ENDFOLD
    ;FOLD SPTP PLPOINTAPP CONT Vel=60 % LAPTP Tool[1]:GRIPPER Base[1]:PALLETTE ;%{PE}
       ;FOLD Parameters ;%{h}
          ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PLPOINTAPP; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=LAPTP; Kuka.VelocityPtp=60; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
       ;ENDFOLD
       SPTP XPLPOINTAPP WITH $VEL_AXIS[1] = SVEL_JOINT(60.0), $TOOL = STOOL2(FPLPOINTAPP), $BASE = SBASE(FPLPOINTAPP.BASE_NO), $IPO_MODE = SIPO_MODE(FPLPOINTAPP.IPO_FRAME), $LOAD = SLOAD(FPLPOINTAPP.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PLAPTP), $APO = SAPO_PTP(PLAPTP), $GEAR_JERK[1] = SGEAR_JERK(PLAPTP), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0) C_Spl
    ;ENDFOLD
    ;FOLD SLIN PLPOINT Vel=1.2 m/s LLIN Tool[1]:GRIPPER Base[1]:PALLETTE ;%{PE}
       ;FOLD Parameters ;%{h}
          ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PLPOINT; Kuka.BlendingEnabled=False; Kuka.MoveDataName=LLIN; Kuka.VelocityPath=1.2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
       ;ENDFOLD
       SLIN XPLPOINT WITH $VEL = SVEL_CP(1.2, , LLLIN), $TOOL = STOOL2(FPLPOINT), $BASE = SBASE(FPLPOINT.BASE_NO), $IPO_MODE = SIPO_MODE(FPLPOINT.IPO_FRAME), $LOAD = SLOAD(FPLPOINT.TOOL_NO), $ACC = SACC_CP(LLLIN), $ORI_TYPE = SORI_TYP(LLLIN), $APO = SAPO(LLLIN), $JERK = SJERK(LLLIN), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
    ;ENDFOLD
       CASE #PLACE2
    ;FOLD SPTP HOME CONT Vel=30 % PLPDAT2 ADAT ;%{PE}
    ;FOLD Parameters ;%{h}
    ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=HOME; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PLPDAT2; Kuka.VelocityPtp=30; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; KukaRoboter.Movement.SplineLogicName=ADAT; Trigger[1]=Trigger 1; TriggerPath[1]=-600; TriggerOnStart[1]=FALSE; TriggerDelay[1]=0; TriggerType[1]=ASSIGNMENT; TriggerAssignVariable[1]=CAMTRIG; TriggerAssignValue[1]=TRUE; Trigger[2]=Trigger 2; TriggerPath[2]=-600; TriggerOnStart[2]=FALSE; TriggerDelay[2]=0; TriggerType[2]=ASSIGNMENT; TriggerAssignVariable[2]=READY2GETCORD; TriggerAssignValue[2]=TRUE; IlfCommand=SPTP
    ;ENDFOLD
    TRIGGER WHEN PATH=PTH DELAY=0 DO CAMTRIG=TRUE
    TRIGGER WHEN PATH=PTH DELAY=0 DO READY2GETCORD=TRUE
    SPTP XHOME WITH $VEL_AXIS[1] = SVEL_JOINT(30.0), $TOOL = STOOL2(FHOME), $BASE = SBASE(FHOME.BASE_NO), $IPO_MODE = SIPO_MODE(FHOME.IPO_FRAME), $LOAD = SLOAD(FHOME.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PPLPDAT2), $APO = SAPO_PTP(PPLPDAT2), $GEAR_JERK[1] = SGEAR_JERK(PPLPDAT2), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0) C_Spl
    ;ENDFOLD
    ;FOLD SPTP PLPOINT2APP CONT Vel=60 % LAPTP Tool[1]:GRIPPER Base[1]:PALLETTE ;%{PE}
       ;FOLD Parameters ;%{h}
          ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PLPOINT2APP; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=LAPTP; Kuka.VelocityPtp=60; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SPTP
       ;ENDFOLD
       SPTP XPLPOINT2APP WITH $VEL_AXIS[1] = SVEL_JOINT(60.0), $TOOL = STOOL2(FPLPOINT2APP), $BASE = SBASE(FPLPOINT2APP.BASE_NO), $IPO_MODE = SIPO_MODE(FPLPOINT2APP.IPO_FRAME), $LOAD = SLOAD(FPLPOINT2APP.TOOL_NO), $ACC_AXIS[1] = SACC_JOINT(PLAPTP), $APO = SAPO_PTP(PLAPTP), $GEAR_JERK[1] = SGEAR_JERK(PLAPTP), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0) C_Spl
    ;ENDFOLD
    ;FOLD SLIN PLPOINT2 Vel=1.2 m/s LLIN Tool[1]:GRIPPER Base[1]:PALLETTE ;%{PE}
       ;FOLD Parameters ;%{h}
          ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=PLPOINT2; Kuka.BlendingEnabled=False; Kuka.MoveDataName=LLIN; Kuka.VelocityPath=1.2; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
       ;ENDFOLD
       SLIN XPLPOINT2 WITH $VEL = SVEL_CP(1.2, , LLLIN), $TOOL = STOOL2(FPLPOINT2), $BASE = SBASE(FPLPOINT2.BASE_NO), $IPO_MODE = SIPO_MODE(FPLPOINT2.IPO_FRAME), $LOAD = SLOAD(FPLPOINT2.TOOL_NO), $ACC = SACC_CP(LLLIN), $ORI_TYPE = SORI_TYP(LLLIN), $APO = SAPO(LLLIN), $JERK = SJERK(LLLIN), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
    ;ENDFOLD
    
    ENDSWITCH
    
    END
    Display More

    Edited once, last by RainerFord (April 15, 2025 at 12:54 PM).

  • hermann
    Reactions Received
    411
    Trophies
    9
    Posts
    2,623
    • April 15, 2025 at 1:21 PM
    • #6
    Quote from RainerFord

    Well maybe, but the points are quite distant from each other. At least I think so. The distance between the points more than 1.5-2 meters...
    ...

    Despite your recomendation to eliminate points, lol:wallbash:... But I think it could be useful in this case. I will update this post with a results

    ...

    You have a movement over two identical positions. Before the switch robot moves to xhome and the first movement in the case also is xhome. Eliminate one of them.

  • Fubini
    Reactions Received
    283
    Trophies
    9
    Posts
    1,904
    • April 15, 2025 at 1:24 PM
    • #7

    Also check you load data. You change tool for every point which potentially also leads to a load change. Maybe to a false load?

  • RainerFord
    Reactions Received
    2
    Trophies
    3
    Posts
    27
    • April 15, 2025 at 1:59 PM
    • #8
    Quote from hermann

    You have a movement over two identical positions. Before the switch robot moves to xhome and the first movement in the case also is xhome. Eliminate one of them.

    I assume you wrong. There are no any moves outside the switch structure. The first xhome movement is under switch, #HOME case.

    Quote from Fubini

    Also check you load data. You change tool for every point which potentially also leads to a load change. Maybe to a false load?

    That was my first assumption. But I'm pretty sure that the tool is the same in all points. And it has the correct load data


    UPD:

    Also noticed that in the code I posted there are velocities difference between xhome (30%) and other points (60%). To be more clarify: I changed the velocities to see if it helps. On the video all points has 30% velocities.

    Edited once, last by RainerFord (April 15, 2025 at 2:42 PM).

  • kalpesh55115
    Robot Guy12021995
    Trophies
    1
    Posts
    1
    • April 16, 2025 at 3:14 AM
    • #9

    Try to teach the pos i.e. home before you start approximating in same tool and base of place pos. I have seen when on the way when you change tool and base the robot does a bit of jerky moment. You can create a new program from Home with same base and tool and go into palce and see its jerking for testing.

  • RainerFord
    Reactions Received
    2
    Trophies
    3
    Posts
    27
    • April 20, 2025 at 9:25 PM
    • #10

    So there are no miracles or some secret settings. The problem seems to be solved via the fine tuning of the accelerations in every single point. And also point positions optimizing (such as A6 reorient)

Advertising from our partners

IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Advertise in Robotics
Advertise in Robotics

Job Postings

  • Anyware Robotics is hiring!

    yzhou377 February 23, 2025 at 4:54 AM
  • How to see your Job Posting (search or recruit) here in Robot-Forum.com

    Werner Hampel November 18, 2021 at 3:44 PM
Your browser does not support videos RoboDK Software for simulation and programming

Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • krc5
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000

Thread Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • krc5
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000

Users Viewing This Thread

  • 1 Guest
  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™
As a registered Member:
* You will see no Google advertising
* You can translate posts into your local language
* You can ask questions or help the community with your knowledge
* You can thank the authors for their help
* You can receive notifications of replies or new topics on request
* We do not sell your data - we promise

JOIN OUR GREAT ROBOTICS COMMUNITY.
Don’t have an account yet? Register yourself now and be a part of our community!
Register Yourself Lost Password
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on Google Play
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on the App Store
Download