Skip to content

autoware_radar_objects_adapter#

Purpose#

This package converts autoware_sensing_msgs::msg::RadarObjects into autoware_perception_msgs::msg::DetectedObjects and autoware_perception_msgs::msg::TrackedObjects, acting as a simple integration of radars into the perception pipeline.

RadarObjectsAdapter#

A node that converts radar objects from the sensing definition into a perception friendly format with no filtering involved.

What the input is expected to be#

The node converts the message format; it does not transform coordinates, compensate the ego motion, or synchronize anything. It therefore expects the radar driver to publish RadarObjects in the form the perception pipeline uses:

  • Positions, orientations, sizes and their covariances are expressed in the frame named in header.frame_id, which is the frame the output objects are published in (typically base_link).
  • Velocities and accelerations are absolute (ground-relative) and expressed in that same frame, as the driver reports them; the node rotates them by the object's orientation so that the output twist and acceleration are expressed in the object's own frame, as Autoware's object messages require. The absolute_dynamics flag of RadarInfo is not checked.
  • The RadarInfo message declares the object fields the radar provides. The following fields are required, and objects are dropped until a RadarInfo that declares all of them has arrived: existence_probability, position_x, position_y, velocity_x, velocity_y, acceleration_x, acceleration_y, orientation. The first RadarInfo that declares them fixes what the radar provides; later RadarInfo messages are ignored.
  • Fields the RadarInfo does not declare are filled from the default_* parameters: position_z, velocity_z, acceleration_z, size_x, size_y, size_z. The yaw variances of the pose and the twist are set only when orientation_std and orientation_rate_std are declared.

Parameter: classification_remap#

This parameter allows remapping of classification labels from autoware_sensing_msgs::msg::RadarClassification to autoware_perception_msgs::msg::ObjectClassification. It should be provided as a flat list of strings, where each pair of strings represents an input label and the corresponding output label.

For example, the current default configuration remaps MOTORCYCLE and BICYCLE from radar classification to CAR in the perception classification, while keeping other labels unchanged.

The probability of each radar classification is treated as an independent confidence for that label, not as a share of a distribution, and is copied as it is. Consequently, if multiple radar labels are remapped to the same perception label, multiple entries with that label and their own probabilities appear in the output; the probabilities are not merged. This does not violate any logic in Autoware but may be worth monitoring.

Inputs / Outputs#

Input#

Name Type Description
~/input/objects autoware_sensing_msgs::msg::RadarObjects Input radar objects as defined in sensing.
~/input/radar_info autoware_sensing_msgs::msg::RadarInfo Input radar info.

Output#

Name Type Description
~/output/detections autoware_perception_msgs::msg::DetectedObjects Output radar objects as detections.
~/output/tracks autoware_perception_msgs::msg::TrackedObjects Output radar objects as tracks, keeping the radar's object ids (made unique per input topic as UUIDs).

Parameters#

Name Type Description Default Range
default_position_z float The default z-coordinate in meters of the position of radar objects in the case the radar does not provide it. 0.0 N/A
default_velocity_z float The default z-coordinate in meters per second of the velocity of radar objects in the case the radar does not provide it. 0.0 N/A
default_acceleration_z float The default z-coordinate in meters per squared second of the acceleration of radar objects in the case the radar does not provide it. 0.0 N/A
default_size_x float The default x-coordinate in meters of the size of radar objects in the case the radar does not provide it. 5.0 N/A
default_size_y float The default y-coordinate in meters of the size of radar objects in the case the radar does not provide it. 2.0 N/A
default_size_z float The default z-coordinate in meters of the size of radar objects in the case the radar does not provide it. 2.0 N/A
classification_remap.UNKNOWN string Radar class to map to UNKNOWN label. UNKNOWN N/A
classification_remap.CAR string Radar class to map to CAR label. CAR N/A
classification_remap.TRUCK string Radar class to map to TRUCK label. TRUCK N/A
classification_remap.MOTORCYCLE string Radar tends to misclassify far cars as MOTORCYCLE; default=CAR CAR N/A
classification_remap.BICYCLE string Radar tends to misclassify far cars as BICYCLE; default=CAR CAR N/A
classification_remap.PEDESTRIAN string Radar class to map to PEDESTRIAN label. PEDESTRIAN N/A
classification_remap.ANIMAL string Radar class to map to ANIMAL label. ANIMAL N/A
classification_remap.HAZARD string HAZARD is not a valid Perception label; fallback=UNKNOWN UNKNOWN N/A