HOW THE SCANNER WORKS
The OpenColor3DScan scanner is made up of the following main parts: a mountable structure, a laser triangulation system composed of two lasers modules and a usb color camera, an Arduino micr controller, a small stepper motor with its driver and two usb cables. The scanner uses the webcam to locate the points at which two laser beams bounce off an object's surface. The points are mapped out and turned into a point cloud 3D model. The color webcam is also used to capture the color of each scanned point.
The OpenColor3DScan scanner is designed to be built at home with consumer technology, it ensures an affordable hardware cost and it allows the exchange of some of its components to personalize it. For example the camera can be exchanged to obtain a higher color quality, the stepper motor and its driver can be exchanged to obtain more detailed models.
Precise angles and distances between the lasers, the camera and the object are needed to ensure the OpenColor3DScan scanner proper operation. It is critical that the pieces that make up the structure are hard-wearing and strongly clipped together. To meet this requirements and ensure accuracy in assembling the parts of the structure, OpenColor3DScan scanner supplies manual bending aluminum pieces with precise laser-cut self-referenced nodes. These are tab and hole geometrical joints that allow for a perfect assembling of the parts with minimum error margin and using only a few screws.
Once the structure is built up, the devices and controllers assembled and the software installed in the computer, the scanner is ready to run.
The software that runs the scanner is available for free downloading and it can also be improved as it is open source. If you want to contribute follow us at github. The main calculation algorithms are found in the openC3DSprocess class. The camCaptureSubpixelProcess function extracts only the usefull information from the captured image. And the Component_3D_Angular_1_axis_Scan function performs the triangulation to obtain the position of each point in the 3D space with its color information.