koide3 / fast_gicp

A collection of GICP-based fast point cloud registration algorithms
BSD 3-Clause "New" or "Revised" License
1.23k stars 316 forks source link

about the parameter kCorrespondences #110

Open tust13018211 opened 1 year ago

tust13018211 commented 1 year ago

Thanks for your work, I feel a little strange about the parameter kCorrespondences. I test gicp in my data, I find set kCorrespondences=1 in scan to scan is batter than kCorrespondences=10 or kCorrespondences=20. In my opinio, kCorrespondences=1 means the covariance is the same, sames as the icp, so, I don`t konw the reason why ?

koide3 commented 1 year ago

That sounds strange. As you said, if k_correspondences == 1, covariances would get corrupted and the result might be something similar to that of the conventional ICP. How did you measure the accuracy?

tust13018211 commented 1 year ago

sorry reply later, just take a holiday, First, I use 2 step, scan2sacn and scan2map, scan2map the kCorrespondences=20 keep the same, and scan2sacn I test kCorrespondences=1 and kCorrespondences=10, the result as bleow, At first , kCorrespondences=1 :

1

and then , set kCorrespondences=10 : 2

as you can see the red line mean the track of car, when set kCorrespondences=10, the track backfold obviously. I just use this phenomenon to see the the accuracy.

In addition, I have a anthoner problem, I want to set some point high weight, how can i do this?

tust13018211 commented 1 year ago

About the another problem, I want to make some special point have high weight, my way like this, when calculate mahalanobis[i] of every point, I do this for special point: mahalanobis[i]=5* mahalanobis_[i];

Is this right?

koide3 commented 1 year ago

Yes, mahalanobis is the inverse of a covariance, and by weighting it, you should be able to give a large weight for a point.