Changes

Summary

  1. fix(pnc): select SC rotation from passing-point headings (details)
  2. fix(pnc): honor end-only rotation rules when leaving open space (details)
  3. fix(pnc): cache end-only rotation decisions from receipt pose (details)
Commit bbd9b718e5b40e14ddef984147e81fde2e3cb333 by chenran
fix(pnc): select SC rotation from passing-point headings

Store separate start and end passing points and select initial rotation from
heading validity, preferring end when both headings are on the same side of
100.0. Preserve legacy end-only behavior and nearby-point propagation.

Store the initial target and derive reverse operation at that point, retaining
the decision across propagated rotations for the same command. Draw valid
passing-point headings in the HMI independently of active rotation targets.

Update serialization and regression fixtures, and bind the offboard scene
viewer to localhost.

Validation: 42 focused tests passed, affected C++ syntax checks passed, and
git diff --check passed. Full ROS replay and visual HMI checks were not run.
The file was modifiedssep/offboard/servers/scene_vis_server.cc
The file was modifiedhmi/draw/draw_ego.hpp
The file was modifieddata/ssep/open_space_ec.cpp
The file was modifiedhmi/draw/draw_ego.cpp
The file was addedTesting/app_open_space_passing_points_test.cpp
The file was modifieddata/scenario/scenario_region_condition.cpp
The file was modifieddata/vehicle/request_routing_data.cpp
The file was modifieddata/vehicle/sc_turn_in_place_mode.hpp
The file was modifieddata/app/reaction/app_reaction.cpp
The file was modifieddata/vehicle/sc_turn_in_place_mode.cpp
The file was modifieddata/plan/ssep_data.cpp
The file was modifiedTesting/sc_rotation_publish_replay.cpp
The file was modifieddata/map/pnc_map/routing_extension/routing_data.cpp
The file was modifieddata/app/reaction/app_reaction.hpp
The file was modifiedCMakeLists.txt
Commit 37ef87eb6f798f43e922fb5d4eee5b6321a44a1d by chenran
fix(pnc): honor end-only rotation rules when leaving open space

Share the heading threshold across rotation selection, routing completion, SSEP mode, and endpoint stops so nonrotating commands do not leave destination distance frozen.

Validation: 44 unit tests, syntax checks for four production units, and 317 offline selection/exit checks covering 17 recorded commands passed. Full closed-loop simulation was not run.
The file was modifieddata/vehicle/sc_turn_in_place_mode.cpp
The file was modifiedTesting/sc_turn_in_place_mode_test.cpp
The file was modifieddata/vehicle/sc_turn_in_place_mode.hpp
The file was modifieddata/map/pnc_map/routing_extension/routing_data.cpp
The file was modifieddata/plan/ssep_data.cpp
The file was modifieddata/ssep/open_space_ec.cpp
Commit e1da74b409b7416c478723fbae98925a4349b9e4 by chenran
fix(pnc): cache end-only rotation decisions from receipt pose

Skip end-only rotation when the command-receipt physical heading error is below 10 degrees and lateral deviation is below 0.5 m. Preserve the physical receipt heading in reverse mode and share the cached decision across routing, SSEP, and rotation selection.

Refresh the cache on command acceptance, serialize it, and move non-template turn-in-place implementations into the cpp file.

Validation: 47 unit tests, five production syntax checks, and offline checks covering all 18 recorded target commands passed. Full closed-loop driving was not tested.
The file was modifiedTesting/app_open_space_passing_points_test.cpp
The file was modifieddata/plan/ssep_data.cpp
The file was modifieddata/ssep/open_space_ec.cpp
The file was modifieddata/vehicle/sc_turn_in_place_mode.cpp
The file was modifiedTesting/sc_turn_in_place_mode_test.cpp
The file was modifieddata/vehicle/sc_turn_in_place_mode.hpp
The file was modifieddata/vehicle/request_routing_data.cpp
The file was modifieddata/map/pnc_map/routing_extension/routing_data.cpp
The file was modifiedCMakeLists.txt