Aligns the TCP perpendicular to a surface

How to auto-aligns the TCP perpendicular to a surface?

This is the program that I tried:

This is the related video:
VID_20220920_121537 (1).zip (7.2 MB)

But I need to invert the RX and RY torque value.

Any tips?


I don’t think this can be done using the force-command. Maybe it could work with a larger surface on the robot tool, which would allow the robot to correct itself with a pressure point in the middle of the tool.

Assuming you don’t know the angle of the surface, you could also make three measurements (move until tool contact) on the surface and then calculate the surface angle from these three points?
Then you can align the robot tool to the surface with a variable waypoint.

Hi @daniele.genero,

I guess you suffer that your rod is quit thin. With an increased diameter you would get a higher sensitivity on RX and RY.
In addition the wrench is not transformed, so it is sensed in the flange which means that if you press it slightly downwards with your hand it will rotate as you experience in the video.

Best regards


either use the force command to detect the surface on three points, then calculate the rotation angle to correct the TCP rotation relative to the surface.

or you need more sensors, 3 ultrasound distance sensors for example can be used to correct for perpendicularity before reaching the surface after that you can use the force sensor to get closer to the object.

hope i helped