FlightTaskManualAltitude: remove everything related to yaw, which is now

handled by FlightTaskManualStabilized. Make altitude lock more simple
This commit is contained in:
Dennis Mannhart
2018-04-05 07:30:12 +02:00
committed by Beat Küng
parent e763642a8b
commit 24b5d30a0a
2 changed files with 30 additions and 86 deletions
@@ -39,9 +39,9 @@
#pragma once
#include "FlightTaskManual.hpp"
#include "FlightTaskManualStabilized.hpp"
class FlightTaskManualAltitude : public FlightTaskManual
class FlightTaskManualAltitude : public FlightTaskManualStabilized
{
public:
FlightTaskManualAltitude(control::SuperBlock *parent, const char *name);
@@ -53,26 +53,16 @@ public:
bool update() override;
protected:
float _yaw_rate_sp{}; /**< Scaled yaw rate from stick. NAN if yaw is locked. */
float _yaw_sp{}; /**< Yaw setpoint once locked. Otherwise NAN. */
float _yaw_sp_predicted{}; /** Equal to_yaw_sp during lock. Predicted yaw_sp during non-lock.*/
float _vel_sp_z{}; /**< Scaled velocity from stick. During altitude lock it is equal to NAN. */
float _pos_sp_z{}; /**< Setpoint in z during lock. Otherwise NAN. */
float _pos_sp_z_lock{}; /**< Setpoint in z when lock is engaged. */
control::BlockParamFloat _vel_max_down; /**< Maximum speed allowed to go up. */
control::BlockParamFloat _vel_max_up; /**< Maximum speed allowed to go down. */
control::BlockParamFloat _yaw_rate_scaling; /**< Scaling factor from stick to yaw rate. */
control::BlockParamFloat _acc_max_up; /**< Maximum acceleration upward. */
control::BlockParamFloat _acc_max_down; /**< Maximum acceleration downward. */
control::BlockParamFloat _vel_z_dz; /**< velocity threshold/deadzone to switch into vertical position hold */
virtual void updateSetpoints(); /**< Updates all setpoints. */
virtual void scaleSticks(); /**< Scales sticks to velocity. */
void _updateSetpoints() override; /**< Updates all setpoints. */
void _scaleSticks() override; /**< Scales sticks to velocity in z. */
private:
void updateHeadingSetpoints(); /**< Sets yaw or yaw speed. */
void updateZsetpoints(); /**< Sets position or velocity setpoints. */
float _lock_time_max{0.0f}; /**< Defines time when altitude lock occurs. */
float _lock_time{0.0f}; /**< Time passed when stick is at center position and before lock occurs.*/
void _updateZsetpoints(); /**< Sets position or velocity setpoints. */
};