Universal Robots+

Tcp/ip force data

I’m writing a Windows-based C++ package to use with URe3 arms in a university class. I’ve been able to intercept the periodic data packages from ports 30001/2 and am decoding subpackages. I’ve been able to successfully decode positional information from joint data (subpackage 1) and cartesian info (subpackage 4), but force sensor data (subpackage 7) always shows up as zeros for all coordinates. Is there a trick to activate force sensor data? or is there only certain conditions under which force data is provided? Thanks for any light you can shine on this.

Hi @cewick70

If you are your running on the simulator, that is the explanation. Please check the output of the URScript function get_tcp_force() and force() as reference.


Sorry if my earlier post was not clear. I’m not running the simulator. There is a direct ethernet connection from my PC to an actual arm controller . I’m already successfully reading and displaying portions of the 10Hz information available at port 30002 (Ive also tried 30001). Here is my problem: I can decode robot state messages (package 16) and it’s various subpackages according to the schema shown in the UR spreadsheet, but Subpackage 7, according to the spreadsheet, should have force data in it. The data in subpackage 7 always reads zeros on all joints for force. Is there something that must overtly be done to have subpackage 7 deliver force data from the arm?

Hi @cewick70,

The recommended approach is to use the RTDE interface. I am reading fine values from the actual_TCP_force output register. The name of subpackage 7 is Force mode data so an explanation might be that the values are only updated in force mode.