Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

High resolution postpone #215

Closed
JiaruiWang-Jill opened this issue Sep 19, 2018 · 2 comments
Closed

High resolution postpone #215

JiaruiWang-Jill opened this issue Sep 19, 2018 · 2 comments

Comments

@JiaruiWang-Jill
Copy link

Hi, need your kind help again.
I want to generate high resolution mesh, say resolution = 0.01 or 0.005.
I already set
size_t integrator_threads =7;
However, the calculation speed is still super slow, which result in postpone of mesh generating( rviz showing is also performing bad)
INFO] [1537326932.820455652]: Integrating a pointcloud with 220873 points. [ INFO] [1537326937.923834207]: Finished integrating in 5.103299 seconds, have 16916 blocks. [ INFO] [1537326937.934127858]: Integrating a pointcloud with 220745 points. [ INFO] [1537326941.288767739]: Finished integrating in 3.354571 seconds, have 17747 blocks. [ INFO] [1537326941.298774226]: Integrating a pointcloud with 220395 points. [ INFO] [1537326946.805919204]: Finished integrating in 5.507082 seconds, have 18205 blocks.
The ideal processing speed is supposed to be integrating one point cloud in around 0.1 seconds, But I don't know how to make this comes true. Is it a limitation of PC?(Actually I tried on two computers and both failed to perform well)

Here is the launch file.
fail.launch.txt

Look forward and thanks a lot!!!!!!!!!!!!!

@ZacharyTaylor
Copy link
Contributor

Honestly getting down to below 1 cm with Voxblox in realtime is going to be difficult.

First one small point. If you don't set the integration_threads parameter voxblox will automatically use the same number of threads as you have CPU cores, which should be optimal for processing speed.

There are two main issues limiting Voxblox's performance on very small voxels:

  1. Voxblox integrates rays all the way from the detected point to the sensor. This means whereas other TSDF libraries scale with the square of the voxel size, Voxblox scales with the cube. Because of this we have only run the system in realtime down to about 3cm. Going from 3cm to 1cm will use around 27 times the CPU and RAM. You can disable full ray integration and just use the area around the truncation distance by setting voxel_carving_enabled to false, which will improve the scaling. However, this will prevent Voxblox from removing noise and outliers that occur in freespace.

  2. Voxblox accesses memory in a fairly random order. This means it makes terrible use of the cache and the CPU is continually stuck waiting for data. You have probably noticed on quite powerful CPUs Voxblox doesn't get anywhere near 100% CPU usage even when falling behind. This means while a more powerful computer will always help, you will hit diminishing returns fairly quickly.

@JiaruiWang-Jill
Copy link
Author

Thnxx a lot!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants