After some additional tests, I added in my program:
- a find surface node with a 2mm retract to be closer to the surface when starting the force control and avoid strong surface impact which can offset sensor values.
- some instructions to check if the robot converges to a stable alignment position.
- The robot make a first surface alignment with a force control node with free Rx, Ry and push on 30 on Z axis (base frame).
- Then the robot apply 0.5Nm torque on X+,X-,Y+,Y- (base frame), follow by another 30N push on Z axis with Rx, Ry free.
If the robot does not converge to a stable position, the alignment progress is repeated.
Here below is the program.
I noticed that in some situation adding some offset on the TCP can help the robot the make the force control. Offset of the TCP is like doing an offset on the momentum measured by the sensor.
Example:
If the robot rotate rotate to much on Rx+ (tool frame), offset the TCP in Z- direction (tool frame)
I would recommend that you execute the program one time with a " wait False" and touch one by one the 4 corners of the part surface. The robot should have similar adjustment reaction on the 4 corners. If you see that the robot rotate faster on one corner try to move the TCP toward this point, it may help.
Surface alignment is sometime required in assembly application.
In this article, I present a possible way to use Robotiq Force Copilote force control node to align the surface of a part with a plane.
Settigns:
The TCP is place at the center of the surface of the part
The CoG is placed using the UR wizard.
To align surfaces, I use 2 methods:
1/ A force control node which apply a force of 30N on TCP frame Y axis and free rotation around TCP X and Z axis.
2/ A force control node which apply a force of -30N on base frame Z axis and free rotation around base frame X and Y axis.
In both cases, I keep “adaptive stiffness” checked so that the robot automatically adjust its sensitivity when it enter in contact with the surface. This prevents the robot from over reacting when surfaces collide with each others.
The second method have the best results but it requires to have the alignment surface with same orientation as the base frame.
Here below is the video: