Collection of ROS-based drivers, tools, preprocessing algorithms and visualization nodes for radar sensors used at our institute TAS.
crossing_with_egocompensated_doppler.mp4
A crossing scenario in RViz with ego-compensated Doppler visualization (dynamic detections surrounded by color-coded bubbles).
This repository contains only sensor drivers for smartmicro (SMS) so far:
- supporting UMRR and DRVEGRD
- automatic switching to legacy parsers of outdated protocol versions; simultaneous operation of radars with different firmwares
This collection offers the following features:
- Driver for CAN and BroadR-Reach network
- Real-time sensor configurability (Data integration)
- Graphical configuration tool for multiple sensors in the network
- Dynamic query of sensors in the sensor's default IP range 192.168.11.x - no manual configuration needed
- Driver-side publication of available sensors and their detected radar type
- Message definitions for generic detection-based radar sensors
- Visualization nodes, which also visualize the radial-speed measurement (opt. ego-motion compensated with buffered time synchronization)
- Support for the DRVEGRD alive (discovery) service
This collection has been developed since 2020, tested in multiple hardware setups and used in closed-loop applications. It is based on C++, optimized for low CPU usage and direct measurement data access.
The current smartmicro driver/configurator stack supports mixed operation of different smartmicro radar generations in one network:
- legacy UMRR devices
- newer DRVEGRD devices
The repository currently contains the following main packages:
driver/smartmicro/smartmicro_driver: smartmicro driver for CAN and Ethernetdriver/smartmicro/smartmicro_configurator: Qt-based smartmicro configuration GUImessages/radar_msgs: generic radar detection messagesvisualization/radar_marker: RViz marker visualizationvisualization/radar_pointcloud: per-sensor and accumulated point-cloud visualizationlaunch/radar_launch: example launch filesdocumentation: archived protocol documentation used during development and migration
- librosqt
- ethernet_bridge (for BroadR-Reach- or network-based drivers)
Depending on your workspace setup, you may also need the usual ROS Noetic build dependencies for Qt, message generation and visualization.
- just install dependencies and compile
- see launch file for example startup
All packages build for both ROS 1 (catkin) and ROS 2 (ament), selected at build time via $ROS_VERSION from a single source tree; the ROS 1 nodes keep the same node and executable names. The Qt/librosqt configuration GUI (smartmicro_configurator) remains ROS 1-only.
The repository contains a simple demo launch file for a live smartmicro Ethernet setup:
# ROS 1
roslaunch radar_launch smartmicro_ethernet.launch
# ROS 2 (without the ROS 1-only configurator)
ros2 launch radar_launch smartmicro_ethernet.launch.xmlThe demo launch starts:
- the measurement Ethernet bridge on UDP port
55555 - the DRVEGRD alive bridge on UDP multicast
239.144.0.0:60000 - the smartmicro driver
- the smartmicro configurator
- marker visualization
- point cloud visualization
Important ROS topics in the demo setup are:
/sensor/radar/smartmicro/detections/sensor/radar/smartmicro/sensors/sensor/radar/smartmicro/instructions/request/sensor/radar/smartmicro/instructions/response
The sensors topic provides the currently available smartmicro sensors together with their detected radar type and is used by the configurator for sensor discovery and GUI switching between UMRR and DRVEGRD controls.
Notes:
- The repository currently documents and implements only smartmicro-related drivers.
- Some newer smartmicro firmware/protocol details were integrated pragmatically from real sensor behavior in addition to vendor documentation.
- The
documentationfolder contains old and new protocol references that were used during the migration to newer smartmicro devices.
Configuration tool:
Detection accumulation with egomotion-compensated radial speed channel: