norlab-ulaval / libpointmatcher

An Iterative Closest Point (ICP) library for 2D and 3D mapping in Robotics
BSD 3-Clause "New" or "Revised" License
1.58k stars 542 forks source link

The same configuration but the different results. #500

Closed ljjTYJR closed 1 year ago

ljjTYJR commented 1 year ago

Hello,

Recently, I have been trying to test some registration methods.

But I got some different results from PCL-ICP and LibpointMatcher:

image

Do you know if there is any difference between these two implementations?

Best, Shuo.

pomerlef commented 1 year ago

Hi Shuo,

Do they both have the same error minimizer (I assume point-to-plane)? This module has the highest chance of being implemented differently. Also, for stochastic filters (e.g., random filters), you will need to run multiple time the same experiment to get a stable overview.

I hope this help. Cheers!

ljjTYJR commented 1 year ago
  1. They both use the point-to-point error metric.
  2. Yeah, I think the random sampling may have the influence because I found that even for the same two scans, run the algorithms many times, the results may vary largely.

Thank you!

ljjTYJR commented 1 year ago

Hello, I have another question. In the paper Comparing ICP variants on real-world data sets, random downsampling is used.

I wonder why choosing random downsampling. From my experiments, using voxel downsampling seems better than random downsampling.

pomerlef commented 1 year ago

The article date from 9 years ago, so computation power was on the edge. I'm pretty sure that voxel is a bit better, but comes with more computation cost (random downsampling is the fastest to compute). @boxanm might have something to add on this as he compared many filters recently.