Synapse FlatBuffers main
Generated from the FlatBuffers schemas in fbs/. Fixed memory layout is the default for runtime protocol payloads so chip-to-chip shared-memory transports can use the payload layout directly. Coordinate frames follow ROS REP-0103: local/world vectors use ENU and body vectors use FLU.
Motivation
Synapse messages are designed for vehicles that exchange state, sensor, and control data in real time. The schema should be efficient enough for shared-memory message passing between chips, compact enough for constrained over-the-air links, and still straightforward to use from ordinary application code.
- Fixed memory layout first: runtime payloads prefer FlatBuffers
structdefinitions so producers and consumers can share predictable native layouts without allocation when the transport and language allow it. - ROS-compatible conventions: frames and units follow ROS REP-0103 by default: ENU for local/world vectors, FLU for body vectors, and SI units unless a field name explicitly declares a scaled integer representation.
- Bit-conscious transport: scaled integer fields preserve needed fidelity without spending unnecessary bytes. Airborne systems pay for latency, range, and reliability, so schemas should avoid waste on high-rate or over-the-air messages.
- Native web and cross-platform use: release artifacts for npm, Python, Rust, C, and C++ let browser tools, cloud services, embedded firmware, and developer scripts consume the same schema source.
Transport Boundaries
Most deployments should publish typed topic payloads directly over transports such as Zenoh, UDP, or TCP and rely on those transports or links for framing, integrity checks, and optional security. The optional Frame envelope exists for links that need an explicit Synapse byte-stream container, especially serial-style transports where message delimiting, sequence tracking, and future opt-in integrity or authentication metadata belong at the frame boundary.
Checksums, authentication tags, or encryption should not be hardcoded into every topic payload. When needed, they should be transport-envelope features so fixed-layout payloads remain compact, inspectable, and reusable across shared memory, local middleware, native web tooling, and constrained radio links.
Zenoh Use
Synapse is intended to be straightforward to use with Zenoh. The canonical encoding publishes each fixed-layout topic’s bare payload struct bytes on a stable key expression: the key identifies the stream and the type, so the same bytes serve shared memory, Zenoh values, radio frames, and log messages with zero re-serialization. Little-endian byte order is a protocol requirement. Variable-size topics and generic bridges use the thin FlatBuffers root tables instead; the catalog encoding field records which applies.
Several parts of the schema support this model:
- Fixed-layout payload structs: every runtime topic payload is a struct with a documented byte size, so consumers can decode by overlay without FlatBuffers machinery.
- Generated topic catalog: release artifacts include
TopicId, canonical Zenoh key, root table, payload struct and size, scope, encoding, and helper lookups so applications do not hand-maintain routing tables. - Stable topic identifiers:
TopicIdis available for bridges, logs, serial frames, or compact routing tables, while Zenoh deployments can use key expressions as the primary discriminator. - No transport checksums in payloads: Zenoh, UDP, TCP, and link layers can provide their own integrity behavior, so Synapse payloads stay portable across middleware and shared memory.
- Schema assets in every release: npm, Python, Rust, C, and C++ artifacts carry generated bindings or schema assets so Zenoh tools, web dashboards, firmware bridges, and scripts can decode the same messages.
Canonical keys use synapse/v1/topic/<topic_name>[/<instance>]; the v1 segment is the schema-major compatibility signal, and multi-instance sensor topics append an instance segment so subscribers can select one sensor without decoding payloads. Deployments prepend vehicle, swarm, or site namespaces (for example cub1/synapse/v1/topic/gnss_fix); namespace prefixes come from deployment configuration and are never hardcoded in firmware. The package helpers parse namespaced keys and look up topics by TopicId, name, key, or key suffix. Commands and transfers are Zenoh queryables under synapse/v1/cmd/...; synapse/v1/meta/... and synapse/v1/live/... are reserved for schema metadata and liveliness.
Topic Catalog
The generated topic catalog is included as topics.json in schema-asset archives and as language helpers where the package has a public API. It records TopicId, canonical key expression, FlatBuffers root table, fixed-layout payload type, schema file, and the topic description from the schema comments.
Use the catalog when writing Zenoh publishers/subscribers, serial frame routers, log readers, gateways, and ROS bridge nodes. That keeps topic routing synchronized with the schema instead of duplicating key strings and numeric IDs in application code.
ROS And FlatROS
ROS messages are local integration types, not the Synapse over-the-air format. They are useful for visualization, autonomy stacks, simulation, rosbag tooling, and operator workflows, but they should not replace compact Synapse FlatBuffers payloads on constrained vehicle links.
ROS 2 integration should happen at the edge through bridge nodes that translate selected Synapse topics into ROS concepts only where ROS tooling needs them. The planned flatros2 path is a generated ROS workspace or release archive that consumes the Synapse schemas and topic catalog, depends on flatros2, and provides adapter nodes without making ROS message definitions the protocol source of truth.
Layout Rules
Telemetry, state, command, and control samples should use FlatBuffers struct definitions. Use table, string, or vector fields only for thin root wrappers, transport unions, log records, metadata, text, or naturally variable-size data.
Unit And Scale Rules
Fields encode units and frames in their names. Local/world vectors use _enu_; body vectors use _flu_. Global coordinates use _deg_e7, altitudes use _mm, speeds commonly use _cm_s or _mm_s, temperatures use _cdeg or _c, currents use _da, pack voltages use _cv, magnetic field uses _tesla, and normalized manual-control axes use _milli. The scale column in each entity page is generated from those suffixes, and schema validation fails when a quantitative field has no recognized suffix.
Schema Files
- fbs/all.fbs
- fbs/control.fbs
- fbs/mocap.fbs
- fbs/optical_flow.fbs
- fbs/sensors.fbs
- fbs/sil.fbs
- fbs/state.fbs
- fbs/telemetry.fbs
- fbs/transfer.fbs
- fbs/transport.fbs
- fbs/types.fbs
Version path: main. Generated by cargo run --locked --manifest-path xtask/Cargo.toml -- docs.
fbs/all.fbs
Namespace: synapse
Includes: transport.fbs, telemetry.fbs, transfer.fbs, sil.fbs
This schema file does not define public entities.
fbs/control.fbs
Namespace: synapse.topic
Includes: types.fbs
| Kind | Name | Description |
|---|---|---|
enum | ManualControlAxes | Axis-validity bits for ManualControlData.active_axes. |
enum | ManualControlFlags | Switch and validity bits for ManualControlData.flags. |
enum | AttitudeCommandMask | Ignore bits for AttitudeCommandData.type_mask. |
enum | RateCommandMask | Ignore bits for RateCommandData.type_mask. |
enum | LocalPositionCommandMask | Ignore and interpretation bits for LocalPositionCommandData.type_mask. |
struct | RadioControlData | Raw receiver channel sample before pilot-input normalization. This is a raw-layer topic: channel values are the receiver’s native pulse widths. |
struct | ManualControlData | Normalized pilot intent after receiver decoding, mapping, and validity checks. Axis fields use the full range -1000 to 1000. Throttle semantics are fixed by the schema: negative values command reverse thrust or descent; unidirectional vehicles clamp negative throttle to zero. Axis validity is carried only by active_axes; there are no sentinel values. |
struct | AttitudeCommandData | Attitude setpoint with optional angular-rate and thrust feed-forward. |
struct | RateCommandData | Body-rate setpoint with optional thrust feed-forward. |
struct | LocalPositionCommandData | Local-frame position, velocity, acceleration, and yaw setpoint. |
struct | VehicleCommandData | Generic command with seven floating-point arguments. Commands travel as Zenoh queryable requests on the cmd key space; the reply payload is CommandResultData. The transport provides correlation, retry, and timeout. |
struct | GeoCommandData | Geographic command form preserving global-coordinate precision. Also used as the mission-item payload for mission transfer. |
struct | CommandResultData | Result, progress, and routing information for command execution. Sent as the queryable reply for command requests; InProgress replies may stream until a terminal result is reached. |
struct | ActuatorCommandData | Normalized actuator command for up to sixteen logical actuator controls. |
struct | ActuatorFeedbackData | Normalized actuator feedback for up to thirty-two physical outputs. The command message carries sixteen logical controls while feedback covers thirty-two physical outputs after mixing and allocation. |
struct | PwmSignalOutputsData | Raw PWM pulse-width outputs for servo and ESC drivers. |
struct | ControlLoopMetricsData | Runtime metrics for a control loop or scheduler slice. |
table | RadioControl -> RadioControlData | FlatBuffers root wrapper for RadioControlData. |
table | ManualControlCommand -> ManualControlData | FlatBuffers root wrapper for ManualControlData. |
table | AttitudeCommand -> AttitudeCommandData | FlatBuffers root wrapper for AttitudeCommandData. |
table | RateCommand -> RateCommandData | FlatBuffers root wrapper for RateCommandData. |
table | LocalPositionCommand -> LocalPositionCommandData | FlatBuffers root wrapper for LocalPositionCommandData. |
table | VehicleCommand -> VehicleCommandData | FlatBuffers root wrapper for VehicleCommandData. |
table | GeoCommand -> GeoCommandData | FlatBuffers root wrapper for GeoCommandData. |
table | CommandResult -> CommandResultData | FlatBuffers root wrapper for CommandResultData. |
table | ActuatorCommand -> ActuatorCommandData | FlatBuffers root wrapper for ActuatorCommandData. |
table | ActuatorFeedback -> ActuatorFeedbackData | FlatBuffers root wrapper for ActuatorFeedbackData. |
table | PwmSignalOutputs -> PwmSignalOutputsData | FlatBuffers root wrapper for PwmSignalOutputsData. |
table | ControlLoopMetrics -> ControlLoopMetricsData | FlatBuffers root wrapper for ControlLoopMetricsData. |
enum ManualControlAxes
fbs/control.fbs / Source schema
Backing type: ushort (bit_flags)
Axis-validity bits for ManualControlData.active_axes.
| Name | Value | Notes |
|---|---|---|
Pitch | pitch_milli is meaningful. | |
Roll | roll_milli is meaningful. | |
Throttle | throttle_milli is meaningful. | |
Yaw | yaw_milli is meaningful. | |
Aux0 | aux0_milli is meaningful. | |
Aux1 | aux1_milli is meaningful. | |
Aux2 | aux2_milli is meaningful. | |
Aux3 | aux3_milli is meaningful. | |
Aux4 | aux4_milli is meaningful. | |
Aux5 | aux5_milli is meaningful. |
enum ManualControlFlags
fbs/control.fbs / Source schema
Backing type: ubyte (bit_flags)
Switch and validity bits for ManualControlData.flags.
| Name | Value | Notes |
|---|---|---|
ArmSwitch | The pilot arm switch is in the arm position. | |
KillSwitch | The pilot kill switch requests immediate output inhibition. | |
Active | Manual input is currently selected or influencing control. | |
Valid | The manual input sample is fresh and passed validation. |
enum AttitudeCommandMask
fbs/control.fbs / Source schema
Backing type: ubyte (bit_flags)
Ignore bits for AttitudeCommandData.type_mask.
| Name | Value | Notes |
|---|---|---|
IgnoreAttitude | Ignore the attitude quaternion. | |
IgnoreRateRoll | Ignore the roll body-rate feed-forward. | |
IgnoreRatePitch | Ignore the pitch body-rate feed-forward. | |
IgnoreRateYaw | Ignore the yaw body-rate feed-forward. | |
IgnoreThrust | Ignore the thrust field. |
enum RateCommandMask
fbs/control.fbs / Source schema
Backing type: ubyte (bit_flags)
Ignore bits for RateCommandData.type_mask.
| Name | Value | Notes |
|---|---|---|
IgnoreRateRoll | Ignore the roll rate setpoint. | |
IgnoreRatePitch | Ignore the pitch rate setpoint. | |
IgnoreRateYaw | Ignore the yaw rate setpoint. | |
IgnoreThrust | Ignore the thrust field. |
enum LocalPositionCommandMask
fbs/control.fbs / Source schema
Backing type: ushort (bit_flags)
Ignore and interpretation bits for LocalPositionCommandData.type_mask.
| Name | Value | Notes |
|---|---|---|
IgnorePositionX | Ignore the X position setpoint. | |
IgnorePositionY | Ignore the Y position setpoint. | |
IgnorePositionZ | Ignore the Z position setpoint. | |
IgnoreVelocityX | Ignore the X velocity setpoint. | |
IgnoreVelocityY | Ignore the Y velocity setpoint. | |
IgnoreVelocityZ | Ignore the Z velocity setpoint. | |
IgnoreAccelerationX | Ignore the X acceleration setpoint. | |
IgnoreAccelerationY | Ignore the Y acceleration setpoint. | |
IgnoreAccelerationZ | Ignore the Z acceleration setpoint. | |
ForceSetpoint | Interpret the acceleration fields as force instead of acceleration. | |
IgnoreYaw | Ignore the yaw setpoint. | |
IgnoreYawRate | Ignore the yaw-rate setpoint. |
struct RadioControlData
fbs/control.fbs / Source schema
Raw receiver channel sample before pilot-input normalization. This is a raw-layer topic: channel values are the receiver’s native pulse widths.
FlatBuffers root table: RadioControl
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Sample timestamp in monotonic boot time. |
channel_count | ubyte | Number of valid channels in this sample, starting at channel 0. | |
link_quality_pct | ubyte | percent | Receiver link quality from 0 to 100. |
chan0_raw_us | ushort | raw pulse width in microseconds | Raw channel 0 pulse width. |
chan1_raw_us | ushort | raw pulse width in microseconds | Raw channel 1 pulse width. |
chan2_raw_us | ushort | raw pulse width in microseconds | Raw channel 2 pulse width. |
chan3_raw_us | ushort | raw pulse width in microseconds | Raw channel 3 pulse width. |
chan4_raw_us | ushort | raw pulse width in microseconds | Raw channel 4 pulse width. |
chan5_raw_us | ushort | raw pulse width in microseconds | Raw channel 5 pulse width. |
chan6_raw_us | ushort | raw pulse width in microseconds | Raw channel 6 pulse width. |
chan7_raw_us | ushort | raw pulse width in microseconds | Raw channel 7 pulse width. |
chan8_raw_us | ushort | raw pulse width in microseconds | Raw channel 8 pulse width. |
chan9_raw_us | ushort | raw pulse width in microseconds | Raw channel 9 pulse width. |
chan10_raw_us | ushort | raw pulse width in microseconds | Raw channel 10 pulse width. |
chan11_raw_us | ushort | raw pulse width in microseconds | Raw channel 11 pulse width. |
chan12_raw_us | ushort | raw pulse width in microseconds | Raw channel 12 pulse width. |
chan13_raw_us | ushort | raw pulse width in microseconds | Raw channel 13 pulse width. |
chan14_raw_us | ushort | raw pulse width in microseconds | Raw channel 14 pulse width. |
chan15_raw_us | ushort | raw pulse width in microseconds | Raw channel 15 pulse width. |
chan16_raw_us | ushort | raw pulse width in microseconds | Raw channel 16 pulse width. |
chan17_raw_us | ushort | raw pulse width in microseconds | Raw channel 17 pulse width. |
struct ManualControlData
fbs/control.fbs / Source schema
Normalized pilot intent after receiver decoding, mapping, and validity checks. Axis fields use the full range -1000 to 1000. Throttle semantics are fixed by the schema: negative values command reverse thrust or descent; unidirectional vehicles clamp negative throttle to zero. Axis validity is carried only by active_axes; there are no sentinel values.
FlatBuffers root table: ManualControlCommand
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Command timestamp in monotonic boot time. |
buttons | uint | Bitmask of active momentary buttons or switches, indexed from bit 0. | |
active_axes | ushort | Bitmask of ManualControlAxes bits indicating meaningful axes. | |
pitch_milli | short | normalized milli-units; value / 1000, usually [-1, 1] | Pitch command in milli-units over -1000 to 1000; positive pitches nose up. |
roll_milli | short | normalized milli-units; value / 1000, usually [-1, 1] | Roll command in milli-units over -1000 to 1000; positive rolls right. |
throttle_milli | short | normalized milli-units; value / 1000, usually [-1, 1] | Throttle command in milli-units over -1000 to 1000; negative means reverse or descend. |
yaw_milli | short | normalized milli-units; value / 1000, usually [-1, 1] | Yaw command in milli-units over -1000 to 1000; positive yaws counter-clockwise. |
aux0_milli | short | normalized milli-units; value / 1000, usually [-1, 1] | Auxiliary axis 0 in milli-units over -1000 to 1000. |
aux1_milli | short | normalized milli-units; value / 1000, usually [-1, 1] | Auxiliary axis 1 in milli-units over -1000 to 1000. |
aux2_milli | short | normalized milli-units; value / 1000, usually [-1, 1] | Auxiliary axis 2 in milli-units over -1000 to 1000. |
aux3_milli | short | normalized milli-units; value / 1000, usually [-1, 1] | Auxiliary axis 3 in milli-units over -1000 to 1000. |
aux4_milli | short | normalized milli-units; value / 1000, usually [-1, 1] | Auxiliary axis 4 in milli-units over -1000 to 1000. |
aux5_milli | short | normalized milli-units; value / 1000, usually [-1, 1] | Auxiliary axis 5 in milli-units over -1000 to 1000. |
flight_mode | ubyte | Producer-defined requested flight mode. | |
flags | ubyte | bitmask | Bitmask of ManualControlFlags bits. |
struct AttitudeCommandData
fbs/control.fbs / Source schema
Attitude setpoint with optional angular-rate and thrust feed-forward.
FlatBuffers root table: AttitudeCommand
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Command timestamp in monotonic boot time. |
attitude | synapse.types.Quaternionf | Desired orientation rotating body FLU vectors into the ENU world frame. | |
body_rate_flu_rad_s | synapse.types.RateTriplet | FLU body frame (x forward, y left, z up), radians per second | Body-rate feed-forward in the FLU frame. |
thrust | float | Normalized collective thrust command over 0 to 1, or -1 to 1 for reverse-capable vehicles. | |
type_mask | ubyte | bitmask | Bitmask of AttitudeCommandMask bits for ignored fields. |
struct RateCommandData
fbs/control.fbs / Source schema
Body-rate setpoint with optional thrust feed-forward.
FlatBuffers root table: RateCommand
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Command timestamp in monotonic boot time. |
body_rate_flu_rad_s | synapse.types.RateTriplet | FLU body frame (x forward, y left, z up), radians per second | Desired body angular rates in the FLU frame. |
thrust | float | Normalized collective thrust command over 0 to 1, or -1 to 1 for reverse-capable vehicles. | |
type_mask | ubyte | bitmask | Bitmask of RateCommandMask bits for ignored fields. |
struct LocalPositionCommandData
fbs/control.fbs / Source schema
Local-frame position, velocity, acceleration, and yaw setpoint.
FlatBuffers root table: LocalPositionCommand
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Command timestamp in monotonic boot time. |
position_enu_m | synapse.types.Vec3f | ENU frame (x east, y north, z up), meters | Desired local position in the ENU frame. |
velocity_enu_m_s | synapse.types.Vec3f | ENU frame (x east, y north, z up), meters per second | Desired local velocity in the ENU frame. |
acceleration_or_force_enu | synapse.types.Vec3f | Desired ENU acceleration in m/s^2, or force in newtons when ForceSetpoint is set. | |
yaw_rad | float | radians | Desired yaw angle; zero east and positive counter-clockwise. |
yaw_rate_rad_s | float | radians per second | Desired yaw rate; positive counter-clockwise. |
type_mask | ushort | bitmask | Bitmask of LocalPositionCommandMask bits. |
coordinate_frame | synapse.types.LocalFrame | Frame in which the setpoint is expressed. |
struct VehicleCommandData
fbs/control.fbs / Source schema
Generic command with seven floating-point arguments. Commands travel as Zenoh queryable requests on the cmd key space; the reply payload is CommandResultData. The transport provides correlation, retry, and timeout.
FlatBuffers root table: VehicleCommand
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Command timestamp in monotonic boot time. |
arg0 | float | Command-specific argument 0. | |
arg1 | float | Command-specific argument 1. | |
arg2 | float | Command-specific argument 2. | |
arg3 | float | Command-specific argument 3. | |
arg4 | float | Command-specific argument 4. | |
arg5 | float | Command-specific argument 5. | |
arg6 | float | Command-specific argument 6. | |
command_id | ushort | Producer-defined command identifier. | |
target_system | ubyte | Target system identifier, or zero for broadcast/default. | |
target_component | ubyte | Target component identifier, or zero for broadcast/default. |
struct GeoCommandData
fbs/control.fbs / Source schema
Geographic command form preserving global-coordinate precision. Also used as the mission-item payload for mission transfer.
FlatBuffers root table: GeoCommand
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Command timestamp in monotonic boot time. |
arg0 | float | Command-specific argument 0. | |
arg1 | float | Command-specific argument 1. | |
arg2 | float | Command-specific argument 2. | |
arg3 | float | Command-specific argument 3. | |
latitude_deg_e7 | int | degrees scaled by 1e7; int32 preserves global-coordinate precision | Target latitude in WGS-84 degrees scaled by 1e7. |
longitude_deg_e7 | int | degrees scaled by 1e7; int32 preserves global-coordinate precision | Target longitude in WGS-84 degrees scaled by 1e7. |
altitude_m | float | meters | Target altitude in meters in the frame selected by frame. |
command_id | ushort | Producer-defined command identifier. | |
frame | synapse.types.GeoAltitudeFrame | Altitude reference frame for altitude_m. | |
target_system | ubyte | Target system identifier, or zero for broadcast/default. | |
target_component | ubyte | Target component identifier, or zero for broadcast/default. | |
current | bool | True when this item should become current immediately. | |
autocontinue | bool | True when navigation should automatically continue after this item. |
struct CommandResultData
fbs/control.fbs / Source schema
Result, progress, and routing information for command execution. Sent as the queryable reply for command requests; InProgress replies may stream until a terminal result is reached.
FlatBuffers root table: CommandResult
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Result timestamp in monotonic boot time. |
result_detail | int | Producer-defined extended result or error detail. | |
command_id | ushort | Command identifier this result refers to. | |
result | synapse.types.CommandResultCode | Command execution result. | |
progress_pct | ubyte | percent | Completion progress from 0 to 100 while InProgress. |
target_system | ubyte | System identifier that produced or should receive the result. | |
target_component | ubyte | Component identifier that produced or should receive the result. |
struct ActuatorCommandData
fbs/control.fbs / Source schema
Normalized actuator command for up to sixteen logical actuator controls.
FlatBuffers root table: ActuatorCommand
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Command timestamp in monotonic boot time. |
active_mask | uint | bitmask | Bitmask indicating which control slots are valid, indexed from bit 0. |
control0 | float | Normalized actuator control slot 0. | |
control1 | float | Normalized actuator control slot 1. | |
control2 | float | Normalized actuator control slot 2. | |
control3 | float | Normalized actuator control slot 3. | |
control4 | float | Normalized actuator control slot 4. | |
control5 | float | Normalized actuator control slot 5. | |
control6 | float | Normalized actuator control slot 6. | |
control7 | float | Normalized actuator control slot 7. | |
control8 | float | Normalized actuator control slot 8. | |
control9 | float | Normalized actuator control slot 9. | |
control10 | float | Normalized actuator control slot 10. | |
control11 | float | Normalized actuator control slot 11. | |
control12 | float | Normalized actuator control slot 12. | |
control13 | float | Normalized actuator control slot 13. | |
control14 | float | Normalized actuator control slot 14. | |
control15 | float | Normalized actuator control slot 15. |
struct ActuatorFeedbackData
fbs/control.fbs / Source schema
Normalized actuator feedback for up to thirty-two physical outputs. The command message carries sixteen logical controls while feedback covers thirty-two physical outputs after mixing and allocation.
FlatBuffers root table: ActuatorFeedback
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Feedback timestamp in monotonic boot time. |
active_mask | uint | bitmask | Bitmask indicating which output slots are valid, indexed from bit 0. |
output0 | float | Normalized actuator output slot 0. | |
output1 | float | Normalized actuator output slot 1. | |
output2 | float | Normalized actuator output slot 2. | |
output3 | float | Normalized actuator output slot 3. | |
output4 | float | Normalized actuator output slot 4. | |
output5 | float | Normalized actuator output slot 5. | |
output6 | float | Normalized actuator output slot 6. | |
output7 | float | Normalized actuator output slot 7. | |
output8 | float | Normalized actuator output slot 8. | |
output9 | float | Normalized actuator output slot 9. | |
output10 | float | Normalized actuator output slot 10. | |
output11 | float | Normalized actuator output slot 11. | |
output12 | float | Normalized actuator output slot 12. | |
output13 | float | Normalized actuator output slot 13. | |
output14 | float | Normalized actuator output slot 14. | |
output15 | float | Normalized actuator output slot 15. | |
output16 | float | Normalized actuator output slot 16. | |
output17 | float | Normalized actuator output slot 17. | |
output18 | float | Normalized actuator output slot 18. | |
output19 | float | Normalized actuator output slot 19. | |
output20 | float | Normalized actuator output slot 20. | |
output21 | float | Normalized actuator output slot 21. | |
output22 | float | Normalized actuator output slot 22. | |
output23 | float | Normalized actuator output slot 23. | |
output24 | float | Normalized actuator output slot 24. | |
output25 | float | Normalized actuator output slot 25. | |
output26 | float | Normalized actuator output slot 26. | |
output27 | float | Normalized actuator output slot 27. | |
output28 | float | Normalized actuator output slot 28. | |
output29 | float | Normalized actuator output slot 29. | |
output30 | float | Normalized actuator output slot 30. | |
output31 | float | Normalized actuator output slot 31. |
struct PwmSignalOutputsData
fbs/control.fbs / Source schema
Raw PWM pulse-width outputs for servo and ESC drivers.
FlatBuffers root table: PwmSignalOutputs
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Output timestamp in monotonic boot time. |
active_mask | uint | bitmask | Bitmask indicating which PWM outputs are valid, indexed from bit 0. |
port | ubyte | Producer-defined output bank or timer port. | |
output0_us | ushort | microseconds | PWM output 0 pulse width. |
output1_us | ushort | microseconds | PWM output 1 pulse width. |
output2_us | ushort | microseconds | PWM output 2 pulse width. |
output3_us | ushort | microseconds | PWM output 3 pulse width. |
output4_us | ushort | microseconds | PWM output 4 pulse width. |
output5_us | ushort | microseconds | PWM output 5 pulse width. |
output6_us | ushort | microseconds | PWM output 6 pulse width. |
output7_us | ushort | microseconds | PWM output 7 pulse width. |
output8_us | ushort | microseconds | PWM output 8 pulse width. |
output9_us | ushort | microseconds | PWM output 9 pulse width. |
output10_us | ushort | microseconds | PWM output 10 pulse width. |
output11_us | ushort | microseconds | PWM output 11 pulse width. |
output12_us | ushort | microseconds | PWM output 12 pulse width. |
output13_us | ushort | microseconds | PWM output 13 pulse width. |
output14_us | ushort | microseconds | PWM output 14 pulse width. |
output15_us | ushort | microseconds | PWM output 15 pulse width. |
struct ControlLoopMetricsData
fbs/control.fbs / Source schema
Runtime metrics for a control loop or scheduler slice.
FlatBuffers root table: ControlLoopMetrics
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Metrics timestamp in monotonic boot time. |
period_us | uint | microseconds | Measured loop period. |
latency_us | uint | microseconds | Time from scheduled release to completion or publication. |
overrun_count | uint | Cumulative count of missed deadlines. | |
load_dpermille | ushort | deci-percent; percent = value / 10, 1000 means 100% | Loop load as deci-percent, where 1000 means 100%. |
fbs/mocap.fbs
Namespace: synapse.topic
Includes: types.fbs
| Kind | Name | Description |
|---|---|---|
struct | MocapMarkerSample | Fixed-layout position sample for a labeled or unlabeled mocap marker. |
struct | MocapRigidBodySample | Fixed-layout pose sample for a tracked mocap rigid body. |
struct | MocapSegmentSample | Fixed-layout pose sample for a tracked skeleton segment. |
table | MocapMarkerDefinition | Static metadata for a mocap marker that consumers can cache. |
table | MocapRigidBodyDefinition | Static metadata for a mocap rigid body that consumers can cache. |
table | MocapSegmentDefinition | Static metadata for a mocap skeleton segment that consumers can cache. |
table | MocapDefinition | Variable-size mocap metadata packet describing tracked objects. This is a cached definition record and an intentional table boundary. |
table | MocapFrame | Variable-size mocap frame containing all tracked samples for one timestamp. |
struct MocapMarkerSample
Fixed-layout position sample for a labeled or unlabeled mocap marker.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
id | int | Marker identifier assigned by the mocap source; negative values may indicate unlabeled markers. | |
position_enu_m | synapse.types.Vec3f | ENU frame (x east, y north, z up), meters | Marker position in the mocap ENU frame. |
residual | float | Producer-defined fit residual or reprojection error. |
struct MocapRigidBodySample
Fixed-layout pose sample for a tracked mocap rigid body.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
id | int | Rigid-body identifier assigned by the mocap source. | |
position_enu_m | synapse.types.Vec3f | ENU frame (x east, y north, z up), meters | Rigid-body position in the mocap ENU frame. |
attitude | synapse.types.Quaternionf | Rigid-body orientation rotating body FLU vectors into the mocap ENU frame. | |
residual | float | Producer-defined solve residual or tracking error. | |
tracking_valid | bool | True when the rigid body is actively tracked in this frame. |
struct MocapSegmentSample
Fixed-layout pose sample for a tracked skeleton segment.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
skeleton_id | int | Skeleton identifier assigned by the mocap source. | |
segment_id | int | Segment identifier within the skeleton. | |
position_enu_m | synapse.types.Vec3f | ENU frame (x east, y north, z up), meters | Segment position in the mocap ENU frame. |
attitude | synapse.types.Quaternionf | Segment orientation rotating segment FLU vectors into the mocap ENU frame. | |
tracking_valid | bool | True when the segment is actively tracked in this frame. |
table MocapMarkerDefinition
Static metadata for a mocap marker that consumers can cache.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
id | int | Marker identifier used by MocapMarkerSample. | |
name | string | Human-readable marker name. | |
color | uint | Producer-defined display color encoded as an integer. |
table MocapRigidBodyDefinition
Static metadata for a mocap rigid body that consumers can cache.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
id | int | Rigid-body identifier used by MocapRigidBodySample. | |
name | string | Human-readable rigid-body name. |
table MocapSegmentDefinition
Static metadata for a mocap skeleton segment that consumers can cache.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
skeleton_id | int | Skeleton identifier used by MocapSegmentSample. | |
skeleton_name | string | Human-readable skeleton name. | |
segment_id | int | Segment identifier within the skeleton. | |
segment_name | string | Human-readable segment name. |
table MocapDefinition
Variable-size mocap metadata packet describing tracked objects. This is a cached definition record and an intentional table boundary.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
source | string | Mocap system or producer name. | |
frame_id | string | Frame name for the mocap ENU coordinate system. | |
labeled_markers | [MocapMarkerDefinition] | Marker definitions indexed by marker id. | |
rigid_bodies | [MocapRigidBodyDefinition] | Rigid-body definitions indexed by rigid-body id. | |
skeleton_segments | [MocapSegmentDefinition] | Skeleton segment definitions indexed by skeleton and segment id. |
table MocapFrame
Variable-size mocap frame containing all tracked samples for one timestamp.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Frame timestamp in monotonic boot time. |
frame_number | uint | Producer frame counter for loss/reorder detection. | |
labeled_markers | [MocapMarkerSample] | Marker samples with stable source identifiers. | |
unlabeled_markers | [MocapMarkerSample] | Marker samples without stable source identifiers. | |
rigid_bodies | [MocapRigidBodySample] | Rigid-body pose samples. | |
skeleton_segments | [MocapSegmentSample] | Skeleton segment pose samples. |
fbs/optical_flow.fbs
Namespace: synapse.topic
Includes: types.fbs
| Kind | Name | Description |
|---|---|---|
struct | OpticalFlowData | Integrated optical-flow sample from an image sensor or flow module. This is a raw-layer topic: flow is the sensor’s integrated angular image motion. |
struct | OpticalFlowVelocityData | Velocity estimate derived from optical flow. |
table | OpticalFlow -> OpticalFlowData | FlatBuffers root wrapper for OpticalFlowData. |
table | OpticalFlowVelocity -> OpticalFlowVelocityData | FlatBuffers root wrapper for OpticalFlowVelocityData. |
struct OpticalFlowData
fbs/optical_flow.fbs / Source schema
Integrated optical-flow sample from an image sensor or flow module. This is a raw-layer topic: flow is the sensor’s integrated angular image motion.
FlatBuffers root table: OpticalFlow
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Sample timestamp in monotonic boot time. |
flow_rad | synapse.types.Vec2f | radians | Integrated angular flow about the sensor X and Y axes in radians over integration_timespan_us. |
delta_angle_flu_rad | synapse.types.Vec3f | radians | Integrated body rotation in the FLU frame during the same interval. |
distance_m | float | meters | Measured distance to the observed surface. |
integration_timespan_us | uint | microseconds | Integration interval for flow_rad and delta_angle_flu_rad. |
max_flow_rate_rad_s | float | radians per second | Maximum measurable angular flow rate. |
min_ground_distance_m | float | meters | Minimum valid range for distance-compensated flow. |
max_ground_distance_m | float | meters | Maximum valid range for distance-compensated flow. |
quality_pct | ubyte | percent | Flow quality from 0 to 100. |
struct OpticalFlowVelocityData
fbs/optical_flow.fbs / Source schema
Velocity estimate derived from optical flow.
FlatBuffers root table: OpticalFlowVelocity
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Estimate timestamp in monotonic boot time. |
velocity_flu_m_s | synapse.types.Vec2f | meters per second | Planar velocity estimate in the body FLU frame. |
velocity_enu_m_s | synapse.types.Vec2f | ENU frame (x east, y north, z up), meters per second | Planar velocity estimate in the local ENU frame. |
flow_rate_uncompensated_rad_s | synapse.types.Vec2f | radians per second | Raw angular flow rate before gyro compensation. |
flow_rate_compensated_rad_s | synapse.types.Vec2f | radians per second | Angular flow rate after gyro compensation. |
gyro_flu_rad_s | synapse.types.Vec3f | FLU body frame (x forward, y left, z up), radians per second | Body angular rate used for compensation. |
fbs/sensors.fbs
Namespace: synapse.topic
Includes: types.fbs
| Kind | Name | Description |
|---|---|---|
enum | InertialFieldFlags | Field-validity bits for InertialSampleData.flags. |
enum | AirDataFlags | Field-validity bits for AirDataData.flags. |
enum | GnssFixFlags | Field-validity bits for GnssFixData.flags. |
enum | PowerFaultFlags | Fault bits for PowerStatusData.fault_flags. |
struct | InertialSampleData | Raw inertial and environmental sample from an IMU-class sensor. This is a raw-layer topic: values are sensor-native measurements in the body FLU mounting frame after driver axis alignment; no estimator products belong here. Sensors updating at different rates set the matching flags bits. |
struct | AirDataData | Air-data sample used by fixed-wing estimators and controllers. |
struct | BatteryCellVoltages16 | Per-cell battery voltages for packs with up to sixteen monitored cells. Unmonitored cell slots are zero; zero is physically impossible for a connected, monitored cell. |
struct | PowerStatusData | Battery or power-source state used for monitoring and failsafe decisions. |
struct | GnssFixData | Global navigation satellite receiver fix and motion estimate. This is a raw-layer topic: angles keep the receiver’s native convention (clockwise from true north) so logs stay faithful to the hardware; the estimator converts to REP-0103 conventions for estimate-layer topics. |
table | InertialSample -> InertialSampleData | FlatBuffers root wrapper for InertialSampleData. |
table | AirData -> AirDataData | FlatBuffers root wrapper for AirDataData. |
table | PowerStatus -> PowerStatusData | FlatBuffers root wrapper for PowerStatusData. |
table | GnssFix -> GnssFixData | FlatBuffers root wrapper for GnssFixData. |
enum InertialFieldFlags
fbs/sensors.fbs / Source schema
Backing type: ubyte (bit_flags)
Field-validity bits for InertialSampleData.flags.
| Name | Value | Notes |
|---|---|---|
Accel | Accelerometer fields were updated in this sample. | |
Gyro | Gyroscope fields were updated in this sample. | |
Mag | Magnetometer fields were updated in this sample. | |
Pressure | Static pressure field was updated in this sample. | |
Temperature | Temperature field was updated in this sample. |
enum AirDataFlags
fbs/sensors.fbs / Source schema
Backing type: ubyte (bit_flags)
Field-validity bits for AirDataData.flags.
| Name | Value | Notes |
|---|---|---|
AbsolutePressure | Static pressure is valid. | |
DifferentialPressure | Differential pressure is valid. | |
PressureAltitude | Pressure altitude is valid. | |
IndicatedAirspeed | Indicated airspeed is valid. | |
TrueAirspeed | True airspeed is valid. | |
AngleOfAttack | Angle of attack is valid. | |
Sideslip | Sideslip angle is valid. | |
Temperature | Temperature fields are valid. |
enum GnssFixFlags
fbs/sensors.fbs / Source schema
Backing type: ubyte (bit_flags)
Field-validity bits for GnssFixData.flags.
| Name | Value | Notes |
|---|---|---|
TimeValid | time_unix_us carries a valid receiver time. | |
CourseValid | course_over_ground_cdeg is valid. | |
YawValid | yaw_cdeg carries a valid receiver yaw. | |
VelocityUpValid | velocity_up_cm_s is valid. |
enum PowerFaultFlags
fbs/sensors.fbs / Source schema
Backing type: ushort (bit_flags)
Fault bits for PowerStatusData.fault_flags.
| Name | Value | Notes |
|---|---|---|
DeepDischarge | Pack was discharged below its safe minimum. | |
VoltageSpikes | Abnormal voltage transients were detected. | |
CellFail | One or more cells failed. | |
OverCurrent | Discharge current exceeded limits. | |
OverTemperature | Pack temperature exceeded limits. | |
UnderTemperature | Pack temperature is below operating limits. | |
IncompatibleVoltage | Pack voltage is incompatible with this vehicle. | |
HardwareFailure | Monitor or pack hardware failure. |
struct InertialSampleData
fbs/sensors.fbs / Source schema
Raw inertial and environmental sample from an IMU-class sensor. This is a raw-layer topic: values are sensor-native measurements in the body FLU mounting frame after driver axis alignment; no estimator products belong here. Sensors updating at different rates set the matching flags bits.
FlatBuffers root table: InertialSample
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Sample timestamp in monotonic boot time. |
accel_flu_m_s2 | synapse.types.Vec3f | FLU body frame (x forward, y left, z up), meters per second squared | Linear acceleration in the body FLU frame. |
gyro_flu_rad_s | synapse.types.Vec3f | FLU body frame (x forward, y left, z up), radians per second | Angular rate in the body FLU frame. |
mag_flu_tesla | synapse.types.Vec3f | FLU body frame (x forward, y left, z up), tesla | Raw magnetic field in the body FLU frame, not declination corrected. |
absolute_pressure_hpa | float | hectopascals | Static pressure from the sensor barometer. |
temperature_c | float | degrees Celsius | Sensor temperature in degrees Celsius. |
flags | ubyte | bitmask | Bitmask of InertialFieldFlags bits updated in this sample. |
id | ubyte | Sensor instance identifier; also the instance segment of the Zenoh key. |
struct AirDataData
fbs/sensors.fbs / Source schema
Air-data sample used by fixed-wing estimators and controllers.
FlatBuffers root table: AirData
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Sample timestamp in monotonic boot time. |
absolute_pressure_hpa | float | hectopascals | Static pressure used for altitude and air-density calculations. |
differential_pressure_hpa | float | hectopascals | Pitot/static differential pressure used for airspeed. |
pressure_altitude_m | float | meters | Pressure-derived altitude using the producer’s atmosphere model. |
indicated_airspeed_m_s | float | meters per second | Indicated airspeed before density correction. |
true_airspeed_m_s | float | meters per second | True airspeed after density correction when available. |
angle_of_attack_rad | float | radians | Angle between body X axis and relative wind in the pitch plane. |
sideslip_rad | float | radians | Angle between body X axis and relative wind in the yaw plane. |
temperature_cdeg | short | centi-degrees Celsius; degC = value / 100 | Static-air temperature in centi-degrees Celsius. |
differential_pressure_temperature_cdeg | short | centi-degrees Celsius; degC = value / 100 | Differential-pressure sensor temperature in centi-degrees Celsius. |
flags | ubyte | bitmask | Bitmask of AirDataFlags bits valid in this sample. |
struct BatteryCellVoltages16
fbs/sensors.fbs / Source schema
Per-cell battery voltages for packs with up to sixteen monitored cells. Unmonitored cell slots are zero; zero is physically impossible for a connected, monitored cell.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
cell0_mv | ushort | millivolts | Cell 0 voltage, or zero when unmonitored. |
cell1_mv | ushort | millivolts | Cell 1 voltage, or zero when unmonitored. |
cell2_mv | ushort | millivolts | Cell 2 voltage, or zero when unmonitored. |
cell3_mv | ushort | millivolts | Cell 3 voltage, or zero when unmonitored. |
cell4_mv | ushort | millivolts | Cell 4 voltage, or zero when unmonitored. |
cell5_mv | ushort | millivolts | Cell 5 voltage, or zero when unmonitored. |
cell6_mv | ushort | millivolts | Cell 6 voltage, or zero when unmonitored. |
cell7_mv | ushort | millivolts | Cell 7 voltage, or zero when unmonitored. |
cell8_mv | ushort | millivolts | Cell 8 voltage, or zero when unmonitored. |
cell9_mv | ushort | millivolts | Cell 9 voltage, or zero when unmonitored. |
cell10_mv | ushort | millivolts | Cell 10 voltage, or zero when unmonitored. |
cell11_mv | ushort | millivolts | Cell 11 voltage, or zero when unmonitored. |
cell12_mv | ushort | millivolts | Cell 12 voltage, or zero when unmonitored. |
cell13_mv | ushort | millivolts | Cell 13 voltage, or zero when unmonitored. |
cell14_mv | ushort | millivolts | Cell 14 voltage, or zero when unmonitored. |
cell15_mv | ushort | millivolts | Cell 15 voltage, or zero when unmonitored. |
struct PowerStatusData
fbs/sensors.fbs / Source schema
Battery or power-source state used for monitoring and failsafe decisions.
FlatBuffers root table: PowerStatus
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Sample timestamp in monotonic boot time. |
voltages | BatteryCellVoltages16 | Per-cell voltages for the monitored pack. | |
current_consumed_mah | int | milliamp-hours | Integrated discharged capacity since the producer’s reset point. |
energy_consumed_hj | int | hecto-joules; joules = value * 100 | Integrated discharged energy since the producer’s reset point. |
time_remaining_s | int | seconds | Estimated remaining runtime, or a negative value when unknown. |
fault_flags | ushort | bitmask | Bitmask of PowerFaultFlags bits. |
current_battery_da | short | deci-amps; amps = value / 10 | Battery current in deci-amps; positive means discharge. |
temperature_cdeg | short | centi-degrees Celsius; degC = value / 100 | Battery or power-module temperature in centi-degrees Celsius. |
remaining_pct | byte | percent | Remaining state of charge, or negative when unknown. |
id | ubyte | Battery instance identifier; also the instance segment of the Zenoh key. | |
battery_function | synapse.types.BatteryFunction | Role of this power source on the vehicle. | |
battery_type | synapse.types.BatteryType | Battery chemistry or power-source type. | |
charge_state | synapse.types.BatteryChargeState | Charging or discharge health state. | |
connected | bool | True when the power source is physically present and reporting. |
struct GnssFixData
fbs/sensors.fbs / Source schema
Global navigation satellite receiver fix and motion estimate. This is a raw-layer topic: angles keep the receiver’s native convention (clockwise from true north) so logs stay faithful to the hardware; the estimator converts to REP-0103 conventions for estimate-layer topics.
FlatBuffers root table: GnssFix
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Fix timestamp in monotonic boot time. |
time_unix_us | ulong | microseconds | Receiver-reported Unix time of the fix; valid when GnssFixFlags.TimeValid is set. |
latitude_deg_e7 | int | degrees scaled by 1e7; int32 preserves global-coordinate precision | Latitude in WGS-84 degrees scaled by 1e7. |
longitude_deg_e7 | int | degrees scaled by 1e7; int32 preserves global-coordinate precision | Longitude in WGS-84 degrees scaled by 1e7. |
altitude_msl_mm | int | millimeters | Height above mean sea level. |
altitude_ellipsoid_mm | int | millimeters | Height above the WGS-84 ellipsoid. |
horizontal_accuracy_mm | ushort | millimeters | One-sigma horizontal accuracy; producers must saturate at 65535, never truncation-cast (65535 means at or above 65.535 m, unusable). |
vertical_accuracy_mm | ushort | millimeters | One-sigma vertical accuracy; producers must saturate at 65535, never truncation-cast. |
velocity_accuracy_mm_s | ushort | millimeters per second | One-sigma velocity accuracy; producers must saturate at 65535, never truncation-cast. |
yaw_accuracy_cdeg | ushort | centidegrees; degrees = value / 100 | One-sigma yaw accuracy when receiver yaw is available. |
hdop_centi | ushort | centi-units; value / 100 | Horizontal dilution of precision scaled by 100. |
vdop_centi | ushort | centi-units; value / 100 | Vertical dilution of precision scaled by 100. |
ground_speed_cm_s | ushort | centimeters per second | Horizontal ground speed magnitude. |
course_over_ground_cdeg | ushort | centidegrees; degrees = value / 100 | Course over ground, receiver native: zero at true north, positive clockwise; valid when CourseValid is set. |
yaw_cdeg | ushort | centidegrees; degrees = value / 100 | Receiver-reported vehicle yaw, zero at true north, positive clockwise; valid when YawValid is set. |
velocity_up_cm_s | short | centimeters per second | Vertical velocity, positive up; valid when VelocityUpValid is set. |
flags | ubyte | bitmask | Bitmask of GnssFixFlags bits. |
fix_type | synapse.types.GnssFixType | Receiver fix quality. | |
satellites_used | ubyte | Number of satellites used in the solution. | |
satellites_visible | ubyte | Number of satellites tracked or visible. | |
id | ubyte | GNSS receiver instance identifier; also the instance segment of the Zenoh key. |
fbs/sil.fbs
Namespace: synapse.sil
Includes: types.fbs, control.fbs
| Kind | Name | Description |
|---|---|---|
table | SimInput | Simulation input root passed from a simulator into a controller under test. |
table SimInput
Simulation input root passed from a simulator into a controller under test.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
gyro_flu_rad_s | synapse.types.Vec3f | FLU body frame (x forward, y left, z up), radians per second | Simulated body angular velocity in the FLU frame. |
accel_flu_m_s2 | synapse.types.Vec3f | FLU body frame (x forward, y left, z up), meters per second squared | Simulated body linear acceleration in the FLU frame. |
rc | synapse.topic.RadioControlData | Simulated raw receiver input sample. | |
rc_link_quality_pct | ubyte | percent | Simulated receiver link quality from 0 to 100. |
rc_valid | bool | True when rc contains a valid receiver sample. | |
imu_valid | bool | True when gyro and accel contain valid inertial data. | |
target_boot_time_us | ulong | microseconds | Target controller boot time for deterministic simulation stepping. |
fbs/state.fbs
Namespace: synapse.topic
Includes: types.fbs
| Kind | Name | Description |
|---|---|---|
enum | SensorComponentFlags | Sensor and subsystem bits for the VehicleHealthData sensor bitmasks. |
enum | VehicleHealthFlags | Vehicle-level status bits for VehicleHealthData.flags. |
enum | AttitudeEstimateFlags | Field-validity bits for AttitudeEstimateData.flags. |
enum | LocalPositionFlags | Field-validity bits for LocalPositionEstimateData.flags. |
enum | GlobalPositionFlags | Field-validity bits for GlobalPositionEstimateData.flags. |
enum | HomeReferenceFlags | Field-validity bits for HomeReferenceData.flags. |
struct | VehicleHealthData | Vehicle-wide state summary for operator displays and failsafe supervision. |
struct | TimeReferenceData | Pairing between Unix time and monotonic boot time. |
struct | AttitudeEstimateData | Attitude estimate and angular velocity from the active estimator. The quaternion is the only attitude representation on the wire; consumers derive Euler angles locally when needed for display. |
struct | LocalPositionEstimateData | Local-frame position estimate for navigation and control. |
struct | GlobalPositionEstimateData | Global geodetic position estimate with compact velocity and status fields. |
struct | OdometryEstimateData | Combined pose, twist, covariance, and estimator metadata. |
struct | EstimatorHealthData | Estimator health and innovation-test summary. The flags field is deliberately producer-defined: estimator status models differ between implementations and are standardized via discovery records, not the schema. |
struct | MissionProgressData | Mission progress and mission database identifiers. |
struct | NavigationTargetData | Navigation controller target and tracking-error summary. Angles follow REP-0103: zero east, positive counter-clockwise, range -18000 to 18000. |
struct | HomeReferenceData | Home position and local-origin reference. |
table | VehicleHealth -> VehicleHealthData | FlatBuffers root wrapper for VehicleHealthData. |
table | TimeReference -> TimeReferenceData | FlatBuffers root wrapper for TimeReferenceData. |
table | AttitudeEstimate -> AttitudeEstimateData | FlatBuffers root wrapper for AttitudeEstimateData. |
table | LocalPositionEstimate -> LocalPositionEstimateData | FlatBuffers root wrapper for LocalPositionEstimateData. |
table | GlobalPositionEstimate -> GlobalPositionEstimateData | FlatBuffers root wrapper for GlobalPositionEstimateData. |
table | OdometryEstimate -> OdometryEstimateData | FlatBuffers root wrapper for OdometryEstimateData. |
table | EstimatorHealth -> EstimatorHealthData | FlatBuffers root wrapper for EstimatorHealthData. |
table | MissionProgress -> MissionProgressData | FlatBuffers root wrapper for MissionProgressData. |
table | NavigationTarget -> NavigationTargetData | FlatBuffers root wrapper for NavigationTargetData. |
table | HomeReference -> HomeReferenceData | FlatBuffers root wrapper for HomeReferenceData. |
enum SensorComponentFlags
Backing type: uint (bit_flags)
Sensor and subsystem bits for the VehicleHealthData sensor bitmasks.
| Name | Value | Notes |
|---|---|---|
Gyro | Angular-rate sensing. | |
Accel | Linear-acceleration sensing. | |
Mag | Magnetic field sensing. | |
AbsolutePressure | Static pressure sensing. | |
DifferentialPressure | Differential pressure sensing. | |
Gnss | Global navigation satellite receiver. | |
OpticalFlow | Optical-flow sensing. | |
VisionPosition | Vision or motion-capture positioning input. | |
Rangefinder | Distance-to-surface sensing. | |
RadioControl | Manual receiver input. | |
MotorOutputs | Actuator and motor output path. | |
Battery | Battery monitoring. | |
Estimator | State estimator. | |
Logging | Onboard logging. | |
CommandLink | Command and telemetry link. | |
Terrain | Terrain database or terrain following. |
enum VehicleHealthFlags
Backing type: ubyte (bit_flags)
Vehicle-level status bits for VehicleHealthData.flags.
| Name | Value | Notes |
|---|---|---|
Armed | Actuators are allowed to produce motion. | |
Failsafe | An active failsafe is affecting vehicle behavior. |
enum AttitudeEstimateFlags
Backing type: ubyte (bit_flags)
Field-validity bits for AttitudeEstimateData.flags.
| Name | Value | Notes |
|---|---|---|
AttitudeValid | The attitude quaternion is usable. | |
RatesValid | The angular-velocity fields are usable. |
enum LocalPositionFlags
Backing type: ubyte (bit_flags)
Field-validity bits for LocalPositionEstimateData.flags.
| Name | Value | Notes |
|---|---|---|
XyValid | Horizontal position is valid. | |
ZValid | Vertical position is valid. | |
VxyValid | Horizontal velocity is valid. | |
VzValid | Vertical velocity is valid. |
enum GlobalPositionFlags
Backing type: ubyte (bit_flags)
Field-validity bits for GlobalPositionEstimateData.flags.
| Name | Value | Notes |
|---|---|---|
Valid | The global position estimate is usable for navigation. | |
YawValid | The yaw estimate is usable. |
enum HomeReferenceFlags
Backing type: ubyte (bit_flags)
Field-validity bits for HomeReferenceData.flags.
| Name | Value | Notes |
|---|---|---|
PositionValid | Geodetic and local home positions are valid. | |
AttitudeValid | The home alignment quaternion is valid. | |
ApproachValid | The approach vector is valid. |
struct VehicleHealthData
Vehicle-wide state summary for operator displays and failsafe supervision.
FlatBuffers root table: VehicleHealth
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Sample timestamp in monotonic boot time. |
sensors_present | uint | Bitmask of SensorComponentFlags bits for detected components. | |
sensors_enabled | uint | Bitmask of SensorComponentFlags bits enabled for use. | |
sensors_health | uint | Bitmask of SensorComponentFlags bits currently considered healthy. | |
sensors_present_ext | uint | Reserved extension bitmask for future component bits. | |
sensors_enabled_ext | uint | Reserved extension bitmask for future component bits. | |
sensors_health_ext | uint | Reserved extension bitmask for future component bits. | |
load_dpermille | ushort | deci-percent; percent = value / 10, 1000 means 100% | Main controller load as deci-percent, where 1000 means 100%. |
voltage_battery_cv | ushort | centi-volts; volts = value / 100 | Primary battery pack voltage in centi-volts. |
current_battery_da | short | deci-amps; amps = value / 10 | Primary battery current in deci-amps; positive means discharge. |
drop_rate_comm_cpercent | ushort | centi-percent; percent = value / 100 | Communication drop rate as centi-percent. |
errors_comm | ushort | Communication error count. | |
battery_remaining_pct | byte | percent | Remaining primary battery percentage, or negative when unknown. |
vehicle_type | ubyte | Producer-defined vehicle class. | |
flight_mode | ubyte | Producer-defined active flight mode. | |
system_state | ubyte | Producer-defined high-level system state. | |
link_quality_pct | ubyte | percent | Command/control link quality from 0 to 100. |
flags | ubyte | bitmask | Bitmask of VehicleHealthFlags bits. |
struct TimeReferenceData
Pairing between Unix time and monotonic boot time.
FlatBuffers root table: TimeReference
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
time_unix_us | ulong | microseconds | Unix epoch timestamp corresponding to time_boot_us. |
time_boot_us | ulong | microseconds | Monotonic boot timestamp at which time_unix_us was sampled. |
struct AttitudeEstimateData
Attitude estimate and angular velocity from the active estimator. The quaternion is the only attitude representation on the wire; consumers derive Euler angles locally when needed for display.
FlatBuffers root table: AttitudeEstimate
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Estimate timestamp in monotonic boot time. |
attitude | synapse.types.Quaternionf | Orientation rotating body FLU vectors into the ENU world frame. | |
angular_velocity_flu_rad_s | synapse.types.RateTriplet | FLU body frame (x forward, y left, z up), radians per second | Body angular velocity in the FLU frame. |
flags | ubyte | bitmask | Bitmask of AttitudeEstimateFlags bits. |
struct LocalPositionEstimateData
Local-frame position estimate for navigation and control.
FlatBuffers root table: LocalPositionEstimate
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Estimate timestamp in monotonic boot time. |
position_enu_m | synapse.types.Vec3f | ENU frame (x east, y north, z up), meters | Local position relative to the active local origin. |
velocity_enu_m_s | synapse.types.Vec3f | ENU frame (x east, y north, z up), meters per second | Local velocity in the ENU frame. |
acceleration_enu_m_s2 | synapse.types.Vec3f | ENU frame (x east, y north, z up), meters per second squared | Local acceleration in the ENU frame. |
yaw_rad | float | radians | Heading angle; zero east and positive counter-clockwise. |
yaw_rate_rad_s | float | radians per second | Heading rate, positive counter-clockwise. |
flags | ubyte | bitmask | Bitmask of LocalPositionFlags bits. |
xy_reset_counter | ubyte | Increments when the estimator resets or jumps the horizontal state. | |
z_reset_counter | ubyte | Increments when the estimator resets or jumps the vertical state. |
struct GlobalPositionEstimateData
Global geodetic position estimate with compact velocity and status fields.
FlatBuffers root table: GlobalPositionEstimate
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Estimate timestamp in monotonic boot time. |
latitude_deg_e7 | int | degrees scaled by 1e7; int32 preserves global-coordinate precision | Latitude in WGS-84 degrees scaled by 1e7. |
longitude_deg_e7 | int | degrees scaled by 1e7; int32 preserves global-coordinate precision | Longitude in WGS-84 degrees scaled by 1e7. |
altitude_msl_mm | int | millimeters | Height above mean sea level. |
relative_altitude_mm | int | millimeters | Height above the active home or local origin. |
velocity_east_cm_s | short | centimeters per second | East component of global-frame velocity. |
velocity_north_cm_s | short | centimeters per second | North component of global-frame velocity. |
velocity_up_cm_s | short | centimeters per second | Up component of global-frame velocity. |
yaw_cdeg | short | centidegrees; degrees = value / 100 | Heading in the range -18000 to 18000; zero east and positive counter-clockwise per REP-0103. |
source | ubyte | Producer-defined source identifier for this global estimate. | |
flags | ubyte | bitmask | Bitmask of GlobalPositionFlags bits. |
struct OdometryEstimateData
Combined pose, twist, covariance, and estimator metadata.
FlatBuffers root table: OdometryEstimate
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Estimate timestamp in monotonic boot time. |
position_enu_m | synapse.types.Vec3f | ENU frame (x east, y north, z up), meters | Local position in the ENU frame. |
attitude | synapse.types.Quaternionf | Orientation rotating body FLU vectors into the ENU world frame. | |
velocity_enu_m_s | synapse.types.Vec3f | ENU frame (x east, y north, z up), meters per second | Linear velocity in the ENU frame. |
angular_velocity_flu_rad_s | synapse.types.RateTriplet | FLU body frame (x forward, y left, z up), radians per second | Body angular velocity in the FLU frame. |
pose_covariance | synapse.types.CovarianceUpperTriangle21f | Upper-triangular covariance for position and orientation. | |
velocity_covariance | synapse.types.CovarianceUpperTriangle21f | Upper-triangular covariance for linear and angular velocity. | |
frame_id | synapse.types.ReferenceFrame | Reference frame of the pose fields. | |
child_frame_id | synapse.types.ReferenceFrame | Frame of the twist fields. | |
reset_counter | ubyte | Increments when the estimator resets or jumps the state. | |
estimator_type | ubyte | Producer-defined estimator implementation identifier. | |
quality_pct | byte | percent | Overall odometry quality percentage, or negative when unknown. |
struct EstimatorHealthData
Estimator health and innovation-test summary. The flags field is deliberately producer-defined: estimator status models differ between implementations and are standardized via discovery records, not the schema.
FlatBuffers root table: EstimatorHealth
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Sample timestamp in monotonic boot time. |
flags | ushort | bitmask | Producer-defined estimator status and fault bitmask. |
velocity_test_ratio | float | dimensionless ratio | Innovation test ratio for velocity observations. |
pos_horiz_test_ratio | float | dimensionless ratio | Innovation test ratio for horizontal position observations. |
pos_vert_test_ratio | float | dimensionless ratio | Innovation test ratio for vertical position observations. |
mag_test_ratio | float | dimensionless ratio | Innovation test ratio for magnetic observations. |
hagl_test_ratio | float | dimensionless ratio | Innovation test ratio for height-above-ground observations. |
tas_test_ratio | float | dimensionless ratio | Innovation test ratio for true-airspeed observations. |
pos_horiz_accuracy_m | float | meters | Estimated one-sigma horizontal position accuracy. |
pos_vert_accuracy_m | float | meters | Estimated one-sigma vertical position accuracy. |
struct MissionProgressData
Mission progress and mission database identifiers.
FlatBuffers root table: MissionProgress
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Sample timestamp in monotonic boot time. |
mission_id | uint | Identifier that changes when the mission plan changes. | |
fence_id | uint | Identifier that changes when the geofence set changes. | |
rally_points_id | uint | Identifier that changes when the rally-point set changes. | |
current_seq | ushort | Current mission item sequence number. | |
total | ushort | Total number of mission items known to the producer. | |
mission_state | synapse.types.MissionState | Mission execution state. | |
mission_mode | ubyte | Producer-defined mission mode or mission type. |
struct NavigationTargetData
Navigation controller target and tracking-error summary. Angles follow REP-0103: zero east, positive counter-clockwise, range -18000 to 18000.
FlatBuffers root table: NavigationTarget
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Sample timestamp in monotonic boot time. |
altitude_error_m | float | meters | Target altitude minus estimated altitude. |
airspeed_error_m_s | float | meters per second | Target airspeed minus estimated airspeed. |
xtrack_error_m | float | meters | Cross-track error relative to the active path. |
desired_roll_cdeg | short | centidegrees; degrees = value / 100 | Roll angle requested by navigation. |
desired_pitch_cdeg | short | centidegrees; degrees = value / 100 | Pitch angle requested by navigation. |
desired_yaw_cdeg | short | centidegrees; degrees = value / 100 | Navigation yaw command. |
target_yaw_cdeg | short | centidegrees; degrees = value / 100 | Yaw toward the active target. |
distance_to_waypoint_m | ushort | meters | Remaining straight-line distance to the active waypoint. |
struct HomeReferenceData
Home position and local-origin reference.
FlatBuffers root table: HomeReference
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Reference timestamp in monotonic boot time. |
latitude_deg_e7 | int | degrees scaled by 1e7; int32 preserves global-coordinate precision | Home latitude in WGS-84 degrees scaled by 1e7. |
longitude_deg_e7 | int | degrees scaled by 1e7; int32 preserves global-coordinate precision | Home longitude in WGS-84 degrees scaled by 1e7. |
altitude_msl_mm | int | millimeters | Home height above mean sea level. |
local_position_enu_m | synapse.types.Vec3f | ENU frame (x east, y north, z up), meters | Home position in the active local ENU frame. |
attitude | synapse.types.Quaternionf | Map-to-local alignment rotating FLU vectors at home into ENU. | |
approach_enu_m | synapse.types.Vec3f | ENU frame (x east, y north, z up), meters | Preferred approach point or vector in the local ENU frame. |
flags | ubyte | bitmask | Bitmask of HomeReferenceFlags bits. |
fbs/telemetry.fbs
Namespace: synapse.topic
Includes: types.fbs
| Kind | Name | Description |
|---|---|---|
enum | GcsStatusFlags | Status bits for GcsStatusData.flags. |
struct | GcsStatusData | Compact vehicle status aggregate for low-rate ground-control links such as LoRa or satellite backhaul. This is a display-oriented estimate-layer summary published at 0.2 to 1 Hz; it is never used for control. Angles follow REP-0103: zero east, positive counter-clockwise. |
table | GcsStatus -> GcsStatusData | FlatBuffers root wrapper for GcsStatusData. |
enum GcsStatusFlags
fbs/telemetry.fbs / Source schema
Backing type: ubyte (bit_flags)
Status bits for GcsStatusData.flags.
| Name | Value | Notes |
|---|---|---|
Armed | Actuators are allowed to produce motion. | |
Failsafe | An active failsafe is affecting vehicle behavior. | |
GlobalPositionValid | The latitude/longitude/altitude fields are usable. | |
YawValid | The yaw field is usable. | |
HomeSet | A home reference is set and distance_home_dam is meaningful. | |
RcLink | The manual control link is healthy. | |
GcsLink | The ground-control link is healthy. |
struct GcsStatusData
fbs/telemetry.fbs / Source schema
Compact vehicle status aggregate for low-rate ground-control links such as LoRa or satellite backhaul. This is a display-oriented estimate-layer summary published at 0.2 to 1 Hz; it is never used for control. Angles follow REP-0103: zero east, positive counter-clockwise.
FlatBuffers root table: GcsStatus
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
time_boot_ms | uint | milliseconds | Sample timestamp in monotonic boot time. |
latitude_deg_e7 | int | degrees scaled by 1e7; int32 preserves global-coordinate precision | Latitude in WGS-84 degrees scaled by 1e7. |
longitude_deg_e7 | int | degrees scaled by 1e7; int32 preserves global-coordinate precision | Longitude in WGS-84 degrees scaled by 1e7. |
altitude_msl_m | short | meters | Height above mean sea level. |
relative_altitude_m | short | meters | Height above the home reference. |
yaw_cdeg | short | centidegrees; degrees = value / 100 | Heading in the range -18000 to 18000; zero east, positive counter-clockwise. |
ground_speed_cm_s | ushort | centimeters per second | Horizontal ground speed magnitude. |
climb_cm_s | short | centimeters per second | Vertical speed, positive up. |
distance_home_dam | ushort | decameters; meters = value * 10 | Straight-line distance to home in decameters. |
voltage_battery_cv | ushort | centi-volts; volts = value / 100 | Primary battery pack voltage in centi-volts. |
current_battery_da | short | deci-amps; amps = value / 10 | Primary battery current in deci-amps; positive means discharge. |
mission_seq | ushort | Current mission item sequence number. | |
battery_remaining_pct | byte | percent | Remaining battery percentage, or negative when unknown. |
flight_mode | ubyte | Producer-defined active flight mode. | |
system_state | ubyte | Producer-defined high-level system state. | |
link_quality_pct | ubyte | percent | Command/control link quality from 0 to 100. |
satellites_used | ubyte | Number of GNSS satellites used in the solution. | |
fix_type | synapse.types.GnssFixType | GNSS fix quality. | |
flags | ubyte | bitmask | Bitmask of GcsStatusFlags bits. |
fbs/transfer.fbs
Namespace: synapse.cmd
Includes: types.fbs, control.fbs
| Kind | Name | Description |
|---|---|---|
enum | CmdId | Stable numeric identifiers for command and transfer services. Zenoh deployments select services by key (synapse/v1/cmd/ |
enum | ParamKind | Value type carried by a ParamValue record. |
table | ParamValue | One named parameter value. Tables are appropriate here: parameter transfer is a cached request/reply flow, never a control-loop payload. |
table | ParamGetRequest | Request one parameter by name, or all parameters when name is absent. Served as a Zenoh queryable on the cmd key space. |
table | ParamGetReply | Reply to ParamGetRequest. |
table | ParamSetRequest | Request to set one parameter. Served as a Zenoh queryable. |
table | ParamSetReply | Reply to ParamSetRequest. |
table | MissionItem | One mission item: a sequenced geographic command. |
table | MissionGetRequest | Request the mission plan. Served as a Zenoh queryable. |
table | MissionGetReply | Reply to MissionGetRequest. |
table | MissionSetRequest | Request to replace the mission plan. Served as a Zenoh queryable. |
table | MissionSetReply | Reply to MissionSetRequest. |
enum CmdId
fbs/transfer.fbs / Source schema
Backing type: ushort
Stable numeric identifiers for command and transfer services. Zenoh deployments select services by key (synapse/v1/cmd/
| Name | Value | Notes |
|---|---|---|
Unknown | 0 | Reserved value for invalid or unassigned services. |
VehicleCommand | 1 | Generic command with floating-point arguments. |
GeoCommand | 2 | Geographic command with scaled latitude/longitude precision. |
ParamGet | 3 | Fetch one parameter by name, or all parameters. |
ParamSet | 4 | Set one parameter. |
MissionGet | 5 | Fetch the mission plan. |
MissionSet | 6 | Replace the mission plan. |
enum ParamKind
fbs/transfer.fbs / Source schema
Backing type: ubyte
Value type carried by a ParamValue record.
| Name | Value | Notes |
|---|---|---|
Float | 0 | float_value carries the parameter. |
Int | 1 | int_value carries the parameter. |
Bool | 2 | int_value carries the parameter as zero or one. |
Text | 3 | text_value carries the parameter. |
table ParamValue
fbs/transfer.fbs / Source schema
One named parameter value. Tables are appropriate here: parameter transfer is a cached request/reply flow, never a control-loop payload.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
name | string | Parameter name unique within the producer. | |
kind | ParamKind | Which value field carries the parameter. | |
float_value | double | Floating-point value when kind is Float. | |
int_value | long | Integer or boolean value when kind is Int or Bool. | |
text_value | string | Text value when kind is Text. |
table ParamGetRequest
fbs/transfer.fbs / Source schema
Request one parameter by name, or all parameters when name is absent. Served as a Zenoh queryable on the cmd key space.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
name | string | Parameter name to fetch; absent or empty requests all parameters. |
table ParamGetReply
fbs/transfer.fbs / Source schema
Reply to ParamGetRequest.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
result | synapse.types.CommandResultCode | Request outcome. | |
values | [ParamValue] | Returned parameter values. | |
total | uint | Total number of parameters held by the producer. |
table ParamSetRequest
fbs/transfer.fbs / Source schema
Request to set one parameter. Served as a Zenoh queryable.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
value | ParamValue | Parameter name and new value. |
table ParamSetReply
fbs/transfer.fbs / Source schema
Reply to ParamSetRequest.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
result | synapse.types.CommandResultCode | Request outcome. | |
value | ParamValue | Parameter value in effect after the request. |
table MissionItem
fbs/transfer.fbs / Source schema
One mission item: a sequenced geographic command.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
seq | uint | Item sequence number starting at zero. | |
item | synapse.topic.GeoCommandData | Fixed-layout geographic command payload. |
table MissionGetRequest
fbs/transfer.fbs / Source schema
Request the mission plan. Served as a Zenoh queryable.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
mission_id | uint | Mission identifier to fetch, or zero for the current plan. |
table MissionGetReply
fbs/transfer.fbs / Source schema
Reply to MissionGetRequest.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
result | synapse.types.CommandResultCode | Request outcome. | |
mission_id | uint | Identifier of the returned plan; matches MissionProgressData.mission_id. | |
items | [MissionItem] | Mission items in sequence order. |
table MissionSetRequest
fbs/transfer.fbs / Source schema
Request to replace the mission plan. Served as a Zenoh queryable.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
mission_id | uint | Identifier the producer should report for this plan. | |
items | [MissionItem] | Mission items in sequence order. |
table MissionSetReply
fbs/transfer.fbs / Source schema
Reply to MissionSetRequest.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
result | synapse.types.CommandResultCode | Request outcome. | |
mission_id | uint | Identifier of the plan now active in the producer. |
fbs/transport.fbs
Namespace: synapse.topic
Includes: types.fbs, sensors.fbs, state.fbs, control.fbs, optical_flow.fbs, mocap.fbs, telemetry.fbs
| Kind | Name | Description |
|---|---|---|
table | TextStatus | Human-readable status text for diagnostics, operator messages, and logs. |
union | SynapseMessage | Union of topic root tables supported by the optional multiplexed Frame transport. Order mirrors TopicId; the union discriminator is one byte, so Frame supports at most 255 topics. |
struct | FrameHeader | Fixed-layout header carried by the optional multiplexed Frame transport. |
table | Frame | Optional multiplexed transport frame for generic bridges and multiplexed byte streams. This is an intentional table boundary: the canonical Zenoh encoding publishes bare fixed-layout payload structs with the key as the discriminator, and constrained serial links should prefer the compact framing described in the README ([sync][len][topic_id][seq][flags] [bare struct][crc16]) over this envelope. Frame remains for consumers that need a self-contained FlatBuffers container. |
table TextStatus
fbs/transport.fbs / Source schema
Human-readable status text for diagnostics, operator messages, and logs.
| Name | Type | Default | Unit / Scale | Notes |
|---|---|---|---|---|
timestamp_us | ulong | microseconds | Message timestamp in monotonic boot time. | |
severity | synapse.types.Severity | Informational | RFC 5424 severity level. | |
text | string | UTF-8 status text; this table is variable-size by design. |
union SynapseMessage
fbs/transport.fbs / Source schema
Union of topic root tables supported by the optional multiplexed Frame transport. Order mirrors TopicId; the union discriminator is one byte, so Frame supports at most 255 topics.
| Name | Type | Notes |
|---|---|---|
VehicleHealth | VehicleHealth | Vehicle-level arming, failsafe, mode, link, and health summary. |
TimeReference | TimeReference | Boot-time to Unix-time reference sample. |
RadioControl | RadioControl | Raw receiver channel input sample. |
ManualControlCommand | ManualControlCommand | Normalized manual pilot intent command. |
InertialSample | InertialSample | IMU, magnetometer, static pressure, and temperature sample. |
AirData | AirData | Barometric and aerodynamic measurement sample. |
PowerStatus | PowerStatus | Battery or power-source state sample. |
GnssFix | GnssFix | GNSS fix and motion estimate. |
OpticalFlow | OpticalFlow | Integrated optical-flow sample. |
OpticalFlowVelocity | OpticalFlowVelocity | Velocity estimate derived from optical flow. |
AttitudeEstimate | AttitudeEstimate | Attitude and angular-velocity estimate. |
LocalPositionEstimate | LocalPositionEstimate | Local ENU position, velocity, acceleration, and yaw estimate. |
GlobalPositionEstimate | GlobalPositionEstimate | Global geodetic position and velocity estimate. |
OdometryEstimate | OdometryEstimate | Combined pose, twist, covariance, and estimator metadata. |
EstimatorHealth | EstimatorHealth | Estimator health and innovation-test summary. |
MissionProgress | MissionProgress | Mission progress and mission database identifiers. |
NavigationTarget | NavigationTarget | Navigation target and tracking-error summary. |
HomeReference | HomeReference | Home geodetic origin and local-frame reference. |
AttitudeCommand | AttitudeCommand | Attitude setpoint command. |
RateCommand | RateCommand | Body-rate setpoint command. |
LocalPositionCommand | LocalPositionCommand | Local position/velocity/acceleration/yaw command. |
VehicleCommand | VehicleCommand | Generic command with floating-point arguments. |
GeoCommand | GeoCommand | Geographic command with scaled latitude/longitude precision. |
CommandResult | CommandResult | Command result and progress response. |
ActuatorCommand | ActuatorCommand | Normalized actuator command. |
ActuatorFeedback | ActuatorFeedback | Normalized actuator feedback. |
PwmSignalOutputs | PwmSignalOutputs | Raw PWM output pulse widths. |
ControlLoopMetrics | ControlLoopMetrics | Control-loop timing and load metrics. |
TextStatus | TextStatus | Human-readable status text. |
GcsStatus | GcsStatus | Compact status aggregate for low-rate ground-control links. |
MocapFrame | MocapFrame | Motion-capture samples for one capture timestamp. |
MocapDefinition | MocapDefinition | Cached motion-capture object definitions. |
struct FrameHeader
fbs/transport.fbs / Source schema
Fixed-layout header carried by the optional multiplexed Frame transport.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
timestamp_us | ulong | microseconds | Frame publication timestamp in monotonic boot time. |
sequence | uint | Monotonic sequence counter for loss/reorder detection. | |
flags | ushort | bitmask | Frame-envelope bitmask for serial or raw byte-stream features; zero means no envelope extensions. |
topic_id | TopicId | Numeric topic identifier for the enclosed message. | |
system_id | ubyte | Source system identifier for links without key-based routing. | |
component_id | ubyte | Source component identifier. | |
protocol_version | ubyte | Synapse wire/schema compatibility version used by the publisher. |
table Frame
fbs/transport.fbs / Source schema
Optional multiplexed transport frame for generic bridges and multiplexed byte streams. This is an intentional table boundary: the canonical Zenoh encoding publishes bare fixed-layout payload structs with the key as the discriminator, and constrained serial links should prefer the compact framing described in the README ([sync][len][topic_id][seq][flags] [bare struct][crc16]) over this envelope. Frame remains for consumers that need a self-contained FlatBuffers container.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
header | FrameHeader | Fixed-layout transport header. | |
message | SynapseMessage | Variable message payload selected by the union discriminator. |
fbs/types.fbs
Namespace: synapse.topic
| Kind | Name | Description |
|---|---|---|
struct | Vec2f | Two-component float vector used for planar rates, flow, and image motion. |
struct | Vec3f | Three-component float vector used for ENU world vectors and FLU body vectors. |
struct | Quaternionf | Unit quaternion in Hamilton convention, component order w, x, y, z. It rotates body-frame FLU vectors into the world ENU frame: v_enu = q * v_flu * conjugate(q). Identity rotation is 1, 0, 0, 0. |
struct | RateTriplet | Roll, pitch, and yaw rates or rate setpoints about the FLU body axes. |
struct | CovarianceUpperTriangle21f | Upper-triangular 6x6 covariance matrix stored row-major as 21 float values. State order is x, y, z translation followed by rotation about x, y, z. |
enum | Severity | Text and diagnostic severity levels following RFC 5424 syslog numbering. |
enum | CommandResultCode | Result of command or transfer request execution. |
enum | GnssFixType | GNSS receiver fix quality. |
enum | BatteryChargeState | Battery or power-source charging state. |
enum | BatteryFunction | Role a battery or power source plays on the vehicle. |
enum | BatteryType | Battery chemistry or power-source type. |
enum | MissionState | Mission execution state. |
enum | GeoAltitudeFrame | Altitude reference frame for geographic commands and mission items. |
enum | LocalFrame | Local coordinate frame selector for local-frame commands. |
enum | ReferenceFrame | Reference frame identifiers for odometry and pose products. |
enum | TopicId | Stable numeric identifiers for well-known Synapse topics. Values are contiguous and mirror the SynapseMessage union order in transport.fbs. |
struct Vec2f
Two-component float vector used for planar rates, flow, and image motion.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
x | float | First axis component; frame and unit are defined by the containing field name. | |
y | float | Second axis component; frame and unit are defined by the containing field name. |
struct Vec3f
Three-component float vector used for ENU world vectors and FLU body vectors.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
x | float | X component; east in ENU fields and forward in FLU fields. | |
y | float | Y component; north in ENU fields and left in FLU fields. | |
z | float | Z component; up in both ENU and FLU fields. |
struct Quaternionf
Unit quaternion in Hamilton convention, component order w, x, y, z. It rotates body-frame FLU vectors into the world ENU frame: v_enu = q * v_flu * conjugate(q). Identity rotation is 1, 0, 0, 0.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
w | float | Scalar component. | |
x | float | Vector X component. | |
y | float | Vector Y component. | |
z | float | Vector Z component. |
struct RateTriplet
Roll, pitch, and yaw rates or rate setpoints about the FLU body axes.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
roll | float | Rotation rate about the body X (forward) axis. | |
pitch | float | Rotation rate about the body Y (left) axis. | |
yaw | float | Rotation rate about the body Z (up) axis. |
struct CovarianceUpperTriangle21f
Upper-triangular 6x6 covariance matrix stored row-major as 21 float values. State order is x, y, z translation followed by rotation about x, y, z.
| Name | Type | Unit / Scale | Notes |
|---|---|---|---|
c0 | float | Matrix element (0,0). | |
c1 | float | Matrix element (0,1). | |
c2 | float | Matrix element (0,2). | |
c3 | float | Matrix element (0,3). | |
c4 | float | Matrix element (0,4). | |
c5 | float | Matrix element (0,5). | |
c6 | float | Matrix element (1,1). | |
c7 | float | Matrix element (1,2). | |
c8 | float | Matrix element (1,3). | |
c9 | float | Matrix element (1,4). | |
c10 | float | Matrix element (1,5). | |
c11 | float | Matrix element (2,2). | |
c12 | float | Matrix element (2,3). | |
c13 | float | Matrix element (2,4). | |
c14 | float | Matrix element (2,5). | |
c15 | float | Matrix element (3,3). | |
c16 | float | Matrix element (3,4). | |
c17 | float | Matrix element (3,5). | |
c18 | float | Matrix element (4,4). | |
c19 | float | Matrix element (4,5). | |
c20 | float | Matrix element (5,5). |
enum Severity
Backing type: ubyte
Text and diagnostic severity levels following RFC 5424 syslog numbering.
| Name | Value | Notes |
|---|---|---|
Emergency | 0 | System is unusable; immediate operator action required. |
Alert | 1 | Action must be taken immediately. |
Critical | 2 | Critical condition affecting flight safety. |
Error | 3 | Error condition; a function is not working. |
Warning | 4 | Warning condition; degraded but functional. |
Notice | 5 | Normal but significant event. |
Informational | 6 | Informational message. |
Debug | 7 | Developer diagnostic message. |
enum CommandResultCode
Backing type: ubyte
Result of command or transfer request execution.
| Name | Value | Notes |
|---|---|---|
Accepted | 0 | Command was accepted and executed or scheduled. |
TemporarilyRejected | 1 | Valid command rejected in the current state; retry may succeed. |
Denied | 2 | Command is valid but permanently refused in this configuration. |
Unsupported | 3 | Command is unknown or not implemented by this producer. |
Failed | 4 | Command was attempted and failed during execution. |
InProgress | 5 | Command accepted; execution continues and progress updates follow. |
Cancelled | 6 | Command execution was cancelled before completion. |
enum GnssFixType
Backing type: ubyte
GNSS receiver fix quality.
| Name | Value | Notes |
|---|---|---|
NoFix | 0 | No position solution. |
TimeOnly | 1 | Time-only solution without position. |
Fix2d | 2 | Two-dimensional position fix. |
Fix3d | 3 | Three-dimensional position fix. |
Dgnss | 4 | Differentially corrected fix. |
RtkFloat | 5 | RTK solution with float ambiguities. |
RtkFixed | 6 | RTK solution with fixed ambiguities. |
DeadReckoning | 7 | Dead-reckoning or combined solution without full GNSS observability. |
enum BatteryChargeState
Backing type: ubyte
Battery or power-source charging state.
| Name | Value | Notes |
|---|---|---|
Unknown | 0 | Charge state is not reported. |
Ok | 1 | Normal operation. |
Low | 2 | Low charge; operator attention advised. |
Critical | 3 | Critical charge; land or recover soon. |
Emergency | 4 | Emergency charge level; immediate action required. |
Failed | 5 | Battery failure detected. |
Unhealthy | 6 | Battery is degraded or operating outside limits. |
Charging | 7 | Battery is charging. |
enum BatteryFunction
Backing type: ubyte
Role a battery or power source plays on the vehicle.
| Name | Value | Notes |
|---|---|---|
Unknown | 0 | Function is not reported. |
Propulsion | 1 | Powers motors and propulsion. |
Avionics | 2 | Powers flight controllers and avionics. |
Payload | 3 | Powers a payload or auxiliary system. |
enum BatteryType
Backing type: ubyte
Battery chemistry or power-source type.
| Name | Value | Notes |
|---|---|---|
Unknown | 0 | Chemistry is not reported. |
LiPo | 1 | Lithium polymer. |
LiIon | 2 | Lithium ion. |
LiFe | 3 | Lithium iron phosphate. |
NiMh | 4 | Nickel metal hydride. |
Pb | 5 | Lead acid. |
enum MissionState
Backing type: ubyte
Mission execution state.
| Name | Value | Notes |
|---|---|---|
Unknown | 0 | Mission state is not reported. |
Idle | 1 | No mission is executing. |
Active | 2 | Mission is executing. |
Paused | 3 | Mission is paused and can resume. |
Complete | 4 | Mission finished all items. |
enum GeoAltitudeFrame
Backing type: ubyte
Altitude reference frame for geographic commands and mission items.
| Name | Value | Notes |
|---|---|---|
Msl | 0 | Altitude above mean sea level. |
Ellipsoid | 1 | Altitude above the WGS-84 ellipsoid. |
RelativeHome | 2 | Altitude relative to the home reference. |
Terrain | 3 | Altitude above terrain. |
enum LocalFrame
Backing type: ubyte
Local coordinate frame selector for local-frame commands.
| Name | Value | Notes |
|---|---|---|
LocalEnu | 0 | Local ENU frame anchored at the active local origin. |
BodyFlu | 1 | Vehicle body FLU frame. |
enum ReferenceFrame
Backing type: ubyte
Reference frame identifiers for odometry and pose products.
| Name | Value | Notes |
|---|---|---|
Unknown | 0 | Frame is not reported. |
LocalEnu | 1 | Local ENU frame anchored at the active local origin. |
BodyFlu | 2 | Vehicle body FLU frame. |
MapEnu | 3 | Persistent map ENU frame. |
MocapEnu | 4 | Motion-capture system ENU frame. |
enum TopicId
Backing type: ushort
Stable numeric identifiers for well-known Synapse topics. Values are contiguous and mirror the SynapseMessage union order in transport.fbs.
| Name | Value | Notes |
|---|---|---|
Unknown | 0 | Reserved value for invalid, unassigned, or externally named topics. |
VehicleHealth | 1 | Vehicle-level arming, failsafe, mode, link, and health summary. |
TimeReference | 2 | Correlates boot-relative time with an absolute Unix time reference. |
RadioControl | 3 | Raw receiver channel input and link quality. |
ManualControlCommand | 4 | Normalized manual pilot intent after input mapping. |
InertialSample | 5 | IMU, magnetometer, static pressure, and temperature sample. |
AirData | 6 | Barometric and aerodynamic measurements used by fixed-wing control. |
PowerStatus | 7 | Battery, current, energy, and power-source state. |
GnssFix | 8 | Global navigation fix, accuracy, velocity, and heading information. |
OpticalFlow | 9 | Integrated optical-flow sample from an image sensor or flow module. |
OpticalFlowVelocity | 10 | Velocity estimate derived from optical flow. |
AttitudeEstimate | 11 | Vehicle attitude estimate and angular velocity. |
LocalPositionEstimate | 12 | Local ENU position, velocity, acceleration, and yaw estimate. |
GlobalPositionEstimate | 13 | Global latitude/longitude/altitude estimate with ENU velocity. |
OdometryEstimate | 14 | Combined pose, twist, covariance, and estimator quality sample. |
EstimatorHealth | 15 | Estimator consistency metrics and accuracy estimates. |
MissionProgress | 16 | Mission item progress and mission database identifiers. |
NavigationTarget | 17 | Current navigation target and tracking-error summary. |
HomeReference | 18 | Home geodetic origin and corresponding local-frame reference. |
AttitudeCommand | 19 | Attitude setpoint with optional body-rate and thrust feed-forward. |
RateCommand | 20 | Body-rate setpoint with thrust feed-forward. |
LocalPositionCommand | 21 | Local ENU position/velocity/acceleration/yaw setpoint. |
VehicleCommand | 22 | Generic command with floating-point arguments. |
GeoCommand | 23 | Geographic command with scaled latitude/longitude precision. |
CommandResult | 24 | Result and progress for a previously issued command or request. |
ActuatorCommand | 25 | Normalized actuator control request. |
ActuatorFeedback | 26 | Normalized actuator output feedback. |
PwmSignalOutputs | 27 | Raw PWM output pulse widths. |
ControlLoopMetrics | 28 | Control-loop timing, overrun, and load telemetry. |
TextStatus | 29 | Human-readable status or diagnostic text. |
GcsStatus | 30 | Compact vehicle status aggregate for low-rate ground-control links. |
MocapFrame | 31 | Motion-capture samples for one capture timestamp. |
MocapDefinition | 32 | Cached motion-capture object definitions. |