How to apply a forth order polynomial to limit jerk

I am trying to reproduce the following experiment with a UR-10: https://www.youtube.com/watch?v=9Z9Zws9K5kc

The physics of Jerk: https://en.wikipedia.org/wiki/Jerk_(physics)

Just as acceleration is the rate of change (derivative) of velocity, jerk is the rate of change of acceleration. In other words, jerk is the rate at which acceleration is increasing or decreasing. Jerk is generally undesirable because it creates abrupt, jerky motion.

So the question is: How can I control jerk–the rate of change of acceleration when accelerating from Point-A and decelerating to a stop at Point-B? The result will limit settling time at Point-B, increase precision when arriving at Point-B, and with a smooth motion profile it will decrease wear on the robot from vibration.

The following paper describes How to reduce jerk in linear motion systems

How can I develop a function that can be used in a similar way to adding an acceleration parameter to a move command?

Teknic servo motors have an in-depth discussion on their solution for their motors as can be seen in their video: Teknic Jerk Solution

I hope to have something similar to Teknic for a UR robot.

1 Like

Nice question! It looks like we can only do this with dynamically modifiable movel() parameters

I still have the same question 5 years later!

I hope someone from UR will see this and chime in. I have written the attached code
jerk-1.1.script (9.9 KB)
as a .script in the controller using ChatGPT. The beginning section is normal motion and works fine, but as soon as the servo motion happens, the robot starts whining and jerking and then ends in a protective stop. Servoj seems to have so much potential, but for my life, I can’t get it to work.

Hi @christian.mackin ,

I haven’t looked at your code, but I have attached a RTDE example of using servoj and linked a forum post that may be helpful to you.

Servoj_RTDE_UR5-main.zip (22.1 KB)