Radar objects data pre-processing design#
Overview#
Pipeline#
This diagram describes the pre-process pipeline for radar objects.
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.