Paparazzi UAS  v5.2.2_stable-0-gd6b9f29
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ins_float_invariant.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2012-2013 Jean-Philippe Condomines, Gautier Hattenberger
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  */
21 
22 
23 /*
24  * For more information, please send an email to "jp.condomines@gmail.com"
25  */
26 
27 #ifndef INS_FLOAT_INVARIANT_H
28 #define INS_FLOAT_INVARIANT_H
29 
30 #include "subsystems/ahrs.h"
31 #include "subsystems/ins.h"
32 
35 #define INV_STATE_DIM 15
36 
39 struct inv_state {
40  struct FloatQuat quat;
41  struct FloatRates bias;
42  struct NedCoor_f speed;
43  struct NedCoor_f pos;
44  float hb;
45  float as;
46 //float cs; ///< Estimated magnetic sensitivity
47 };
48 
51 #define INV_MEASURE_DIM 10
52 
55 struct inv_measures {
56  struct NedCoor_f pos_gps;
58  struct FloatVect3 mag;
59  float baro_alt;
60 };
61 
64 #define INV_COMMAND_DIM 6
65 
68 struct inv_command {
69  struct FloatRates rates;
70  struct FloatVect3 accel;
71 };
72 
76  struct FloatVect3 LE;
77  struct FloatVect3 ME;
78  struct FloatVect3 NE;
79  struct FloatVect3 OE;
80  float RE;
81  float SE;
82 };
83 
86 struct inv_gains {
87  float lv;
88  float lb;
89  float mv;
90  float mvz;
91  float mh;
92  float nx;
93  float nxz;
94  float nh;
95  float ov;
96  float ob;
97  float rv;
98  float rh;
99  float sh;
100 };
101 
104 struct InsFloatInv {
105  struct inv_state state;
107  struct inv_command cmd;
109  struct inv_gains gains;
110 
111  bool_t reset;
112 };
113 
114 extern struct InsFloatInv ins_impl;
115 
116 extern float ins_roll_neutral;
117 extern float ins_pitch_neutral;
118 
119 #endif /* INS_FLOAT_INVARIANT_H */
120 
struct NedCoor_f pos
Estimates position.
struct FloatVect3 OE
Correction gains on gyro biases.
struct FloatQuat quat
Estimated attitude (quaternion)
float as
Estimated accelerometer sensitivity.
Attitude and Heading Reference System interface.
Invariant filter measurement vector.
float mvz
Tuning parameter of vertical speed error on speed.
float nh
Tuning parameter of baro error on vertical position.
angular rates
float rv
Tuning parameter of speed error on accel biases.
float hb
Estimates barometers bias.
struct FloatVect3 ME
Correction gains on speed.
float baro_alt
Measured barometric altitude.
Integrated Navigation System interface.
struct inv_correction_gains corr
correction gains
float SE
Correction gains on barometer bias.
struct inv_gains gains
tuning gains
float rh
Tuning parameter of baro error on accel biases (vertical projection)
float ov
Tuning parameter of speed error on gyro biases.
Roation quaternion.
Invariant filter structure.
vector in North East Down coordinates Units: meters
float sh
Tuning parameter of baro error on baro bias.
float mh
Tuning parameter of baro error on vertical speed.
bool_t reset
flag to request reset/reinit the filter
float lv
Tuning parameter of speed error on attitude.
Invariant filter tuning gains.
Invariant filter command vector.
struct InsFloatInv ins_impl
Definition: ins_alt_float.c:51
float mv
Tuning parameter of horizontal speed error on speed.
struct FloatVect3 NE
Correction gains on position.
float nx
Tuning parameter of horizontal position error on position.
struct inv_command cmd
command vector
struct FloatVect3 accel
Input accelerometers.
float RE
Correction gains on accel bias.
float ins_pitch_neutral
Definition: ins_arduimu.c:15
Invariant filter state.
struct inv_state state
state vector
float nxz
Tuning parameter of vertical position error on position.
struct NedCoor_f speed
Estimates speed.
Invariant filter correction gains.
float ob
Tuning parameter of mag error on gyro biases.
struct NedCoor_f pos_gps
Measured gps position.
struct inv_measures meas
measurement vector
float ins_roll_neutral
Definition: ins_arduimu.c:14
struct NedCoor_f speed_gps
Measured gps speed.
float lb
Tuning parameter of mag error on attitude.
struct FloatVect3 LE
Correction gains on attitude.
struct FloatRates rates
Input gyro rates.
struct FloatVect3 mag
Measured magnetic field.
struct FloatRates bias
Estimated gyro biases.