DDS project

This is an Implementation of a distributed system using DDS (Data Distribution Service) with multiple components, each publishing or subscribing to data based on specific logic.


a person typing on a laptop next to a phonea person typing on a laptop next to a phone
Project Details
code

Project Gallery

The image shows the architecture of a Data Distribution Service (DDS)-based system, where different components communicate through a shared DDS data bus. Here is a breakdown of the system:

  1. Camera:

    • Sends data (represented by the orange arrow) to the DDS data bus, which transmits its messages to other components like the dashboard. The data includes the real-time state, sent at a frequency of 10 Hz (every 0.1 seconds).

  2. Temperature Sensor 1:

    • Publishes temperature readings (blue arrow) to the DDS bus at a frequency of 1 Hz (every second), with random values between 10-60°C. The data can be consumed by actuators or the dashboard.

  3. Temperature Sensor 2:

    • Sends more frequent temperature data (10 Hz or every 0.1 seconds) within a range of 0-50°C. The data follows the same path through the DDS bus.

  4. Start/Stop Button:

    • The button sends status commands (represented by the red arrow) to the DDS bus, controlling whether the system starts or stops. It alternates between sending a stop command every 20 seconds and a start command 5 seconds after stopping.

  5. Actuator 1 & Actuator 2:

    • Both actuators receive data (green arrows) and change their operational state accordingly (e.g., working, degraded, or stopped). Their status is published back to the DDS bus at 1 Hz, which can be consumed by the dashboard and other components.

  6. Dashboard:

    • The dashboard collects and displays the system status, including data from the camera, actuators, and temperature sensors. It updates every 5 seconds, showing the last 10 extreme temperature readings and the last 10 actuator statuses.

The DDS Data Bus is the central communication channel through which all components send and receive messages, enabling real-time interaction across the system.