Telemetry Receiver
The Telemetry Receiver component allows the agent to subscribe to telemetry from another robot.
Please note that in order for other robots' data to be available, there must be both a Telemetry Gateway component configured for one of the agents on the network, and each of the other robots must have a Telemetry Sender component configured to point to the gateway.
Configuration
To use the Telemetry Receiver plugin, your agent will need a section in its agent-settings.json
file which enables the telemetry-receiver
component, as shown below. For more information on how to configure the agent plugins, see Agent Configuration.
...
"components": [
...
{
"enabled": true, // set this to false to disable this plugin
"id": "telemetry-receiver", // the unique identifier for this plugin - don't change this
"settings": {
"address": "192.168.0.10:8080",
"logLevel": 1 // the log level for this component. Choose a range between 1 (least verbose) to 6 (most verbose),
}
},
...
]
The telemetry-receiver plugin accepts the following configuration parameters:
Name | Description | Default | Unit |
---|---|---|---|
enabled | Whether to enable the telemetry-receiver plugin or not. | false | |
name | How this instance of the telemetry-receiver plugin should be named. | "telemetry-receiver" | |
logLevel | The logging verbosity: 1 - very quiet, 6 - very talkative. | 4 | |
address | Optional. The ip:port of the telemetry gateway in the network. If not used, the agent uses default DroneDeploy's cloud telemetry broker. |
To subscribe to telemetry from another robot, you can use the Automate Subscribe nodes and provide RocosURI in the format of <CALLSIGN>.<PROJECT-ID>/<COMPONENT>/path/to/source
. For example, the RocosURI: robot-1.project-1/rocos/agent/proc
defines a subscription to the topic /rocos/agent/proc
for the callsign:robot-1
in the project:project-1
. For more information on the Automate feature, see these docs on Automate.
Snapshot below shows an example of this subscription flow:
When defining the sources you want to capture, you may also define their TTL, Deadline and whether you want them to be resent if they fail (retry). These are described below.
These parameters can be appended to the sources as a query string. For example:
/rosbridge/odom?int=1s&dl=300ms&ttl=2s&dqp="FIFO"
will instruct the agent to:
Queue a message for sending every 1 second, sending the oldest queued messages first.
Try for 300 milliseconds to send the message, then abandon the attempt and try again; however if a message gets to be 2 seconds old, then just abandon it entirely and move on to the next.
The units of time allowed are summarized below:
Abbreviation / Unit | Example |
---|---|
h - Hour | 2h |
m - Minute | 34m |
s - Second | 15s |
ms - Millisecond | 800ms |
us - Microsecond | 400us |
ns - Nanosecond | 80ns |