real ur5 end effector orientation does not match waypoint orientation given

asked 2019-12-02 11:05:14 -0600

shu gravatar image

updated 2019-12-02 11:05:37 -0600

I am trying to control a real ur5 with waypoints. Giving the ur5 waypoints positions works fine, but I am having trouble understanding how the resulting transformation with orientation works. I am using trac_ik as my kinematics solver.

Approximate starting pose of end effector (I don't have permission to post pictures unfortunately):

Position: [0.14, 0.07, 0.365]
Orientation: [0.27, 0.653, -0.27, 0.653]

After the asking the ur5 to move to the following waypoint:

wpose.position.z += 0.02
quas = quaternion_from_euler(0,0,0, 'ryzy')
wpose.orientation.x = quas[0]
wpose.orientation.y = quas[1]
wpose.orientation.z = quas[2]
wpose.orientation.w = quas[3]

The end effector moves to this pose:

Position: [0.14, 0.07, 0.375]
Orientation: [0.15, 0.36, -0.14, 0.909]

I don't understand why this is, I expect as converting euler angles (0,0,0) to quaternions should generate an orientation of [0, 0, 0, 1].

Can someone help me understand how to transform the end effector orientation correctly? Please let me know if you need any more information.

edit retag flag offensive close merge delete


Have you solved this since? How do you obtain the Position/Orientation values of your end effector? Have you confirmed that you set the orientation [0,0,0,1] as the goal of your request? Is the TCP set in the UR teach pendant to something that's not zero? What is the end effector of your move group?

fvd gravatar image fvd  ( 2020-02-28 02:33:24 -0600 )edit

I haven't unfortunately, but I've had success executing Cartesian Paths. I read the values for the Position and Orientation of the end effector off of RVIZ. The TCP is set to just the end of the TCP and the expected payload is zero. I'm not sure what you mean by the end effector of my move group, but its called "manipulator" in the SRDF file.

shu gravatar image shu  ( 2020-02-28 09:44:45 -0600 )edit

I meant what your move_group returns for getEndEffectorLink. Is it the same link you check in Rviz? What is the terminal output when you plan a motion? I assume you mean the TCP in the UR teach pendant is unchanged ("just the end of the wrist").

fvd gravatar image fvd  ( 2020-02-29 03:56:24 -0600 )edit