KOKIAOKI / 3d_bbs

MIT License
172 stars 28 forks source link

Running your own data results in scores below the threshold #26

Closed NianPeng-Zhang closed 4 months ago

NianPeng-Zhang commented 5 months ago

can you help me bro

iDonghq commented 5 months ago

can you help me bro

  • This my data image
  • Red point is source cloud
  • white point is target cloud

I think, 3d_bbs is not perfect for any global map, maybe you should give the initial pose before 3d_bbs is used.

NianPeng-Zhang commented 5 months ago

can you help me bro

  • This my data image
  • Red point is source cloud
  • white point is target cloud

I think, 3d_bbs is not perfect for any global map, maybe you should give the initial pose before 3d_bbs is used.

Thank you bro.I think it may be related to this. The source may be a feature point cloud, and there are very few source points in the demo he provided, which feels like feature points

KOKIAOKI commented 5 months ago

@NianPeng-Zhang You should carefully choose parameters in indoor environments. I tell you some tips for indoor environments here

Cropping source cloud prevents the mismatch caused by the following reasons. Because 3D-BBS finds the pose of maximum sore globally, source cloud fully match to target cloud even though output global pose is incorrect. For example, when source point cloud contains far points, source cloud match to the entired target cloud.

As @iDonghq said, 3D-BBS failed in some places (e.g., degeneragted places). So please utilize the timeout or set_trans_search_range, point cloud accumulation (manually).

iDonghq commented 5 months ago

@NianPeng-Zhang You should carefully choose parameters in indoor environments. I tell you some tips for indoor environments here

  • Set min_res to 0.2 ~ 0.5 m
  • Set src_leaf_size to 0.5m
  • Lower score_threshold_percentage
  • (Important) Crop source point cloud. Set max_scan_range to 10~20m

Cropping source cloud prevents the mismatch caused by the following reasons. Because 3D-BBS finds the pose of maximum sore globally, source cloud fully match to target cloud even though output global pose is incorrect. For example, when source point cloud contains far points, source cloud match to the entired target cloud.

As @iDonghq said, 3D-BBS failed in some places (e.g., degeneragted places). So please utilize the timeout or set_trans_search_range, point cloud accumulation (manually).

Hi kokiaoki: Thanks to your wonderful work for 3d_bbs again.But there are several problems here: 1、as you said, "Set src_leaf_size to 0.5m" , it will take a long time to find the global pose;
2、except 'degeneragted places', similar structures in 3D global map can easily lead to matching errors, so the prior pose (from rviz, example ) is given, mainly limit the range of search angle. Do you have any good suggestions for this? Thanks.

KOKIAOKI commented 5 months ago

Thank you for testing 3d_bbs!

  1. The processing time will change depending on downsampling. You can make it rougher depending on your environment. In my experiance, cropping point cloud as much as possible becomes more important in indoor environments.
  2. Yes. If there are many similar or repeated structures in target point cloud map such as rooms, 3d_bbs takes too much time to search or fails to localize. Because we didn't considere such extreme environments, we plan to provide pose candidates as future works. For now, I can only suggest you to avoid the fail matching with timeout and try many times until source point cloud has unique features or I wrote in above message.

Please show me some data that 3d_bbs can't localize if you like.

KOKIAOKI commented 5 months ago

(I may responce one week later)

iDonghq commented 5 months ago

Thank you for testing 3d_bbs!

  1. The processing time will change depending on downsampling. You can make it rougher depending on your environment. In my experiance, cropping point cloud as much as possible becomes more important in indoor environments.
  2. Yes. If there are many similar or repeated structures in target point cloud map such as rooms, 3d_bbs takes too much time to search or fails to localize. Because we didn't considere such extreme environments, we plan to provide pose candidates as future works. For now, I can only suggest you to avoid the fail matching with timeout and try many times until source point cloud has unique features or I wrote in above message.

