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(aw_pose_covariance_modifier_node): add aw_pose_covariance_modifier for using NDT and GNSS together #6477

Conversation

meliketanrikulu
Copy link
Contributor

Description

This PR was created to use NDT and GNSS together in localization. In order for EKF to work properly, the covariance values of the given inputs must be provided correctly as input. In Default AW, NDT covariance values are provided with default values. GNSS, on the other hand, provides its own error in a healthy way.

This PR also suggests that we drive with reference to the trusted source (GNSS), which can reliably calculate the error. It aims to drive with GNSS alone when the GNSS error is low, to use NDT-GNSS together when the GNSS error increases, and to use only NDT alone when the GNSS error goes beyond acceptable limits.

Related links

This PR is related this proposal -> https://github.com/orgs/autowarefoundation/discussions/4134#discussioncomment-8394375

Tests performed

Test results will be shared.

Notes for reviewers

This PR is currently shared as a draft.

Interface changes

Effects on system behavior

Pre-review checklist for the PR author

The PR author must check the checkboxes below when creating the PR.

In-review checklist for the PR reviewers

The PR reviewers must check the checkboxes below before approval.

  • The PR follows the pull request guidelines.
  • The PR has been properly tested.
  • The PR has been reviewed by the code owners.

Post-review checklist for the PR author

The PR author must check the checkboxes below before merging.

  • There are no open discussions or they are tracked via tickets.
  • The PR is ready for merge.

After all checkboxes are checked, anyone who has write access can merge the PR.

@meliketanrikulu meliketanrikulu self-assigned this Feb 21, 2024
@github-actions github-actions bot added type:documentation Creating or refining documentation. (auto-assigned) component:localization Vehicle's position determination in its environment. (auto-assigned) component:launch Launch files, scripts and initialization tools. (auto-assigned) labels Feb 21, 2024
@KYabuuchi
Copy link
Contributor

Thank you for creating the PR. I really appreciate your contribution. 😄

From our previous discussions, I think it was decided to use the set_parameter service to modify the covariance of NDT. However, this PR is adding new service and new subscriber to NDT. Is there a specific reason for this change in architecture?

NDT already has a huge amount of feature, and I think it would be preferable to perform calculations such as covariance modification within aw_pose_covariance_modifier.

@meliketanrikulu meliketanrikulu force-pushed the feat/add_aw_pose_covariance_modifier_node_for_using_multi_localization_input branch 2 times, most recently from 8ce7173 to 8ca055d Compare February 27, 2024 10:50
@xmfcx xmfcx force-pushed the feat/add_aw_pose_covariance_modifier_node_for_using_multi_localization_input branch from 536b9cd to b64959e Compare March 1, 2024 10:59
@xmfcx
Copy link
Contributor

xmfcx commented Mar 1, 2024

Rebased to the latest main branch to make sure CI is running correctly.

@xmfcx xmfcx added the run:build-and-test-differential Mark to enable build-and-test-differential workflow. (used-by-ci) label Mar 1, 2024
Copy link

codecov bot commented Mar 1, 2024

Codecov Report

Attention: Patch coverage is 0% with 113 lines in your changes are missing coverage. Please review.

Project coverage is 14.77%. Comparing base (59f7031) to head (99524bd).
Report is 4 commits behind head on main.

Files Patch % Lines
...ion/ndt_scan_matcher/src/ndt_scan_matcher_core.cpp 0.00% 64 Missing and 2 partials ⚠️
...fier_node/src/aw_pose_covariance_modifier_node.cpp 0.00% 46 Missing ⚠️
...include/ndt_scan_matcher/ndt_scan_matcher_core.hpp 0.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #6477      +/-   ##
==========================================
- Coverage   14.78%   14.77%   -0.02%     
==========================================
  Files        1917     1919       +2     
  Lines      132038   132142     +104     
  Branches    39228    39256      +28     
==========================================
  Hits        19523    19523              
- Misses      90726    90827     +101     
- Partials    21789    21792       +3     
Flag Coverage Δ *Carryforward flag
differential 3.14% <0.00%> (?)
total 14.78% <ø> (+<0.01%) ⬆️ Carriedforward from 59f7031

*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.

@meliketanrikulu meliketanrikulu force-pushed the feat/add_aw_pose_covariance_modifier_node_for_using_multi_localization_input branch from 5efbbe3 to 2b0fe2b Compare March 5, 2024 09:36
@meliketanrikulu meliketanrikulu force-pushed the feat/add_aw_pose_covariance_modifier_node_for_using_multi_localization_input branch from 2b0fe2b to f62a230 Compare March 5, 2024 09:37
@@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.14)
project(ndt_scan_matcher)

find_package(autoware_cmake REQUIRED)
find_package(rcl_interfaces REQUIRED)
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
find_package(rcl_interfaces REQUIRED)

@xmfcx xmfcx marked this pull request as draft March 5, 2024 11:32
@xmfcx
Copy link
Contributor

xmfcx commented Mar 5, 2024

This PR should be updated while considering these:

  • NDT nodes shouldn't be changed unless it's absolutely necessary
  • The additional logic should stay outside of existing nodes for ease of modularity
  • The new additions shouldn't break existing structure

@xmfcx xmfcx removed the run:build-and-test-differential Mark to enable build-and-test-differential workflow. (used-by-ci) label Mar 5, 2024
@meliketanrikulu
Copy link
Contributor Author

This PR should be updated while considering these:

  • NDT nodes shouldn't be changed unless it's absolutely necessary
  • The additional logic should stay outside of existing nodes for ease of modularity
  • The new additions shouldn't break existing structure

Thank you @xmfcx .I will update the PR taking these into consideration. I shared the required architecture for this PR below the proposal. (https://github.com/orgs/autowarefoundation/discussions/4134#discussioncomment-8693020)

@xmfcx
Copy link
Contributor

xmfcx commented Mar 6, 2024

@meliketanrikulu I'm closing this PR.
Could you open the updated proposal in a new PR?

@xmfcx xmfcx closed this Mar 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:launch Launch files, scripts and initialization tools. (auto-assigned) component:localization Vehicle's position determination in its environment. (auto-assigned) type:documentation Creating or refining documentation. (auto-assigned)
Projects
No open projects
Status: Cancelled
Development

Successfully merging this pull request may close these issues.

3 participants