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
pprz_geodetic.h
Go to the documentation of this file.
1 #ifndef PPRZ_GEODETIC_H
2 #define PPRZ_GEODETIC_H
3 
4 
5 #define ENU_OF_TO_NED(_po, _pi) { \
6  (_po).x = (_pi).y; \
7  (_po).y = (_pi).x; \
8  (_po).z = -(_pi).z; \
9  }
10 
11 #define LLA_ASSIGN(_pos,_lat,_lon,_alt){ \
12  (_pos).lat = (_lat); \
13  (_pos).lon = (_lon); \
14  (_pos).alt = (_alt); \
15  }
16 
17 #define LLA_COPY(_pos1,_pos2){ \
18  (_pos1).lat = (_pos2).lat; \
19  (_pos1).lon = (_pos2).lon; \
20  (_pos1).alt = (_pos2).alt; \
21 }
22 
23 #define LTP_DEF_COPY(_def1,_def2){ \
24  LLA_COPY((_def1).lla, (_def2).lla); \
25  VECT3_COPY((_def1).ecef, (_def2).ecef); \
26  RMAT_COPY((_def1).ltp_of_ecef, (_def2).ltp_of_ecef); \
27  (_def1).hmsl = (_def2).hmsl; \
28  }
29 
30 #define UTM_COPY(_u1, _u2) { \
31  (_u1).north = (_u2).north; \
32  (_u1).east = (_u2).east; \
33  (_u1).alt = (_u2).alt; \
34  (_u1).zone = (_u2).zone; \
35  }
36 
37 
38 #define ENU_OF_UTM_DIFF(_pos, _utm1, _utm2) { \
39  (_pos).x = (_utm1).east - (_utm2).east; \
40  (_pos).y = (_utm1).north - (_utm2).north; \
41  (_pos).z = (_utm1).alt - (_utm2).alt; \
42 }
43 
44 #define NED_OF_UTM_DIFF(_pos, _utm1, _utm2) { \
45  (_pos).x = (_utm1).north - (_utm2).north; \
46  (_pos).y = (_utm1).east - (_utm2).east; \
47  (_pos).z = -(_utm1).alt + (_utm2).alt; \
48 }
49 
50 #define UTM_OF_ENU_ADD(_utm, _pos, _utm0) { \
51  (_utm).east = (_utm0).east + (_pos).x; \
52  (_utm).north = (_utm0).north + (_pos).y; \
53  (_utm).alt = (_utm0).alt + (_pos).z; \
54 }
55 
56 #define UTM_OF_NED_ADD(_utm, _pos, _utm0) { \
57  (_utm).east = (_utm0).east + (_pos).y; \
58  (_utm).north = (_utm0).north + (_pos).x; \
59  (_utm).alt = (_utm0).alt - (_pos).z; \
60 }
61 
62 
63 #endif /* PPRZ_GEODETIC_H */