# Move position with offset: Error : Must be a pose, not 'List'

**URL:** <https://forum.universal-robots.com/t/move-position-with-offset-error-must-be-a-pose-not-list/1226>\
**Category:** Technical Questions\
**Tags:** error-code, urscript, syntax\
**Created:** [October 3, 2017, 1:23pm UTC](https://forum.universal-robots.com/t/move-position-with-offset-error-must-be-a-pose-not-list/1226 "2017-10-03T13:23:52Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![thierry.bourgeois](https://avatars.discourse-cdn.com/v4/letter/t/cc9497/32.png) [@thierry.bourgeois](https://forum.universal-robots.com/u/thierry.bourgeois)\
**Post date:** [October 3, 2017, 1:23pm UTC](https://forum.universal-robots.com/t/move-position-with-offset-error-must-be-a-pose-not-list/1226/1 "2017-10-03T13:23:52Z")

</div>

Hello,

I need to change the actual position with a certain value (xyz offset, for exemple y-0.2) into UR3/CB3/Polyscope/Program:

Program  
BeforeStart  
pos\_cur≔get\_actual\_joint\_positions()\*  
Robot Program  
pos\_new1≔pose\_trans(pos\_cur,p[0,-0.2,0,0,0,0])  
Wait: 0.01  
MoveL  
pos\_cur  
pos\_new1

Why I get this error message: “Type error : Must be a pose, not ‘List’”

Also same error with;  
cur\_pos = get\_actual\_tcp\_pose()  
new\_pos = pose\_trans(cur\_pos,p[0,-0.2,0,0,0,0])  
movep(new\_pos,a=0.5,v=250,r=20)

\*Or get\_actual\_tcp\_pose()

Links examples:  
[https://www.universal-robots.com/how-tos-and-faqs/how-to/ur-how-tos/moving-to-a-position-calculated-from-user-input-16605/](https://www.universal-robots.com/how-tos-and-faqs/how-to/ur-how-tos/moving-to-a-position-calculated-from-user-input-16605/)

Thankyou for your help.

---

<div class="post-metadata">

**Author:** ![jbm](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/jbm/32/614_2.png) [@jbm](https://forum.universal-robots.com/u/jbm)\
**Post date:** [October 4, 2017, 3:53pm UTC](https://forum.universal-robots.com/t/move-position-with-offset-error-must-be-a-pose-not-list/1226/2 "2017-10-04T15:53:08Z")

</div>

`get_actual_joint_positions()` returns a List variable, with length 6, containing the joint angles in radians. E.g. `[0,1.57,1.57,0,1.57,0]`. This is hence a List, and not a Pose.

Poses are denoted by a lower-case `p` in front of a list. Also, instead of joint angles, they contain Cartesian coordinate offsets from some coordinate system, respective in meters for translation, and radians for rotation.  
`get_actual_tcp_pose()` returns a pose, and should hence work just fine in the example `pose_trans(pose1, pose2)` above.  
E.g. `p[0.2, 0.1, 0.0, 0, 3.1415, 0]`

---

<div class="post-metadata">

**Author:** ![mmi](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/mmi/32/691_2.png) [@mmi](https://forum.universal-robots.com/u/mmi)\
**Post date:** [October 5, 2017, 1:40pm UTC](https://forum.universal-robots.com/t/move-position-with-offset-error-must-be-a-pose-not-list/1226/3 "2017-10-05T13:40:17Z")

</div>

What you want to do is probably use pose\_add(p1, p2), otherwise pose rotation will be affected.

---

<div class="post-metadata">

**Author:** ![thierry.bourgeois](https://avatars.discourse-cdn.com/v4/letter/t/cc9497/32.png) [@thierry.bourgeois](https://forum.universal-robots.com/u/thierry.bourgeois)\
**Post date:** [October 12, 2017, 7:53am UTC](https://forum.universal-robots.com/t/move-position-with-offset-error-must-be-a-pose-not-list/1226/4 "2017-10-12T07:53:49Z")

</div>

Thank you that is clearer.

---

<div class="post-metadata">

**Author:** ![Savoia](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.universal-robots.com/savoia/32/4844_2.png) [@Savoia](https://forum.universal-robots.com/u/Savoia)\
**Post date:** [January 26, 2021, 6:07pm UTC](https://forum.universal-robots.com/t/move-position-with-offset-error-must-be-a-pose-not-list/1226/5 "2021-01-26T18:07:24Z")

</div>


