JeffSinger wrote:Lets say you have a turret with steppers. It is aiming straight ahead. The software sees a target on the extreme right and tells the steppers to move x number of steps in y direction to aim at it. Now, BEFORE it has a chance to make it there, the software interrupts it and tells it to move x number of steps in some other direction because there is another target. Everything is [censored] now. You might think, "well I'll solve that by making sure it waits long enough for it to make it to its first position." That is clearly retarded. You end up with a dumb, slow turret that STILL has a high chance of being off. Because of the way steppers work you are always just GUESSING what their position is when calculating how many steps in needs to move to go to the next position. Servos are far superior just for the simple fact that they have a potentiometer on their axis monitoring their TRUE position. No BS guessing is required.
Yes it is true that if you control a stepper with stupid code then it'll behave in a stupid way. If you control a servo with stupid software it will also behave in a stupid way.
In the real world, particularly when precision is required, you don't tell the stepper to move X steps. You tell it to move 1 step and buffer the rest of the movement in software. If the target moves then you update the buffer. The software just looks to see if the buffer is non-zero then issues a single step command (with direction) and decrements the buffer. Telling the stepper to move 100 steps then, well before it has done that, you change the # steps is just stupid coding, not an intrinsic problem with the stepper motor.
The stepper has the advantage over the servo in that with proper control you can feed-forward the momentum of the motor+machinery, that is, the software knows how fast it has been issuing step commands and therefore knows the momentum state of the stepper and attached machinery. (Of course, feedback is always better than feed forward but feed forward is a lot easier to implement.) With a servo you don't generally have direct feedback as to what it is actually doing right now. If you do have feedback from a servo then you are partially defeating the purpose of the servo as a "go where I tell you without needing any further direction along the way".
With adequate feedback (e.g., position sensors) there is no real difference in precision or speed between a stepper and a servo.
Steppers have one common advantage over servos: they generally have much higher holding torque than does a similar sized and powered servo. Furthermore, steppers tend to be much more precise in situations where very little error can be tolerated. That is why CNC machines are almost always steppers and not servos. That little bit of wiggle as the servo uses its potentiometer and PID to get to where it is supposed to be is unacceptable in a precision milling machine.
And, it isn't true that "Servos are far superior just for the simple fact that they have a potentiometer on their axis monitoring their TRUE position. No BS guessing is required." It entirely depends on the setup. If the servo has it's own internal controller then the feedback can only fix the error if the motor has enough power to do so. Without feedback to the external (master) controller then the fact that the servo knows it is wrong is of no use, it is still wrong and the master controller doesn't know that. That is the exact same problem that steppers have. In both cases for a highly accurate system you must have feedback to the master controller, feedback to something like a servo's local controller isn't optimal, or even significantly better than just using a properly sized stepper with no feedback.
Overall the whole discussion of which is better is really kind of dumb. Each type of motor excel as some things and sucks at others. You can prove that is the case just by considering that huge numbers produced and large range of sizes of both types of motors that are available. If one type was clearly superior to the other then the crappy one wouldn't exist in the market place in thousands of different sizes and manufactured by dozens of different companies.