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.