Proposal: generic airship support for PX4

Hi PX4 community,

I’m interested in helping improve airship support in PX4 and would appreciate maintainer/community guidance before preparing any PRs.

I reviewed the existing Airship/Cloudship work. Cloudline’s contribution seems to have been an important first step: it introduced the initial PX4 airship path, the Cloudship airframe/model, startup structure, and Gazebo Classic simulation reference.

PX4’s current airship documentation describes airship support as experimental and welcomes maintainers, new features, new frame configurations, and other improvements. I would like to build on the existing work in a maintainable and vendor-neutral way.

My initial idea is to contribute a generic reference airship model, possibly named Generic Airship / generic_airship, while preserving the existing Cloudship work as useful historical/reference material unless maintainers prefer another approach.

I would appreciate feedback on three points:

  1. Would PX4 prefer a new generic airship model alongside Cloudship, or a gradual rename/deprecation path?
  2. Is generic_airship a reasonable name for this kind of reference model?
  3. What would be the most useful first contribution: documentation cleanup, modern Gazebo simulation, or controller/control-allocation work?

References:

Thanks again to the original contributors for getting airship support into PX4. My goal is to help continue that work in a way that is useful for the broader PX4 community.

Update: I’ve opened a first PR toward this — PX4-Autopilot #27517 — restoring the Cloudship’s tail-thruster yaw.

The tail thruster was the yaw actuator in the original (2020) mixer, but became unused after the move to control allocation: manual passthrough leaves lateral thrust at zero, and since the tail thruster is the only lateral-force actuator, the allocator drives it to zero. The PR adds a small airship actuator-effectiveness so the tail thruster drives yaw again. Bench-tested on a Cube Orange.

One thing I couldn’t verify: my test rig only spins the tail thruster in one direction, so the reverse yaw direction is untested. If anyone has a Cloudship with a reversible tail ESC, I’d appreciate help confirming it.

Feedback welcome — meant as a concrete first step toward broader airship support.

Update: I created a small reference repository for the non-rigid airship baseline I am using as background:

Before proposing generic airship support in PX4, I would like to sanity-check the vehicle-level baseline.

The simplified concept is:

  • non-rigid airship with a pressure-maintained envelope,
  • gondola or attached equipment structure,
  • paired main propulsors, initially treated as a single thrust-magnitude command,
  • aft fins / control surfaces.

Examples of features I would keep outside the initial baseline unless needed for a specific vehicle include:

  • thrust vectoring,
  • differential thrust,
  • auxiliary yaw thruster,
  • vehicle-specific tail geometry, including but not limited to X-tail or vee-tail,
  • distributed propulsors.

Feedback welcome: does this look like a reasonable baseline to discuss before implementation?

Small related update: I opened a separate focused question on the airship airframe ID range and generic airship ID.

Update: Opened PX4-Autopilot #27697 — a first generic airship airframe: a cruciform tail (two forward thrusters + two elevators / two rudders), config-only on the existing manual-passthrough stack, bench-verified on a Cube Orange.

I’ve split this work across a few PRs, which I realize makes it harder to review — sorry about that. Here’s a map to make it easier to follow.

PR Topic Scope What it does
#27697 Generic airship Config · airframe + docs Adds the 2500_generic_airship airframe — two collective forward thrusters and a cruciform tail (elevators + rudders)
#27517 Cloudship C++ · control_allocator Adds the CA_AIRFRAME 16 airship effectiveness and restores Cloudship’s tail-thruster yaw
#27737 All airships C++ · airship_att_control Gates the manual passthrough on flight mode — control surfaces stay neutral when not in manual flight (e.g. on RC loss)
#27739 All airships Config · board Adds an fmu-v6x build variant that compiles the airship stack

Each one is self-contained and can be reviewed on its own; the only planned link is that I’ll later revise the generic frame (#27697) onto #27517’s CA_AIRFRAME 16.