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.