Back to catalog

Obstacle Manager

H02 Obstacle Manager Motion

Moving correctness tests for obstacle-manager alert output. These cases check whether obstacle alerts are actionable enough to support clean obstacle-avoidance transit, and whether intentionally bad setups fail for the expected reason.

Stem Mission

Baseline scenario context

The stem mission sends one ownship through a short corridor with obstacle layouts that vary by case. The harness grades whether obstacle-manager alerts support arrival without collisions, near misses, or unresolved encounters.

Examples

Representative runs

Baseline Center Pass

Description: Starts pObstacleMgr with a 14-by-14-meter given_obstacle centered on the vehicle's route and requests alerts within 22 meters, testing that the obstacle is reported early enough for the avoidance behavior to steer around it; passes when ARRIVED=true and OB_TOTAL_COLLISIONS=0.

Offset Clear Pass

Description: Moves the same 14-by-14-meter given_obstacle so its nearest edge is 14 meters north of the route, testing that an off-lane obstacle does not create a collision-detector encounter; passes when ARRIVED=true, OB_TOTAL_COLLISIONS=0, and OB_TOTAL_ENCOUNTERS=0.

Two Sequential Fail

Description: Places two 8-by-8-meter obstacles in the transit lane at separate points along the route, testing consecutive obstacle encounters; passes when ARRIVED=true, OB_TOTAL_ENCOUNTERS=2, and OB_TOTAL_COLLISIONS=1.

Case Matrix

All cases

baseline_center_pass

Starts pObstacleMgr with a 14-by-14-meter given_obstacle centered on the vehicle's route and requests alerts within 22 meters, testing that the obstacle is reported early enough for the avoidance behavior to steer around it; passes when ARRIVED=true and OB_TOTAL_COLLISIONS=0.

offset_clear_pass

Moves the same 14-by-14-meter given_obstacle so its nearest edge is 14 meters north of the route, testing that an off-lane obstacle does not create a collision-detector encounter; passes when ARRIVED=true, OB_TOTAL_COLLISIONS=0, and OB_TOTAL_ENCOUNTERS=0.

tight_alert_pass

Keeps the centered startup obstacle but reduces the OBM_ALERT_REQUEST range from 22 to 16 meters, testing whether the shorter warning still leaves enough room for avoidance; passes when ARRIVED=true and OB_TOTAL_COLLISIONS=0.

runtime_given_late_pass

Posts GIVEN_OBSTACLE at three seconds, after the OBM_ALERT_REQUEST at one second, testing runtime obstacle insertion and alert generation; passes when ARRIVED=true and OB_TOTAL_COLLISIONS=0.

point_cluster_pass

Posts four TRACKED_FEATURE points under the same key to test pObstacleMgr's generated convex-hull path instead of its configured polygon path; passes when ARRIVED=true and OB_TOTAL_COLLISIONS=0.

two_sequential_fail

Places two 8-by-8-meter obstacles in the transit lane at separate points along the route, testing consecutive obstacle encounters; passes when ARRIVED=true, OB_TOTAL_ENCOUNTERS=2, and OB_TOTAL_COLLISIONS=1.

wide_center_fail

Replaces the baseline polygon with a 28-by-28-meter obstacle centered on the route, testing the collision outcome when the obstacle is too wide for this short corridor; passes when ARRIVED=true, OB_TOTAL_ENCOUNTERS=1, and OB_TOTAL_COLLISIONS=1.

avoid_disabled_fail

Starts with an 18-by-16-meter obstacle centered on the route but directs the alert request to DISABLED_ALERT instead of the behavior's OBSTACLE_ALERT update variable, testing the missing behavior update path; passes when ARRIVED=true, OB_TOTAL_ENCOUNTERS=1, and OB_TOTAL_COLLISIONS=1.

no_alert_request_fail

Starts with the same centered obstacle but sends no OBM_ALERT_REQUEST, testing that pObstacleMgr does not publish an alert without a request; passes when ARRIVED=true, OB_TOTAL_ENCOUNTERS=1, and OB_TOTAL_COLLISIONS=1.

Source links

Harness README Mission README