Skip to content

Radar pointcloud data pre-processing design#

Overview#

Pipeline#

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

The radar driver publishes RadarScan. The noise filter removes noise. One branch converts the scan to PointCloud2 for low-level obstacle detection. The static points filter uses the ego odometry and sends the dynamic points to radar detection and tracking.SensingRadar deviceCAN, CAN-FD, or EthernetRadar driverRadarScanNoise filterAmplitude, FOV, and rangeRadarScanStatic points filterDoppler velocity and ego motionScan to PointCloud2Amplitude, Doppler as intensity/localization/kinematic_stateOdometryPerceptionLow-level obstacle detectionFor example, ground segmentationRadar detectionand tracking from scansPointCloud2RadarScan (dynamic points)
The radar scan goes through a noise filter, then to a PointCloud2 converter and to a static points filter.

Note

The launch files of autoware_launch do not launch this pipeline, and none of its sensor kits has a radar. No perception package of Autoware Universe reads RadarScan today. The "Radar detection and tracking" box with a dashed border shows the intended user.

Interface#

  • Input
    • Radar data from device
    • Odometry of the ego vehicle (nav_msgs/msg/Odometry.msg)
  • Output
    • Dynamic radar pointcloud (ros-perception/radar_msgs/msg/RadarScan.msg)
    • Noise filtered radar pointcloud (sensor_msgs/msg/PointCloud2.msg)

Note#

  • In the sensing layer, the radar pre-process packages filter noise through the ros-perception/radar_msgs/msg/RadarScan.msg message type with sensor coordinate.
  • To use radar pointcloud data in LiDAR packages, a converter creates sensor_msgs/msg/PointCloud2.msg from ros-perception/radar_msgs/msg/RadarScan.msg.

Reference implementations#

Data message for radars#

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

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.

Basic noise filter#

This package removes pointcloud noise with low amplitude, edge angle, too near pointcloud by threshold. The noise depends on the radar devices and installation location.

Filter to static/dynamic pointcloud#

This package extracts static/dynamic radar pointcloud by using doppler velocity and the ego vehicle odometry. The static radar pointcloud can be used for localization like NDT scan matching, and the dynamic radar pointcloud can be used for dynamic object detection.

Message converter from RadarScan to PointCloud2#

To use radar pointcloud with the existing LiDAR packages, the autoware_radar_scan_to_pointcloud2 package converts ros-perception/radar_msgs/msg/RadarScan.msg to sensor_msgs/msg/PointCloud2.msg. It publishes two point clouds: output/amplitude_pointcloud has the amplitude as intensity, and output/doppler_pointcloud has the doppler velocity as intensity.

LiDAR packageRadar package
messagesensor_msgs/msg/PointCloud2.msgros-perception/radar_msgs/msg/RadarScan.msg
coordinate(x, y, z)(r, θ, φ)
valueintensityamplitude, doppler velocity

For considered use cases,

Appendix#

Discussion#

Radar architecture design is discussed as below.