Make Accurate 6400 Point Rotary Encode ?
pjv
Posts: 1,903
in Propeller 1
Hello All;
Just asking the question here on how to make an accurate 6400 point resolution rotary encoder inexpensively.
Why ?
Well, I am building a series of XYZ desktop motion machines, and I would like to get 0.001 inch accuracy with relatively fast movements. So to get that precision with speed, I don't want to have large ratios on my steppers. So, I'm interested in measuring what real (vs theoretical)) precisions can be had by microstepping. Stepping motors typically spec a 5% accuracy which would imply that microstepping beyond 8 is pointless, although the typical values may be somewhat better than that. Perhaps 16, or maybe even 32 for selected brands. Also I want to see what happens at any microstep point when the current in both windings is reduced proportionately. Will the position remain true ?
So I want to run some experiments on my motors to get some hard data points, and hence I need a method of resolving rotational counts at 200 steps per rev, and 16 microsteps per step = 3200. But to ensure I can have confidence in the last digit, I really should be able to resolve double that, so 6400 points per rev. And, since it is just an experiment to be discarded after wards, I am looking for low cost.
The thing that comes to mind is an optical scribed disk and a video fence and leds with photo transistors. Speed of the sensors at that resolution will be somewhat important as I must not miss any pulses. The best precision I can scribe lines with is probably in the order of a couple of thou opaque, and the same for clear. Say, 0.005 for a pair. This means a circumference of 6400 * 0.005 = 32 inches, or a diameter near 10 inches. At that size it will be difficult to machine a disk to run true in its width to the tolerance I suspect I need to make the optics work. But of course, while desirable, I don't really need a full revolution to do my tests; a few dozen steps along the arc should be sufficient. That simplifies the challenge to a piece of a 10 inch diameter disk with perhaps a few hundred line pairs on it.
So, have any forum members other ideas on how to accomplish these measurements? Could a camera do the trick?
Just trolling for ideas......
Thanks, and cheers,
Peter (pjv)
Just asking the question here on how to make an accurate 6400 point resolution rotary encoder inexpensively.
Why ?
Well, I am building a series of XYZ desktop motion machines, and I would like to get 0.001 inch accuracy with relatively fast movements. So to get that precision with speed, I don't want to have large ratios on my steppers. So, I'm interested in measuring what real (vs theoretical)) precisions can be had by microstepping. Stepping motors typically spec a 5% accuracy which would imply that microstepping beyond 8 is pointless, although the typical values may be somewhat better than that. Perhaps 16, or maybe even 32 for selected brands. Also I want to see what happens at any microstep point when the current in both windings is reduced proportionately. Will the position remain true ?
So I want to run some experiments on my motors to get some hard data points, and hence I need a method of resolving rotational counts at 200 steps per rev, and 16 microsteps per step = 3200. But to ensure I can have confidence in the last digit, I really should be able to resolve double that, so 6400 points per rev. And, since it is just an experiment to be discarded after wards, I am looking for low cost.
The thing that comes to mind is an optical scribed disk and a video fence and leds with photo transistors. Speed of the sensors at that resolution will be somewhat important as I must not miss any pulses. The best precision I can scribe lines with is probably in the order of a couple of thou opaque, and the same for clear. Say, 0.005 for a pair. This means a circumference of 6400 * 0.005 = 32 inches, or a diameter near 10 inches. At that size it will be difficult to machine a disk to run true in its width to the tolerance I suspect I need to make the optics work. But of course, while desirable, I don't really need a full revolution to do my tests; a few dozen steps along the arc should be sufficient. That simplifies the challenge to a piece of a 10 inch diameter disk with perhaps a few hundred line pairs on it.
So, have any forum members other ideas on how to accomplish these measurements? Could a camera do the trick?
Just trolling for ideas......
Thanks, and cheers,
Peter (pjv)
Comments
Thanks, I had not thought of that. But I wonder about slop and precision in the gear chain. Effectively, I still need to resolve 0.005 at a 5 inch radius, and that does not feel easy to do.
Cheers,
Peter (pjv)
Such items are never really discarded, as they continue to be useful, as in ....
I see Avago units from sub $50 for 5000 cpr ..
Given this is a measurement, you would prefer something proven, over home-built.
Also, FWIR about systems that push Motor specs, the high end ones included a ROM with the motors, in other words, they did not expect perfect angular steps, but they placed them on a fixture, and measured the actual angle vs drive profiles.
Memory is dirt cheap, and easy to program.
That's another reason to get a good encoder, and use it for calibration.
Hmmmm; If I get a fine timing belt pulley of some largish diameter to fit on the stepper, and a much smaller diameter one to fit on a cheap encoder, then the ratios will multiply my resolution.
But, in one of the timing belt driven motion machines I currently have, there exists a several (4) microstep hysteresis when the direction is reversed. So timing belts might not be the best method.
I do have some stainless belt material, so perhaps machining some precision pulleys for that.... But then the issue of concentric pulley mounting holes gets into the fray. Not as easy as it at first appears.
How about a long needle mounted to the stepper shaft and a digitized picture ? I think Phi Pi's camera has a pixel resolution of 20 ish microns.... Hmmm.
Cheers,
Peter (pjv)
Since any micro stepping is dynamic, if you jump a step it is going to jump to the next adjacent coarse resolution of your stepper which is only 1.8 Deg per step or 200 steps per revolution. As I said, any micro stepping is dynamic and your driver/controller will constantly try to position the motor at some point between the coarse steps via PWM based on where you are telling it to go. ... So all you really need is a way to check to make sure you are on the correct coarse setting and haven't skipped or jumped that location. If you are just doing this for exercise and want to determine the linearity of your micro stepping driver, then use a micrometer. Honestly 6400 steps per revolution is not really that much, we are using controllers that can dial down to 51,200 steps per revolution and by the time you factor in the lead screw threads per inch and any backlash, we can easily hit one ten thousandth resolutions.
Beau, Really I should have explained that one of the things I want to measure is the linearity when microstepping. Further more, how much (or rather how little) resistance the device has to mechanically pull the position away from the theoretical position. Lots of folks seem to believe that small microstepping is absolute. I'm not so sure, and would like to measure this, and for that, I believe I need 6400 resolution minimum. Also, I believe I have observed that some microsteps are not monotonic. Again, accurate and precise measurement can prove this.
Cheers,
Peter (pjv)
For instance we have a CNC machine capable of profiling a sample down to the 1um level... for a long time we were seeing what we called striping in the data samples at the 1um noise floor.... turns out it was the lead screw. The pillow box actually orbits the lead screw and is not concentric. Diving deeper into the noise floor another phenomenon we are observing, similar to striping, are the recirculating bearings within the pillow box.
My point is that if the microstepping was not accurate we would not be anywhere near having the ability to observe the phenomenons mentioned above.
So it sounds to me you could consider such a controller more like a "stepped" servo with feedback. My expectations are to use simple open loop control, but I would like to know how good it is under various conditions.
Cheers,
Peter (pjv)
Modern industrial "encoders" I strongly suspect now internally use a resolver and just emulate the pulse stream of an encoder externally. I say this because they offer both a settable index position and an any-resolution as part of the field configurability. And of course absolute SSI is an option as well with a resolver base like that.
This way you are measuring what you are actually interested in.
https://www.usdigital.com/products/encoders/incremental/rotary/shaft/H3
A bit pricey for just getting some data and proving some assumptions. However, I will likely go that way if I cannot get what Mickster suggested.
I can probably modify his approach and use my milling machine bed to make the measurements if I only turn the steppers a few steps. I can measure one tenth of a thou with that.
It'll be a bit awkward, but it might be adequate.
Thanks all, and cheers,
Peter (pjv)
Oh, if you have a milling machine then maybe you have a digital caliper? This could also be used.
My method is to put the machine through hundreds of point-to-point moves and then command the axes to return to the point where I took the initial reading to check for drift.