mmWave radar (TI IWR series, Ainstein US-D1, etc.) gives you direct body-frame velocity via Doppler: not derived from position differences, not affected by wheel slip, works in rain and mud. For outdoor robots on loose or slippery terrain this is more reliable than wheel encoders.
The idea is a radar.topic input that fuses a Doppler velocity measurement the same way the encoder path works today. The message type would be geometry_msgs/TwistWithCovariance so it works with any radar driver that publishes in that format (most do, including the TI mmWave ROS 2 driver).
fusioncore:
ros__parameters:
radar.topic: "/radar/velocity" # leave empty to disable
radar.vel_noise: 0.05 # m/s
radar.yaw_noise: 0.0 # rad/s: set if radar also gives angular rate
This slots into the existing sensor health and outlier rejection infrastructure the same way the encoder does. When radar is present it can either supplement or replace wheel odometry depending on the platform.
robot_localization has nothing like this. nav2 opened an issue about radar support in 2020 and never answered where it fits. It fits here, in the localization layer, as a velocity measurement.
Low priority for typical DIY ground robots but meaningful for outdoor platforms on variable terrain.
mmWave radar (TI IWR series, Ainstein US-D1, etc.) gives you direct body-frame velocity via Doppler: not derived from position differences, not affected by wheel slip, works in rain and mud. For outdoor robots on loose or slippery terrain this is more reliable than wheel encoders.
The idea is a
radar.topicinput that fuses a Doppler velocity measurement the same way the encoder path works today. The message type would begeometry_msgs/TwistWithCovarianceso it works with any radar driver that publishes in that format (most do, including the TI mmWave ROS 2 driver).This slots into the existing sensor health and outlier rejection infrastructure the same way the encoder does. When radar is present it can either supplement or replace wheel odometry depending on the platform.
robot_localization has nothing like this. nav2 opened an issue about radar support in 2020 and never answered where it fits. It fits here, in the localization layer, as a velocity measurement.
Low priority for typical DIY ground robots but meaningful for outdoor platforms on variable terrain.