Peak force using UR5e

I’m working with a UR5e robot and I’m force-controlling the robot while interacting with a quite stiff sponge. Do you know how is it possible that I’m measuring more than 50 Newtons while interacting? I’m already zeroing the sensor before starting the task.

I’m currently reading values up to 90 Newtons and they are not just short peaks but the plot reaches quite smoothly those values.

Not sure how well this correlates to a UR5e and your situation, but I collected some data on a UR10e showing the difference in force achieved vs. speed and found it easily overshot the desired force unless it was moving very slowly.
In this case I brought the arm down against an electronic scale on a table at various speed/force combinations. Anything over 1 mm/s speed resulted in significant overshoot of force.
Someday I may try this with one of our UR5e’s, and also in other directions ( I expect the Z- direction is more prone to this issue due to gravity).

ACTUAL FORCE - UR10e (Newtons)
Speed (mm/s)
1 2 5 10 20
programmed force (N):
2 2 4 7 20 88
5 7 7 15 25
10 13 17 24 39 104
20 22 28 41 64 133
25 28 34 51 74
30 32 40 59 80 157
40 46 46 74 103 172
50 57 59 86 120 181
until contact 10 4 3 8 44

Are you force control the robot using ROS or URCAPS? Is the table showing the desired forces by rows and in the columns there is the amount of overshoots or the columns directly report the force measured by the sensor?

Here’s the program I used:


I just changed the speed and force values for each of the combinations, then visually grabbed the highest value seen on the scale.

Here’s a cleaner image of the chart:


This was just a quick test I ran while I had that robot available - we don’t actually use any force commands on that unit in production.
I do, however use force control to load a gage on one of our UR5e robots - pick up the part, place it down until it contacts the table with 12N of force, then slides it into a V-block until it contacts with 11N of force - all using the UR force node.

Here’s the pseudo code from the .txt file (can’t grab a screenshot as the robot is currently running production):

Direction: Plane_conv_1 Z-
Until (force () >= 12.0)
Until (distance)
Wait: 0.2
Wait: 0.2
Wait: 0.2
Direction: Plane_conv_1 Y+
‘Until (tool_contact_detection)’
Until (force () >= 11.0)
Until (distance)
Popup: Did Not contact stop!

I’d like to run a similar test to see what forces we’re actually achieving in this process, as it can be a bit tricky getting values which are as low as possible without getting false trips.

1 Like