Husky mixed-surface assessment

OmniLink · 29 October 2026 · Reference-model simulation

76 valid episodes: {'FAIL': 26, 'PASS': 50}. Constructed tests, not a field failure probability. Source and candidate were frozen before qualification; prospective inputs were declared before any qualification run.

Decision supported

Choose whether a reduced approach speed is a useful operating restriction for a mapped low-traction area, and identify conditions where that restriction is insufficient. The speed cap reduces throughput; no payload capacity, material coefficient or hardware performance is established.

Braking excursion

0.458 m (FAIL) → 0.156 m (PASS). Same physical crossing, μ 0.8 → 0.04, no payload. The policy caps speed at 0.35 m/s before the boundary instead of continuing at 0.6 m/s.

Measured brake comparison

Maximum turning path error

0.963 m (FAIL) → 0.109 m (PASS). Same physical crossing, μ 0.8 → 0.04, no payload. The policy caps speed at 0.35 m/s before the boundary instead of continuing at 0.6 m/s.

Measured turn comparison

Remaining failures

7 capped-speed episodes still failed. Their inputs and reasons remain below. In particular, split surfaces can defeat this turning controller; the cap is not a general remedy. Uniform-floor controls separate fixture effects from controller limits.

Frozen scope and requirements

48 grid episodes: braking/turning × crossing/split × 0/10 kg rigid payload × low μ 0.04/0.10/0.20 × cruise/cap. Eight uniform-floor controls; eight selected-endpoint confirmations; 12 prospective episodes use new μ 0.06/0.12/0.15 with 5/15 kg, changed boundary/trigger/radius and one right-turn input. High μ 0.8 throughout.

Every episode observes 24 s at 16 ms, Newton 1.5.0 / MuJoCo 3.11 CPU, eight configured substeps, machine 9722d23d12a3. Initial settle is 1 s. Boundary x=1.2 m and trigger x=1.9 m in the grid; the cap starts at x=0.45 m. No braking delay, external forces, pose/velocity writes or altered physics between policy variants.

Braking: qualified 0.3 s approach at the selected speed; forward excursion ≤0.25 m; lateral excursion ≤0.15 m; linear speed ≤0.025 m/s and yaw rate ≤0.05 rad/s within 2 s, held for at least 0.5 s and the rest of the observation; rollback ≤0.05 m. Turning: follow a 90° radius-1 m arc within 0.30 m; final position within 0.25 m and heading within 0.15 rad; complete and hold stopped through the last second. Both tasks require stability and physical-fixture validity. A controller emergency stop after 1 m path deviation limits runaway but does not turn a failure into a pass.

Friction patches are rigid physical colliders. Compiled solver geometry, friction and mass are verified. Robot geoms are fixed at μ 0.01 on both sides; equal explicit priorities make the floor coefficient set effective contact friction. These coefficients are imposed assumptions, not measured concrete, water, ice, sand or soil. No deformable terrain, OEM firmware, perception, hardware calibration or safety certification.

The box payload is 0.30 × 0.25 × 0.20 m, rigidly mounted 0.35 m above the Husky chassis frame. These experimental loads are not vendor-rated capacities.

Evidence and reruns

All specs and metrics · CSV · Complete traces, solver dumps and offline verifier · Public source add-on · Reference-source check

Extract evidence.zip and run python verify.py to check checksums, reconstruct fixture adoption and independently regrade every episode. Source add-on instructions are on the service page; the prepared Windows kit provides verify, accept and rerun commands. These are fresh physics runs, not checkpoint replay. Independent-PC and hardware validation remain unverified.

All 76 episodes

