Overview
Can a ground-effect model that predicts accurately offline also improve a flying controller? GES studies that question with a physics-based multirotor simulator, irregular terrain, onboard-observable sensors, and learned feedforward compensation.
I developed the simulator and firmware, trained and evaluated the models, conducted the analyses, and wrote the manuscript. The linked Research Square manuscript is a preprint.
Problem definition
Ground effect augments rotor thrust near a surface. Over uneven terrain, changing clearance, slope, and curvature make a flat-ground approximation incomplete. The study asks how well onboard measurements can estimate that changing effect, and whether the estimate helps control altitude.
An informal pilot observation used a DJI Air 3 and a Photron SA-X2 camera at 1000 fps. It motivated the research; a single uncontrolled trial per condition, pixel-coordinate tracking, and different rangefinder conditions prevent treating it as quantitative validation. The photographs below are Figure 1 from the manuscript.


Research motivation
A deployable estimator should use signals available to the flight controller: rangefinder altitude, three-axis gyroscope rate, four-rotor RPM and current, and normalized commanded thrust. No reconstructed terrain map is supplied to the learned controller.
The central distinction is between prediction quality and system behavior. GES evaluates both, rather than treating a good regression score as evidence of better flight control.
System architecture
The simulator combines rigid-body dynamics, per-rotor motor models, seeded procedural terrain, a PID flight controller, and selectable feedforward modes. Figure 5 shows the actual architecture from the manuscript.
The implemented ground-truth model starts with Cheeseman–Bennett and adds heuristic slope and curvature corrections. The curvature multiplier is clamped to 0.5–1.8; the final GE factor is separately clamped to 0.85–1.6 in aero_ground_effect.c. These bounds describe the simulator, not experimentally validated aerodynamics.
The deployed MLP has 13 inputs, hidden layers of 64 and 32 units, and one output. Its weights are exported as a static-array C header. Because thrust is quadratic in throttle-proportional rotor speed, compensation scales throttle by the inverse square root of the estimated ground-effect factor.

double ge_ff_compensate_throttle(double throttle_raw, double factor) {
if (!isfinite(factor) || factor <= 0.0) return NAN;
return throttle_raw / sqrt(factor);
}
Methodology
The offline task predicts the ground-effect factor 100 ms ahead. A deterministic seed-wise split allocates 240 terrain seeds to training, 30 to validation, and 30 to testing, with no seed shared between groups.
The model comparison includes Transformer, LSTM, Random Forest, Gradient Boosting, MLP, Decision Tree, Linear Regression, and the analytical baseline. Sequence models use 32-sample windows, while the classical models and deployed MLP use pointwise inputs. Model selection and early stopping use validation seeds. Figure 6 reports the held-out-seed comparison; it is distinct from the paper’s earlier block-wise evaluation.

Experimental setup
Offline testing uses 30 held-out seeds. Closed-loop control is evaluated separately: an initial eight-seed comparison is followed by 30 new terrain seeds disjoint from every offline split.
The eight-seed comparison measures no feedforward, analytical feedforward, and hybrid MLP feedforward. The independent 30-seed evaluation also includes raw ML, an asymmetric overprediction clamp, and an oracle supplied with the simulator’s true ground-effect factor. The oracle is a diagnostic and is unavailable in physical deployment.
Results
Offline, Random Forest reports the highest R² in Table 1 (0.998679), while Transformer reports the lowest RMSE (0.000883). The analytical baseline reports R² 0.851025 and RMSE 0.010424. These are prediction metrics for the seed-wise offline experiment.
In the eight-seed closed-loop comparison, analytical feedforward has a lower mean AGL tracking RMS than the hybrid MLP: 0.06322 m versus 0.06438 m. Figure 16 and the table below preserve the reported mean and standard deviation across those eight seeds.
The independent 30-seed comparison, shown in Figure 17, has different numerical results. Analytical, oracle, and the asymmetric-clamp hybrid group around 0.060–0.061 m; the ordinary hybrid ML mode is around 0.061–0.062 m. Even the perfect-information oracle does not outperform the analytical baseline.
Offline prediction · 30 held-out seeds
| Model | RMSE | MAE | R² |
|---|---|---|---|
| Transformer | 0.000883 | 0.000495 | 0.998321 |
| LSTM | 0.000932 | 0.000553 | 0.998129 |
| Random Forest | 0.000981 | 0.000428 | 0.998679 |
| Gradient Boosting | 0.001109 | 0.000491 | 0.998314 |
| MLP | 0.001260 | 0.000641 | 0.997822 |
| Decision Tree | 0.001371 | 0.000521 | 0.997424 |
| Analytical baseline | 0.010424 | 0.002337 | 0.851025 |
| Linear Regression | 0.010702 | 0.006093 | 0.842952 |
Closed-loop control · 8-seed comparison

