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 ...
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.