diff options
author | Anton Babushkin <rk3dov@gmail.com> | 2013-04-20 22:38:38 +0400 |
---|---|---|
committer | Anton Babushkin <rk3dov@gmail.com> | 2013-04-20 22:38:38 +0400 |
commit | 10dfd2ba393089e5008978eb0469e8c1289d5917 (patch) | |
tree | 4ce2a3323a0c6de4dd9549fa0a7955453e8e2b8e | |
parent | 99ed9be4f2977c5ce46c15f0d3bedf065e6c5ad6 (diff) | |
download | px4-firmware-10dfd2ba393089e5008978eb0469e8c1289d5917.tar.gz px4-firmware-10dfd2ba393089e5008978eb0469e8c1289d5917.tar.bz2 px4-firmware-10dfd2ba393089e5008978eb0469e8c1289d5917.zip |
dt calculation bug fixedalthold_flight_2013-04-20ALTCTRL_flight_2013-04-20
-rw-r--r-- | apps/multirotor_pos_control/multirotor_pos_control.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/apps/multirotor_pos_control/multirotor_pos_control.c b/apps/multirotor_pos_control/multirotor_pos_control.c index 7757a78c1..ac7645764 100644 --- a/apps/multirotor_pos_control/multirotor_pos_control.c +++ b/apps/multirotor_pos_control/multirotor_pos_control.c @@ -214,6 +214,14 @@ static int multirotor_pos_control_thread_main(int argc, char *argv[]) { status.state_machine == SYSTEM_STATE_AUTO ); + hrt_abstime t = hrt_absolute_time(); + float dt; + if (t_prev != 0) { + dt = (t - t_prev) * 0.000001f; + } else { + dt = 0.0f; + } + t_prev = t; if (act) { orb_copy(ORB_ID(manual_control_setpoint), manual_sub, &manual); orb_copy(ORB_ID(vehicle_attitude), att_sub, &att); @@ -223,7 +231,6 @@ static int multirotor_pos_control_thread_main(int argc, char *argv[]) { orb_copy(ORB_ID(vehicle_local_position_setpoint), local_pos_sp_sub, &local_pos_sp); } - hrt_abstime t = hrt_absolute_time(); if (reset_sp_alt) { reset_sp_alt = false; local_pos_sp.z = local_pos.z; @@ -242,12 +249,6 @@ static int multirotor_pos_control_thread_main(int argc, char *argv[]) { mavlink_log_info(mavlink_fd, str); } - float dt; - if (t_prev != 0) { - dt = (t - t_prev) * 0.000001f; - } else { - dt = 0.0f; - } float err_linear_limit = params.alt_d / params.alt_p * params.alt_rate_max; if (status.flag_control_manual_enabled) { @@ -303,7 +304,6 @@ static int multirotor_pos_control_thread_main(int argc, char *argv[]) { } /* publish new attitude setpoint */ orb_publish(ORB_ID(vehicle_attitude_setpoint), att_sp_pub, &att_sp); - t_prev = t; } else { reset_sp_alt = true; reset_sp_pos = true; |