Skip to content

Radar objects data pre-processing design#

Overview#

Pipeline#

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

radar-objects-sensing

Interface#

  • Input
    • Radar data from device
    • Twist information of ego vehicle motion
  • 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 autoware_auto_perception_msgs/msg/TrackedObjects.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_auto_perception_msgs/msg/DetectedObject with ego vehicle motion compensation and coordinate transform.

Object merger#

This package can merge 2 topics of autoware_auto_perception_msgs/msg/DetectedObject.

This package can merge simply multiple topics of autoware_auto_perception_msgs/msg/DetectedObject. 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>

Appendix#

Discussion#

Radar architecture design is discussed as below.