13 February 2015 -Done-
GCode-like interpreter DONE for Arduino. The code AND the readme are in /scanner_bed Finalizing QT program config, as Arduino code is done.
-Working on now-
Working with QT and OpenGL for 3d rendering of said pointcloud. OpenGL confuses me. More learning experience. Makefile still borked.
29 October 2014
Calibration is nearing completion! Camera calibration is now applied across all relevant screens. Ellipse detection has low error. More settings added appropriately to override my detected answers. We don't want the computer to be too smart...
-Working on now-
Makefile is broken, badly. Was brought to my atention. Will collaborate to fix quick. Determining how to do accurate line detection. I have a few methods. Thinking how to present scanner GUI for users. Re-writing Arduino to work better and more GCode-like. Will work with QT program to make ideal config. Simplyifying GUI so it works on little configuration, and catches errors. Easier for end-user, the better.
29 September 2014
QT program nearly functional for scanning! What is done?
GUI done. Basic configuration. Camera lens calibration!
In the works (actively)?
Laser line detection Ellipse detection (Yes, both of these will auto-calibrate the camera) Scanner. Algo's to increase accuracy and pointcloud generation.
Slightly future Goals?
Implementation of PointCloud Library. Implement more than flat text file for data saving. Looking at .OBJ
Cheap 3D scanner based on Arduino and Processing
I used the base project seen on http://www.instructables.com/id/Lets-cook-3D-scanner-based-on-Arduino-and-Proces/?&sort=ACTIVE&limit=40&offset=40#DISCUSS
If you want to use these programs, you will need the Arduino IDE (for compiling and uploading), and an Arduino Uno compatible devel board for the hardware. For the Processing program, you will need the Arduino up and running to execute the 3d-scanner. I set up the line_processor as a stand-alone. Just dump the sample images with the program and run it in Processing. It doesnt display content, but it does generate line drawings for each image, and generates a pointcloud file that MeshLab can read.
Changes 4 August 2014:
Scrapped Java for QT5, C++ and OpenCV. GUI mostly complete. Multiple video sources will not open concurrently, yet... Working on Calibration now. Alpha code for handling Android running IP Webcam
Changes 28 July 2014:
Still learning Java - Now have GUI and basic webcam viewing set up. Looking at changing my Line and scanner sketch to display 3d point data instead.
Changes 20 July 2014:
Correct math for angled camera placement - Mostly correct Found better camera than my Sony PS2 Eyetoy. I was gifted a Logitech HD webcam! More sample data in /3D-scanner/sample_images/
Better project box enclosure Implementation of 2 line lasers I bought for $2.50 each on ebay Use Makerbot Digitizer technique of dual line lasers at x degrees from camera and -x degrees from camera and do a dual sweep. Make Processing programs Usable. Include circuit diagrams, per user's requests. Figure out technique to include color data with depth data Currently looking in Java for multiplatform and nice GUI options Implement a GCode-like system for the 3D scanner arduino hardware ~ looking at Fabscan arduino code..
Cleaned up variable names Configured my stepper. Set up a ping/pong system so the Processing program knows when a step increment is done. We do this for non-jerky pictures. Created a separate Processing program to handle image->pointcloud handling. This sped up dev time. Added a variable to account for vertical placement of camera. Original project assumes a 0 degree inclination respect to platter. Mine is at an angle.
Correct math for angled camera placement Better project box enclosure Implementation of 2 line lasers I bought for $2.50 each on ebay Find better camera than my Sony PS2 Eyetoy. Use Makerbot Digitizer technique of dual line lasers at x degrees from camera and -x degrees from camera and do a dual sweep. Make Processing programs Usable.
Pie in the sky Todo:
Camera calibration code, including lens calibration Possibly implement 2 cameras, with one at 0deg and other at 45deg. Laser calibration code Table Calibration code Use PCL library to output pointcloud OR STL