mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-22 06:14:14 +08:00
FlightTask - Rename state_prev to last_setpoint
This commit is contained in:
committed by
Mathieu Bresciani
parent
37a9b90945
commit
ea0e164145
@@ -65,7 +65,7 @@ int FlightTasks::switchTask(FlightTaskIndex new_task_index)
|
||||
}
|
||||
|
||||
// Save current setpoints for the nex FlightTask
|
||||
vehicle_local_position_setpoint_s current_state = getPositionSetpoint();
|
||||
vehicle_local_position_setpoint_s last_setpoint = getPositionSetpoint();
|
||||
|
||||
if (_initTask(new_task_index)) {
|
||||
// invalid task
|
||||
@@ -88,7 +88,7 @@ int FlightTasks::switchTask(FlightTaskIndex new_task_index)
|
||||
_subscription_array.forcedUpdate(); // make sure data is available for all new subscriptions
|
||||
|
||||
// activation failed
|
||||
if (!_current_task.task->updateInitialize() || !_current_task.task->activate(current_state)) {
|
||||
if (!_current_task.task->updateInitialize() || !_current_task.task->activate(last_setpoint)) {
|
||||
_current_task.task->~FlightTask();
|
||||
_current_task.task = nullptr;
|
||||
_current_task.index = FlightTaskIndex::None;
|
||||
|
||||
@@ -77,9 +77,9 @@ bool FlightTaskAuto::initializeSubscriptions(SubscriptionArray &subscription_arr
|
||||
return true;
|
||||
}
|
||||
|
||||
bool FlightTaskAuto::activate(vehicle_local_position_setpoint_s state_prev)
|
||||
bool FlightTaskAuto::activate(vehicle_local_position_setpoint_s last_setpoint)
|
||||
{
|
||||
bool ret = FlightTask::activate(state_prev);
|
||||
bool ret = FlightTask::activate(last_setpoint);
|
||||
_position_setpoint = _position;
|
||||
_velocity_setpoint = _velocity;
|
||||
_yaw_setpoint = _yaw_sp_prev = _yaw;
|
||||
|
||||
@@ -78,7 +78,7 @@ public:
|
||||
|
||||
virtual ~FlightTaskAuto() = default;
|
||||
bool initializeSubscriptions(SubscriptionArray &subscription_array) override;
|
||||
bool activate(vehicle_local_position_setpoint_s state_prev) override;
|
||||
bool activate(vehicle_local_position_setpoint_s last_setpoint) override;
|
||||
bool updateInitialize() override;
|
||||
bool updateFinalize() override;
|
||||
|
||||
|
||||
@@ -41,20 +41,20 @@
|
||||
|
||||
using namespace matrix;
|
||||
|
||||
bool FlightTaskAutoLineSmoothVel::activate(vehicle_local_position_setpoint_s state_prev)
|
||||
bool FlightTaskAutoLineSmoothVel::activate(vehicle_local_position_setpoint_s last_setpoint)
|
||||
{
|
||||
bool ret = FlightTaskAutoMapper2::activate(state_prev);
|
||||
bool ret = FlightTaskAutoMapper2::activate(last_setpoint);
|
||||
|
||||
checkSetpoints(state_prev);
|
||||
const Vector3f accel_prev{state_prev.acc_x, state_prev.acc_y, state_prev.acc_z};
|
||||
const Vector3f vel_prev = Vector3f(state_prev.vx, state_prev.vy, state_prev.vz);
|
||||
const Vector3f pos_prev = Vector3f(state_prev.x, state_prev.y, state_prev.z);
|
||||
checkSetpoints(last_setpoint);
|
||||
const Vector3f accel_prev(last_setpoint.acc_x, last_setpoint.acc_y, last_setpoint.acc_z);
|
||||
const Vector3f vel_prev(last_setpoint.vx, last_setpoint.vy, last_setpoint.vz);
|
||||
const Vector3f pos_prev(last_setpoint.x, last_setpoint.y, last_setpoint.z);
|
||||
|
||||
for (int i = 0; i < 3; ++i) {
|
||||
_trajectory[i].reset(accel_prev(i), vel_prev(i), pos_prev(i));
|
||||
}
|
||||
|
||||
_yaw_sp_prev = state_prev.yaw;
|
||||
_yaw_sp_prev = last_setpoint.yaw;
|
||||
_updateTrajConstraints();
|
||||
_initEkfResetCounters();
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ public:
|
||||
FlightTaskAutoLineSmoothVel() = default;
|
||||
virtual ~FlightTaskAutoLineSmoothVel() = default;
|
||||
|
||||
bool activate(vehicle_local_position_setpoint_s state_prev) override;
|
||||
bool activate(vehicle_local_position_setpoint_s last_setpoint) override;
|
||||
void reActivate() override;
|
||||
|
||||
protected:
|
||||
|
||||
@@ -40,9 +40,9 @@
|
||||
|
||||
using namespace matrix;
|
||||
|
||||
bool FlightTaskAutoMapper::activate(vehicle_local_position_setpoint_s state_prev)
|
||||
bool FlightTaskAutoMapper::activate(vehicle_local_position_setpoint_s last_setpoint)
|
||||
{
|
||||
bool ret = FlightTaskAuto::activate(state_prev);
|
||||
bool ret = FlightTaskAuto::activate(last_setpoint);
|
||||
_reset();
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ class FlightTaskAutoMapper : public FlightTaskAuto
|
||||
public:
|
||||
FlightTaskAutoMapper() = default;
|
||||
virtual ~FlightTaskAutoMapper() = default;
|
||||
bool activate(vehicle_local_position_setpoint_s state_prev) override;
|
||||
bool activate(vehicle_local_position_setpoint_s last_setpoint) override;
|
||||
bool update() override;
|
||||
|
||||
protected:
|
||||
|
||||
@@ -40,9 +40,9 @@
|
||||
|
||||
using namespace matrix;
|
||||
|
||||
bool FlightTaskAutoMapper2::activate(vehicle_local_position_setpoint_s state_prev)
|
||||
bool FlightTaskAutoMapper2::activate(vehicle_local_position_setpoint_s last_setpoint)
|
||||
{
|
||||
bool ret = FlightTaskAuto::activate(state_prev);
|
||||
bool ret = FlightTaskAuto::activate(last_setpoint);
|
||||
_reset();
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ class FlightTaskAutoMapper2 : public FlightTaskAuto
|
||||
public:
|
||||
FlightTaskAutoMapper2() = default;
|
||||
virtual ~FlightTaskAutoMapper2() = default;
|
||||
bool activate(vehicle_local_position_setpoint_s state_prev) override;
|
||||
bool activate(vehicle_local_position_setpoint_s last_setpoint) override;
|
||||
bool update() override;
|
||||
|
||||
protected:
|
||||
|
||||
@@ -36,9 +36,9 @@
|
||||
|
||||
#include "FlightTaskFailsafe.hpp"
|
||||
|
||||
bool FlightTaskFailsafe::activate(vehicle_local_position_setpoint_s state_prev)
|
||||
bool FlightTaskFailsafe::activate(vehicle_local_position_setpoint_s last_setpoint)
|
||||
{
|
||||
bool ret = FlightTask::activate(state_prev);
|
||||
bool ret = FlightTask::activate(last_setpoint);
|
||||
_position_setpoint = _position;
|
||||
_velocity_setpoint.zero();
|
||||
_thrust_setpoint = matrix::Vector3f(0.0f, 0.0f, -_param_mpc_thr_hover.get() * 0.6f);
|
||||
|
||||
@@ -47,7 +47,7 @@ public:
|
||||
|
||||
virtual ~FlightTaskFailsafe() = default;
|
||||
bool update() override;
|
||||
bool activate(vehicle_local_position_setpoint_s state_prev) override;
|
||||
bool activate(vehicle_local_position_setpoint_s last_setpoint) override;
|
||||
|
||||
private:
|
||||
DEFINE_PARAMETERS_CUSTOM_PARENT(FlightTask,
|
||||
|
||||
@@ -22,7 +22,7 @@ bool FlightTask::initializeSubscriptions(SubscriptionArray &subscription_array)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool FlightTask::activate(vehicle_local_position_setpoint_s state_prev)
|
||||
bool FlightTask::activate(vehicle_local_position_setpoint_s last_setpoint)
|
||||
{
|
||||
_resetSetpoints();
|
||||
_setDefaultConstraints();
|
||||
|
||||
@@ -79,7 +79,7 @@ public:
|
||||
* @param state of the previous task
|
||||
* @return true on success, false on error
|
||||
*/
|
||||
virtual bool activate(vehicle_local_position_setpoint_s state_prev);
|
||||
virtual bool activate(vehicle_local_position_setpoint_s last_setpoint);
|
||||
|
||||
/**
|
||||
* Call this to reset an active Flight Task
|
||||
|
||||
@@ -61,9 +61,9 @@ bool FlightTaskManualAltitude::updateInitialize()
|
||||
return ret && PX4_ISFINITE(_position(2)) && PX4_ISFINITE(_velocity(2)) && PX4_ISFINITE(_yaw);
|
||||
}
|
||||
|
||||
bool FlightTaskManualAltitude::activate(vehicle_local_position_setpoint_s state_prev)
|
||||
bool FlightTaskManualAltitude::activate(vehicle_local_position_setpoint_s last_setpoint)
|
||||
{
|
||||
bool ret = FlightTaskManual::activate(state_prev);
|
||||
bool ret = FlightTaskManual::activate(last_setpoint);
|
||||
_yaw_setpoint = NAN;
|
||||
_yawspeed_setpoint = 0.0f;
|
||||
_thrust_setpoint = matrix::Vector3f(0.0f, 0.0f, NAN); // altitude is controlled from position/velocity
|
||||
|
||||
@@ -48,7 +48,7 @@ public:
|
||||
FlightTaskManualAltitude() = default;
|
||||
virtual ~FlightTaskManualAltitude() = default;
|
||||
bool initializeSubscriptions(SubscriptionArray &subscription_array) override;
|
||||
bool activate(vehicle_local_position_setpoint_s state_prev) override;
|
||||
bool activate(vehicle_local_position_setpoint_s last_setpoint) override;
|
||||
bool updateInitialize() override;
|
||||
bool update() override;
|
||||
|
||||
|
||||
+4
-4
@@ -41,14 +41,14 @@
|
||||
|
||||
using namespace matrix;
|
||||
|
||||
bool FlightTaskManualAltitudeSmoothVel::activate(vehicle_local_position_setpoint_s state_prev)
|
||||
bool FlightTaskManualAltitudeSmoothVel::activate(vehicle_local_position_setpoint_s last_setpoint)
|
||||
{
|
||||
bool ret = FlightTaskManualAltitude::activate(state_prev);
|
||||
bool ret = FlightTaskManualAltitude::activate(last_setpoint);
|
||||
|
||||
// Check if the previous FlightTask provided setpoints
|
||||
checkSetpoints(state_prev);
|
||||
checkSetpoints(last_setpoint);
|
||||
|
||||
_smoothing.reset(state_prev.acc_z, state_prev.vz, state_prev.z);
|
||||
_smoothing.reset(last_setpoint.acc_z, last_setpoint.vz, last_setpoint.z);
|
||||
|
||||
_initEkfResetCounters();
|
||||
_resetPositionLock();
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@ public:
|
||||
FlightTaskManualAltitudeSmoothVel() = default;
|
||||
virtual ~FlightTaskManualAltitudeSmoothVel() = default;
|
||||
|
||||
bool activate(vehicle_local_position_setpoint_s state_prev) override;
|
||||
bool activate(vehicle_local_position_setpoint_s last_setpoint) override;
|
||||
void reActivate() override;
|
||||
|
||||
protected:
|
||||
|
||||
@@ -65,10 +65,10 @@ bool FlightTaskManualPosition::updateInitialize()
|
||||
&& PX4_ISFINITE(_velocity(1));
|
||||
}
|
||||
|
||||
bool FlightTaskManualPosition::activate(vehicle_local_position_setpoint_s state_prev)
|
||||
bool FlightTaskManualPosition::activate(vehicle_local_position_setpoint_s last_setpoint)
|
||||
{
|
||||
// all requirements from altitude-mode still have to hold
|
||||
bool ret = FlightTaskManualAltitude::activate(state_prev);
|
||||
bool ret = FlightTaskManualAltitude::activate(last_setpoint);
|
||||
|
||||
_constraints.tilt = math::radians(_param_mpc_tiltmax_air.get());
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ public:
|
||||
|
||||
virtual ~FlightTaskManualPosition() = default;
|
||||
bool initializeSubscriptions(SubscriptionArray &subscription_array) override;
|
||||
bool activate(vehicle_local_position_setpoint_s state_prev) override;
|
||||
bool activate(vehicle_local_position_setpoint_s last_setpoint) override;
|
||||
bool updateInitialize() override;
|
||||
|
||||
/**
|
||||
|
||||
+2
-2
@@ -38,9 +38,9 @@
|
||||
|
||||
using namespace matrix;
|
||||
|
||||
bool FlightTaskManualPositionSmoothVel::activate(vehicle_local_position_setpoint_s state_prev)
|
||||
bool FlightTaskManualPositionSmoothVel::activate(vehicle_local_position_setpoint_s last_setpoint)
|
||||
{
|
||||
bool ret = FlightTaskManualPosition::activate(state_prev);
|
||||
bool ret = FlightTaskManualPosition::activate(last_setpoint);
|
||||
|
||||
// Check if the previous FlightTask provided setpoints
|
||||
checkSetpoints(last_setpoint);
|
||||
|
||||
+1
-1
@@ -49,7 +49,7 @@ public:
|
||||
|
||||
virtual ~FlightTaskManualPositionSmoothVel() = default;
|
||||
|
||||
bool activate(vehicle_local_position_setpoint_s state_prev) override;
|
||||
bool activate(vehicle_local_position_setpoint_s last_setpoint) override;
|
||||
void reActivate() override;
|
||||
|
||||
protected:
|
||||
|
||||
@@ -64,9 +64,9 @@ bool FlightTaskOffboard::updateInitialize()
|
||||
&& PX4_ISFINITE(_velocity(1));
|
||||
}
|
||||
|
||||
bool FlightTaskOffboard::activate(vehicle_local_position_setpoint_s state_prev)
|
||||
bool FlightTaskOffboard::activate(vehicle_local_position_setpoint_s last_setpoint)
|
||||
{
|
||||
bool ret = FlightTask::activate(state_prev);
|
||||
bool ret = FlightTask::activate(last_setpoint);
|
||||
_position_setpoint = _position;
|
||||
_velocity_setpoint.setZero();
|
||||
_position_lock.setAll(NAN);
|
||||
|
||||
@@ -49,7 +49,7 @@ public:
|
||||
virtual ~FlightTaskOffboard() = default;
|
||||
bool initializeSubscriptions(SubscriptionArray &subscription_array) override;
|
||||
bool update() override;
|
||||
bool activate(vehicle_local_position_setpoint_s state_prev) override;
|
||||
bool activate(vehicle_local_position_setpoint_s last_setpoint) override;
|
||||
bool updateInitialize() override;
|
||||
|
||||
protected:
|
||||
|
||||
@@ -147,9 +147,9 @@ bool FlightTaskOrbit::checkAcceleration(float r, float v, float a)
|
||||
return v * v < a * r;
|
||||
}
|
||||
|
||||
bool FlightTaskOrbit::activate(vehicle_local_position_setpoint_s state_prev)
|
||||
bool FlightTaskOrbit::activate(vehicle_local_position_setpoint_s last_setpoint)
|
||||
{
|
||||
bool ret = FlightTaskManualAltitudeSmooth::activate(state_prev);
|
||||
bool ret = FlightTaskManualAltitudeSmooth::activate(last_setpoint);
|
||||
_r = _radius_min;
|
||||
_v = 1.f;
|
||||
_center = Vector2f(_position);
|
||||
|
||||
@@ -51,7 +51,7 @@ public:
|
||||
virtual ~FlightTaskOrbit();
|
||||
|
||||
bool applyCommandParameters(const vehicle_command_s &command) override;
|
||||
bool activate(vehicle_local_position_setpoint_s state_prev) override;
|
||||
bool activate(vehicle_local_position_setpoint_s last_setpoint) override;
|
||||
bool update() override;
|
||||
|
||||
/**
|
||||
|
||||
@@ -52,9 +52,9 @@ public:
|
||||
|
||||
virtual ~FlightTaskSport() = default;
|
||||
|
||||
bool activate(vehicle_local_position_setpoint_s state_prev) override
|
||||
bool activate(vehicle_local_position_setpoint_s last_setpoint) override
|
||||
{
|
||||
bool ret = FlightTaskManualPosition::activate(state_prev);
|
||||
bool ret = FlightTaskManualPosition::activate(last_setpoint);
|
||||
|
||||
// default constraints already are the maximum allowed limits
|
||||
_setDefaultConstraints();
|
||||
|
||||
@@ -42,14 +42,14 @@ bool FlightTaskTransition::updateInitialize()
|
||||
return FlightTask::updateInitialize();
|
||||
}
|
||||
|
||||
bool FlightTaskTransition::activate(vehicle_local_position_setpoint_s state_prev)
|
||||
bool FlightTaskTransition::activate(vehicle_local_position_setpoint_s last_setpoint)
|
||||
{
|
||||
checkSetpoints(state_prev);
|
||||
_transition_altitude = state_prev.z;
|
||||
_transition_yaw = state_prev.yaw;
|
||||
checkSetpoints(last_setpoint);
|
||||
_transition_altitude = last_setpoint.z;
|
||||
_transition_yaw = last_setpoint.yaw;
|
||||
_acceleration_setpoint.setAll(0.f);
|
||||
_velocity_prev = _velocity;
|
||||
return FlightTask::activate(state_prev);
|
||||
return FlightTask::activate(last_setpoint);
|
||||
}
|
||||
|
||||
void FlightTaskTransition::checkSetpoints(vehicle_local_position_setpoint_s &setpoints)
|
||||
|
||||
@@ -47,7 +47,7 @@ public:
|
||||
FlightTaskTransition() = default;
|
||||
|
||||
virtual ~FlightTaskTransition() = default;
|
||||
bool activate(vehicle_local_position_setpoint_s state_prev) override;
|
||||
bool activate(vehicle_local_position_setpoint_s last_setpoint) override;
|
||||
bool updateInitialize() override;
|
||||
bool update() override;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user