Skip to content

Zenoh

The agent and your robot software communicate over a local Zenoh bus using Cap'n Proto messages. This is the contract native (non-ROS 2) integrations implement directly.

Roles

  • Robot software publishes uplink messages (telemetry, faults, objects, mission feedback) and subscribes to commands; it also answers/issues local queries.
  • The agent ingests those uplink messages, relays them to the cloud, and republishes downlink commands onto local Zenoh.
  • ROS 2 robots use an external bridge that maps DDS topics onto these same local Zenoh topics — the contract below is identical either way.

Publish / subscribe

You want to… Action Topic shape
Send telemetry / faults / objects / feedback (uplink) Publish Cap'n Proto uplink/robot/{robot_id}/{message_type}
Receive commands (downlink) Subscribe Cap'n Proto robots/{robot_id}/commands

The agent relays between these local topics and the cloud over mTLS. {robot_id} is assigned to the robot during enrollment; {message_type} identifies the payload (see Messaging).

Queryables (request / reply)

The agent exposes local Zenoh queryables so robot software can fetch assets on demand. An empty request returns all items.

Queryable Request → Response Returns
agent/features/get_bulk GetFeaturesRequestGetFeaturesResponse Spatial features (Shape | Route), geometry only
agent/spatial_directives/get_bulk GetSpatialDirectivesRequestGetSpatialDirectivesResponse Full spatial directives
agent/settings/query GetSettingsRequestGetSettingsResponse Robot settings (all or by key)

Detailed Cap'n Proto field schemas for each request/response are coming soon.

Serialization

  • All messages are Cap'n Proto encoded.
  • The Cap'n Proto schema (message definitions) for native integrators is coming soon.

Configuration

Zenoh connectivity is configured on the agent host. The agent loads a dedicated Zenoh configuration with a fallback to the [zenoh] section of the robot config. Detailed local Zenoh endpoint and listen settings are coming soon.

!!! note Endpoints, certificates, and credentials are environment-specific and are not published here. The topic and wire contract above is stable and safe to build on.

Next steps