How to return the RMSE using the pcregistericp function?

I have been using the pcregistericp function with MATLAB R2021a to align two 3d scans. So far, through visual inspection, the function has aligned the scans correctly. However, I would like a quantitative measure of the alignment of the two scans. I tried to get the function to return the RMSE using the command found in the MATLAB documentation, [t,rmse] = pcregistericp(moving,fixed). This, however, did not work as the RMSE variable was returned as a point cloud rather than a positive scalar representing the RMSE between the data sets.
At first, I thought the RMSE wasn't being returned because the data sets were not the same size (hence the use of the open form of ICP). To test this theory, I made the two point clouds from the same data set (thus, ensuring that the number of points are the same). After doing this, the RMSE was still not returned.
I would appreciate any insight into this issue.

 Réponse acceptée

Carter Taylor
Carter Taylor le 23 Juin 2023
Modifié(e) : Carter Taylor le 23 Juin 2023
I found this answer on Stack Overflow:
"The problem is already solved. The previous outcome variable "rmse" is actually a point cloud. I tried to modify the variable rmse to the third output argument.
[tform,temp,rmse] =pcregrigid(ptCloud,ptCloud2,'Metric','PointToPoint','Extrapolate',true)"
This seemed to work; however, if anyone has any other solutions, I would be happy to see them.
It should also be noted that making a third argument in [t,rmse,RMSE_Real] = pcregistericp(moving,fixed); returns the rmse of the data and fixes my issue.
I'm just writing this solution here in case anyone is having the same issue!

Plus de réponses (0)

Produits

Version

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by