stub — This page will be curated before publishing. Content reflects the geodetic navigation contract implemented by the DJI Wayline driver.
Goal
Cyberwave uses one navigation lifecycle for every autonomous asset:action_id, commands (goto, path, stop, pause, and
resume), and status lifecycle are shared. What differs by asset is the
coordinate representation:
- Ground robots normally navigate in a Cartesian
mapframe, in metres. - GPS-native vehicles, such as a DJI aircraft executing a Wayline mission, navigate using latitude, longitude, and altitude.
Proposed coordinate_frame
New navigation payloads include a coordinate_frame object with a required
kind. The coordinate values themselves do not contain unit suffixes: their
units are declared once by the frame.
coordinate_frame is the single source of truth for units. Do not mix it with
field names such as latitude_deg or altitude_m.
Cartesian waypoint example
frame_id identifies the local coordinate frame. The existing navigation
anchor transform applies only to this representation.
Geodetic waypoint example
geodetic, latitude and longitude use standard GPS/WGS84 decimal degrees.
For the first DJI implementation, altitude is measured relative to the takeoff
point. orientation.heading is clockwise from true north (0 = north,
90 = east). yaw remains accepted as a legacy input alias during migration,
but the backend publishes the canonical orientation object.
Single-target goto
goto always means “reach one target”. Cartesian drivers receive the target
in position; geodetic drivers receive it in geodetic_position:
goto into an internal two-point Wayline: its
current GPS position followed by the requested target. It must reject the
command when its current GPS position is unavailable.
Compatibility and driver behaviour
Existing Cartesian clients and drivers remain compatible. During migration, a payload withoutcoordinate_frame is treated as the legacy Cartesian
representation and follows the existing frame-transform behaviour.
Drivers declare the coordinate kinds they support. A driver must reject a
command whose coordinate_frame.kind it does not support and publish a
failed response on navigate/status using the received action_id.
A geodetic payload must never be passed through a Cartesian navigation-anchor
transform. Conversely, a Cartesian payload must not be treated as GPS merely
because it targets a GPS-capable vehicle.
Orientation capabilities
capabilities.navigation.orientation tells clients which target-orientation
members a hardware profile can actually command, and which are owned by the
provider. For the DJI Mini 4 Pro Wayline profile:
READY, NOT_SUPPORTED, or INCONCLUSIVE. A UI should expose only the
commandable fields; the driver remains the final validation boundary.