-
Notifications
You must be signed in to change notification settings - Fork 134
Using Live PCL clouds? #7
Comments
Hi. What you need to do would be make a interface function that replaces 'ReadFeature' function. The function will copy your data into
FGR application just requires vector of xyz and fpfh features. You need to stack
Stack source point cloud first and target point cloud later. In overall, you need to call followings
and use BTW, this is my answer with current version. The code structure can be updated in the future. |
Thank you! I am trying the following:
Using your
But get a crash. The result is..
Then the program crashes. If you have a chance, could you help me out here? thank you again. |
Based on the result you got, I think your xyz vector seems correctly set, but you may need to check your feature vectors. The erroneous line seems to be
as VectorXf in feat will not have any information about feature dimension. How about this?
|
Thank you! This is now working, but in my test application, i am seeing a result that is slower and slightly less accurate than the PCL GICP implementation. I am loading a cloud, transforming it manually to get a ground truth, then running both algorithms. Please see the results below. Are you able to give me any pointers to improve the result? thank you again for your help.
|
I think you can tune parameters for point cloud downsampling and feature extraction. We recommend 1:2:5 for radius of downsampling voxel size, normal estimation, and feature estimation. For performance, you can reduce point clouds by downsampling bit more. You can also reduce And.. don't be judged by single example. This example looks very easy to me, almost identity transformation. Our method is global: you would get stable result regardless of initial pose. |
That ratio has improved the results, but no matter what the cloud resolution, it runs half as fast as gicp. Is there anything else I can look at to speed it up? Thanks again! |
I think the question is not very clear to me as I don't have any information about your GICP application. I can give you following comments:
|
Thank you again! Using OpenMp has sped it up well. I am playing with the settings for normal and feature estimation, but i just cannot seem to get a great result. Sorry to ask for even more of your time, but could you take a look for me if you have a minute? The relevant code is: //vars
//filtering
//normal estimation
//feature estimation
and the result is:
Thank you yet again for your code, and your time. |
Based on the log you provide, you are using point cloud scale normalization, but you are using too large radius for downsampling. As we mentioned in README.md, you would need to tune this parameter, but the keep ratio for other radiuses. I cannot answer much about this, but you can play with that. For example, FPFH is bit sensitive to radius, and you can visualize the correspondences to check how your feature works. In addition, as OptimizePairwise only takes 45ms, I think you can use Plus, as you had parallelized matching procedure, please double check your OpenMP will not corrupt correspondence vectors. We will make QnA.md with the answers from this thread. |
Hi, and thank you for making this code available. I am trying to implement it in my GICP application to test speed/accuracy, but I am having trouble.
With live cloud input, what is the workflow?
Read clouds
extract features.
This gives me my original cloud
<pcl::PointXYZI>
and my featuresPointCloud<FPFHSignature33>
.i do this for both clouds. What do i need to do to pass this data into your lib?
thank you!
The text was updated successfully, but these errors were encountered: