Firmware, kinematics and probe design for a 3 DOF CMM arm.

We were given a school project where we were required to design a 1 Dimensional distance sensor. Unfortunately, we were also newly armed with 3D printers and looking for an excuse to use them. In five days we built a fully functional Computer Measurement Machine (CMM), equipped with an omni directional probe. I designed the probe as well as wrote the firmware and software.

The three joints use potentiometers to measure their angles. Each axis was calibrated manually using a digital potentiometer to convert the Arduino’s voltage reading into a usable angular measurement.

With the angular measurements and the known arm lengths, forward kinematics can be applied to determine the position of the end effector. The omni directional probe is required to measure discrete points. An interrupt is fired when the probe tip is sufficiently deflected and an angle measurement is taken.

A glass base plate serves as a flat reference surface. To perform the 1D measurement that the project required, we measure the height from the reference surface. This is accomplished by first probing at 3 linearly independant points on the reference surface to generate a reference plane. The object to be measured - in this case the height of a lego brick - can then be placed on the reference surface and probed at the target height. The required 1D measurent is simply the normal vector to the plane.

A handy patent provided the design for the probe. Some modifications were required for ease of manufacturing via 3D printing, and a magnetic mounting mechanism was designed. The mounting mechanism allows for swapping of different end effectors if so desired. The end effector mount points also serve to carry signals.

The probe tip required some further modifications from the original design in order to function reliably. Firstly, the screw heads used as bearing points were polished for better conductivity. Secondly, it was found that occasionally the return spring was insufficient to re-seat the probe. Small but powerful neodymium magnets were used to alleviate this.