From 11:00 PM CDT Friday, Nov 8 - 2:30 PM CDT Saturday, Nov 9, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

kl3m3n's blog

Community Browser
cancel
Showing results for 
Search instead for 
Did you mean: 

Point cloud registration tool

Klemen
Active Participant

Hello,

I am attaching an application (with graphical user interface - GUI) that can be used to register/align a pair of point clouds. Filtering can also be performed prior to the registration process. The application is partially inspired by Geomagic's cloud registration functionality (although my interface is not nearly as fancy ). There are three registration possibilities:

  1. Manual registration, based on manually selecting the corresponding points on two point clouds (using PCL),
  2. Sample consensus initial alignment, based on descriptors that are extracted from the two point clouds (using PCL),
  3. ICP registration, which produces very similar results as the Geomagic's global registration - at least on the datasets I've tested (using trimesh2). The algorithm is fast and more information can be found in the paper "Efficient Variants of the ICP Algorithm" by Rusinkiewicz S and Levoy M. I used the trimesh2 library because I wasn't getting good results with the PCL's ICP algorithm (using the classical ICP from PCL 1.6.0). I have not tried to create my own ICP pipeline as suggested on the PCL forums. Possibly this would provide much better results.

Figure 1 shows the main user interface with two triangulated point clouds that need to be registered.

registrationTool_1.png

Figure 1. Main window of the application.

Clouds from Figure 1 cannot be aligned with ICP directly, so some preprocessing is necessary. Figure 2 shows the user interface for manual registration. The transformed cloud based on the manual registration and target  cloud are shown at the bottom of the interface.

registrationTool_2.png

Figure 2. Interface for manual registration.

By selecting "OK", the transformation values are passed to the main window and the transformation matrix indicator is updated accordingly (see Figure 3).

registrationTool_3.png

Figure 3. Manual registration.

Performing the ICP improves the result by minimizing the errors and the transformation matrix indicator gets updated (see Figure 4). Multiple ICP routines can be executed by clicking on the ICP button.

registrationTool_4.png

Figure 4. ICP registration.

In every step, the clouds can be visualized in main window as points (see Figure 5) or surfaces (see Figures 1,3,4).

registrationTool_5.png

Figure 5. Data from figure 4 visualized as points.

Additional information on the controls and indicators can be found by clicking on the Help->Instructions on the top-left corner of the GUI (see Figure 6).


registrationTool_6.png

The requirements to run the application are PCL 1.6.0 and Qt 4.8.0, where you need to add the "bin" paths to the PATH system variables.

The application is at this time provided as .exe only and can be found in the attached .zip file. The .zip file is password protected in order to potentially avoid the virus scanning during upload. The password is in the attached .txt file.

There are possibly some bugs - if you test the application and have the time, please provide feedback.One of the bugs is related to the manual registration only after re-opening the manual registration window. The picked points are not always displayed on the cloud, although they are registered (see the cmd output window).

P.S.: The input cloud(s) must be in the .pcd format. Example (column 1 - X data, column 2 - Y data, column 3 - Z data):

# .PCD v0.7 - Point Cloud Data file format

VERSION 0.7

FIELDS x y z

SIZE 4 4 4

TYPE F F F

COUNT 1 1 1

WIDTH 3171

HEIGHT 1

VIEWPOINT 0 0 0 1 0 0 0

POINTS 3171

DATA ascii

10.000000    25.000000    -5.000000

11.000000    26.000000    -4.000000

14.000000    29.000000    -1.000000

-112.290000    164.349000    82.436000

-111.669000    159.135000    85.179000

-110.629000    154.515000    91.104000

...                    ...                   ...

Best regards,

K


https://decibel.ni.com/content/blogs/kl3m3n



"Kudos: Users may give one another Kudos on the forums for posts that they found particularly helpful or insightful."
Download All
Comments