Skip to content

fix(trajectory_selector, trajectory_validator): sync changes to the - #13344

Open
zulfaqar-azmi-t4 wants to merge 2 commits into
autowarefoundation:mainfrom
zulfaqar-azmi-t4:fix-sync-trajectory-validator
Open

fix(trajectory_selector, trajectory_validator): sync changes to the#13344
zulfaqar-azmi-t4 wants to merge 2 commits into
autowarefoundation:mainfrom
zulfaqar-azmi-t4:fix-sync-trajectory-validator

Conversation

@zulfaqar-azmi-t4

Copy link
Copy Markdown
Contributor

Description

Ports the trajectory selector and validator improvements from the TIER IV feat/v0.64/e2e branch that do not depend on TIER IV-only filters or packages.

Route reaches the validator filters. The crosswalk and traffic light filters need the current route, but the selector never provided it, so both filters rejected every trajectory whenever they were enabled. The selector now subscribes to the route and passes it on.

Missing traffic light input no longer rejects trajectories. On maps without traffic lights, or before the first signal message arrives, the traffic light filter treated the absent input as an error. An absent input is now treated as "no known signals".

Validation results carry risk levels to the caller. The validator now hands the selector the full validation report, including the per-trajectory risk level, instead of only the surviving trajectories. Published topics are unchanged. This prepares for a follow-up PR where the boundary departure filter reports a low caution risk for trajectories running close to an uncrossable boundary.

Filters publish planning factors. Filters can attach planning factors to their result, and the validator publishes them on /planning/planning_factors/trajectory_validator. The crosswalk filter reports a STOP factor naming the obstructing pedestrian when it rejects a trajectory. This makes rejections visible in RViz and to downstream consumers.

Not included: the ranker and adapter integration into the selector node from the TIER IV branch. Upstream keeps autoware_trajectory_ranker and autoware_trajectory_adapter as standalone nodes, and merging them into the selector is an architecture change to be discussed separately.

Related links

Parent Issue:

  • None

Source PRs (TIER IV feat/v0.64/e2e):

How was this PR tested?

Built with -DBUILD_TESTING=ON and ran the package tests:

  • autoware_trajectory_validator: 7/7 passed
  • autoware_trajectory_selector: 5/5 passed

Notes for reviewers

The route is optional in the selector. Filters that need it return their own error, so a missing route disables those filters only, instead of blocking validation of all trajectories.

Interface changes

Topic changes

Additions and removals

Change type Topic Type Topic Name Message Type Description
Added Sub ~/input/route autoware_planning_msgs/msg/LaneletRoute Route forwarded to validator filters
Added Pub /planning/planning_factors/trajectory_validator autoware_internal_planning_msgs/msg/PlanningFactorArray Reasons for trajectory rejection

Effects on system behavior

Crosswalk and traffic light filters now work when enabled; previously they rejected every trajectory. Trajectories are no longer rejected on maps without traffic light input. Rejections by the crosswalk filter are visible as planning factors.

…validation report

Signed-off-by: Zulfaqar Azmi <zulfaqar.azmi@tier4.jp>
…ilters

Signed-off-by: Zulfaqar Azmi <zulfaqar.azmi@tier4.jp>
@github-actions github-actions Bot added the component:planning Route planning, decision-making, and navigation. (auto-assigned) label Sep 7, 2026
@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:

@zulfaqar-azmi-t4 zulfaqar-azmi-t4 added the run:build-and-test-differential Mark to enable build-and-test-differential workflow. (used-by-ci) label Sep 7, 2026
@codecov

codecov Bot commented Sep 7, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 39.13043% with 28 lines in your changes missing coverage. Please review.
✅ Project coverage is 20.49%. Comparing base (f540393) to head (e782c20).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
...ory_validator/src/trajectory_validator_wrapper.cpp 23.52% 10 Missing and 3 partials ⚠️
...ajectory_selector/src/trajectory_selector_node.cpp 12.50% 3 Missing and 4 partials ⚠️
...ator/src/filters/traffic_rule/crosswalk_filter.cpp 65.00% 0 Missing and 7 partials ⚠️
...tory_validator/src/detail/trajectory_validator.cpp 0.00% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main   #13344   +/-   ##
=======================================
  Coverage   20.49%   20.49%           
=======================================
  Files        1948     1948           
  Lines      137202   137244   +42     
  Branches    48933    48953   +20     
=======================================
+ Hits        28113    28126   +13     
- Misses      86314    86326   +12     
- Partials    22775    22792   +17     
Flag Coverage Δ *Carryforward flag
daily ?
full-suite 20.48% <ø> (-0.01%) ⬇️ Carriedforward from f540393

*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:planning Route planning, decision-making, and navigation. (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.

2 participants