# Get\_tcp\_force(): How are the values calculated?

**URL:** <https://forum.universal-robots.com/t/get-tcp-force-how-are-the-values-calculated/43075>\
**Category:** Technical Questions\
**Created:** [July 16, 2026, 8:41am UTC](https://forum.universal-robots.com/t/get-tcp-force-how-are-the-values-calculated/43075 "2026-07-16T08:41:45Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![mahler](https://avatars.discourse-cdn.com/v4/letter/m/e9c0ed/32.png) [@mahler](https://forum.universal-robots.com/u/mahler)\
**Post date:** [July 16, 2026, 8:41am UTC](https://forum.universal-robots.com/t/get-tcp-force-how-are-the-values-calculated/43075/1 "2026-07-16T08:41:45Z")

</div>

Hi,

is there a filter that works on the values of ‘get\_tcp\_force()’ i can adjust ?

In an appliction i try to touch the surface of a soft material by a small (1 N) force after zero\_ftsensor(). Sometimes it still not works and stops before contact. I tested it with force\_mode() Test function in polyscope by touching on a scale. This was pretty good. Getting it by 'get\_tcp\_force() seems to be different stable/filtered?

Thanks for Help,

Hannes

---

<div class="post-metadata">

**Author:** ![wojciech.goral](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/wojciech.goral/32/7596_2.png) [@wojciech.goral](https://forum.universal-robots.com/u/wojciech.goral)\
**Post date:** [July 17, 2026, 7:17am UTC](https://forum.universal-robots.com/t/get-tcp-force-how-are-the-values-calculated/43075/2 "2026-07-17T07:17:22Z")

</div>

Hey @mahler,

I’m not sure if it will be possible to apply 1N of force without using external force/torque sensor or external software like Robotiq Force Copilot. Note that the robot specifications include parameters for the force sensor’s accuracy and precision—in the best-case scenario for the UR3e, the precision is ±2 N, and the accuracy is ±3.5 N. Probably that’s why your robot stops during movement before contact.

---

<div class="post-metadata">

**Author:** ![mahler](https://avatars.discourse-cdn.com/v4/letter/m/e9c0ed/32.png) [@mahler](https://forum.universal-robots.com/u/mahler)\
**Post date:** [July 17, 2026, 11:55am UTC](https://forum.universal-robots.com/t/get-tcp-force-how-are-the-values-calculated/43075/3 "2026-07-17T11:55:52Z")

</div>

Hi Wojciech,

thanks for the answer. Before i knew the sensor is not that sensitive i simply tested behavior with this Test mode of the force\_mode() at the polyscope. That worked fine- better than the datasheet defines. So i think there could be a option like a filter that increases the perfomrance. Do You know how it works, and is there something like a filter i can adjust?

Best regards,

Hannes

---

<div class="post-metadata">

**Author:** ![wojciech.goral](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/wojciech.goral/32/7596_2.png) [@wojciech.goral](https://forum.universal-robots.com/u/wojciech.goral)\
**Post date:** [July 17, 2026, 12:30pm UTC](https://forum.universal-robots.com/t/get-tcp-force-how-are-the-values-calculated/43075/4 "2026-07-17T12:30:29Z")

</div>

Yeah, in some specific circumstances you’ll be able to receive much better values than documentation says. It’s because in docs the worst case should be described, as - high payload, high acceleration, high path curve etc.

Neverthless, there’s no build in fine tuner for gathering the data like a low-level filter. But Force Copilot as licensed product from Robotiq which I recommend doing exactly what you’re trying to do - finetuning the sensor data itself, as their software connecting directly to our sensor. I don’t know how precise you can be with their software, but there’s a chance to reach 1N. (you can contact robotiq there : [Contact Us | Robotiq](https://robotiq.com/contact) )

In UR you can just adjust gain and force scaling parameters to act more gently, but I’m not sure if it will resolve your problem with that low value needed. Based on my experience I’ll say that more precise, external F&T sensor should be used like this one from OnRobot : **HEX 6-Axis :**

 ![image](https://us1.discourse-cdn.com/flex020/uploads/universal_robots/original/2X/a/a212934a515f1b54f0ab75a9f84bd3eb59975b14.png)

---

<div class="post-metadata">

**Author:** ![mahler](https://avatars.discourse-cdn.com/v4/letter/m/e9c0ed/32.png) [@mahler](https://forum.universal-robots.com/u/mahler)\
**Post date:** [July 17, 2026, 12:48pm UTC](https://forum.universal-robots.com/t/get-tcp-force-how-are-the-values-calculated/43075/5 "2026-07-17T12:48:53Z")

</div>

Thanks for reply ans hints for precise products. Gain nd force scaling ist done by ‚force\_mode\_set\_damping() and force\_mode\_set\_scaling(), right? Is there a exact explanation what each does?

At the moment i wrote a simple filter that smoothes the signal and it (seems to) work.

Best regards,

Hannes

---

<div class="post-metadata">

**Author:** ![wojciech.goral](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/wojciech.goral/32/7596_2.png) [@wojciech.goral](https://forum.universal-robots.com/u/wojciech.goral)\
**Post date:** [July 17, 2026, 1:19pm UTC](https://forum.universal-robots.com/t/get-tcp-force-how-are-the-values-calculated/43075/6 "2026-07-17T13:19:24Z")

</div>

Hey,

Check my video from Linkedin about those parameters which explains it : [#automation #forcecontrol | Wojciech Góral](https://www.linkedin.com/posts/wojciech-g%C3%B3ral-robotic-specialist_automation-forcecontrol-ugcPost-7207282264458567683-l79A/)
