Bounce using the Force template in a program

Hello everyone,

I saw a post from 2021 that asked the question, but figured I would start another post since it never got answered. Any idea how to stop the robot from bouncing when using the force template in a program? I only used 5 N of force on the tool. It bounces the whole program.

Any help would be greatly appreciated!

“It bounces the whole program”. That must be an insane amount of bouncing. :upside_down_face:

Jokes aside. Lowering the speed at which the force is applied has helped me with this before. Have you tried adjusting the speed in the direction of the force?

As mentioned, you may need to lower the speed.
I have one application where I use force on a UR5e: force is applied in the XY plane (may be different in Z with gravity effects).
Moving a part into a V-block for positioning, I move at 10 mm/s and have it stop when it reaches 11N force.
Faster speeds created more bounce (usually just a single bounce back), and any less force sometimes tripped before it reached the goal.

Ok, I’ll try slowing it down on the approach. I’ll post a picture of my program to get feedback. It’s a simple weld sanding application.

Are you seeing the robot bounce throughout the whole program which you have sent a screenshot of? Then something is wrong somewhere else.

Can you take a screenshot of your Force command and send, as well? :slight_smile:
It’s not the approach you should change the speed of. It’s the Force command. But you might be using the wrong type of Force. If you’re using Simple., you won’t be able to alter the speed.

Also, your Waypoint 3 should be just above the grinding surface and not touching it, if you want the correct forces applied with the Force command,

1 Like

I had the same issue. I had to put the same waypoint before the Force and within the Force.

Sorry, I misspoke. The bounce starts after it gets to waypoint 3. Waypoint 3 does touch the part, so I will back it off a little bit.

Here is the force. Should I try it in a frame instead?

I had the best luck with it in the Frame. Correct the waypoint before barely touches the part the then the force is applied to the same point. The waypoints within the force is the path while applying the force.

1 Like

Hi @jarred.burns, @ereitz

Please give some more hints, what versions of the system are you working on ?

Bouncing during force mode can be caused by two things:

  1. Wrong installation parameters
  2. Resilient material on which we act with a force or variable pressure on the robot from the surface (3rd Newton law)

So, the first things you have to verify:

  1. Acting with force requires very precise parameterization of the payload, CoG and even a TCP point (especially when you use TOOL as reference for force), since it directly affects the alghoritms which are responsible for (in short) generate your force. When ex. payload are wrong - the bouncing will appear because alghoritms will have wrong data about actual state of robot and the currents which should be used to generate the force. Check all installation parameters and make sure that they are correct.

  2. If the substrate you are using the force on is flexible or hard and causes the robot to bounce after using the force - you should “play” with the parameters of the force function, in particular damping and scaling (check the script manual, specifically the functions force_mode_set_damping(damping) and force_mode_set_gain_scaling(scaling)). I am pretty sure that with some tests you will find the correct parameters to make your force more stable.

I hope it will help! Let me know how it goes.

Best regards,
Wojciech

The Universal Robots Software is version 5.13.1.

Here is everything else.

image

I redid the payload for the finish sander and I got pretty close to what the COG was before. The material is a stainless steel.

I tried using the Motion force type in the Z tool direction and it seemed to work. Where would I put those scripts you mentioned in the program?

In that case I would check further :

  1. In program - firstly turn on the sander, then use the force function - if you do the reverse, the rapid rotation of the sander interferes with the force sensor readings and may cause bouncing - force node in polyscope have zero_ft_sensor() script function included at the beggining so when you will use it after turning on the sander the reading should be quite more stable.

  2. Using force in motion mode is probably not quite right. Motion, there is a transformation of the coordinate system frame, the force may not be in the same direction you require because it dynamically change. I would use Z+ in tool here as frame, while definitely reduce the speed limit, because when sandering you will not need sudden jumps up, you have 500mm/s - I would set something in the range of 2-10mm/s (to verify in application)

  3. Is the sanded surface perfectly flat ? I mean mild changes in shape, so, for example, the hood of the car - I mean the plane of force. If the object to be sanded is not perfectly flat, it would be necessary to give the RX and RY axes susceptibility with 0 value of the force and 1 or 2 degrees of speed so that the robot can adapt to the element. (f surface is flat - that this point is isn’t neccesary)

  4. The script funtion I mentioned should be attached before using the force function. As is described in script manual - default value of damping is 0.005 and gain is 1. If you change them - new values will be in effect until you change them again. Try to experiment especially with damping parameter.

Hope it helps. :slight_smile:

Regards,
Wojciech

Update polyscope to the newest version, they did some improvements recently.

1 Like

Hi.

Nice that you got it to work. Depending on the payload, stiffness of surface you are in contact with, stiffness of gripper etc, you may need to tweak the gain parameters for force mode to get the desired behavior. You can use force_mode_set_damping(damping) and force_mode_set_gain_scaling(scaling) to tune it.

1 Like

This is a very easy fix! I had this same issue and I fixed it by adding a damper to the force! Simply select the “script” node from the node list and type in the following:

force_mode_set_damping(.4)

Put that at the start of your program or before the force mode call. You can adjust the value of .4 as needed. I hope this helps!

1 Like

Thanks nicholas.mcdowell! Setting the damping worked with a simple force motion!

1 Like

You’re correct that the value of 0.4 can be adjusted based on the specific requirements of your application. Buy AutoCAD from ProCADIS. It’s always good practice to start with a recommended value and then tweak it as necessary to achieve the desired performance.

I’m glad you were able to solve the problem. :wink:

Reducing the speed limit to 2-10 mm/s during sanding is a wise decision, especially for precise and gentle movements. This adjustment will help avoid sudden jumps that could impact the final result. For uneven surfaces, your suggestion to make the RX and RY axes adaptable is valuable. This allows the robot to adjust to the contours of the object being sanded, which is crucial when dealing with non-perfectly flat surfaces.