Skip to content

feat(autoware_raw_vehicle_cmd_conveter): adopt cie#12322

Open
TetsuKawa wants to merge 8 commits intoautowarefoundation:mainfrom
TetsuKawa:feat/adopt-cie-raw-vehicle-cmd-converter
Open

feat(autoware_raw_vehicle_cmd_conveter): adopt cie#12322
TetsuKawa wants to merge 8 commits intoautowarefoundation:mainfrom
TetsuKawa:feat/adopt-cie-raw-vehicle-cmd-converter

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.

@github-actions github-actions bot added the component:vehicle Vehicle-specific implementations, drivers, packages. (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 self-assigned this Mar 17, 2026
@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.09%. Comparing base (54657b7) to head (b0cbaaa).
⚠️ Report is 17 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #12322      +/-   ##
==========================================
+ Coverage   18.54%   19.09%   +0.55%     
==========================================
  Files        1850     1880      +30     
  Lines      128011   129084    +1073     
  Branches    45591    48036    +2445     
==========================================
+ Hits        23736    24647     +911     
- Misses      84599    85398     +799     
+ Partials    19676    19039     -637     
Flag Coverage Δ *Carryforward flag
daily 21.01% <ø> (+<0.01%) ⬆️ Carriedforward from e26770b
daily-cuda 18.53% <ø> (+<0.01%) ⬆️ Carriedforward from e26770b
daily-humble-amd64-nocuda 21.02% <ø> (?) Carriedforward from e26770b
differential 2.67% <ø> (?)
total-cuda 18.53% <ø> (+<0.01%) ⬆️ Carriedforward from e26770b
total-humble-cuda 18.54% <ø> (+<0.01%) ⬆️ Carriedforward from e26770b

*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:04
@TetsuKawa TetsuKawa requested a review from Copilot March 18, 2026 08:19
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 for autoware_raw_vehicle_cmd_converter so the node can switch between the standard ROS 2 executor and CallbackIsolatedAgnocastExecutor (CIE) based on ENABLE_AGNOCAST.

Changes:

  • Add autoware_agnocast_wrapper dependency to the package manifest.
  • Update CMake to find/link autoware_agnocast_wrapper, run wrapper setup, and register the component with explicit ROS2/Agnocast executor options.

Reviewed changes

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

File Description
vehicle/autoware_raw_vehicle_cmd_converter/package.xml Adds the wrapper dependency needed to build/run with CIE support.
vehicle/autoware_raw_vehicle_cmd_converter/CMakeLists.txt Integrates the wrapper into the build and swaps node registration to the wrapper macro with executor configuration.

💡 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:45
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-raw-vehicle-cmd-converter branch from 762f069 to 0f95ca4 Compare March 19, 2026 01:45
@github-actions github-actions bot added the component:planning Route planning, decision-making, and navigation. (auto-assigned) label Mar 19, 2026
@TetsuKawa TetsuKawa force-pushed the feat/adopt-cie-raw-vehicle-cmd-converter branch from 0f95ca4 to 22d5915 Compare March 19, 2026 05:40
@github-actions github-actions bot removed the component:planning Route planning, decision-making, and navigation. (auto-assigned) label Mar 19, 2026
Copy link
Contributor

@satoshi-ota satoshi-ota left a comment

Choose a reason for hiding this comment

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

LGTM

TetsuKawa and others added 3 commits March 19, 2026 18:54
Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>
Signed-off-by: TetsuKawa <kawaguchitnon@icloud.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component:vehicle Vehicle-specific implementations, drivers, packages. (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.

4 participants