Universal Robots Forum

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

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/

Thankyou for your help.

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]

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

Thank you that is clearer.