Harvester

From RepRap
Revision as of 22:22, 29 December 2010 by Midge (talk | contribs) (Harvester - A DIY 3D PHOTO SCANNER)
Jump to: navigation, search

This page is a development stub. Please enhance this page by adding information, cad files, nice big images, and well structured data!

Crystal Clear action run.png
Harvester

Release status: unknown

No image available.png
Description
DIY 3D Photo scanner
License
Author
Contributors
Based-on
Categories
CAD Models
External Link


Harvester - A DIY 3D PHOTO SCANNER

What is Harvester?

Harvester is the name given to a project to develop a low cost DIY 3D photo scanner whilst exploring using photogammetry to capture 3D models from photos for printing on a 3D Printer.

The name Harvester has come about due to its nature of gathering and collating images for processing and because of its expected future connections with Huxley Seedling i.e harvest the seed to grow the seedling!

The aim is to develop a prototype or working model within the next three months and for it to be demonstrated at MakerFaire in March 2011 alongside Huxley Seedling

Contributors to this project will include myself and my partner Bodgeit. Feedback, discussion and other constructive input from those on the Reprap forum will be most welcome.

Scope of the Project

The scope of the project is to be able to scan and print small objects up to approximately a 12” cubed object from a series of photographs.

It is advisable for interested parties to read and be familiar with the primer “The Basics of Photogammetry” which further explains and describes many of the terms, principles and design considerations referred to in this project.

It is also assumed readers will be familiar with Reprap 3D printing

High Level Requirements Summary

For the purpose of this project the high-level requirements to be considered are:

1) A moveable platform or base (e.g. turntable) upon which objects can be placed to be photographed from a variety of orientations (i.e. angles and positions). This platform should also cater for the ease of camera calibration.

2) A camera which can be easily positioned to provide acceptable field of view (FOV), focus, calibration and orientation needed for nearest accuracy of image capture and 3D object generation.

3) A PC or laptop with photogrammetry software to easily collate and process the captured images (e.g. JPEG or AVI format) into one or more 3D file formats such as PLY, OBJ or STL

The initial aim will be to get the main concepts of the above process working and in the future to integrate these together as one cohesive system alongside 3D printing.


Preliminary Design Considerations & Requirements

Based on the high-level requirements and research the following design decisions and requirements were considered and identified for this project:

1) Make the platform in the form of a turntable that can rotate an object to any specified angle, thus simulating Y-axis functionality. This will eliminate the need for the camera to rotate around an object to capture images on all sides and at different orientations i.e. the object will be centred and rotated a full 360° on the platform.

2) To ease positioning an object centrally on the turntable, it should be engraved, marked or etched with ruler or grid type measurements (in cm/inches) along 4 axis’s at every 90° from the central point. It is considered mm measurements at intervals of 5mm should be ideal and sufficient for the purpose of this project.

3) The rotation of the turntable will be facilitated by a stepper motor controlled by Arduino with the minimum capability of 7.5° turns (approximately 1 step) i.e. ideal accurate image capture is at every 30°, however every 15° is desired for a more improved accuracy.

4) It should be possible to mount most common types of digital cameras at a suitable focus, field of view (FOV) and orientation needed for image capture. This can be achieved by providing a special camera holder unit or cradle to hold and secure the camera in position. The cradle should be adjustable in order to accommodate most common types and sizes of digital cameras or webcams.

5) It should be possible to rotate the camera cradle a full 90° (azimuth angle) to assist with self-calibration and meet the requirements to have at least one photo taken rolled at 90°.

6) The camera cradle ideally should be mounted on the X, Z axis’s each of which can be driven by individual stepper motors controlled by Arduino. The horizontal X-axis should provide the ability to adjust the distance from the centre point of the turntable so that a full 12” high/wide object can fit into the field of view of the camera. The vertical Z-axis will enable positioning the camera at the correct height so that it can be positioned centre to the height of an object or to capture images at various vertical elevation points. Positioning the camera directly above an object on the turntable may also need to be considered.

7) It should be possible to combine the turntable and camera cradle mounting into one unit that can be easily transported and sit comfortably on a standard table or desktop.

8) Based on preliminary line of sight calculations the dimensions between camera lens and the centre of the turntable should have a minimum measure 33” (6” turntable + 23” ideal minimum focal distance from the edge of the turntable + 4” manoeuvrable space to account for different lens protrusions). Hence the overall internal length of any container unit should at a minimum be 40” (33” + 6” for rest of turntable + 1” perimeter space around the turntable) along the line of sight between the turntable and camera.

9) It should be considered to develop the unit so that it can be expanded or collapsed to make it more portable/transportable.

10) It should be possible to shield the object being photographed from harsh or artificial lighting or under/overexposure to light. It is also ideal to block shadows. This could be achieved by providing a cover or external walls that facilitate diffused lighting (like that used in usual studio photographic situations). This could be provided with apertures in the roof or walls covered with tissue or other semi-transparent materials or attachable/detachable diffusers that can be positioned above and around the object to be photographed.

11) It should be possible to photograph the object against a dim background (e.g. black) which should also have a scale bar or rule zeroed with the turntable top (e.g. etched or marked at equal 5mm intervals in the background should be sufficient).


Design Overview

Given the previously outlined design considerations and requirements, the overall design for the 3D photo scanner comprises of:

1) A container unit providing a dim and scale rule or grid background with diffused lighting

2) A turntable that is stepper motor driven providing 15° turns

3) A camera cradle that can hold and rotate the camera 90°

4) The camera cradle mounted on moveable X,Z axis with each axis that is stepper motor driven

5) A digital camera (preferably high-resolution)

6) PC software to process photographic images into 3D image files

7) PC software to view a 3D image file viewer e.g. STL file viewer for testing (optional and out of scope of this document as there are many CAD applications available that provide this functionality)

8) PC Software to load and print a scanned object on a 3D printer (optional and out of scope of this document as this is already catered for by ReplicatorG etc) for testing

The scope of the design focuses primarily on items 1) to 4) and 6) above. For the case of 5) at least three most common models camera or webcam will be considered and tested.


DESIGN – CONTAINER UNIT

TBD


DESIGN – TURNTABLE

TBD


DESIGN - CAMERA CRADLE

TBD


DESIGN – CAMERA CRADLE MOUNTS & AXIS’S

TBD


DESIGN – PHOTOGAMMETRY PC SOFTWARE

The PC software will provide the following functionality:

1) Selection of two or more photo image files to be processed

2) Manually or automatically selecting a device configuration for the camera used (needed for calculations during processing). Device used can in some cases be detected from the photo files. As an extension at a later date may include automatic loading / configuring of various devices (optional).

3) Selecting or configuring a preferred 3D file viewer to show the processed 3d image

4) Ability to specify known Camera orientation (angle and position) for each image.

5) Ability to specify known scanned object maximum dimensions

6) Display selected photos and allow the user to remove, add, or move/change order of photos

7) Process selected photos to generate 3D model and show progress

8) Launch a 3D file viewer (optional). It may be considered to build this feature into the software at a later date!


Development platform

At this stage I am considering using Java (jdk1.6.0_23) for the software development.


Coming Soon - Things to be done!

1) Sort out some diagrams and photos for each section of the design

2) Complete update of design sections