Sharing PX4-FlightAxis-Bridge — RealFlight Evolution as a PX4 simulator

Hi everyone,

I’d like to share an open-source project I’ve been working on that might interest
anyone doing SITL/HITL work: PX4-FlightAxis-Bridge, which connects PX4 Autopilot
to RealFlight Evolution over the FlightAxis Link protocol.

Why

RealFlight Evolution is one of the most realistic RC simulators I’ve used. I’ve
tested it across models of very different sizes, comparing each simulated model
against its real-world counterpart — from full manual aerobatics to autonomous
missions. Running ArduPilot (which already has a FlightAxis backend), the results
were remarkably close to reality: build the model faithfully, and even the same
tuning parameters carried over from sim to the real aircraft.

PX4 ships in-tree bridges for Gazebo and jMAVSim, but not for RealFlight — so I
built one.

What it is

The bridge is wired into the PX4 tree: it compiles with the PX4 make system and
launches like the built-in simulators, with a single make command. QGC connects on
UDP 14550 as usual; RealFlight runs on a separate Windows box on the same wired
network.

  • 18 airframes: planes, multirotors (quad through dodeca), quadplanes, hexas,
    helicopters
  • SITL + HITL (against a real flight-controller board)
  • ROS 2 offboard control (uXRCE-DDS)
  • One-command install into an existing PX4 v1.16 checkout, with a clean uninstall
    that reverses every change
  • Targets PX4 v1.16.0, GPLv3, fully documented

So far I’ve flown plane, quadplane, helicopter, and an octo-coaxial multirotor on
it, from manual sticks through automated missions.

Honest limitations

The four tilt/servo/coaxial frames (tiltrotor, tailsitter, tricopter, coaxial heli)
build and run, but their channel maps and gains are still lifted from PX4 defaults
and not yet validated against real RealFlight models — testers there especially
welcome.

More than a tool, this was a way for me to learn PX4 internals and flight dynamics.
Feedback, questions, and contributions are very welcome.

Repo: GitHub - evandas11/PX4-FlightAxis-Bridge: Fly PX4 in RealFlight — a FlightAxis Link bridge for PX4 SITL & HITL. 18 airframes, ROS 2, one-command install. · GitHub

Thanks!

I am getting stuck at the part where I would normally do senor calibration in QGC. I cant get it to arm because of the MAG and airspeed sensor preflight check. How did you get around this?

Hi.
It’s not a calibration problem — the calibration fails because the sensor stream is broken.

These three lines repeating every cycle are the cause:

ExchangeData failed, retrying … / recovered after 1 retries / glitch 0.20s

The bridge’s round trip to RealFlight is stalling ~200 ms, so PX4 stops receiving the HIL sensor stream — that’s the poll timeout, the MAG/BARO TIMEOUT!, and (downstream of the spoiled EKF yaw) Airspeed invalid. Your compass isn’t uncalibrated, its data just isn’t arriving. Nothing to bypass; fix the feed and all four clear together.

Two things:

  1. Wired network, not WiFi. Every exchange is a blocking round trip, so latency decides the rate. WiFi produces exactly this run of glitch lines.
  2. Settings → Physics (ESC → Settings → Physics → Quality on Evolution): enable “RealFlight Link”, set “Pause Sim When in Background” and “Pause Sim when in Menu” to No, then restart RealFlight.

My bet is #2 — calibrating means alt-tabbing to QGC, and if RealFlight pauses on focus loss, the stream dies exactly when you go to calibrate. Also check physics speed is 100

O okay thanks. I am running the sim via WSL looks like my my computer is the problem and can’t hack running both programs at the same time. This error goes away when i run it on wsl with a more powerful machine.

Have you tried running it as plane much. It looks like it thinks its a quad plane when It run it using make make px4_sitl_nolockstep flightaxis_plane. I takeoff in manual mode with the joystick and I get this MR(vtol) in the top left corner. The plane seems to fly like it should though.