Skip to content

Radar Service

calibrex radar-service is a ROS-independent, read-only v0.1 admission boundary for replacing an automotive radar serial or mount. It does not run a solver and does not mutate a lifecycle registry, Autoware package, or sensor kit. It binds the old/new radar identities, a candidate raw-replay result, captured radar_msgs/RadarScan evidence, and cross-modal radar--LiDAR/camera evaluation artifacts by SHA-256.

Gates

An evaluation is READY only when every declared digest and self-digest is valid, the candidate replay is PASS/ADOPT, replay holdout, known_bad, and observability gates are PASS, all required evidence roles are present, protocol/capture bindings agree, metric units and splits are valid, and every changed component is in mutable_components. Otherwise it emits HOLD with actionable reasons.

The plan makes both conventions explicit: doppler_sign_convention and frame_convention. Evidence that states either convention must match the plan. The metric budgets cover absolute range bias (m), absolute azimuth bias (deg), Doppler scale error (ratio), time offset (s), radar--LiDAR association RMSE (m), minimum FOV overlap ratio, minimum known-bad delta, and minimum observability rank.

Lifecycle and Autoware references are input-only digest refs. The service never applies them. Relative refs are rebased when a plan is written to a different output directory, so the emitted plan remains portable.

CLI

calibrex radar-service plan definition.yaml \
  --output /tmp/radar-service/plan/plan.yaml --json
calibrex radar-service evaluate /tmp/radar-service/plan/plan.yaml \
  --output /tmp/radar-service/evaluation/evaluation.yaml --json
calibrex radar-service verify /tmp/radar-service/evaluation/evaluation.yaml \
  --plan /tmp/radar-service/plan/plan.yaml --json

The self-contained synthetic fixture is intentionally synthetic, nonphysical, and makes no accuracy claim. It uses the existing ROS-independent RadarScan adapter contract; it is only a schema/gate smoke fixture.