Skip to main content

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:

NameDescriptionDefaultUnit
enabledWhether to enable the telemetry-receiver plugin or not.false
nameHow this instance of the telemetry-receiver plugin should be named."telemetry-receiver"
logLevelThe logging verbosity: 1 - very quiet, 6 - very talkative.4
addressOptional. 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 / UnitExample
h - Hour2h
m - Minute34m
s - Second15s
ms - Millisecond800ms
us - Microsecond400us
ns - Nanosecond80ns