Several fixes, hex flies, failsafe not really tested yet

This commit is contained in:
Julian Oes
2012-11-11 11:55:27 -08:00
parent 0baca3ee31
commit a8dfcaace2
4 changed files with 55 additions and 36 deletions
@@ -203,7 +203,7 @@ mc_thread_main(int argc, char *argv[])
if (state.offboard_control_signal_lost) {
/* set failsafe thrust */
param_get(failsafe_throttle_handle, &failsafe_throttle);
att_sp.thrust = (failsafe_throttle < 0.6f) : failsafe_throttle ? 0.5f;
att_sp.thrust = failsafe_throttle;
} else {
/* no signal loss, normal throttle */
att_sp.thrust = offboard_sp.p4;
@@ -252,28 +252,28 @@ mc_thread_main(int argc, char *argv[])
// XXX disable this for now until its better checked
// static bool rc_loss_first_time = true;
// /* if the RC signal is lost, try to stay level and go slowly back down to ground */
// if(state.rc_signal_lost) {
// /* the failsafe throttle is stored as a parameter, as it depends on the copter and the payload */
// param_get(failsafe_throttle_handle, &failsafe_throttle);
// att_sp.roll_body = 0.0f;
// att_sp.pitch_body = 0.0f;
static bool rc_loss_first_time = true;
/* if the RC signal is lost, try to stay level and go slowly back down to ground */
if(state.rc_signal_lost) {
/* the failsafe throttle is stored as a parameter, as it depends on the copter and the payload */
param_get(failsafe_throttle_handle, &failsafe_throttle);
att_sp.roll_body = 0.0f;
att_sp.pitch_body = 0.0f;
// /* keep current yaw, do not attempt to go to north orientation,
// * since if the pilot regains RC control, he will be lost regarding
// * the current orientation.
// */
/* keep current yaw, do not attempt to go to north orientation,
* since if the pilot regains RC control, he will be lost regarding
* the current orientation.
*/
// if (rc_loss_first_time)
// att_sp.yaw_body = att.yaw;
// // XXX hard-limit it to prevent ballistic mishaps - this is just supposed to
// // slow a crash down, not actually keep the system in-air.
// att_sp.thrust = (failsafe_throttle < 0.5f) : failsafe_throttle ? 0.5f;
// rc_loss_first_time = false;
// } else {
// rc_loss_first_time = true;
// }
if (rc_loss_first_time)
att_sp.yaw_body = att.yaw;
// XXX hard-limit it to prevent ballistic mishaps - this is just supposed to
// slow a crash down, not actually keep the system in-air.
att_sp.thrust = failsafe_throttle;
rc_loss_first_time = false;
} else {
rc_loss_first_time = true;
}
att_sp.timestamp = hrt_absolute_time();
}