This is my final project of master's degree, that is, Automatic Industrial Measurement System Based on Registration.
The workflow of this system is shown as follows.
- Labeling/Marking a set of points representing the shape to be detected (10.2020)
 - Coarse registration (11.2020)
 - Fine registration (11.2020)
 - Searching the points to be measured in the specified point cloud (11.2020)
 - Combining all components (12.2020)
 
For now, all steps are tested and ran on Windows 10 with visual studio 2017.
Download from here.
Each step should have its dependencies libraries, also might require the whole libs as follows.
| Library | Purpose | Official Website | Usage | Note | 
|---|---|---|---|---|
| Eigen 3.3.7 | Core geometric calculation | link | header-only | |
| OpenSceneGraph 3.6.4 | Visulization of point cloud | link | compile require | |
| nanoflann 3.6.4 | Visiting operation in point cloud | link | header-only | |
| CGAL 5.0.2 (The Computational Geometry Algorithms Library) | Associating with core geometric calculation | link | compile require | |
| OpenGR(A C++ library for 3D Global Registration) | Implement Super4PCS for coarse registration | link or link | header-only | |
libpointmatcher with its yaml-cpp-pm | 
Implement ICP for fine registration | link | compile require | modified version that support export matrix per iteration instead of completed vtk-file when setting dumpReading | 
Here are four steps:
- 
Marking/Labeling
The red zone consists of red points marked by operators. Meanwhile, these zone is marked as points, line, or plane. This process will not participate in the real-time inspection.
 - 
Registration
From un-registration to registration.
 - 
Searching marked points
 
Searching marked points in scanned point cloud with registration result. - 
Measurement
The inspection including defect detection and geometric measurement, follows a specific relationship describing the marking items as below:
Point Line Plane Point 1|2 1|2 1|2 Line 2|3 2|3 Plane 2|3 '1' indicates the geometric relationship, '2' means the scatter relationship, and '3' means the angle should be calculated between two items based on the normal vector.
Through Plane-to-Plane and Point-to-Plane, the measurement reuslt(mm) is shown as below:
Geometric Scatter Angle Plane-to-Plane - 26.987 8.656 Point-to-Plane 1.517 1.70 - We do not need all values in table above.
 






