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
- Inputs:
GlobalFusedPose - Outputs: (none)
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.
| Property | Type | Default | Description |
|---|---|---|---|
Topic Namespace namespace | string | /fmu | PX4 uXRCE-DDS client namespace (matches UXRCE_DDS_NAMESPACE on PX4). Default ‘/fmu’. Use ‘/px4_1/fmu’ etc. for multi-vehicle. |
Bridge Endpoint bridgeEndpoint | string | tcp/[::1]:7447 | Zenoh 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 autoSpawnBridge | boolean | true | When on, fusionhub spawns the bundled zenoh-bridge-ros2dds process automatically. Turn off if you’re already running it. |
Device ID deviceId | number | 1608515585 | Unique device_id written to SensorGps to distinguish FusionHub from real GPS receivers. Any non-zero u32 works. |
Fix Type fixType | enum:3D,RTK_FLOAT,RTK_FIXED,DEAD_RECKONING | 3D | GPS fix quality reported to PX4. RTK_FIXED signals highest confidence (lowest innovation noise in EKF2). |
Horizontal Accuracy (m) eph | number | 0.5 | SensorGps.eph — horizontal position std dev in meters. |
Vertical Accuracy (m) epv | number | 1.0 | SensorGps.epv — vertical position std dev in meters. |
Heading Accuracy (rad) headingAccuracy | number | 0.05 | Standard deviation of the body-yaw estimate (rad, ~3° default). |
Satellites Used satellitesUsed | number | 16 | Reported 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": {}
}
}
}