aboutsummaryrefslogtreecommitdiff
path: root/src/modules/position_estimator_inav
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2014-03-11 12:51:34 +0100
committerLorenz Meier <lm@inf.ethz.ch>2014-03-11 12:51:34 +0100
commit4d8524f508fe9e74606fe80f063801a1c47baa14 (patch)
tree7092a00025bb0f229936a44999e0c10255a60219 /src/modules/position_estimator_inav
parent16dd054fa6bfc305d3a66f17d295ceaf1f554c12 (diff)
parentb6a087e92183ef9cca513357919b96ea2812d298 (diff)
downloadpx4-firmware-4d8524f508fe9e74606fe80f063801a1c47baa14.tar.gz
px4-firmware-4d8524f508fe9e74606fe80f063801a1c47baa14.tar.bz2
px4-firmware-4d8524f508fe9e74606fe80f063801a1c47baa14.zip
Merge branch 'master' of github.com:PX4/Firmware into paul_estimator
Diffstat (limited to 'src/modules/position_estimator_inav')
-rw-r--r--src/modules/position_estimator_inav/inertial_filter.c5
-rw-r--r--src/modules/position_estimator_inav/position_estimator_inav_main.c2
2 files changed, 2 insertions, 5 deletions
diff --git a/src/modules/position_estimator_inav/inertial_filter.c b/src/modules/position_estimator_inav/inertial_filter.c
index 13328edb4..7cd076948 100644
--- a/src/modules/position_estimator_inav/inertial_filter.c
+++ b/src/modules/position_estimator_inav/inertial_filter.c
@@ -15,10 +15,7 @@ void inertial_filter_predict(float dt, float x[3])
void inertial_filter_correct(float e, float dt, float x[3], int i, float w)
{
- float ewdt = w * dt;
- if (ewdt > 1.0f)
- ewdt = 1.0f; // prevent over-correcting
- ewdt *= e;
+ float ewdt = e * w * dt;
x[i] += ewdt;
if (i == 0) {
diff --git a/src/modules/position_estimator_inav/position_estimator_inav_main.c b/src/modules/position_estimator_inav/position_estimator_inav_main.c
index 37f507086..368fa6ee2 100644
--- a/src/modules/position_estimator_inav/position_estimator_inav_main.c
+++ b/src/modules/position_estimator_inav/position_estimator_inav_main.c
@@ -623,7 +623,7 @@ int position_estimator_inav_thread_main(int argc, char *argv[])
}
float dt = t_prev > 0 ? (t - t_prev) / 1000000.0f : 0.0f;
- dt = fmaxf(fminf(0.02, dt), 0.005);
+ dt = fmaxf(fminf(0.02, dt), 0.002); // constrain dt from 2 to 20 ms
t_prev = t;
/* use GPS if it's valid and reference position initialized */