Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
161 | salvo | 1 | ********************************************************************* |
184 | salvo | 2 | GPS Implementierung von Peter Muehlenbrock ("Salvo") fürMikrokopter/FlightCrtl |
209 | salvo | 3 | Stand 3.10.2007 |
161 | salvo | 4 | Verwendung der SW ohne Gewaehr. Siehe auch die Lizenzbedingungen in den Files gps.c, math.c |
5 | ********************************************************************* |
||
6 | |||
7 | Hardware-Voraussetzungen: |
||
8 | Kalibrierter Kompass vom Typ CMPS03, waagrecht eingebaut |
||
184 | salvo | 9 | GPS Modul vom Typ ublox, Die Meldungungen "NAV_STATUS", "NAV_POSUTM" und "NAV_VELED" |
182 | salvo | 10 | mussen mit 4 HZ Updaterate aktiviert sein. Anschluss an RX Port der FlightCRtl. |
161 | salvo | 11 | |
12 | Software-Voraussetzungen: |
||
184 | salvo | 13 | in fc.h müsen die Neutralwerte ACC_X_NEUTRAL und ACC_Y_NEUTRAL |
161 | salvo | 14 | eingetragen werden. Hierzu den Kopter waagrecht ausrichten (Wasserwaage) und mit dem Mikrokoptertool |
15 | die Neutralwerte ermitteln. |
||
16 | In timer0.h muess die Ausrichtung des Kompasses bezogen auf die Nordachse des Kopters |
||
182 | salvo | 17 | eingetragen sein. KOMPASS_OFFSET legt diesen Wert fest. |
161 | salvo | 18 | |
19 | Hexfiles: |
||
20 | Ich habe bewußt keinen Hexfile generiert, da die Neutralwerte spezifisch je Kopter sind. |
||
21 | Die SW muß also individuell compiliert werden und der Hexfile in die FlightCrtl eingebaut werden. |
||
184 | salvo | 22 | Der Lohn für die Muehe ist eine sehr driftarme Fluglageregelung sowie eine von der Startausrichtung |
23 | unabhängige waagrechte Lage in der Luft. |
||
161 | salvo | 24 | Alle Einstellungen beziehen sich auf AVR Studio von Atmel und den WIN_AVR Compiler. |
25 | |||
26 | Parametrierung: |
||
184 | salvo | 27 | Der GPS Hold Regler ist ein PID Regler, der ueber die UserParameter1(P), 2(I) und D(3) gesteuert wird. |
28 | UserParameter1 beschreibt den P-Anteil, UserParameter2 den I-Anteil und UserParameter3 den D-Anteil. |
||
209 | salvo | 29 | Hier kann und muss gespielt werden. |
30 | Standardwerte sind 8 für den P-Anteil, 3 für den I-Anteil und 12 für den D-Anteil. |
||
31 | Wenn alle 0 sind, ist der Regler deaktiviert. |
||
161 | salvo | 32 | |
33 | Voraussetzungen für GPS_Hold: |
||
184 | salvo | 34 | Neben den genannten HW und SW Voraussetzungen muß beim Kalibrieren das GPS MOdul bereits Positionsdaten liefern. |
35 | Nur dann wird die Home Position abgespeichert und nur dann wird GPS_Hold aktiviert. |
||
36 | Kenntlich gemacht wird dies durch einen etwas längeren Piepser nach dem Kalibrieren. |
||
194 | salvo | 37 | Das GPS Aktiv Flag im Setting muss aktiviert sein. |
38 | Eine Ausrichtung des Kopters nach Nord etc. ist nicht erforderlich. |
||
161 | salvo | 39 | |
40 | Aktivierung GPS_Hold im Flug: |
||
41 | Wenn alle genannten Voraussetzungen erfüllt sind, wird GPS Hold im Flug automatisch aktiviert, sobald der Nick und Roll Stick |
||
194 | salvo | 42 | fürca. 500msec in Neutrallage sind. Weicht einer der Sticks davon ab (Parameter GPS_STICK_HOLDOFF) oder liefert das GPS Modul oder fällt der |
43 | Kompass aus wird GPS_Hold sofort deaktiviert. |
||
161 | salvo | 44 | Damit kann jederzeit die manuelle Kontrolle wieder übernommen werden. |
45 | |||
46 | GPS_Hold regelt nur horizontale Abweichungen, keine Hoehe. |
||
184 | salvo | 47 | Der Magnetkompass wird nur in waagrechter Lage dazu benutzt einen internen aus dem Giergyro ermittelten "Ersatz"kompasswert |
48 | nach zu kalibrieren. Daher funktioniert die Bstimmung der Kopterausrichtung in jeder Lebenslage, sofern nur ab und zu |
||
49 | der Magnetkompass in die waagrechte Lage kommt. |
||
50 | Ein 3D Kompass ist damit überflüssig. |
||
161 | salvo | 51 | |
194 | salvo | 52 | Bekannte Schwächen: |
209 | salvo | 53 | Leichte Schwingneigung ca. +-3m, bei längerer Neigung weicht der Ersatzkompass ab. |
184 | salvo | 54 | PID Regler muss noch besser parametriert werden. |
161 | salvo | 55 | |
56 | |||
57 | |||
58 | |||
59 | |||
60 | |||
61 | |||
62 | |||
63 | |||
64 | |||
65 |