third-party/realdds/doc/use-cases.md
realdds is a library that ease the control of a realsense camera over network using librealsense API. realdds provides "off the shelf" types and logic that makes it easier and faster to write applications that control a camera over the network. It is a work in progress aimed at, ultimately, enabling remote users to do with the camera everything a user can do with a USB connected camera, and more (multiple clients for frames, etc...).
realdds uses DDS topics to send and receive information to/from the camera. See DDS-ICD
Users can use realdds stand-alone, or use librealsense with the cmake BUILD_WITH_DDS flag on, to use DDS devices seemlessly as any other librealsense device.
The server or camera is either a physical device with built in capabilities supporting these use cases, or a dedicated software operating some other device, e.g., Intel RealSense D455, giving it the required capabilities.
An example software tool like this is the dds-server
The client is the end user of the camera. The user consumes the data generated by the camera. The user can activate or stop camera data streaming and control various options like camera exposure time or brightness.
The server publishes a connected device existence to all interested users in the network. Using the discovery data, the user can have a complete knowledge of the camera and it's abilities.
Topics - For this use case, the device-info and notification topics are used. //TODO - Topics section needed?
Preconditions
Trigger - A new Intel RealSense device is connected locally (e.g, USB) and detected by the server.
Successful Result - The user will receive all needed data to interact with the device
Main Scenario
realsense/D435I/112322073677/notification).Variations
Exceptions None.
Constraints
The camera is disconnected and no longer available to the users.
Topics - For this use case, no realdds topic is sent, only underlying DDS topics.
Preconditions
Intel RealSense device is connected to the server.Trigger - Intel RealSense device is disconnected from the server.
Successful Result - The Server and all users have released the resources related to the camera.
Main Scenario
Variations None.
Exceptions None.
Constraints None.
The user requests to receive streams of data (images, IMU, etc...). The server starts sending the data to it.
Topics - control topic is used by the user, appropriate images are sent back by the server.
Preconditions
Trigger - The user triggers this use-case upon demand.
Successful Result - The user receives image messages at the desired frame rates.
Main Scenario
Variations
None.
Exceptions
Constraints None.
The user requests to stop sending data from some streams (images, IMU, etc...). The server stops sending the data.
Topics - control topic is used by the user.
Preconditions
Trigger - The user triggers this use-case upon demand.
Successful Result - The server stops publishing image messages of the requested profiles.
Main Scenario
Variations None.
Exceptions
Constraints None.
Notes
rs-dds-adapter tool), when stoping a stream all streams in the containing sensor will be stopped.
realdds does not use a "sensor" concept to start or stop streams, it is a librealsense limitation.
For example, if "Infrared 1" and "Infrared 2" streams of the "Stereo Module" are both streaming and one of them is requested to stop, both will stop streaming.The user requests to current value of a supported option, e.g., color stream's gain or depth stream's depth units value.
Topics - control topic is used by the user. notification topic is used by the server.
Preconditions
Trigger - The user triggers this use-case upon demand.
Successful Result - The user have knowledge of the option value.
Main Scenario
Variations None.
Exceptions
Constraints None.
The user requests to current value of a supported option, e.g., color stream's gain or depth stream's depth units value.
Topics - control topic is used by the user. notification topic is used by the server.
Preconditions
Trigger - The user triggers this use-case upon demand.
Successful Result - The user have knowledge of the option value.
Main Scenario
Variations None.
Exceptions
Constraints None.
//TODO - Is needed? Is different from any other command? possibly no reply...
//TODO - Should be supported over network? Using HW monitor commands?
//TODO - Is needed?
Short description
Topics -
Preconditions 1.
Trigger -
Successful Result -
Main Scenario 1. 2.
Variations 1.
Exceptions 1.
Constraints