aboutsummaryrefslogtreecommitdiff
path: root/src/lib/ecl
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-09-07 12:53:39 +0200
committerLorenz Meier <lm@inf.ethz.ch>2013-09-07 12:53:39 +0200
commit8398de7515671b52df19a032162ff2064d68772a (patch)
tree5461bfc245e62bf18be9bae2924b574e9926963b /src/lib/ecl
parentb6dd579e0e1bb05d16a4c6f0d4d5c3ec05736db2 (diff)
downloadpx4-firmware-8398de7515671b52df19a032162ff2064d68772a.tar.gz
px4-firmware-8398de7515671b52df19a032162ff2064d68772a.tar.bz2
px4-firmware-8398de7515671b52df19a032162ff2064d68772a.zip
WIP on controllers
Diffstat (limited to 'src/lib/ecl')
-rw-r--r--src/lib/ecl/attitude_fw/ecl_pitch_controller.cpp6
-rw-r--r--src/lib/ecl/attitude_fw/ecl_roll_controller.cpp2
-rw-r--r--src/lib/ecl/attitude_fw/ecl_yaw_controller.cpp6
3 files changed, 13 insertions, 1 deletions
diff --git a/src/lib/ecl/attitude_fw/ecl_pitch_controller.cpp b/src/lib/ecl/attitude_fw/ecl_pitch_controller.cpp
index 0faba287d..c1c2bc5af 100644
--- a/src/lib/ecl/attitude_fw/ecl_pitch_controller.cpp
+++ b/src/lib/ecl/attitude_fw/ecl_pitch_controller.cpp
@@ -51,6 +51,12 @@ ECL_PitchController::ECL_PitchController() :
float ECL_PitchController::control(float pitch_setpoint, float pitch, float pitch_rate, float roll, float scaler,
bool lock_integrator, float airspeed_min, float airspeed_max, float aspeed)
{
+ /* get the usual dt estimate */
+ uint64_t dt_micros = ecl_elapsed_time(&_last_run);
+ _last_run = ecl_absolute_time();
+
+ float dt = (dt_micros > 500000) ? 0.0f : dt_micros / 1000000;
+
return 0.0f;
}
diff --git a/src/lib/ecl/attitude_fw/ecl_roll_controller.cpp b/src/lib/ecl/attitude_fw/ecl_roll_controller.cpp
index b28ecdabe..cdb221b26 100644
--- a/src/lib/ecl/attitude_fw/ecl_roll_controller.cpp
+++ b/src/lib/ecl/attitude_fw/ecl_roll_controller.cpp
@@ -61,7 +61,7 @@ float ECL_RollController::control(float roll_setpoint, float roll, float roll_ra
float dt = (dt_micros > 500000) ? 0.0f : dt_micros / 1000000;
-
+ float integrator_limit_scaled = 0.0f;
return 0.0f;
}
diff --git a/src/lib/ecl/attitude_fw/ecl_yaw_controller.cpp b/src/lib/ecl/attitude_fw/ecl_yaw_controller.cpp
index 0d8a0513f..6dd90f676 100644
--- a/src/lib/ecl/attitude_fw/ecl_yaw_controller.cpp
+++ b/src/lib/ecl/attitude_fw/ecl_yaw_controller.cpp
@@ -54,6 +54,12 @@ ECL_YawController::ECL_YawController() :
float ECL_YawController::control(float roll, float yaw_rate, float accel_y, float scaler, bool lock_integrator,
float airspeed_min, float airspeed_max, float aspeed)
{
+ /* get the usual dt estimate */
+ uint64_t dt_micros = ecl_elapsed_time(&_last_run);
+ _last_run = ecl_absolute_time();
+
+ float dt = (dt_micros > 500000) ? 0.0f : dt_micros / 1000000;
+
return 0.0f;
}