Skip to content

Radar objects data pre-processing design#

Overview#

Pipeline#

This diagram describes the pre-process pipeline for radar objects.

For each radar, the driver publishes RadarTracks, the noise filter removes noise tracks, and the message converter makes DetectedObjects in base_link with the ego odometry. The object merger merges all radars and sends the objects to perception.SensingPipeline for each radarRadar deviceCAN or EthernetRadar driverRadarTracksNoise filterY-axis velocity thresholdRadarTracksMessage converterSensor frame to base_link/localization/kinematic_stateOdometryOther radarsThe same pipelineDetectedObjectsDetectedObjectsObject mergerMerges the DetectedObjects of all radars/sensing/radar/detected_objectsRadar detection and trackingPerception
Each radar has a noise filter and a message converter. The object merger merges all radars for perception.

The perception launch files read the merged radar objects from /sensing/radar/detected_objects by default. The radar_tracks_postprocessor.launch.xml file of autoware_sensing_launch launches the noise filter and the message converter for one radar. None of the sensor kits of autoware_launch has a radar.

Interface#

  • Input
    • Radar data from device
    • Odometry of the ego vehicle (nav_msgs/msg/Odometry.msg)
  • Output
    • Merged radar objects information

Note#

  • The radar pre-process package filters noise through the ros-perception/radar_msgs/msg/RadarTrack.msg message type with sensor coordinate.
  • It is recommended to change the coordinate system from each sensor to base_link with message converter.
  • If there are multiple radar objects, the object merger package concatenates these objects.

Input#

Autoware uses radar objects data type as radar_msgs/msg/RadarTracks.msg. In detail, please see Data message for radars.

Reference implementations#

Device driver for radars#

Autoware supports ros-perception/radar_msgs/msg/RadarScan.msg and ros-perception/radar_msgs/msg/RadarTracks.msg for radar drivers.

In detail, please see Device driver for radars.

Noise filter#

Radar can detect x-axis velocity as doppler velocity, but cannot detect y-axis velocity. Some radar can estimate y-axis velocity inside the device, but it sometimes lack precision. This package treats these objects as noise by y-axis threshold filter.

Message converter#

This package converts from radar_msgs/msg/RadarTracks into autoware_perception_msgs/msg/DetectedObjects and autoware_perception_msgs/msg/TrackedObjects. It transforms the objects to the new_frame_id frame (base_link in autoware_sensing_launch). It can also compensate the ego vehicle motion with the odometry (use_twist_compensation and use_twist_yaw_compensation, both false in autoware_sensing_launch).

Object merger#

This package can merge 2 topics of autoware_perception_msgs/msg/DetectedObjects.

This package can merge simply multiple topics of autoware_perception_msgs/msg/DetectedObjects. Different from object_merger, this package doesn't use association algorithm and can merge with low calculation cost.

If a vehicle has 1 radar, the topic relay tool in topic_tools can be used. Example is as below.

<launch>
  <group>
    <push-ros-namespace namespace="radar"/>
    <group>
      <push-ros-namespace namespace="front_center"/>
      <include file="$(find-pkg-share example_launch)/launch/ars408.launch.xml">
        <arg name="interface" value="can0" />
      </include>
    </group>
    <node pkg="topic_tools" exec="relay" name="radar_relay" output="log" args="front_center/detected_objects detected_objects"/>
  </group>
</launch>

Radar objects adapter#

Some radar drivers also publish autoware_sensing_msgs/msg/RadarObjects. For example, the Nebula driver of the Continental ARS548 publishes RadarScan, RadarTracks, and RadarObjects. The autoware_radar_objects_adapter package converts RadarObjects into autoware_perception_msgs/msg/DetectedObjects and autoware_perception_msgs/msg/TrackedObjects without filtering. It also reads autoware_sensing_msgs/msg/RadarInfo and can remap the classification labels. For the message definitions, see Data message for radars.

Appendix#

Discussion#

Radar architecture design is discussed as below.