diff options
author | Anton Babushkin <anton.babushkin@me.com> | 2013-10-05 22:59:32 +0200 |
---|---|---|
committer | Anton Babushkin <anton.babushkin@me.com> | 2013-10-05 22:59:32 +0200 |
commit | defb37c43bd3f2d4de35def68a092731ed77d0d5 (patch) | |
tree | 243e1c65d16fb2c88139832809397bdf7b04d402 /src | |
parent | 921662ebe09ca737c7becf37a7fe063a680e344a (diff) | |
download | px4-firmware-defb37c43bd3f2d4de35def68a092731ed77d0d5.tar.gz px4-firmware-defb37c43bd3f2d4de35def68a092731ed77d0d5.tar.bz2 px4-firmware-defb37c43bd3f2d4de35def68a092731ed77d0d5.zip |
commander: require only valid velocity for EASY mode, allows flying with FLOW and no GPS
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/commander/commander.cpp | 1 | ||||
-rw-r--r-- | src/modules/commander/state_machine_helper.cpp | 5 | ||||
-rw-r--r-- | src/modules/uORB/topics/vehicle_status.h | 1 |
3 files changed, 4 insertions, 3 deletions
diff --git a/src/modules/commander/commander.cpp b/src/modules/commander/commander.cpp index 01b7b84d0..a9f6a2351 100644 --- a/src/modules/commander/commander.cpp +++ b/src/modules/commander/commander.cpp @@ -853,6 +853,7 @@ int commander_thread_main(int argc, char *argv[]) /* update condition_local_position_valid and condition_local_altitude_valid */ check_valid(local_position.timestamp, POSITION_TIMEOUT, local_position.xy_valid, &(status.condition_local_position_valid), &status_changed); check_valid(local_position.timestamp, POSITION_TIMEOUT, local_position.z_valid, &(status.condition_local_altitude_valid), &status_changed); + check_valid(local_position.timestamp, POSITION_TIMEOUT, local_position.v_xy_valid, &(status.condition_local_velocity_valid), &status_changed); if (status.condition_local_altitude_valid) { if (status.condition_landed != local_position.landed) { diff --git a/src/modules/commander/state_machine_helper.cpp b/src/modules/commander/state_machine_helper.cpp index 8ce31550f..58f7238ff 100644 --- a/src/modules/commander/state_machine_helper.cpp +++ b/src/modules/commander/state_machine_helper.cpp @@ -238,9 +238,8 @@ main_state_transition(struct vehicle_status_s *current_state, main_state_t new_m case MAIN_STATE_EASY: - /* need at minimum local position estimate */ - if (current_state->condition_local_position_valid || - current_state->condition_global_position_valid) { + /* need at minimum local velocity estimate */ + if (current_state->condition_local_velocity_valid) { ret = TRANSITION_CHANGED; } diff --git a/src/modules/uORB/topics/vehicle_status.h b/src/modules/uORB/topics/vehicle_status.h index 1c184d3a7..6bc63cbae 100644 --- a/src/modules/uORB/topics/vehicle_status.h +++ b/src/modules/uORB/topics/vehicle_status.h @@ -201,6 +201,7 @@ struct vehicle_status_s bool condition_home_position_valid; /**< indicates a valid home position (a valid home position is not always a valid launch) */ bool condition_local_position_valid; bool condition_local_altitude_valid; + bool condition_local_velocity_valid; bool condition_airspeed_valid; /**< set to true by the commander app if there is a valid airspeed measurement available */ bool condition_landed; /**< true if vehicle is landed, always true if disarmed */ |