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
- Install the agent on the robot's Linux host by running its bootstrap command, which installs and enrolls the robot in one step.
- Publish uplink messages on the local Zenoh session under the
robot/**key space (e.g.robot/telemetry/motion): telemetry, faults/events, objects, and mission feedback. The local keys carry no robot id — the agent adds it on the cloud hop. - Subscribe downlink on the local
commandkey (orcommand/**) for mission commands, teleop, mode/velocity commands, settings, and field rules. - Answer/issue local queries as needed (features, field rules, settings) — see the Zenoh queryables.
- 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. Native integrators can use a ready-made client library (Rust, Python, or C++) or generate types from the Cap'n Proto schema in their language of choice — see Client Libraries for both.
Client libraries. Native client libraries for Rust, Python, and C++ wrap the Zenoh + Cap'n Proto contract, so you can use one instead of implementing the schema directly.