ABC tool angles

Started by AleInno, August 09, 2019, 01:35:39 PM

Previous topic - Next topic

AleInno

Hi all,

I start a new topic based on this old one: https://forum.robotsinarchitecture.org/index.php/topic,401.msg1133.html#msg1133
because at that time KUKA PRC did not have the option of using Z as tool axis

until now I have used X as a tooling axis, and I have very precise tool calibration values we have achieved in the last months

tool axis are oriented as per this image:


I would like them to be oriented like in $World, which requires a rotation around B by -90 degrees

A= 0.16  does not change
B= -49.945   becomes  -139.945
c= 0.411 does not change

after using these values in KUKAprc (and chosing Z as tooling axis) the tool does not look straight anymore, it looks like the Z axis is slightly in an angle

I think I am not doing it the right way, could plase someone enlighten me on the right procedure to follow?

Thanks!

Johannes @ Robots in Architecture

Hello,

For performance reasons there is some rounding happening for the visualization (where we assume that you work in the range of millimeters or maybe 1/10mm, as zooming in to 1/100mm does not really make sense as the robot isn't that accurate), but it should not noticeably effect the code.
Where does the tool axis not look straight anymore?
At least the math seems right, if you change from X to Z you do have a 90 degree rotation, from -49 to -139.

Best,
Johannes

AleInno

#2
Hi Johannes, thank you for helping out on this

I have done some research in the afternoon
from what I have understood, adding/removing 90 degrees to a single A/B/C value will not maintain the correct orientation of the other axis in the system (unless particular conditions are met, like maybe you might change B by +/- 90 if C=0 or similar cases)

I can very easily be completely wrong on this,
it's a very interesting topic and for sure I will dig into it in the coming weeks/months, but today I really had to find a solution to have our arm working again,

so I have used Rhino to do the following:
-> create an axis system that matched my current Tool_ABC values (that I want to reorient)
-> rotate this axis system -90 degrees around its Y, in such a way it reflects my final result
-> use galapagos to recalculate ABC from scratch (this was a bit time consuming because I had to narrow down the ABC slider values step by step, until I could measure an error as small as possible, in my case error between XYZ and X'Y'Z' reoriented axis angle [absolute value] summed up together --> smaller than 0.01 degrees)
note: Galapagos is not the best solver for this problem, but I wanted numbers :) so I gave it some more time

this way I got some new "random" ABC values that I can just write down to define a new tool with very same XYZ values

---------------

Edit#1
actually nothing changed: the tool keeps being slightly tilted


---------------

Edit#2
by changing tooling axis from X to Z, I also got some weird ABC outputs in the src file, like all A B and C never being 0 but -90 for some reason
the simulation on KUKAprc looks perfect, but when I try the src file on the KUKA (same base and tool calibrations, triple checked) the program is not executed because of "workspace error"

Johannes @ Robots in Architecture

Hello,

I'll have to look into that, unfortunately this week is rather packed and there are many people on holiday. I may have time tomorrow, but cannot promise anything.
If you can send me a simple file that shows your problem (or one with X and one with Z) that would make the troubleshooting easier, in case the issue is not generic, but specific to your usecase.
One more comment regarding XYZABC: There are multiple ways to express the same position. So if the number is not a perfect 90 degree, it doesn't necessarily mean that it's wrong.

Best,
Johannes

AleInno

Hi Johannes,

I think I was finally able to sort things out, I didn't notice the "Custom Tool: Plane" component automatically turns the tool by B=90 degrees
(it's also clearly explained in the component help window, I just missed it)

if I was a good mathematician I would be able to extrapolate ABC values from the rotation matrix... but I'm not
so the best solution I found is to use your Custom Tool: Plane component together with Putterfish's Rotate Euler component

hopefully this might be of help for other non-mathematicians like me:)

given a tool with correct ABC values, but where XYZ axis need to be rearranged while keeping the very same reference system orientation:



this way the ABC values listed in the tooltip of "Custom Tool: Plane" are recalculated by your component, and can be used to re-define the very same tool with rearranged axis (both in KUKAprc and in the KUKA itself )

Johannes @ Robots in Architecture

Hello,

I'm sure that will be helpful for others as well, thanks a lot for sharing!

Best,
Johannes