/// shift altitude target (positive means move altitude up) void AC_PosControl::shift_alt_target(float z_cm) { _pos_target.z += z_cm; // freeze feedforward to avoid jump if (!is_zero(z_cm)) { freeze_ff_z(); } }
/// init_takeoff - initialises target altitude if we are taking off void AC_PosControl::init_takeoff() { const Vector3f& curr_pos = _inav.get_position(); _pos_target.z = curr_pos.z + POSCONTROL_TAKEOFF_JUMP_CM; // freeze feedforward to avoid jump freeze_ff_z(); // shift difference between last motor out and hover throttle into accelerometer I _pid_alt_accel.set_integrator(_motors.get_throttle_out()-_throttle_hover); }
/// init_takeoff - initialises target altitude if we are taking off void AC_PosControl::init_takeoff() { const Vector3f& curr_pos = _inav.get_position(); _pos_target.z = curr_pos.z; // freeze feedforward to avoid jump freeze_ff_z(); // shift difference between last motor out and hover throttle into accelerometer I _pid_accel_z.set_integrator((_motors.get_throttle()-_motors.get_throttle_hover())*1000.0f); }