Setting Safety Speed Limits

  • Hey all, I am running some test to validate I am limiting the speed of my robot correctly.


    I am using a KRC5 8.7.5 with a KR 20 R1810-2.


    I have read through this post which was very helpful, but I still had some questions.
    How to limt the speed of KUKA robot


    I setup this simple program to make the robot Move at 200 mm, Twist 30 degrees, Swivel 30 degrees, then return to the starting position before I set any limits on the velocity.

    I ran the program before and after setting a velocity limit at 20 mm.
    I was doing this to check multiple things:

    1. make sure the velocity limit would slow down my tool after setting velocity limit
      • I monitored $VEL_ACT while running to see the speed reduction
        • Before limiting velocity, $VEL_ACT topped out at 180 mm/s
        • After limiting velocity, $VEL_ACT topped out at 15mm/s
          • I am not sure why I wasn't getting up to the set velocity. My LIN move seemed long enough to accelerate to 200 mm/s.
    2. see if any warnings or errors are thrown if I exceed my set limit
      • No warnings or errors popped up when I commanded a most at 200mm when the limit was set to 20m
        • I guess this is something I could check for in the submit and throw my own warnings
    3. confirm that swivel and twist would happen at the same speed after setting the velocity limit if the point of the positions were the same
      • Swivel and Twist happened at the same speed with or without the velocity limit (as assumed)
      • I changed $VEL.ORI1 and $VEL.ORI2 to control the rotations speeds
        • This doesn't seem like a "safe" way to limit the robot
        • I guess my only real option is to limit the degrees/s for the axis of the arm



    I have a couple of questions ( sorry if I provided too much information up front ).

    1. Is there a reason why the robot went slower than my commanded velocity?
      • I can understand why it didn't reach 200 mm/s before the set limit, but I don't understand why it couldn't get to 20 mm/s with the limit on the exact same move.
    2. Is there any other "safe" way to limit ORI1 and ORI2 directly other than limiting the degrees/s of the Axis?
    3. Is there a way to make the robot report warnings if the set velocity exceeds the Velocity limit
    4. Is there a way to make the robot report warnings if the joint speed is commanded to exceed rotation limits?

    Thank you for the help in advance! I hope this post is informative and helpful for others as well.

  • There could be different things:

    Speed limited by safety config,

    Low setting of one or more overrides,

    Singularity,

    Mada,

    Etc

    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

    • Helpful

    make sure the velocity limit would slow down my tool after setting velocity limit

    I monitored $VEL_ACT while running to see the speed reduction

    Before limiting velocity, $VEL_ACT topped out at 180 mm/s
    After limiting velocity, $VEL_ACT topped out at 15mm/s

    I am not sure why I wasn't getting up to the set velocity. My LIN move seemed long enough to accelerate to 200 mm/s.

    If I understand this correctly you restricted velocity to 20 mm/s by setting this limit in the safety configuration and when running your program you see $VEL_ACT reaching 15 mm/s. Is this correct?

    Then probably $SR_VEL_RED is true and $SR_OV_RED in $custom.dat is set to 75 meaning non safe internal override control aims at 75% of the configured safety velocity restriction. $SR_OV_RED can be set up to a value of 95%. Since override control can lead to overshoot over and some oscillations around the velocity bound there is a safety margin. The overshoot will be maximal when entering constant velocity (acceleration needs to be reduced to zero) and fades out over time. Its not a planned trajectory but control! The higher the setup dynamics of the robt the higher the overshoot needs also to be considered. So for high speed/accelaration/torque applications the safety margin in $SR_OV_RED needs to be set to smaller values than for low speed/acc/torque applications.


    Btw. $SR_OV_RED and therefore override control is not needed if you would use spline SLIN instead of old motion LIN. Here the mechanism is no longer control (a beforehand planned trajectory needs to be stripped down during execution) but the reduction is considered differently and the overshooting override control is not applied.


    Fubini

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