Paparazzi UAS  v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
ins_skeleton.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016 Felix Ruess <felix.ruess@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 
28 #ifndef INS_SKELETON_H
29 #define INS_SKELETON_H
30 
31 #include "std.h"
32 #include "math/pprz_geodetic_int.h"
33 #include "math/pprz_algebra_int.h"
35 
36 #include "subsystems/ins.h"
37 #include "subsystems/gps.h"
38 
40 struct InsModuleInt {
41  struct LtpDef_i ltp_def;
43 
44  /* output LTP NED */
45  struct NedCoor_i ltp_pos;
48 
50  struct GpsState gps;
51 
54 };
55 
57 extern struct InsModuleInt ins_module;
58 
59 extern void ins_module_wrapper_init(void);
60 
61 /* these functions can/should be implemented in your module */
62 extern void ins_module_init(void);
63 extern void ins_module_propagate(struct Int32Vect3 *accel, float dt);
64 extern void ins_module_update_gps(struct GpsState *gps_s, float dt);
65 extern void ins_module_update_baro(float pressure);
66 extern void ins_module_reset_local_origin(void);
67 
68 #endif /* INS_SKELETON_H */
OrientationReps
Definition: pprz_orientation_conversion.h:79
ins.h
ins_module_init
void ins_module_init(void)
Definition: ins_skeleton.c:149
InsModuleInt::ltp_accel
struct NedCoor_i ltp_accel
Definition: ins_skeleton.h:47
LtpDef_i
definition of the local (flat earth) coordinate system
Definition: pprz_geodetic_int.h:98
pprz_geodetic_int.h
Paparazzi fixed point math for geodetic calculations.
GpsState
data structure for GPS information
Definition: gps.h:87
ins_module_update_gps
void ins_module_update_gps(struct GpsState *gps_s, float dt)
Definition: ins_skeleton.c:157
ins_module_update_baro
void ins_module_update_baro(float pressure)
Definition: ins_skeleton.c:153
pprz_algebra_int.h
Paparazzi fixed point algebra.
ins_module_propagate
void ins_module_propagate(struct Int32Vect3 *accel, float dt)
Definition: ins_skeleton.c:185
InsModuleInt::gps
struct GpsState gps
internal copy of last GPS message
Definition: ins_skeleton.h:50
ins_module_reset_local_origin
void ins_module_reset_local_origin(void)
Definition: ins_skeleton.c:198
std.h
ins_module
struct InsModuleInt ins_module
global INS state
Definition: ins_skeleton.c:71
gps.h
Device independent GPS code (interface)
InsModuleInt
Ins implementation state (fixed point)
Definition: ins_skeleton.h:40
NedCoor_i
vector in North East Down coordinates
Definition: pprz_geodetic_int.h:68
InsModuleInt::ltp_speed
struct NedCoor_i ltp_speed
velocity in m/s in BFP with INT32_SPEED_FRAC
Definition: ins_skeleton.h:46
Int32Vect3
Definition: pprz_algebra_int.h:88
InsModuleInt::ltp_initialized
bool ltp_initialized
Definition: ins_skeleton.h:42
ins_module_wrapper_init
void ins_module_wrapper_init(void)
Definition: ins_skeleton.c:223
InsModuleInt::ltp_pos
struct NedCoor_i ltp_pos
position in m in BFP with INT32_POS_FRAC
Definition: ins_skeleton.h:45
pprz_orientation_conversion.h
InsModuleInt::body_to_imu
struct OrientationReps body_to_imu
body_to_imu rotation
Definition: ins_skeleton.h:53
InsModuleInt::ltp_def
struct LtpDef_i ltp_def
Definition: ins_skeleton.h:41