User Tools

Site Tools


user_manual:scanning_without_background

Switch to English Wechseln zu Deutsch Switch to Italian

Scanning Without Background

Since DAVID version 2.2, it is possible to scan objects without the background corner (two planes) in the scene! However you can not scan by hand, but you will need a precisely repeatable laser motion, e.g. by using a linear or rotating laser drive or by projecting a moving thin line by a video projector.

Advantages

  • You can scan objects that cannot be put in front of calibration planes, like very large objects or objects that are mounted on a wall.
  • You can place the camera closer to the object because there need to be no background planes visible in the camera image. This makes it easier to scan small surface details.
  • You can build a (more or less handy) scanner, consisting of a camera and the motor-driven laser fixed to each other in a certain distance, and a laptop PC. You would calibrate this scanner “at home”, then go anywhere with it and scan objects without having to care about the calibration corner.

Disadvantages

  • You will need to buy or build a drive for the laser (linear or rotation) which is able to repeat the laser motion precisely. So you can not move the laser by hand anymore.
  • You need to take care of “synchronization” of the Initial Laser Position (see below).

Basic Procedure

  1. The camera calibration takes place as usual.
  2. You perform one Reference Scan with background (with or without scan object).
  3. Afterwards, you can perform several Repetition Scans without background.

Requirements

  1. During Repetition Scans, the laser motion must be exactly the same as during the Reference Scan, including
    • Motion type (rotation or linear)
    • Initial Laser Position (see below!)
    • For rotation: Rotation axis, rotation speed, and direction
    • For linear motion: Speed and direction
  2. The following must not change between Reference scan and Repetition Scans:
    • Position of camera w.r.t. laser mount
    • Camera focus, focal length

How to operate DAVID

screenshot_software_motor_driven_laser.jpg

  1. You have to activate this feature in the “Advanced Settings”: Navigate to LaserscannerLaserPlaneCalculationLaserMotionEstimation and set Enabled to True.
  2. Now you will find two new radio buttons in the scan window: “Reference” and “Repetition”.
    • Choose “Reference”, then click “Start” to do the Reference Scan. This will start a usual scan during which DAVID will analyze the laser motion and determine its parameters (linear or rotation, speed, direction, etc).
    • Choose “Repetition”, then click “Start” to do a Repetition Scan with the same laser motion. DAVID will not try to detect the laser line on any background planes, but will assume that the laser positions are the same as during the latest Reference Scan, i.e. start at the same Initial Laser Position and equally change over time.
  3. When you close DAVID, it will save the laser motion analysis result from the latest Reference Scan to a file (laser_motion.xml). When you re-start DAVID later, it will read the file, so you can immediately do a Repetition Scan.

"Synchronization": The Initial Laser Position

From DAVID's point of view, the laser motion must start at the same position each time! This position in 3D space is called the Initial Laser Position. Otherwise the scan result will be distorted (may look funny though).

Since DAVID version 2.3.2, there are two possibilities to synchronize the Initial Laser Position. You can change this in the Advanced Settings, value Laserscanner→LaserPlaneCalculation→LaserMotionEstimation→ScanStartDetectionMode.

Mode 0: The "Initial Laser Position And Time" is when you click Start

In Reference Scan and Repetition Scan, you have to click Start in the moment when the laser motion starts. Of course it has to start at the same Initial Position. This may be difficult to do, but useful when DAVID controls the laser motion over the COM port or receives the Start command from the laser motor controller.

Mode 1: The "Initial Laser Position And Time" is when the laser line gets visible

If you choose this mode (default), it is not important at which time you click “Start”. After “Start”, DAVID does nothing but wait for the laser to appear in the camera image. When DAVID sees some laser light for the first time, this is what it regards as the Initial Laser Position! This is true both for Reference Scan and Repetition Scans.

So in Mode 1 you have to make sure that

  • The Initial Laser Position …
  • … (which is the position of the laser
  • at the moment when DAVID sees some laser light for the first time) …
  • … is the same …
  • … during the Reference Scan and all following Repetition Scans.

There are two possibilities to do this:

  1. The laser is switched on outside DAVID's view, then moved until at a certain point the laser light enters the camera image (not recommended).
  2. The laser is switched on at its Initial Position such that it is immediately visible in the camera image.

In case 1, the moment when the laser light gets visible in the camera image depends on the objects in the scene! So this is not recommended.

In case 2, you have to make sure that there is something in the scene that the laser light immediately falls on to make it visible to the camera. Also you should not switch on the laser before the laser motion has reached its final speed.

Motion Estimation vs. Remembering All Poses

There are two ways for DAVID to “know” the pose of the laser light plane in a Repetition Scan:

  1. Parametrize the laser motion (linear or rotation function over time, assuming constant speed)
  2. Remember all laser plane poses for each point in time.

