kl3m3n's blog

Community Browser
cancel
Showing results for 
Search instead for 
Did you mean: 

Mini laser scanner - part 2 (designing the system)

Klemen
Active Participant

This part is dedicated to calculating the parameters of the scanning system and basic system design. In order to scan the object, I chose a stationary camera-projector system, where the object is subjected to motion. The relative motion between the scanner and the object can be used to preserve the proportions (i.e. spacing between the sequential scan lines) of the reconstructed surface. In this case the scanning speed/rate and the object motion speed has to be known. The scan line is also perpendicular to the motion of the measured object.

Figure 1 shows the rough sketch of my scanning system (not yet built, although I already have all the components).

Slika.bmp

Figure 1. Basic setup of the laser line scanning system.

The parameters were determined using the lens and triangulation equation. The sensor of my web camera is 1/3'' CMOS which equals to the physical size of 4.8 mm in width and 3.6 mm in height. I have calibrated the camera using the NI Vision Calibration Training interface and also determined the focal length of the web camera in real-world units. The calibration was real quick using only five images and I did not cover the entire grid. I will perform more accurate calibration at a later stage. The triangulation angle was selected based on the measuring distance (magnification) and scan resolution (dz). Figure 2 shows the calculated parameters of the system.

Parameters.jpg

Figure 2. Determining the parameters of the scanning system.


I have also placed a band-pass filter in front of the camera lense to attenuate the environment lighting and pass only the laser light at 650 nm. The filter effect is visible from Figure 3.

Filter_noFilter_comparison.jpg

Figure 3. Acquired image using a band-pass filter (left image) and without filter (right image) in the same lighting conditions.

I will be using the following procedure to calculate the 3D surface of the measured object:

  • extract the laser line from the acquired image,
  • determine the distorted pixel coordinates form extracted line,
  • normalize the distorted pixel coordinates,
  • undistort the normalized distorted pixel coordinates,
  • transformation from 2D image coordinates to 3D camera coordinate system using a pinhole camera model,
  • transformation from 3D camera coordinate system (CCS) to 3D world coordinate system (WCS), where the motion of the object will be taken into account. The origin of the WCS is located on the moving part of the scanning system.

I have already written the code in LabVIEW for the first five points above. I will move to the last point after I've already built the scanning system. I still have to determine the speed of the stepper motor and I will use some sort of linear encoder (probably the IR diode emitter and detector pair). I was thinking about using the pattern matching alghoritms to determine object speed in pix/s, but I think the transformation from 2D to 3D would then not be possible.

Thanks for reading.

Be creative.

P.S.: For programing the Arduino I recommend Arduino for Visual Studio (http://visualmicro.codeplex.com/). You have almost all the benefits of Visual Studio. I think you can also debug your code, but an addon is required for this. Anyway, you can exploit Intellisense feature and have great control over the datatypes throughout the code.


https://decibel.ni.com/content/blogs/kl3m3n



"Kudos: Users may give one another Kudos on the forums for posts that they found particularly helpful or insightful."
Comments