How does CNT exactly work?

  • Hi guys,
    I would like to know how the CNT function exactly works. What happens when I do CNT 100 or CNT 50 mathematically? Is there a mathematical definition for it?


    If I have two paths with different length (see attachment), one from A to B to C and the other from D to E to F and I put to both the same speed and the same CNT. Will the relation of the paths be significant for the curvature or does the "radius" stay the same?




    Thanks a lot for your help!

  • First and foremost, the math behind the motion is horrifying and without going neck deep into calculus, differential equations, linear algebra, and inverse kinematics, you will not likely get an exact mathematical representation of the path to predict or plan motion with.


    That being said, the general principles are relatively simple.


    CNT100 means that the robot will come as close as it can to the point while maintaining 100% of its speed. This means that at higher speeds, there will be a theoretically larger radius or curvature, and it will miss the point by a larger margin. CNT50 means the robot will come as close to the point as it can while maintaining at least 50% of the speed. CNT0 should theoretically be the same as a FINE point, but some tests have shown that it is not.


    A lot of things will effect the path of the robot. The CNT#, the speed of the move, the override speed of the robot, the robot's acceleration and deceleration profile and where along that profile it is at that point, the payload, the necessary joint angles needed for a particular move, and the physics programmed by the manufacturer on what constitutes the maximum load to place on the robot in given situations. Even the orientation of the path relative to gravity can have an impact.


    In general, a FINE point and a CNT0 point should go all the way to the programmed point, with some unreliability in my experience of whether or not there is a brief stop or slowdown at that point.


    Best practice with CNT moves is to slowly step up the speed and re-test the path until you reach full production speed. The higher your CNT value, the slower you should step up your speed. CNT moves are best reserved for open air moves between stations, and some weld points along a line or constant curve, to maintain proper speed. FINE moves are relatively reliable to follow the same path at different speeds, but ALWAYS verify before you trust it. FINE moves are usually used at pick and place points, or weld start and stop points.


  • A lot of things will effect the path of the robot. The CNT#, the speed of the move, the override speed of the robot, the robot's acceleration and deceleration profile and where along that profile it is at that point, the payload, the necessary joint angles needed for a particular move, and the physics programmed by the manufacturer on what constitutes the maximum load to place on the robot in given situations. Even the orientation of the path relative to gravity can have an impact.


    Shouldn't override speed leave the path as is? I've never accurately measured the CNT paths on the robot, but it looked like it's the same independent of override

    If my posts are dumb please tell me so I can post better ones :smiling_face:

  • Thanks a lot Robo_Eng_13. This is an important fact that CNT has to do with the reduction of the speed.
    As I am programming my own robot controller and path interpolator for a different robot I wanted to know how Fanuc solves the problem. So you can imagine I already am neck deep into maths :winking_face:


    I found a paper suggesting to solve the smoothing of direction changes depending on time. So the higher the smoothing value the less a single axis is on its linear path. Actually it is similar to maintaining a percentage of the speed but differently defined. (I hope you can see the paper without an account)


    Do you know that what you told happens in the controllers of Fanuc or is it more a guess from observations?

  • Do you know that what you told happens in the controllers of Fanuc or is it more a guess from observations?


    Some i know, some i assume based on observed behavior. I have a Bachelor's degree in Mechanical Engineering with a minor in Robotics focused on programming, and Kinematics was a big part of that. I have now been a robotics engineer working with Fanuc robots in production for almost 4 years. So, a lot of what i have said is based on what i know that they MUST do to accomplish what they accomplish, and part is based on what i have seen and tested, and read that others have tested here and elsewhere. There is always room for error.


    Another point that may or may not be in the paper you found is that this is a physical arm in the real world, and the mass of the robot and the long term health of its components are taken into account. This will play a huge roll in where the controller draws the line on some of its boundaries, and will factor in to its calculations. The arms are aluminum, which means they WILL experience fatigue failure eventually, no matter how light the load, so the load placed on the castings will likely be taken into account to ensure that the lifespan is what it needs to be. The motors and breaks will also be taken into account.


    Shouldn't override speed leave the path as is? I've never accurately measured the CNT paths on the robot, but it looked like it's the same independent of override


    My experience is very much that override speed has an impact on the path. It is possible that other factors have obfuscated reality and override does not effect path, but it seems to me that it does, based on what i have observed.

  • That would probably be the difference! I do not believe we have or use that option.


    I have Constant Path on all my robots, it came as standard. Maybe it's difference between markets, I'm in EU

    If my posts are dumb please tell me so I can post better ones :smiling_face:

  • That would probably be the difference! I do not believe we have or use that option.


    If, when you select the motion termination type, you see CD in addition to the normal FINE or CNT, then you have the option. CD is Corner Distance, specified in mm, the distance from the taught point at which it can round the path. I think it should be standard, but you know Fanuc, they want you to pay for everything.

  • We have 90 arms, some from Europe, some from America. We may have this option and just not utilize it, and we may only have it on some robots. The management team who ordered the robots did not do a very good job of keeping them standardized.

  • CR is your friend if you want a true path behavior like abb. For cnt values on old robots I've found that for starts (next to fine points) its better to use cnt100 in order to let the robot accelerate, then when close to a fine point use cnt50-80. Also L movements are more reliable than J, with L movements the robot will make a more constant path...


    Also the override speed is noticeable if you are programming an old robot. With a 1000mm/s(50%) speed the path betwheen 15% override and 100% override its pretty the same. If you step up to 2000mm/s(100%), the path its different betwheen that 2 speed overrides.

  • Hello, i'm trying to reverse engineer the CNT of fanuc. I need to simulate the trajectories so my AI can learn on it. Does anyone have any idea if there's a description of fanuc's method for cnt ? i'm afraid if i use other methods i will get different results.

  • Hello, i'm trying to reverse engineer the CNT of fanuc. I need to simulate the trajectories so my AI can learn on it. Does anyone have any idea if there's a description of fanuc's method for cnt ? i'm afraid if i use other methods i will get different results.

    Maybe train your AI to read this entire thread from the beginning.

  • Fanuc's specific math for CNT is their IP, and they don't share it with anyone.


    This post (#2 from this thread) has more information than what Fanuc will officially share.


    Just like your first post in this thread stated, you will have to reverse engineer their path planner. There is nothing more that you will get from Fanuc.


    The handling tool manual has one four sentence paragraph that goes over CNT, and one picture. In my manual, MAROUHT9307191E REV B, it starts on page 7-80.

  • If you are reffering to CR stuff, it only works with linear movements. My algorithm do the planning in the joint space for joint movements.

    Is there any place I can follow your work? This is really fascinating!

  • Hello, i'm trying to reverse engineer the CNT of fanuc. I need to simulate the trajectories so my AI can learn on it. Does anyone have any idea if there's a description of fanuc's method for cnt ? i'm afraid if i use other methods i will get different results.

    Hello friend.. Did you come to any conclusion?

Advertising from our partners