Keep getting singularity

  • I keep getting singularity errors whem my J4 and J6 are nowhere near lined up. I'm going between two PRs. I made sure all my position configurations matched. I need help!



    J1: 56.889

    J2: -12.030

    J3: -7.969

    J4: 103.653

    J5: -.847

    J6: -111.444

  • Lemster68

    Approved the thread.
  • If J5 is that close to 0, then J4 and J6 should be lined up. What model robot is this? With what wrist type?


    Also, post the entire exact error message, especially including the axis number being reported.

  • I think it's important to provide mode details here:

    - Both PR values.

    - Position that the robot is stopping at - are the values you have published the stopped/error vaules.

    - The type of motion you are using transitioning between the PR's.


    Just touching up positions serve no purpose until you know exactly what the cause is.

  • M20iA robot, R-30iA controller. Not sure of the wrist type. Its a grit blast robot so it has the sleeve.


    For some reason I thought singularity was just J4 and J6 alignment. I didn't realize J5 could also cause it.


    So the position I posted was at a PR. I re-taught that PR and I got it to work. Now I'm getting a SRVO-115 Limit Error for group 1, axis 8. I don't have an 8th axis on this robot.


    It stopped at :

    J1: 58.808 J2: -22.549 J3: -9.456

    J4: -115.113 J5: 6.062 J6: 107.165

  • It is an axis 4 and 6 aligment, and it happens when axis 5 is near zero.


    I think The axis are binary numbered in the errormessage, so the numbering is 1 2 4 8 enz.

    So that would be axis 4.

    That is so you can tell a problem between axis 2 and 3, it will give the number 6.


    You will get a limit error when the next position is not reachable, when it is a linear move, all of the intermediate positions must be reachable too.

  • Abodame99


    It maybe worth your while jogging the robot through those PR's before you change them so you can see exactly what occurs around singularities for future reference:

    Basic viewing but not in all cases:

    - Speed change as it approaches a singularity.

    - Watch JT4 and JT6 joint angles, they usually oppose each other (they move in opposite directions).

  • Axis error codes are in Hexadecimal, if you decode it by converting to binary, each bit is and axis, so if you have an error of "G:1, A:10" it is the axis 5 who is causing the problem, if code is "12" axis 2 and 5 are giving the problem.


    There are more than one type of singularity, not only from the axis 4/6, you can also have singularity on the axis 2/3 when very streched, and on axis 1/6 if the axis 6 interface is pointing up per example.

    Any axis alignment is a singularity.


    Singularities should be avoided when possible, one way is to use a tool interface that has around 15 degrees of inclination (or more) to the flange, this problem should be avoided when possible when designing the tools from your applications.


    If you pass near singuilarity but the point is a fly-point, you shouls first try to use a J movement.

    If a linear movement is required, you can try to use the "Wjoint" modifier on the movement, but take care since the path will not be completelly ninear and robot will deviate in order to avod the singularity. Do not use this modifier if point coordinates are being calculated since it will not be reliable due to config changes, only on fixed points.


    Also, singularities and L movements are not the best friends, since a L movement is done with the shortest path and axis configuration is not used, you can reach axis limits very easily. You should avoid to do the complete path with L movements, at least try to use one or 2 to "unwind" the axis so limits are not reached.

  • Hello everyone, I'm having a problem with the robot having a singularity point. In case the Position register has been taught the correct position (can't teach another position or change the base of the robot), I can adjust j4 and j6 to be opposite each other. to avoid singularity or not? For example, if j4 is 90 and j6 is -90, can I further adjust j4 to 95 and adjust j6 to -95 to avoid the singularity?

  • No, as already stated here in the thread, singularity is caused by axis 5 being near zero. If you only change axis 4 and 6, you don't change anything at axis 5,so the singularity problem won't vanish.

  • No, as already stated here in the thread, singularity is caused by axis 5 being near zero. If you only change axis 4 and 6, you don't change anything at axis 5,so the singularity problem won't vanish.


    Totally agree. Said in other terms, singularity comes when J4 and J6 are alligned (nothing to do with their angle values), and this occurs when J5 is near to zero on linear movements.


    Keep in mind that movement from P1 to P2 normally starts, but singularity can occur in the middle of trajectory. This is normally solved modifying the gripper giving it an appropiate offset angle on its basis (lets say 20 to 30º). This makes J5 to not reach 0º.


    Another solution (if trajectory has not to be totally straight) is to put WJNT motion modifier at the end of the movement instruction, but be careful with that. Gripper normally does strange movements.

  • FANUC recently also released a software option for temporarily changing the kinematics to 5-axis (basically disabling J4 and locking it in -180°/0°/180°) wich enables both jogging and program motion through singularity points.

    Palletizing mode is the name of the option, I think.


    Also, there is the Singularity Avoidance option, which will allow for minor posture/orientation changes during the linear motions through/near singularities.

Advertising from our partners