Paparazzi UAS  v5.12_stable-4-g9b43e9b
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
vf_extended_float.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2008-2009 Antoine Drouin <poinix@gmail.com>
3  * Copyright (C) 2012 Gautier Hattenberger
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, write to
19  * the Free Software Foundation, 59 Temple Place - Suite 330,
20  * Boston, MA 02111-1307, USA.
21  */
22 
30 #ifndef VF_EXTENDED_FLOAT_H
31 #define VF_EXTENDED_FLOAT_H
32 
33 #define VFF_STATE_SIZE 4
34 
35 struct VffExtended {
36  /* state vector */
37  float z;
38  float zdot;
39  float bias;
40  float offset;
41 
42  float zdotdot;
43  float z_meas;
44  float z_meas_baro;
45 
47 
48  float accel_noise;
49  float r_baro;
50  float r_alt;
51  float r_offset;
52 };
53 
54 extern struct VffExtended vff;
55 
56 extern void vff_init_zero(void);
57 extern void vff_init(float z, float zdot, float accel_bias, float baro_offset);
58 extern void vff_propagate(float accel, float dt);
59 extern void vff_update_baro(float z_meas);
60 extern void vff_update_z(float z_meas);
61 extern void vff_update_offset(float offset);
62 extern void vff_update_baro_conf(float z_meas, float conf);
63 extern void vff_update_z_conf(float z_meas, float conf);
64 extern void vff_update_vz_conf(float vz_meas, float conf);
65 extern void vff_realign(float z_meas);
66 
67 #endif /* VF_EXTENDED_FLOAT_H */
float P[VFF_STATE_SIZE][VFF_STATE_SIZE]
covariance matrix
void vff_realign(float z_meas)
void vff_update_offset(float offset)
float bias
accel bias estimate in m/s^2
void vff_init_zero(void)
void vff_init(float z, float zdot, float accel_bias, float baro_offset)
float z
z-position estimate in m (NED, z-down)
void vff_propagate(float accel, float dt)
Propagate the filter in time.
static const float offset[]
#define VFF_STATE_SIZE
struct VffExtended vff
float offset
baro offset estimate
float zdotdot
z-acceleration in m/s^2 (NED, z-down)
void vff_update_baro(float z_meas)
float z_meas
last z measurement in m
float zdot
z-velocity estimate in m/s (NED, z-down)
void vff_update_baro_conf(float z_meas, float conf)
void vff_update_z_conf(float z_meas, float conf)
float z_meas_baro
last z measurement from baro in m
void vff_update_z(float z_meas)
void vff_update_vz_conf(float vz_meas, float conf)