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(yabloc_pose_initializer): make yabloc independent of dnn model by default #4296

Conversation

KYabuuchi
Copy link
Contributor

@KYabuuchi KYabuuchi commented Jul 17, 2023

Description

This is PR to solve the problems discussed in this discussion https://github.com/orgs/autowarefoundation/discussions/3645.

  • Added instructions on how to download the DNN model at build time.
  • Changed the pose_initializer so that initialization completes even if there is no DNN model.
  • Removed obsolete codes.
    • semantic_segmentation.launch.xml
    • semantic_segmentation_node.py

Tests performed

I used this dataset to validate with logging_simulator.launch.

ros2 launch autoware_launch logging_simulator.launch.xml \
    map_path:=$HOME/Maps/nishishinjuku \
    vehicle_model:=sample_vehicle \
    sensor_model:=awsim_sensor_kit \
    planning:=false control:=false \
    pose_source:=yabloc   # https://github.com/autowarefoundation/autoware.universe/pull/4257

(1) With DNN model.

Build yabloc_pose_initializer with the following options and verify that saved_model is in autoware/install/yabloc_pose_initializer/share/yabloc_pose_initializer/data.

colcon build --symlink-install \
    --cmake-args -DCMAKE_BUILD_TYPE=Release  \
    -DDOWNLOAD_ARTIFACTS=ON \
    --packages-select yabloc_pose_initializer

Then run logging_simulator.launch to verify that the initialization completes properly.

(2) Without DNN model.

Delete saved_model in autoware/install/yabloc_pose_initializer/share/yabloc_pose_initializer/data.
Then launch logging_simulator.launch to verify that the initialization completes. This may result in incorrect orientation.
If you specify the initial position with rviz, it should be set correctly.

yabloc_init_without_dnn.mp4

Effects on system behavior

The behavior does not change outside of YabLoc.

Previously, if the model was not downloaded, it could not be initialized.
Now rough initialization can be done without a model.

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.

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.

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

@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) labels Jul 17, 2023
@codecov
Copy link

codecov bot commented Jul 17, 2023

Codecov Report

Patch coverage has no change and project coverage change: -0.99 ⚠️

Comparison is base (8723190) 15.17% compared to head (1701912) 14.18%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4296      +/-   ##
==========================================
- Coverage   15.17%   14.18%   -0.99%     
==========================================
  Files        1493     1601     +108     
  Lines      102950   110095    +7145     
  Branches    31606    31542      -64     
==========================================
- Hits        15623    15619       -4     
- Misses      70339    77494    +7155     
+ Partials    16988    16982       -6     
Flag Coverage Δ *Carryforward flag
differential 0.00% <0.00%> (?)
total 14.19% <ø> (-0.99%) ⬇️ Carriedforward from c809a20

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

Impacted Files Coverage Δ
...alizer/src/camera/camera_pose_initializer_core.cpp 0.00% <0.00%> (ø)
...bloc_pose_initializer/src/camera/marker_module.cpp 0.00% <0.00%> (ø)

... and 123 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
@KYabuuchi KYabuuchi force-pushed the feat/make_yabloc_independent_of_dnn_model branch from 3021e04 to bd7de47 Compare July 19, 2023 02:26
@KYabuuchi KYabuuchi requested a review from kminoda July 19, 2023 02:35
@KYabuuchi KYabuuchi marked this pull request as ready for review July 19, 2023 02:38
Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Copy link
Contributor

@kminoda kminoda left a comment

Choose a reason for hiding this comment

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

Thanks! I left some comments

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Copy link
Contributor

@kminoda kminoda left a comment

Choose a reason for hiding this comment

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

LGTM
Confirmed that both cases works as expected in logging simulator

@KYabuuchi KYabuuchi merged commit 1ccf8b7 into autowarefoundation:main Jul 20, 2023
17 of 22 checks passed
@KYabuuchi KYabuuchi deleted the feat/make_yabloc_independent_of_dnn_model branch July 20, 2023 06:39
kminoda pushed a commit to kminoda/autoware.universe that referenced this pull request Jul 24, 2023
…y default (autowarefoundation#4296)

* care no dnn model exists

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* modify segmentation_srv to inform inference failure

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* add documentation

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* fix typo

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* ignore DDOWNLOAD

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* make const variable be capital

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

* use std::optional rather than reference arg

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>

---------

Signed-off-by: Kento Yabuuchi <kento.yabuuchi.2@tier4.jp>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:localization Vehicle's position determination in its environment. (auto-assigned) type:documentation Creating or refining documentation. (auto-assigned)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants