Telemetry
Ark can transmit telemetry to offboard services (the catalog) periodically through its
TelemetryStage
. This is expected to mostly be used to store reporting and other information
about how your robots are doing in the field, giving you a live (or historical) view of data
without using and offloading logs.
This will transmit data in such a way as to handle lossly links or power failures without
dropping data. Telemetry is only transmitted if you have the TelemetryStage
added to
your pipeline.
Major Concepts
The telemetry stage will listen on two major channels:
values
- These are key/values (where values can be a double or a string)events
- These are concrete events (such as starting a log, going into auto, etc).
The stage will wait on startup to receive robot information (the SetTelemetryRobot
over
its robot
channel. This includes robot serial number and other optional metadata.
All values
and events
are stored associated with a particular “session”. Each time
you start a pipeline, a new session is generated. These are associated with a robot
serial number.
Values
Values are transmitted with the SetTelemetryValues
message. They consist of a dictionary
of key/values, where values can be numeric or strings.
These are stored on the backend, and allow you to look over anything from simple properties, such as versions, to things like odometry or other values that change over time.
Events
Events are transmitted with the TelemetryEvent
message, and allow you to specify
a capture time, type, human-readble description, and JSON payload.
These are all stored and viewable through the catalog.
For example, the annotation stage will automatically emit these events for each annotation that is added to the system, allowing you to see operator comments in real time. The log writer/offloader will also emit events as logs are started/stopped/offloaded, allowing you to discover logs that are associated with a session.
Backend
All telemetry is transmitted to the catalog (either the global catalog or your own instance of a catalog). You also need to specify the organization GUID, so that your data is kept private to your organization, and not made public.