# Automatic TCP setting?

**URL:** <https://forum.universal-robots.com/t/automatic-tcp-setting/32326>\
**Category:** General Application Help: How do I?\
**Created:** [January 24, 2024, 4:05pm UTC](https://forum.universal-robots.com/t/automatic-tcp-setting/32326 "2024-01-24T16:05:33Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![jpomo](https://avatars.discourse-cdn.com/v4/letter/j/ebca7d/32.png) [@jpomo](https://forum.universal-robots.com/u/jpomo)\
**Post date:** [January 24, 2024, 4:05pm UTC](https://forum.universal-robots.com/t/automatic-tcp-setting/32326/1 "2024-01-24T16:05:33Z")

</div>

I’ve come across TCP setting tools like this:

[WireTank TCP Calibration](https://www.wiretank.com/product-page/wiretank-tcp-calibration)

[Aim Robotics TCP Calibration Tool](https://unchainedrobotics.de/en/products/end-of-arm-effectors/end-of-arm-tools/dispensers/aim-robotics-tcp-calibration-tool)

These tools have URCaps to run the process.

How do these tools work under the hood? On the surface it looks like the sensors provide input to the UR Controller. Is the actual TCP calculation done via script commands?

[scriptmanual\_5.12.pdf](https://s3-eu-west-1.amazonaws.com/ur-support-site/163530/scriptmanual_5.12.pdf)

---

<div class="post-metadata">

**Author:** ![cg1](https://avatars.discourse-cdn.com/v4/letter/c/c77e96/32.png) [@cg1](https://forum.universal-robots.com/u/cg1)\
**Post date:** [January 25, 2024, 9:58am UTC](https://forum.universal-robots.com/t/automatic-tcp-setting/32326/2 "2024-01-25T09:58:51Z")

</div>

> [@jpomo](#):
>
> How do these tools work under the hood? On the surface it looks like the sensors provide input to the UR Controller. Is the actual TCP calculation done via script commands?

While I don’t know the details, using URscript to do the calculations would be definitely be and option using the pose\_trans() method.  
But depending on their implementation it would also be possible to use a python and/or c++ daemon to do the calculations instead.  
It would even be possible to do the calculations in the java portion of the URCap by using the daemon only as a middle man between the URscript code and the java based installation node.

Each solution has their own upsides and downsides.

---

<div class="post-metadata">

**Author:** ![jpomo](https://avatars.discourse-cdn.com/v4/letter/j/ebca7d/32.png) [@jpomo](https://forum.universal-robots.com/u/jpomo)\
**Post date:** [March 5, 2024, 8:29pm UTC](https://forum.universal-robots.com/t/automatic-tcp-setting/32326/3 "2024-03-05T20:29:45Z")

</div>

Update:

I misunderstood what these tools do. It looks like they calculate XY and Z offsets relative to an EXISTING Tool Center Point. These appear to be well suited for calculating an offset when syringe tips are frequently changed.

If you’re trying to understand how the TCP measure wizard works, look into calculating the center of a sphere from 3 or 4 points (See attached)  
[Forum Post.pdf](https://forum.universal-robots.com/uploads/short-url/yzkebusnRwQwN7HWC4M7bxb7pch.pdf) (911.0 KB)

---

<div class="post-metadata">

**Author:** ![ejuliannc](https://avatars.discourse-cdn.com/v4/letter/e/d6d6ee/32.png) [@ejuliannc](https://forum.universal-robots.com/u/ejuliannc)\
**Post date:** [January 17, 2025, 8:37pm UTC](https://forum.universal-robots.com/t/automatic-tcp-setting/32326/4 "2025-01-17T20:37:17Z")

</div>

There is a new URCap for tcp calibration made by a company called Captron: [Software URCap - CAPTRON](https://www.captron.com/products/optical-sensors/software/ur/)

---

<div class="post-metadata">

**Author:** ![jpomo](https://avatars.discourse-cdn.com/v4/letter/j/ebca7d/32.png) [@jpomo](https://forum.universal-robots.com/u/jpomo)\
**Post date:** [January 17, 2025, 9:58pm UTC](https://forum.universal-robots.com/t/automatic-tcp-setting/32326/5 "2025-01-17T21:58:43Z")

</div>

Thank you, this is what I was originally looking for. Great to see there is an option.
