Skip to content

Custom Integrations

Integrate a non-ROS 2 or custom robot over the Zenoh primary surface.

Zenoh is the primary, native integration surface for Rover Nexus. Have your robot software publish and subscribe the local Zenoh topics using Cap'n Proto messages, exactly as the agent expects. This is the most direct path — no bridge is required. See Zenoh for the full topic contract.

When to choose this path

  • Your controller is custom, embedded, or built on a non-ROS framework.
  • You can embed a Zenoh client and Cap'n Proto serialization in your software.
  • You want full control over how your robot's data maps onto the contract.

If you already run ROS 2, the ROS 2 Bridge is usually faster.

What you implement

  1. Install the agent on the robot's Linux host by running its bootstrap command, which installs and enrolls the robot in one step.
  2. Publish uplink messages to uplink/robot/{robot_id}/{message_type}: telemetry, faults/events, objects, and mission feedback.
  3. Subscribe downlink on robots/{robot_id}/commands for mission commands, teleop, mode/velocity commands, settings, and spatial directives.
  4. Answer/issue local queries as needed (features, spatial directives, settings) — see the Zenoh queryables.
  5. Declare capabilities so the cloud can match missions to the robot.

Contract summary

Concern Reference
Transport + topic shapes Zenoh
Message types and fields Messaging
Mapping your data → messages Telemetry Mappings
Configuration Robot configuration

Serialization

All messages are Cap'n Proto encoded over Zenoh. The Cap'n Proto schema — so native integrators can generate types in their language of choice — is coming soon.

!!! note "Client libraries" Native C++/Rust helper libraries are on the roadmap. Until they ship, implement the Zenoh + Cap'n Proto contract directly using a Zenoh client and the Cap'n Proto schema.

Next steps