Susi Server

PX4 DDS Source

Node ID: px4DdsSource · Role: Source · Realtime config: no

Description

Subscribes to PX4 uORB topics via the Micro XRCE-DDS agent. Receives sensor_combined IMU data from a PX4 flight controller over Ethernet or UART. Pairs with the PX4 DDS Sink to integrate FusionHub with a PX4 autopilot as a companion-computer navigation stack.

Inputs / Outputs

Config aliases

Px4DdsSource, px4DdsSource, px4Source

Properties

The following fields are exposed in the node’s Properties panel in the UI. Types map to UI widgets (e.g. string → text input, number → numeric, boolean → toggle, select → dropdown, json → JSON editor).

KeyLabelTypeDefaultDescription / Notes
namespaceTopic Namespacestring/fmuPX4 uXRCE-DDS client namespace. Default ‘/fmu’. For multi-vehicle setups use ‘/px4_1/fmu’ etc.
bridgeEndpointBridge Endpointstringtcp/[::1]:7447Zenoh locator of the zenoh-bridge-ros2dds process. Loopback by default; matches the bundled bridge’s listen socket.
autoSpawnBridgeAuto-spawn Bridge ProcessbooleantrueWhen on, fusionhub spawns the bundled zenoh-bridge-ros2dds process automatically. Turn off if you’re already running it.
senderIdSender IDstringpx4Value written to ImuData.sender_id on emitted packets.
subscribeSensorCombinedSubscribe sensor_combinedbooleantrue

Example node definition

A full node definition in config.json looks like the block below. Paste it under the sources key of your config, keyed by the node’s instance name (any identifier; it doesn’t have to match the node ID).

{
  "sources": {
    "px4DdsSource": {
      "outEndpoint": "inproc://px4DdsSource_data",
      "settings": {
        "autoSpawnBridge": true,
        "bridgeEndpoint": "tcp/[::1]:7447",
        "namespace": "/fmu",
        "senderId": "px4",
        "subscribeSensorCombined": true
      }
    }
  }
}

Field reference

FieldPurpose
outEndpointZMQ / inproc endpoint this source binds to publish its output. The runtime auto-generates one if omitted.
settingsAll user-configurable fields — see the Properties table above.

Connections can also be declared at the top-level connections array when settings.explicitConnections is true, as an alternative to filling inputEndpoints on each node.

Loading documentation…