Back to catalog

Contact Manager

H02 Contact Manager Motion

Moving correctness tests for contact-management evidence. These cases check whether contact-manager alerts arrive early enough for downstream avoidance to produce a safe transit, while expected-fail cases prove the gate catches missing or late avoidance evidence.

Stem Mission

Baseline scenario context

The stem mission places alpha on a short transit with one or more synthetic contacts. The harness keeps the geometry compact and grades whether contact-manager output gives the avoidance behavior enough evidence to arrive safely.

Examples

Representative runs

Baseline Crossing Pass

Description: Posts a stationary intruder at (39,-60) two seconds after deploy under the static 20-meter range and 28-meter CPA alert, testing the normal CONTACT_INFO spawn path; passes when ARRIVED=true, CONTACT_DETECTED=true, and COLLISION_TOTAL=0.

Head-on Pass

Description: Posts intruder at (71,-60) moving west at 1.4, testing alert-driven avoidance against an oncoming contact; passes when ARRIVED=true, CONTACT_DETECTED=true, and COLLISION_TOTAL=0.

Two Contact Pass

Description: Posts avoid-worthy alpha at (39,-56) and background bravo at (53,-34), testing that both are tracked while only alpha generates the avoid alert; passes when CONTACTS_LIST=alpha,bravo, CONTACT_ALERTED=alpha, ARRIVED=true, ENCOUNTER_TOTAL=0, and COLLISION_TOTAL=0.

Case Matrix

All cases

baseline_crossing_pass

Posts a stationary intruder at (39,-60) two seconds after deploy under the static 20-meter range and 28-meter CPA alert, testing the normal CONTACT_INFO spawn path; passes when ARRIVED=true, CONTACT_DETECTED=true, and COLLISION_TOTAL=0.

offset_clear_pass

Moves the stationary contact to (45,-42), 18 meters north of the route, testing the clear trajectory outcome for off-lane geometry; passes when ARRIVED=true, ENCOUNTER_TOTAL=0, and COLLISION_TOTAL=0.

no_detect_clear_pass

Moves the contact to (45,-34) and reduces the alert thresholds to 10 and 12 meters, testing that a tracked contact outside both thresholds does not generate the avoid alert; passes when CONTACT_CLOSEST=intruder, CONTACT_CLOSEST_RANGE>10, ARRIVED=true, ENCOUNTER_TOTAL=0, COLLISION_TOTAL=0, and CONTACT_DETECTED remains false.

delayed_crossing_pass

Posts a stationary on-lane contact at (51,-60) after 12 seconds and evaluates at 52 seconds, testing late alert and avoidance during transit; passes when ARRIVED=true, CONTACT_DETECTED=true, and COLLISION_TOTAL=0.

head_on_pass

Posts intruder at (71,-60) moving west at 1.4, testing alert-driven avoidance against an oncoming contact; passes when ARRIVED=true, CONTACT_DETECTED=true, and COLLISION_TOTAL=0.

runtime_alert_add_pass

Starts without a static alert, adds the avoid alert by BCM_ALERT_REQUEST at one second, and posts the on-lane contact at two seconds, testing runtime alert creation; passes when ARRIVED=true, CONTACT_DETECTED=true, and COLLISION_TOTAL=0.

runtime_alert_reenable_pass

Disables the static alert before posting the short-lived early contact, waits for that contact to retire, then enables the alert and posts on-lane late; passes when early retires without publishing CMGR_ALERTED_early, CMGR_ALERTED_late=true, ARRIVED=true, and COLLISION_TOTAL=0.

filter_match_type_clear_pass

Requires match_type=ship while posting the default kayak contact at (45,-42), testing that type filtering blocks the alert without dropping the contact; passes when CONTACT_CLOSEST=intruder, ARRIVED=true, ENCOUNTER_TOTAL=0, COLLISION_TOTAL=0, and CONTACT_DETECTED remains false.

stale_reappear_pass

Sets contact_max_age=5, posts a three-second intruder at one second, clears the old detection latch at 10 seconds, then posts the same name on the route at 12 seconds, testing retirement and fresh alerting after reappearance; passes when CONTACT_RETIRED=intruder, the reset CONTACT_DETECTED returns to true, ARRIVED=true, and COLLISION_TOTAL=0.

two_contact_pass

Posts avoid-worthy alpha at (39,-56) and background bravo at (53,-34), testing that both are tracked while only alpha generates the avoid alert; passes when CONTACTS_LIST=alpha,bravo, CONTACT_ALERTED=alpha, ARRIVED=true, ENCOUNTER_TOTAL=0, and COLLISION_TOTAL=0.

tight_alert_fail

Reduces the baseline alert thresholds to 8 and 10 meters, testing that the tracked intruder never enters the tighter alert region; passes when CONTACT_CLOSEST=intruder, ARRIVED=true, COLLISION_TOTAL=0, and CONTACT_DETECTED remains false.

avoid_disabled_fail

Sends the alert update to DISABLED_INFO instead of the behavior's CONTACT_INFO variable and posts an oncoming contact at (67,-60) moving west at 1.8, testing detection without behavior spawn; passes when ARRIVED=true, CONTACT_DETECTED=true, ENCOUNTER_TOTAL=1, and COLLISION_TOTAL=0.

runtime_alert_disable_fail

Disables the static alert at one second before posting the same oncoming contact at two seconds, testing runtime alert suppression without dropping contact tracking; passes when CONTACT_CLOSEST=intruder, ARRIVED=true, ENCOUNTER_TOTAL=1, COLLISION_TOTAL=0, and CONTACT_DETECTED remains false.

fast_intruder_fail

Posts an oncoming contact at (57,-60) moving west at 3.0, testing detection under a faster encounter geometry; passes when ARRIVED=true, CONTACT_DETECTED=true, ENCOUNTER_TOTAL>=1, and COLLISION_TOTAL=0.

Source links

Harness README Mission README