Skip to content

RadarScan intake adapter

Calibrex accepts the standard radar_msgs point-cloud message through the ROS-independent bag adapters. The exact supported types are:

Bag Type Pinned definition License
ROS 2 / CDR radar_msgs/msg/RadarScan (0.2.2) radar_msgs ROS 2 commit 47d2f26906ef38fa15ada352aea6b5aad547781d Apache-2.0
ROS 1 / rosmsg radar_msgs/RadarScan (0.2.2 Noetic) radar_msgs ROS 1 commit bfd6d5487405500957dfa1b39a7e513ec172536a Apache-2.0

The message is a stamped sequence of RadarReturn values. Each return is exactly five float32 fields, in this order: range (m), azimuth (rad), elevation (rad), doppler_velocity (m/s), and amplitude (dB). Calibrex normalizes these into typed RadarReturn and RadarScanMessage records and retains the source type/commit/license in the message provenance.

Both decoders are bounded and fail closed. They reject truncated or oversized payloads, invalid sequence counts, non-finite values, negative range, out-of-domain spherical angles, and trailing bytes. Exact duplicate returns are reported as a diagnostic because the upstream message has no return ID. RadarScanMessage.to_xyz() provides a pure-Python spherical-to-sensor-frame conversion; it does not imply a vehicle-frame transform.

Capture readiness

calibrex capture inspect marks an exact official type supported only after at least one sampled payload decodes successfully. A malformed sample becomes unknown; a vendor-specific radar type remains unsupported and recommends an adapter. The manifest records sampled return count, range bounds, angular spans, Doppler span, duplicate count, frame, and a bounded diversity status. Empty or weak required radar evidence blocks intake. The same evidence on an optional radar stream produces a warning, so declared profiles remain explicit about what is and is not gating.

Frame IDs must remain stable across sampled messages. A conflict is retained as evidence and blocks a required stream until the recording or frame binding is corrected. A missing frame remains a warning under the existing readiness policy.

Autoware consumes radar_msgs/msg/RadarScan as radar pointcloud data. See the Autoware radar data-message reference, the radar pointcloud preprocessing design, and the radar_scan_to_pointcloud2 converter. Those documents describe the sensor-frame message and conversion to sensor_msgs/msg/PointCloud2; they do not replace Calibrex's frame-binding or calibration-adoption gates.