CaseStageTaskLayoutLow μkgPolicyVerdictReasons
case-000gridbrakecrossing0.040cruiseFAILstopping_excursion_exceeded
case-001gridbrakecrossing0.040surface-capPASS
case-002gridbrakecrossing0.10cruisePASS
case-003gridbrakecrossing0.10surface-capPASS
case-004gridbrakecrossing0.20cruisePASS
case-005gridbrakecrossing0.20surface-capPASS
case-006gridbrakecrossing0.0410cruiseFAILstopping_excursion_exceeded
case-007gridbrakecrossing0.0410surface-capPASS
case-008gridbrakecrossing0.110cruisePASS
case-009gridbrakecrossing0.110surface-capPASS
case-010gridbrakecrossing0.210cruisePASS
case-011gridbrakecrossing0.210surface-capPASS
case-012gridbrakesplit0.040cruisePASS
case-013gridbrakesplit0.040surface-capPASS
case-014gridbrakesplit0.10cruisePASS
case-015gridbrakesplit0.10surface-capPASS
case-016gridbrakesplit0.20cruisePASS
case-017gridbrakesplit0.20surface-capPASS
case-018gridbrakesplit0.0410cruisePASS
case-019gridbrakesplit0.0410surface-capPASS
case-020gridbrakesplit0.110cruisePASS
case-021gridbrakesplit0.110surface-capPASS
case-022gridbrakesplit0.210cruisePASS
case-023gridbrakesplit0.210surface-capPASS
case-024gridturncrossing0.040cruiseFAILturn_corridor_exceeded, turn_goal_error_exceeded
case-025gridturncrossing0.040surface-capPASS
case-026gridturncrossing0.10cruisePASS
case-027gridturncrossing0.10surface-capPASS
case-028gridturncrossing0.20cruisePASS
case-029gridturncrossing0.20surface-capPASS
case-030gridturncrossing0.0410cruiseFAILturn_not_completed, turn_corridor_exceeded, turn_goal_error_exceeded, turn_heading_error_exceeded
case-031gridturncrossing0.0410surface-capPASS
case-032gridturncrossing0.110cruisePASS
case-033gridturncrossing0.110surface-capPASS
case-034gridturncrossing0.210cruisePASS
case-035gridturncrossing0.210surface-capPASS
case-036gridturnsplit0.040cruiseFAILturn_not_completed, turn_corridor_exceeded, turn_goal_error_exceeded, turn_heading_error_exceeded
case-037gridturnsplit0.040surface-capFAILturn_not_completed, turn_corridor_exceeded, turn_goal_error_exceeded, turn_heading_error_exceeded
case-038gridturnsplit0.10cruiseFAILturn_not_completed, turn_corridor_exceeded, turn_goal_error_exceeded, turn_heading_error_exceeded
case-039gridturnsplit0.10surface-capFAILturn_not_completed, turn_corridor_exceeded, turn_goal_error_exceeded, turn_heading_error_exceeded
case-040gridturnsplit0.20cruiseFAILturn_not_completed, turn_corridor_exceeded, turn_goal_error_exceeded, turn_heading_error_exceeded
case-041gridturnsplit0.20surface-capFAILturn_not_completed, turn_corridor_exceeded, turn_goal_error_exceeded, turn_heading_error_exceeded
case-042gridturnsplit0.0410cruiseFAILturn_not_completed, turn_corridor_exceeded, turn_goal_error_exceeded, turn_heading_error_exceeded
case-043gridturnsplit0.0410surface-capFAILturn_not_completed, turn_corridor_exceeded, turn_goal_error_exceeded, turn_heading_error_exceeded
case-044gridturnsplit0.110cruiseFAILturn_not_completed, turn_corridor_exceeded, turn_goal_error_exceeded, turn_heading_error_exceeded
case-045gridturnsplit0.110surface-capFAILturn_not_completed, turn_corridor_exceeded, turn_goal_error_exceeded, turn_heading_error_exceeded
case-046gridturnsplit0.210cruiseFAILturn_not_completed, turn_corridor_exceeded, turn_goal_error_exceeded, turn_heading_error_exceeded
case-047gridturnsplit0.210surface-capFAILturn_not_completed, turn_corridor_exceeded, turn_goal_error_exceeded, turn_heading_error_exceeded
case-048controlbrakeuniform-high0.040cruisePASS
case-049controlbrakeuniform-high0.040surface-capPASS
case-050controlbrakeuniform-low0.040cruiseFAILstopping_excursion_exceeded
case-051controlbrakeuniform-low0.040surface-capPASS
case-052controlturnuniform-high0.040cruisePASS
case-053controlturnuniform-high0.040surface-capPASS
case-054controlturnuniform-low0.040cruiseFAILturn_corridor_exceeded, turn_heading_error_exceeded
case-055controlturnuniform-low0.040surface-capPASS
case-056confirmationbrakecrossing0.040cruiseFAILstopping_excursion_exceeded
case-057confirmationbrakecrossing0.040cruiseFAILstopping_excursion_exceeded
case-058confirmationbrakecrossing0.040surface-capPASS
case-059confirmationbrakecrossing0.040surface-capPASS
case-060confirmationturncrossing0.040cruiseFAILturn_corridor_exceeded, turn_goal_error_exceeded
case-061confirmationturncrossing0.040cruiseFAILturn_corridor_exceeded, turn_goal_error_exceeded
case-062confirmationturncrossing0.040surface-capPASS
case-063confirmationturncrossing0.040surface-capPASS
case-064holdoutbrakecrossing0.065cruiseFAILstopping_excursion_exceeded
case-065holdoutbrakecrossing0.065surface-capPASS
case-066holdoutturncrossing0.065cruiseFAILturn_corridor_exceeded, turn_goal_error_exceeded
case-067holdoutturncrossing0.065surface-capPASS
case-068holdoutbrakesplit0.125cruisePASS
case-069holdoutbrakesplit0.125surface-capPASS
case-070holdoutturnsplit0.125cruiseFAILturn_not_completed, turn_corridor_exceeded, turn_goal_error_exceeded, turn_heading_error_exceeded
case-071holdoutturnsplit0.125surface-capFAILturn_not_completed, turn_corridor_exceeded, turn_goal_error_exceeded, turn_heading_error_exceeded
case-072holdoutbrakecrossing0.1515cruisePASS
case-073holdoutbrakecrossing0.1515surface-capPASS
case-074holdoutturncrossing0.1515cruisePASS
case-075holdoutturncrossing0.1515surface-capPASS