Replies: 2 comments 1 reply
-
|
Integrating the acceleration value from a $3 IMU gets a LOT of error over half a million cycles (a few minutes). On the first integration, approximately 150 m/s of velocity error after five minutes. (336 MPH of error.) That's not necessarily better than the known, measured, actual airspeed. Suppose I know my plane cruises are 45 MPH. If you had a ring-laser gyro you can definitely use that. The most commonly used ring laser costs $10,000, though. If you want to simulate this in the simulator there are a couple small things to add to the code:
These will approximate the error you see on the MPU6000 datasheet. If you simulate it with noise per the datasheet, you may notice that on a plane, the warm-up error is a significant portion of the error. So if pilots waited three minutes, then power cycled with the aircraft perfectly motionless to get a fresh zero, it would work better. The error would be only about 30-80 MPH of error after a few minutes. |
Beta Was this translation helpful? Give feedback.
-
That's an interesting idea.
Along the same lines, it occurs to me that absolute airspeed (near level flight) isn't likely to be 3X the cruise airspeed. Or less than cruise / 4. So you can clamp at some multiple . Maybe 50% - 150% of normal cruise or something like that. Naive integration error can easily put my Zohd Drift at 300 MPH. Knowing the maximum structural speed is 40 MPH and cruise is around 25 ... Accelerometer may be best for tracking that is is going faster than it was 0.1 - 2.0 seconds ago, because it sees acceleration relative to a second ago. But not integrating that over hundreds of thousands of loops. PS - I have read from several people who tried this in different ways. Their empirical results track with what we have discussed. Which doesn't mean it can't be used at all. Just that it's limited. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Apologies for this being written by AI, but it’s the best way to get my point across.
docs/GPS_fix_estimation.md realistic error of ~200m/km during GPS-loss dead reckoning, with the assumption (from gps.c) being that without a pitot, the aircraft flies at a fixed configured airspeed, integrated forward with mag heading. That’s the likely dominant error term — it’s blind to throttle, pitch, and gust variation during the outage.
navigation_pos_estimator.c already maintains posEstimator.est.vel with continuous accelerometer-bias correction (w_acc_bias, accBiasCorr) and a decay term for when velocity sources are lost (w_xy_res_v). That machinery is normally driven by GPS residuals. Proposal: during GNSS loss, instead of falling back to the separate fixed-airspeed model in gps.c, keep propagating posEstimator.est.vel forward from its last GPS-corrected value using the existing accel integration, with w_xy_res_v-style decay pulling it back toward last-known cruise trim (or a configured expected-cruise value) rather than decaying to zero. This reuses existing estimator infrastructure rather than adding a parallel one.
Rationale: seeding from last-known-good velocity + accel propagation should track real dynamics (throttle changes, climbs, gusts) far better than a fixed constant, while the existing decay/residual-correction terms already provide the “soft revert toward expected trim” behavior needed to bound accelerometer-bias-driven drift, rather than letting it walk away unconstrained.
Happy to help characterize the current error breakdown (how much comes from airspeed-assumption vs. heading vs. wind-staleness) with a HITL test using the existing INAV-X-Plane-HITL rig if that’d help scope this before a PR.
Beta Was this translation helpful? Give feedback.
All reactions