Dear UR+ Development SupportI am a software engineer developing an application using UR e-Series robots.
The Goal I am trying to implement a custom “Advanced Freedrive Mode.” While the built-in freedrive_mode() is useful, it feels somewhat “stiff” or “heavy” because the user still has to overcome the robot’s joint friction and inertia manually.
My goal is to achieve a User Experience (UX) similar to an “Electric Bike’s Pedal Assist.”
-
The robot motors should actively compensate for friction and inertia.
-
It should move lightly with minimal force.
-
Crucially: It must stop instantly when the user releases their hand (Zero Inertia feel).
Current Attempts & Issues I tried implementing this using the official Admittance Control example (Mass-Spring-Damper model) from the UR GitHub repository.
However, I found the M-D-K (2nd order) model unsuitable for this specific “Freedrive” purpose:
-
Drifting: Due to the simulated “Mass” and integration, the robot continues to glide/drift even after the force is released.
-
Tuning Difficulties: It was extremely difficult to tune the parameters to achieve both “feather-light movement” and “instant stopping” at the same time.
Questions for the Community Since standard Admittance Control seems to introduce unwanted simulated inertia:
-
What is the recommended approach or control strategy in the industry to create this kind of “Weightless & Instant-Stop” Freedrive experience?
-
Are there any specific algorithms, logic patterns, or sample codes you would recommend for processing F/T sensor data to achieve this behavior on UR robots?
I am looking for a robust method that ensures smooth operation without jitter while eliminating the “sliding on ice” feeling.
Any advice or shared experiences would be greatly appreciated!
Thanks in advance.