If your laser motion speed is not constant, you have to choose option 2. Otherwise, option 1 may give smoother results. Option 2 will work even when DAVID says “No regular laser motion detected” at the end of the Reference Scan.

In both cases, you can choose whether laser poses are to be regarded by their time or frame number. The latter refers to a counter of the frames grabbed by DAVID, and should be used only when you are synchronizing camera frames and laser motor steps. See Advanced Setting LaserscannerLaserPlaneCalculationLaserMotionEstimationMotionBase.

During Reference Scan, both methods are prepared. For your Repetition Scans, you can choose the option in the Advanced Settings under LaserscannerLaserPlaneCalculationLaserMotionEstimation:

  • UseRememberedPlanePoses: set False for option 1, True for option 2.
  • UseModelOutsideReferenceRange: If you have chosen option 2 above, this function switches to option 1 when the laser is outside the range of the Reference Scan.

Troubleshooting

Problems Recording the Reference Scan

Although I have my laser *rotated*, DAVID says a *linear motion* was detected.

Probably your Reference Scan was too short. DAVID distinguishes rotation from linear motion by the angle between the first and the last laser plane. The threshold is given by Advanced Setting AngleThreshold. Anyway your Reference Scan should be as long as possible (covering not just a small part of the camera image) to get a precise estimation of the laser motion.

DAVID says "No regular laser motion detected".

When you click “Pause” at the end of your Reference Scan, DAVID tries to determine whether the Laser Motion Estimation parameters are acceptable. This is done by comparing the poses of the measured laser planes to the poses where they should be according to the estimated parameters. There are two simple thresholds for the differences between measured and estimated laser planes:

  • Average distance between measured and estimated laser planes (distance of planes where they intersect the Y axis)
  • Average angle between measured and estimated laser planes

If you switch on the Debug Window (in Advanced Settings), the text window will give you more information about what property of the Laser Motion Estimation is unsatisfying. Also, you can set ShowEstimationIn3D to True in AdvancedSettings, then you will see laser planes in the 3D window.

Both thresholds can be changed in the Advanced Settings (MaxAvrgDistError and MaxAvrgNormalError) , but rather than increasing the thresholds, you should try to improve your setup!

Problems Scanning Without Background (Repetition Scans)

My scan is wavy.

Probably your laser drive does not perform a smooth, steady motion with constant speed.

My scan is incomplete.

In DAVID there are filters that avoid that the calibration panels (and the area around and beyond them) are scanned. When Scanning Without Background, there may be an object where the panels used to be, or even further back. So in that case, in Advanced Settings, navigate to Laserscanner→Triangulation and set AllowPointsBehindPlanes to True and BackgroundFilterFactor to a negative value.

My scan is distorted/bent (e.g. flat surfaces become twisted).

Possible causes:

  • DAVID has not started at the correct Initial Laser Position (see “Synchronization” above)
  • The speed of the laser motion is different than during Reference Scan.
  • The position of the camera with respect to the laser mount/drive (or vice versa) has changed since the last Reference Scan.

How can I know my scanning-without-background is correct and precise?

  1. In Advanced Settings, navigate to Laserscanner→Triangulation and set AllowPointsBehindPlanes to True and BackgroundFilterFactor to a negative value.
  2. Make a Reference Scan with background (with or without an object in the scene). Before you Erase it, save it to a file and/or “Forward” it to Shapefusion.
  3. Click “Erase”.
  4. Do not remove the background, and do not move the object.
  5. Make a Repetition scan. The background panels will be scanned as well.
  6. Save and/or “Forward” the scan.
  7. Click “Show 3D”.

Now you can use Shapefusion to compare the Reference Scan result and the Repetition Scan result. Ideally, they should be identical.

Also, in the 3D-Window of the scanning page, you can check whether the background panels (which have been scanned during Repetition) lie exactly on the grid that is shown there, like in these 2 images:

scanning_without_background_fits1.jpgscanning_without_background_fits2.jpg

And not like here:

scanning_without_background_fits_not.jpg

Here is another example of what effects may occur when the laser motion or the Initial Laser Position is not repeated equally. It shows several scans of the same straight piece of wood, some with extreme deliberate errors to demonstrate the effect clearly:

scanning_without_background_errors.jpg

Green: Reference Scan - Yellow: Repetition Scan without background, slightly imprecise - Light blue: Repetition, deliberate offset in Initial Laser Position (about 1cm, 1 second) - Violet (right): like light blue, but 5 cm - Pink (left): Repetition, correct Initial Laser Position, but moved laser only half as fast as during Reference Scan.

user_manual/scanning_without_background.txt · Last modified: 2014/06/06 18:38 (external edit)