Force mode not applying full force

Im trying to use force mode to move into contact with an object

zero_ftsensor()
force_mode( tool_pose, [1, 0, 0, 0, 0, 0], [10.0, 0.0, 0.0, 0.0, 0.0, 0.0], 2, [0.1, 0.1, 0.1, 0.17, 0.17, 0.17])

My assumption is this:
-The robot will be compliant in the x axis
-The robot will apply 10 N in this axis
-The robot will move in the tool frame
-The robot will move with 0.1m/s

The reality is that the robot does everything i want except apply 10 N. In fact the robot moves into contact and then seems to hover around 0.5 N and does some slight ā€œbouncingā€. Iā€™d excpect some bouncing at the full force, but while the force is still so low i would expect the force to slowly rise to the desired value.

What am I doing wrong?

1 Like

hi , I always try to find some ways to zero the ftsensor, could I ask the command ā€˜zero_ftsensorā€™ is ran in the teaching pendant or in your own program?

Hi,

the call to zero_ftsensor is performed in the script shortly before activating force mode

Hi @claude.hasler,

About your assumptions. I would only expect one of these depending if the is something to apply the normal force.
-The robot will apply 10 N in this axis
-The robot will move with 0.1m/s

How are you evaluating the force?

If you are using get_tcp_force() please notice that the returned value is in the base frame, that might not be aligned with your tool frame.

Hi Ebbe,

What is the recommended way to evaluate the actual force?

It sure would be useful to see all of the forces at each joint while the program is running. I think the Move screen showing the robot path would be an awesome placeā€¦

Hi @jmiller

For self evaluation get_tcp_force() is a fine choice. You might take a look in this article if you would like to have the force in the tool frame.
If you add a thread to your robot program and assign a global variable with the value. You will be able to monitor the force in the Variable view.

Ebbe

They way I understood the command the Robot should move with MAX 0.1m/s into a force of 10N. Is that incorrect?

If the robot reach 0.1m/s without any external force is applied to it. The force will in this case be 0N and the 10N will not be reached. So the 10N is depending on if there is something to create a normal force. If there is a rigid fixed object that the robot hit, the robot will apply 10N but will not reach the 0.1m/s.

Are you updating the COG or Payload in any threads? We had a thread to update COG and Payload based on gripper state, that continuous writing caused the force mode to not function.