Overview
Rover Nexus connects your robot to the cloud through a lightweight on-robot agent.
The robot runs the rover-agent on a Linux computer. Your robot software exchanges messages with the agent over a local Zenoh bus using Cap'n Proto serialization. The agent relays those messages to and from the Rover Nexus cloud over mTLS (also Cap'n Proto). You never talk to the cloud directly; you talk to the agent.
See Architecture for the full picture.
The Cap'n Proto wire schema is public, and native client libraries are available for Rust, Python, and C++. See Client Libraries.
Message directions
- Uplink (robot → cloud): telemetry, faults/events, mission feedback, detected objects. Full reference: Uplink Messages.
- Downlink (cloud → robot): mission commands, teleop, mode/velocity commands, settings, field rules, and feature/asset updates. Full reference: Command Messages.
Both reference pages share a Common Types page for geometry, values, spatial features, and enumerations.
Integration paths
Rover Nexus exposes two local transports for robot software to talk to the on-robot agent, plus public bridges for common stacks. For Rust, Python, or C++ robots, a client library wraps the messaging contract for you.
| Path | Best for | How it works |
|---|---|---|
| Zenoh messaging | Native / custom robots that can embed Zenoh + Cap'n Proto | Your software publishes/subscribes the local Zenoh topic contract directly. The most direct path; see Custom Integrations. |
| Unix Domain Socket | Native robots on the same host as the agent | The agent exposes its local Cap'n Proto hop over a Unix domain socket as a drop-in alternative to Zenoh. Same messages, selected by config. The ready-made Python and C++ client libraries connect over this hop. |
ROS 2 Bridge (rover_ros2_bridge) |
Robots already running ROS 2 | rover_ros2_bridge translates ROS 2 (DDS) topics, services, and actions to and from the agent's Unix domain socket Cap'n Proto hop. |
Copper Bridge (rovernexus-cu-components) |
Robots already running copper-rs | NexusBridge is a Copper bridge component in your graph. It maps Copper pins to and from the agent's local Zenoh Cap'n Proto hop. |
Client libraries. Client libraries for Rust, Python, and C++ give you the Cap'n Proto message types so you don't hand-roll serialization. The ready-made Python and C++ transport clients connect over the Unix domain socket hop; for Zenoh, pair a library's types with a Zenoh session you create.
How to choose
- Custom controller, no ROS 2 or copper-rs? Implement the Zenoh topic contract directly: the primary, native surface. See Custom Integrations.
- On the same host as the agent? You can run the local hop over a Unix domain socket instead of Zenoh, carrying the same messages and selected by config. The Python and C++ client libraries connect over it out of the box, so this is the quickest turnkey path in those languages.
- Running ROS 2 already? Use the ROS 2 Bridge
(
rover_ros2_bridge); it requires no message-level coding. - Running copper-rs already? Use the Copper Bridge
(
rovernexus-cu-components); includeNexusBridgein the graph and wire pins. It requires no message-level coding.
Both transports carry identical Cap'n Proto messages and the same coordinate-frame behavior; the choice is a configuration setting, not a different contract.
What you provide
- A Linux computer on the robot to host the agent (see Supported Platforms).
- Robot configuration and declared capabilities.
- A mapping from your robot's data onto the agent's telemetry and command messages.
- If your robot localizes in a local frame, a configured local origin so the agent can bridge it to WGS84 (see Coordinate Frames).
Next steps
- Review Supported Platforms.
- Read the Architecture and Coordinate Frames.
- Configure the robot (config, capabilities, cameras).
- Wire up messaging via your chosen path, using a client library or implementing the contract directly.