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

feat(autoware_ground_segmentation): implementing linear least square fitting for local gradient calculation #9116

Conversation

technolojin
Copy link
Contributor

@technolojin technolojin commented Oct 18, 2024

Description

The scan ground algorithm has a checker that the point is above the height from the ground line. The ground line is calculated from previous grid points.

This PR implements the linear least square method for the ground line fitting. This implementation reduces impact of noisy lidar points.

Related links

Parent Issue:

  • Link

How was this PR tested?

  • evaluator
    TIER IV Cloud

  • computing time: Computing time difference is negligible.

Before

🌲 Total Processing Time Tree 🌲
100.00% faster_filter: total 9441.63 [ms], avg. 16.86 [ms], run count: 560
    ├── 78.64% convertPointcloudGridScan: total 7425.25 [ms], avg. 13.26 [ms], run count: 560
    │   ├── 56.39% azimuth_angle_grouping: total 5323.95 [ms], avg. 9.51 [ms], run count: 560
    │   ├── 22.16% sort: total 2092.28 [ms], avg. 3.74 [ms], run count: 560
    │   └── 0.10% rest: 9.01 [ms]
    ├── 19.33% classifyPointCloudGridScan: total 1824.92 [ms], avg. 3.26 [ms], run count: 560
    ├── 1.22% extractObjectPoints: total 115.00 [ms], avg. 0.21 [ms], run count: 560
    └── 0.81% rest: 76.46 [ms]

After

🌲 Total Processing Time Tree 🌲
100.00% faster_filter: total 9225.78 [ms], avg. 16.90 [ms], run count: 546
    ├── 78.02% convertPointcloudGridScan: total 7197.63 [ms], avg. 13.18 [ms], run count: 546
    │   ├── 55.10% azimuth_angle_grouping: total 5083.42 [ms], avg. 9.31 [ms], run count: 546
    │   ├── 22.82% sort: total 2105.34 [ms], avg. 3.86 [ms], run count: 546
    │   └── 0.10% rest: 8.87 [ms]
    ├── 19.88% classifyPointCloudGridScan: total 1834.39 [ms], avg. 3.36 [ms], run count: 546
    ├── 1.28% extractObjectPoints: total 117.87 [ms], avg. 0.22 [ms], run count: 546
    └── 0.82% rest: 75.89 [ms]

Notes for reviewers

None.

Interface changes

None.

Effects on system behavior

None.

@github-actions github-actions bot added component:perception Advanced sensor data processing and environment understanding. (auto-assigned) tag:require-cuda-build-and-test labels Oct 18, 2024
Copy link

github-actions bot commented Oct 18, 2024

Thank you for contributing to the Autoware project!

🚧 If your pull request is in progress, switch it to draft mode.

Please ensure:

technolojin and others added 5 commits October 18, 2024 16:34
Calculate the local ground gradient by fitting a line to the ground grids in the classifyPointCloudGridScan function. This improves the accuracy of the gradient calculation and ensures more precise extrapolation of the ground height.

Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>
Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>
…dScan function

Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>
Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>
Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>
@technolojin technolojin force-pushed the fix/ground-segment/scan-ground-mod branch from aacb9f9 to 39439ef Compare October 18, 2024 07:35
@technolojin technolojin self-assigned this Oct 18, 2024
@technolojin technolojin changed the title feat(autoware_ground_segmentation): scan ground algorithm - local gradient calculation by linear least square feat(autoware_ground_segmentation): implementing linear least square fitting for local gradient calculation Oct 18, 2024
Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>
…unction

Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>
@technolojin technolojin marked this pull request as ready for review October 18, 2024 08:54
@technolojin technolojin added the run:build-and-test-differential Mark to enable build-and-test-differential workflow. (used-by-ci) label Oct 18, 2024
Copy link

codecov bot commented Oct 18, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 27.51%. Comparing base (92868c0) to head (5fa3cd6).
Report is 4 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #9116   +/-   ##
=======================================
  Coverage   27.50%   27.51%           
=======================================
  Files        1303     1303           
  Lines      101046   101062   +16     
  Branches    39180    39184    +4     
=======================================
+ Hits        27794    27803    +9     
- Misses      70544    70551    +7     
  Partials     2708     2708           
Flag Coverage Δ *Carryforward flag
differential 12.10% <100.00%> (?)
total 27.49% <ø> (-0.01%) ⬇️ Carriedforward from 92868c0

*This pull request uses carry forward flags. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Contributor

@badai-nguyen badai-nguyen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your update. LGTM

@technolojin technolojin merged commit ebc8c7a into autowarefoundation:main Oct 21, 2024
46 of 48 checks passed
@technolojin technolojin deleted the fix/ground-segment/scan-ground-mod branch October 21, 2024 00:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:perception Advanced sensor data processing and environment understanding. (auto-assigned) run:build-and-test-differential Mark to enable build-and-test-differential workflow. (used-by-ci) tag:require-cuda-build-and-test
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

2 participants