Skip to content

fix(design): align the control node designs with the packages they describe - #13340

Open
technolojin wants to merge 2 commits into
autowarefoundation:mainfrom
technolojin:fix/node-design-control
Open

fix(design): align the control node designs with the packages they describe#13340
technolojin wants to merge 2 commits into
autowarefoundation:mainfrom
technolojin:fix/node-design-control

Conversation

@technolojin

@technolojin technolojin commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Description

Split of #13298 — the control slice. The CollisionDetector part of that slice already landed as #13312; what remains is four designs.

ControlCommandGate — plugin name

autoware_control_command_gate registers autoware::control_command_gate::ControlCmdGate, not …::ControlCommandGateNode.

AutonomousModeTransitionFlag — fixed-name publishers

transition_available and transition_completed are pinned to /system/command_mode/transition/{available,completed} with global:. A port pinned with global: connects outside the design graph on a fixed topic: link_manager skips any connection whose target is a global input port, and the exporter emits no remap. With remap_target: the port takes part in the graph like any other, while the launcher still binds it to the official name.

TrajectoryFollower — interface types

Checked against the installed message definitions and the create_publisher call sites.

interface was is
slope_angle std_msgs/msg/Float32Stamped (no such type) autoware_internal_debug_msgs/msg/Float32MultiArrayStamped
lateral_diagnostic, longitudinal_diagnostic diagnostic_msgs/msg/DiagnosticStatus autoware_internal_debug_msgs/msg/Float32MultiArrayStamped

The stop_reason publisher is dropped; the node never creates it.

VehicleCmdGate — gate mode and engage on the design graph

The gate_mode (/control/gate_mode_cmd) and engage (/autoware/engage) subscribers drop their global: pins and keep their remap_target declarations, so these inputs are connected through the design.

OperationModeTransitionManager — system and legacy interfaces

The operation mode state publisher, the two operation mode change services and the legacy engage / gate_mode_cmd publishers are node-side fixed names. They are declared as remap targets so they sit on the design graph, matching the VehicleCmdGate side above.

Related links

Parent Issue:

  • None

Related:

How was this PR tested?

Notes for reviewers

Design metadata only; no launch file or node source is touched.

The gate_mode/engage inputs of VehicleCmdGate were declared global: in #13281 because of external publishers (internal API adaptor, joy controller, RViz panel); this PR moves them onto the design graph, so please check the multi-publisher expectation still holds for your systems.

Interface changes

None. TrajectoryFollower's debug publishers are corrected to the types the node already publishes, and stop_reason is removed from the design because the node does not create it — there is no node-side change.

Effects on system behavior

None.

…scribe

ControlCommandGate and the operation mode transition manager name a plugin
class and pin publishers that do not match the built package: the registered
component is ControlCmdGate, and the transition flags belong on the design
graph rather than on global: pins that link_manager skips.

TrajectoryFollower declares three debug publishers with message types the node
never publishes and a stop_reason publisher it does not create at all.

VehicleCmdGate keeps gate_mode and engage on their official topic names through
remap_target: alone, so the two inputs are connected through the design.

Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>
@technolojin
technolojin force-pushed the fix/node-design-control branch from ee1bfdf to b09c90b Compare September 7, 2026 04:36
@github-actions

github-actions Bot commented Sep 7, 2026

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:

…nd legacy interfaces as remap targets

The operation mode state publisher, the two operation mode change services and
the legacy engage and gate mode publishers are node-side fixed names. Declaring
them as remap targets puts them on the design graph; a port pinned with global:
is skipped by link_manager and the exporter emits no remap for it.

Signed-off-by: Taekjin LEE <taekjin.lee@tier4.jp>
@technolojin
technolojin marked this pull request as draft September 7, 2026 04:52
@technolojin
technolojin marked this pull request as ready for review September 7, 2026 04:54
@codecov

codecov Bot commented Sep 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 20.48%. Comparing base (f540393) to head (f6b263c).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #13340      +/-   ##
==========================================
- Coverage   20.49%   20.48%   -0.01%     
==========================================
  Files        1948     1948              
  Lines      137202   137201       -1     
  Branches    48933    48932       -1     
==========================================
- Hits        28113    28109       -4     
  Misses      86314    86314              
- Partials    22775    22778       +3     
Flag Coverage Δ *Carryforward flag
daily ?
full-suite 20.48% <ø> (+<0.01%) ⬆️ Carriedforward from b09c90b

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

☔ View full report in Codecov by Harness.
📢 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.

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.

1 participant