What is RDA?
Resource and Data Automation for ROS 2 (RDA) streamlines the entire ROS data lifecycle—from capture to insight—without writing a single line of code and centrally managed from the Heex Smart-Data SaaS platform.- It imports ROS topics from ROS bags with a single CLI command to automatically generate Data Sources in Heex
- You can then create Triggers with Monitors, Conditions, and Recorders
- Have them deployed automatically to your target systems’ Heex agents
- And start your scenario-based data capture in minutes
Pre-requisites
-
ROS2 Installation: Heex supports the following distributions:
- Galactic (Ubuntu 20.04)
- Humble (Ubuntu 22.04)
- Jazzy (Ubuntu 24.04)
-
Custom Packages: If your environment uses custom ROS packages, Heex needs access to them:
- Agent Mode:
- Add custom build paths to
FILES_TO_SOURCE_IN_HEEX_AGENT_ENV
in the Agent Configuration. - Other option, if you do not intend to upload any Agent and use the entire No-code feature, you may provide the sourcing of your custom messages in the default agent sourcing file
- Add custom build paths to
- SDK Mode: Source all custom builds in the terminal before launching
heexOrchestrator
- Agent Mode:
Deployment Options
Agent Deployment Mode
When running in Agent deployment mode:- RDA runs automatically with standard ROS2 installations (in
/opt/ros/ros2-distribution
) - For custom installations or multiple distributions, follow the ROS configuration guide before packaging the agent
SDK Mode
When running in SDK mode:- Generate the
implementations.json
file as described in the SDK mode documentation - RDA implementations will run automatically once properly configured
How RDA Works
RDA Monitor
The RDA Monitor creates a ROS2 node calledrda_monitor_node
that:
- Subscribes to all signals defined in your Heex Cloud configuration
- Continuously evaluates these signals against your predefined conditions
- Generates Events when conditions are met, triggering data capture workflows
RDA Recorder
The RDARecorder creates a ROS2 node calledrda_recorder_node
that:
- Subscribes to all signals configured for recording in the Heex platform
- Maintains a rolling buffer of each signal’s data based on your specified time ranges
- Automatically clears data outside of the defined buffer ranges to optimize resource usage
- Creates MCAP or DB3 recordings when triggered by Events from the RDAMonitor
- Processes and transmits recordings to Heex Cloud for immediate analysis
Add the GPS position into your events
If you have signals in your ROS2 flow that contain the latitude and the longitude of your system, we have included a way to attach the position of your generate events to your smart data:- On the Heex Platform, on each trigger you want the position to be added, create 2 labels
_RdaPositionLongitude
and_RdaPositionLatitude
that each contain the signal names of the longitude and latitude. Please note that the naming format needs to be/topic/name>subTopic>...>signalName
where signalName is of type float or double.

📝 Note: Each label can contain more than 1 value. If so, we shall test each signal provided, and as soon as a value is found, it shall be taken. This is for cases for example where sometimes the GPS signal is in one topic, and sometimes its in another depending on the system the RDA is running.
-
Each trigger that has the 2 mentionned labels needs to be recording the topic(s) that provide the GPS values. In the example above, the
/topic/name
needs to be recorded. We recommend adding a snapshot recording of the given topic(s).📝 Note: This is merely a temporary solution, this shall evolve soon
support@heex.io
.