Constellation OverwatchConstellation Overwatch
Concepts

Ontological Data Design

Structuring telemetry data with ontological primitives

Learn how to structure your telemetry data using Constellation Overwatch's ontological data primitives.

Overview

Constellation Overwatch uses an ontological approach to telemetry data, organizing sensor readings into semantic categories that reflect the physical reality of your entities.

Data Primitives

Position

Geographic location in 3D space:

{
  "position": {
    "lat": 37.7749,
    "lon": -122.4194,
    "alt": 100.5
  }
}
FieldTypeDescription
latfloatLatitude in degrees
lonfloatLongitude in degrees
altfloatAltitude in meters (MSL)

Orientation

Attitude in 3D space (Euler angles):

{
  "orientation": {
    "roll": 0.1,
    "pitch": -0.2,
    "yaw": 1.5
  }
}
FieldTypeDescription
rollfloatRoll angle in radians
pitchfloatPitch angle in radians
yawfloatYaw/heading in radians

Sensors

Environmental and onboard sensor readings:

{
  "sensors": {
    "temperature": 22.5,
    "humidity": 65,
    "pressure": 1013.25,
    "battery_voltage": 22.2
  }
}

State

Operational state and status:

{
  "state": {
    "battery": 85,
    "mode": "autonomous",
    "armed": true,
    "health": "nominal"
  }
}

Performance

Performance metrics:

{
  "performance": {
    "velocity": 5.2,
    "thrust": 0.7,
    "efficiency": 0.92
  }
}

Complete Telemetry Payload

A complete telemetry update combines all primitives:

{
  "timestamp": "2024-01-01T12:00:00Z",
  "entity_id": "drone-001",
  "position": {"lat": 37.7749, "lon": -122.4194, "alt": 100},
  "orientation": {"roll": 0.1, "pitch": -0.2, "yaw": 1.5},
  "sensors": {"temperature": 22.5, "humidity": 65, "pressure": 1013.25},
  "state": {"battery": 85, "mode": "autonomous", "armed": true},
  "performance": {"velocity": 5.2, "thrust": 0.7, "efficiency": 0.92}
}

Publishing Telemetry

Publish to the global state KV bucket:

nats kv put CONSTELLATION_GLOBAL_STATE "$ENTITY_ID" '{"position": {...}}'

Best Practices

  1. Include timestamps - Always include ISO 8601 timestamps
  2. Use SI units - Meters, radians, Celsius, etc.
  3. Batch updates - Combine related data in single updates
  4. Validate data - Check ranges before publishing

On this page