Skip to main content
Import these shared classes from grid_types. Nexus reconstructs them on the client; PointNav is not needed in the notebook. Attributes use Python names below. Their to_dict() / from_dict() methods describe application-level serialization; the Nexus wire envelope is handled by the SDK.

Coordinates and units

All public Waypoint, Path, and NavPose XY values use the active map frame in metres. Yaw is in radians, zero along map +X and positive toward +Y. Do not send grid-cell indices, image pixels, GPS coordinates, or robot-relative offsets. Public Waypoint has no yaw field; these examples cannot request terminal heading through a Waypoint. Saved missions can carry heading data.

Waypoint

Path

Constructing a Path does not plan or move. Path entries cannot be semantic strings; use nav.plan(["kitchen", "hallway"]) for those. Path.from_dict expects nested waypoint dictionaries. For example, this is an illustrative sparse-path dictionary, not a robot command:
Store path.to_dict() as JSON if useful, but rebuild a sparse Path from its waypoints and plan it from the robot’s new pose before reuse. No save_path or list_waypoints method is provided by this remote workflow. to_pose() converts to a 3D Pose at (x, y, 0) with a yaw quaternion. pose() reads the latest estimate; localize() waits for a fresh accepted fix. Runtime readiness and mission success are different: ready means another mission can be attempted, not that the preceding mission succeeded.

MissionResult

Returned by blocking run_mission / move_to: Require result.status == "succeeded" before continuing an arrival-dependent task. nav.result() has a different, raw dictionary schema; see non-blocking completion.

Catalog records

These are immutable metadata records; every field is required and a str. Timestamps are server strings, not Python datetime objects. Pass path_id to run_mission after starting the owning map. A catalog read does not select a map, download a route, or start motion.

Telemetry and log payloads

These diagnostic dictionaries are not shared data classes. Use the envelope keys below and tolerate additional diagnostic keys from newer runtimes. A log reply has log_id (string), start, end, size (integer byte offsets/size), and text (UTF-8 string). Follow using end as the next offset; read history using start as the next before cursor. Do not compute byte cursors from Python string length. See viewer and diagnostics for call arguments. Stream internals and progress/event payloads are diagnostic, not a stable replacement for NavState or the mission result contract.

Configuration and policy schemas

Configuration JSON Schema describes the dictionary accepted as cfg at attach time. The configuration guide explains additional shape and cross-field validation. Polygon constraints have a separate versioned schema passed per mission. Neither schema defines agent tool names or bypasses the current runtime’s validation.