Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Singularity not detected
I use RoboDK to detect the singularity of my robot, but I got a mismatch, RoboDK showed "MoveL OK" but my robot failed. The RDK file:

When I go from "Pretake" to "Take" in this file, RoboDK doesn't show any problem, the real robot crashed because of a singularity.
I measured several time, the Robot and position are exactly the same in RoboDK and in the Real world (I directly use the data from the robot to setup RoboDK).
The Robot is Bound to use config [Front|Elbow Up|Non-Flip], but I force RoboDK to also use this config so this should not be the problem.

What could cause this error ? does other parameters have an impact on the singularity detection ? the speed of the robot ? does the tolerance could be set to fit the real robot better ?
Hi Tokrat,

Which singularity do you face? (Wrist, elbow, shoulder)
According to the small station you sent, there shouldn't be any singularities.
In the station you sent, there is no program, just target. What sequence are you testing?

Hi !

I have a problem with the singularity of the wrist (axe 4 + 6), I know the software say there is no singularity, but the robot crashed with this movement indicating a singularity.
I don't use RoboDK for the sequence, we just use it to check for singularity and axis limits.
I use the API of RoboDK, I set the target (those in the programs) and ask to simulate a linear movement "Pretake -> Take -> Out"

I checked multiple times to be sure that the robot and simulation are in the same position. I didn't see any error.
Hi Tokrat,

Look at "Tools"-"Options"->"Motions"
You will find "Tolerance to avoid singularities".
Make sure that these parameters match with your robot limitations.

Ok I found the parameters, but I have two problem:
- The RDK file is created by my program in runtime, so how can I change these parameters with the API ? I could change my program to load the RDK but if I can avoid it it would be better.
- I don't know what value I should set for the parameters. I could eyeball it but I cannot afford the robot to crash during production, and I don't find any parameter from the constructor (Fanuc)
Hi Tokrat, 

You can change these values via the API. 

RDK.Command("ToleranceSingularityWrist",value as a double)

For the complete list of commands:
"Tools"->"Run Script" -> "ShowCommands"

Have a great day. 
Ok thanks !

And how should I do to find the right value ? I can't find any parameter from Fanuc
That I honestly have no idea.
Worst case scenario "trial and error" could be a method.

But asking your Fanuc representative could be an option.


Users browsing this thread:
1 Guest(s)