'Merging/Stitching 2 3D point clouds using PLC/C++

I am working on a project with the goal to scan surfaces with high precision. The scanner functional area is relatively small, so I need to take multiple scans in order to cover the full surface. Each scan generates a .pcd file that includes around 600k XYZ-points, depending on the size of the scan. I am trying to stitch these scans together, whether by stitching the point clouds or even by combining the .pcd files before converting them to point clouds. I tried many of the registration tutorials provided by the PCL's official website but they were not beneficial for my case (or I could not apply them correctly).

I am dealing with C++ and working on Linux Ubuntu 18.04. The whole application is to be integrated with ROS later on. Below you can find the 3 .pcd I am trying to stitch.

Is there something provided by the PCL that I am missing? Or is there some other handy methods provided by ROS? Anything must preferably be in C++, but Python is also okay as long as it integrates with ROS and the .pcd file type.

Thanks in advance.

The .pcd files: https://drive.google.com/drive/folders/1pZuhvHQWnvYEigWiolUY8fA_dVjnekG7?usp=sharing



Solution 1:[1]

You had to go from -1855.968505859375 to 0.

.left {
  width: 50%;
  stroke-dasharray: 1855.968505859375;
  animation: dash-left 2s ease-in;
}

.left svg {
  left: 0;
}

.right {
  width: 50%;
  stroke-dasharray: 1855.968505859375;
  animation: dash-right 2s ease-in;
}

.right svg {
  right: 0;
}

svg {
  position: absolute;
  top: 20px;
  width: 50%;
  stroke-width: 5px;
}


@keyframes dash-left {
  from { stroke-dashoffset: -1855.968505859375 }
  to { stroke-dashoffset: 0 }
}

@keyframes dash-right {
  from { stroke-dashoffset: 1855.968505859375 }
  to { stroke-dashoffset: 0 }
}
<div class="left">
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 733 425">
    <path d="M733,424.5H39A38.5,38.5,0,0,1,.5,386V39A38.5,38.5,0,0,1,39,.5H733" style="fill: none;stroke: #78be21"/>
  </svg>
</div>

<div class="right">
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 733 425">
    <path d="M0,.5H694A38.5,38.5,0,0,1,732.5,39V386A38.5,38.5,0,0,1,694,424.5H0" style="fill: none;stroke: #78be21"/>
  </svg>
</div>

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Jean Will