ForzaETH / race_stack

The autonomous racing stack for the ForzaETH team at PBL
MIT License
93 stars 23 forks source link

Question about the opponent detection algo #21

Open Scheggetta opened 2 days ago

Scheggetta commented 2 days ago

Hi, can you explain what is the logic of this formula used as threshold to separate the point cloud lidar cluster?

https://github.com/ForzaETH/race_stack/blob/5bde2f708b564de1b179c5db24e354d1f7b411bd/perception/opponent_tracker/src/detect.py#L274

niciBume commented 2 days ago

Hi,

I believe you spotted an error. In general d_max should follow Eq. (6) in the ABD paper. So the division by 2 should be able to be dropped. Please let me know if this increases detection performance for you.

But in general, leaving the division by 2 in, should result in a more conservative clustering, i.e. LiDAR points will be more likely to be clustered into the same object. Hence if you have two obstacles close by each other they would be detected as a single obstacle more easily. Taking out the division should make it detect more obstacles. I guess we were tuning and forgot about that hardcoded value. But in general should not play a huge role IMO...

Hope this helps

Scheggetta commented 2 days ago

Thank you it helps a lot. We weren't able to find the original source for this formula.

niciBume commented 1 day ago

No worries, also in our ROS2 implementation that part is fixed: https://github.com/ForzaETH/race_stack/blob/28ce5ac9aadbb29a2387dacfcafbd8f02e325093/perception/perception/detect.py#L371