summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
9d812b3)
The ground acceleration value will vary depending on the tilt angle of
the airframe, which will result in incorrect acceleration computations
during flight. This also avoids accidental boost detect when moving
the airframe around in pad mode.
Signed-off-by: Keith Packard <keithp@keithp.com>
- double ground = ground_accel;
-
- if (ground == AltosLib.MISSING)
- ground = ground_accel_avg;
if (accel == AltosLib.MISSING)
return;
if (accel == AltosLib.MISSING)
return;
- if (ground == AltosLib.MISSING)
- return;
if (accel_plus_g == AltosLib.MISSING)
return;
if (accel_minus_g == AltosLib.MISSING)
if (accel_plus_g == AltosLib.MISSING)
return;
if (accel_minus_g == AltosLib.MISSING)
double counts_per_g = (accel_minus_g - accel_plus_g) / 2.0;
double counts_per_mss = counts_per_g / 9.80665;
double counts_per_g = (accel_minus_g - accel_plus_g) / 2.0;
double counts_per_mss = counts_per_g / 9.80665;
- acceleration.set_measured((ground - accel) / counts_per_mss, time);
+ acceleration.set_measured((accel_plus_g - accel) / counts_per_mss, time);
}
public void set_accel_g(double accel_plus_g, double accel_minus_g) {
}
public void set_accel_g(double accel_plus_g, double accel_minus_g) {
}
public void set_ground_accel(double ground_accel) {
}
public void set_ground_accel(double ground_accel) {
- if (ground_accel != AltosLib.MISSING) {
+ if (ground_accel != AltosLib.MISSING)
this.ground_accel = ground_accel;
this.ground_accel = ground_accel;
}
public void set_accel(double accel) {
}
public void set_accel(double accel) {
#if HAS_ACCEL
int16_t accel;
#if HAS_ACCEL
int16_t accel;
- accel = ((ao_ground_accel - ao_sample_accel) * ao_accel_scale) >> 16;
+ accel = ((ao_config.accel_plus_g - ao_sample_accel) * ao_accel_scale) >> 16;
#endif
printf ("sample:\n");
#endif
printf ("sample:\n");
- accel = (ao_ground_accel - ao_sample_accel) * ao_accel_scale;
+ accel = (ao_config.accel_plus_g - ao_sample_accel) * ao_accel_scale;
/* Can't use ao_accel here as it is the pre-prediction value still */
ao_error_a = (accel - ao_k_accel) >> 16;
/* Can't use ao_accel here as it is the pre-prediction value still */
ao_error_a = (accel - ao_k_accel) >> 16;