Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
Loading...
Searching...
No Matches
guidance_indi.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2015 Ewoud Smeur <ewoud.smeur@gmail.com>
3 *
4 * This file is part of paparazzi.
5 *
6 * paparazzi is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2, or (at your option)
9 * any later version.
10 *
11 * paparazzi is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with paparazzi; see the file COPYING. If not, see
18 * <http://www.gnu.org/licenses/>.
19 */
20
27#ifndef GUIDANCE_INDI_H
28#define GUIDANCE_INDI_H
29
30#include "std.h"
35
36extern void guidance_indi_init(void);
37extern void guidance_indi_enter(void);
38
44
50
51extern struct StabilizationSetpoint guidance_indi_run(struct FloatVect3 *accep_sp, float heading_sp);
53
55
56// Default number of virtual commands (e.g. [dax, day, daz])
57#ifndef GUIDANCE_INDI_NV
58#define GUIDANCE_INDI_NV 3
59#endif
60
61// Default number of outputs (e.g. [dtheta, dphi, dthrust])
62#ifndef GUIDANCE_INDI_NU
63#define GUIDANCE_INDI_NU 3
64#endif
65
66// Function to compute efficiency matrix G
68#if GUIDANCE_INDI_USE_WLS
69#include "math/wls/wls_alloc.h"
70extern void guidance_indi_set_wls_settings(struct WLS_t *wls, struct FloatEulers *euler_yxz, float heading_sp);
71#endif
72
74
75// settings for guidance INDI
76extern float guidance_indi_pos_gain;
77extern float guidance_indi_speed_gain;
78extern float guidance_indi_max_bank;
79
80#endif /* GUIDANCE_INDI_H */
euler angles
static float Gmat[GUIDANCE_INDI_NV][GUIDANCE_INDI_NU]
struct StabilizationSetpoint guidance_indi_run_mode(bool in_flight, struct HorizontalGuidance *gh, struct VerticalGuidance *gv, enum GuidanceIndi_HMode h_mode, enum GuidanceIndi_VMode v_mode)
float guidance_indi_max_bank
float guidance_indi_pos_gain
void guidance_indi_calcG(float Gmat[GUIDANCE_INDI_NV][GUIDANCE_INDI_NU], struct FloatEulers att)
struct FloatVect3 guidance_indi_controller(bool in_flight, struct HorizontalGuidance *gh, struct VerticalGuidance *gv, enum GuidanceIndi_HMode h_mode, enum GuidanceIndi_VMode v_mode)
void guidance_indi_enter(void)
Call upon entering indi guidance.
#define GUIDANCE_INDI_NV
void guidance_indi_init(void)
Init function.
float guidance_indi_specific_force_gain
#define GUIDANCE_INDI_NU
float guidance_indi_speed_gain
GuidanceIndi_VMode
@ GUIDANCE_INDI_V_ACCEL
@ GUIDANCE_INDI_V_SPEED
@ GUIDANCE_INDI_V_POS
GuidanceIndi_HMode
@ GUIDANCE_INDI_H_SPEED
@ GUIDANCE_INDI_H_ACCEL
@ GUIDANCE_INDI_H_POS
struct StabilizationSetpoint guidance_indi_run(struct FloatVect3 *accep_sp, float heading_sp)
void guidance_indi_set_wls_settings(struct WLS_t *wls, struct FloatEulers *euler_yxz, float heading_sp UNUSED)
uint16_t foo
Definition main_demo5.c:58
Paparazzi floating point algebra.
Paparazzi fixed point algebra.
General stabilization interface for rotorcrafts.
Stabilization setpoint.