Skip to content

feat(external_cmd_selector): apply agnocast_wrapper::Node to external_cmd_selector - #13013

Merged
kobayu858 merged 3 commits into
autowarefoundation:mainfrom
kobayu858:apply_agnocast_external_cmd_selector
Jul 28, 2026
Merged

kobayu858 merged 3 commits into
autowarefoundation:mainfrom
kobayu858:apply_agnocast_external_cmd_selector

Conversation

@kobayu858

@kobayu858 kobayu858 commented Jul 16, 2026 •

Copy link
Copy Markdown
Contributor

Description

Apply agnocast_wrapper::Node to autoware_external_cmd_selector.
Please read autowarefoundation/autoware#7007 for the context and review guidelines of autoware_agnocast_wrapper adoption.
Also, please refer to https://github.com/autowarefoundation/autoware_core/blob/main/common/autoware_agnocast_wrapper/docs/review_guide.md for the review guide. FYI: This node takes Method2 of the two integration methods.

AgnocastOnlyCallbackIsolatedExecutor:
When built and run with ENABLE_AGNOCAST=1, the node runs on an AgnocastOnlyCallbackIsolatedExecutor (CIE), the standard executor for agnocast_wrapper::Node. Please check for potential race conditions only if the node meets all of the following:

  1. It was originally running on a SingleThreadedExecutor.
  2. It has multiple callback groups (the default is one).
  3. Shared variables are accessed across those callback groups without mutex protection.

Nodes already running on MultiThreadedExecutor are unaffected, since their callbacks already run concurrently.

Related links

How was this PR tested?

  • Build: colcon build succeeds with both ENABLE_AGNOCAST=1 and ENABLE_AGNOCAST=0.
  • Standalone launch: Confirmed the node launches as a standalone node (not inside a component container) under both ENABLE_AGNOCAST=0 and ENABLE_AGNOCAST=1, since agnocast::Node does not currently work inside a component container. The node's own launch.py always launches standalone and self-contains the agnocast_env / LD_PRELOAD wiring, so no autoware_launch-side change is required.
  • LSim (sample rosbag): The Logging Simulator runs to completion under both ENABLE_AGNOCAST=0 and ENABLE_AGNOCAST=1 with no process died or similar failures, and the selector correctly relays the selected source (e.g. LOCAL) commands to its selected outputs.

Notes for reviewers

This node is always launched standalone; its launch.py self-contains the Agnocast environment setup, so no companion autoware_launch PR is needed.

The service QoS call AUTOWARE_DEFAULT_SERVICES_QOS_PROFILE() was replaced with the equivalent rclcpp::ServicesQoS() (and the now-unused autoware_qos_utils dependency was dropped), because the wrapper's create_service takes an rclcpp::QoS; the QoS profile is unchanged.

Interface changes

None.

Effects on system behavior

None when ENABLE_AGNOCAST is not set or set to 0 on runtime. When ENABLE_AGNOCAST=1, CPU time used in this node for message serialization/deserialization will be reduced.

@github-actions github-actions Bot added the component:control Vehicle control algorithms and mechanisms. (auto-assigned) label Jul 16, 2026
@github-actions

Copy link
Copy Markdown

Thank you for contributing to the Autoware project!

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

Please ensure:

@kobayu858 kobayu858 changed the title feat(external cmd selector): apply agnocast_wrapper::Node to external cmd selector feat(external_cmd_selector): apply agnocast_wrapper::Node to external_cmd_selector Jul 16, 2026
@kobayu858
kobayu858 requested a review from Koichi98 July 16, 2026 12:01
@kobayu858 kobayu858 self-assigned this Jul 16, 2026
…_cmd_selector

Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
@kobayu858
kobayu858 force-pushed the apply_agnocast_external_cmd_selector branch from 81e57f4 to fa22a4e Compare July 16, 2026 12:18
@kobayu858 kobayu858 added the run:build-and-test-differential Mark to enable build-and-test-differential workflow. (used-by-ci) label Jul 16, 2026
@kobayu858
kobayu858 marked this pull request as ready for review July 16, 2026 13:04
Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
@kobayu858
kobayu858 marked this pull request as draft July 22, 2026 13:18
@kobayu858
kobayu858 marked this pull request as ready for review July 23, 2026 01:33
@mergify

mergify Bot commented Jul 28, 2026

Copy link
Copy Markdown

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@kobayu858
kobayu858 merged commit 228f7c6 into autowarefoundation:main Jul 28, 2026
28 checks passed
@github-project-automation github-project-automation Bot moved this from To Triage to Done in Software Working Group Jul 28, 2026
tier4-autoware-public-bot Bot pushed a commit to tier4/pilot_auto_control that referenced this pull request Jul 28, 2026
…_cmd_selector (autowarefoundation/autoware_universe#13013)

* feat(external_cmd_selector): apply agnocast_wrapper::Node to external_cmd_selector

Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp>
TetsuKawa pushed a commit to TetsuKawa/autoware_universe that referenced this pull request Aug 10, 2026
…_cmd_selector (autowarefoundation#13013)

* feat(external_cmd_selector): apply agnocast_wrapper::Node to external_cmd_selector

Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>
TetsuKawa pushed a commit to TetsuKawa/autoware_universe that referenced this pull request Sep 7, 2026
…_cmd_selector (autowarefoundation#13013)

* feat(external_cmd_selector): apply agnocast_wrapper::Node to external_cmd_selector

Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>
TetsuKawa pushed a commit to TetsuKawa/autoware_universe that referenced this pull request Sep 7, 2026
…_cmd_selector (autowarefoundation#13013)

* feat(external_cmd_selector): apply agnocast_wrapper::Node to external_cmd_selector

Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp>
TetsuKawa pushed a commit to TetsuKawa/autoware_universe that referenced this pull request Sep 15, 2026
…_cmd_selector (autowarefoundation#13013)

* feat(external_cmd_selector): apply agnocast_wrapper::Node to external_cmd_selector

Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp>
kobayu858 added a commit to tier4/autoware_universe that referenced this pull request Sep 17, 2026
…_cmd_selector (autowarefoundation#13013)

* feat(external_cmd_selector): apply agnocast_wrapper::Node to external_cmd_selector

Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp>
Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

* refactor: revert comment

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>

---------

Signed-off-by: kobayu858 <yutaro.kobayashi.2@tier4.jp>
Co-authored-by: Koichi Imai <koichi.imai.2@tier4.jp>
(cherry picked from commit 228f7c6)
kobayu858 added a commit to tier4/autoware_universe that referenced this pull request Sep 17, 2026
…_pass/external-cmd-selector

feat(external_cmd_selector): apply `agnocast_wrapper::Node` to `autoware_external_cmd_selector` (cherry-pick autowarefoundation#12887, autowarefoundation#13013)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component:control Vehicle control algorithms and mechanisms. (auto-assigned) run:build-and-test-differential Mark to enable build-and-test-differential workflow. (used-by-ci)

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants