I am not sure on the discrepancies on the values, I’d have to let one of my colleagues that has more insight on the back end of the UR calibration process answer that question.
How did you get your initial a,d, alpha and theta vales? I have done a brief analysis in the past and received a little different result. Using the following model:
I am be off just curious, if this could be a source of error.
Another thing to note, the values you have hihglighted on PolyScope are scaled when it comes to RX RY and RZ.
Attached/below is a Python program that exemplifies the scaling. When run it produces the following results:
PolyScope SCALED value: [0.0012193680503253582, -3.166495598686568, -0.03951768623096099]
PolyScope SCALED value: [2.4759166894662425, -5.364486160510192, 1.6506111263108283]
The first vector is the default startup position when the URControl is simulated. Note, the input and scaled vector are pretty similar, but not the same.
The second vector is based on the customer’s data.
from math import *
v_init=[-0.0012, 3.1162, 0.03889]
v=[-0.06, 0.13, -0.04]
def length(v):
return sqrt(pow(v[0],2)+pow(v[1],2)+pow(v[2],2))
def norm(v):
l=length(v)
norm=[v[0]/l, v[1]/l, v[2]/l]
return norm
def _polyscope(x,y,z):
if ( (abs(x) >= 0.001 and x < 0.0) or (abs(x) < 0.001 and abs(y) >= 0.001 and y < 0.0) or (abs(x) < 0.001 and abs(y) < 0.001 and z < 0.0) ):
scale = 1 - 2pi / length([x,y,z])
ret = [scalex, scaley, scalez]
print "PolyScope SCALED value: ", ret
return ret
else:
ret = [x,y,z]
print "PolyScope value: ", ret
return ret
def polyscope(v):
return _polyscope(v[0], v[1], v[2])
polyscope(v_init)
polyscope(v)