Further work
Given more time to elaborate the project further, I have a few particular problems I'd focus on next:
1) Establish a sequenced calibration procedure. I did all calibration by hand, comparing Kinect data with manually entered motor positions. This was laborious, slow, and probably less precise than building a calibration sequence into the software would be.
2) Debug motor speed. In my experience, the fewer stepper motors the Arduino is running, the faster they will run. So even if the Arduino is issuing instructions to three steppers to all run at 1000 steps/second, these will run noticeably slower than if it's issuing the same instruction at the same target speed to only one stepper. I'm not sure if this is a flaw in the AccelStepper library, or my implementation, or something else altogether, but it's very vexing and led to some unwanted unevenness in output motion. I'd like to squash this bug once and for all because it causes a lot of trouble!
3) More careful matrix transformations. I noticed what appeared to be some nonlinearity in the Kinect data I was gathering. That's manageable if multiple data points are collected and a new correcting function is built based on these known data points. Then the corrected data could be fed into the motor instructions, increasing the efficacy of the matrix transformation and the output accuracy.
4) Perhaps the best calibration procedure possible would be one where the Arduino moves the lightbulb to specified positions, and where the Kinect (which has an IR camera after all) would note the lightbulb position by looking for its heat signature. That would require some elementary computer vision processing on the raw input data. If it worked, this would be a calibration that needs no human model involved and would allow for automatic high-precision alignment of the two matrices.
Content Rating
Is this a good/useful/informative piece of content to include in the project? Have your say!
You must login before you can post a comment. .