DoF - a Robotiq Community
Warning sign
The Dof Community was shut down in June 2023. This is a read-only archive.
If you have questions about Robotiq products please reach our support team.

Hi all,
here is how I have done this for a client of ours. For their application they really wanted to know force at specific UR positions. So we had to find a way to synchronize the robot position and force data. You will plug the sensor to the robot normally. See the 
following procedure.

Once this is setup, you can start from the program attached (I had to zip the program in order to load it here) called 'outputSensorData.urp'. 
To read the data you will need a TCP/IP connection to the robot from a PC, for example, that will stream the data. We used a PC with PUTTY software to see if we were able to read from the PC. You will need to make sure the robot is in the same IP Adresse range as the PC.

Attached is a picture of the program that I made! Below is some explanation for this program.
First you need to open a socket with the PC.In the BeforeStart section the socket is for the sensor. The with port 55555 is the PC where force data are sent. We don't see the third argument but it is the socket name that I called forceDataSock in this case. Then using the status variable 'connected' we make sure that the connection is established with the PC. Then we have some variables. The variable doSendData is a boolean that will turn on and off the data writing to the PC.Then the force values are the resulting forces scaled by a factor of something like 1000. This is so because the socket message can only send integer values. So scaling up the force value ensures that you send some digits that would normally be after the comma of a real number. You simply have to make sure that you downscale by the same amount when you read the data from the PC side. The value by which you want to scale these values will depend on the size of forces you are measuring on the sensor. 

Then you have the Robot Program section. In there you would have your moves. In my program I added only two moves. Robot would move to Waypoint_2, activate sending the data to the PC, the robot will then move to Waypoint_1 and then stop the data sending. So data would be send for the move between Waypoint_2 to Waypoint_1.

Then you have the sensor Thread_1. This is the thread that normally simply reads the data from the sensor and update data Fx_curr_pos,Fy_curr_pos,Fz_curr_pos, etc accordingly. To this thread I added a section that would activate upon doSenddATA=true. So this is the section where the data is sent. First I save the robot tcp position to the variable robotPos.  Following these if the socket_send_int command where the force values are sent. What is sent in this example is Fx, Fy and Fz scaled followed by robot TCP position X,Y,Z.