diff options
author | Anton Babushkin <anton.babushkin@me.com> | 2013-11-27 23:09:05 +0400 |
---|---|---|
committer | Anton Babushkin <anton.babushkin@me.com> | 2013-11-27 23:09:05 +0400 |
commit | b9ea91513687332a1b005690005f0eba16d5c522 (patch) | |
tree | dc1f9a06dce50114f31c8ea2a2850e011bd57e12 /src | |
parent | 3a6be42265921de536f950e2fb5ea25b06945549 (diff) | |
download | px4-firmware-b9ea91513687332a1b005690005f0eba16d5c522.tar.gz px4-firmware-b9ea91513687332a1b005690005f0eba16d5c522.tar.bz2 px4-firmware-b9ea91513687332a1b005690005f0eba16d5c522.zip |
multirotor_pos_control: set PID parameters on init
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/multirotor_pos_control/multirotor_pos_control.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/modules/multirotor_pos_control/multirotor_pos_control.c b/src/modules/multirotor_pos_control/multirotor_pos_control.c index ebee0b7a8..834df9655 100644 --- a/src/modules/multirotor_pos_control/multirotor_pos_control.c +++ b/src/modules/multirotor_pos_control/multirotor_pos_control.c @@ -244,7 +244,6 @@ static int multirotor_pos_control_thread_main(int argc, char *argv[]) parameters_init(¶ms_h); parameters_update(¶ms_h, ¶ms); - for (int i = 0; i < 2; i++) { pid_init(&(xy_pos_pids[i]), PID_MODE_DERIVATIV_SET, 0.02f); pid_init(&(xy_vel_pids[i]), PID_MODE_DERIVATIV_CALC_NO_SP, 0.02f); @@ -253,15 +252,18 @@ static int multirotor_pos_control_thread_main(int argc, char *argv[]) pid_init(&z_pos_pid, PID_MODE_DERIVATIV_SET, 0.02f); thrust_pid_init(&z_vel_pid, 0.02f); + bool param_updated = true; + while (!thread_should_exit) { - bool param_updated; - orb_check(param_sub, ¶m_updated); + if (!param_updated) + orb_check(param_sub, ¶m_updated); if (param_updated) { /* clear updated flag */ struct parameter_update_s ps; orb_copy(ORB_ID(parameter_update), param_sub, &ps); + /* update params */ parameters_update(¶ms_h, ¶ms); |