aboutsummaryrefslogtreecommitdiff
path: root/src/modules/multirotor_pos_control
diff options
context:
space:
mode:
authorAnton Babushkin <anton.babushkin@me.com>2013-11-27 23:09:05 +0400
committerAnton Babushkin <anton.babushkin@me.com>2013-11-27 23:09:05 +0400
commitb9ea91513687332a1b005690005f0eba16d5c522 (patch)
treedc1f9a06dce50114f31c8ea2a2850e011bd57e12 /src/modules/multirotor_pos_control
parent3a6be42265921de536f950e2fb5ea25b06945549 (diff)
downloadpx4-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/modules/multirotor_pos_control')
-rw-r--r--src/modules/multirotor_pos_control/multirotor_pos_control.c8
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(&params_h);
parameters_update(&params_h, &params);
-
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, &param_updated);
+ if (!param_updated)
+ orb_check(param_sub, &param_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(&params_h, &params);