Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
Toggle main menu visibility
Main Page
Related Pages
Topics
Data Structures
Data Structures
Data Structure Index
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
m
n
p
r
s
t
u
v
w
Enumerations
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
v
w
z
Enumerator
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
Loading...
Searching...
No Matches
ins_ext_pose.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2023 MAVLab
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, write to
18
* the Free Software Foundation, 59 Temple Place - Suite 330,
19
* Boston, MA 02111-1307, USA.
20
*/
21
27
/*
28
Extened kalman filter based on https://en.wikipedia.org/wiki/Extended_Kalman_filter
29
Section 5.3: Non-additive noise formulation and equations
30
*/
31
32
#ifndef INS_EXT_POSE_H
33
#define INS_EXT_POSE_H
34
35
#include "
std.h
"
36
#include "generated/airframe.h"
37
#include <stdio.h>
38
39
enum
ins_ext_pose_state
{
40
EKF_X_POS_X
,
41
EKF_X_POS_Y
,
42
EKF_X_POS_Z
,
43
EKF_X_VEL_X
,
44
EKF_X_VEL_Y
,
45
EKF_X_VEL_Z
,
46
EKF_X_PHI
,
47
EKF_X_THETA
,
48
EKF_X_PSI
,
49
EKF_X_A_BIAS_X
,
50
EKF_X_A_BIAS_Y
,
51
EKF_X_A_BIAS_Z
,
52
EKF_X_G_BIAS_P
,
53
EKF_X_G_BIAS_Q
,
54
EKF_X_G_BIAS_R
,
55
EKF_NUM_STATES
56
};
39
enum
ins_ext_pose_state
{
…
};
57
58
enum
ins_ext_pose_inputs
{
59
EKF_U_ACC_X
,
60
EKF_U_ACC_Y
,
61
EKF_U_ACC_Z
,
62
EKF_U_GYRO_P
,
63
EKF_U_GYRO_Q
,
64
EKF_U_GYRO_R
,
65
EKF_NUM_INPUTS
66
};
58
enum
ins_ext_pose_inputs
{
…
};
67
68
enum
ins_ext_pose_outputs
{
69
EKF_Z_POS_X
,
70
EKF_Z_POS_Y
,
71
EKF_Z_POS_Z
,
72
EKF_Z_PHI
,
73
EKF_Z_THETA
,
74
EKF_Z_PSI
,
75
EKF_NUM_OUTPUTS
76
};
68
enum
ins_ext_pose_outputs
{
…
};
77
78
extern
float
ekf_X
[
EKF_NUM_STATES
];
79
80
extern
void
ins_ext_pose_init
(
void
);
81
extern
void
ins_ext_pose_run
(
void
);
82
83
extern
void
ins_ext_pose_msg_update
(
uint8_t
*buf);
84
85
#ifdef INS_EXT_VISION_ROTATION
86
extern
struct
FloatQuat
ins_ext_vision_rot
;
87
#endif
88
89
// Logging
90
extern
void
ins_ext_pose_log_header
(
FILE
*file);
91
extern
void
ins_ext_pose_log_data
(
FILE
*file);
92
93
#endif
FloatQuat
Roation quaternion.
Definition
pprz_algebra_float.h:63
ins_ext_pose_msg_update
void ins_ext_pose_msg_update(uint8_t *buf)
Import External Pose Message.
Definition
ins_ext_pose.c:226
ins_ext_pose_log_data
void ins_ext_pose_log_data(FILE *file)
Definition
ins_ext_pose.c:956
ins_ext_pose_init
void ins_ext_pose_init(void)
Module.
Definition
ins_ext_pose.c:283
ins_ext_pose_state
ins_ext_pose_state
Definition
ins_ext_pose.h:39
EKF_X_VEL_Z
@ EKF_X_VEL_Z
Definition
ins_ext_pose.h:45
EKF_X_VEL_X
@ EKF_X_VEL_X
Definition
ins_ext_pose.h:43
EKF_X_VEL_Y
@ EKF_X_VEL_Y
Definition
ins_ext_pose.h:44
EKF_X_A_BIAS_Z
@ EKF_X_A_BIAS_Z
Definition
ins_ext_pose.h:51
EKF_X_PSI
@ EKF_X_PSI
Definition
ins_ext_pose.h:48
EKF_X_A_BIAS_X
@ EKF_X_A_BIAS_X
Definition
ins_ext_pose.h:49
EKF_X_G_BIAS_R
@ EKF_X_G_BIAS_R
Definition
ins_ext_pose.h:54
EKF_X_G_BIAS_Q
@ EKF_X_G_BIAS_Q
Definition
ins_ext_pose.h:53
EKF_X_G_BIAS_P
@ EKF_X_G_BIAS_P
Definition
ins_ext_pose.h:52
EKF_NUM_STATES
@ EKF_NUM_STATES
Definition
ins_ext_pose.h:55
EKF_X_THETA
@ EKF_X_THETA
Definition
ins_ext_pose.h:47
EKF_X_POS_Y
@ EKF_X_POS_Y
Definition
ins_ext_pose.h:41
EKF_X_POS_X
@ EKF_X_POS_X
Definition
ins_ext_pose.h:40
EKF_X_A_BIAS_Y
@ EKF_X_A_BIAS_Y
Definition
ins_ext_pose.h:50
EKF_X_POS_Z
@ EKF_X_POS_Z
Definition
ins_ext_pose.h:42
EKF_X_PHI
@ EKF_X_PHI
Definition
ins_ext_pose.h:46
ins_ext_pose_log_header
void ins_ext_pose_log_header(FILE *file)
Logging.
Definition
ins_ext_pose.c:948
ins_ext_pose_inputs
ins_ext_pose_inputs
Definition
ins_ext_pose.h:58
EKF_U_ACC_Z
@ EKF_U_ACC_Z
Definition
ins_ext_pose.h:61
EKF_NUM_INPUTS
@ EKF_NUM_INPUTS
Definition
ins_ext_pose.h:65
EKF_U_GYRO_R
@ EKF_U_GYRO_R
Definition
ins_ext_pose.h:64
EKF_U_ACC_Y
@ EKF_U_ACC_Y
Definition
ins_ext_pose.h:60
EKF_U_GYRO_P
@ EKF_U_GYRO_P
Definition
ins_ext_pose.h:62
EKF_U_ACC_X
@ EKF_U_ACC_X
Definition
ins_ext_pose.h:59
EKF_U_GYRO_Q
@ EKF_U_GYRO_Q
Definition
ins_ext_pose.h:63
ins_ext_pose_run
void ins_ext_pose_run(void)
Definition
ins_ext_pose.c:314
ins_ext_pose_outputs
ins_ext_pose_outputs
Definition
ins_ext_pose.h:68
EKF_Z_POS_Z
@ EKF_Z_POS_Z
Definition
ins_ext_pose.h:71
EKF_Z_PHI
@ EKF_Z_PHI
Definition
ins_ext_pose.h:72
EKF_Z_POS_X
@ EKF_Z_POS_X
Definition
ins_ext_pose.h:69
EKF_Z_PSI
@ EKF_Z_PSI
Definition
ins_ext_pose.h:74
EKF_NUM_OUTPUTS
@ EKF_NUM_OUTPUTS
Definition
ins_ext_pose.h:75
EKF_Z_THETA
@ EKF_Z_THETA
Definition
ins_ext_pose.h:73
EKF_Z_POS_Y
@ EKF_Z_POS_Y
Definition
ins_ext_pose.h:70
ekf_X
float ekf_X[EKF_NUM_STATES]
Definition
ins_ext_pose.c:340
foo
uint16_t foo
Definition
main_demo5.c:58
std.h
uint8_t
unsigned char uint8_t
Typedef defining 8 bit unsigned char type.
Definition
vl53l1_types.h:98
sw
airborne
modules
ins
ins_ext_pose.h
Generated on Mon Jul 7 2025 20:13:28 for Paparazzi UAS by
1.9.8