Docker Installation and Usage

To run eProsima DDS Suite container, Docker is required. From a terminal run

sudo apt install docker.io

To load this image into your Docker repository, from a terminal run

docker load -i ubuntu-eprosima-dds-suite:<version>.tar

eProsima DDS Suite Docker container can be run as follows:

xhost local:root
docker run \
    -it \
    --privileged \
    -e DISPLAY=$DISPLAY \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    ubuntu-eprosima-dds-suite:<version>

Each feature can be run from the resulting Bash Shell.

Fast DDS Examples

Included in this Docker container is a set of binary examples that showcase several functionalities of the Fast DDS library. These examples’ path can be accessed from a terminal by typing

goToExamples

This will change the working directory to a location containing several examples, both for DDS and RTPS. Below are the steps to launch two such examples.

Hello World Example

This is a minimal example that will perform a Publisher/Subscriber match and start sending samples.

goToExamples
cd HelloWorldExample/bin
tmux new-session \
    "./HelloWorldExample publisher 0 1000" \; \
    split-window "./HelloWorldExample subscriber" \; \
    select-layout even-vertical

This example is not constrained to the current image instance, meaning that it is possible to run several instances of this container to check the communication between them. From one terminal you could launch an image and, on the presented shell, run:

goToExamples
cd HelloWorldExample/bin
./HelloWorldExample publisher

And then from another terminal with another instance run the following:

goToExamples
cd HelloWorldExample/bin
./HelloWorldExample subscriber

Benchmark Example

This example creates either a Publisher or a Subscriber and, after a successful match, starts sending samples. After a few seconds the process that launched the Publisher will show a report with the number of samples transmitted.

On the subscriber side, run:

goToExamples
cd Benchmark/bin
./Benchmark subscriber udp

On the publisher side, run:

goToExamples
cd Benchmark/bin
./Benchmark publisher udp

Fast DDS QoS Profiles Manager

Fast DDS QoS Profiles Manager CLI can be directly called in the Docker container. Please, run the following command to display the CLI usage:

fastddsqosprof -h

Fast DDS QoS Profiles Manager CLI User Manual can be located on the Fast DDS QoS Profiles Manager documentation.

Shapes Demo

To launch the Shapes Demo, from a terminal run:

ShapesDemo

eProsima Shapes Demo usage information can be found on the Shapes Demo documentation.

Fast DDS Monitor

To launch the Fast DDS Monitor, from a terminal run:

fastdds_monitor

eProsima Fast DDS Monitor User Manual can be located on the Fast DDS Monitor documentation.

DDS Router

In this example the DDS Router is configured to communicate a publisher and subscriber running in different DDS Domains.

Run the following command to create the DDS Router yaml configuration file (/config.yml).

echo "version: v2.0
participants:
  - name: simple_dds_participant_0
    kind: local
    domain: 0
  - name: simple_dds_participant_1
    kind: local
    domain: 1" > /config.yml

Then execute the following command to run the Publisher in Domain 0, the Subscriber in Domain 1, and the DDS Router communicating both Domains.

goToExamples
cd DDS/BasicConfigurationExample/bin
tmux new-session \
    "ddsrouter --config-path /config.yml" \; \
    split-window -h "./BasicConfigurationExample publisher --domain 0 --interval 1000 --transport udp" \; \
    split-window -v "./BasicConfigurationExample subscriber --domain 1 --transport udp"

eProsima Micro XRCE-DDS

To launch the Micro XRCE-DDS Agent, from a terminal run:

MicroXRCEAgent udp4 -p 2019 -r /root/agent.refs &

With the Agent started, you can now run the Shapes Demo application:

ShapesDemo &

And launch the ShapeDemoClient, a demo client used to send data to Shapes Demo via the Micro XRCE-DDS Agent.

ShapeDemoClient --udp4 127.0.0.1 2019

Inside that client, you can now follow the steps detailed in the eProsima XRCE-DDS Shapes Demo page to send data to Shapes Demo.

PlotJuggler eProsima Edition

To launch the PlotJuggler eProsima Edition, from a terminal run:

$ plotjuggler

eProsima PlotJuggler eProsima Edition usage information can be found on the PlotJuggler eProsima Edition User Manual.

DDS Record & Replay

DDS Record & Replay is composed of two different tools: DDS Recorder and DDS Replayer. DDS Recorder allows to record DDS traffic in a specific domain, storing all data in an MCAP file. To launch DDS Recorder, from a terminal run:

$ ddsrecorder

Recorded data can then be inspected through visualization applications such as Foxglove Studio. It is also possible to play data back in the same domain or a different one by leveraging DDS Replayer. To launch DDS Replayer, from a terminal run:

$ ddsreplayer -i my_data.mcap

For more information on how to configure and use DDS Record & Replay, please refer to DDS Record & Replay documentation website.

Fast DDS Spy

To launch Fast DDS Spy, from a terminal run:

$ fastddsspy

Fast DDS Spy usage information can be found on the Fast DDS Spy User Manual.