Skip to content

feat(autoware_trajectory_follower_node): adopt cie#12320

Open
TetsuKawa wants to merge 8 commits intoautowarefoundation:mainfrom
TetsuKawa:feat/adopt-cie-trajectory-follower
Open

feat(autoware_trajectory_follower_node): adopt cie#12320
TetsuKawa wants to merge 8 commits intoautowarefoundation:mainfrom
TetsuKawa:feat/adopt-cie-trajectory-follower

Conversation

@TetsuKawa
Copy link
Contributor

@TetsuKawa TetsuKawa commented Mar 16, 2026

Description

Apply autoware_agnocast_wrapper to enable CallbackIsolatedAgnocastExecutor (CIE) for this package, as part of the effort to achieve middleware-transparent scheduling and optimize end-to-end response time across Autoware. By going through autoware_agnocast_wrapper, CIE activation is controlled by the ENABLE_AGNOCAST environment variable — when unset or 0, the node runs with the standard ROS 2 executor as before; when set to 1, it switches to CallbackIsolatedAgnocastExecutor.

Changes

  • CMakeLists.txt: Replaced rclcpp_components_register_node with autoware_agnocast_wrapper_register_node, adding ROS2_EXECUTOR SingleThreadedExecutor and AGNOCAST_EXECUTOR CallbackIsolatedAgnocastExecutor options.
  • package.xml: Added autoware_agnocast_wrapper.

Related links

How was this PR tested?

  • Evaluator passed.

Notes for reviewers

Please review the following aspects:

  • Verify that all relevant CMakeLists.txt and launch files in this package have been updated (no missed files).
  • If the node meets all of the following conditions, please check for potential race conditions (see Effects on system behavior for the reason):
    1. The node was originally running on a SingleThreadedExecutor
    2. The node has multiple callback groups
    3. Shared variables are accessed across callback groups without proper mutex protection

Interface changes

None.

Effects on system behavior

When ENABLE_AGNOCAST=0 (default), there is no change in behavior at all — the node runs with the standard ROS 2 executor exactly as before.

When ENABLE_AGNOCAST=1, the executor switches to CallbackIsolatedAgnocastExecutor (CIE). Internally, CIE creates a dedicated rclcpp::SingleThreadedExecutor for each callback group, so the fundamental scheduling behavior within each group remains almost identical. The key difference is that, for nodes originally using SingleThreadedExecutor, callback groups now run in parallel across separate threads, similar to MultiThreadedExecutor.

@TetsuKawa TetsuKawa self-assigned this Mar 16, 2026
@github-actions github-actions bot added the component:control Vehicle control algorithms and mechanisms. (auto-assigned) label Mar 16, 2026
@github-actions
Copy link

github-actions bot commented Mar 16, 2026

Thank you for contributing to the Autoware project!

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

Please ensure:

@TetsuKawa TetsuKawa added the run:build-and-test-differential Mark to enable build-and-test-differential workflow. (used-by-ci) label Mar 17, 2026
@codecov
Copy link

codecov bot commented Mar 17, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 19.49%. Comparing base (54657b7) to head (cb92ee3).
⚠️ Report is 17 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #12320      +/-   ##
==========================================
+ Coverage   18.54%   19.49%   +0.95%     
==========================================
  Files        1850     1877      +27     
  Lines      128011   129040    +1029     
  Branches    45591    47895    +2304     
==========================================
+ Hits        23736    25154    +1418     
- Misses      84599    85418     +819     
+ Partials    19676    18468    -1208     
Flag Coverage Δ *Carryforward flag
daily 21.01% <ø> (+<0.01%) ⬆️ Carriedforward from d3bbd7c
daily-cuda 18.53% <ø> (+<0.01%) ⬆️ Carriedforward from d3bbd7c
differential 4.73% <ø> (?)
total-cuda 18.53% <ø> (+<0.01%) ⬆️ Carriedforward from d3bbd7c
total-humble-cuda ?

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

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@TetsuKawa TetsuKawa marked this pull request as ready for review March 17, 2026 10:05
@mitsudome-r mitsudome-r force-pushed the feat/adopt-cie-trajectory-follower branch from 104a58b to 822a9cd Compare March 18, 2026 07:58
@TetsuKawa TetsuKawa requested a review from Copilot March 18, 2026 08:18
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adopts autoware_agnocast_wrapper in autoware_trajectory_follower_node so the node can switch between the standard ROS 2 executor and CallbackIsolatedAgnocastExecutor (CIE) via ENABLE_AGNOCAST.

Changes:

  • Register both component nodes via autoware_agnocast_wrapper_register_node with explicit ROS 2 and Agnocast executor types.
  • Add autoware_agnocast_wrapper build configuration and dependency wiring (CMake + package.xml).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.

File Description
control/autoware_trajectory_follower_node/package.xml Adds runtime/build dependency on autoware_agnocast_wrapper.
control/autoware_trajectory_follower_node/CMakeLists.txt Integrates agnocast wrapper into both component targets and switches registration macro.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

@TetsuKawa TetsuKawa requested a review from Copilot March 18, 2026 08:46
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adopts autoware_agnocast_wrapper in autoware_trajectory_follower_node so the node can switch between the default ROS 2 executor and CallbackIsolatedAgnocastExecutor based on the ENABLE_AGNOCAST environment variable.

Changes:

  • Add autoware_agnocast_wrapper as a package dependency.
  • Update component registration in CMakeLists.txt to use autoware_agnocast_wrapper_* macros and configure ROS2/agnocast executors.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
control/autoware_trajectory_follower_node/package.xml Adds runtime/package dependency on autoware_agnocast_wrapper.
control/autoware_trajectory_follower_node/CMakeLists.txt Switches node registration to agnocast wrapper and sets executor options for both components.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

TetsuKawa and others added 5 commits March 19, 2026 10:05
Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>
Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>
Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>
Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>
@TetsuKawa TetsuKawa force-pushed the feat/adopt-cie-trajectory-follower branch from e79f256 to 1c65ed9 Compare March 19, 2026 01:06
@github-actions github-actions bot added component:perception Advanced sensor data processing and environment understanding. (auto-assigned) type:ci Continuous Integration (CI) processes and testing. (auto-assigned) labels Mar 19, 2026
@TetsuKawa TetsuKawa marked this pull request as draft March 19, 2026 01:13
@TetsuKawa TetsuKawa force-pushed the feat/adopt-cie-trajectory-follower branch from 1c65ed9 to 1296465 Compare March 19, 2026 01:16
@github-actions github-actions bot removed component:perception Advanced sensor data processing and environment understanding. (auto-assigned) type:ci Continuous Integration (CI) processes and testing. (auto-assigned) labels Mar 19, 2026
@TetsuKawa TetsuKawa marked this pull request as ready for review March 19, 2026 01:16
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

Status: To Triage

Development

Successfully merging this pull request may close these issues.

3 participants