Select Topics

Posts by Tag

See all

Latest Blog Post

Dealing with Singularities on Universal Robots

Mathieu Bélanger-Barrette
by Mathieu Bélanger-Barrette. Last updated on May 05, 2016 4:31 PM
Posted on Apr 27, 2016 7:00 AM. 3 min read time

I want to stop you right now if you think I'll be talking about robots taking over the world. Singularities are robot configurations that are mathematically impossible to realize in a given situation which results in a robot safety stop. Let's find out how robot singularities happen and how you can avoid them. 

A singularity is a situation that often happens when you are trying to tell the robot to go to a given point, but since the robot’s configuration is not compatible with this point, the robot stops and shows the error: Joint Limit Violation. This situation is well explained by this example from our friends at Zacobria.

Try to imagine that your arm is reaching for a coin that is half way inbetween your elbow and your wrist. If you are not allowed to change your body position – then it is very difficult to reach and grab the coin. But when you can change your body position then it is very easy to pick up the coin.

Similar situations can occur during the programming of the robot where it will be impossible for the robot to make a linear move from its present position to where it wants to go to reach the coin. The robot will make the attempt; you will see a rapid increase in the robot speed; then the robot will be forced to make a safety stop with joint error messages appearing in order not to break the robot by forcing it to maneuver beyond its mechanical capabilities.

The solution is simple enough, just reposition the robot by giving it new waypoints, thus the robot should be able to reach its target.


A singularity can be summarized as either: the maximum reach for a motor of a robot or an error in the mathematical model of the robot. For example, a division by 0 would create an impossible solution that would create an error. This type of error occurs generally when the robot is moving in linear mode, since the robot is asked to move in a linear path without considering its configuration. There is a fair chance that the robot will enter into singularities if you are requesting it to perform a compact configuration, for example, when grasping an object close to its base. 

Where Do Singularities Occur Most

It is kind of hard to tell you where you are likely to find the most singularities since they are not at a given position, they are relative to the robot configuration. The following examples can give you some ideas as to potential singularities. 

  • When 2 robot axes are aligned, there is a risk that a division by 0 can occur and that the mathematical model cannot reach the programmed solution. 
  • When the robot tool is asked to go in the same direction as a robot section.
  • When the robot reach or its rotation/encoder is limited. 
  • When the robot can potentially hit its own frame. 

Don't Be Fooled

Singularities have to be differentiated from working zones. In fact, robots can be programmed to work in a given area and limited with virtual plans. Since the robot cannot go there, it may indicate the same error: Joint Limit Violation or some other error message. This is not a pure singularity, the robot has simply reached its maximum permissible position. 

Notice that whatever the orientation of the robot; upside down, upright, horizontal; the singularity area remains the same. 

How to Avoid Singularities

The best way to avoid singularities would be to view your programming from the perscpective of the robot’s joints or at a minimum work around the robot joints when the robot is in a compact configuration. You can also try to avoid the configurations detailed above. Finally to remove your robot from a singularity, first you will need to reset it, then you will need to manually jog or teach it a way around the blockage. 

If you need further information on singularities, before you pull your hair out or bash your robot, we have another very descriptive blog post on the subject. Read more here

Download everything you need to know about collaborative robots

Leave a comment

Mathieu Bélanger-Barrette
Mathieu is a production engineer at Robotiq, where he constantly strives to optimize the production line for Robotiq Grippers. He enjoys discovering new robotic applications and sharing what he learns on Robotiq's blog.
Connect with the writer:

Related posts

8 Benefits of Palletizing Cobots in the Coffee and Tea Packaging Process

The coffee industry is very competitive. If you're looking for a way to solve labor shortages, speed up your processes, reduce...

Nicolas Lauzier
By Nicolas Lauzier - November 16, 2022
How to capture sharper images of moving objects

So you’d like to count or inspect moving objects?  Here are a few tips that might help you out.

You can work with a few...

Audrey Boucher-Genesse
By Audrey Boucher-Genesse - May 7, 2020
Surface Finishing: The Essential Guide for Busy People

Surface finishing makes the difference between a quality product and a bargain-bin reject. This guide explains how to choose...

Alex Owen-Hill
By Alex Owen-Hill - February 22, 2020