13.01.2013 Views

PhD Thesis - Automated Recognition of 3D CAD Model Objects in ...

PhD Thesis - Automated Recognition of 3D CAD Model Objects in ...

PhD Thesis - Automated Recognition of 3D CAD Model Objects in ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

New Approach 26<br />

3.4 Step 3 - Calculation <strong>of</strong> the As-planned Range<br />

Po<strong>in</strong>t Cloud<br />

The <strong>3D</strong> model scan-referenc<strong>in</strong>g (Step 2 ) enables the virtual world def<strong>in</strong>ed by the<br />

project <strong>3D</strong> model to be viewed from the viewpo<strong>in</strong>t <strong>of</strong> the scanner, <strong>in</strong> a similar<br />

manner to virtual or augmented reality [104, 17]. From this viewpo<strong>in</strong>t, it is then<br />

possible to calculate a virtual range po<strong>in</strong>t cloud (or as-planned range po<strong>in</strong>t cloud)<br />

correspond<strong>in</strong>g to the <strong>in</strong>vestigated real range po<strong>in</strong>t cloud (or as-built range po<strong>in</strong>t<br />

cloud), us<strong>in</strong>g the <strong>3D</strong> model as the virtually scanned world. For each as-built range<br />

po<strong>in</strong>t, a correspond<strong>in</strong>g as-planned range po<strong>in</strong>t hav<strong>in</strong>g the same scann<strong>in</strong>g direction<br />

can be calculated <strong>in</strong> the virtual world, as summarized <strong>in</strong> Algorithm 3. Note that,<br />

Algorithm 3 <strong>in</strong>cludes the function CalculateBVH calculat<strong>in</strong>g a bound<strong>in</strong>g volume<br />

hierarchy <strong>of</strong> the <strong>3D</strong> model, BV H. The need for calculat<strong>in</strong>g this bound<strong>in</strong>g volume<br />

hierarchy will be addressed <strong>in</strong> Section 3.4.2, and its calculation is detailed <strong>in</strong><br />

Appendix D.<br />

Data: Scan.{PB}, <strong>Model</strong>, Scan.Frustum<br />

Result: Scan.{PP }<br />

BVH ← CalculateBVH(<strong>Model</strong>, Scan.Frustum) // see Algorithm 23 <strong>in</strong> Appendix D<br />

for each Scan.PB do<br />

Scan.PP ← CalculateAsPlannedPo<strong>in</strong>t(Scan.PB,BVH) // see Algorithm 4<br />

end<br />

Algorithm 3: Procedure CalculateAsPlannedPo<strong>in</strong>tCloud calculat<strong>in</strong>g the asplanned<br />

range po<strong>in</strong>t cloud correspond<strong>in</strong>g to an as-built range po<strong>in</strong>t cloud.<br />

The calculation <strong>of</strong> each as-planned range po<strong>in</strong>t is performed as follows. Consider<br />

one as-built range po<strong>in</strong>t, PB. It is def<strong>in</strong>ed <strong>in</strong> spherical coord<strong>in</strong>ates by its pan angle,<br />

tilt angle and range, (ϕ, θ, ρ). Its correspond<strong>in</strong>g as-planned range po<strong>in</strong>t, PP ,is<br />

first assigned the same pan and tilt angles, ϕ and θ. Then, its range is calculated<br />

by perform<strong>in</strong>g the virtual scan <strong>in</strong> the scann<strong>in</strong>g direction, or ray, def<strong>in</strong>ed by these<br />

two angles and us<strong>in</strong>g the scan-referenced <strong>3D</strong> model as the virtually scanned world.<br />

S<strong>in</strong>ce the project <strong>3D</strong> model is STL-formatted, its range is thus the distance between<br />

the scanner’s orig<strong>in</strong> and the closest <strong>in</strong>tersection po<strong>in</strong>t <strong>of</strong> the ray with a STL facet<br />

<strong>of</strong> a <strong>3D</strong> model object.<br />

Once the closest <strong>in</strong>tersected STL facet is identified, the as-planned po<strong>in</strong>t is not<br />

only assigned a range value, but it is also assigned, as an IDobject feature, the name<br />

or ID <strong>of</strong> the object to which the <strong>in</strong>tersected STL facet belongs. So, contrary to the<br />

real scan, it is known <strong>in</strong> the virtual scan from which object each as-planned range<br />

po<strong>in</strong>t is obta<strong>in</strong>ed. A po<strong>in</strong>t that does not <strong>in</strong>tersect any STL facet <strong>of</strong> any object is<br />

assigned an <strong>in</strong>f<strong>in</strong>ite range and a null IDobject feature value.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!