Susi Server

PX4 DDS Sink

Node ID: px4DdsSink · Role: Sink · Realtime config: no

Description

Publishes FusionHub’s GlobalFusedPose to PX4 as an external GPS source (SensorGps on ‘/in/sensor_gps’). PX4 treats FusionHub as a real GPS receiver - EKF2 fuses the position natively, and body-yaw is carried via SensorGps.heading. Enables FusionHub to act as the primary navigation filter for a companion-computer + PX4 drone stack.

Inputs / Outputs

Config aliases

Px4DdsSink, px4DdsSink, px4Sink

Properties

Each row shows the setting’s label in the node’s Properties panel and, in code, its key in the node’s settings object in the config file. A setting omitted from the config file uses the default shown here.

PropertyTypeDefaultDescription
Topic Namespace namespacestring/fmuPX4 uXRCE-DDS client namespace (matches UXRCE_DDS_NAMESPACE on PX4). Default ‘/fmu’. Use ‘/px4_1/fmu’ etc. for multi-vehicle.
Bridge Endpoint bridgeEndpointstringtcp/[::1]:7447Zenoh locator of the zenoh-bridge-ros2dds process. Loopback by default; the bridge auto-spawned by any Zenoh node binds to tcp/[::]:7447 so this works out of the box.
Auto-spawn Bridge Process autoSpawnBridgebooleantrueWhen on, fusionhub spawns the bundled zenoh-bridge-ros2dds process automatically. Turn off if you’re already running it.
Device ID deviceIdnumber1608515585Unique device_id written to SensorGps to distinguish FusionHub from real GPS receivers. Any non-zero u32 works.
Fix Type fixTypeenum:3D,RTK_FLOAT,RTK_FIXED,DEAD_RECKONING3DGPS fix quality reported to PX4. RTK_FIXED signals highest confidence (lowest innovation noise in EKF2).
Horizontal Accuracy (m) ephnumber0.5SensorGps.eph — horizontal position std dev in meters.
Vertical Accuracy (m) epvnumber1.0SensorGps.epv — vertical position std dev in meters.
Heading Accuracy (rad) headingAccuracynumber0.05Standard deviation of the body-yaw estimate (rad, ~3° default).
Satellites Used satellitesUsednumber16Reported satellite count. Cosmetic for PX4’s EKF2 but affects ground-station displays.

Example node definition

A minimal entry in config.json looks like the block below. Paste it under the sinks key, keyed by an instance name of your choice. All settings are optional: anything not listed under settings uses the default from the Properties table above. See The configuration file for how the sections and endpoint wiring work.

{
  "sinks": {
    "px4DdsSink": {
      "inputEndpoints": [
        "inproc://globalFusedPose_data"
      ],
      "inputDataFilter": [
        "GlobalFusedPose"
      ],
      "settings": {}
    }
  }
}
Loading documentation…