Hello Everyone,
First of all, if there is a better place for this to be posted, please let me know and feel free to move it. Also, if there is another place in the forum or in the Fanuc manuals with this information I apologize, but I'm having trouble developing the right search terms to find it.
The Goal:
I am hoping to find a resource or description of how a Fanuc robot uses the values stored in WPR to calculate the angle of its tool. I need to be able to calculate WPR offsets so that they affect my point in the way I expect every time. (My best guess is that it has something to do with Euler angles or quaternions? Wikipedia Link)
My Application:
I am programming a robot to place large sheets of material into slots in a rack. The slot locations are measured, and then used to calculate an X,Y,Z,W,P,R offset that must be used to accurately place the sheet into the slots. I know how to calculate the angles required for the sheet to land in the slot, but I am not sure that the angles I calculate are used by the robot in the way I expect them to be.
My Observations:
The best I have been able to find is that the WPR values represent the rotation about the X,Y, and Z axes. This is also what makes sense to me, but I have run into a few weird situations where these offsets did not behave as expected.
- Sometimes what I expect to be the Y axis is actually the X axis and vice versa.
- When Jogging in my current user frame, I will watch my position screen. If I jog in purely rX, rY, or rZ while my rotations are all 0, then it behaves similarly as I expect, excluding a few axes being swapped. As soon as I have 2 or 3 non-zero rotations though, jogging purely in rX may change both the W,P, and R values of the position simultaneously. I'm not sure how to calculate an offset if a pure rX offset could change all three WPR values at once.
- I remember running into a circumstance where I sent the robot to a position register that had a WPR value that I calculated. The robot got to the point and was oriented as I expected it to be. When I looked at the position screen though, the WPR values did not match the PR values anymore despite the robot being where I expected it. The position was in the same user frame that the PR was sent to. (I did not save this situation, so I would have try some things to repeat the situation)
- Another situation I ran into was with J6 pointed straight out in the +Y axis, and the tool was completely horizontal. I found that adding 5 degrees to R did the exact same thing as adding 5 degrees to W (it may have been R and P, but the idea is the same). Adding 5 degrees to either axis rotated the tool 5 degrees about the world Z axis.
Resulting Conclusions:
- WPR values are not purely rotations about the X,Y, and Z axes.
- Changing just W, P, or R can result in a single rotation about either X, Y, or Z, but it is not always predictable which axis will be rotated around
- Multiple WPR sets of values can result in the same robot position.
[size=1em]My Robot: R2000iC/125L
My Controller: R30iB[/size]