Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(autoware_ground_segmentation): grid data structure revision for …
…efficiency improvement (#9297) * fix: replace point index to data index Signed-off-by: Taekjin LEE <[email protected]> * feat: Use emplace_back instead of push_back for adding gnd_grids in node.cpp Signed-off-by: Taekjin LEE <[email protected]> * fix: prep for non-sorted grid process Signed-off-by: Taekjin LEE <[email protected]> * feat: Add Cell class and Grid class for grid-based segmentation Signed-off-by: Taekjin LEE <[email protected]> * refactor: Add Cell and Grid classes for grid-based segmentation Signed-off-by: Taekjin LEE <[email protected]> * feat: initialize new grid Signed-off-by: Taekjin LEE <[email protected]> * refactor: Update Grid class initialization to use radians for azimuth size refactor: Update Grid class initialization to use radians for azimuth size refactor: Update Grid class initialization to use radians for azimuth size Signed-off-by: Taekjin LEE <[email protected]> * refactor: Fix calculation of azimuth index in Grid class Signed-off-by: Taekjin LEE <[email protected]> * feat: implement grid based segmentation, temporary logic Signed-off-by: Taekjin LEE <[email protected]> * refactor: idx position convert methods Signed-off-by: Taekjin LEE <[email protected]> * refactor: Update Grid class initialization to use radians for azimuth size Signed-off-by: Taekjin LEE <[email protected]> * feat: reconnect grids filled Signed-off-by: Taekjin LEE <[email protected]> * feat: grid initialization Signed-off-by: Taekjin LEE <[email protected]> * refactor: Update Grid class initialization and reset methods, implement a segmentation logic refactor: Update Grid class initialization and reset methods, implement a segmentation logic refactor: replace original methods Signed-off-by: Taekjin LEE <[email protected]> * feat: add time_keeper Signed-off-by: Taekjin LEE <[email protected]> * refactor: add time keeper in grid class refactor: remove previous scan ground grid Signed-off-by: Taekjin LEE <[email protected]> * refactor: optimize grid boundary calculations and use squared values for radius comparisons Signed-off-by: Taekjin LEE <[email protected]> * fix: use pointer for prev cell Signed-off-by: Taekjin LEE <[email protected]> * refactor: remove time keeper called too many times Signed-off-by: Taekjin LEE <[email protected]> * fix: radial idx estimation fix Signed-off-by: Taekjin LEE <[email protected]> * refactor: optimize ground bin average calculation fix: ground bin logic fix Signed-off-by: Taekjin LEE <[email protected]> * refactor: make grid ground filter separate Signed-off-by: Taekjin LEE <[email protected]> * refactor: remove unused code fix: azimuth grid index converter bug Signed-off-by: Taekjin LEE <[email protected]> * fix: segmentation logic determination fix fix: cell connection bug fix Signed-off-by: Taekjin LEE <[email protected]> * refactor: optimize pseudoArcTan2 function Signed-off-by: Taekjin LEE <[email protected]> * refactor: update grid radial calculation Signed-off-by: Taekjin LEE <[email protected]> * refactor: contain input cloud ptr Signed-off-by: Taekjin LEE <[email protected]> * refactor: separate ground initialization Signed-off-by: Taekjin LEE <[email protected]> * refactor: Remove unused code and optimize grid radial calculation Signed-off-by: Taekjin LEE <[email protected]> * refactor: Inline functions for improved performance Signed-off-by: Taekjin LEE <[email protected]> * feat: various azimuth interval per radial distance Signed-off-by: Taekjin LEE <[email protected]> * refactor: Fix bug in grid ground filter segmentation logic and cell connection Remove unused code and optimize grid radial calculation Signed-off-by: Taekjin LEE <[email protected]> * fix: add missing offset calculation Signed-off-by: Taekjin LEE <[email protected]> * refactor: Improve grid ground filter segmentation logic and cell connection Optimize grid radial calculation and remove unused code Signed-off-by: Taekjin LEE <[email protected]> * refactor: Remove debug print statements and optimize grid initialization Signed-off-by: Taekjin LEE <[email protected]> * refactor: Update grid radial limit to 200.0m Signed-off-by: Taekjin LEE <[email protected]> * refactor: Update grid size to 0.5m for improved ground segmentation Signed-off-by: Taekjin LEE <[email protected]> * refactor: Improve grid ground filter segmentation logic Signed-off-by: Taekjin LEE <[email protected]> * refactor: Optimize grid ground filter segmentation logic Signed-off-by: Taekjin LEE <[email protected]> * refactor: Update logic order for fast segmentation Signed-off-by: Taekjin LEE <[email protected]> * fix: resolve cppcheck issue Signed-off-by: Taekjin LEE <[email protected]> * fix: pseudo atan2 fix for even distribution of azimuth Signed-off-by: Taekjin LEE <[email protected]> * fix: remove unused next_grid_idx_ update Signed-off-by: Taekjin LEE <[email protected]> * fix: introduce pseudo tangent to match result of pseudo arc tangent Signed-off-by: Taekjin LEE <[email protected]> * style(pre-commit): autofix Signed-off-by: Taekjin LEE <[email protected]> * fix: limit gradient Signed-off-by: Taekjin LEE <[email protected]> * fix: bring previous average when the ground bin is empty Signed-off-by: Taekjin LEE <[email protected]> * fix: back to constant azimuth interval grid Signed-off-by: Taekjin LEE <[email protected]> * perf: remove division for efficiency Signed-off-by: Taekjin LEE <[email protected]> * perf: remove division for efficiency Signed-off-by: Taekjin LEE <[email protected]> * perf: contain radius and height to avoid double calculation Signed-off-by: Taekjin LEE <[email protected]> * perf: optimize grid distance calculation for efficiency Signed-off-by: Taekjin LEE <[email protected]> * style(pre-commit): autofix Signed-off-by: Taekjin LEE <[email protected]> * perf: using isEmpty for efficiency Signed-off-by: Taekjin LEE <[email protected]> * chore: initialization fix Signed-off-by: Taekjin LEE <[email protected]> * perf: initial ground cell is integrated into the classify method for efficiency Signed-off-by: Taekjin LEE <[email protected]> * perf: refactor grid initialization for efficiency Signed-off-by: Taekjin LEE <[email protected]> * perf: optimize grid cell linking for efficiency Signed-off-by: Taekjin LEE <[email protected]> * Revert "perf: initial ground cell is integrated into the classify method for efficiency" This reverts commit a4ab70b. Signed-off-by: Taekjin LEE <[email protected]> * fix: fix pseudo atan2 bug Signed-off-by: Taekjin LEE <[email protected]> * feat: various azimuth interval by range Signed-off-by: Taekjin LEE <[email protected]> * perf: optimize pseudoArcTan2 function for efficiency Signed-off-by: Taekjin LEE <[email protected]> * style(pre-commit): autofix Signed-off-by: Taekjin LEE <[email protected]> * fix: avoid zero division on the slope estimation Signed-off-by: Taekjin LEE <[email protected]> * fix: limit recursive search Signed-off-by: Taekjin LEE <[email protected]> refactor: improve efficiency of recursiveSearch function Fix function parameter type in GridGroundFilter * refactor: add comments about unclassified case Signed-off-by: Taekjin LEE <[email protected]> * chore: add comment to explain methods Signed-off-by: Taekjin LEE <[email protected]> * refactor: remove unnecessary include statement Signed-off-by: Taekjin LEE <[email protected]> * refactor: cast point_list size to int in getPointNum method Signed-off-by: Taekjin LEE <[email protected]> * refactor: add index check in getCell method Signed-off-by: Taekjin LEE <[email protected]> --------- Signed-off-by: Taekjin LEE <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
- Loading branch information