Rev 616 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 616 | Rev 621 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1 | // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
2 | // Peter Muehlenbrock ("Salvo") |
2 | // Peter Muehlenbrock ("Salvo") |
3 | // Definitionen fuer Modul GPS |
3 | // Definitionen fuer Modul GPS |
4 | // Stand 12.10.007 |
4 | // Stand 3.8.2008 |
5 | // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
5 | // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
6 | extern signed int GPS_Nick; |
6 | extern signed int GPS_Nick; |
7 | extern signed int GPS_Roll; |
7 | extern signed int GPS_Roll; |
8 | extern signed int GPS_dist_2trgt; //vorzeichenlose Distanz zum Ziel |
- | |
9 | extern signed int GPS_hdng_rel_2trgt; //Winkel zum Ziel bezogen auf Nordachse des Kopters |
- | |
10 | extern signed int GPS_hdng_rel_2trgt; //Winkel zum Ziel bezogen auf Nordachse des Kopters |
- | |
11 | extern void GPS_Neutral(void); |
8 | extern void GPS_Neutral(void); |
12 | extern void Get_Ublox_Msg(uint8_t rx) ; |
9 | extern void Get_Ublox_Msg(uint8_t rx) ; |
13 | //extern short int Get_GPS_data(void); |
10 | extern short int Get_GPS_data(void); |
14 | extern short int Get_Rel_Position(void); |
11 | extern short int Get_Rel_Position(void); |
15 | extern void GPS_Save_Home(void); |
12 | extern void GPS_Save_Home(void); |
16 | extern short int GPS_CRTL(short int cmd); |
13 | extern short int GPS_CRTL(short int cmd); |
Line 17... | Line 14... | ||
17 | 14 | ||
18 | typedef struct { |
15 | typedef struct { |
19 | unsigned long utm_itow; // time of week |
16 | unsigned long utm_itow; // time of week |
20 | long utm_east; // UTM Ost in cm |
17 | long utm_east; // UTM Ost in cm |
Line 73... | Line 70... | ||
73 | extern GPS_ABS_POSITION_t gps_act_position; |
70 | extern GPS_ABS_POSITION_t gps_act_position; |
74 | extern GPS_ABS_POSITION_t gps_home_position; |
71 | extern GPS_ABS_POSITION_t gps_home_position; |
75 | extern GPS_REL_POSITION_t gps_rel_act_position; |
72 | extern GPS_REL_POSITION_t gps_rel_act_position; |
76 | extern GPS_REL_POSITION_t gps_rel_hold_position; |
73 | extern GPS_REL_POSITION_t gps_rel_hold_position; |
77 | extern short int gps_state,gps_sub_state; |
74 | extern short int gps_state,gps_sub_state; |
78 | extern signed int GPS_hdng_abs_2trgt; |
- | |
79 | extern signed int GPS_hdng_rel_2trgt; |
- | |
80 | extern signed int GPS_dist_2trgt; |
- | |
81 | extern signed int gps_reg_x,gps_reg_y; |
- | |
82 | extern signed int GPS_dist_2trgt; |
- | |
83 | extern unsigned int gps_alive_cnt; |
75 | extern unsigned int gps_alive_cnt; |
84 | extern unsigned int int_ovfl_cnt; // Zaehler fuer Overflows des Integrators |
- | |
85 | extern signed int int_east,int_north; //Integrierer |
- | |
86 | //extern signed int diff_east_f,diff_north_f; // Differenzierer, gefiltert |
- | |
87 | signed long dist; |
- | |
88 | - | ||
89 | - | ||
90 | //nur provisorisch fuer Debugausgaben |
- | |
91 | extern signed hdng_2home,dist_2home; //Richtung und Entfernung zur home Position |
- | |
92 | extern long int dist_flown; |
- | |
93 | - | ||
Line 94... | Line 76... | ||
94 | 76 | ||
Line 95... | Line 77... | ||
95 | #define GPS_USR_PAR_FKT 8 //Faktor durch den die Userparameter geteilt werden |
77 | #define GPS_USR_PAR_FKT 8 //Faktor durch den die Userparameter geteilt werden |
Line 117... | Line 99... | ||
117 | #define GPS_STST_OK 0 // Kommando erfolgreich und abgeschlossen |
99 | #define GPS_STST_OK 0 // Kommando erfolgreich und abgeschlossen |
118 | #define GPS_STST_PEND 1 // Kommando noch nicht komplett durchgefuehrt |
100 | #define GPS_STST_PEND 1 // Kommando noch nicht komplett durchgefuehrt |
119 | #define GPS_STST_ERR 2 // Fehler |
101 | #define GPS_STST_ERR 2 // Fehler |
Line 120... | Line 102... | ||
120 | 102 | ||
121 | // GPS Lageregler |
103 | // GPS Lageregler |
122 | #define GPS_NICKROLL_MAX 30 // Maximaler Einfluss des GPS Lagereglers auf Nick und Roll |
104 | #define GPS_NICKROLL_MAX 25 // Maximaler Einfluss des GPS Lagereglers auf Nick und Roll |
123 | #define GPS_DIST_MAX 200 // Maximal zulaessige Distanz bevor Regelung gestoppt wird (in 10cm) |
105 | #define GPS_DIST_MAX 400 // Maximal zulaessige Distanz bevor Regelung gestoppt wird (in 10cm) |
124 | #define GPS_STICK_HOLDOFF 10 // Wenn der Nick oder Roll Stickwerte groesser sind, wird GPS_HOLD deaktiviert |
106 | #define GPS_STICK_HOLDOFF 20 // Wenn der Nick oder Roll Stickwerte groesser sind, wird GPS_HOLD deaktiviert |
Line 125... | Line 107... | ||
125 | #define GPS_V 8 // Teilerfaktor Regelabweichung zu Ausgabewert |
107 | #define GPS_V 8 // Teilerfaktor Regelabweichung zu Ausgabewert |
126 | 108 | ||
127 | // Differenzierer Kennwerte fuer von Distanz abhaengige Verstaerkung, abhaengig vom Modus. |
109 | // Differenzierer Kennwerte fuer von Distanz abhaengige Verstaerkung, abhaengig vom Modus. |
128 | #define GPS_DIFF_NRML_MAX_V 20 //maximale Verstaerkung * 10 |
110 | #define GPS_DIFF_NRML_MAX_V 20 //maximale Verstaerkung * 10 |
129 | #define GPS_DIFF_NRML_MAX_D 30 //Entfernung bei der maximale Verstaerkung erreicht wird in 10cm |
111 | #define GPS_DIFF_NRML_MAX_D 30 //Entfernung bei der maximale Verstaerkung erreicht wird in 10cm |
130 | #define GPS_DIFF_FAST_MAX_V 15 //maximale Verstaerkung * 10 im Fast mode |
112 | #define GPS_DIFF_FAST_MAX_V 15 //maximale Verstaerkung * 10 im Fast mode |
131 | #define GPS_DIFF_FAST_MAX_D 50 //Entfernung bei der maximale Verstaerkung erreicht wird in 10cm im Fast mode |
113 | #define GPS_DIFF_FAST_MAX_D 50 //Entfernung bei der maximale Verstaerkung erreicht wird in 10cm im Fast mode |
132 | // Konstanten fuer Verstaerkung fuer Differenzierer in Abhaengigkeit vom Diff Wert |
114 | // Konstanten fuer Verstaerkung fuer Differenzierer in Abhaengigkeit vom Diff Wert |
133 | // um eine exponentielle Verstaerkung zu erreichen |
115 | // um eine exponentielle Verstaerkung zu erreichen |
Line 134... | Line 116... | ||
134 | #define DIFF_Y_MAX 3 // Verstaerkung bei Eingangswert = DIFF_X_MAX |
116 | #define DIFF_Y_MAX 1 // Verstaerkung bei Eingangswert = DIFF_X_MAX |
135 | #define DIFF_X_MAX 10 // bei diesem Eingangswert ist die Verstaerkung = DIFF_Y_MAX |
117 | #define DIFF_X_MAX 32 // bei diesem Eingangswert ist die Verstaerkung = DIFF_Y_MAX |
136 | 118 |