atenpas / gpd

Detect 6-DOF grasp poses in point clouds
BSD 2-Clause "Simplified" License
598 stars 233 forks source link

how and where "the number of neighbors (a parameter)" can be set when using PCL GPU #104

Open xibeisiber opened 3 years ago

xibeisiber commented 3 years ago

Hi,

On my computer GPD takes about 15s to calculate the surface normal using PCL CPU, which is a bit long for my project. Therefore I want to use the GPU version. You mentioned that "unfortunately, the surface normals produced by the PCL GPU module can often be incorrect. The correctness of these normals depends on the number of neighbors (a parameter).". But I can't find where this parameter can be tuned.

Could you please show an example to set this parameter? Thanks!

atenpas commented 3 years ago

That part of the code is deprecated and should not be used.

How large is your point cloud?

xibeisiber commented 3 years ago

That part of the code is deprecated and should not be used.

How large is your point cloud?

Thanks for your reply. You mean the option "-DUSE_PCL_GPU" should not be turned "ON"? I'm using the CloudSamples as the input, with 307, 200 points in the CloudSources and about 8,000 points in the samples. The program takes about 15s to compute the surface normal, but is rather fast to calculate the grasp candidates and classify them.

If I only send the 8000 points as sensor_msgs/PointCloud2 to GPD, it's fast to compute the surface normal, but the classification step takes about 15~20 seconds...

xibeisiber commented 3 years ago

Yesterday I tried to use PCL_GPU in GPD and CloudSamples as the input, the whole process is very fast, but sometimes it can't generate any valid grasp pose, sometimes it does. I only test it for one scene ( bottle on a table ) for a while, further test will be done.

atenpas commented 3 years ago

That part of the code is deprecated and should not be used. How large is your point cloud?

Thanks for your reply. You mean the option "-DUSE_PCL_GPU" should not be turned "ON"?

Yes, it should be off. When I find the time, I'll remove the GPU part of the code completely because it does not work reliably.

I'm using the CloudSamples as the input, with 307, 200 points in the CloudSources and about 8,000 points in the samples. The program takes about 15s to compute the surface normal, but is rather fast to calculate the grasp candidates and classify them.

That's a very large point cloud. You could reduce its size and/or downsample it in order to reduce the number of points.