Unable to rotate one axis by PR coordinates.

  • Hello,


    I’m having really werid problem with FANUC Robot model M-710iC. I can’t rotate one axis in user coordinate system by changing coordinates in PR (pos. register), even though I can rotate this axis manually via buttons on teach pendant.
    It works like this:


    If I change W coordinate in PR (X Rotation), from 0 to 10, Robot rotates 10 degrees around Z axis.
    If I change R coordinate in PR (Z Rotation), from 0 to 10, Robot rotates 10 degrees around Z axis.
    If I change W from 0 to 10, and R from 0 to 10, Robot rotates 20 degrees around Z axis.


    This happens to any PR in any program. This all happens in one same user and tool frame, without switching between more frames.


    When I change P coordinate in PR, it should rotate around Y axis, but rotates around X. To sum up, I can’t rotate Y axis via PR coordinates and X is switched with Y.


    Has anyone ever stumbled upon such problem? If you need any more information from me to identify problem, just ask.

  • Thanks for the reply. I've made a little research into this topic and some things are still a bit unclear. Please correct me if I’m wrong.


    W, P, R are Euler angels. In PR register on FANUC they are intrinsic angles, which means each next rotation is made with respect to frame already modified by previous rotation.


    From what I read about Euler rotations, when I rotate about one axis, whole coordinate system is supposed to rotate, as it's shown on the animation on this site: https://www.mecademic.com/reso…Euler-angles/Euler-angles.


    For example:
    If I rotate about Z (R), both axes X and Y should rotate and change orientation in space.
    If I rotate about X (W), both axes Y and Z should rotate and change orientation in space.
    If I rotate about Y (P), both axes X and Z should rotate and change orientation in space.


    But to be able to reach Gimbal lock, there should be something what I found in one course called a 'child', 'medium' and 'parent' axis.
    Z is 'parent', if i rotate about Z, both axes X and Y should rotate and change orientation in space.
    Y is 'medium', if i rotate about Y, only axis X should rotate and change orientation in space.
    X is 'child', if i rotate about X, only gripper should rotate and change orientation in space.


    This 'parent', 'child' philosophy is correct? If yes, does it apply to every robot manufacturer? The order of rotation is expressed by coordinates system name (for example xyz means rotations happens in order x -> y -> z)?

  • I haven't heard of the parent child philosophy, but what you describe doesn't sound correct.


    If I remember correctly gimbal lock happens on a Fanuc robot when the P angle is at 90 or -90 degrees. This is usually when tool z is aligned with user x.


    You should try my solution of using a tool offset of w,p, or r to change your angle instead of directly setting it in the base pr.


    Sent from my SM-G930V using Tapatalk


  • W, P, R are Euler angels. In PR register on FANUC they are intrinsic angles, which means each next rotation is made with respect to frame already modified by previous rotation.


    Exactly WPR stand for yaW, Pitch, and Roll angles
    The product of the three transformations can be seen as both as intrinsic or extrinsic


    The gimbal lock ONLY happens when you rotate around Y +90 or -90 degrees, making X,Z rotations redundant
    a unique solution cannot be computed because there are infinite possible combinations


    Although the system uses the USER/TOOL frames as references during teaching, the PR is stored as raw positional/orientation data
    not associated to any USET/TOOL frame


    So you must take into account which USER\TOOL frame are active when you use the PR in a movement instruction


    If you have a USER/TOOL frame defined, and teach a PR with these frames as reference, then (in general) you SHOULD be able to manipulate the values of the PR to get a new position/orientation


    Just to test record again your PR, then rotate in tool (or user) around Y and record a new PR
    compare both to see the representation

Advertising from our partners