Having such complexity would require incredible processing power. And you’d be right! But the simple fact is, the algorithms are really all the same, they just move in ways that are foreign to almost everyone.

The simple fact is, G code programming in machine tools, and TP programming in robots, is the simplest way to do the job. That’s why it’s still done that way. In the 80’s FANUC developed a language called KAREL, named after Karel ńĆapek , the man who coined the term “Robot” It was a compiled language much like Pascal, and was very powerful. It lasted a couple years, and mostly died. It was loved by code geeks, but not by customers who might need to change the code, because it meant paying a wad of cash to a programmer to make even the simplest change. KAREL took several weeks to learn and several months to be good at, even for a programmer accomplished in other languages.

So TPP was written (By FANUC, other robots use other similar languages) so you could teach someone the basics in a couple of days. I know, I’ve gotten TPP+ programming into people’s heads in under three days, a sharp guy can pick the most up in an afternoon. And it’s powerful. Now, there are a few things that KAREL is still useful for, mostly doing difficult communications via serial and Ethernet to pass data back and forth to other items- but even that functionality is being superceded, because as TPP (and other, similar languages) become ever more powerful, the needs for compiled code get fewer and fewer. And even that is nothing compared to the power of “basic” robot programming to deal with frames and user coordinate systems. So a robot sitting on the floor in a factory has it’s own “Frame”, and it’s gripper has it’s own “Frame”, and it has a mathematical image of the “Frames” of the conveyors, and the regrip stands, and the machines, and even the fixtures in the machines. And if those positions change, it is only neccesary to reteach the frame, not the whole program. That’s pretty sophisticated, but it’s just the beginning. Now take the frame that is attached to the workpiece, and put it in motion.

Yes, the robot has a program that it used to paint the part, in this case an axle, and the axle is moving, and the program modifies itself in real time to accomodate the motion of the part, and always paints the part in the same way. This is actually really simple to do, they teach the program when the part is stopped, and then just tell the robot how fast it’s going, and when it enters the robot envelope, and it just does it. Pretty neat, huh? Easy peasy. Now let’s put the robots on rails and move them too.

Yes, those robots- and there are at least six working on the car at any point- are following a car down a paint line. And they are painting it as it moves. And as they move. And several of the robots at any given time are being operated by the same control, so one CPU might be calculating the motion of a six axis robot, the three axis door opening robots, the rails that the robot move along, and the relationship between them all and the moving car. All the while monitoring the temperature, barometric pressure, and humidity in the paint booth and modifying the paint process in real time to optimize the amount of paint used. And the paint is electrostartically applied so there is almost no Fordite to be had, anymore. And the robots can pant each car it’s own color, there is no changeover of the assembly line to switch to a new color. And this is still not really even difficult to do, if I spend three or four days with anyone who can understand X, Y, and Z, they can do this; to have a firm and complete understanding of the geometry is rare, but it is also unnecessary. You teach the points, the robot does the work.