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

chore(tier4_perception_launch): perception launcher refactoring #7194

Conversation

technolojin
Copy link
Contributor

@technolojin technolojin commented May 31, 2024

Description

The perception has many launch options, such as perception_mode, lidar_detection_model, use_*, and so on.
As result, it is very difficult to trace the perception pipeline, such as which SW component is used, which topic is published from where.

  • Structure of the perception launch style

    1. Parameters: parameter arguments, mainly the parameter file paths
    2. Pipeline junctions: arguments that determine the pipeline structure
    3. External interfaces: topic names of inputs from outside and outputs of the module
    4. Internal interfaces: inter-connecting topic names, inputs and outputs of sub modules
    5. Sub modules: actual launcher of SW modules
  • Module update

    1. Module means a group of nodes consisting the (perception) pipeline
    2. Detectors and mergers were defined as modules in previous refactoring
    3. object filters and validator, pointcloud map filter were newly separated as modules
    4. the detection launcher and the merger modules will call the filter modules

Tests performed

Manually tested in a local environment with the following variants.

  • camera_lidar_radar_fusion pointpainting
  • camera_lidar_radar_fusion centerpoint
  • camera_lidar_fusion pointpainting
  • camera_lidar_fusion centerpoint
  • camera_lidar_fusion apollo
  • radar
  • lidar centerpoint centerpoint_tiny
  • lidar centerpoint centerpoint

Effects on system behavior

Not applicable.

Interface changes

Not applicable.

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 the component:launch Launch files, scripts and initialization tools. (auto-assigned) label May 31, 2024
@technolojin technolojin force-pushed the chore/perception-launcher-refactoring branch from c685684 to 9cc27c6 Compare June 5, 2024 00:39
@technolojin technolojin linked an issue Jun 5, 2024 that may be closed by this pull request
3 tasks
@technolojin technolojin force-pushed the chore/perception-launcher-refactoring branch 2 times, most recently from 368d0b6 to 869c5f9 Compare June 10, 2024 05:04
@technolojin technolojin self-assigned this Jun 10, 2024
@technolojin technolojin marked this pull request as ready for review June 11, 2024 06:26
Copy link
Contributor

@miursh miursh left a comment

Choose a reason for hiding this comment

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

I think it would be beneficial to avoid using default values in lower-level launch files.
To be specific:

  • tier4_perception_component.launch.xml: Define parameters that are likely to change here, in this central launch file.
  • perception.launch.xml: Avoid using default arguments. Only parameters that are difficult to specify in tier4_perception_component.launch.xml should be provided here.
  • Subsequent Launch Files: Avoid using default arguments in launch files called from perception.launch.xml

This is just my suggestion. What are your thoughts on this approach?

@technolojin
Copy link
Contributor Author

technolojin commented Jun 11, 2024

I think it would be beneficial to avoid using default values in lower-level launch files. To be specific:

* tier4_perception_component.launch.xml: Define parameters that are likely to change here, in this central launch file.

* perception.launch.xml: Avoid using default arguments. Only parameters that are difficult to specify in tier4_perception_component.launch.xml should be provided here.

* Subsequent Launch Files: Avoid using default arguments in launch files called from tier4_perception_component.launch.xml.

This is just my suggestion. What are your thoughts on this approach?

@miursh
I agree. I am one of the user that suffer from the hidden default values.
However, this PR is already large and I consumed a lot of time in the testing.
Can I fix that point in a separated PR?

@technolojin technolojin force-pushed the chore/perception-launcher-refactoring branch from 869c5f9 to 72968d4 Compare June 11, 2024 08:07
@technolojin technolojin force-pushed the chore/perception-launcher-refactoring branch from 72968d4 to 911bdc3 Compare June 11, 2024 08:51
@technolojin technolojin added the tag:run-build-and-test-differential Mark to enable build-and-test-differential workflow. (used-by-ci) label Jun 11, 2024
@technolojin
Copy link
Contributor Author

@miursh
I created a PR #7440 to answer your suggestion.

Copy link
Contributor

@YoshiRi YoshiRi left a comment

Choose a reason for hiding this comment

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

Thanks! LGTM

@technolojin technolojin enabled auto-merge (squash) June 12, 2024 10:08
@technolojin technolojin merged commit 221ce4b into autowarefoundation:main Jun 12, 2024
24 checks passed
KhalilSelyan pushed a commit that referenced this pull request Jul 22, 2024
* fix: reorder object merger launchers

Signed-off-by: Taekjin LEE <[email protected]>

* fix: separate detection by tracker launch

Signed-off-by: Taekjin LEE <[email protected]>

* fix: refactor tracking launch

Signed-off-by: Taekjin LEE <[email protected]>

* style(pre-commit): autofix

Signed-off-by: Taekjin LEE <[email protected]>

* fix: input pointcloud topic names, mot input channels

Signed-off-by: Taekjin LEE <[email protected]>

* feat: separate filters

Signed-off-by: Taekjin LEE <[email protected]>

* fix: object validator to modular

Signed-off-by: Taekjin LEE <[email protected]>

* fix: implement filters on mergers

Signed-off-by: Taekjin LEE <[email protected]>

* fix lidar only mode

chore: simplify mode check
Signed-off-by: Taekjin LEE <[email protected]>

* fix: fix a bug when use_radar_tracking_fusion is fault

Signed-off-by: Taekjin LEE <[email protected]>

* fix: rename radar detector to filter

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>
@technolojin technolojin deleted the chore/perception-launcher-refactoring branch July 26, 2024 02:21
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) tag:run-build-and-test-differential Mark to enable build-and-test-differential workflow. (used-by-ci)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Replace serialized detected object mergers to reduce complexity
3 participants