Scanner 3D Architecture

Let go over the scanner architecture in more details and try to lay a framework for the task.

Note that I have never built anything like this and all these notes are preliminary. I’m sure many challenges will show up and I may change completely my plans mid-way. But that’s the nature of the beast with technical projects. If anyone would like to share the adventure with me and try to build the scanner and solve the challenges please comment!

The principle is to use two galvanometers (galvos) to control a laser spot position and project lines on the object being scanned. The lines will follow the shapes of the object and their deformations are recorded by a camera. Once acquired an algorithm process the images to extract the lines and reconstruct the object geometry.

The diagram under shows the relation between all the pieces.scanner_architecture

I’ve not yet talked about this Fesnel lens in the middle. The role of the lens is to project parallel laser rays on the object. I actually don’t know yet if the lens is required to ease the reconstruction task, maybe the software could compensate for the divergence? Fresnel lens can be cheap even for a large diameter, but they may introduce too much artifacts on the line projections to be usable. We will see at the build…

Also the object could be placed on a motorized rotary table (not in the schematics) to scan multiple angles automatically.

Now let’s see what pattern we could use with the scanner. One great challenge is how we can keep the scanning time low. So we can try to use the video capability of the camera to acquire as many frames/line position per second. The idea I have is described under. The duration for one line position is timed to last ~2 frames (1000 * 2 / 24 = 83ms). During the time the same path can be repeated multiple time depending on the speed of the galvos. Also multiple horizontal and vertical lines could be projected at the same time to reduce the total scan time. The last element is a ‘code-bar’ that can be decoded by the software to mark the line position. Think of it as a counter to uniquely tag the frame. To avoid confusion of the software, the laser should be blanked during the transitions.scan_frame_structure

The reason this frame code is interesting is that it allows a complete resynchronization of the laser movement and the camera video. So the scan sequence after calibration could go like:

  1. Build the glavo movement and blanking sequence
  2. Launch recoding of the camera
  3. Play the laser movement file
  4. Stop camera recoring
  5. Go though the video and using the frame codes to resynchonize and modelize the object (could be done in parallel of 3 if processing power requirement is not too large)
  6. Rotate the table and restart at 2 for the new angle

During a frame scan, the horizontal lines and vertical line will sweep across the field area to cover the whole object:


One parameter difficult to judge before hand is how many line the galvos will be able to display correctly. As it’s a mechanical device with inertia, the maximum speed while keeping strait lines is limited. So it might be needed to make a tradeoff between accuracy and total scan speed.


From this architecture we can already see challenges an maybe start mitigation actions:

  1. Overall scanner principal is wrong/not working [low risk]: there is quite a lot of literature on the subject that describes exactly this methodology.
  2. Galvos cannot draw the lines properly [low risk]: one again, the online laser show community is a great source of information. The patterns are not too complexes and should be achievable.
  3. Reconstruction is difficult : see point 1, as we are not using exactly the same setup details may vary like ray divergence, camera lens correction…
  4. Cost too high : at this point I have no idea what will be the final BOM cost of the scanner, but if we can keep away from complex optics we should be good. The goal shoud be well under $1k.
  5. Poor accuracy : I’ve not talked about the performances of the scanner, but as it’s oriented toward the scan of small objects, the reconstruction has to be quite accurate to be useful (mm range?). Things like the laser speckle (size of the dot) will limit the scale of the details the system can capture. I’m not sure if the laser will require focalization or the use of special filter in front of the camera to reduce the visible speckle.
  6. Schedule slip [no risks!]: yeaah for once there is no project leader and gantt diagram so this project will go at its own pace!

That’s all for now, if you have any remark, comments or question ask away!

[<<Prev. – Introduction]    [3D Scanner articles]   [ILD File reader – Next>>]


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s