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
See it in action:

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
    • SDK Mode: Source all custom builds in the terminal before launching heexOrchestrator

Deployment Options

Agent Deployment Mode

When running in Agent deployment mode:
  1. RDA runs automatically with standard ROS2 installations (in /opt/ros/ros2-distribution)
  2. For custom installations or multiple distributions, follow the ROS configuration guide before packaging the agent

SDK Mode

When running in SDK mode:
  1. Generate the implementations.json file as described in the SDK mode documentation
  2. RDA implementations will run automatically once properly configured

How RDA Works

RDA Monitor

The RDA Monitor creates a ROS2 node called rda_monitor_node that:
  1. Subscribes to all signals defined in your Heex Cloud configuration
  2. Continuously evaluates these signals against your predefined conditions
  3. Generates Events when conditions are met, triggering data capture workflows

RDA Recorder

The RDARecorder creates a ROS2 node called rda_recorder_node that:
  1. Subscribes to all signals configured for recording in the Heex platform
  2. Maintains a rolling buffer of each signal’s data based on your specified time ranges
  3. Automatically clears data outside of the defined buffer ranges to optimize resource usage
  4. Creates MCAP or DB3 recordings when triggered by Events from the RDAMonitor
  5. 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.
rda_position_bales
📝 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
Need help getting started? Check out our Quick Start Guide or contact our support team at support@heex.io.