Please show me some data that 3d_bbs can't localize if you like.

  1. I reduce the number(from about 70 to about 12 with given the initial pose) of candidate pose(Only trans (x,y)) generated by global map in function 'create_init_transset()' before entering into 'while(!trans_queue.empty()) ', However, there was no significant change in time consuming, even worse. it's weird.
  2. Actually I mapping a factory environment, it's very typical indoor environments, and the repeated structures is very common, Matching errors happens easily if there is no prior pose. Therefore I have developed the method with given initial pose to get pose candidates from global map, the case of matching errors are greatly reduced, But I encountered the above problem, 1.
iDonghq commented 5 months ago

(I may responce one week later)

I have a lot of dataset, please give me your email, I'll send one or two to you if you need.

iDonghq commented 5 months ago

Thank you for testing 3d_bbs!

  1. The processing time will change depending on downsampling. You can make it rougher depending on your environment. In my experiance, cropping point cloud as much as possible becomes more important in indoor environments.
  2. Yes. If there are many similar or repeated structures in target point cloud map such as rooms, 3d_bbs takes too much time to search or fails to localize. Because we didn't considere such extreme environments, we plan to provide pose candidates as future works. For now, I can only suggest you to avoid the fail matching with timeout and try many times until source point cloud has unique features or I wrote in above message.

Please show me some data that 3d_bbs can't localize if you like.

  1. I reduce the number(from about 70 to about 12 with given the initial pose) of candidate pose(Only trans (x,y)) generated by global map in function 'create_init_transset()' before entering into 'while(!trans_queue.empty()) ', However, there was no significant change in time consuming, even worse. it's weird.
  2. Actually I mapping a factory environment, it's very typical indoor environments, and the repeated structures is very common, Matching errors happens easily if there is no prior pose. Therefore I have developed the method with given initial pose to get pose candidates from global map, the case of matching errors are greatly reduced, But I encountered the above problem, 1. This is my idea for generating candidate poses base on 3d_bbs figure_hq
NianPeng-Zhang commented 5 months ago

(I may responce one week later)

I have a lot of dataset, please give me your email, I'll send one or two to you if you need. Thank you,i need your dataset, my email address is zhnianpengya@gmail.com.

NianPeng-Zhang commented 5 months ago

(I may responce one week later)

I want to know,is there an API provided for setting the initial pose of the source cloud?

iDonghq commented 5 months ago

(I may responce one week later)

I want to know,is there an API provided for setting the initial pose of the source cloud?

no, there is only the yaml file for tuning param

iDonghq commented 5 months ago

Thank you for testing 3d_bbs!

  1. The processing time will change depending on downsampling. You can make it rougher depending on your environment. In my experiance, cropping point cloud as much as possible becomes more important in indoor environments.
  2. Yes. If there are many similar or repeated structures in target point cloud map such as rooms, 3d_bbs takes too much time to search or fails to localize. Because we didn't considere such extreme environments, we plan to provide pose candidates as future works. For now, I can only suggest you to avoid the fail matching with timeout and try many times until source point cloud has unique features or I wrote in above message.

Please show me some data that 3d_bbs can't localize if you like.

  1. I reduce the number(from about 70 to about 12 with given the initial pose) of candidate pose(Only trans (x,y)) generated by global map in function 'create_init_transset()' before entering into 'while(!trans_queue.empty()) ', However, there was no significant change in time consuming, even worse. it's weird.
  2. Actually I mapping a factory environment, it's very typical indoor environments, and the repeated structures is very common, Matching errors happens easily if there is no prior pose. Therefore I have developed the method with given initial pose to get pose candidates from global map, the case of matching errors are greatly reduced, But I encountered the above problem, 1.

I have fixed the bug when providing prior pose candidate, thank you anyway.

KOKIAOKI commented 4 months ago

It seems that the problem is solved, so I close this issue. Thank you for the discussion about 3d_bbs localization performance in indoor environment.