Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
Loading...
Searching...
No Matches
stabilization_indi.h
Go to the documentation of this file.
1/*
2 * Copyright (C) Ewoud Smeur <ewoud_smeur@msn.com>
3 * MAVLab Delft University of Technology
4 *
5 * This file is part of paparazzi.
6 *
7 * paparazzi is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2, or (at your option)
10 * any later version.
11 *
12 * paparazzi is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with paparazzi; see the file COPYING. If not, see
19 * <http://www.gnu.org/licenses/>.
20 */
21
22#ifndef STABILIZATION_INDI
23#define STABILIZATION_INDI
24
29
30// Scaling for the control effectiveness to make it readible
31#define INDI_G_SCALING 1000.0
32
33extern float g1g2[INDI_OUTPUTS][INDI_NUM_ACT];
35extern struct FloatVect3 stab_thrust_filt;
36
44
45extern bool act_is_servo[INDI_NUM_ACT];
46
47extern bool indi_use_adaptive;
48
49extern float *Bwls[INDI_OUTPUTS];
50
51extern float thrust_bx_eff;
52extern float thrust_bx_act_dyn;
53extern float actuator_thrust_bx_pprz;
54extern float thrust_bx_state_filt;
55
56extern float act_pref[INDI_NUM_ACT];
57
58struct Indi_gains {
61};
62
64
65extern struct Indi_gains indi_gains;
66extern float stabilization_indi_filter_freq; //for setting handler
67
68extern void stabilization_indi_init(void);
69extern void stabilization_indi_enter(void);
70extern void stabilization_indi_rate_run(bool in_flight, struct StabilizationSetpoint *rate_sp, struct ThrustSetpoint *thrust, int32_t *cmd);
71extern void stabilization_indi_attitude_run(bool in_flight, struct StabilizationSetpoint *att_sp, struct ThrustSetpoint *thrust, int32_t *cmd);
73extern void stabilization_indi_update_filt_freq(float freq); // setting handler
74
75// outer-loop indi controller, a simple PD by default
76// but can be redefined elsewhere
78extern struct FloatRates stabilization_indi_rate_controller(struct FloatRates rates, struct FloatRates sp);
79
80#if !STABILIZATION_INDI_ALLOCATION_PSEUDO_INVERSE
81#include "math/wls/wls_alloc.h"
82extern struct WLS_t wls_stab_p;
83#endif
84#endif /* STABILIZATION_INDI */
85
Roation quaternion.
angular rates
uint16_t foo
Definition main_demo5.c:58
General attitude stabilization interface for rotorcrafts.
General stabilization interface for rotorcrafts.
Common data structures shared by euler and quaternion int implementations.
Rotorcraft attitude reference generation.
float thrust_bx_state_filt
void stabilization_indi_enter(void)
Function that resets important values upon engaging INDI.
float act_pref[INDI_NUM_ACT]
void stabilization_indi_rate_run(bool in_flight, struct StabilizationSetpoint *rate_sp, struct ThrustSetpoint *thrust, int32_t *cmd)
Does the INDI calculations.
float * Bwls[INDI_OUTPUTS]
struct Indi_gains indi_gains
void stabilization_indi_set_wls_settings(void)
Function that sets the u_min, u_max and u_pref if function not elsewhere defined.
struct FloatRates stabilization_indi_attitude_controller(struct FloatQuat att, struct FloatQuat att_sp, struct FloatRates rates_ff)
Default PD angular rate controller.
bool act_is_servo[INDI_NUM_ACT]
struct WLS_t wls_stab_p
float g1g2[INDI_OUTPUTS][INDI_NUM_ACT]
float actuator_thrust_bx_pprz
void stabilization_indi_update_filt_freq(float freq)
void stabilization_indi_init(void)
Function that initializes important values upon engaging INDI.
struct FloatVect3 stab_thrust_filt
float stablization_indi_yaw_dist_limit
void stabilization_indi_attitude_run(bool in_flight, struct StabilizationSetpoint *att_sp, struct ThrustSetpoint *thrust, int32_t *cmd)
runs stabilization indi
float actuator_state_filt_vect[INDI_NUM_ACT]
bool indi_use_adaptive
struct FloatRates stabilization_indi_rate_controller(struct FloatRates rates, struct FloatRates sp)
Default PD angular acceleration controller.
float stabilization_indi_filter_freq
int16_t actuators_pprz[INDI_NUM_ACT+1]
PPRZ command to each actuator Can be used to directly control actuators from the control algorithm if...
float thrust_bx_eff
float thrust_bx_act_dyn
struct FloatRates rate
struct FloatRates att
Stabilization setpoint.
Thrust setpoint // TODO to a setpoint header Structure to store the desired thrust vector with differ...
int int32_t
Typedef defining 32 bit int type.
short int16_t
Typedef defining 16 bit short type.