mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-31 04:11:35 +08:00
FlightTaskManualAltitude: remove everything related to yaw, which is now
handled by FlightTaskManualStabilized. Make altitude lock more simple
This commit is contained in:
committed by
Beat Küng
parent
e763642a8b
commit
24b5d30a0a
@@ -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. */
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user