_p vs _q variable value definitions

I am looking at my fixed variables and notice all the poses and noticed that each one has two different values.
ex.
bag_dump_p p[0.83087, 0.51367, 0.17454, 1.28, 1.33187, 1.11257]
bag_dump_q [.9041, -2.78114. -0.89554, 0.30246, 0.67914, 3.28895]

I noticed that the waypoint that is created with my target:=pose_trans(Camera_Zero, offset) only has one value without either a _p or _q on it.

I know that the waypoint variable that has the _p and who’s number starts with a “p[” is a pose. but what is the other location? Is it the joint values in radian or what?

I am working with a cognex2800 camera (which doesn’t work with any urcap) and I am trying to figure out where the misalignment values are between what my camera is finding and where the robot is going to when being sent there. It isn’t off by much but as my parts are cylindrical even a small amount of error can cause issues with the gripper or vacuum cups (I am still working with both to determine which one gives the appropriate flexibility and lowest cycle time).

Thank you for your time into this.

I did a search in my software manual for _q and it came up with nothing.

Hi,
If i am not wrong , the results of the _q are the angles in radians of all six axes.
When you create a point directly in the console , it generates the inverse_kinematics which will move respect to the _q values .
That is what i figured out while making some tests , but as i said , i can be wrong.
I also tryed to search some info but i wasn´t able to obtain nothing.

I am aslo working with a vision camera and i have had a similar problem when respositionating the robot . If you are using the get_actual_tcp_pose() to send the camera the real position of the robot´s tcp , make sure to apply the function rotvec2rpy to obtain the real RX,RY and RZ. I noticed that the result form get_actual_tcp_pose are not the sames that the robot shows on the console , but using the rotvec2rpy , the results maches .Then you just have to use r2d(‘radians’) to see the rotations in degrees if needed.

If it helps , here is what i am using:

global tcp = get_actual_tcp_pose() # ’ Get actual tcp pose(X,Y,Z,RX,RY,RZ)# ’
global rpy= rotvec2rpy([tcp[3],tcp[4],tcp[5]]) #‘Calculate actual RPY in radians’
global var_10 = tcp[0]*1000 # 'X in m# ’
global var_11 = tcp[1]*1000 # 'Y in m# ’
global var_12 = tcp[2]*1000 # 'Z in m# ’
global var_13 = r2d(rpy[0]) # 'RX in º# ’
global var_14 = r2d([1]) # 'RY in º# ’
global var_15 = r2d([2]) # 'RZ in º# ’

Hello,
If I find question correctly:
_p is Tool Center Point (TCP), which you set up when installing the robot. It shows TCP position in cartesian coordinate system. Values are given in meters.
_q shows joint positions (degrees) in radians. It shows values in this raw [Base, Shoulder, Elbow, Wrist1, Wrist2, Wrist3].

Hope it helps you,
Giorgi

1 Like

It does. Thank you very much.

That is very useful and a lot more information than I was looking for but definitely information I may be needing.

Thank you.