I am currently trying to implement a local Python version of the get_forward_kinematics() method following the formula used in this document:
https://www.universal-robots.com/articles/ur/application-installation/dh-parameters-for-calculations-of-kinematics-and-dynamics/
I already downloaded the calibration delta values from my robot and so far I am getting the correct values for x,y,z as long as I use [0,0,0,0,0,0] as the tcp offset. My problem is that the orientation angles I am seeing are entirely different than the ones returned by the native call and my x,y,z values are also very different once I use a tcp offset different from 0.
I suspect that the beta/alpha/gamma values returned in that document/excel sheet above are euler angles and not axis-angle values, but if that is the case I have not managed to find the correct conversion function. Any pointers how I have to convert them?
The other part where I am quite clueless is how to factor the tcp offset into the result - is that something I can add/transform after getting the forward kinematics values without the offset or do I have to already add them to the Denavit–Hartenberg parameters?
And I guess there is no hope that you could share the native algorithm used in get_forward_kinematics()?