Skip to content

Commit

Permalink
Add ROS 2 Record & Replay and Fast DDS Spy descriptions (#146)
Browse files Browse the repository at this point in the history
* Add ROS 2 Record & Replay description

Signed-off-by: Raul Sanchez-Mateos <[email protected]>

* Add Fast DDS Spy description

Signed-off-by: Raul Sanchez-Mateos <[email protected]>

* Index new tools description

Signed-off-by: Raul Sanchez-Mateos <[email protected]>

* Add record & replay and spy to developer tools list

Signed-off-by: Raul Sanchez-Mateos <[email protected]>

* Apply grammar suggestions

Signed-off-by: Raul Sanchez-Mateos <[email protected]>

---------

Signed-off-by: Raul Sanchez-Mateos <[email protected]>
  • Loading branch information
rsanchez15 authored Jul 25, 2023
1 parent 5f90615 commit 450536a
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 0 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions docs/rst/introduction/developer_tools.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,17 @@ Developer Tools
tools/backend.rst
tools/shapes_demo.rst
tools/router.rst
tools/recordreplay.rst
tools/fastddsspy.rst
tools/webots.rst

- :ref:`ROS 2 QoS Profiles Manager <vulcanexus_qos_profiles_manager>`: tool suite to generate XML configuration files for Vulcanexus middleware Fast DDS.
- :ref:`ROS 2 Monitor <vulcanexus_monitor>`: graphical desktop application to monitor *ROS 2* communications.
- :ref:`Fast DDS Statistics Backend <fastdds_statistics_backend>`: *ROS 2 Monitor*'s backend. Can be leveraged with other monitoring frontend applications (e.g. :ref:`Prometheus <tutorials_tools_prometheus>`).
- :ref:`ROS 2 Shapes Demo <vulcanexus_shapes_demo>`: first demo application to understand the most used *ROS 2* Quality of Service (QoS) and test DDS and *ROS 2* communication.
- :ref:`ROS 2 Router <vulcanexus_router>`: end-user software application enabling the connection of distributed *ROS 2* environments.
- :ref:`ROS 2 Record & Replay <vulcanexus_recordreplay>`: end-user software applications that efficiently save messages published in a *ROS 2* environment and playback these messages in the order in which they were recorded.
- :ref:`Fast DDS Spy <vulcanexus_fastddsspy>`: CLI interactive tool that allows the introspection of a *ROS 2* environment in a human readable format.
- :ref:`Webots <webots>`: open-source three-dimensional mobile robot simulator.

.. note::
Expand Down
28 changes: 28 additions & 0 deletions docs/rst/introduction/tools/fastddsspy.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
.. _vulcanexus_fastddsspy:

Fast DDS Spy
============

*Fast DDS Spy* is CLI interactive tool that allows the introspection of a ROS 2 network in human readable format.
It is possible to query the network about the Participants connected, their endpoints (Publishers and Subscriptions) and the topics they communicate in.
It is also possible to see the user data sent through network topics in a schematic format in run time.

Overview
--------

*Fast DDS Spy* is a tool that captures DDS packages in the network and maintain a local database that is accessible from a interactive CLI.
*Fast DDS Spy* responds to user commands introduced by text and prints to ``stdout`` the information requested.
This tool has several commands to interact with it, allowing the user to get information about the status of the network.
It supports listing of existing topics, Participants, Publishers, and Subscriptions, and printing data in real time in a human readable format.

.. figure:: /rst/figures/intro/tools/fastddsspy/fastddsspy.png
:align: center

*Fast DDS Spy* is easily configurable and installed with a default setup, so that DDS topics, data types and entities are automatically discovered without the need to specify the types of data.
This is because this tool leverages the DynamicTypes functionality of `eProsima Fast DDS <https://fast-dds.docs.eprosima.com>`_, the C++ implementation of the `DDS (Data Distribution Service) Specification <https://www.omg.org/spec/DDS/About-DDS/>`_ defined by the `Object Management Group (OMG) <https://www.omg.org/>`_.

Next Steps
----------

Visit `eProsima Fast DDS Spy Documentation <https://fast-dds-spy.readthedocs.io/en/latest>`_ for more information on how to configure and use *Fast DDS Spy*.
Also feel free to review :ref:`Vulcanexus Tools Tutorials <tutorials_tools_tools_tutorials>` to discover the possibilities that this tool has to offer in different scenarios.
37 changes: 37 additions & 0 deletions docs/rst/introduction/tools/recordreplay.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
.. _vulcanexus_recordreplay:

ROS 2 Record & Replay
=====================

*ROS 2 Record & Replay* (a.k.a. *DDS Record & Replay*) is an end-user software application that efficiently saves ROS 2 messages published into a DDS environment in a MCAP format database.
Thus, the exact playback of the recorded network events is possible as the data is linked to the timestamp at which the original data was published.

*ROS 2 Record & Replay* is easily configurable and installed with a default setup, so that DDS topics, data types and entities are automatically discovered without the need to specify the types of data recorded.
This is because the recording tool leverages the DynamicTypes functionality of `eProsima Fast DDS <https://fast-dds.docs.eprosima.com>`_, the C++ implementation of the `DDS (Data Distribution Service) Specification <https://www.omg.org/spec/DDS/About-DDS/>`_ defined by the `Object Management Group (OMG) <https://www.omg.org/>`_.

Overview
--------

*ROS 2 Record & Replay* includes the following tools:

* **ROS 2 Recorder tool**.
The main functionality of this tool is to save the data in a `MCAP <https://mcap.dev/>`_ database.
The database contains the records of the publication timestamp of the data, the serialized data, and the definition of the data serialization type and format.
The output MCAP file can be read with any user tool compatible with MCAP file reading since it contains all the necessary information for reading and reproducing the data.

.. figure:: /rst/figures/intro/tools/recordreplay/ddsrecord_overview.png
:align: center

* **ROS 2 Replay tool**.
This application allows to reproduce DDS traffic recorded with a *ROS 2 Recorder*.
A user can specify which messages to replay by either setting a time range (begin/end times) out of which messages will be discarded, or directly by blocking/whitelisting a set of topics of interest.
It is also possible to choose a different playback rate, as well as to use topic QoS different to the ones recorded.

.. figure:: /rst/figures/intro/tools/recordreplay/ddsreplay_overview.png
:align: center

Next Steps
----------

Visit `eProsima DDS Record & Replay Documentation <https://dds-recorder.readthedocs.io/en/latest>`_ for more information on how to configure and deploy a *ROS 2 Record & Replay* instance.
Also feel free to review :ref:`Vulcanexus Tools Tutorials <tutorials_tools_tools_tutorials>` to discover the possibilities that this tool has to offer in different scenarios.

0 comments on commit 450536a

Please sign in to comment.