| Controller | Mean (m) | SD (m) |
|---|---|---|
| No feedforward | 0.07004 | 0.01050 |
| Analytical feedforward | 0.06322 | 0.00738 |
| Hybrid MLP feedforward | 0.06438 | 0.00750 |
Lower tracking RMS is better. The analytical baseline has the lower error in this comparison. These control errors in metres are separate from the offline prediction scores above.
Closed-loop control · 30 independent seeds

| Mode | Mean (m) | SD (m) |
|---|---|---|
| Analytical | 0.060436 | 0.012123 |
| Hybrid MLP | 0.061417 | 0.012085 |
| Asymmetric-clamp MLP | 0.060708 | 0.012146 |
| Direct MLP | 0.067281 | 0.014393 |
| No feedforward | 0.067688 | 0.014590 |
| Oracle | 0.060578 | 0.011962 |
Figure 17 uses 30 seeds disjoint from the offline splits. The oracle has access to exact simulator ground truth, yet does not improve on analytical feedforward. This is a separate experiment from the eight-seed table.
Discussion
Better offline estimation does not establish better closed-loop control. The oracle comparison helps separate predictor accuracy from the effects of actuator mapping and controller structure.
The paper’s corrected analysis finds that overprediction reduces safety-relevant clearance margins. Its pulse-response and pole analysis describe a stable, underdamped response, rather than a self-reinforcing divergent loop. An asymmetric clamp reduces the remaining gap without establishing an advantage over the analytical controller.
Limitations
The results are simulation-based. The heuristic terrain corrections are not fitted to external CFD or flight-test data, so predicting the simulator well does not validate real-world aerodynamic accuracy.
Training-data and closed-loop cruise parameters differ after a simulator bug fix. Feedforward acts on collective thrust and cannot structurally correct asymmetric per-rotor attitude disturbances. The pilot photography is qualitative motivation, not validation of the simulation metrics.
References and resources
Text, figures, evaluation conditions, and tables on this page follow the public Research Square v1 manuscript, DOI 10.21203/rs.3.rs-10822671/v1, especially Sections 3, 4.1, 4.4, and 6. Figures are reproduced from that manuscript, by Muwon Lee, under CC BY 4.0.
The public GES repository provides the C physics engine, firmware/ge_ff.c, exported MLP weights, training scripts, tests, and experiment manifests. The seed-wise suite separates training/validation/test seeds 1–300 from clamp-validation seeds 301–330 and final closed-loop seeds 331–360. Its archived offline_metrics.csv and summary_by_mode.csv support the results on this page; superseded outputs are kept separately in pre-results.
Original publications
Implementation & data
Source files at the reviewed repository revision.
Feedforward firmwareGround-effect modelSeed-wise experiment protocolOffline result CSV30-seed control result CSVSource: Muwon Lee, GES, Research Square v1 · DOI 10.21203/rs.3.rs-10822671/v1 · CC BY 4.0. Figures reproduced from the original manuscript.
