# How does "Use Joint Angles" actually work?

**URL:** <https://forum.universal-robots.com/t/how-does-use-joint-angles-actually-work/30598>\
**Category:** URScript\
**Created:** [September 25, 2023, 8:50pm UTC](https://forum.universal-robots.com/t/how-does-use-joint-angles-actually-work/30598 "2023-09-25T20:50:56Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![dpeva](https://avatars.discourse-cdn.com/v4/letter/d/b5ac83/32.png) [@dpeva](https://forum.universal-robots.com/u/dpeva)\
**Post date:** [September 25, 2023, 8:50pm UTC](https://forum.universal-robots.com/t/how-does-use-joint-angles-actually-work/30598/1 "2023-09-25T20:50:56Z")

</div>

I"ve had some issues in the past with the “use Joint Angles” option in the MoveJ node, so I was looking at it a bit harder today.

I notice that nothing changes in the .script file generated from the .urp file whether or not that box is checked.  
Anyone know what magic they use to “guarantee” that the actual position will be used?

---

<div class="post-metadata">

**Author:** ![tizh](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/tizh/32/4176_2.png) [@tizh](https://forum.universal-robots.com/u/tizh)\
**Post date:** [October 9, 2023, 3:42am UTC](https://forum.universal-robots.com/t/how-does-use-joint-angles-actually-work/30598/2 "2023-10-09T03:42:04Z")

</div>

Hi, have a look at the move script. has **get\_inverse\_kin** or not

movej( **u36335u28857\_1\_q** , a=1.3962634015954636, v=1.0471975511965976)  
movej\*\*(get\_inverse\_kin(u36335u28857\_1\_p, qnear=u36335u28857\_1\_q),\*\* a=1.3962634015954636, v=1.0471975511965976)

global u36335u28857\_1\_p=p[-.143990586228, -.415626295263, .202528882734, -.001221359682, 3.116276528482, .038891915637]

global u36335u28857\_1\_q=[-1.6006999999999998, -1.7271, -2.2029999999999994, -0.8079999999999998, 1.5951, -0.030999999999999694]

global u36335u28857\_2\_p=p[-.143990586228, -.415626295263, .470038882734, -.001221359682, 3.116276528482, .038891915637]

global u36335u28857\_2\_q=[-1.6006999998759524, -1.454386588910011, -1.7203146269005867, -1.5633987841863863, 1.5951000000032087, -0.03099999987595492]

while (True):

```
$ 1 "机器人程序"

$ 2 "MoveJ"

$ 3 "路点_1" "breakAfter"

movej(get_inverse_kin(u36335u28857_1_p, qnear=u36335u28857_1_q), a=1.3962634015954636, v=1.0471975511965976)

$ 4 "路点_2" "breakAfter"

movej(get_inverse_kin(u36335u28857_2_p, qnear=u36335u28857_2_q), a=1.3962634015954636, v=1.0471975511965976)

$ 5 "MoveJ"

$ 6 "路点_1" "breakAfter"

movej(u36335u28857_1_q, a=1.3962634015954636, v=1.0471975511965976)

$ 7 "路点_2" "breakAfter"

movej(u36335u28857_2_q, a=1.3962634015954636, v=1.0471975511965976)

```
