# Part coordinates vs Tool Coordinates

**URL:** <https://forum.universal-robots.com/t/part-coordinates-vs-tool-coordinates/31809>\
**Category:** Technical Questions\
**Created:** [December 13, 2023, 10:25am UTC](https://forum.universal-robots.com/t/part-coordinates-vs-tool-coordinates/31809 "2023-12-13T10:25:14Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![hclai77](https://avatars.discourse-cdn.com/v4/letter/h/41988e/32.png) [@hclai77](https://forum.universal-robots.com/u/hclai77)\
**Post date:** [December 13, 2023, 10:25am UTC](https://forum.universal-robots.com/t/part-coordinates-vs-tool-coordinates/31809/1 "2023-12-13T10:25:14Z")

</div>

Hi,  
I have an application question. With respect to the picture attached. what will be the easiest way to let user to key in a degree and the robot will move the number of degree base on the pivot point? Am i right to say that, if i get the correct TCP, i can use moveC to achieve?

 ![pivotpoint](https://us1.discourse-cdn.com/flex020/uploads/universal_robots/original/2X/0/0eee3a742a6d44b83038fefe031b3bcaa912598e.png)

---

<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:** [December 13, 2023, 11:42am UTC](https://forum.universal-robots.com/t/part-coordinates-vs-tool-coordinates/31809/2 "2023-12-13T11:42:44Z")

</div>

what I would properly have done

1. is to set the tcp to the pivot point.
2. get the actual tcp pose
3. change the angle of this pose
4. move to the new pose using movej
5. reset the tcp to the tool tcp

Best regards

---

<div class="post-metadata">

**Author:** ![Roberto.Ancona](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/roberto.ancona/32/5620_2.png) [@Roberto.Ancona](https://forum.universal-robots.com/u/Roberto.Ancona)\
**Post date:** [December 13, 2023, 9:45pm UTC](https://forum.universal-robots.com/t/part-coordinates-vs-tool-coordinates/31809/3 "2023-12-13T21:45:10Z")

</div>

Hi @hclai77,  
welcome to the UR forum 😀

If you set the TCP in the center of the pivot point, then you can just use a couple of movel:

![ezgif-5-36b839d23f](https://us1.discourse-cdn.com/flex020/uploads/universal_robots/original/2X/9/9a2441c09c5cef2ff1e4b13d363c613960211c27.gif)

---

<div class="post-metadata">

**Author:** ![hclai77](https://avatars.discourse-cdn.com/v4/letter/h/41988e/32.png) [@hclai77](https://forum.universal-robots.com/u/hclai77)\
**Post date:** [December 14, 2023, 3:00am UTC](https://forum.universal-robots.com/t/part-coordinates-vs-tool-coordinates/31809/4 "2023-12-14T03:00:40Z")

</div>

Hi,  
Thanks for a quick response and good illustration.  
If the customer just want to specify the angle to be moved respective to this TCP, How should I implement this? Will it be just the movement of rotation in ‘Green’?

Regards,  
Lai

---

<div class="post-metadata">

**Author:** ![Roberto.Ancona](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/roberto.ancona/32/5620_2.png) [@Roberto.Ancona](https://forum.universal-robots.com/u/Roberto.Ancona)\
**Post date:** [December 14, 2023, 7:09am UTC](https://forum.universal-robots.com/t/part-coordinates-vs-tool-coordinates/31809/5 "2023-12-14T07:09:09Z")

</div>

You could use function **rpy2rotvec** to compute the angles for the rotated pose:

```auto
set_tcp(p[0, 0, 0.2, 0, 0, 0])

# start pose
pose = p[0.719, -0.026, 0.466, -1.51, 0.50, -0.50]
movel(pose)

# compute rotated pose angles 
angles = rpy2rotvec([0, d2r(30), 0])
v1 = angles[0]
v2 = angles[1]
v3 = angles[2]

# go to rotated pose
rotated_pose = pose_trans(pose, p[0, 0, 0, v1, v2, v3])
movel(rotated_pose)

```
