What a ride this class has been! Almost done!
In the last PUPDate, it's made obvious that everything works to some extent.
But how well does it work? What didn't exactly work? What would I change in a second iteration?
I tested the axis positioning repeatability and backlash to validate the module's design. Because both the clamp and nut driver axes are based on the same design, and because most axes are hard to reach or to instrument (instrumentate?), I decided to test only the X- axis.
Here, the FASBot consistently moved slightly under the 0.005" it was commanded to move, implying a systematic error. This is possibly due to rounding errors in the conversion from mm to inches in the grbl firmware, which add up after a few hundred steps.
After moving left, I attempted to switch directions and move right in order to measure the axis backlash. I kept track of how many jog commands it took before it began to move again. The backlash is 0.025", just under 1/32". This is probably due to the exact locations of the tooth engagement and the series spring compression. I can probably use a stiffer spring with a longer stroke, or disassemble the axis and find the right combination of nut rotation that allows for the most spring compression and the least backash.
The repeatability test had the FASBot continually moving its X-axis between 4 and 3 inches in order to move past the backlash hysteresis. The dial indicator was zeroed for the first data point reaching 4 inches. I measured each data point when the carriage stopped at 4 inches and manually entered it into MATLAB.
3 Test Trials were conducted, with the FASBot being homed after each one.
Tests 1 and 2 exhibit similar behavior, with the machine always reaching farther and farther away from the original position. Test 2 was the worst, with the FASBot moving further and further away from the zero'd position after each move. The maximum deviation was 0.035 inches, more than the axis backlash! I imagine this behavior can be attributed to the stepper motor skipping steps every time it moves, perhaps because it must overcome static frictional torque. If my axes are overconstrained, I can add a flexure to or machine the sides of one of my axis bushings in order to eliminate this overconstraint.
Microstepping may have also been useful to prevent skipping steps due to motor vibration. I conducted these tests with full stepping, in order to maximize motor torque, but the sharp vibrations in the stepper motor during acceleration/deceleration could have been enough to cause it to skip steps. I could switch to half- or quarter-stepping and see if I can achieve smoother motion with no continuous deviation. All of the error can be eliminated using feedback control.
The best repeatability was achieved in Test 3, with a maximum deviation of 0.0055 inches. Perhaps after all of the previous trials, the bearings had smoothed out and the static friction was decreased, or maybe I just got lucky with the motor vibrations.