diff --git a/src/modules/mc_pos_control/mc_pos_control_main.cpp b/src/modules/mc_pos_control/mc_pos_control_main.cpp index 9d1393ed979be9ea4ebbbcda7bb0baac3c0530ba..63101b7bf9edfcb454551a5844f8b56ee6f2c447 100644 --- a/src/modules/mc_pos_control/mc_pos_control_main.cpp +++ b/src/modules/mc_pos_control/mc_pos_control_main.cpp @@ -412,6 +412,9 @@ MulticopterPositionControl::parameters_update(bool force) void MulticopterPositionControl::poll_subscriptions() { + // This is polled for, so all we need to do is a copy now. + orb_copy(ORB_ID(vehicle_local_position), _local_pos_sub, &_local_pos); + bool updated; orb_check(_vehicle_status_sub, &updated); @@ -447,12 +450,6 @@ MulticopterPositionControl::poll_subscriptions() orb_copy(ORB_ID(vehicle_control_mode), _control_mode_sub, &_control_mode); } - orb_check(_local_pos_sub, &updated); - - if (updated) { - orb_copy(ORB_ID(vehicle_local_position), _local_pos_sub, &_local_pos); - } - orb_check(_att_sub, &updated); if (updated) {