leihui6 / measurement_system_in_3d

My master's project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Measurement System in 3D

This is my final project of master's degree, that is, Automatic Industrial Measurement System Based on Registration.

Steps

The workflow of this system is shown as follows.

Compiler

For now, all steps are tested and ran on Windows 10 with visual studio 2017.

Development Kits

Download from here.

Requirements

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

Quick Demo

Here are four steps:

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

  2. Registration

    From un-registration to registration.

  3. Searching marked points

    Searching marked points in scanned point cloud with registration result.

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

About

My master's project

License:MIT License


Languages

Language:C++ 99.3%Language:QMake 0.7%