hku-mars / FAST_LIO

A computationally efficient and robust LiDAR-inertial odometry (LIO) package
GNU General Public License v2.0
2.79k stars 940 forks source link

About ikd-tree #111

Closed Psyclonus2887 closed 2 years ago

Psyclonus2887 commented 2 years ago

I found that the radius-search function is not embedded in your ikd-tree as a public function and the same function is available in pcl's kd-tree. Do you have plan to add the function in the future? Another question is, I notice the code in the nearest point judgement, there is possibility the knn search can return points less than five, even when the searching radius is set to INFINITY, which kind of makes me curious.

Huguet57 commented 2 years ago

I think they are about to release the radius-search function or is already released: https://github.com/hku-mars/ikd-Tree/commit/6bc08351d57fbd990c80e80377224296129acb4b.

Psyclonus2887 commented 2 years ago

Thanks, it seems it has been merged but just hasn't been released.

Psyclonus2887 commented 2 years ago

I think they are about to release the radius-search function or is already released: hku-mars/ikd-Tree@6bc0835.

And BTW have you encountered the case that failing to delete points by PointBox? It seems when I run FAST_LIO2 the delete function doesn't work and the kd-tree size keeps growing.

Ecstasy-EC commented 2 years ago

@Psyclonus2887 Could you please provide me any bags or data that you observed those weird phenomenon about ikd-Tree?

Psyclonus2887 commented 2 years ago

@Psyclonus2887 Could you please provide me any bags or data that you observed those weird phenomenon about ikd-Tree?

Thx, I will reply you tomorrow with some log

Psyclonus2887 commented 2 years ago

@Ecstasy-EC I test FAST-LIO in the ros bag of nclt dataset you released.

image image

I show two screen prints here in different time of this bag when running the code, where: cub_needrm size is the output of cub_needrm.size() need remove cube number i is cub_needrm[i].vertex_min and cub_needrm[i].vertex_max points deleted num is kdtree_delete_counter in your code kdtree_size is ikdtree.size()

Ecstasy-EC commented 2 years ago

@Ecstasy-EC I test FAST-LIO in the ros bag of nclt dataset you released. image image I show two screen prints here in different time of this bag when running the code, where: cub_needrm size is the output of cub_needrm.size() need remove cube number i is cub_needrm[i].vertex_min and cub_needrm[i].vertex_max points deleted num is kdtree_delete_counter in your code kdtree_size is ikdtree.size()

The vertices of the boxes to be removed seem quite weird. Did you change the launch file and the yaml file? What is value of the param cube_side_length in the launch file and DET_RANGE?

Psyclonus2887 commented 2 years ago

cube_side_length is set to 20, and DET_RANGE is set to 100

Ecstasy-EC commented 2 years ago

cube_side_length is set to 20, and DET_RANGE is set to 100

Local map size(i.e., cube_size_length) should always be larger than the two times of the DET_RANGE. Pls refer to our paper about the working principle of local map management. Never change the parameters until you are sure how they work.

Psyclonus2887 commented 2 years ago

I will try it and read the paper again. Thanks a lot!!!